Mercurial > projects > ldc
diff gen/passes/GarbageCollect2Stack.cpp @ 1539:6364e09628fd
Build fix for LLVM r75546 and r75559
author | Benjamin Kramer <benny.kra@gmail.com> |
---|---|
date | Tue, 14 Jul 2009 02:19:05 +0200 |
parents | d1652c8fb4f6 |
children | 7fcb72d518f6 |
line wrap: on
line diff
--- a/gen/passes/GarbageCollect2Stack.cpp Tue Jul 14 18:24:40 2009 +0200 +++ b/gen/passes/GarbageCollect2Stack.cpp Tue Jul 14 02:19:05 2009 +0200 @@ -85,6 +85,7 @@ namespace { class FunctionInfo { protected: + LLVMContext* Context; const Type* Ty; public: @@ -108,8 +109,8 @@ return new AllocaInst(Ty, ".nongc_mem", Begin); // FIXME: align? } - FunctionInfo(unsigned typeInfoArgNr, bool safeToDelete) - : TypeInfoArgNr(typeInfoArgNr), SafeToDelete(safeToDelete) {} + FunctionInfo(LLVMContext* context, unsigned typeInfoArgNr, bool safeToDelete) + : Context(context), TypeInfoArgNr(typeInfoArgNr), SafeToDelete(safeToDelete) {} }; class ArrayFI : public FunctionInfo { @@ -118,9 +119,9 @@ bool Initialized; public: - ArrayFI(unsigned tiArgNr, bool safeToDelete, bool initialized, - unsigned arrSizeArgNr) - : FunctionInfo(tiArgNr, safeToDelete), + ArrayFI(LLVMContext* context, unsigned tiArgNr, bool safeToDelete, + bool initialized, unsigned arrSizeArgNr) + : FunctionInfo(context, tiArgNr, safeToDelete), ArrSizeArgNr(arrSizeArgNr), Initialized(initialized) {} @@ -222,7 +223,7 @@ if (hasDestructor == NULL || hasCustomDelete == NULL) return false; - if (ConstantExpr::getOr(hasDestructor, hasCustomDelete) + if (Context->getConstantExprOr(hasDestructor, hasCustomDelete) != ConstantInt::getFalse()) return false; @@ -232,7 +233,7 @@ // The default promote() should be fine. - AllocClassFI() : FunctionInfo(~0u, true) {} + AllocClassFI(LLVMContext* context) : FunctionInfo(context, ~0u, true) {} }; } @@ -285,9 +286,10 @@ GarbageCollect2Stack::GarbageCollect2Stack() : FunctionPass(&ID), - AllocMemoryT(0, true), - NewArrayVT(0, true, false, 1), - NewArrayT(0, true, true, 1) + AllocMemoryT(Context, 0, true), + NewArrayVT(Context, 0, true, false, 1), + NewArrayT(Context, 0, true, true, 1), + AllocClass(Context) { KnownFunctions["_d_allocmemoryT"] = &AllocMemoryT; KnownFunctions["_d_newarrayvT"] = &NewArrayVT;