@@ -4753,7 +4753,8 @@ void Clang::ConstructHostCompilerJob(Compilation &C, const JobAction &JA,
4753
4753
}
4754
4754
4755
4755
static void ProcessVSRuntimeLibrary (const ArgList &Args,
4756
- ArgStringList &CmdArgs) {
4756
+ ArgStringList &CmdArgs,
4757
+ const ToolChain &TC) {
4757
4758
unsigned RTOptionID = options::OPT__SLASH_MT;
4758
4759
4759
4760
if (Args.hasArg (options::OPT__SLASH_LDd))
@@ -4773,31 +4774,38 @@ static void ProcessVSRuntimeLibrary(const ArgList &Args,
4773
4774
.Default (options::OPT__SLASH_MT);
4774
4775
}
4775
4776
4777
+ bool isSPIR = TC.getTriple ().isSPIR ();
4776
4778
StringRef FlagForCRT;
4777
4779
switch (RTOptionID) {
4778
4780
case options::OPT__SLASH_MD:
4779
4781
if (Args.hasArg (options::OPT__SLASH_LDd))
4780
4782
CmdArgs.push_back (" -D_DEBUG" );
4781
- CmdArgs.push_back (" -D_MT" );
4782
- CmdArgs.push_back (" -D_DLL" );
4783
+ if (!isSPIR) {
4784
+ CmdArgs.push_back (" -D_MT" );
4785
+ CmdArgs.push_back (" -D_DLL" );
4786
+ }
4783
4787
FlagForCRT = " --dependent-lib=msvcrt" ;
4784
4788
break ;
4785
4789
case options::OPT__SLASH_MDd:
4786
4790
CmdArgs.push_back (" -D_DEBUG" );
4787
- CmdArgs.push_back (" -D_MT" );
4788
- CmdArgs.push_back (" -D_DLL" );
4791
+ if (!isSPIR) {
4792
+ CmdArgs.push_back (" -D_MT" );
4793
+ CmdArgs.push_back (" -D_DLL" );
4794
+ }
4789
4795
FlagForCRT = " --dependent-lib=msvcrtd" ;
4790
4796
break ;
4791
4797
case options::OPT__SLASH_MT:
4792
4798
if (Args.hasArg (options::OPT__SLASH_LDd))
4793
4799
CmdArgs.push_back (" -D_DEBUG" );
4794
- CmdArgs.push_back (" -D_MT" );
4800
+ if (!isSPIR)
4801
+ CmdArgs.push_back (" -D_MT" );
4795
4802
CmdArgs.push_back (" -flto-visibility-public-std" );
4796
4803
FlagForCRT = " --dependent-lib=libcmt" ;
4797
4804
break ;
4798
4805
case options::OPT__SLASH_MTd:
4799
4806
CmdArgs.push_back (" -D_DEBUG" );
4800
- CmdArgs.push_back (" -D_MT" );
4807
+ if (!isSPIR)
4808
+ CmdArgs.push_back (" -D_MT" );
4801
4809
CmdArgs.push_back (" -flto-visibility-public-std" );
4802
4810
FlagForCRT = " --dependent-lib=libcmtd" ;
4803
4811
break ;
@@ -7098,7 +7106,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
7098
7106
7099
7107
if (Triple.isWindowsMSVCEnvironment () && !D.IsCLMode () &&
7100
7108
Args.hasArg (options::OPT_fms_runtime_lib_EQ))
7101
- ProcessVSRuntimeLibrary (Args, CmdArgs);
7109
+ ProcessVSRuntimeLibrary (Args, CmdArgs, TC );
7102
7110
7103
7111
// Handle -fgcc-version, if present.
7104
7112
VersionTuple GNUCVer;
@@ -8254,7 +8262,7 @@ void Clang::AddClangCLArgs(const ArgList &Args, types::ID InputType,
8254
8262
CmdArgs.push_back (" --dependent-lib=sycl-devicelib-host" );
8255
8263
}
8256
8264
}
8257
- ProcessVSRuntimeLibrary (Args, CmdArgs);
8265
+ ProcessVSRuntimeLibrary (Args, CmdArgs, getToolChain () );
8258
8266
8259
8267
if (Arg *ShowIncludes =
8260
8268
Args.getLastArg (options::OPT__SLASH_showIncludes,
0 commit comments