[llvm-commits] CVS: llvm/include/llvm/Module.h
Jeff Cohen
jeffc at jolt-lang.org
Sat Oct 22 21:37:40 PDT 2005
Changes in directory llvm/include/llvm:
Module.h updated: 1.62 -> 1.63
---
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: (+3 -1)
Module.h | 4 +++-
1 files changed, 3 insertions(+), 1 deletion(-)
Index: llvm/include/llvm/Module.h
diff -u llvm/include/llvm/Module.h:1.62 llvm/include/llvm/Module.h:1.63
--- llvm/include/llvm/Module.h:1.62 Sun May 15 20:49:23 2005
+++ llvm/include/llvm/Module.h Sat Oct 22 23:37:19 2005
@@ -22,6 +22,7 @@
#include "llvm/Function.h"
#include "llvm/GlobalVariable.h"
#include "llvm/ADT/SetVector.h"
+#include "llvm/Support/DataTypes.h"
namespace llvm {
@@ -111,7 +112,8 @@
/// table. If it does not exist, add a prototype for the function and return
/// it. This version of the method takes a null terminated list of function
/// arguments, which makes it easier for clients to use.
- Function *getOrInsertFunction(const std::string &Name, const Type *RetTy,...);
+ Function *getOrInsertFunction(const std::string &Name, const Type *RetTy,...)
+ END_WITH_NULL;
/// getFunction - Look up the specified function in the module symbol table.
/// If it does not exist, return null.
More information about the llvm-commits
mailing list