From: Daniel Dunbar Date: Tue, 10 Nov 2009 23:55:23 +0000 (+0000) Subject: Add Diagnostic::Report method for reporting diagnostics without a location. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0f9fed70cea107b3f79df554e38bd8e98d48fe47;p=clang Add Diagnostic::Report method for reporting diagnostics without a location. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86760 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/Diagnostic.h b/include/clang/Basic/Diagnostic.h index 16787542eb..ba086ebf7a 100644 --- a/include/clang/Basic/Diagnostic.h +++ b/include/clang/Basic/Diagnostic.h @@ -386,6 +386,7 @@ public: /// @c Pos represents the source location associated with the diagnostic, /// which can be an invalid location if no position information is available. inline DiagnosticBuilder Report(FullSourceLoc Pos, unsigned DiagID); + inline DiagnosticBuilder Report(unsigned DiagID); /// \brief Clear out the current diagnostic. void Clear() { CurDiagID = ~0U; } @@ -671,6 +672,9 @@ inline DiagnosticBuilder Diagnostic::Report(FullSourceLoc Loc, unsigned DiagID){ CurDiagID = DiagID; return DiagnosticBuilder(this); } +inline DiagnosticBuilder Diagnostic::Report(unsigned DiagID) { + return Report(FullSourceLoc(), DiagID); +} //===----------------------------------------------------------------------===// // DiagnosticInfo diff --git a/include/clang/Driver/Driver.h b/include/clang/Driver/Driver.h index c0327a2f1d..d3ab115337 100644 --- a/include/clang/Driver/Driver.h +++ b/include/clang/Driver/Driver.h @@ -48,7 +48,7 @@ class Driver { public: // Diag - Forwarding function for diagnostics. DiagnosticBuilder Diag(unsigned DiagID) const { - return Diags.Report(FullSourceLoc(), DiagID); + return Diags.Report(DiagID); } // FIXME: Privatize once interface is stable. diff --git a/lib/Frontend/Warnings.cpp b/lib/Frontend/Warnings.cpp index 7b01b0fb74..3f442c8a7f 100644 --- a/lib/Frontend/Warnings.cpp +++ b/lib/Frontend/Warnings.cpp @@ -100,8 +100,7 @@ bool clang::ProcessWarningOptions(Diagnostic &Diags, } if (Diags.setDiagnosticGroupMapping(OptStart, Mapping)) - Diags.Report(FullSourceLoc(), diag::warn_unknown_warning_option) - << ("-W" + Opt); + Diags.Report(diag::warn_unknown_warning_option) << ("-W" + Opt); } return false; diff --git a/lib/Lex/PTHLexer.cpp b/lib/Lex/PTHLexer.cpp index f17a5d93a9..60deeb325c 100644 --- a/lib/Lex/PTHLexer.cpp +++ b/lib/Lex/PTHLexer.cpp @@ -411,8 +411,7 @@ static void InvalidPTH(Diagnostic *Diags, Diagnostic::Level level, const char* Msg = 0) { if (!Diags) return; if (!Msg) Msg = "Invalid or corrupted PTH file"; - unsigned DiagID = Diags->getCustomDiagID(level, Msg); - Diags->Report(FullSourceLoc(), DiagID); + Diags->Report(Diags->getCustomDiagID(level, Msg)); } PTHManager* PTHManager::Create(const std::string& file, Diagnostic* Diags, @@ -423,9 +422,9 @@ PTHManager* PTHManager::Create(const std::string& file, Diagnostic* Diags, if (!File) { if (Diags) { - unsigned DiagID = Diags->getCustomDiagID(level, - "PTH file %0 could not be read"); - Diags->Report(FullSourceLoc(), DiagID) << file; + unsigned DiagID =Diags->getCustomDiagID(level, + "PTH file %0 could not be read"); + Diags->Report(DiagID) << file; } return 0; diff --git a/tools/clang-cc/clang-cc.cpp b/tools/clang-cc/clang-cc.cpp index c7fa4c486d..98e4b28272 100644 --- a/tools/clang-cc/clang-cc.cpp +++ b/tools/clang-cc/clang-cc.cpp @@ -862,16 +862,14 @@ static bool InitializeSourceManager(Preprocessor &PP, const FileEntry *File = FileMgr.getFile(InFile); if (File) SourceMgr.createMainFileID(File, SourceLocation()); if (SourceMgr.getMainFileID().isInvalid()) { - PP.getDiagnostics().Report(FullSourceLoc(), diag::err_fe_error_reading) - << InFile.c_str(); + PP.getDiagnostics().Report(diag::err_fe_error_reading) << InFile.c_str(); return true; } } else { llvm::MemoryBuffer *SB = llvm::MemoryBuffer::getSTDIN(); SourceMgr.createMainFileIDForMemBuffer(SB); if (SourceMgr.getMainFileID().isInvalid()) { - PP.getDiagnostics().Report(FullSourceLoc(), - diag::err_fe_error_reading_stdin); + PP.getDiagnostics().Report(diag::err_fe_error_reading_stdin); return true; } } @@ -1576,8 +1574,7 @@ static void ProcessInputFile(const CompilerInvocation &CompOpts, Context)); if (!Consumer.get()) { - PP.getDiagnostics().Report(FullSourceLoc(), - diag::err_fe_invalid_ast_action); + PP.getDiagnostics().Report(diag::err_fe_invalid_ast_action); return; } @@ -1804,8 +1801,7 @@ static void ProcessInputFile(const CompilerInvocation &CompOpts, // Set up the creation routine for code-completion. CreateCodeCompleter = BuildPrintingCodeCompleter; } else { - PP.getDiagnostics().Report(FullSourceLoc(), - diag::err_fe_invalid_code_complete_file) + PP.getDiagnostics().Report(diag::err_fe_invalid_code_complete_file) << CodeCompletionAt.FileName; } } @@ -1904,7 +1900,7 @@ static void ProcessASTInputFile(const CompilerInvocation &CompOpts, std::string Error; llvm::OwningPtr AST(ASTUnit::LoadFromPCHFile(InFile, &Error)); if (!AST) { - Diags.Report(FullSourceLoc(), diag::err_fe_invalid_ast_file) << Error; + Diags.Report(diag::err_fe_invalid_ast_file) << Error; return; } @@ -1917,7 +1913,7 @@ static void ProcessASTInputFile(const CompilerInvocation &CompOpts, OutPath, Context)); if (!Consumer.get()) { - Diags.Report(FullSourceLoc(), diag::err_fe_invalid_ast_action); + Diags.Report(diag::err_fe_invalid_ast_action); return; } @@ -1960,7 +1956,7 @@ InputFilenames(llvm::cl::Positional, llvm::cl::desc("")); static void LLVMErrorHandler(void *UserData, const std::string &Message) { Diagnostic &Diags = *static_cast(UserData); - Diags.Report(FullSourceLoc(), diag::err_fe_error_backend) << Message; + Diags.Report(diag::err_fe_error_backend) << Message; // We cannot recover from llvm errors. exit(1); @@ -2131,16 +2127,14 @@ int main(int argc, char **argv) { Target(TargetInfo::CreateTargetInfo(Triple.getTriple())); if (Target == 0) { - Diags.Report(FullSourceLoc(), diag::err_fe_unknown_triple) - << Triple.getTriple().c_str(); + Diags.Report(diag::err_fe_unknown_triple) << Triple.getTriple().c_str(); return 1; } // Set the target ABI if specified. if (!TargetABI.empty()) { if (!Target->setABI(TargetABI)) { - Diags.Report(FullSourceLoc(), diag::err_fe_unknown_target_abi) - << TargetABI; + Diags.Report(diag::err_fe_unknown_target_abi) << TargetABI; return 1; } } @@ -2195,15 +2189,14 @@ int main(int argc, char **argv) { // Handle generating dependencies, if requested. if (!DependencyFile.empty()) { if (DependencyTargets.empty()) { - Diags.Report(FullSourceLoc(), diag::err_fe_dependency_file_requires_MT); + Diags.Report(diag::err_fe_dependency_file_requires_MT); continue; } std::string ErrStr; llvm::raw_ostream *DependencyOS = new llvm::raw_fd_ostream(DependencyFile.c_str(), ErrStr); if (!ErrStr.empty()) { - Diags.Report(FullSourceLoc(), diag::err_fe_error_opening) - << DependencyFile << ErrStr; + Diags.Report(diag::err_fe_error_opening) << DependencyFile << ErrStr; continue; }