xref: /aosp_15_r20/external/clang/test/Driver/cl-runtime-flags.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // Note: %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 // First check that regular clang doesn't do any of this stuff.
5*67e74705SXin Li // RUN: %clang -### %s 2>&1 | FileCheck -check-prefix=CHECK-CLANG %s
6*67e74705SXin Li // CHECK-CLANG-NOT: "-D_DEBUG"
7*67e74705SXin Li // CHECK-CLANG-NOT: "-D_MT"
8*67e74705SXin Li // CHECK-CLANG-NOT: "-D_DLL"
9*67e74705SXin Li // CHECK-CLANG-NOT: --dependent-lib
10*67e74705SXin Li 
11*67e74705SXin Li // RUN: %clang_cl -### -- %s 2>&1 | FileCheck -check-prefix=CHECK-MT %s
12*67e74705SXin Li // RUN: %clang_cl -### /MT -- %s 2>&1 | FileCheck -check-prefix=CHECK-MT %s
13*67e74705SXin Li // CHECK-MT-NOT: "-D_DEBUG"
14*67e74705SXin Li // CHECK-MT: "-D_MT"
15*67e74705SXin Li // CHECK-MT-NOT: "-D_DLL"
16*67e74705SXin Li // CHECK-MT: "-flto-visibility-public-std"
17*67e74705SXin Li // CHECK-MT: "--dependent-lib=libcmt"
18*67e74705SXin Li // CHECK-MT: "--dependent-lib=oldnames"
19*67e74705SXin Li 
20*67e74705SXin Li // RUN: %clang_cl -### /MTd -- %s 2>&1 | FileCheck -check-prefix=CHECK-MTd %s
21*67e74705SXin Li // RUN: %clang_cl -### /LD /MTd -- %s 2>&1 | FileCheck -check-prefix=CHECK-MTd %s
22*67e74705SXin Li // CHECK-MTd: "-D_DEBUG"
23*67e74705SXin Li // CHECK-MTd: "-D_MT"
24*67e74705SXin Li // CHECK-MTd-NOT: "-D_DLL"
25*67e74705SXin Li // CHECK-MTd: "-flto-visibility-public-std"
26*67e74705SXin Li // CHECK-MTd: "--dependent-lib=libcmtd"
27*67e74705SXin Li // CHECK-MTd: "--dependent-lib=oldnames"
28*67e74705SXin Li 
29*67e74705SXin Li // RUN: %clang_cl -### /MD -- %s 2>&1 | FileCheck -check-prefix=CHECK-MD %s
30*67e74705SXin Li // CHECK-MD-NOT: "-D_DEBUG"
31*67e74705SXin Li // CHECK-MD: "-D_MT"
32*67e74705SXin Li // CHECK-MD: "-D_DLL"
33*67e74705SXin Li // CHECK-MD: "--dependent-lib=msvcrt"
34*67e74705SXin Li // CHECK-MD: "--dependent-lib=oldnames"
35*67e74705SXin Li 
36*67e74705SXin Li // RUN: %clang_cl -### /MDd -- %s 2>&1 | FileCheck -check-prefix=CHECK-MDd %s
37*67e74705SXin Li // CHECK-MDd: "-D_DEBUG"
38*67e74705SXin Li // CHECK-MDd: "-D_MT"
39*67e74705SXin Li // CHECK-MDd: "-D_DLL"
40*67e74705SXin Li // CHECK-MDd: "--dependent-lib=msvcrtd"
41*67e74705SXin Li // CHECK-MDd: "--dependent-lib=oldnames"
42*67e74705SXin Li 
43*67e74705SXin Li // RUN: %clang_cl -### /LD -- %s 2>&1 | FileCheck -check-prefix=CHECK-LD %s
44*67e74705SXin Li // RUN: %clang_cl -### /LD /MT -- %s 2>&1 | FileCheck -check-prefix=CHECK-LD %s
45*67e74705SXin Li // CHECK-LD-NOT: "-D_DEBUG"
46*67e74705SXin Li // CHECK-LD: "-D_MT"
47*67e74705SXin Li // CHECK-LD-NOT: "-D_DLL"
48*67e74705SXin Li // CHECK-LD: "--dependent-lib=libcmt"
49*67e74705SXin Li 
50*67e74705SXin Li // RUN: %clang_cl -### /LDd -- %s 2>&1 | FileCheck -check-prefix=CHECK-LDd %s
51*67e74705SXin Li // RUN: %clang_cl -### /LDd /MTd -- %s 2>&1 | FileCheck -check-prefix=CHECK-LDd %s
52*67e74705SXin Li // CHECK-LDd: "-D_DEBUG"
53*67e74705SXin Li // CHECK-LDd: "-D_MT"
54*67e74705SXin Li // CHECK-LDd-NOT: "-D_DLL"
55*67e74705SXin Li // CHECK-LDd: "--dependent-lib=libcmtd"
56*67e74705SXin Li 
57*67e74705SXin Li // RUN: %clang_cl -### /LDd /MT -- %s 2>&1 | FileCheck -check-prefix=CHECK-LDdMT %s
58*67e74705SXin Li // RUN: %clang_cl -### /MT /LDd -- %s 2>&1 | FileCheck -check-prefix=CHECK-LDdMT %s
59*67e74705SXin Li // CHECK-LDdMT: "-D_DEBUG"
60*67e74705SXin Li // CHECK-LDdMT: "-D_MT"
61*67e74705SXin Li // CHECK-LDdMT-NOT: "-D_DLL"
62*67e74705SXin Li // CHECK-LDdMT: "--dependent-lib=libcmt"
63*67e74705SXin Li 
64*67e74705SXin Li // RUN: %clang_cl -### /LD /MD -- %s 2>&1 | FileCheck -check-prefix=CHECK-LDMD %s
65*67e74705SXin Li // RUN: %clang_cl -### /MD /LD -- %s 2>&1 | FileCheck -check-prefix=CHECK-LDMD %s
66*67e74705SXin Li // CHECK-LDMD-NOT: "-D_DEBUG"
67*67e74705SXin Li // CHECK-LDMD: "-D_MT"
68*67e74705SXin Li // CHECK-LDMD: "-D_DLL"
69*67e74705SXin Li // CHECK-LDMD: "--dependent-lib=msvcrt"
70*67e74705SXin Li 
71*67e74705SXin Li // RUN: %clang_cl -### /LDd /MD -- %s 2>&1 | FileCheck -check-prefix=CHECK-LDdMD %s
72*67e74705SXin Li // RUN: %clang_cl -### /MD /LDd -- %s 2>&1 | FileCheck -check-prefix=CHECK-LDdMD %s
73*67e74705SXin Li // CHECK-LDdMD: "-D_DEBUG"
74*67e74705SXin Li // CHECK-LDdMD: "-D_MT"
75*67e74705SXin Li // CHECK-LDdMD: "-D_DLL"
76*67e74705SXin Li // CHECK-LDdMD: "--dependent-lib=msvcrt"
77*67e74705SXin Li 
78*67e74705SXin Li // RUN: %clang_cl -### /LD /MDd -- %s 2>&1 | FileCheck -check-prefix=CHECK-LDMDd %s
79*67e74705SXin Li // RUN: %clang_cl -### /MDd /LD -- %s 2>&1 | FileCheck -check-prefix=CHECK-LDMDd %s
80*67e74705SXin Li // RUN: %clang_cl -### /LDd /MDd -- %s 2>&1 | FileCheck -check-prefix=CHECK-LDMDd %s
81*67e74705SXin Li // RUN: %clang_cl -### /MDd /LDd -- %s 2>&1 | FileCheck -check-prefix=CHECK-LDMDd %s
82*67e74705SXin Li // CHECK-LDMDd: "-D_DEBUG"
83*67e74705SXin Li // CHECK-LDMDd: "-D_MT"
84*67e74705SXin Li // CHECK-LDMDd: "-D_DLL"
85*67e74705SXin Li // CHECK-LDMDd: "--dependent-lib=msvcrtd"
86*67e74705SXin Li 
87*67e74705SXin Li // RUN: %clang_cl /MD /MT -### -- %s 2>&1 | FileCheck -check-prefix=MTOVERRIDE %s
88*67e74705SXin Li // MTOVERRIDE: "--dependent-lib=libcmt"
89*67e74705SXin Li 
90*67e74705SXin Li // RUN: %clang_cl -### /Zl -- %s 2>&1 | FileCheck -check-prefix=CHECK-MTZl %s
91*67e74705SXin Li // RUN: %clang_cl -### /MT /Zl -- %s 2>&1 | FileCheck -check-prefix=CHECK-MTZl %s
92*67e74705SXin Li // CHECK-MTZl-NOT: "-D_DEBUG"
93*67e74705SXin Li // CHECK-MTZl: "-D_MT"
94*67e74705SXin Li // CHECK-MTZl-NOT: "-D_DLL"
95*67e74705SXin Li // CHECK-MTZl-SAME: "-D_VC_NODEFAULTLIB"
96*67e74705SXin Li // CHECK-MTZl-NOT: "--dependent-lib=libcmt"
97*67e74705SXin Li // CHECK-MTZl-NOT: "--dependent-lib=oldnames"
98