define fastcc void @_ZSt19__throw_ios_failurePKc() {
entry:
call fastcc void @_ZNSsC1EPKcRKSaIcE( )
- unwind
+ unreachable
}
define void @_GLOBAL__D__ZSt23lexicographical_compareIPKaS1_EbT_S2_T0_S3_() {
to label %try_exit.0 unwind label %try_catch.0
try_catch.0: ; preds = %entry
- unreachable
+ %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
+ catch i8* null
+ resume { i8*, i32 } %exn
try_exit.0: ; preds = %entry
- unwind
+ unreachable
}
define fastcc void @_ZNSt11logic_errorC1ERKSs() {
define fastcc void @_ZSt20__throw_length_errorPKc() {
entry:
call fastcc void @_ZNSt12length_errorC1ERKSs( )
- unwind
+ unreachable
}
define fastcc void @_ZNSt12length_errorC1ERKSs() {
to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i
invoke_catch.i: ; preds = %entry
- unwind
+ %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
+ catch i8* null
+ resume { i8*, i32 } %exn
_ZNSt11logic_errorC2ERKSs.exit: ; preds = %entry
ret void
to label %invoke_cont.1 unwind label %invoke_catch.1
invoke_catch.1: ; preds = %entry
+ %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
+ catch i8* null
call fastcc void @_ZNSaIcED1Ev( )
- unwind
+ resume { i8*, i32 } %exn
invoke_cont.1: ; preds = %entry
call fastcc void @_ZNSaIcEC2ERKS_( )
entry:
unreachable
}
+
+declare i32 @__gxx_personality_v0(...)
define fastcc void @_ZSt20__throw_length_errorPKc() {
entry:
call fastcc void @_ZNSt12length_errorC1ERKSs( )
- unwind
+ ret void
}
define fastcc void @_ZNSs16_S_construct_auxIPKcEEPcT_S3_RKSaIcE12__false_type() {
to label %invoke_cont.1 unwind label %invoke_catch.1
invoke_catch.1: ; preds = %entry
+ %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
+ catch i8* null
call fastcc void @_ZNSaIcED1Ev( )
- unwind
+ resume { i8*, i32 } %exn
invoke_cont.1: ; preds = %entry
call fastcc void @_ZNSaIcEC2ERKS_( )
to label %_ZNSt11logic_errorC2ERKSs.exit unwind label %invoke_catch.i
invoke_catch.i: ; preds = %entry
- unwind
+ %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
+ catch i8* null
+ resume { i8*, i32 } %exn
_ZNSt11logic_errorC2ERKSs.exit: ; preds = %entry
ret void
entry:
ret void
}
+
+declare i32 @__gxx_personality_v0(...)
to label %1 unwind label %Rethrow
ret i32 0
Rethrow:
- unwind
+ %exn = landingpad {i8*, i32} personality i32 (...)* @__gxx_personality_v0
+ catch i8* null
+ resume { i8*, i32 } %exn
}
-
-; Verify that simplifycfg isn't duplicating 'unwind' instructions. Doing this
-; is bad because it discourages commoning.
-define i32 @test2(i1 %c) {
-; CHECK: @test2
-; CHECK: T:
-; CHECK-NEXT: call void @bar()
-; CHECK-NEXT: br label %F
- br i1 %c, label %T, label %F
-T:
- call void @bar()
- br label %F
-F:
- unwind
-}
+declare i32 @__gxx_personality_v0(...)