1 ; RUN: opt -lint -disable-output < %s |& FileCheck %s
2 target datalayout = "e-p:64:64:64"
4 declare fastcc void @bar()
8 define i32 @foo() noreturn {
9 ; CHECK: Caller and callee calling convention differ
11 ; CHECK: Null pointer dereference
12 store i32 0, i32* null
13 ; CHECK: Null pointer dereference
15 ; CHECK: Undef pointer dereference
16 store i32 0, i32* undef
17 ; CHECK: Undef pointer dereference
19 ; CHECK: Memory reference address is misaligned
20 %x = inttoptr i32 1 to i32*
22 ; CHECK: Division by zero
24 ; CHECK: Division by zero
26 ; CHECK: Division by zero
28 ; CHECK: Division by zero
30 ; CHECK: extractelement index out of range
31 %ee = extractelement <4 x i32> zeroinitializer, i32 4
32 ; CHECK: insertelement index out of range
33 %ie = insertelement <4 x i32> zeroinitializer, i32 0, i32 4
34 ; CHECK: Shift count out of range
36 ; CHECK: Shift count out of range
38 ; CHECK: Shift count out of range
40 ; CHECK: xor(undef, undef)
41 %xx = xor i32 undef, undef
42 ; CHECK: sub(undef, undef)
43 %xs = sub i32 undef, undef
45 ; CHECK: Write to read-only memory
47 ; CHECK: Write to text section
48 store i32 8, i32* bitcast (i32()* @foo to i32*)
49 ; CHECK: Load from block address
50 %lb = load i32* bitcast (i8* blockaddress(@foo, %next) to i32*)
51 ; CHECK: Call to block address
52 call void()* bitcast (i8* blockaddress(@foo, %next) to void()*)()
57 ; CHECK: Static alloca outside of entry block
59 ; CHECK: Return statement in function with noreturn attribute
64 ; CHECK: unreachable immediately preceded by instruction without side effects
68 ; CHECK: Unnamed function with non-local linkage
69 define void @0() nounwind {
73 ; CHECK: va_start called in a non-varargs function
74 declare void @llvm.va_start(i8*)
75 define void @not_vararg(i8* %p) nounwind {
76 call void @llvm.va_start(i8* %p)
80 define void @use_indbr() {
81 indirectbr i8* bitcast (i32()* @foo to i8*), [label %block]