================ @@ -548,6 +564,8 @@ class CheckerProgramPointTag : public SimpleProgramPointTag { template <typename CHECK1, typename... CHECKs> class Checker : public CHECK1, public CHECKs..., public CheckerBase { public: + using BlockEntrance = clang::BlockEntrance; ---------------- balazs-benics-sonarsource wrote:
Yes, the class `check::BlockEntrance` would have priority within a checker, e.g. the DivByZero checker when spelling an unqualified name `BlockEntrance`. This means that the function parameter of that callback would refer to the wrong class: `checkBlockEntrance(const BlockEntrance &Entrance,...)`. To circumvent this and provide the expected lookup rules, I need to force it to shadow this name with the `clang::BlockEntrance`, hence this using declaration here. It's not pretty, but smart and has a low footprint. No users should know why it works. https://github.com/llvm/llvm-project/pull/140924 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits