// RUN: %clang_cc1 -verify -fsyntax-only %s | |
int x(*g); // expected-error {{use of undeclared identifier 'g'}} | |
struct Type { | |
int Type; | |
}; | |
// PR4451 - We should recover well from the typo of '::' as ':' in a2. | |
namespace y { | |
struct a { }; | |
typedef int b; | |
} | |
y::a a1; | |
y:a a2; // expected-error {{unexpected ':' in nested name specifier}} | |
y::a a3 = a2; | |
// Some valid colons: | |
void foo() { | |
y: // label | |
y::a s; | |
int a = 4; | |
a = a ? a : a+1; | |
} | |
struct b : y::a {}; | |
template <typename T> | |
class someclass { | |
int bar() { | |
T *P; | |
return 1 ? P->x : P->y; | |
} | |
}; | |
enum { fooenum = 1 }; | |
struct a { | |
int Type : fooenum; | |
}; | |
void test(struct Type *P) { | |
int Type; | |
Type = 1 ? P->Type : Type; | |
Type = (y:b) 4; // expected-error {{unexpected ':' in nested name specifier}} | |
Type = 1 ? ( | |
(y:b) // expected-error {{unexpected ':' in nested name specifier}} | |
4) : 5; | |
} |