diff --git a/clang-tools-extra/include-cleaner/include/clang-include-cleaner/Types.h b/clang-tools-extra/include-cleaner/include/clang-include-cleaner/Types.h --- a/clang-tools-extra/include-cleaner/include/clang-include-cleaner/Types.h +++ b/clang-tools-extra/include-cleaner/include/clang-include-cleaner/Types.h @@ -133,6 +133,8 @@ // nullptr if the header was not found SourceLocation HashLocation; // of hash in #include unsigned Line = 0; // 1-based line number for #include + bool Angled = false; // True if spelled with quotes. + std::string quote() const; // e.g. }; llvm::raw_ostream &operator<<(llvm::raw_ostream &, const Include &); diff --git a/clang-tools-extra/include-cleaner/lib/HTMLReport.cpp b/clang-tools-extra/include-cleaner/lib/HTMLReport.cpp --- a/clang-tools-extra/include-cleaner/lib/HTMLReport.cpp +++ b/clang-tools-extra/include-cleaner/lib/HTMLReport.cpp @@ -416,7 +416,7 @@ for (const auto *I : R.Includes) { OS << "Included"; - escapeString(I->Spelled); + escapeString(I->quote()); OS << ", line " << I->Line << ""; OS << ""; } diff --git a/clang-tools-extra/include-cleaner/lib/Record.cpp b/clang-tools-extra/include-cleaner/lib/Record.cpp --- a/clang-tools-extra/include-cleaner/lib/Record.cpp +++ b/clang-tools-extra/include-cleaner/lib/Record.cpp @@ -46,6 +46,7 @@ I.Resolved = File ? &File->getFileEntry() : nullptr; I.Line = SM.getSpellingLineNumber(Hash); I.Spelled = SpelledFilename; + I.Angled = IsAngled; Recorded.Includes.add(I); } diff --git a/clang-tools-extra/include-cleaner/lib/Types.cpp b/clang-tools-extra/include-cleaner/lib/Types.cpp --- a/clang-tools-extra/include-cleaner/lib/Types.cpp +++ b/clang-tools-extra/include-cleaner/lib/Types.cpp @@ -39,7 +39,7 @@ } llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const Include &I) { - return OS << I.Line << ": " << I.Spelled << " => " + return OS << I.Line << ": " << I.quote() << " => " << (I.Resolved ? I.Resolved->getName() : ""); } @@ -64,4 +64,9 @@ llvm_unreachable("Unexpected RefType"); } +std::string Include::quote() const { + return (llvm::StringRef(Angled ? "<" : "\"") + Spelled + + (Angled ? ">" : "\"")) + .str(); +} } // namespace clang::include_cleaner