kadircet created this revision. kadircet added a reviewer: hokein. Herald added a project: clang. Herald added a subscriber: cfe-commits. kadircet requested review of this revision.
This skips searching for `target` related flags in the existing args if we don't have a valid target to insert. Depends on D85076 <https://reviews.llvm.org/D85076> Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D85077 Files: clang/lib/Tooling/Tooling.cpp Index: clang/lib/Tooling/Tooling.cpp =================================================================== --- clang/lib/Tooling/Tooling.cpp +++ clang/lib/Tooling/Tooling.cpp @@ -258,7 +258,10 @@ // --driver-mode=X const std::string DriverModeOPT = Table.getOption(driver::options::OPT_driver_mode).getPrefixedName(); - bool AlreadyHasTarget = false; + auto TargetMode = + driver::ToolChain::getTargetAndModeFromProgramName(InvokedAs); + // No need to search for target args if we don't have a mode to insert. + bool AlreadyHasTarget = !TargetMode.TargetIsValid; bool AlreadyHasMode = false; // Skip CommandLine[0]. for (auto Token = ++CommandLine.begin(); Token != CommandLine.end(); @@ -268,12 +271,10 @@ TokenRef.startswith(TargetOPT) || TokenRef.equals(TargetOPTLegacy); AlreadyHasMode |= TokenRef.startswith(DriverModeOPT); } - auto TargetMode = - driver::ToolChain::getTargetAndModeFromProgramName(InvokedAs); if (!AlreadyHasMode && TargetMode.DriverMode) { CommandLine.insert(++CommandLine.begin(), TargetMode.DriverMode); } - if (!AlreadyHasTarget && TargetMode.TargetIsValid) { + if (!AlreadyHasTarget) { CommandLine.insert(++CommandLine.begin(), TargetOPT + TargetMode.TargetPrefix); }
Index: clang/lib/Tooling/Tooling.cpp =================================================================== --- clang/lib/Tooling/Tooling.cpp +++ clang/lib/Tooling/Tooling.cpp @@ -258,7 +258,10 @@ // --driver-mode=X const std::string DriverModeOPT = Table.getOption(driver::options::OPT_driver_mode).getPrefixedName(); - bool AlreadyHasTarget = false; + auto TargetMode = + driver::ToolChain::getTargetAndModeFromProgramName(InvokedAs); + // No need to search for target args if we don't have a mode to insert. + bool AlreadyHasTarget = !TargetMode.TargetIsValid; bool AlreadyHasMode = false; // Skip CommandLine[0]. for (auto Token = ++CommandLine.begin(); Token != CommandLine.end(); @@ -268,12 +271,10 @@ TokenRef.startswith(TargetOPT) || TokenRef.equals(TargetOPTLegacy); AlreadyHasMode |= TokenRef.startswith(DriverModeOPT); } - auto TargetMode = - driver::ToolChain::getTargetAndModeFromProgramName(InvokedAs); if (!AlreadyHasMode && TargetMode.DriverMode) { CommandLine.insert(++CommandLine.begin(), TargetMode.DriverMode); } - if (!AlreadyHasTarget && TargetMode.TargetIsValid) { + if (!AlreadyHasTarget) { CommandLine.insert(++CommandLine.begin(), TargetOPT + TargetMode.TargetPrefix); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits