@@ -15,29 +15,27 @@ void test() {
1515
1616 // CHECK: call void @llvm.lifetime.start.p0(ptr{{.*}} %[[AGG1]])
1717 // CHECK: invoke void @func_that_throws(ptr{{.*}} %[[AGG1]])
18- // CHECK-NEXT: to label %[[CONT1:.*]] unwind label %[[LPAD1 :.*]]
18+ // CHECK-NEXT: to label %[[CONT1:.*]] unwind label %[[LPAD :.*]]
1919
2020 // CHECK: [[CONT1]]:
21+
22+ // CHECK-NEXT: call void @llvm.lifetime.end.p0(ptr{{.*}} %[[AGG1]])
2123 // CHECK-NEXT: call void @llvm.lifetime.start.p0(ptr{{.*}} %[[AGG2]])
22- // CHECK: invoke void @func_that_throws (ptr{{.*}} %[[AGG2]])
23- // CHECK-NEXT: to label %[[CONT2:.*]] unwind label %[[LPAD2:.* ]]
24+ // CHECK: invoke void @_func_that_throws (ptr{{.*}} %[[AGG2]])
25+ // CHECK-NEXT: to label %[[CONT2:.*]] unwind label %[[LPAD ]]
2426
2527 // CHECK: [[CONT2]]:
26- // CHECK-DAG: call void @llvm.lifetime.end.p0(ptr{{.*}} %[[AGG2]])
27- // CHECK-DAG: call void @llvm.lifetime.end.p0(ptr{{.*}} %[[AGG1]])
28+ // CHECK-NEXT: call void @llvm.lifetime.end.p0(ptr{{.*}} %[[AGG2]])
2829 // CHECK: br label %[[TRY_CONT:.*]]
2930
30- // CHECK: [[LPAD1]]:
31- // CHECK: landingpad
32- // CHECK: br label %[[EHCLEANUP:.*]]
33-
34- // CHECK: [[LPAD2]]:
31+ // CHECK: [[LPAD]]:
3532 // CHECK: landingpad
36- // CHECK: call void @llvm.lifetime.end.p0(ptr{{.*}} %[[AGG2]])
37- // CHECK: br label %[[EHCLEANUP]]
33+ // CHECK-NOT: call void @llvm.lifetime.end.p0(ptr{{.*}} %[[AGG1]])
34+ // CHECK-NOT: call void @llvm.lifetime.end.p0(ptr{{.*}} %[[AGG2]])
35+ // CHECK: br label %[[TRY_CONT]]
3836
39- // CHECK: [[EHCLEANUP ]]:
40- // CHECK: call void @llvm.lifetime.end.p0(ptr{{.*}} %[[AGG1]])
37+ // CHECK: [[TRY_CONT ]]:
38+ // CHECK-NEXT: ret void
4139 try {
4240 func_that_throws (Trivial{0 });
4341 func_that_throws (Trivial{0 });
0 commit comments