Expose preserve flag for Module.link_in
This commit is contained in:
parent
d491d91dd2
commit
03e54f2c12
1 changed files with 7 additions and 7 deletions
14
llvm/core.py
14
llvm/core.py
|
|
@ -450,7 +450,7 @@ class Module(llvm.Ownable, llvm.Cacheable):
|
||||||
llvm::Module::AnyPointerSize."""
|
llvm::Module::AnyPointerSize."""
|
||||||
return _core.LLVMModuleGetPointerSize(self.ptr)
|
return _core.LLVMModuleGetPointerSize(self.ptr)
|
||||||
|
|
||||||
def link_in(self, other):
|
def link_in(self, other, preserve=False):
|
||||||
"""Link the `other' module into this one.
|
"""Link the `other' module into this one.
|
||||||
|
|
||||||
The `other' module is linked into this one such that types,
|
The `other' module is linked into this one such that types,
|
||||||
|
|
@ -463,12 +463,12 @@ class Module(llvm.Ownable, llvm.Cacheable):
|
||||||
Linker class.
|
Linker class.
|
||||||
"""
|
"""
|
||||||
check_is_module(other)
|
check_is_module(other)
|
||||||
other.forget() # remove it from object cache
|
if not preserve:
|
||||||
ret = _core.LLVMLinkModules(self.ptr, other.ptr)
|
other.forget() # remove it from object cache
|
||||||
if isinstance(ret, str):
|
_core.LLVMLinkModules(self.ptr, other.ptr, int(bool(preserve)))
|
||||||
raise llvm.LLVMException(ret)
|
if not preserve:
|
||||||
# Do not try to destroy the other module's llvm::Module*.
|
# Do not try to destroy the other module's llvm::Module*.
|
||||||
other._own(llvm.DummyOwner())
|
other._own(llvm.DummyOwner())
|
||||||
|
|
||||||
def get_type_named(self, name):
|
def get_type_named(self, name):
|
||||||
"""Return a Type object with the given name."""
|
"""Return a Type object with the given name."""
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue