Add and remove function attributes (Krzysztof Goj)
git-svn-id: http://llvm-py.googlecode.com/svn/trunk@89 8d1e9007-1d4e-0410-b67e-1979fd6579aa
This commit is contained in:
parent
b7200e59b1
commit
aa6a406c46
3 changed files with 14 additions and 0 deletions
|
|
@ -512,6 +512,9 @@ _wrap_obj2obj(LLVMGetDoesNotThrow, LLVMValueRef, int)
|
|||
_wrap_objint2none(LLVMSetDoesNotThrow, LLVMValueRef)
|
||||
_wrap_obj2none(LLVMViewFunctionCFG, LLVMValueRef)
|
||||
_wrap_obj2none(LLVMViewFunctionCFGOnly, LLVMValueRef)
|
||||
_wrap_objenum2none(LLVMAddFunctionAttr, LLVMValueRef, LLVMAttribute)
|
||||
_wrap_objenum2none(LLVMRemoveFunctionAttr, LLVMValueRef, LLVMAttribute)
|
||||
|
||||
|
||||
static PyObject *
|
||||
_wLLVMVerifyFunction(PyObject *self, PyObject *args)
|
||||
|
|
@ -1390,6 +1393,8 @@ static PyMethodDef core_methods[] = {
|
|||
_method( LLVMVerifyFunction )
|
||||
_method( LLVMViewFunctionCFG )
|
||||
_method( LLVMViewFunctionCFGOnly )
|
||||
_method( LLVMAddFunctionAttr )
|
||||
_method( LLVMRemoveFunctionAttr )
|
||||
|
||||
/* Arguments */
|
||||
_method( LLVMCountParams )
|
||||
|
|
|
|||
|
|
@ -1349,6 +1349,12 @@ class Function(GlobalValue):
|
|||
def viewCFG(self):
|
||||
return _core.LLVMViewFunctionCFG(self.ptr)
|
||||
|
||||
def add_attribute(self, attr):
|
||||
_core.LLVMAddFunctionAttr(self.ptr, attr)
|
||||
|
||||
def remove_attribute(self, attr):
|
||||
_core.LLVMRemoveFunctionAttr(self.ptr, attr)
|
||||
|
||||
def viewCFGOnly(self):
|
||||
return _core.LLVMViewFunctionCFGOnly(self.ptr)
|
||||
|
||||
|
|
|
|||
|
|
@ -295,6 +295,9 @@ def do_function():
|
|||
g = f.append_basic_block('a')
|
||||
g = f.get_entry_basic_block()
|
||||
g = list(f.basic_blocks)
|
||||
f.add_attribute(ATTR_NO_RETURN)
|
||||
f.add_attribute(ATTR_ALWAYS_INLINE)
|
||||
f.remove_attribute(ATTR_NO_RETURN)
|
||||
# LLVM misbehaves:
|
||||
#try:
|
||||
# f.verify()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue