diff options
Diffstat (limited to 'clang/lib/Frontend/FrontendActions.cpp')
-rw-r--r-- | clang/lib/Frontend/FrontendActions.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/clang/lib/Frontend/FrontendActions.cpp b/clang/lib/Frontend/FrontendActions.cpp index 4f06432..e70210d 100644 --- a/clang/lib/Frontend/FrontendActions.cpp +++ b/clang/lib/Frontend/FrontendActions.cpp @@ -841,9 +841,16 @@ static StringRef ModuleKindName(Module::ModuleKind MK) { } void DumpModuleInfoAction::ExecuteAction() { - assert(isCurrentFileAST() && "dumping non-AST?"); - // Set up the output file. CompilerInstance &CI = getCompilerInstance(); + + // Don't process files of type other than module to avoid crash + if (!isCurrentFileAST()) { + CI.getDiagnostics().Report(diag::err_file_is_not_module) + << getCurrentFile(); + return; + } + + // Set up the output file. StringRef OutputFileName = CI.getFrontendOpts().OutputFile; if (!OutputFileName.empty() && OutputFileName != "-") { std::error_code EC; |