================
@@ -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

Reply via email to