@@ -211,6 +211,7 @@ class TestSimplifyTypedef : public TestFixture {
211211 TEST_CASE (simplifyTypedef142); // T() when T is a pointer type
212212 TEST_CASE (simplifyTypedef143); // #11506
213213 TEST_CASE (simplifyTypedef144); // #9353
214+ TEST_CASE (simplifyTypedef145); // #9353
214215
215216 TEST_CASE (simplifyTypedefFunction1);
216217 TEST_CASE (simplifyTypedefFunction2); // ticket #1685
@@ -2022,10 +2023,7 @@ class TestSimplifyTypedef : public TestFixture {
20222023 }
20232024
20242025 void simplifyTypedef76 () { // ticket #2453 segmentation fault
2025- const char code[] = " void f1(typedef int x) {}" ;
2026- const char expected[] = " void f1 ( typedef int x ) { }" ;
2027- ASSERT_EQUALS (expected, tok (code, true , cppcheck::Platform::Type::Native, false ));
2028- ASSERT_EQUALS (" " , errout.str ());
2026+ ASSERT_THROW (checkSimplifyTypedef (" void f1(typedef int x) {}" ), InternalError);
20292027 }
20302028
20312029 void simplifyTypedef77 () { // ticket #2554
@@ -3254,6 +3252,23 @@ class TestSimplifyTypedef : public TestFixture {
32543252 ASSERT_EQUALS (" struct X { } ; std :: vector < X > v ;" , tok (code));
32553253 }
32563254
3255+ void simplifyTypedef145 () { // #11634
3256+ const char * code{};
3257+ code = " int typedef i;\n "
3258+ " i main() {}\n " ;
3259+ ASSERT_EQUALS (" int main ( ) { }" , tok (code));
3260+
3261+ code = " struct {} typedef S;\n "
3262+ " void f() {\n "
3263+ " S();\n "
3264+ " }\n " ;
3265+ ASSERT_EQUALS (" struct S { } ; void f ( ) { struct S ( ) ; }" , tok (code));
3266+
3267+ code = " struct {} typedef S;\n " // don't crash
3268+ " S();\n " ;
3269+ ASSERT_EQUALS (" struct S { } ; struct S ( ) ;" , tok (code));
3270+ }
3271+
32573272 void simplifyTypedefFunction1 () {
32583273 {
32593274 const char code[] = " typedef void (*my_func)();\n "
0 commit comments