1414
1515; See also: libstd/rt/unwind/mod.rs
1616
17- define i8* @rust_try (void (i8* )* %f , i8* %env ) {
17+ define i8* @rust_try (void (i8* )* %f , i8* %env )
18+ personality i8* bitcast (i32 (...)* @rust_eh_personality_catch to i8* )
19+ {
1820
1921 %1 = invoke i8* @rust_try_inner (void (i8* )* %f , i8* %env )
2022 to label %normal
@@ -24,13 +26,15 @@ normal:
2426 ret i8* %1
2527
2628catch:
27- landingpad { i8* , i32 } personality i8* bitcast ( i32 (...)* @rust_eh_personality_catch to i8* )
28- catch i8* null
29- ; rust_try_inner's landing pad does not resume unwinds, so execution will never reach here
29+ landingpad { i8* , i32 } catch i8* null
30+ ; rust_try_inner's landing pad does not resume unwinds, so execution will
31+ ; never reach here
3032 ret i8* null
3133}
3234
33- define internal i8* @rust_try_inner (void (i8* )* %f , i8* %env ) {
35+ define internal i8* @rust_try_inner (void (i8* )* %f , i8* %env )
36+ personality i8* bitcast (i32 (...)* @rust_eh_personality to i8* )
37+ {
3438
3539 invoke void %f (i8* %env )
3640 to label %normal
@@ -40,8 +44,7 @@ normal:
4044 ret i8* null
4145
4246catch:
43- %1 = landingpad { i8* , i32 } personality i8* bitcast (i32 (...)* @rust_eh_personality to i8* )
44- catch i8* null
47+ %1 = landingpad { i8* , i32 } catch i8* null
4548 ; extract and return pointer to the exception object
4649 %2 = extractvalue { i8* , i32 } %1 , 0
4750 ret i8* %2
0 commit comments