blob: 3916acfda1e01a8fd4b016764501eb502e6cd8d7 [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 -fsyntax-only -verify -pedantic -fblocks %s
Eli Friedman09762782008-08-20 22:07:34 +00002
Chris Lattner18914bc2008-12-12 06:19:11 +00003// PR2241
Daniel Dunbardbb4f212009-04-15 21:35:27 +00004float test2241[2] = {
Chris Lattner18914bc2008-12-12 06:19:11 +00005 1e, // expected-error {{exponent}}
6 1ee0 // expected-error {{exponent}}
7};
8
9
Eli Friedman09762782008-08-20 22:07:34 +000010// Testcase derived from PR2692
Mike Stumpd1969d82009-07-22 00:43:08 +000011static void f (char * (*g) (char **, int), char **p, ...) {
12 char *s;
13 va_list v; // expected-error {{identifier}}
14 s = g (p, __builtin_va_arg(v, int)); // expected-error {{identifier}}
Eli Friedman09762782008-08-20 22:07:34 +000015}
16
Chris Lattner90b93d62008-12-08 21:59:01 +000017
18// PR3172
Nico Weber883692e2012-01-17 01:04:27 +000019} // expected-error {{extraneous closing brace ('}')}}
Chris Lattner90b93d62008-12-08 21:59:01 +000020
21
Chris Lattner18914bc2008-12-12 06:19:11 +000022// rdar://6094870
Mike Stumpd1969d82009-07-22 00:43:08 +000023void test(int a) {
Chris Lattner18914bc2008-12-12 06:19:11 +000024 struct { int i; } x;
25
26 if (x.hello) // expected-error {{no member named 'hello'}}
27 test(0);
28 else
29 ;
30
31 if (x.hello == 0) // expected-error {{no member named 'hello'}}
32 test(0);
33 else
34 ;
35
36 if ((x.hello == 0)) // expected-error {{no member named 'hello'}}
37 test(0);
38 else
39 ;
40
41 if (x.i == 0)) // expected-error {{expected expression}}
42 test(0);
43 else
44 ;
45}
46
Chris Lattner0ba0dd62008-12-12 06:21:18 +000047
48
49char (((( /* expected-note {{to match this '('}} */
50 *X x ] )))); /* expected-error {{expected ')'}} */
51
Richard Trieu2fe9b7f2011-12-15 00:38:15 +000052; // expected-warning {{extra ';' outside of a function}}
Chris Lattner0ba0dd62008-12-12 06:21:18 +000053
54
55
56
57struct S { void *X, *Y; };
58
59struct S A = {
60&BADIDENT, 0 /* expected-error {{use of undeclared identifier}} */
61};
Chris Lattnerfdb548e2008-12-12 19:20:14 +000062
63// rdar://6248081
Mike Stumpd1969d82009-07-22 00:43:08 +000064void test6248081() {
Chris Lattnerfdb548e2008-12-12 19:20:14 +000065 [10] // expected-error {{expected expression}}
66}
67
Douglas Gregor4ec339f2009-01-19 19:26:10 +000068struct forward; // expected-note{{forward declaration of 'struct forward'}}
Eli Friedman5f764942008-12-17 22:22:03 +000069void x(struct forward* x) {switch(x->a) {}} // expected-error {{incomplete definition of type}}
Eli Friedman2342ef72008-12-17 22:19:57 +000070
Douglas Gregor4b2d3f72009-02-26 21:00:50 +000071// PR3410
72void foo() {
73 int X;
74 X = 4 // expected-error{{expected ';' after expression}}
75}
Chris Lattner9a65b812010-05-14 17:44:56 +000076
Argyrios Kyrtzidis7ddf6b22011-06-24 17:58:59 +000077// rdar://9045701
78void test9045701(int x) {
79#define VALUE 0
80 x = VALUE // expected-error{{expected ';' after expression}}
81}
Chris Lattner9a65b812010-05-14 17:44:56 +000082
83// rdar://7980651
84typedef int intptr_t; // expected-note {{'intptr_t' declared here}}
85void bar(intptr y); // expected-error {{unknown type name 'intptr'; did you mean 'intptr_t'?}}
John McCall837b1a32010-09-07 18:31:03 +000086
87void test1(void) {
88 int x = 2: // expected-error {{expected ';' at end of declaration}}
89 int y = x;
90 int z = y;
91}
Argyrios Kyrtzidisb73377e2011-07-07 03:40:34 +000092
93void test2(int x) {
94#define VALUE2 VALUE+VALUE
95#define VALUE3 VALUE+0
96#define VALUE4(x) x+0
97 x = VALUE2 // expected-error{{expected ';' after expression}}
98 x = VALUE3 // expected-error{{expected ';' after expression}}
99 x = VALUE4(0) // expected-error{{expected ';' after expression}}
100}