================
@@ -217,39 +217,49 @@ static llvm::Error makeErrorFromDiagnosticsOS(
DiagPrinterWithOS.DiagnosticsOS.str(), llvm::inconvertibleErrorCode());
}
-llvm::Error
-DependencyScanningTool::initializeCompilerInstanceWithContextOrError(
- StringRef CWD, ArrayRef<std::string> CommandLine) {
- DiagPrinterWithOS =
- std::make_unique<TextDiagnosticsPrinterWithOutput>(CommandLine);
-
+bool DependencyScanningTool::initializeWorkerCIWithContextFromCommandline(
+ DependencyScanningWorker &Worker, StringRef CWD,
+ ArrayRef<std::string> CommandLine, DiagnosticConsumer &DC) {
if (CommandLine.size() >= 2 && CommandLine[1] == "-cc1") {
// The input command line is already a -cc1 invocation; initialize the
// compiler instance directly from it.
- if (Worker.initializeCompilerInstanceWithContext(
- CWD, CommandLine, DiagPrinterWithOS->DiagPrinter))
- return llvm::Error::success();
- return makeErrorFromDiagnosticsOS(*DiagPrinterWithOS);
+ return Worker.initializeCompilerInstanceWithContext(CWD, CommandLine, DC);
}
// The input command line is either a driver-style command line, or
// ill-formed. In this case, we will first call the Driver to build a -cc1
// command line for this compilation or diagnose any ill-formed input.
- auto [OverlayFS, ModifiedCommandLine] = initVFSForByNameScanning(
+ auto OverlayFSAndArgs = initVFSForByNameScanning(
&Worker.getVFS(), CommandLine, CWD, "ScanningByName");
+ auto &OverlayFS = OverlayFSAndArgs.first;
+ const auto &ModifiedCommandLine = OverlayFSAndArgs.second;
+
auto DiagEngineWithCmdAndOpts =
- std::make_unique<DiagnosticsEngineWithDiagOpts>(
- ModifiedCommandLine, OverlayFS, DiagPrinterWithOS->DiagPrinter);
+ std::make_unique<DiagnosticsEngineWithDiagOpts>(ModifiedCommandLine,
+ OverlayFS, DC);
const auto MaybeFirstCC1 = getFirstCC1CommandLine(
ModifiedCommandLine, *DiagEngineWithCmdAndOpts->DiagEngine, OverlayFS);
if (!MaybeFirstCC1)
- return makeErrorFromDiagnosticsOS(*DiagPrinterWithOS);
+ return false;
+
+ return Worker.initializeCompilerInstanceWithContext(
+ CWD, *MaybeFirstCC1, std::move(DiagEngineWithCmdAndOpts), OverlayFS);
+}
- if (Worker.initializeCompilerInstanceWithContext(
- CWD, *MaybeFirstCC1, std::move(DiagEngineWithCmdAndOpts), OverlayFS))
+llvm::Error
+DependencyScanningTool::initializeCompilerInstanceWithContextOrError(
+ StringRef CWD, ArrayRef<std::string> CommandLine) {
+ DiagPrinterWithOS =
+ std::make_unique<TextDiagnosticsPrinterWithOutput>(CommandLine);
+
+ bool Result = initializeWorkerCIWithContextFromCommandline(
+ Worker, CWD, CommandLine, DiagPrinterWithOS->DiagPrinter);
+
+ if (Result)
return llvm::Error::success();
- return makeErrorFromDiagnosticsOS(*DiagPrinterWithOS);
+ else
+ return makeErrorFromDiagnosticsOS(*DiagPrinterWithOS);
----------------
naveen-seth wrote:
Sorry I didn't notice this earlier!
https://llvm.org/docs/CodingStandards.html#don-t-use-else-after-a-return
```suggestion
return makeErrorFromDiagnosticsOS(*DiagPrinterWithOS);
```
https://github.com/llvm/llvm-project/pull/172345
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits