mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +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