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) { | func (b Builder) CreateLandingPad(t Type, nclauses int, name string) (l Value) { | ||||||
| 	cname := C.CString(name) | 	cname := C.CString(name) | ||||||
| 	defer C.free(unsafe.Pointer(cname)) | 	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 | 	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, | CAMLprim LLVMValueRef llvm_build_landingpad(LLVMTypeRef Ty, LLVMValueRef PersFn, | ||||||
|                                             value NumClauses,  value Name, |                                             value NumClauses,  value Name, | ||||||
|                                             value B) { |                                             value B) { | ||||||
|     return LLVMBuildLandingPad(Builder_val(B), Ty, Int_val(NumClauses), |     return LLVMBuildLandingPad(Builder_val(B), Ty, PersFn, Int_val(NumClauses), | ||||||
|                                String_val(Name)); |                                String_val(Name)); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2675,7 +2675,8 @@ LLVMValueRef LLVMBuildInvoke(LLVMBuilderRef, LLVMValueRef Fn, | |||||||
|                              LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, |                              LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, | ||||||
|                              const char *Name); |                              const char *Name); | ||||||
| LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty, | 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 LLVMBuildResume(LLVMBuilderRef B, LLVMValueRef Exn); | ||||||
| LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef); | LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2257,7 +2257,14 @@ LLVMValueRef LLVMBuildInvoke(LLVMBuilderRef B, LLVMValueRef Fn, | |||||||
| } | } | ||||||
|  |  | ||||||
| LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty, | 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)); |   return wrap(unwrap(B)->CreateLandingPad(unwrap(Ty), NumClauses, Name)); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user