Nuno Lopes | 08a9ae9 | 2012-05-09 15:53:34 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -fbounds-checking=4 -emit-llvm -triple x86_64-apple-darwin10 < %s | FileCheck %s |
2 | |||||
3 | // CHECK: @f | ||||
4 | double f(int b, int i) { | ||||
5 | double a[b]; | ||||
Nuno Lopes | def1849 | 2012-05-22 17:19:45 +0000 | [diff] [blame^] | 6 | // CHECK: trap |
Nuno Lopes | 08a9ae9 | 2012-05-09 15:53:34 +0000 | [diff] [blame] | 7 | return a[i]; |
Nuno Lopes | 08a9ae9 | 2012-05-09 15:53:34 +0000 | [diff] [blame] | 8 | } |
9 | |||||
10 | // CHECK: @f2 | ||||
11 | void f2() { | ||||
Nuno Lopes | def1849 | 2012-05-22 17:19:45 +0000 | [diff] [blame^] | 12 | // everything is constant; no trap possible |
13 | // CHECK-NOT: trap | ||||
Nuno Lopes | 08a9ae9 | 2012-05-09 15:53:34 +0000 | [diff] [blame] | 14 | int a[2]; |
Nuno Lopes | 08a9ae9 | 2012-05-09 15:53:34 +0000 | [diff] [blame] | 15 | a[1] = 42; |
16 | |||||
17 | short *b = malloc(64); | ||||
Nuno Lopes | def1849 | 2012-05-22 17:19:45 +0000 | [diff] [blame^] | 18 | b[5] = *a + a[1] + 2; |
19 | } | ||||
20 | |||||
21 | // CHECK: @f3 | ||||
22 | void f3() { | ||||
23 | int a[1]; | ||||
24 | // CHECK: trap | ||||
25 | a[2] = 1; | ||||
Nuno Lopes | 08a9ae9 | 2012-05-09 15:53:34 +0000 | [diff] [blame] | 26 | } |