summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-09-02 17:38:50 +0000
committerDouglas Gregor <dgregor@apple.com>2010-09-02 17:38:50 +0000
commit04f3621860d5e41b63802ea6ed0e3009f0e2d38e (patch)
treebdfd29b1c26aca0137b0aaf95f96cb814b9889d5 /clang/lib/CodeGen
parent3335f4844806f56d9db591f141e7a358367e89e8 (diff)
downloadbcm5719-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.cpp5
-rw-r--r--clang/lib/CodeGen/ItaniumCXXABI.cpp9
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);
}
OpenPOWER on IntegriCloud