[all-commits] [llvm/llvm-project] b985b6: [clang-tidy] Ignore macros defined within declarat...

Richard Thomson via All-commits all-commits at lists.llvm.org
Fri Apr 22 16:47:13 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b985b6e3c15a863112e1676d6211c80c7683f3eb
  Author: Richard <legalize at xmission.com>
  Date:   2022-04-22 (Fri, 22 Apr 2022)

  Changed paths:
    M clang-tools-extra/clang-tidy/modernize/MacroToEnumCheck.cpp
    M clang-tools-extra/clang-tidy/modernize/MacroToEnumCheck.h
    M clang-tools-extra/test/clang-tidy/checkers/modernize-macro-to-enum.cpp

  Log Message:
  [clang-tidy] Ignore macros defined within declarations

Modernize-macro-to-enum shouldn't try to convert macros to enums
when they are defined inside a declaration or definition, only
when the macros are defined at the top level.  Since preprocessing
is disconnected from AST traversal, match nodes in the AST and then
invalidate source ranges spanning AST nodes before issuing diagnostics.

ClangTidyCheck::onEndOfTranslationUnit is called before
PPCallbacks::EndOfMainFile, so defer final diagnostics to the
PPCallbacks implementation.

Differential Revision: https://reviews.llvm.org/D124066

Fixes #54883

More information about the All-commits mailing list