IR: Return unique_ptr from MDNode::getTemporary()
[oota-llvm.git] / bindings / python / llvm / bit_reader.py
1
2 from .common import LLVMObject
3 from .common import c_object_p
4 from .common import get_library
5 from . import enumerations
6 from .core import MemoryBuffer
7 from .core import Module
8 from .core import OpCode
9 from ctypes import POINTER
10 from ctypes import byref
11 from ctypes import c_char_p
12 from ctypes import cast
13 __all__ = ['parse_bitcode']
14 lib = get_library()
15
16 def parse_bitcode(mem_buffer):
17     """Input is .core.MemoryBuffer"""
18     module = c_object_p()
19     out = c_char_p(None)
20     result = lib.LLVMParseBitcode(mem_buffer, byref(module), byref(out))
21     if result:
22         raise RuntimeError('LLVM Error: %s' % out.value)
23     m = Module(module)
24     m.take_ownership(mem_buffer)
25     return m
26
27 def register_library(library):
28     library.LLVMParseBitcode.argtypes = [MemoryBuffer, POINTER(c_object_p), POINTER(c_char_p)]
29     library.LLVMParseBitcode.restype = bool
30
31 register_library(lib)