53 lines · plain
1; RUN: opt -passes=function-attrs -S < %s2 3; Regression test for a null-returning bug of getUnderlyingObjectAggressive().4; This should not crash.5define void @phi_cycle() {6bb:7 unreachable8 9bb1: ; preds = %bb1710 br label %bb211 12bb2: ; preds = %bb5, %bb113 %phi = phi ptr [ %phi6, %bb1 ], [ %phi6, %bb5 ]14 br i1 poison, label %bb4, label %bb315 16bb3: ; preds = %bb217 %getelementptr = getelementptr inbounds i8, ptr %phi, i32 poison18 br label %bb519 20bb4: ; preds = %bb221 br label %bb722 23bb5: ; preds = %bb15, %bb324 %phi6 = phi ptr [ %getelementptr, %bb3 ], [ %phi16, %bb15 ]25 br i1 poison, label %bb17, label %bb226 27bb7: ; preds = %bb15, %bb428 %phi8 = phi ptr [ %phi, %bb4 ], [ %phi16, %bb15 ]29 br i1 poison, label %bb11, label %bb930 31bb9: ; preds = %bb732 %getelementptr10 = getelementptr inbounds i8, ptr %phi8, i32 133 store i8 poison, ptr %phi8, align 134 br label %bb1535 36bb11: ; preds = %bb737 br i1 poison, label %bb13, label %bb1238 39bb12: ; preds = %bb1140 br label %bb1341 42bb13: ; preds = %bb12, %bb1143 %getelementptr14 = getelementptr inbounds i8, ptr %phi8, i32 poison44 br label %bb1545 46bb15: ; preds = %bb13, %bb947 %phi16 = phi ptr [ %getelementptr14, %bb13 ], [ %getelementptr10, %bb9 ]48 br i1 poison, label %bb5, label %bb749 50bb17: ; preds = %bb551 br label %bb152}53