xref: /aosp_15_r20/external/clang/test/Analysis/virtualcall.h (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li #ifdef AS_SYSTEM
2*67e74705SXin Li #pragma clang system_header
3*67e74705SXin Li 
4*67e74705SXin Li namespace system {
5*67e74705SXin Li   class A {
6*67e74705SXin Li   public:
A()7*67e74705SXin Li     A() {
8*67e74705SXin Li       foo(); // no-warning
9*67e74705SXin Li     }
10*67e74705SXin Li 
11*67e74705SXin Li     virtual int foo();
12*67e74705SXin Li   };
13*67e74705SXin Li }
14*67e74705SXin Li 
15*67e74705SXin Li #else
16*67e74705SXin Li 
17*67e74705SXin Li namespace header {
18*67e74705SXin Li   class A {
19*67e74705SXin Li   public:
A()20*67e74705SXin Li     A() {
21*67e74705SXin Li       foo(); // expected-warning{{Call virtual functions during construction or destruction will never go to a more derived class}}
22*67e74705SXin Li     }
23*67e74705SXin Li 
24*67e74705SXin Li     virtual int foo();
25*67e74705SXin Li   };
26*67e74705SXin Li }
27*67e74705SXin Li 
28*67e74705SXin Li #endif
29