16bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN: %clang_cc1 -target-linker-version 100 -emit-pch %s -o %t.h.pch 26bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN: %clang_cc1 -target-linker-version 200 %s -include-pch %t.h.pch -fsyntax-only -verify 36bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 46bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines#ifndef HEADER 56bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines#define HEADER 66bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 76bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesextern int foo; 86bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 96bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines#else 106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid f() { 126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines int a = foo; 136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines // Make sure we parsed this by getting an error. 146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines int b = bar; // expected-error {{undeclared}} 156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines} 166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines#endif 18