================
@@ -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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits