Add a -lint pass which checks for common sources of undefined or likely
[oota-llvm.git] / test / Other / lint.ll
1 ; RUN: opt -lint -disable-output < %s |& FileCheck %s
2 target datalayout = "e-p:64:64:64"
3
4 declare fastcc void @bar()
5
6 define i32 @foo() noreturn {
7 ; CHECK: Caller and callee calling convention differ
8   call void @bar()
9 ; CHECK: Null pointer dereference
10   store i32 0, i32* null
11 ; CHECK: Null pointer dereference
12   %t = load i32* null
13 ; CHECK: Memory reference address is misaligned
14   %x = inttoptr i32 1 to i32*
15   load i32* %x, align 4
16 ; CHECK: Division by zero
17   %sd = sdiv i32 2, 0
18 ; CHECK: Division by zero
19   %ud = udiv i32 2, 0
20 ; CHECK: Division by zero
21   %sr = srem i32 2, 0
22 ; CHECK: Division by zero
23   %ur = urem i32 2, 0
24   br label %next
25
26 next:
27 ; CHECK: Static alloca outside of entry block
28   %a = alloca i32
29 ; CHECK: Return statement in function with noreturn attribute
30   ret i32 0
31 }