[PATCH] D135956: [include-cleaner] Add include-cleaner tool, with initial HTML report

Haojian Wu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 18 03:29:28 PDT 2022


hokein accepted this revision.
hokein added a comment.
This revision is now accepted and ready to land.

It looks good to me.

As discussed offline, would be nice to show line number for each line of code in the html dump.



================
Comment at: clang-tools-extra/include-cleaner/lib/HTMLReport.cpp:90
+  std::vector<Target> Targets;
+  std::vector<std::pair</*Offset*/ unsigned, /*TargetIndex*/ unsigned>> Refs;
+
----------------
This is for main-file right? worth a comment.


================
Comment at: clang-tools-extra/include-cleaner/lib/HTMLReport.cpp:97
+  void addRef(SourceLocation Loc, const NamedDecl &D) {
+    auto Coords = SM.getDecomposedLoc(SM.getFileLoc(Loc));
+    if (Coords.first != File)
----------------
using `auto [RefFileID, Offset] = SM.getDecomposedLoc(SM.getFileLoc(Loc));` is more readable, comparing the following `.first`, `.second` usage.


================
Comment at: clang-tools-extra/include-cleaner/lib/HTMLReport.cpp:101
+    Targets.push_back({&D});
+    Refs.push_back({Coords.second, Targets.size() - 1});
+  }
----------------
If I read this code correctly, `Refs` should only collect main-file refs, if so then we should bailout if `Coords.first != File`.


================
Comment at: clang-tools-extra/include-cleaner/unittests/RecordTest.cpp:1
+#include "clang-include-cleaner/Record.h"
+#include "clang/Frontend/FrontendAction.h"
----------------
nit: missing a file comment.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D135956/new/

https://reviews.llvm.org/D135956



More information about the cfe-commits mailing list