blob: 178427e4b3c22f302e9a6b0cfe39116fed83a09b [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 ;
Chris Lattnerbddc7e52012-04-28 16:24:20 +000040
41 // PR12595
42 if (x.i == 0)) // expected-error {{extraneous ')' after condition, expected a statement}}
Chris Lattner18914bc2008-12-12 06:19:11 +000043 test(0);
44 else
45 ;
46}
47
Chris Lattner0ba0dd62008-12-12 06:21:18 +000048
49
50char (((( /* expected-note {{to match this '('}} */
51 *X x ] )))); /* expected-error {{expected ')'}} */
52
Richard Trieu2fe9b7f2011-12-15 00:38:15 +000053; // expected-warning {{extra ';' outside of a function}}
Chris Lattner0ba0dd62008-12-12 06:21:18 +000054
55
56
57
58struct S { void *X, *Y; };
59
60struct S A = {
61&BADIDENT, 0 /* expected-error {{use of undeclared identifier}} */
62};
Chris Lattnerfdb548e2008-12-12 19:20:14 +000063
64// rdar://6248081
Mike Stumpd1969d82009-07-22 00:43:08 +000065void test6248081() {
Chris Lattnerfdb548e2008-12-12 19:20:14 +000066 [10] // expected-error {{expected expression}}
67}
68
Douglas Gregor4ec339f2009-01-19 19:26:10 +000069struct forward; // expected-note{{forward declaration of 'struct forward'}}
Eli Friedman5f764942008-12-17 22:22:03 +000070void x(struct forward* x) {switch(x->a) {}} // expected-error {{incomplete definition of type}}
Eli Friedman2342ef72008-12-17 22:19:57 +000071
Douglas Gregor4b2d3f72009-02-26 21:00:50 +000072// PR3410
73void foo() {
74 int X;
75 X = 4 // expected-error{{expected ';' after expression}}
76}
Chris Lattner9a65b812010-05-14 17:44:56 +000077
Argyrios Kyrtzidis7ddf6b22011-06-24 17:58:59 +000078// rdar://9045701
79void test9045701(int x) {
80#define VALUE 0
81 x = VALUE // expected-error{{expected ';' after expression}}
82}
Chris Lattner9a65b812010-05-14 17:44:56 +000083
84// rdar://7980651
85typedef int intptr_t; // expected-note {{'intptr_t' declared here}}
86void bar(intptr y); // expected-error {{unknown type name 'intptr'; did you mean 'intptr_t'?}}
John McCall837b1a32010-09-07 18:31:03 +000087
88void test1(void) {
89 int x = 2: // expected-error {{expected ';' at end of declaration}}
90 int y = x;
91 int z = y;
92}
Argyrios Kyrtzidisb73377e2011-07-07 03:40:34 +000093
94void test2(int x) {
95#define VALUE2 VALUE+VALUE
96#define VALUE3 VALUE+0
97#define VALUE4(x) x+0
98 x = VALUE2 // expected-error{{expected ';' after expression}}
99 x = VALUE3 // expected-error{{expected ';' after expression}}
100 x = VALUE4(0) // expected-error{{expected ';' after expression}}
101}