102 lines
2.4 KiB
C
102 lines
2.4 KiB
C
// RUN: %clang_cc1 -fsyntax-only -verify -pedantic -fblocks %s
|
|
|
|
// PR2241
|
|
float test2241[2] = {
|
|
1e, // expected-error {{exponent}}
|
|
1ee0 // expected-error {{exponent}}
|
|
};
|
|
|
|
|
|
// Testcase derived from PR2692
|
|
static void f (char * (*g) (char **, int), char **p, ...) {
|
|
char *s;
|
|
va_list v; // expected-error {{identifier}}
|
|
s = g (p, __builtin_va_arg(v, int)); // expected-error {{identifier}}
|
|
}
|
|
|
|
|
|
// PR3172
|
|
} // expected-error {{extraneous closing brace ('}')}}
|
|
|
|
|
|
// rdar://6094870
|
|
void test(int a) {
|
|
struct { int i; } x;
|
|
|
|
if (x.hello) // expected-error {{no member named 'hello'}}
|
|
test(0);
|
|
else
|
|
;
|
|
|
|
if (x.hello == 0) // expected-error {{no member named 'hello'}}
|
|
test(0);
|
|
else
|
|
;
|
|
|
|
if ((x.hello == 0)) // expected-error {{no member named 'hello'}}
|
|
test(0);
|
|
else
|
|
;
|
|
|
|
// PR12595
|
|
if (x.i == 0)) // expected-error {{extraneous ')' after condition, expected a statement}}
|
|
test(0);
|
|
else
|
|
;
|
|
}
|
|
|
|
|
|
|
|
char (((( /* expected-note {{to match this '('}} */
|
|
*X x ] )))); /* expected-error {{expected ')'}} */
|
|
|
|
; // expected-warning {{extra ';' outside of a function}}
|
|
|
|
|
|
|
|
|
|
struct S { void *X, *Y; };
|
|
|
|
struct S A = {
|
|
&BADIDENT, 0 /* expected-error {{use of undeclared identifier}} */
|
|
};
|
|
|
|
// rdar://6248081
|
|
void test6248081() {
|
|
[10] // expected-error {{expected expression}}
|
|
}
|
|
|
|
struct forward; // expected-note{{forward declaration of 'struct forward'}}
|
|
void x(struct forward* x) {switch(x->a) {}} // expected-error {{incomplete definition of type}}
|
|
|
|
// PR3410
|
|
void foo() {
|
|
int X;
|
|
X = 4 // expected-error{{expected ';' after expression}}
|
|
}
|
|
|
|
// rdar://9045701
|
|
void test9045701(int x) {
|
|
#define VALUE 0
|
|
x = VALUE // expected-error{{expected ';' after expression}}
|
|
}
|
|
|
|
// rdar://7980651
|
|
typedef int intptr_t; // expected-note {{'intptr_t' declared here}}
|
|
void bar(intptr y); // expected-error {{unknown type name 'intptr'; did you mean 'intptr_t'?}}
|
|
|
|
void test1(void) {
|
|
int x = 2: // expected-error {{expected ';' at end of declaration}}
|
|
int y = x;
|
|
int z = y;
|
|
}
|
|
|
|
void test2(int x) {
|
|
#define VALUE2 VALUE+VALUE
|
|
#define VALUE3 VALUE+0
|
|
#define VALUE4(x) x+0
|
|
x = VALUE2 // expected-error{{expected ';' after expression}}
|
|
x = VALUE3 // expected-error{{expected ';' after expression}}
|
|
x = VALUE4(0) // expected-error{{expected ';' after expression}}
|
|
}
|