summaryrefslogtreecommitdiffstats
path: root/clang/lib/Tooling/CommonOptionsParser.cpp
diff options
context:
space:
mode:
authorManuel Klimek <klimek@google.com>2015-12-03 10:38:53 +0000
committerManuel Klimek <klimek@google.com>2015-12-03 10:38:53 +0000
commit6003384ea9f6a9a9e847137fb54696d659ec9832 (patch)
tree9afe57aa5e6f37eafa058c0045b3818637124ec7 /clang/lib/Tooling/CommonOptionsParser.cpp
parent0f1223053c1866a4e49577447a09ac943b6fdb31 (diff)
downloadbcm5719-llvm-6003384ea9f6a9a9e847137fb54696d659ec9832.tar.gz
bcm5719-llvm-6003384ea9f6a9a9e847137fb54696d659ec9832.zip
Add fall-back mode for clang tools.
Run without flags if we cannot load a compilation database. This matches the behavior of clang itself when simply called with a source file. Based on a patch by Russell Wallace. llvm-svn: 254599
Diffstat (limited to 'clang/lib/Tooling/CommonOptionsParser.cpp')
-rw-r--r--clang/lib/Tooling/CommonOptionsParser.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/clang/lib/Tooling/CommonOptionsParser.cpp b/clang/lib/Tooling/CommonOptionsParser.cpp
index e6b986709a6..82f56014008 100644
--- a/clang/lib/Tooling/CommonOptionsParser.cpp
+++ b/clang/lib/Tooling/CommonOptionsParser.cpp
@@ -116,8 +116,7 @@ CommonOptionsParser::CommonOptionsParser(
cl::HideUnrelatedOptions(Category);
- Compilations.reset(FixedCompilationDatabase::loadFromCommandLine(argc,
- argv));
+ Compilations.reset(FixedCompilationDatabase::loadFromCommandLine(argc, argv));
cl::ParseCommandLineOptions(argc, argv, Overview);
SourcePathList = SourcePaths;
if ((OccurrencesFlag == cl::ZeroOrMore || OccurrencesFlag == cl::Optional) &&
@@ -132,8 +131,12 @@ CommonOptionsParser::CommonOptionsParser(
Compilations = CompilationDatabase::autoDetectFromSource(SourcePaths[0],
ErrorMessage);
}
- if (!Compilations)
- llvm::report_fatal_error(ErrorMessage);
+ if (!Compilations) {
+ llvm::errs() << "Error while trying to load a compilation database:\n"
+ << ErrorMessage << "Running without flags.\n";
+ Compilations.reset(
+ new FixedCompilationDatabase(".", std::vector<std::string>()));
+ }
}
auto AdjustingCompilations =
llvm::make_unique<ArgumentsAdjustingCompilations>(
OpenPOWER on IntegriCloud