ArturGainullin created this revision. ArturGainullin added reviewers: rnk, hamzasood. ArturGainullin requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
PATH usage on Windows is case-insensitive. There could be situations when toolchain path can't be obtained from PATH because of case-sensitivity of the findVCToolChainViaEnvironment. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D100361 Files: clang/lib/Driver/ToolChains/MSVC.cpp Index: clang/lib/Driver/ToolChains/MSVC.cpp =================================================================== --- clang/lib/Driver/ToolChains/MSVC.cpp +++ clang/lib/Driver/ToolChains/MSVC.cpp @@ -190,13 +190,15 @@ if (IsBin) { llvm::StringRef ParentPath = llvm::sys::path::parent_path(TestPath); llvm::StringRef ParentFilename = llvm::sys::path::filename(ParentPath); - if (ParentFilename == "VC") { + if (ParentFilename.equals_lower("VC")) { Path = std::string(ParentPath); VSLayout = MSVCToolChain::ToolsetLayout::OlderVS; return true; } - if (ParentFilename == "x86ret" || ParentFilename == "x86chk" - || ParentFilename == "amd64ret" || ParentFilename == "amd64chk") { + if (ParentFilename.equals_lower("x86ret") || + ParentFilename.equals_lower("x86chk") || + ParentFilename.equals_lower("amd64ret") || + ParentFilename.equals_lower("amd64chk")) { Path = std::string(ParentPath); VSLayout = MSVCToolChain::ToolsetLayout::DevDivInternal; return true; @@ -215,7 +217,7 @@ for (llvm::StringRef Prefix : ExpectedPrefixes) { if (It == End) goto NotAToolChain; - if (!It->startswith(Prefix)) + if (!It->startswith_lower(Prefix)) goto NotAToolChain; ++It; }
Index: clang/lib/Driver/ToolChains/MSVC.cpp =================================================================== --- clang/lib/Driver/ToolChains/MSVC.cpp +++ clang/lib/Driver/ToolChains/MSVC.cpp @@ -190,13 +190,15 @@ if (IsBin) { llvm::StringRef ParentPath = llvm::sys::path::parent_path(TestPath); llvm::StringRef ParentFilename = llvm::sys::path::filename(ParentPath); - if (ParentFilename == "VC") { + if (ParentFilename.equals_lower("VC")) { Path = std::string(ParentPath); VSLayout = MSVCToolChain::ToolsetLayout::OlderVS; return true; } - if (ParentFilename == "x86ret" || ParentFilename == "x86chk" - || ParentFilename == "amd64ret" || ParentFilename == "amd64chk") { + if (ParentFilename.equals_lower("x86ret") || + ParentFilename.equals_lower("x86chk") || + ParentFilename.equals_lower("amd64ret") || + ParentFilename.equals_lower("amd64chk")) { Path = std::string(ParentPath); VSLayout = MSVCToolChain::ToolsetLayout::DevDivInternal; return true; @@ -215,7 +217,7 @@ for (llvm::StringRef Prefix : ExpectedPrefixes) { if (It == End) goto NotAToolChain; - if (!It->startswith(Prefix)) + if (!It->startswith_lower(Prefix)) goto NotAToolChain; ++It; }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits