forked from OSchip/llvm-project
PathDiagnostics:
- Add the distinction between the 'bug type' and the 'bug description' HTMLDiagnostics: - Output the bug type field as HTML comments scan-build: - Use the bug type field instead of the bug description for the HTML table. - Radar filing now automatically picks up the bug description in the title (addresses <rdar://problem/6265970>) llvm-svn: 63084
This commit is contained in:
parent
0f4aa3cbb1
commit
a3f462e49a
|
@ -78,20 +78,23 @@ class PathDiagnostic {
|
|||
unsigned Size;
|
||||
std::string Desc;
|
||||
std::string Category;
|
||||
std::string BugType;
|
||||
std::vector<std::string> OtherDesc;
|
||||
|
||||
public:
|
||||
PathDiagnostic() : Size(0) {}
|
||||
|
||||
PathDiagnostic(const char* desc, const char* category)
|
||||
: Size(0), Desc(desc), Category(category) {}
|
||||
PathDiagnostic(const char* bugtype, const char* desc, const char* category)
|
||||
: Size(0), Desc(desc), Category(category), BugType(bugtype) {}
|
||||
|
||||
PathDiagnostic(const std::string& desc, const std::string& category)
|
||||
: Size(0), Desc(desc), Category(category) {}
|
||||
PathDiagnostic(const std::string& bugtype, const std::string& desc,
|
||||
const std::string& category)
|
||||
: Size(0), Desc(desc), Category(category), BugType(bugtype) {}
|
||||
|
||||
~PathDiagnostic();
|
||||
|
||||
const std::string& getDescription() const { return Desc; }
|
||||
const std::string& getBugType() const { return BugType; }
|
||||
const std::string& getCategory() const { return Category; }
|
||||
|
||||
typedef std::vector<std::string>::const_iterator meta_iterator;
|
||||
|
|
|
@ -727,6 +727,7 @@ void BugReporter::EmitWarning(BugReport& R) {
|
|||
return;
|
||||
|
||||
llvm::OwningPtr<PathDiagnostic> D(new PathDiagnostic(R.getName(),
|
||||
R.getDescription(),
|
||||
R.getCategory()));
|
||||
GeneratePathDiagnostic(*D.get(), R);
|
||||
|
||||
|
|
|
@ -246,6 +246,14 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D) {
|
|||
R.InsertStrBefore(SMgr.getLocForStartOfFile(FID), os.str());
|
||||
}
|
||||
|
||||
const std::string& BugType = D.getBugType();
|
||||
if (!BugType.empty()) {
|
||||
std::string s;
|
||||
llvm::raw_string_ostream os(s);
|
||||
os << "\n<!-- BUGTYPE " << BugType << " -->\n";
|
||||
R.InsertStrBefore(SMgr.getLocForStartOfFile(FID), os.str());
|
||||
}
|
||||
|
||||
const std::string& BugCategory = D.getCategory();
|
||||
|
||||
if (!BugCategory.empty()) {
|
||||
|
|
|
@ -350,7 +350,7 @@ sub ScanFile {
|
|||
# Scan the report file for tags.
|
||||
open(IN, "$Dir/$FName") or DieDiag("Cannot open '$Dir/$FName'\n");
|
||||
|
||||
my $BugDesc = "";
|
||||
my $BugType = "";
|
||||
my $BugFile = "";
|
||||
my $BugCategory;
|
||||
my $BugPathLength = 1;
|
||||
|
@ -361,8 +361,8 @@ sub ScanFile {
|
|||
|
||||
last if ($found == 5);
|
||||
|
||||
if (/<!-- BUGDESC (.*) -->$/) {
|
||||
$BugDesc = $1;
|
||||
if (/<!-- BUGTYPE (.*) -->$/) {
|
||||
$BugType = $1;
|
||||
++$found;
|
||||
}
|
||||
elsif (/<!-- BUGFILE (.*) -->$/) {
|
||||
|
@ -390,7 +390,7 @@ sub ScanFile {
|
|||
$BugCategory = "Other";
|
||||
}
|
||||
|
||||
push @$Index,[ $FName, $BugCategory, $BugDesc, $BugFile, $BugLine,
|
||||
push @$Index,[ $FName, $BugCategory, $BugType, $BugFile, $BugLine,
|
||||
$BugPathLength ];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue