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