From 011d2bf86487520c3515f16e0b1d32994bf2b48f Mon Sep 17 00:00:00 2001 From: serge-sans-paille Date: Wed, 6 Jul 2022 10:34:44 -0400 Subject: [PATCH] [clang-tidy] Fix confusable identifier interaction with unavailable class def Fix #56404 --- clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp b/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp index ce83a77..556d761 100644 --- a/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp @@ -127,11 +127,13 @@ static bool mayShadow(const NamedDecl *ND0, const NamedDecl *ND1) { const DeclContext *DC1 = ND1->getDeclContext()->getPrimaryContext(); if (const CXXRecordDecl *RD0 = dyn_cast(DC0)) { - if (ND1->getAccess() != AS_private && isMemberOf(ND1, RD0)) + RD0 = RD0->getDefinition(); + if (RD0 && ND1->getAccess() != AS_private && isMemberOf(ND1, RD0)) return true; } if (const CXXRecordDecl *RD1 = dyn_cast(DC1)) { - if (ND0->getAccess() != AS_private && isMemberOf(ND0, RD1)) + RD1 = RD1->getDefinition(); + if (RD1 && ND0->getAccess() != AS_private && isMemberOf(ND0, RD1)) return true; } -- 2.7.4