diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-09-02 17:38:50 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-09-02 17:38:50 +0000 |
commit | 04f3621860d5e41b63802ea6ed0e3009f0e2d38e (patch) | |
tree | bdfd29b1c26aca0137b0aaf95f96cb814b9889d5 /clang/lib/CodeGen | |
parent | 3335f4844806f56d9db591f141e7a358367e89e8 (diff) | |
download | bcm5719-llvm-04f3621860d5e41b63802ea6ed0e3009f0e2d38e.tar.gz bcm5719-llvm-04f3621860d5e41b63802ea6ed0e3009f0e2d38e.zip |
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
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGExprCXX.cpp | 5 | ||||
-rw-r--r-- | clang/lib/CodeGen/ItaniumCXXABI.cpp | 9 |
2 files changed, 4 insertions, 10 deletions
diff --git a/clang/lib/CodeGen/CGExprCXX.cpp b/clang/lib/CodeGen/CGExprCXX.cpp index e0c8280e6b7..79e3b220ef9 100644 --- a/clang/lib/CodeGen/CGExprCXX.cpp +++ b/clang/lib/CodeGen/CGExprCXX.cpp @@ -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); diff --git a/clang/lib/CodeGen/ItaniumCXXABI.cpp b/clang/lib/CodeGen/ItaniumCXXABI.cpp index 85b52c63220..eefc530ccf1 100644 --- a/clang/lib/CodeGen/ItaniumCXXABI.cpp +++ b/clang/lib/CodeGen/ItaniumCXXABI.cpp @@ -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); } |