// RUN: %clang_cc1 -fsanitize=bounds -emit-llvm -triple x86_64-apple-darwin10 < %s | FileCheck %s | |
// CHECK: @f | |
double f(int b, int i) { | |
double a[b]; | |
// CHECK: trap | |
return a[i]; | |
} | |
// CHECK: @f2 | |
void f2() { | |
// everything is constant; no trap possible | |
// CHECK-NOT: trap | |
int a[2]; | |
a[1] = 42; | |
short *b = malloc(64); | |
b[5] = *a + a[1] + 2; | |
} | |
// CHECK: @f3 | |
void f3() { | |
int a[1]; | |
// CHECK: trap | |
a[2] = 1; | |
} |