Hans Wennborg | 87cfa71 | 2013-09-19 20:32:16 +0000 | [diff] [blame] | 1 | // 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 | |
Etienne Bergeron | e28e7f2 | 2016-06-15 20:34:33 +0000 | [diff] [blame] | 4 | // RUN: %clang_cl --target=i686-pc-win32 /fallback /Dfoo=bar /Ubaz /Ifoo /O0 /Ox /GR /GR- /GS /GS- /Gy /Gy- \ |
David Majnemer | bac941c | 2015-07-25 06:07:59 +0000 | [diff] [blame] | 5 | // RUN: /Gw /Gw- /LD /LDd /EHs /EHs- /Zl /MD /MDd /MTd /MT /FImyheader.h /Zi \ |
Ehsan Akhgari | d851833 | 2016-01-25 21:14:52 +0000 | [diff] [blame] | 6 | // RUN: -garbage -moregarbage \ |
David Majnemer | dc7a47c | 2014-04-07 16:14:38 +0000 | [diff] [blame] | 7 | // RUN: -### -- %s 2>&1 \ |
Hans Wennborg | 5149a3b | 2014-03-25 14:48:54 +0000 | [diff] [blame] | 8 | // RUN: | FileCheck %s |
Hans Wennborg | f4aee18 | 2013-09-24 00:08:55 +0000 | [diff] [blame] | 9 | // CHECK: "-fdiagnostics-format" "msvc-fallback" |
Hans Wennborg | 87cfa71 | 2013-09-19 20:32:16 +0000 | [diff] [blame] | 10 | // CHECK: || |
| 11 | // CHECK: cl.exe |
Hans Wennborg | 263c213 | 2013-09-24 17:36:21 +0000 | [diff] [blame] | 12 | // CHECK: "/nologo" |
Hans Wennborg | 87cfa71 | 2013-09-19 20:32:16 +0000 | [diff] [blame] | 13 | // CHECK: "/c" |
| 14 | // CHECK: "/W0" |
| 15 | // CHECK: "-D" "foo=bar" |
| 16 | // CHECK: "-U" "baz" |
| 17 | // CHECK: "-I" "foo" |
David Majnemer | 015ce0f | 2015-07-27 07:32:11 +0000 | [diff] [blame] | 18 | // CHECK: "/Oi" |
| 19 | // CHECK: "/Og" |
| 20 | // CHECK: "/Ot" |
| 21 | // CHECK: "/Ob2" |
| 22 | // CHECK: "/Oy" |
| 23 | // CHECK: "/GF" |
Hans Wennborg | 87cfa71 | 2013-09-19 20:32:16 +0000 | [diff] [blame] | 24 | // CHECK: "/GR-" |
Etienne Bergeron | e28e7f2 | 2016-06-15 20:34:33 +0000 | [diff] [blame] | 25 | // CHECK: "/GS-" |
Hans Wennborg | 5149a3b | 2014-03-25 14:48:54 +0000 | [diff] [blame] | 26 | // CHECK: "/Gy-" |
David Majnemer | dc7a47c | 2014-04-07 16:14:38 +0000 | [diff] [blame] | 27 | // CHECK: "/Gw-" |
Reid Kleckner | c688daf | 2014-02-19 22:05:59 +0000 | [diff] [blame] | 28 | // CHECK: "/Z7" |
Hans Wennborg | 260ff40 | 2013-09-27 17:54:18 +0000 | [diff] [blame] | 29 | // CHECK: "/FImyheader.h" |
Hans Wennborg | 87cfa71 | 2013-09-19 20:32:16 +0000 | [diff] [blame] | 30 | // CHECK: "/LD" |
| 31 | // CHECK: "/LDd" |
Reid Kleckner | c542d37 | 2014-06-27 17:02:02 +0000 | [diff] [blame] | 32 | // CHECK: "/EHs" |
| 33 | // CHECK: "/EHs-" |
David Majnemer | bac941c | 2015-07-25 06:07:59 +0000 | [diff] [blame] | 34 | // CHECK: "/Zl" |
Hans Wennborg | 87cfa71 | 2013-09-19 20:32:16 +0000 | [diff] [blame] | 35 | // CHECK: "/MT" |
Ehsan Akhgari | d851833 | 2016-01-25 21:14:52 +0000 | [diff] [blame] | 36 | // CHECK: "-garbage" |
| 37 | // CHECK: "-moregarbage" |
Hans Wennborg | 87cfa71 | 2013-09-19 20:32:16 +0000 | [diff] [blame] | 38 | // CHECK: "/Tc" "{{.*cl-fallback.c}}" |
| 39 | // CHECK: "/Fo{{.*cl-fallback.*.obj}}" |
Hans Wennborg | b6331dc | 2013-09-24 18:17:21 +0000 | [diff] [blame] | 40 | |
David Majnemer | f607234 | 2014-07-01 22:24:56 +0000 | [diff] [blame] | 41 | // RUN: %clang_cl /fallback /GR- -### -- %s 2>&1 | FileCheck -check-prefix=GR %s |
| 42 | // GR: cl.exe |
| 43 | // GR: "/GR-" |
| 44 | |
Etienne Bergeron | e28e7f2 | 2016-06-15 20:34:33 +0000 | [diff] [blame] | 45 | // RUN: %clang_cl /fallback /GS- -### -- %s 2>&1 | FileCheck -check-prefix=GS %s |
| 46 | // GS: cl.exe |
| 47 | // GS: "/GS-" |
| 48 | |
Hans Wennborg | 95577ce | 2016-11-09 00:56:42 +0000 | [diff] [blame] | 49 | // RUN: %clang_cl /fallback /Zc:threadSafeInit -### -- %s 2>&1 | FileCheck -check-prefix=ThreadSafe %s |
| 50 | // ThreadSafe: /Zc:threadSafeInit |
| 51 | |
| 52 | // RUN: %clang_cl /fallback /Zc:threadSafeInit- -### -- %s 2>&1 | FileCheck -check-prefix=NonThreadSafe %s |
| 53 | // NonThreadSafe: /Zc:threadSafeInit- |
| 54 | |
Hans Wennborg | b6331dc | 2013-09-24 18:17:21 +0000 | [diff] [blame] | 55 | // RUN: %clang_cl /fallback /Od -### -- %s 2>&1 | FileCheck -check-prefix=O0 %s |
| 56 | // O0: cl.exe |
| 57 | // O0: "/Od" |
David Majnemer | 7ab76f2 | 2015-08-25 00:46:45 +0000 | [diff] [blame] | 58 | // RUN: %clang_cl --target=i686-pc-win32 /fallback /O1 -### -- %s 2>&1 | FileCheck -check-prefix=O1 %s |
Hans Wennborg | b6331dc | 2013-09-24 18:17:21 +0000 | [diff] [blame] | 59 | // O1: cl.exe |
David Majnemer | 015ce0f | 2015-07-27 07:32:11 +0000 | [diff] [blame] | 60 | // O1: "/Og" "/Os" "/Ob2" "/Oy" "/GF" "/Gy" |
David Majnemer | 7ab76f2 | 2015-08-25 00:46:45 +0000 | [diff] [blame] | 61 | // RUN: %clang_cl --target=i686-pc-win32 /fallback /O2 -### -- %s 2>&1 | FileCheck -check-prefix=O2 %s |
Hans Wennborg | b6331dc | 2013-09-24 18:17:21 +0000 | [diff] [blame] | 62 | // O2: cl.exe |
David Majnemer | 015ce0f | 2015-07-27 07:32:11 +0000 | [diff] [blame] | 63 | // O2: "/Oi" "/Og" "/Ot" "/Ob2" "/Oy" "/GF" "/Gy" |
David Majnemer | 7ab76f2 | 2015-08-25 00:46:45 +0000 | [diff] [blame] | 64 | // RUN: %clang_cl --target=i686-pc-win32 /fallback /Os -### -- %s 2>&1 | FileCheck -check-prefix=Os %s |
Hans Wennborg | b6331dc | 2013-09-24 18:17:21 +0000 | [diff] [blame] | 65 | // Os: cl.exe |
David Majnemer | 015ce0f | 2015-07-27 07:32:11 +0000 | [diff] [blame] | 66 | // Os: "/Os" |
David Majnemer | 7ab76f2 | 2015-08-25 00:46:45 +0000 | [diff] [blame] | 67 | // RUN: %clang_cl --target=i686-pc-win32 /fallback /Ox -### -- %s 2>&1 | FileCheck -check-prefix=Ox %s |
Hans Wennborg | b6331dc | 2013-09-24 18:17:21 +0000 | [diff] [blame] | 68 | // Ox: cl.exe |
David Majnemer | 015ce0f | 2015-07-27 07:32:11 +0000 | [diff] [blame] | 69 | // Ox: "/Oi" "/Og" "/Ot" "/Ob2" "/Oy" "/GF" |
Hans Wennborg | 859422a | 2014-01-13 22:24:42 +0000 | [diff] [blame] | 70 | |
| 71 | // Only fall back when actually compiling, not for e.g. /P (preprocess). |
| 72 | // RUN: %clang_cl /fallback /P -### -- %s 2>&1 | FileCheck -check-prefix=P %s |
| 73 | // P-NOT: || |
| 74 | // P-NOT: "cl.exe" |
Hans Wennborg | c5afd06 | 2014-02-18 21:42:51 +0000 | [diff] [blame] | 75 | |
| 76 | // RUN: not %clang_cl /fallback /c -- %s 2>&1 | \ |
Hans Wennborg | 897a69b | 2014-02-19 02:10:19 +0000 | [diff] [blame] | 77 | // RUN: FileCheck -check-prefix=ErrWarn %s |
| 78 | // ErrWarn: warning: falling back to {{.*}}cl.exe |
Hans Wennborg | c5afd06 | 2014-02-18 21:42:51 +0000 | [diff] [blame] | 79 | |
Reid Kleckner | 47c2f84 | 2014-05-14 16:03:05 +0000 | [diff] [blame] | 80 | // RUN: %clang_cl /fallback /c /GR /GR- -### -- %s 2>&1 | \ |
| 81 | // RUN: FileCheck -check-prefix=NO_RTTI %s |
| 82 | // NO_RTTI: "-cc1" |
| 83 | // NO_RTTI: || |
| 84 | // NO_RTTI: cl.exe |
David Majnemer | f607234 | 2014-07-01 22:24:56 +0000 | [diff] [blame] | 85 | // NO_RTTI: "/GR-" |
Reid Kleckner | 47c2f84 | 2014-05-14 16:03:05 +0000 | [diff] [blame] | 86 | |
Hans Wennborg | 26a4430 | 2014-04-25 16:44:17 +0000 | [diff] [blame] | 87 | // Don't fall back on non-C or C++ files. |
| 88 | // RUN: %clang_cl /fallback -### -- %S/Inputs/file.ll 2>&1 | FileCheck -check-prefix=LL %s |
| 89 | // LL: file.ll |
| 90 | // LL-NOT: || |
| 91 | // LL-NOT: "cl.exe" |
| 92 | |
| 93 | |
Hans Wennborg | c5afd06 | 2014-02-18 21:42:51 +0000 | [diff] [blame] | 94 | #error "This fails to compile." |