blob: 3271b76dcbd2b85e9bfb66bbfc0bbf3e2c41f494 [file] [log] [blame]
Nuno Lopes08a9ae92012-05-09 15:53:34 +00001// RUN: %clang_cc1 -fbounds-checking=4 -emit-llvm -triple x86_64-apple-darwin10 < %s | FileCheck %s
2
3// CHECK: @f
4double f(int b, int i) {
5 double a[b];
6 return a[i];
Nuno Lopes3e86a042012-05-22 15:26:48 +00007 // CHECK: objectsize.i64({{.*}}, i1 false)
Nuno Lopes08a9ae92012-05-09 15:53:34 +00008 // CHECK: icmp uge i64 {{.*}}, 8
9}
10
11// CHECK: @f2
12void f2() {
13 int a[2];
Nuno Lopes3e86a042012-05-22 15:26:48 +000014 // CHECK: objectsize.i64({{.*}}, i1 false)
Nuno Lopes08a9ae92012-05-09 15:53:34 +000015 // CHECK: icmp uge i64 {{.*}}, 4
16 a[1] = 42;
17
18 short *b = malloc(64);
Nuno Lopes3e86a042012-05-22 15:26:48 +000019 // CHECK: objectsize.i64({{.*}}, i1 false)
Nuno Lopes08a9ae92012-05-09 15:53:34 +000020 // CHECK: icmp uge i64 {{.*}}, 4
21 // CHECK: getelementptr {{.*}}, i64 5
Nuno Lopes3e86a042012-05-22 15:26:48 +000022 // CHECK: objectsize.i64({{.*}}, i1 false)
Nuno Lopes08a9ae92012-05-09 15:53:34 +000023 // CHECK: icmp uge i64 {{.*}}, 2
24 b[5] = a[1]+2;
25}