| // RUN: %clang_cc1 -fsyntax-only -Wexit-time-destructors %s -verify | 
 |  | 
 | namespace test1 { | 
 |   struct A { ~A(); }; | 
 |   A a; // expected-warning {{declaration requires an exit-time destructor}} | 
 |   A b[10]; // expected-warning {{declaration requires an exit-time destructor}} | 
 |   A c[10][10]; // expected-warning {{declaration requires an exit-time destructor}} | 
 |  | 
 |   A &d = a; | 
 |   A &e = b[5]; | 
 |   A &f = c[5][7]; | 
 | } | 
 |  | 
 | namespace test2 { | 
 | void f() { | 
 |   struct A { ~A() { } }; | 
 |    | 
 |   static A a; // expected-warning {{declaration requires an exit-time destructor}} | 
 |   static A b[10]; // expected-warning {{declaration requires an exit-time destructor}} | 
 |   static A c[10][10]; // expected-warning {{declaration requires an exit-time destructor}} | 
 |  | 
 |   static A &d = a; | 
 |   static A &e = b[5]; | 
 |   static A &f = c[5][7]; | 
 | } | 
 |  | 
 | } |