diff --git a/clang/Driver/HTMLDiagnostics.cpp b/clang/Driver/HTMLDiagnostics.cpp
index 82696664ac41a23a88b548fdcfdf6885cf10bbce..d4b481bfdad64f74e56b92d9a3f126f382d4c821 100644
--- a/clang/Driver/HTMLDiagnostics.cpp
+++ b/clang/Driver/HTMLDiagnostics.cpp
@@ -114,27 +114,26 @@ void HTMLDiagnostics::HandlePathDiagnostic(const PathDiagnostic& D) {
html::EscapeText(R, FileID);
html::AddLineNumbers(R, FileID);
- // Add the name of the file.
+ // Get the full directory name of the analyzed file.
+
+ const FileEntry* Entry = SMgr.getFileEntryForID(FileID);
+ std::string DirName(Entry->getDir()->getName());
- {
- std::ostringstream os;
+ if (DirName == ".")
+ DirName = llvm::sys::Path::GetCurrentDirectory().toString();
- os << "
";
+ // Add the name of the file as an tag.
- const FileEntry* Entry = SMgr.getFileEntryForID(FileID);
- const char* dname = Entry->getDir()->getName();
-
- if (strcmp(dname,".") == 0)
- os << html::EscapeText(llvm::sys::Path::GetCurrentDirectory().toString());
- else
- os << html::EscapeText(dname);
+ {
+ std::ostringstream os;
- os << "/" << html::EscapeText(Entry->getName()) << "
\n";
+ os << "" << html::EscapeText(DirName)
+ << "/" << html::EscapeText(Entry->getName()) << "
\n";
R.InsertStrBefore(SourceLocation::getFileLoc(FileID, 0), os.str());
}
- // Add the bug description.
+ // Embed meta-data tags.
const std::string& BugDesc = D.getDescription();
@@ -142,7 +141,26 @@ void HTMLDiagnostics::HandlePathDiagnostic(const PathDiagnostic& D) {
std::ostringstream os;
os << "\n\n";
R.InsertStrBefore(SourceLocation::getFileLoc(FileID, 0), os.str());
- }
+ }
+
+ {
+ std::ostringstream os;
+ os << "\n\n";
+ R.InsertStrBefore(SourceLocation::getFileLoc(FileID, 0), os.str());
+ }
+
+ {
+ std::ostringstream os;
+ os << "\n\n";
+ R.InsertStrBefore(SourceLocation::getFileLoc(FileID, 0), os.str());
+ }
+
+ {
+ std::ostringstream os;
+ os << "\n\n";
+ R.InsertStrBefore(SourceLocation::getFileLoc(FileID, 0), os.str());
+ }
// Add CSS, header, and footer.