[PATCH] D126134: [clang-tidy] Improve add_new_check.py to recognize more checks

Richard via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon May 23 08:05:09 PDT 2022


LegalizeAdulthood added inline comments.


================
Comment at: clang-tools-extra/clang-tidy/add_new_check.py:352
+      stmt = code[stmt_start_pos+1:stmt_end_pos]
+      matches = re.search('registerCheck<([^>:]*)>\(\s*"([^"]*)"\s*\)', stmt)
+      if matches and matches[2] == full_check_name:
----------------
LegalizeAdulthood wrote:
> aaron.ballman wrote:
> > It's a bit early for me to fully grok regex, but: is this going to handle line continuations/newlines okay? I don't know if those show up in cases that matter right now, but I wanted to make sure it was being thought about.
> `\s` matches any single whitespace character and `\s*` matches zero or more whitespace characters.  I could sprinkle some more in between tokens, but this catches the existing code correctly.
There is some code like this: `CheckFactories.registerCheck<bugprone::UnhandledSelfAssignmentCheck>("cert-oop54-cpp");` and I intentionally omit searching for this (`[^:>]*`) because these are aliases for other checks.

Which makes me wonder if we want to explicitly register aliases differently from regular checks?  If you want to run a list of checks and exclude aliases (so the check doesn't run twice), how do you do that?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D126134



More information about the cfe-commits mailing list