// #target: macos-x64 fn int foo() { return 1; } fn void test() { int x = foo(); if (x > 0) return; unreachable(); x++; } /* #expect: unreachable.ll define void @unreachable_test() #0 { entry: %x = alloca i32, align 4 %0 = call i32 @unreachable_foo() store i32 %0, ptr %x, align 4 %1 = load i32, ptr %x, align 4 %gt = icmp sgt i32 %1, 0 br i1 %gt, label %if.then, label %if.exit if.then: ; preds = %entry ret void if.exit: ; preds = %entry %2 = load ptr, ptr @std_core_builtin_panic, align 8 call void %2(ptr @.str, i64 30, ptr @.str.1, i64 14, ptr @.str.2, i64 4, i32 10) unreachable after.unreachable: ; No predecessors! %3 = load i32, ptr %x, align 4 %add = add i32 %3, 1 store i32 %add, ptr %x, align 4 ret void }