forked from OSchip/llvm-project
Add capability to get and set the personalitty function from the C API
Summary: The capability was lost with D10429 where the personality function was set at function level rather than landing pad level. Now there is no way to get/set the personality function from the C API. That is a problem. Note that the whole thing could be avoided by improving the C API testing, as started by D10725 Reviewers: chandlerc, bogner, majnemer, andrew.w.kaylor, rafael, rnk, axw Subscribers: rafael, llvm-commits Differential Revision: http://reviews.llvm.org/D10946 llvm-svn: 242104
This commit is contained in:
parent
d36f614e20
commit
3bdfc1cd0c
|
@ -1887,6 +1887,20 @@ LLVMValueRef LLVMAddAlias(LLVMModuleRef M, LLVMTypeRef Ty, LLVMValueRef Aliasee,
|
|||
*/
|
||||
void LLVMDeleteFunction(LLVMValueRef Fn);
|
||||
|
||||
/**
|
||||
* Obtain the personality function attached to the function.
|
||||
*
|
||||
* @see llvm::Function::getPersonalityFn()
|
||||
*/
|
||||
LLVMValueRef LLVMGetPersonalityFn(LLVMValueRef Fn);
|
||||
|
||||
/**
|
||||
* Set the personality function attached to the function.
|
||||
*
|
||||
* @see llvm::Function::setPersonalityFn()
|
||||
*/
|
||||
void LLVMSetPersonalityFn(LLVMValueRef Fn, LLVMValueRef PersonalityFn);
|
||||
|
||||
/**
|
||||
* Obtain the ID number from a function instance.
|
||||
*
|
||||
|
|
|
@ -1691,6 +1691,14 @@ void LLVMDeleteFunction(LLVMValueRef Fn) {
|
|||
unwrap<Function>(Fn)->eraseFromParent();
|
||||
}
|
||||
|
||||
LLVMValueRef LLVMGetPersonalityFn(LLVMValueRef Fn) {
|
||||
return wrap(unwrap<Function>(Fn)->getPersonalityFn());
|
||||
}
|
||||
|
||||
void LLVMSetPersonalityFn(LLVMValueRef Fn, LLVMValueRef PersonalityFn) {
|
||||
unwrap<Function>(Fn)->setPersonalityFn(unwrap<Constant>(PersonalityFn));
|
||||
}
|
||||
|
||||
unsigned LLVMGetIntrinsicID(LLVMValueRef Fn) {
|
||||
if (Function *F = dyn_cast<Function>(unwrap(Fn)))
|
||||
return F->getIntrinsicID();
|
||||
|
|
Loading…
Reference in New Issue