From 7b6aac79fb76739cffecd01a8d1933c91a7e9a1a Mon Sep 17 00:00:00 2001 From: "Travis E. Oliphant" Date: Thu, 21 Jun 2012 01:25:23 -0500 Subject: [PATCH] Add llvm::Module::addLibrary to exposed API --- llvm/_core.c | 2 ++ llvm/core.py | 3 +++ llvm/extra.cpp | 8 ++++++++ llvm/extra.h | 3 +++ 4 files changed, 16 insertions(+) diff --git a/llvm/_core.c b/llvm/_core.c index 052ee21..f9e76fe 100644 --- a/llvm/_core.c +++ b/llvm/_core.c @@ -87,6 +87,7 @@ _wrap_obj2str(LLVMGetDataLayout, LLVMModuleRef) _wrap_objstr2none(LLVMSetDataLayout, LLVMModuleRef) _wrap_obj2str(LLVMGetTarget, LLVMModuleRef) _wrap_objstr2none(LLVMSetTarget, LLVMModuleRef) +_wrap_objstr2none(LLVMModuleAddLibrary, LLVMModuleRef) _wrap_objstr2obj(LLVMGetTypeByName, LLVMModuleRef, LLVMTypeRef) _wrap_obj2none(LLVMDumpModule, LLVMModuleRef) _wrap_obj2none(LLVMDisposeModule, LLVMModuleRef) @@ -1321,6 +1322,7 @@ static PyMethodDef core_methods[] = { _method( LLVMSetDataLayout ) _method( LLVMGetTarget ) _method( LLVMSetTarget ) + _method( LLVMModuleAddLibrary ) _method( LLVMGetTypeByName ) _method( LLVMDumpModule ) _method( LLVMDisposeModule ) diff --git a/llvm/core.py b/llvm/core.py index dab1a87..afd28bd 100644 --- a/llvm/core.py +++ b/llvm/core.py @@ -505,6 +505,9 @@ class Module(llvm.Ownable, llvm.Cacheable): raise llvm.LLVMException("Unable to create bitcode") fileobj.write(data) + def add_library(self, name): + return _core.LLVMModuleAddLibrary(self.ptr, name) + #===----------------------------------------------------------------------=== # Types diff --git a/llvm/extra.cpp b/llvm/extra.cpp index 2463672..d7b33e5 100644 --- a/llvm/extra.cpp +++ b/llvm/extra.cpp @@ -100,6 +100,14 @@ char *LLVMDumpModuleToString(LLVMModuleRef module) return strdup(buf.str().c_str()); } +void LLVMModuleAddLibrary(LLVMModuleRef module, const char *name) +{ + llvm::Module *M = llvm::unwrap(module); + llvm::StringRef namestr = llvm::StringRef(name); + M->addLibrary(namestr); + return; +} + char *LLVMDumpTypeToString(LLVMTypeRef type) { return do_print(type); diff --git a/llvm/extra.h b/llvm/extra.h index 6382309..3bdb070 100644 --- a/llvm/extra.h +++ b/llvm/extra.h @@ -50,6 +50,9 @@ extern "C" { * LLVMDisposeMessage(). */ char *LLVMDumpModuleToString(LLVMModuleRef module); +/* Wraps llvm::Module::addLibrary(name). */ +void LLVMModuleAddLibrary(LLVMModuleRef module, const char *name); + /* Wraps llvm::Type::print(). Dispose the returned string after use, via * LLVMDisposeMessage(). */ char *LLVMDumpTypeToString(LLVMTypeRef type);