mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-29 10:32:47 +00:00
Implement new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8238 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
12d40d2926
commit
0ae8e87e53
@ -12,6 +12,7 @@
|
||||
#include "Support/LeakDetector.h"
|
||||
#include "SymbolTableListTraitsImpl.h"
|
||||
#include <algorithm>
|
||||
#include <cstdarg>
|
||||
#include <map>
|
||||
|
||||
Function *ilist_traits<Function>::createNode() {
|
||||
@ -95,6 +96,29 @@ Function *Module::getOrInsertFunction(const std::string &Name,
|
||||
}
|
||||
}
|
||||
|
||||
// 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 *Module::getOrInsertFunction(const std::string &Name,
|
||||
const Type *RetTy, ...) {
|
||||
va_list Args;
|
||||
va_start(Args, RetTy);
|
||||
|
||||
// Build the list of argument types...
|
||||
std::vector<const Type*> ArgTys;
|
||||
while (const Type *ArgTy = va_arg(Args, const Type*))
|
||||
ArgTys.push_back(ArgTy);
|
||||
|
||||
va_end(Args);
|
||||
|
||||
// Build the function type and chain to the other getOrInsertFunction...
|
||||
return getOrInsertFunction(Name, FunctionType::get(RetTy, ArgTys, false));
|
||||
}
|
||||
|
||||
|
||||
|
||||
// getFunction - Look up the specified function in the module symbol table.
|
||||
// If it does not exist, return null.
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user