From 5fb5dfb6646464db3cd6d54a6332375c8fe36b75 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Wed, 1 Apr 2009 06:13:56 +0000 Subject: - Changed PathDiagnosticPiece::getLocation() to return a PathDiagnosticLocation instead of a FullSourceLoc. This resulted in a bunch of small edits in various clients. - Updated BugReporter to include an alternate PathDiagnostic generation algorithm for PathDiagnosticClients desiring more control-flow pieces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68193 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Frontend/HTMLDiagnostics.cpp | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) (limited to 'lib/Frontend/HTMLDiagnostics.cpp') diff --git a/lib/Frontend/HTMLDiagnostics.cpp b/lib/Frontend/HTMLDiagnostics.cpp index 0b266cda0f..fbca057849 100644 --- a/lib/Frontend/HTMLDiagnostics.cpp +++ b/lib/Frontend/HTMLDiagnostics.cpp @@ -130,12 +130,12 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D) { if (noDir) return; - SourceManager &SMgr = D.begin()->getLocation().getManager(); + const SourceManager &SMgr = D.begin()->getLocation().getManager(); FileID FID; // Verify that the entire path is from the same FileID. for (PathDiagnostic::const_iterator I = D.begin(), E = D.end(); I != E; ++I) { - FullSourceLoc L = I->getLocation().getInstantiationLoc(); + FullSourceLoc L = I->getLocation().asLocation().getInstantiationLoc(); if (FID.isInvalid()) { FID = SMgr.getFileID(L); @@ -162,7 +162,7 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D) { return; // FIXME: Emit a warning? // Create a new rewriter to generate HTML. - Rewriter R(SMgr); + Rewriter R(const_cast(SMgr)); // Process the path. unsigned n = D.size(); @@ -215,18 +215,18 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D) { llvm::raw_string_ostream os(s); os << "\n" - << "

Bug Summary

\n\n" + << "

Bug Summary

\n
\n" "\n\n" - "\n"; + << html::EscapeText(DirName) + << html::EscapeText(Entry->getName()) + << "\n\n" + "\n"; // Output any other meta data. @@ -280,7 +280,8 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D) { std::string s; llvm::raw_string_ostream os(s); os << "\n\n"; + << D.back()->getLocation().asLocation().getInstantiationLineNumber() + << " -->\n"; R.InsertStrBefore(SMgr.getLocForStartOfFile(FID), os.str()); } @@ -336,7 +337,7 @@ void HTMLDiagnostics::HandlePiece(Rewriter& R, FileID BugFileID, // For now, just draw a box above the line in question, and emit the // warning. - FullSourceLoc Pos = P.getLocation(); + FullSourceLoc Pos = P.getLocation().asLocation(); if (!Pos.isValid()) return; @@ -460,7 +461,7 @@ void HTMLDiagnostics::HandlePiece(Rewriter& R, FileID BugFileID, // Get the name of the macro by relexing it. { - FullSourceLoc L = MP->getLocation().getInstantiationLoc(); + FullSourceLoc L = MP->getLocation().asLocation().getInstantiationLoc(); assert(L.isFileID()); std::pair BufferInfo = L.getBufferData(); const char* MacroName = L.getDecomposedLoc().second + BufferInfo.first; -- cgit v1.2.3-18-g5258
File:" - << html::EscapeText(DirName) - << html::EscapeText(Entry->getName()) - << "
Location:" - "line " - << (*D.rbegin()).getLocation().getInstantiationLineNumber() - << ", column " - << (*D.rbegin()).getLocation().getInstantiationColumnNumber() - << "
Description:" - << D.getDescription() << "
Location:" + "line " + << (*D.rbegin()).getLocation().asLocation().getInstantiationLineNumber() + << ", column " + << (*D.rbegin()).getLocation().asLocation().getInstantiationColumnNumber() + << "
Description:" + << D.getDescription() << "