Changes in directory llvm/include/llvm:
Module.h updated: 1.78 -> 1.79 --- Log message: Change the interface to Module::getOrInsertFunction to be easier to use, to resolve PR1088: http://llvm.org/PR1088 , and to help PR411: http://llvm.org/PR411 . --- Diffs of the changes: (+10 -4) Module.h | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) Index: llvm/include/llvm/Module.h diff -u llvm/include/llvm/Module.h:1.78 llvm/include/llvm/Module.h:1.79 --- llvm/include/llvm/Module.h:1.78 Sat Jan 6 01:24:43 2007 +++ llvm/include/llvm/Module.h Sun Jan 7 02:09:25 2007 @@ -166,15 +166,21 @@ /// @{ public: /// getOrInsertFunction - Look up the specified function in the module symbol - /// table. If it does not exist, add a prototype for the function and return - /// it. - Function *getOrInsertFunction(const std::string &Name, const FunctionType *T); + /// table. Four possibilities: + /// 1. If it does not exist, add a prototype for the function and return it. + /// 2. If it exists, and has internal linkage, the existing function is + /// renamed and a new one is inserted. + /// 3. Otherwise, if the existing function has the correct prototype, return + /// the existing function. + /// 4. Finally, the function exists but has the wrong prototype: return the + /// function with a constantexpr cast to the right prototype. + Constant *getOrInsertFunction(const std::string &Name, const FunctionType *T); /// getOrInsertFunction - Look up the specified function in the module symbol /// 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,...) + Constant *getOrInsertFunction(const std::string &Name, const Type *RetTy,...) END_WITH_NULL; /// getFunction - Look up the specified function in the module symbol table. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits