diff options
| author | Manuel Klimek <klimek@google.com> | 2015-12-03 10:38:53 +0000 |
|---|---|---|
| committer | Manuel Klimek <klimek@google.com> | 2015-12-03 10:38:53 +0000 |
| commit | 6003384ea9f6a9a9e847137fb54696d659ec9832 (patch) | |
| tree | 9afe57aa5e6f37eafa058c0045b3818637124ec7 /clang/lib/Tooling/CommonOptionsParser.cpp | |
| parent | 0f1223053c1866a4e49577447a09ac943b6fdb31 (diff) | |
| download | bcm5719-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.cpp | 11 |
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>( |

