[clang] [Clang] Repair the function "rParenEndsCast" to make incorrect judgments in template variable cases (PR #120904)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Jan 1 09:18:31 PST 2025
================
@@ -2831,8 +2842,21 @@ class AnnotatingParser {
IsQualifiedPointerOrReference(BeforeRParen, LangOpts);
bool ParensCouldEndDecl =
AfterRParen->isOneOf(tok::equal, tok::semi, tok::l_brace, tok::greater);
- if (ParensAreType && !ParensCouldEndDecl)
+ if (ParensAreType && !ParensCouldEndDecl) {
+ if (BeforeRParen->is(TT_TemplateCloser)) {
+ if (determineUnaryOperatorByUsage(*AfterRParen))
+ return true;
+ if (AfterRParen->isOneOf(tok::plus, tok::minus, tok::star, tok::exclaim,
+ tok::amp)) {
+ auto *Prev = BeforeRParen->MatchingParen->getPreviousNonComment();
+ for (auto &name : castIdentifiers)
+ if (Prev->TokenText == name)
+ return true;
+ return false;
----------------
dty2 wrote:
You are right, but I would use the llvm alternative version of std::find which is in STLExtras.h, You're right, but I would use the llvm alternative version of std::find, which is in STLExtras.h.
https://github.com/llvm/llvm-project/pull/120904
More information about the cfe-commits
mailing list