Changes in directory llvm/lib/Transforms/IPO:
LowerSetJmp.cpp updated: 1.27 -> 1.28 SimplifyLibCalls.cpp updated: 1.54 -> 1.55 --- Log message: When a function takes a variable number of pointer arguments, with a zero pointer marking the end of the list, the zero *must* be cast to the pointer type. An un-cast zero is a 32-bit int, and at least on x86_64, gcc will not extend the zero to 64 bits, thus allowing the upper 32 bits to be random junk. The new END_WITH_NULL macro may be used to annotate a such a function so that GCC (version 4 or newer) will detect the use of un-casted zero at compile time. --- Diffs of the changes: (+11 -9) LowerSetJmp.cpp | 15 ++++++++------- SimplifyLibCalls.cpp | 5 +++-- 2 files changed, 11 insertions(+), 9 deletions(-) Index: llvm/lib/Transforms/IPO/LowerSetJmp.cpp diff -u llvm/lib/Transforms/IPO/LowerSetJmp.cpp:1.27 llvm/lib/Transforms/IPO/LowerSetJmp.cpp:1.28 --- llvm/lib/Transforms/IPO/LowerSetJmp.cpp:1.27 Wed Jun 15 17:49:30 2005 +++ llvm/lib/Transforms/IPO/LowerSetJmp.cpp Sat Oct 22 23:37:20 2005 @@ -204,32 +204,33 @@ // void __llvm_sjljeh_init_setjmpmap(void**) InitSJMap = M.getOrInsertFunction("__llvm_sjljeh_init_setjmpmap", - Type::VoidTy, SBPPTy, NULL); + Type::VoidTy, SBPPTy, (Type *)0); // void __llvm_sjljeh_destroy_setjmpmap(void**) DestroySJMap = M.getOrInsertFunction("__llvm_sjljeh_destroy_setjmpmap", - Type::VoidTy, SBPPTy, NULL); + Type::VoidTy, SBPPTy, (Type *)0); // void __llvm_sjljeh_add_setjmp_to_map(void**, void*, unsigned) AddSJToMap = M.getOrInsertFunction("__llvm_sjljeh_add_setjmp_to_map", Type::VoidTy, SBPPTy, SBPTy, - Type::UIntTy, NULL); + Type::UIntTy, (Type *)0); // void __llvm_sjljeh_throw_longjmp(int*, int) ThrowLongJmp = M.getOrInsertFunction("__llvm_sjljeh_throw_longjmp", - Type::VoidTy, SBPTy, Type::IntTy, NULL); + Type::VoidTy, SBPTy, Type::IntTy, + (Type *)0); // unsigned __llvm_sjljeh_try_catching_longjmp_exception(void **) TryCatchLJ = M.getOrInsertFunction("__llvm_sjljeh_try_catching_longjmp_exception", - Type::UIntTy, SBPPTy, NULL); + Type::UIntTy, SBPPTy, (Type *)0); // bool __llvm_sjljeh_is_longjmp_exception() IsLJException = M.getOrInsertFunction("__llvm_sjljeh_is_longjmp_exception", - Type::BoolTy, NULL); + Type::BoolTy, (Type *)0); // int __llvm_sjljeh_get_longjmp_value() GetLJValue = M.getOrInsertFunction("__llvm_sjljeh_get_longjmp_value", - Type::IntTy, NULL); + Type::IntTy, (Type *)0); return true; } Index: llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp diff -u llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.54 llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.55 --- llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.54 Thu Sep 29 01:17:27 2005 +++ llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp Sat Oct 22 23:37:20 2005 @@ -311,7 +311,8 @@ if (!memcpy_func) { const Type *SBP = PointerType::get(Type::SByteTy); memcpy_func = M->getOrInsertFunction("llvm.memcpy", Type::VoidTy,SBP, SBP, - Type::UIntTy, Type::UIntTy, 0); + Type::UIntTy, Type::UIntTy, + (Type *)0); } return memcpy_func; } @@ -319,7 +320,7 @@ Function* get_floorf() { if (!floorf_func) floorf_func = M->getOrInsertFunction("floorf", Type::FloatTy, - Type::FloatTy, 0); + Type::FloatTy, (Type *)0); return floorf_func; } _______________________________________________ llvm-commits mailing list [EMAIL PROTECTED] http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits