[llvm-commits] CVS: llvm/lib/Transforms/IPO/LowerSetJmp.cpp SimplifyLibCalls.cpp
Jeff Cohen
jeffc at jolt-lang.org
Sat Oct 22 21:37:40 PDT 2005
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;
}
More information about the llvm-commits
mailing list