10ee7c63fSCharles Li // RUN: %clang_cc1 -std=c++98 -emit-pch -o %t %s 20ee7c63fSCharles Li // RUN: %clang_cc1 -std=c++98 -fsyntax-only -include-pch %t %s -Wuninitialized -verify 30ee7c63fSCharles Li // RUN: %clang_cc1 -std=c++98 -fsyntax-only -include-pch %t %s -Wuninitialized -fdiagnostics-parseable-fixits 2>&1 | FileCheck %s 449f906a3SRichard Smith 5*a45f713cSLuboš Luňák // RUN: %clang_cc1 -std=c++98 -emit-pch -fpch-instantiate-templates -o %t %s 6*a45f713cSLuboš Luňák // RUN: %clang_cc1 -std=c++98 -fsyntax-only -include-pch %t %s -Wuninitialized -verify 7*a45f713cSLuboš Luňák // RUN: %clang_cc1 -std=c++98 -fsyntax-only -include-pch %t %s -Wuninitialized -fdiagnostics-parseable-fixits 2>&1 | FileCheck %s 8*a45f713cSLuboš Luňák 949f906a3SRichard Smith #ifndef HEADER 1049f906a3SRichard Smith #define HEADER 1149f906a3SRichard Smith 1249f906a3SRichard Smith #define NULL 0 1349f906a3SRichard Smith template<typename T> f()1449f906a3SRichard Smithvoid *f() { 15*a45f713cSLuboš Luňák void *p; // @15 16*a45f713cSLuboš Luňák return p; // @16 1749f906a3SRichard Smith } 1849f906a3SRichard Smith #undef NULL 1949f906a3SRichard Smith template<typename T> g()2049f906a3SRichard Smithvoid *g() { 21*a45f713cSLuboš Luňák void *p; // @21 22*a45f713cSLuboš Luňák return p; // @22 2349f906a3SRichard Smith } 2449f906a3SRichard Smith 2549f906a3SRichard Smith #else 2649f906a3SRichard Smith 27*a45f713cSLuboš Luňák // expected-warning@16 {{uninitialized}} 28*a45f713cSLuboš Luňák // expected-note@15 {{initialize}} 29*a45f713cSLuboš Luňák // CHECK: fix-it:"{{.*}}":{15:10-15:10}:" = NULL" 3049f906a3SRichard Smith 31*a45f713cSLuboš Luňák // expected-warning@22 {{uninitialized}} 32*a45f713cSLuboš Luňák // expected-note@21 {{initialize}} 33*a45f713cSLuboš Luňák // CHECK: fix-it:"{{.*}}":{21:10-21:10}:" = 0" 3449f906a3SRichard Smith main()3549f906a3SRichard Smithint main() { 3649f906a3SRichard Smith f<int>(); // expected-note {{instantiation}} 3749f906a3SRichard Smith g<int>(); // expected-note {{instantiation}} 3849f906a3SRichard Smith } 3949f906a3SRichard Smith 4049f906a3SRichard Smith #endif 41