1 ; RUN: llc < %s -mtriple=i686-pc-win32 | FileCheck %s
3 define void @test1(i32 %c) {
7 %tobool = icmp eq i32 %c, 0
8 br i1 %tobool, label %if.end, label %if.then
15 call void @crash(i8* %0)
18 ; There is no need to adjust the stack after the call, since
19 ; the function is noreturn and that code will therefore never run.
24 define void @test2(i32 %c) {
27 %0 = alloca i8, i32 %c
28 %tobool = icmp eq i32 %c, 0
29 br i1 %tobool, label %if.end, label %if.then
36 call void @crash2(i8* %0)
38 ; CHECK: calll _crash2
39 ; Even though _crash2 is not marked noreturn, it is in practice because
40 ; of the "unreachable" right after it. This happens e.g. when falling off
41 ; a non-void function after a call.
46 declare void @crash(i8*) noreturn
47 declare void @crash2(i8*)