1// RUN: %clang_cc1 -verify -fsyntax-only %s 2 3int x(*g); // expected-error {{use of undeclared identifier 'g'}} 4 5struct Type { 6 int Type; 7}; 8 9// rdar://8365458 10// rdar://9132143 11typedef char bool; // expected-error {{redeclaration of C++ built-in type 'bool'}} 12 13// PR4451 - We should recover well from the typo of '::' as ':' in a2. 14namespace y { 15 struct a { }; 16 typedef int b; 17} 18 19y::a a1; 20y:a a2; // expected-error {{unexpected ':' in nested name specifier}} 21y::a a3 = a2; 22 23// Some valid colons: 24void foo() { 25y: // label 26 y::a s; 27 28 int a = 4; 29 a = a ? a : a+1; 30} 31 32struct b : y::a {}; 33 34template <typename T> 35class someclass { 36 37 int bar() { 38 T *P; 39 return 1 ? P->x : P->y; 40 } 41}; 42 43class asm_class_test { 44 void foo() __asm__("baz"); 45}; 46 47enum { fooenum = 1 }; 48 49struct a { 50 int Type : fooenum; 51}; 52 53void test(struct Type *P) { 54 int Type; 55 Type = 1 ? P->Type : Type; 56 57 Type = (y:b) 4; // expected-error {{unexpected ':' in nested name specifier}} 58 Type = 1 ? ( 59 (y:b) // expected-error {{unexpected ':' in nested name specifier}} 60 4) : 5; 61} 62 63struct test4 { 64 int x // expected-error {{expected ';' at end of declaration list}} 65 int y; 66 int z // expected-error {{expected ';' at end of declaration list}} 67}; 68 69// PR5825 70struct test5 {}; 71::new(static_cast<void*>(0)) test5; // expected-error {{expected unqualified-id}} 72 73 74// PR6782 75template<class T> 76class Class1; 77 78class Class2 { 79} // no ; 80 81typedef Class1<Class2> Type1; // expected-error {{cannot combine with previous 'class' declaration specifier}} 82 83// rdar : // 8307865 84struct CodeCompleteConsumer { 85}; 86 87void CodeCompleteConsumer::() { // expected-error {{xpected unqualified-id}} 88} 89 90; 91 92// PR8380 93extern "" // expected-error {{unknown linkage language}} 94test6a { ;// expected-error {{C++ requires a type specifier for all declarations}} \ 95 // expected-error {{expected ';' after top level declarator}} 96 97 int test6b; 98 99 100