xref: /aosp_15_r20/external/clang/test/PCH/macro-undef.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -emit-pch -o %t %s
2*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -include-pch %t %s -Wuninitialized -verify
3*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -include-pch %t %s -Wuninitialized -fdiagnostics-parseable-fixits 2>&1 | FileCheck %s
4*67e74705SXin Li 
5*67e74705SXin Li #ifndef HEADER
6*67e74705SXin Li #define HEADER
7*67e74705SXin Li 
8*67e74705SXin Li #define NULL 0
9*67e74705SXin Li template<typename T>
f()10*67e74705SXin Li void *f() {
11*67e74705SXin Li   void *p;  // @11
12*67e74705SXin Li   return p; // @12
13*67e74705SXin Li }
14*67e74705SXin Li #undef NULL
15*67e74705SXin Li template<typename T>
g()16*67e74705SXin Li void *g() {
17*67e74705SXin Li   void *p;  // @17
18*67e74705SXin Li   return p; // @18
19*67e74705SXin Li }
20*67e74705SXin Li 
21*67e74705SXin Li #else
22*67e74705SXin Li 
23*67e74705SXin Li // expected-warning@12 {{uninitialized}}
24*67e74705SXin Li // expected-note@11 {{initialize}}
25*67e74705SXin Li // CHECK: fix-it:"{{.*}}":{11:10-11:10}:" = NULL"
26*67e74705SXin Li 
27*67e74705SXin Li // expected-warning@18 {{uninitialized}}
28*67e74705SXin Li // expected-note@17 {{initialize}}
29*67e74705SXin Li // CHECK: fix-it:"{{.*}}":{17:10-17:10}:" = 0"
30*67e74705SXin Li 
main()31*67e74705SXin Li int main() {
32*67e74705SXin Li   f<int>(); // expected-note {{instantiation}}
33*67e74705SXin Li   g<int>(); // expected-note {{instantiation}}
34*67e74705SXin Li }
35*67e74705SXin Li 
36*67e74705SXin Li #endif
37