Revert my two IRgen fixes for "bool", then use a far simpler approach
based on ConvertTypeForMem. Thanks to John for pointing out the right solution. llvm-svn: 112838
This commit is contained in:
parent
3335f48448
commit
04f3621860
|
@ -1018,9 +1018,8 @@ void CodeGenFunction::EmitCXXDeleteExpr(const CXXDeleteExpr *E) {
|
|||
Ptr = Builder.CreateInBoundsGEP(Ptr, GEP.begin(), GEP.end(), "del.first");
|
||||
}
|
||||
|
||||
assert(DeleteTy->isBooleanType() ||
|
||||
(ConvertType(DeleteTy) ==
|
||||
cast<llvm::PointerType>(Ptr->getType())->getElementType()));
|
||||
assert(ConvertTypeForMem(DeleteTy) ==
|
||||
cast<llvm::PointerType>(Ptr->getType())->getElementType());
|
||||
|
||||
if (E->isArrayForm()) {
|
||||
EmitArrayDelete(*this, E->getOperatorDelete(), Ptr, DeleteTy);
|
||||
|
|
|
@ -305,13 +305,8 @@ llvm::Value *ItaniumCXXABI::EmitMemberDataPointerAddress(CodeGenFunction &CGF,
|
|||
|
||||
// Cast the address to the appropriate pointer type, adopting the
|
||||
// address space of the base pointer.
|
||||
// FIXME: We seem to be losing the "volatile" qualifier on the base pointer.
|
||||
QualType PtrType = CGF.getContext().getPointerType(MPT->getPointeeType());
|
||||
Qualifiers Qs = MPT->getPointeeType().getQualifiers();
|
||||
if (AS)
|
||||
Qs.addAddressSpace(AS);
|
||||
PtrType = CGF.getContext().getQualifiedType(PtrType, Qs);
|
||||
const llvm::Type *PType = CGF.ConvertType(PtrType);
|
||||
const llvm::Type *PType
|
||||
= CGF.ConvertTypeForMem(MPT->getPointeeType())->getPointerTo(AS);
|
||||
return Builder.CreateBitCast(Addr, PType);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue