46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: opt < %s -loop-simplify -S | FileCheck %s
 | |
| ; PR11575
 | |
| 
 | |
| @catchtypeinfo = external unnamed_addr constant { i8*, i8*, i8* }
 | |
| 
 | |
| define void @main() uwtable ssp personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
 | |
| entry:
 | |
|   invoke void @f1()
 | |
|           to label %try.cont19 unwind label %catch
 | |
| 
 | |
| ; CHECK: catch.preheader:
 | |
| ; CHECK-NEXT: landingpad
 | |
| ; CHECK: br label %catch
 | |
| 
 | |
| ; CHECK: catch.preheader.split-lp:
 | |
| ; CHECK-NEXT: landingpad
 | |
| ; CHECK: br label %catch
 | |
| 
 | |
| catch:                                            ; preds = %if.else, %entry
 | |
|   %0 = landingpad { i8*, i32 }
 | |
|           catch i8* bitcast ({ i8*, i8*, i8* }* @catchtypeinfo to i8*)
 | |
|   invoke void @f3()
 | |
|           to label %if.else unwind label %eh.resume
 | |
| 
 | |
| if.else:                                          ; preds = %catch
 | |
|   invoke void @f2()
 | |
|           to label %try.cont19 unwind label %catch
 | |
| 
 | |
| try.cont19:                                       ; preds = %if.else, %entry
 | |
|   ret void
 | |
| 
 | |
| eh.resume:                                        ; preds = %catch
 | |
|   %1 = landingpad { i8*, i32 }
 | |
|           cleanup
 | |
|           catch i8* bitcast ({ i8*, i8*, i8* }* @catchtypeinfo to i8*)
 | |
|   resume { i8*, i32 } undef
 | |
| }
 | |
| 
 | |
| declare i32 @__gxx_personality_v0(...)
 | |
| 
 | |
| declare void @f1()
 | |
| 
 | |
| declare void @f2()
 | |
| 
 | |
| declare void @f3()
 |