1// Test this without pch. 2// RUN: %clang_cc1 %s -include %s -verify -fsyntax-only -Wuninitialized 3 4// Test with pch. 5// RUN: %clang_cc1 %s -emit-pch -o %t 6// RUN: %clang_cc1 %s -include-pch %t -verify -fsyntax-only -Wuninitialized 7 8#ifndef HEADER 9#define HEADER 10 11#pragma clang diagnostic push 12#pragma clang diagnostic ignored "-Wuninitialized" 13template <typename T> 14struct TS1 { 15 void m() { 16 T a; 17 T b = a; 18 } 19}; 20#pragma clang diagnostic pop 21 22#else 23 24 25template <typename T> 26struct TS2 { 27 void m() { 28 T a; 29 T b = a; // expected-warning {{variable 'a' is uninitialized}} \ 30 expected-note@41 {{in instantiation of member function}} \ 31 expected-note@28 {{initialize the variable 'a' to silence}} 32 } 33}; 34 35void f() { 36 TS1<int> ts1; 37 ts1.m(); 38 39 40 TS2<int> ts2; 41 ts2.m(); 42} 43 44#endif 45