mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-01 00:33:09 +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 "Support/LeakDetector.h"
|
||||||
#include "SymbolTableListTraitsImpl.h"
|
#include "SymbolTableListTraitsImpl.h"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <cstdarg>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
Function *ilist_traits<Function>::createNode() {
|
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.
|
// getFunction - Look up the specified function in the module symbol table.
|
||||||
// If it does not exist, return null.
|
// If it does not exist, return null.
|
||||||
//
|
//
|
||||||
|
Loading…
Reference in New Issue
Block a user