diff options
author | George Karpenkov <ekarpenkov@apple.com> | 2018-01-17 02:59:11 +0000 |
---|---|---|
committer | George Karpenkov <ekarpenkov@apple.com> | 2018-01-17 02:59:11 +0000 |
commit | a5ddd3cacb01ede6576d14d7ff9a3faee7d80f06 (patch) | |
tree | e4315f5c4e8db7028c24b503db360a289a9c7803 /clang/lib/Rewrite/HTMLRewrite.cpp | |
parent | 8321ad9ffc1290f914f7065965085d32961fc941 (diff) | |
download | bcm5719-llvm-a5ddd3cacb01ede6576d14d7ff9a3faee7d80f06.tar.gz bcm5719-llvm-a5ddd3cacb01ede6576d14d7ff9a3faee7d80f06.zip |
[analyzer] support a mode to only show relevant lines in HTML diagnostics
HTML diagnostics can be an overwhelming blob of pages of code.
This patch adds a checkbox which filters this list down to only the
lines *relevant* to the counterexample by e.g. skipping branches which
analyzer has assumed to be infeasible at a time.
The resulting amount of output is much smaller, and often fits on one
screen, and also provides a much more readable diagnostics.
Differential Revision: https://reviews.llvm.org/D41378
llvm-svn: 322612
Diffstat (limited to 'clang/lib/Rewrite/HTMLRewrite.cpp')
-rw-r--r-- | clang/lib/Rewrite/HTMLRewrite.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/clang/lib/Rewrite/HTMLRewrite.cpp b/clang/lib/Rewrite/HTMLRewrite.cpp index 618c0179f10..d3247846bc6 100644 --- a/clang/lib/Rewrite/HTMLRewrite.cpp +++ b/clang/lib/Rewrite/HTMLRewrite.cpp @@ -210,9 +210,9 @@ static void AddLineNumber(RewriteBuffer &RB, unsigned LineNo, SmallString<256> Str; llvm::raw_svector_ostream OS(Str); - OS << "<tr><td class=\"num\" id=\"LN" - << LineNo << "\">" - << LineNo << "</td><td class=\"line\">"; + OS << "<tr class=\"codeline\" data-linenumber=\"" << LineNo << "\">" + << "<td class=\"num\" id=\"LN" << LineNo << "\">" << LineNo + << "</td><td class=\"line\">"; if (B == E) { // Handle empty lines. OS << " </td></tr>"; @@ -263,7 +263,10 @@ void html::AddLineNumbers(Rewriter& R, FileID FID) { } // Add one big table tag that surrounds all of the code. - RB.InsertTextBefore(0, "<table class=\"code\">\n"); + std::string s; + llvm::raw_string_ostream os(s); + os << "<table class=\"code\" data-fileid=\"" << FID.getHashValue() << "\">\n"; + RB.InsertTextBefore(0, os.str()); RB.InsertTextAfter(FileEnd - FileBeg, "</table>"); } |