cl-fallback.c revision 651f13cea278ec967336033dd032faef0e9fc2ec
1c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// Don't attempt slash switches on msys bash. 2c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// REQUIRES: shell-preserves-root 3c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg 4c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// Note: %s must be preceded by --, otherwise it may be interpreted as a 5c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// command-line option, e.g. on Mac where %s is commonly under /Users. 6c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg 7651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cl /fallback /Dfoo=bar /Ubaz /Ifoo /O0 /Ox /GR /GR- /Gy /Gy- \ 8651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: /LD /LDd /MD /MDd /MTd /MT /FImyheader.h /Zi -### -- %s 2>&1 \ 9651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: | FileCheck %s 1089e32745123c02159fa1d1f19f96bdd4173029f0Hans Wennborg// CHECK: "-fdiagnostics-format" "msvc-fallback" 11c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: || 12c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: cl.exe 131413d629953d24647afaea7f0e0d16078d95ab7cHans Wennborg// CHECK: "/nologo" 14c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: "/c" 15c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: "/W0" 16c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: "-D" "foo=bar" 17c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: "-U" "baz" 18c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: "-I" "foo" 19a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// CHECK: "/Ox" 20c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: "/GR-" 21651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: "/Gy-" 22651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: "/Z7" 234fe475a1a1d333d4ddeca386fa8dae3448103c3aHans Wennborg// CHECK: "/FImyheader.h" 24c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: "/LD" 25c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: "/LDd" 26c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: "/MT" 27c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: "/Tc" "{{.*cl-fallback.c}}" 28c8ba0a0acd30f0b56d08a3a0947f68ac01a40730Hans Wennborg// CHECK: "/Fo{{.*cl-fallback.*.obj}}" 29a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg 30a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// RUN: %clang_cl /fallback /Od -### -- %s 2>&1 | FileCheck -check-prefix=O0 %s 31a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// O0: cl.exe 32a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// O0: "/Od" 33a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// RUN: %clang_cl /fallback /O1 -### -- %s 2>&1 | FileCheck -check-prefix=O1 %s 34a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// O1: cl.exe 35a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// O1: "-O1" 36a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// RUN: %clang_cl /fallback /O2 -### -- %s 2>&1 | FileCheck -check-prefix=O2 %s 37a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// O2: cl.exe 38a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// O2: "-O2" 39a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// RUN: %clang_cl /fallback /Os -### -- %s 2>&1 | FileCheck -check-prefix=Os %s 40a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// Os: cl.exe 41a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// Os: "-Os" 42a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// RUN: %clang_cl /fallback /Ox -### -- %s 2>&1 | FileCheck -check-prefix=Ox %s 43a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// Ox: cl.exe 44a8ffc16dc1c5b21c3fdb2b53a9c0eb5af5d3babbHans Wennborg// Ox: "/Ox" 45651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 46651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// Only fall back when actually compiling, not for e.g. /P (preprocess). 47651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cl /fallback /P -### -- %s 2>&1 | FileCheck -check-prefix=P %s 48651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// P-NOT: || 49651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// P-NOT: "cl.exe" 50651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 51651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: not %clang_cl /fallback /c -- %s 2>&1 | \ 52651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: FileCheck -check-prefix=ErrWarn %s 53651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// ErrWarn: warning: falling back to {{.*}}cl.exe 54651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 55651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines#error "This fails to compile." 56