Home | History | Annotate | Download | only in SemaCXX
      1 // RUN: %clang_cc1 -fsyntax-only -Wexit-time-destructors %s -verify
      2 
      3 namespace test1 {
      4   struct A { ~A(); };
      5   A a; // expected-warning {{declaration requires an exit-time destructor}}
      6   A b[10]; // expected-warning {{declaration requires an exit-time destructor}}
      7   A c[10][10]; // expected-warning {{declaration requires an exit-time destructor}}
      8 
      9   A &d = a;
     10   A &e = b[5];
     11   A &f = c[5][7];
     12 }
     13 
     14 namespace test2 {
     15 void f() {
     16   struct A { ~A() { } };
     17 
     18   static A a; // expected-warning {{declaration requires an exit-time destructor}}
     19   static A b[10]; // expected-warning {{declaration requires an exit-time destructor}}
     20   static A c[10][10]; // expected-warning {{declaration requires an exit-time destructor}}
     21 
     22   static A &d = a;
     23   static A &e = b[5];
     24   static A &f = c[5][7];
     25 }
     26 
     27 }
     28