forked from OSchip/llvm-project
Assert that the path from the derived to the base class in CodeGenFunction::GetAddressOfBaseClass is not ambiguous.
llvm-svn: 101869
This commit is contained in:
parent
359675d036
commit
3d4218570a
|
@ -120,14 +120,21 @@ CodeGenFunction::GetAddressOfBaseClass(llvm::Value *Value,
|
|||
return Builder.CreateBitCast(Value, BasePtrTy);
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
CXXBasePaths Paths(/*FindAmbiguities=*/true,
|
||||
/*RecordPaths=*/true, /*DetectVirtual=*/false);
|
||||
#else
|
||||
CXXBasePaths Paths(/*FindAmbiguities=*/false,
|
||||
/*RecordPaths=*/true, /*DetectVirtual=*/false);
|
||||
#endif
|
||||
if (!const_cast<CXXRecordDecl *>(Class)->
|
||||
isDerivedFrom(const_cast<CXXRecordDecl *>(BaseClass), Paths)) {
|
||||
assert(false && "Class must be derived from the passed in base class!");
|
||||
return 0;
|
||||
}
|
||||
|
||||
assert(!Paths.isAmbiguous(BTy) && "Path is ambiguous");
|
||||
|
||||
unsigned Start = 0;
|
||||
llvm::Value *VirtualOffset = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue