[cfe-commits] r112908 - in /cfe/trunk: lib/CodeGen/CGExprCXX.cpp test/CodeGenCXX/new.cpp

Douglas Gregor dgregor at apple.com
Thu Sep 2 16:24:14 PDT 2010


Author: dgregor
Date: Thu Sep  2 18:24:14 2010
New Revision: 112908

URL: http://llvm.org/viewvc/llvm-project?rev=112908&view=rev
Log:
Fix a few more ConvertTypes that should be ConvertTypeForMems, fixing
two regressions in Boost.Config.

Modified:
    cfe/trunk/lib/CodeGen/CGExprCXX.cpp
    cfe/trunk/test/CodeGenCXX/new.cpp

Modified: cfe/trunk/lib/CodeGen/CGExprCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprCXX.cpp?rev=112908&r1=112907&r2=112908&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGExprCXX.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExprCXX.cpp Thu Sep  2 18:24:14 2010
@@ -754,7 +754,8 @@
                                                    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 @@
     // 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 {

Modified: cfe/trunk/test/CodeGenCXX/new.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/new.cpp?rev=112908&r1=112907&r2=112908&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/new.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/new.cpp Thu Sep  2 18:24:14 2010
@@ -158,4 +158,8 @@
   // 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
 }





More information about the cfe-commits mailing list