From 0e3244e9ea8bd5c4bb968e1addee4bcec7a08cfb 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 c5547d49402fb94162067eb2f03570c636aa8a6e 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 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/testsimplifytypedef.cpp b/test/testsimplifytypedef.cpp index 42718a2f99c..e83be343e01 100644 --- a/test/testsimplifytypedef.cpp +++ b/test/testsimplifytypedef.cpp @@ -256,6 +256,7 @@ class TestSimplifyTypedef : public TestFixture { TEST_CASE(simplifyTypedefOriginalName1); TEST_CASE(simplifyTypedefOriginalName2); + TEST_CASE(simplifyTypedefOriginalName3); TEST_CASE(simplifyTypedefTokenColumn1); TEST_CASE(simplifyTypedefTokenColumn2); @@ -4600,6 +4601,21 @@ 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(); + ASSERT_NO_THROW(tokenizer.validate()); + 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 14a1bf7d5d7c2802bd9e4b1eb796681a638e9605 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 07ffa4c666c..610877eec53 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -2044,6 +2044,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