| #ifdef AS_SYSTEM | |
| #pragma clang system_header | |
| namespace system { | |
| class A { | |
| public: | |
| A() { | |
| foo(); // no-warning | |
| } | |
| virtual int foo(); | |
| }; | |
| } | |
| #else | |
| namespace header { | |
| class A { | |
| public: | |
| A() { | |
| foo(); // expected-warning{{Call virtual functions during construction or destruction will never go to a more derived class}} | |
| } | |
| virtual int foo(); | |
| }; | |
| } | |
| #endif |