Fix a few more ConvertTypes that should be ConvertTypeForMems, fixing

two regressions in Boost.Config.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112908 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Douglas Gregor 2010-09-02 23:24:14 +00:00
Родитель d4b25cbde1
Коммит cc09c022be
2 изменённых файлов: 7 добавлений и 2 удалений

Просмотреть файл

@ -754,7 +754,8 @@ llvm::Value *CodeGenFunction::EmitCXXNewExpr(const CXXNewExpr *E) {
AllocType);
}
const llvm::Type *ElementPtrTy = ConvertType(AllocType)->getPointerTo(AS);
const llvm::Type *ElementPtrTy
= ConvertTypeForMem(AllocType)->getPointerTo(AS);
NewPtr = Builder.CreateBitCast(NewPtr, ElementPtrTy);
if (E->isArray()) {
EmitNewInitializer(*this, E, NewPtr, NumElements, AllocSizeWithoutCookie);
@ -762,7 +763,7 @@ llvm::Value *CodeGenFunction::EmitCXXNewExpr(const CXXNewExpr *E) {
// NewPtr is a pointer to the base element type. If we're
// allocating an array of arrays, we'll need to cast back to the
// array pointer type.
const llvm::Type *ResultTy = ConvertType(E->getType());
const llvm::Type *ResultTy = ConvertTypeForMem(E->getType());
if (NewPtr->getType() != ResultTy)
NewPtr = Builder.CreateBitCast(NewPtr, ResultTy);
} else {

Просмотреть файл

@ -158,4 +158,8 @@ void f() {
// CHECK: call void @_ZN5AllocD1Ev(
// CHECK: call void @_ZN5AllocdaEPv(i8*
delete[] new Alloc[10][20];
// CHECK: call noalias i8* @_Znwm
// CHECK: call void @_ZdlPv(i8*
delete new bool;
// CHECK: ret void
}