blob: c2d98c40fe9d6958ffb50f434de85a1a99951a8a [file] [log] [blame]
Ted Kremenek610068c2011-01-15 02:58:47 +00001// RUN: %clang -Wuninitialized-experimental -fsyntax-only %s
2
3int test1() {
4 int x;
5 return x; // expected-warning{{use of uninitialized variable 'x'}}
6}
7
8int test2() {
9 int x = 0;
10 return x; // no-warning
11}
12
13int test3() {
14 int x;
15 x = 0;
16 return x; // no-warning
17}
18
19int test4() {
20 int x;
21 ++x; // expected-warning{{use of uninitialized variable 'x'}}
22 return x;
23}
24
25int test5() {
26 int x, y;
27 x = y; // expected-warning{{use of uninitialized variable 'y'}}
28 return x;
29}
30
31int test6() {
32 int x;
33 x += 2; // expected-warning{{use of uninitialized variable 'x'}}
34 return x;
35}
36
37int test7(int y) {
38 int x;
39 if (y)
40 x = 1;
41 return x; // expected-warning{{use of uninitialized variable 'x'}}
42}
43
44int test8(int y) {
45 int x;
46 if (y)
47 x = 1;
48 else
49 x = 0;
50 return x; // no-warning
51}
52
53int test9(int n) {
54 int x;
55 for (unsigned i = 0 ; i < n; ++i) {
56 if (i == n - 1)
57 break;
58 x = 1;
59 }
60 return x; // expected-warning{{use of uninitialized variable 'x'}}
61}
62
63int test10(unsigned n) {
64 int x;
65 for (unsigned i = 0 ; i < n; ++i) {
66 x = 1;
67 }
68 return x; // expected-warning{{use of uninitialized variable 'x'}}
69}
70
71int test11(unsigned n) {
72 int x;
73 for (unsigned i = 0 ; i <= n; ++i) {
74 x = 1;
75 }
76 return x; // expected-warning{{use of uninitialized variable 'x'}}
77}
78
79void test12(unsigned n) {
80 for (unsigned i ; n ; ++i) ; // expected-warning{{use of uninitialized variable 'i'}}
81}
82
83int test13() {
84 static int i;
85 return i; // no-warning
86}
87
88