Lines Matching +full:- +full:- +full:versioned +full:- +full:dirs
1 //===--- ToolChains.cpp - ToolChain Implementations -----------------------===//
8 //===----------------------------------------------------------------------===//
19 #include "llvm/Config/llvm-config.h"
72 // Emit unwind tables by default on Win64. All non-x86_32 Windows platforms in IsUnwindTablesDefault()
127 /// This also supports a means to look for high-versioned keys by use
146 // If we have a $VERSION placeholder, do the highest-version search. in getSystemRegistryString()
148 const char *keyEnd = placeHolder - 1; in getSystemRegistryString()
152 keyEnd--; in getSystemRegistryString()
156 size_t partialKeyLength = keyEnd - keyPath; in getSystemRegistryString()
159 partialKeyLength = sizeof(partialKey) - 1; in getSystemRegistryString()
168 DWORD index, size = sizeof(keyName) - 1; in getSystemRegistryString()
181 strncpy(numBuf, sp, sizeof(numBuf) - 1); in getSystemRegistryString()
182 numBuf[sizeof(numBuf) - 1] = '\0'; in getSystemRegistryString()
203 size = sizeof(keyName) - 1; in getSystemRegistryString()
215 phValue->clear(); in getSystemRegistryString()
251 if (!llvm::sys::fs::is_directory(DirIt->path())) in getWindows10SDKVersion()
253 StringRef CandidateName = llvm::sys::path::filename(DirIt->path()); in getWindows10SDKVersion()
503 const unsigned Major = (FileInfo->dwFileVersionMS >> 16) & 0xFFFF; in getMSVCVersionFromExe()
504 const unsigned Minor = (FileInfo->dwFileVersionMS ) & 0xFFFF; in getMSVCVersionFromExe()
505 const unsigned Micro = (FileInfo->dwFileVersionLS >> 16) & 0xFFFF; in getMSVCVersionFromExe()
587 // Add %INCLUDE%-like directories from the -imsvc flag. in AddClangSystemIncludeArgs()
596 SmallVector<StringRef, 8> Dirs; in AddClangSystemIncludeArgs() local
598 .split(Dirs, ";", /*MaxSplit=*/-1, /*KeepEmpty=*/false); in AddClangSystemIncludeArgs()
599 for (StringRef Dir : Dirs) in AddClangSystemIncludeArgs()
601 if (!Dirs.empty()) in AddClangSystemIncludeArgs()
682 StringRef ObjFmt = Triple.getEnvironmentName().split('-').second; in ComputeEffectiveClangTriple()
687 (Twine("msvc") + MSVT.getAsString() + Twine('-') + ObjFmt).str()); in ComputeEffectiveClangTriple()
701 assert(A->getOption().matches(options::OPT__SLASH_O)); in TranslateOptArg()
703 StringRef OptStr = A->getValue(); in TranslateOptArg()
752 if (I + 1 != E && OptStr[I + 1] == '-') { in TranslateOptArg()
767 if (I + 1 != E && OptStr[I + 1] == '-') { in TranslateOptArg()
779 // Don't warn about /Oy- in 64-bit builds (where in TranslateOptArg()
781 // there is a compiler-internal optimization, and people shouldn't have in TranslateOptArg()
782 // to special-case their build files for 64-bit clang-cl. in TranslateOptArg()
783 A->claim(); in TranslateOptArg()
793 assert(A->getOption().matches(options::OPT_D)); in TranslateDArg()
795 StringRef Val = A->getValue(); in TranslateDArg()
813 // /Oy and /Oy- only has an effect under X86-32. in TranslateArgs()
816 // The -O[12xd] flag actually expands to several flags. We must desugar the in TranslateArgs()
817 // flags so that options embedded can be negated. For example, the '-O2' flag in TranslateArgs()
818 // enables '-Oy'. Expanding '-O2' into its constituent flags allows us to in TranslateArgs()
819 // correctly handle '-O2 -Oy-' where the trailing '-Oy-' disables a single in TranslateArgs()
820 // aspect of '-O2'. in TranslateArgs()
827 if (!A->getOption().matches(options::OPT__SLASH_O)) in TranslateArgs()
829 StringRef OptStr = A->getValue(); in TranslateArgs()
832 char PrevChar = I > 0 ? OptStr[I - 1] : '0'; in TranslateArgs()
843 if (A->getOption().matches(options::OPT__SLASH_O)) { in TranslateArgs()
844 // The -O flag actually takes an amalgam of other options. For example, in TranslateArgs()
847 } else if (A->getOption().matches(options::OPT_D)) { in TranslateArgs()
848 // Translate -Dfoo#bar into -Dfoo=bar. in TranslateArgs()
851 DAL->append(A); in TranslateArgs()