From f9bce0f892962528469936e1e684359590af3d50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludvig=20Gunne=20Lindstr=C3=B6m?= Date: Tue, 28 Jul 2026 10:59:39 +0200 Subject: [PATCH 1/3] update old test --- test/testincompletestatement.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/testincompletestatement.cpp b/test/testincompletestatement.cpp index da238d304b2..72a13ee6c42 100644 --- a/test/testincompletestatement.cpp +++ b/test/testincompletestatement.cpp @@ -492,7 +492,7 @@ class TestIncompleteStatement : public TestFixture { "void f(int i) {\n" " (M::N::T)i;\n" "}\n"); - ASSERT_EQUALS("[test.cpp:5:5]: (warning) Redundant code: Found unused cast in expression '(char)i'. [constStatement]\n", errout_str()); + ASSERT_EQUALS("[test.cpp:5:5]: (warning) Redundant code: Found unused cast in expression '(T)i'. [constStatement]\n", errout_str()); check("void f(int (g)(int a, int b)) {\n" // #10873 " int p = 0, q = 1;\n" From ae738f06022383832d209e3a2a7144dc5a03dea1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludvig=20Gunne=20Lindstr=C3=B6m?= Date: Tue, 28 Jul 2026 10:46:00 +0200 Subject: [PATCH 2/3] add test --- test/testsimplifytypedef.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test/testsimplifytypedef.cpp b/test/testsimplifytypedef.cpp index 5a14399e406..0ed700b0a86 100644 --- a/test/testsimplifytypedef.cpp +++ b/test/testsimplifytypedef.cpp @@ -255,6 +255,7 @@ class TestSimplifyTypedef : public TestFixture { TEST_CASE(simplifyTypedefOriginalName1); TEST_CASE(simplifyTypedefOriginalName2); + TEST_CASE(simplifyTypedefOriginalName3); TEST_CASE(simplifyTypedefTokenColumn1); TEST_CASE(simplifyTypedefTokenColumn2); @@ -4594,6 +4595,27 @@ class TestSimplifyTypedef : public TestFixture { ASSERT_EQUALS("A", token->originalName()); } + void simplifyTypedefOriginalName3() { + const char code[] = "void f(void) {\n" + " typedef int A;\n" + " A a;\n" + "}\n"; + TokenList tokenlist{ settings1, Standards::Language::C }; + ASSERT(TokenListHelper::createTokensFromString(tokenlist, code, "file.c")); + TokenizerTest tokenizer(std::move(tokenlist), *this); + tokenizer.createLinks(); + tokenizer.simplifyTypedef(); + + try { + tokenizer.validate(); + } + catch (const InternalError&) { + ASSERT_EQUALS_MSG(false, true, "Validation of Tokenizer failed"); + } + const Token* token = Token::findsimplematch(tokenizer.list.front(), "int"); + ASSERT_EQUALS("A", token->originalName()); + } + void simplifyTypedefTokenColumn1() { // #13155 const char code[] = "void foo(void) {\n" " typedef signed int MY_INT;\n" From b7fe4f10f1eb138ca320371b060ef7db015d61c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludvig=20Gunne=20Lindstr=C3=B6m?= Date: Tue, 28 Jul 2026 10:42:53 +0200 Subject: [PATCH 3/3] fix --- lib/tokenize.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 031ab624bfb..c6ac1f70758 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -2043,6 +2043,7 @@ void Tokenizer::simplifyTypedefCpp() tok2->previous()->str("typedef"); tok2->insertToken(tok2->str()); } + tok2->originalName(tok2->str()); tok2->str(typeStart->str()); // restore qualification if it was removed