blob: 9548fa0d0e1c441b1f22163e260030f4d9e897f0 [file] [log] [blame]
Argyrios Kyrtzidis7b2d21e2008-11-07 14:28:18 +00001// RUN: clang -checker-simple -verify %s &&
Zhongxing Xu2e971202008-10-25 14:11:23 +00002// RUN: clang -checker-simple -analyzer-store-region -verify %s
Zhongxing Xuef8b28e2008-10-17 05:19:52 +00003
Zhongxing Xu72e16822008-10-24 08:51:58 +00004struct s {
5 int data;
6 int data_array[10];
7};
Zhongxing Xuef8b28e2008-10-17 05:19:52 +00008
Zhongxing Xu234a7d22008-10-27 09:19:25 +00009typedef struct {
10 int data;
11} STYPE;
12
Zhongxing Xu04b90bc2008-11-02 13:17:44 +000013void g1(struct s* p);
14
Zhongxing Xuef8b28e2008-10-17 05:19:52 +000015void f(void) {
16 int a[10];
17 int (*p)[10];
18 p = &a;
19 (*p)[3] = 1;
20
21 struct s d;
22 struct s *q;
23 q = &d;
Zhongxing Xu72e16822008-10-24 08:51:58 +000024 q->data = 3;
25 d.data_array[9] = 17;
Zhongxing Xuef8b28e2008-10-17 05:19:52 +000026}
Zhongxing Xu2e971202008-10-25 14:11:23 +000027
28void f2() {
29 char *p = "/usr/local";
30 char (*q)[4];
31 q = &"abc";
32}
Zhongxing Xu234a7d22008-10-27 09:19:25 +000033
34void f3() {
35 STYPE s;
36}
Zhongxing Xudf2aa1e2008-10-31 10:23:14 +000037
38void f4() {
39 int a[] = { 1, 2, 3};
40 int b[3] = { 1, 2 };
41}
Zhongxing Xu04b90bc2008-11-02 13:17:44 +000042
43void f5() {
44 struct s data;
45 g1(&data);
46}
Zhongxing Xub6701332008-11-13 07:59:15 +000047
48void f6() {
49 char *p;
50 p = __builtin_alloca(10);
51 p[1] = 'a';
52}
Zhongxing Xufb75b252008-11-13 08:44:52 +000053
54struct s2;
55
56void g2(struct s2 *p);
57
58void f7() {
59 struct s2 *p = __builtin_alloca(10);
60 g2(p);
61}
Zhongxing Xu26134a12008-11-13 09:20:05 +000062
63void f8() {
64 int a[10];
65 a[sizeof(a) - 1] = 1;
66}