blob: b95c23fb28b0ff9db3fc09a30defb22e89ab2fda [file] [log] [blame]
Daniel Dunbard7d5f022009-03-24 02:24:46 +00001// RUN: clang-cc -fsyntax-only -verify %s
Reid Spencer5f016e22007-07-11 17:01:13 +00002
3int test1() {
4 { ; { ;;}} ;;
5}
6
7int test2() {
8 if (0) { if (1) {} } else { }
9
10 do { } while (0);
11
12 while (0) while(0) do ; while(0);
13
14 for (0;0;0)
15 for (;;)
16 for (9;0;2)
17 ;
18 for (int X = 0; 0; 0);
19}
20
21int test3() {
22 switch (0) {
23
24 case 4:
25 if (0) {
26 case 6: ;
27 }
28 default:
29 ;
30 }
31}
32
33int test4() {
Chris Lattnera668e8e2008-11-13 18:42:17 +000034 if (0); // expected-warning {{if statement has empty body}}
Reid Spencer5f016e22007-07-11 17:01:13 +000035
36 int X; // declaration in a block.
37
Chris Lattnera668e8e2008-11-13 18:42:17 +000038foo: if (0); // expected-warning {{if statement has empty body}}
Reid Spencer5f016e22007-07-11 17:01:13 +000039}
40
41typedef int t;
42void test5() {
Chris Lattnera668e8e2008-11-13 18:42:17 +000043 if (0); // expected-warning {{if statement has empty body}}
Reid Spencer5f016e22007-07-11 17:01:13 +000044
Chris Lattnera668e8e2008-11-13 18:42:17 +000045 t x = 0;
Reid Spencer5f016e22007-07-11 17:01:13 +000046
Chris Lattnera668e8e2008-11-13 18:42:17 +000047 if (0); // expected-warning {{if statement has empty body}}
Reid Spencer5f016e22007-07-11 17:01:13 +000048}
49
Chris Lattner19504402008-11-13 18:52:53 +000050
51void test6(void) {
52 do
53 . // expected-error {{expected expression}}
54 while (0);
55}
56
Chris Lattner7b3684a2009-06-14 00:23:56 +000057int test7() {
58 return 4 // expected-error {{expected ';' after return statement}}
59}