njames93 created this revision. njames93 added a reviewer: aaron.ballman. Herald added subscribers: usaxena95, kadircet, xazax.hun. njames93 requested review of this revision. Herald added subscribers: cfe-commits, ilya-biryukov. Herald added a project: clang.
I'm unable to figure out a reproduction of this bug as it emerged when using clangd(On a ReleaseWithAssertions build) making it very hard to figure out the exact code that caught it. However this is a pretty obvious check to include. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D97889 Files: clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp Index: clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp +++ clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp @@ -313,6 +313,8 @@ const auto *Member = dyn_cast<MemberExpr>(TheCall->getCallee()); if (!Member) return nullptr; + if (!Member->getMemberDecl()->getDeclName().isIdentifier()) + return nullptr; StringRef Name = Member->getMemberDecl()->getName(); if (!Name.consume_back(IsBegin ? "begin" : "end")) return nullptr; @@ -544,6 +546,7 @@ std::vector<FixItHint> FixIts; if (VarNameFromAlias) { const auto *AliasVar = cast<VarDecl>(AliasDecl->getSingleDecl()); + assert(AliasVar->getDeclName().isIdentifier()); VarName = AliasVar->getName().str(); // Use the type of the alias if it's not the same
Index: clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp +++ clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp @@ -313,6 +313,8 @@ const auto *Member = dyn_cast<MemberExpr>(TheCall->getCallee()); if (!Member) return nullptr; + if (!Member->getMemberDecl()->getDeclName().isIdentifier()) + return nullptr; StringRef Name = Member->getMemberDecl()->getName(); if (!Name.consume_back(IsBegin ? "begin" : "end")) return nullptr; @@ -544,6 +546,7 @@ std::vector<FixItHint> FixIts; if (VarNameFromAlias) { const auto *AliasVar = cast<VarDecl>(AliasDecl->getSingleDecl()); + assert(AliasVar->getDeclName().isIdentifier()); VarName = AliasVar->getName().str(); // Use the type of the alias if it's not the same
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits