Home | History | Annotate | Download | only in SemaCXX
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s
      2 
      3 struct S {
      4   S();  // expected-note {{because type 'S' has a user-provided default constructor}}
      5 };
      6 
      7 struct { // expected-error {{anonymous structs and classes must be class members}}
      8 };
      9 
     10 struct E {
     11   struct {
     12     S x;  // expected-error {{anonymous struct member 'x' has a non-trivial constructor}}
     13   };
     14   static struct {
     15   };
     16 };
     17 
     18 template <class T> void foo(T);
     19 typedef struct { // expected-note {{use a tag name here to establish linkage prior to definition}} expected-note {{declared here}}
     20   void test() {
     21     foo(this); // expected-warning {{template argument uses unnamed type}}
     22   }
     23 } A; // expected-error {{unsupported: typedef changes linkage of anonymous type, but linkage was already computed}}
     24