diff options
author | Chris Lattner <sabre@nondot.org> | 2003-04-25 18:23:38 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-04-25 18:23:38 +0000 |
commit | 4c5245b14429a578d3ecd922561e751e24a3d23c (patch) | |
tree | 644c6722b050b91ae9ff3d68e6d9ec7c7ed02537 /llvm/lib/ExecutionEngine | |
parent | be2d24e3b5a5fd39a6dc0bd9ef17f2ce255d4537 (diff) | |
download | bcm5719-llvm-4c5245b14429a578d3ecd922561e751e24a3d23c.tar.gz bcm5719-llvm-4c5245b14429a578d3ecd922561e751e24a3d23c.zip |
Add __strdup
llvm-svn: 5941
Diffstat (limited to 'llvm/lib/ExecutionEngine')
-rw-r--r-- | llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp b/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp index f53be1b11b1..f8e1288f1db 100644 --- a/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp +++ b/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp @@ -565,6 +565,12 @@ GenericValue lle_X_strlen(FunctionType *M, const vector<GenericValue> &Args) { return Ret; } +// char *__strdup(const char *src); +GenericValue lle_X___strdup(FunctionType *M, const vector<GenericValue> &Args) { + assert(Args.size() == 1); + return PTOGV(strdup((char*)GVTOP(Args[0]))); +} + // void *memset(void *S, int C, size_t N) GenericValue lle_X_memset(FunctionType *M, const vector<GenericValue> &Args) { assert(Args.size() == 3); @@ -803,6 +809,7 @@ void Interpreter::initializeExternalMethods() { FuncNames["lle_X_strcat"] = lle_X_strcat; FuncNames["lle_X_strcpy"] = lle_X_strcpy; FuncNames["lle_X_strlen"] = lle_X_strlen; + FuncNames["lle_X___strdup"] = lle_X___strdup; FuncNames["lle_X_memset"] = lle_X_memset; FuncNames["lle_X_memcpy"] = lle_X_memcpy; |