127ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregor// RUN: mkdir -p %t.h.gch
24c0c7e86645dfa1719d17d70e009ab49347aba62Douglas Gregor// RUN: %clang -x c-header %S/pch-dir.h -DFOO=foo -o %t.h.gch/c.gch
34c0c7e86645dfa1719d17d70e009ab49347aba62Douglas Gregor// RUN: %clang -x c-header %S/pch-dir.h -DFOO=bar -o %t.h.gch/cbar.gch
4b512a14f5537c11cce818ca408342ca2b5889b8dDouglas Gregor// RUN: %clang -x c++-header -std=c++98 %S/pch-dir.h -o %t.h.gch/cpp.gch
54c0c7e86645dfa1719d17d70e009ab49347aba62Douglas Gregor// RUN: %clang -include %t.h -DFOO=foo -fsyntax-only %s -Xclang -print-stats 2> %t.clog
6931a4feb64f18190d189c222d61b2abf52f18ab8Tim Northover// RUN: FileCheck -check-prefix=CHECK-C %s < %t.clog
74c0c7e86645dfa1719d17d70e009ab49347aba62Douglas Gregor// RUN: %clang -include %t.h -DFOO=bar -DBAR=bar -fsyntax-only %s -Xclang -ast-print > %t.cbarlog
8931a4feb64f18190d189c222d61b2abf52f18ab8Tim Northover// RUN: FileCheck -check-prefix=CHECK-CBAR %s < %t.cbarlog
9b512a14f5537c11cce818ca408342ca2b5889b8dDouglas Gregor// RUN: %clang -x c++ -include %t.h -std=c++98 -fsyntax-only %s -Xclang -print-stats 2> %t.cpplog
10931a4feb64f18190d189c222d61b2abf52f18ab8Tim Northover// RUN: FileCheck -check-prefix=CHECK-CPP %s < %t.cpplog
11129dd54349510973c853579b34cf31fa8faad5f8NAKAMURA Takumi
1227ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregor// RUN: not %clang -x c++ -std=c++11 -include %t.h -fsyntax-only %s 2> %t.cpp11log
13931a4feb64f18190d189c222d61b2abf52f18ab8Tim Northover// RUN: FileCheck -check-prefix=CHECK-CPP11 %s < %t.cpp11log
1427ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregor
154c0c7e86645dfa1719d17d70e009ab49347aba62Douglas Gregor// CHECK-CBAR: int bar
164c0c7e86645dfa1719d17d70e009ab49347aba62Douglas Gregorint FOO;
1727ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregor
1827ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregorint get() {
1927ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregor#ifdef __cplusplus
20674b227bc50852b96567428941bc711949529f92NAKAMURA Takumi  // CHECK-CPP: .h.gch{{[/\\]}}cpp.gch
2127ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregor  return i;
2227ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregor#else
23674b227bc50852b96567428941bc711949529f92NAKAMURA Takumi  // CHECK-C: .h.gch{{[/\\]}}c.gch
2427ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregor  return j;
2527ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregor#endif
2627ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregor}
2727ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregor
2827ffa6caf965ef20fdef5ae23b81cdc3d05e7afbDouglas Gregor// CHECK-CPP11: no suitable precompiled header file found in directory
29