mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-30 16:17:05 +00:00 
			
		
		
		
	Revert "Update LLVM bindings after r239940. ..."
Revert the changes to the C API LLVMBuildLandingPad that were part of the personality function move. We now set the personality on the parent function when the C API attempts to construct a landingpad with a personality. This reverts commit r240010. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242372 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		| @@ -1731,7 +1731,7 @@ func (b Builder) CreatePtrDiff(lhs, rhs Value, name string) (v Value) { | ||||
| func (b Builder) CreateLandingPad(t Type, nclauses int, name string) (l Value) { | ||||
| 	cname := C.CString(name) | ||||
| 	defer C.free(unsafe.Pointer(cname)) | ||||
| 	l.C = C.LLVMBuildLandingPad(b.C, t.C, C.unsigned(nclauses), cname) | ||||
| 	l.C = C.LLVMBuildLandingPad(b.C, t.C, nil, C.unsigned(nclauses), cname) | ||||
| 	return l | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -1745,7 +1745,7 @@ CAMLprim LLVMValueRef llvm_build_invoke_bc(value Args[], int NumArgs) { | ||||
| CAMLprim LLVMValueRef llvm_build_landingpad(LLVMTypeRef Ty, LLVMValueRef PersFn, | ||||
|                                             value NumClauses,  value Name, | ||||
|                                             value B) { | ||||
|     return LLVMBuildLandingPad(Builder_val(B), Ty, Int_val(NumClauses), | ||||
|     return LLVMBuildLandingPad(Builder_val(B), Ty, PersFn, Int_val(NumClauses), | ||||
|                                String_val(Name)); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -2675,7 +2675,8 @@ LLVMValueRef LLVMBuildInvoke(LLVMBuilderRef, LLVMValueRef Fn, | ||||
|                              LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, | ||||
|                              const char *Name); | ||||
| LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty, | ||||
|                                  unsigned NumClauses, const char *Name); | ||||
|                                  LLVMValueRef PersFn, unsigned NumClauses, | ||||
|                                  const char *Name); | ||||
| LLVMValueRef LLVMBuildResume(LLVMBuilderRef B, LLVMValueRef Exn); | ||||
| LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef); | ||||
|  | ||||
|   | ||||
| @@ -2257,7 +2257,14 @@ LLVMValueRef LLVMBuildInvoke(LLVMBuilderRef B, LLVMValueRef Fn, | ||||
| } | ||||
|  | ||||
| LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty, | ||||
|                                  unsigned NumClauses, const char *Name) { | ||||
|                                  LLVMValueRef PersFn, unsigned NumClauses, | ||||
|                                  const char *Name) { | ||||
|   // The personality used to live on the landingpad instruction, but now it | ||||
|   // lives on the parent function. For compatibility, take the provided | ||||
|   // personality and put it on the parent function. | ||||
|   if (PersFn) | ||||
|     unwrap(B)->GetInsertBlock()->getParent()->setPersonalityFn( | ||||
|         cast<Function>(unwrap(PersFn))); | ||||
|   return wrap(unwrap(B)->CreateLandingPad(unwrap(Ty), NumClauses, Name)); | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user