From 7d69964b278f44360a63d492011a7ad9f9295e1c Mon Sep 17 00:00:00 2001 From: chrchr-github Date: Mon, 28 Oct 2024 23:20:56 +0100 Subject: [PATCH] Fix #13281 internalAstError with delete and increment/decrement --- lib/tokenlist.cpp | 2 +- test/testtokenize.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/tokenlist.cpp b/lib/tokenlist.cpp index 1fb0e71623c..a2ffa7e0692 100644 --- a/lib/tokenlist.cpp +++ b/lib/tokenlist.cpp @@ -1721,7 +1721,7 @@ static Token * createAstAtToken(Token *tok) } } - if (Token::Match(tok, "%type% %name%|*|&|::") && !Token::Match(tok, "return|new")) { + if (Token::Match(tok, "%type% %name%|*|&|::") && !Token::Match(tok, "return|new|delete")) { int typecount = 0; Token *typetok = tok; while (Token::Match(typetok, "%type%|::|*|&")) { diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index e0def286f81..2b86a369947 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -6345,6 +6345,7 @@ class TestTokenizer : public TestFixture { ASSERT_EQUALS("sSint(new::(new=", testAst("s = new S(::new int());")); // #12502 ASSERT_EQUALS("sS(new::=", testAst("s = ::new (ptr) S();")); // #12552 ASSERT_EQUALS("pdelete::return", testAst("return ::delete p;")); + ASSERT_EQUALS("gn--(delete", testAst("delete g(--n);")); // placement new ASSERT_EQUALS("X12,3,(new ab,c,", testAst("new (a,b,c) X(1,2,3);"));