Anders Carlsson | 2b32dad | 2011-03-24 01:01:41 +0000 | [diff] [blame] | 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 | } |