diff --git a/clang/lib/Driver/ToolChains/MSVC.cpp b/clang/lib/Driver/ToolChains/MSVC.cpp --- a/clang/lib/Driver/ToolChains/MSVC.cpp +++ b/clang/lib/Driver/ToolChains/MSVC.cpp @@ -333,8 +333,10 @@ Args.MakeArgString(std::string("-out:") + Output.getFilename())); if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles) && - !C.getDriver().IsCLMode()) + !C.getDriver().IsCLMode()) { CmdArgs.push_back("-defaultlib:libcmt"); + CmdArgs.push_back("-defaultlib:oldnames"); + } if (!llvm::sys::Process::GetEnv("LIB")) { // If the VC environment hasn't been configured (perhaps because the user diff --git a/clang/test/Driver/msvc-link.c b/clang/test/Driver/msvc-link.c --- a/clang/test/Driver/msvc-link.c +++ b/clang/test/Driver/msvc-link.c @@ -2,6 +2,7 @@ // BASIC: link.exe" // BASIC: "-out:a.exe" // BASIC: "-defaultlib:libcmt" +// BASIC: "-defaultlib:oldnames" // BASIC: "-nologo" // BASIC-NOT: "-Brepro" @@ -9,6 +10,7 @@ // DLL: link.exe" // DLL: "-out:a.dll" // DLL: "-defaultlib:libcmt" +// DLL: "-defaultlib:oldnames" // DLL: "-nologo" // DLL: "-dll"