summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/DeadArgElim/aggregates.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/DeadArgElim/aggregates.ll')
-rw-r--r--llvm/test/Transforms/DeadArgElim/aggregates.ll26
1 files changed, 25 insertions, 1 deletions
diff --git a/llvm/test/Transforms/DeadArgElim/aggregates.ll b/llvm/test/Transforms/DeadArgElim/aggregates.ll
index 68d25342558..2eca76a4a4e 100644
--- a/llvm/test/Transforms/DeadArgElim/aggregates.ll
+++ b/llvm/test/Transforms/DeadArgElim/aggregates.ll
@@ -159,4 +159,28 @@ define internal i8 @outer() {
%val = load i8, i8* %resptr
ret i8 %val
-} \ No newline at end of file
+}
+
+define internal { i32 } @agg_ret() {
+entry:
+ unreachable
+}
+
+; CHECK-LABEL: define void @PR24906
+; CHECK: %[[invoke:.*]] = invoke i32 @agg_ret()
+; CHECK: %[[oldret:.*]] = insertvalue { i32 } undef, i32 %[[invoke]], 0
+; CHECK: phi { i32 } [ %[[oldret]],
+define void @PR24906() personality i32 (i32)* undef {
+entry:
+ %tmp2 = invoke { i32 } @agg_ret()
+ to label %bb3 unwind label %bb4
+
+bb3:
+ %tmp3 = phi { i32 } [ %tmp2, %entry ]
+ unreachable
+
+bb4:
+ %tmp4 = landingpad { i8*, i32 }
+ cleanup
+ unreachable
+}
OpenPOWER on IntegriCloud