@@ -13,30 +13,27 @@ void test() {
1313
1414 // CHECK: call void @llvm.lifetime.start.p0(ptr nonnull %[[AGG1]])
1515 // CHECK: invoke void @_Z16func_that_throws7Trivial(ptr noundef nonnull byval(%struct.Trivial) align 8 %[[AGG1]])
16- // CHECK-NEXT: to label %[[CONT1:.*]] unwind label %[[LPAD1 :.*]]
17-
16+ // CHECK-NEXT: to label %[[CONT1:.*]] unwind label %[[LPAD :.*]]
17+
1818 // CHECK: [[CONT1]]:
19+ // CHECK-NEXT: call void @llvm.lifetime.end.p0(ptr nonnull %[[AGG1]])
1920 // CHECK-NEXT: call void @llvm.lifetime.start.p0(ptr nonnull %[[AGG2]])
2021 // CHECK: invoke void @_Z16func_that_throws7Trivial(ptr noundef nonnull byval(%struct.Trivial) align 8 %[[AGG2]])
21- // CHECK-NEXT: to label %[[CONT2:.*]] unwind label %[[LPAD2:.* ]]
22+ // CHECK-NEXT: to label %[[CONT2:.*]] unwind label %[[LPAD ]]
2223
2324 // CHECK: [[CONT2]]:
24- // CHECK-DAG: call void @llvm.lifetime.end.p0(ptr nonnull %[[AGG2]])
25- // CHECK-DAG: call void @llvm.lifetime.end.p0(ptr nonnull %[[AGG1]])
25+ // CHECK-NEXT: call void @llvm.lifetime.end.p0(ptr nonnull %[[AGG2]])
2626 // CHECK: br label %[[TRY_CONT:.*]]
2727
28- // CHECK: [[LPAD1]]:
29- // CHECK: landingpad
30- // CHECK: br label %[[EHCLEANUP:.*]]
31-
32- // CHECK: [[LPAD2]]:
28+ // CHECK: [[LPAD]]:
3329 // CHECK: landingpad
34- // CHECK: call void @llvm.lifetime.end.p0(ptr nonnull %[[AGG2]])
35- // CHECK: br label %[[EHCLEANUP]]
36-
37- // CHECK: [[EHCLEANUP]]:
38- // CHECK: call void @llvm.lifetime.end.p0(ptr nonnull %[[AGG1]])
30+ // CHECK-NOT: call void @llvm.lifetime.end.p0(ptr nonnull %[[AGG1]])
31+ // CHECK-NOT: call void @llvm.lifetime.end.p0(ptr nonnull %[[AGG2]])
3932 // CHECK: call ptr @__cxa_begin_catch
33+ // CHECK: br label %[[TRY_CONT]]
34+
35+ // CHECK: [[TRY_CONT]]:
36+ // CHECK-NEXT: ret void
4037 try {
4138 func_that_throws (Trivial{0 });
4239 func_that_throws (Trivial{0 });
0 commit comments