1 // Note: %s and %S must be preceded by --, otherwise it may be interpreted as a 2 // command-line option, e.g. on Mac where %s is commonly under /Users. 3 4 // The main test for clang-cl pch handling is cl-pch.cpp. This file only checks 5 // a few things for .c inputs. 6 7 // /Yc with a .c file should build a c pch file. 8 // RUN: %clang_cl -Werror /Ycpchfile.h /FIpchfile.h /c -### -- %s 2>&1 \ 9 // RUN: | FileCheck -check-prefix=CHECK-YC %s 10 // CHECK-YC: cc1 11 // CHECK-YC: -emit-pch 12 // CHECK-YC: -o 13 // CHECK-YC: pchfile.pch 14 // CHECK-YC: -x 15 // CHECK-YC: "c" 16 17 // But not if /TP changes the input language to C++. 18 // RUN: %clang_cl /TP -Werror /Ycpchfile.h /FIpchfile.h /c -### -- %s 2>&1 \ 19 // RUN: | FileCheck -check-prefix=CHECK-YCTP %s 20 // CHECK-YCTP: cc1 21 // CHECK-YCTP: -emit-pch 22 // CHECK-YCTP: -o 23 // CHECK-YCTP: pchfile.pch 24 // CHECK-YCTP: -x 25 // CHECK-YCTP: "c++" 26 27 // Except if a later /TC changes it back. 28 // RUN: %clang_cl -Werror /Ycpchfile.h /FIpchfile.h /c -### -- %s 2>&1 \ 29 // RUN: | FileCheck -check-prefix=CHECK-YCTPTC %s 30 // CHECK-YCTPTC: cc1 31 // CHECK-YCTPTC: -emit-pch 32 // CHECK-YCTPTC: -o 33 // CHECK-YCTPTC: pchfile.pch 34 // CHECK-YCTPTC: -x 35 // CHECK-YCTPTC: "c" 36 37 // Also check lower-case /Tp flag. 38 // RUN: %clang_cl -Werror /Tp%s /Ycpchfile.h /FIpchfile.h /c -### 2>&1 \ 39 // RUN: | FileCheck -check-prefix=CHECK-YCTp %s 40 // CHECK-YCTp: cc1 41 // CHECK-YCTp: -emit-pch 42 // CHECK-YCTp: -o 43 // CHECK-YCTp: pchfile.pch 44 // CHECK-YCTp: -x 45 // CHECK-YCTp: "c++" 46