xref: /minix3/external/bsd/llvm/dist/clang/test/SemaCXX/warn-exit-time-destructors.cpp (revision eda6f5931d42c77e1480347b1fc3eef2f8d33806)
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