Mercurial > hg > Members > tobaru > cbc > CbC_llvm
view bindings/python/llvm/bit_reader.py @ 34:e874dbf0ad9d
Added tag LLVM3.5 for changeset e4204d083e25
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 12 Dec 2013 15:22:36 +0900 |
parents | 95c75e76d11b |
children | 7d135dc70f03 |
line wrap: on
line source
from .common import LLVMObject from .common import c_object_p from .common import get_library from . import enumerations from .core import MemoryBuffer from .core import Module from .core import OpCode from ctypes import POINTER from ctypes import byref from ctypes import c_char_p from ctypes import cast __all__ = ['parse_bitcode'] lib = get_library() def parse_bitcode(mem_buffer): """Input is .core.MemoryBuffer""" module = c_object_p() out = c_char_p(None) result = lib.LLVMParseBitcode(mem_buffer, byref(module), byref(out)) if result: raise RuntimeError('LLVM Error: %s' % out.value) m = Module(module) m.take_ownership(mem_buffer) return m def register_library(library): library.LLVMParseBitcode.argtypes = [MemoryBuffer, POINTER(c_object_p), POINTER(c_char_p)] library.LLVMParseBitcode.restype = bool register_library(lib)