1*70ec1c7eSArgyrios Kyrtzidis // RUN: rm -f %t.head.h.pch 2*70ec1c7eSArgyrios Kyrtzidis // RUN: c-index-test -write-pch %t.head.h.pch %s -Wuninitialized -Werror=unused 2>&1 | FileCheck -check-prefix=HEAD_DIAGS %s 3*70ec1c7eSArgyrios Kyrtzidis // RUN: c-index-test -test-load-source local %s -include %t.head.h -Wuninitialized -Werror=unused 2>&1 | FileCheck -check-prefix=MAIN_DIAGS %s 4*70ec1c7eSArgyrios Kyrtzidis 5*70ec1c7eSArgyrios Kyrtzidis // Make sure -Wuninitialized works even though the header had a warn-as-error occurrence. 6*70ec1c7eSArgyrios Kyrtzidis 7*70ec1c7eSArgyrios Kyrtzidis // HEAD_DIAGS: error: unused variable 'x' 8*70ec1c7eSArgyrios Kyrtzidis // MAIN_DIAGS: warning: variable 'x1' is uninitialized 9*70ec1c7eSArgyrios Kyrtzidis // MAIN_DIAGS-NOT: error: use of undeclared identifier 10*70ec1c7eSArgyrios Kyrtzidis 11*70ec1c7eSArgyrios Kyrtzidis #ifndef HEADER 12*70ec1c7eSArgyrios Kyrtzidis #define HEADER 13*70ec1c7eSArgyrios Kyrtzidis foo_head()14*70ec1c7eSArgyrios Kyrtzidisstatic void foo_head() { 15*70ec1c7eSArgyrios Kyrtzidis int x; 16*70ec1c7eSArgyrios Kyrtzidis } 17*70ec1c7eSArgyrios Kyrtzidis 18*70ec1c7eSArgyrios Kyrtzidis #else 19*70ec1c7eSArgyrios Kyrtzidis test()20*70ec1c7eSArgyrios Kyrtzidisvoid test() { 21*70ec1c7eSArgyrios Kyrtzidis int x1; // expected-note {{initialize}} 22*70ec1c7eSArgyrios Kyrtzidis int x2 = x1; // expected-warning {{uninitialized}} 23*70ec1c7eSArgyrios Kyrtzidis (void)x2; 24*70ec1c7eSArgyrios Kyrtzidis foo_head(); 25*70ec1c7eSArgyrios Kyrtzidis } 26*70ec1c7eSArgyrios Kyrtzidis 27*70ec1c7eSArgyrios Kyrtzidis #endif 28