[clang-tools-extra] [clang-tidy][IncludeCleaner] Fix analysis supression in presence of verbatim spellings (PR #68185)

via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 4 02:56:08 PDT 2023


================
@@ -179,12 +183,14 @@ void IncludeCleanerCheck::check(const MatchFinder::MatchResult &Result) {
       if (getCurrentMainFile().endswith(PHeader))
         continue;
     }
-
-    if (llvm::none_of(
-            IgnoreHeadersRegex,
-            [Resolved = (*I.Resolved).getFileEntry().tryGetRealPathName()](
-                const llvm::Regex &R) { return R.match(Resolved); }))
-      Unused.push_back(&I);
+    auto StdHeader = tooling::stdlib::Header::named(
----------------
VitaNuo wrote:

Ok, thanks, then what about something like (apologies for small mistakes, just typing into the comment window):

```
include_cleaner::Header getHeader(include_cleaner::Include I) {
    auto StdHeader = tooling::stdlib::Header::named(I.quote(), PP->getLangOpts().CPlusPlus ? tooling::stdlib::Lang::CXX :  tooling::stdlib::Lang::C);

   if (StdHeader) 
      return include_cleaner::Header(*StdHeader);
   return include_cleaner::Header(I.Resolved);
}

auto Header = getHeader(I);
if (shouldIgnore(Header))
 continue;

```

I'm trying to simplify the flow in the `check` method, as it seems like it's getting bogged down in implementation details. WDYT?

https://github.com/llvm/llvm-project/pull/68185


More information about the cfe-commits mailing list