@@ -257,6 +257,8 @@ class TestSimplifyTypedef : public TestFixture {
257257 TEST_CASE (simplifyTypedefOriginalName1);
258258 TEST_CASE (simplifyTypedefOriginalName2);
259259 TEST_CASE (simplifyTypedefOriginalName3);
260+ TEST_CASE (simplifyTypedefOriginalName4);
261+ TEST_CASE (simplifyTypedefOriginalName5);
260262
261263 TEST_CASE (simplifyTypedefTokenColumn1);
262264 TEST_CASE (simplifyTypedefTokenColumn2);
@@ -4619,6 +4621,36 @@ class TestSimplifyTypedef : public TestFixture {
46194621 ASSERT_EQUALS (" A" , token->originalName ());
46204622 }
46214623
4624+ void simplifyTypedefOriginalName4 () {
4625+ const char code[] = " void f(void) {\n "
4626+ " typedef unsigned int A;\n "
4627+ " A a;\n "
4628+ " }\n " ;
4629+ TokenList tokenlist{ settings1, Standards::Language::C };
4630+ ASSERT (TokenListHelper::createTokensFromString (tokenlist, code, " file.c" ));
4631+ TokenizerTest tokenizer (std::move (tokenlist), *this );
4632+ tokenizer.createLinks ();
4633+ tokenizer.simplifyTypedef ();
4634+ ASSERT_NO_THROW (tokenizer.validate ());
4635+ const Token* token = Token::findsimplematch (tokenizer.list .front (), " int" );
4636+ ASSERT_EQUALS (" A" , token->originalName ());
4637+ }
4638+
4639+ void simplifyTypedefOriginalName5 () {
4640+ const char code[] = " void f(void) {\n "
4641+ " typedef void (*A)(int);\n "
4642+ " A a;\n "
4643+ " }\n " ;
4644+ TokenList tokenlist{ settings1, Standards::Language::C };
4645+ ASSERT (TokenListHelper::createTokensFromString (tokenlist, code, " file.c" ));
4646+ TokenizerTest tokenizer (std::move (tokenlist), *this );
4647+ tokenizer.createLinks ();
4648+ tokenizer.simplifyTypedef ();
4649+ ASSERT_NO_THROW (tokenizer.validate ());
4650+ const Token* token = Token::findsimplematch (tokenizer.list .front (), " int" );
4651+ ASSERT_EQUALS (" A" , token->originalName ());
4652+ }
4653+
46224654 void simplifyTypedefTokenColumn1 () { // #13155
46234655 const char code[] = " void foo(void) {\n "
46244656 " typedef signed int MY_INT;\n "
0 commit comments