blob: f788e4cab162072d60a3859f8d560223dd258e4a [file] [log] [blame]
Hans Wennborg87cfa712013-09-19 20:32:16 +00001// Note: %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
David Majnemer7ab76f22015-08-25 00:46:45 +00004// RUN: %clang_cl --target=i686-pc-win32 /fallback /Dfoo=bar /Ubaz /Ifoo /O0 /Ox /GR /GR- /Gy /Gy- \
David Majnemerbac941c2015-07-25 06:07:59 +00005// RUN: /Gw /Gw- /LD /LDd /EHs /EHs- /Zl /MD /MDd /MTd /MT /FImyheader.h /Zi \
Ehsan Akhgarid8518332016-01-25 21:14:52 +00006// RUN: -garbage -moregarbage \
David Majnemerdc7a47c2014-04-07 16:14:38 +00007// RUN: -### -- %s 2>&1 \
Hans Wennborg5149a3b2014-03-25 14:48:54 +00008// RUN: | FileCheck %s
Hans Wennborgf4aee182013-09-24 00:08:55 +00009// CHECK: "-fdiagnostics-format" "msvc-fallback"
Hans Wennborg87cfa712013-09-19 20:32:16 +000010// CHECK: ||
11// CHECK: cl.exe
Hans Wennborg263c2132013-09-24 17:36:21 +000012// CHECK: "/nologo"
Hans Wennborg87cfa712013-09-19 20:32:16 +000013// CHECK: "/c"
14// CHECK: "/W0"
15// CHECK: "-D" "foo=bar"
16// CHECK: "-U" "baz"
17// CHECK: "-I" "foo"
David Majnemer015ce0f2015-07-27 07:32:11 +000018// CHECK: "/Oi"
19// CHECK: "/Og"
20// CHECK: "/Ot"
21// CHECK: "/Ob2"
22// CHECK: "/Oy"
23// CHECK: "/GF"
Hans Wennborg87cfa712013-09-19 20:32:16 +000024// CHECK: "/GR-"
Hans Wennborg5149a3b2014-03-25 14:48:54 +000025// CHECK: "/Gy-"
David Majnemerdc7a47c2014-04-07 16:14:38 +000026// CHECK: "/Gw-"
Reid Klecknerc688daf2014-02-19 22:05:59 +000027// CHECK: "/Z7"
Hans Wennborg260ff402013-09-27 17:54:18 +000028// CHECK: "/FImyheader.h"
Hans Wennborg87cfa712013-09-19 20:32:16 +000029// CHECK: "/LD"
30// CHECK: "/LDd"
Reid Klecknerc542d372014-06-27 17:02:02 +000031// CHECK: "/EHs"
32// CHECK: "/EHs-"
David Majnemerbac941c2015-07-25 06:07:59 +000033// CHECK: "/Zl"
Hans Wennborg87cfa712013-09-19 20:32:16 +000034// CHECK: "/MT"
Ehsan Akhgarid8518332016-01-25 21:14:52 +000035// CHECK: "-garbage"
36// CHECK: "-moregarbage"
Hans Wennborg87cfa712013-09-19 20:32:16 +000037// CHECK: "/Tc" "{{.*cl-fallback.c}}"
38// CHECK: "/Fo{{.*cl-fallback.*.obj}}"
Hans Wennborgb6331dc2013-09-24 18:17:21 +000039
David Majnemerf6072342014-07-01 22:24:56 +000040// RUN: %clang_cl /fallback /GR- -### -- %s 2>&1 | FileCheck -check-prefix=GR %s
41// GR: cl.exe
42// GR: "/GR-"
43
Hans Wennborgb6331dc2013-09-24 18:17:21 +000044// RUN: %clang_cl /fallback /Od -### -- %s 2>&1 | FileCheck -check-prefix=O0 %s
45// O0: cl.exe
46// O0: "/Od"
David Majnemer7ab76f22015-08-25 00:46:45 +000047// RUN: %clang_cl --target=i686-pc-win32 /fallback /O1 -### -- %s 2>&1 | FileCheck -check-prefix=O1 %s
Hans Wennborgb6331dc2013-09-24 18:17:21 +000048// O1: cl.exe
David Majnemer015ce0f2015-07-27 07:32:11 +000049// O1: "/Og" "/Os" "/Ob2" "/Oy" "/GF" "/Gy"
David Majnemer7ab76f22015-08-25 00:46:45 +000050// RUN: %clang_cl --target=i686-pc-win32 /fallback /O2 -### -- %s 2>&1 | FileCheck -check-prefix=O2 %s
Hans Wennborgb6331dc2013-09-24 18:17:21 +000051// O2: cl.exe
David Majnemer015ce0f2015-07-27 07:32:11 +000052// O2: "/Oi" "/Og" "/Ot" "/Ob2" "/Oy" "/GF" "/Gy"
David Majnemer7ab76f22015-08-25 00:46:45 +000053// RUN: %clang_cl --target=i686-pc-win32 /fallback /Os -### -- %s 2>&1 | FileCheck -check-prefix=Os %s
Hans Wennborgb6331dc2013-09-24 18:17:21 +000054// Os: cl.exe
David Majnemer015ce0f2015-07-27 07:32:11 +000055// Os: "/Os"
David Majnemer7ab76f22015-08-25 00:46:45 +000056// RUN: %clang_cl --target=i686-pc-win32 /fallback /Ox -### -- %s 2>&1 | FileCheck -check-prefix=Ox %s
Hans Wennborgb6331dc2013-09-24 18:17:21 +000057// Ox: cl.exe
David Majnemer015ce0f2015-07-27 07:32:11 +000058// Ox: "/Oi" "/Og" "/Ot" "/Ob2" "/Oy" "/GF"
Hans Wennborg859422a2014-01-13 22:24:42 +000059
60// Only fall back when actually compiling, not for e.g. /P (preprocess).
61// RUN: %clang_cl /fallback /P -### -- %s 2>&1 | FileCheck -check-prefix=P %s
62// P-NOT: ||
63// P-NOT: "cl.exe"
Hans Wennborgc5afd062014-02-18 21:42:51 +000064
65// RUN: not %clang_cl /fallback /c -- %s 2>&1 | \
Hans Wennborg897a69b2014-02-19 02:10:19 +000066// RUN: FileCheck -check-prefix=ErrWarn %s
67// ErrWarn: warning: falling back to {{.*}}cl.exe
Hans Wennborgc5afd062014-02-18 21:42:51 +000068
Reid Kleckner47c2f842014-05-14 16:03:05 +000069// RUN: %clang_cl /fallback /c /GR /GR- -### -- %s 2>&1 | \
70// RUN: FileCheck -check-prefix=NO_RTTI %s
71// NO_RTTI: "-cc1"
72// NO_RTTI: ||
73// NO_RTTI: cl.exe
David Majnemerf6072342014-07-01 22:24:56 +000074// NO_RTTI: "/GR-"
Reid Kleckner47c2f842014-05-14 16:03:05 +000075
Hans Wennborg26a44302014-04-25 16:44:17 +000076// Don't fall back on non-C or C++ files.
77// RUN: %clang_cl /fallback -### -- %S/Inputs/file.ll 2>&1 | FileCheck -check-prefix=LL %s
78// LL: file.ll
79// LL-NOT: ||
80// LL-NOT: "cl.exe"
81
82
Hans Wennborgc5afd062014-02-18 21:42:51 +000083#error "This fails to compile."