@@ -106,6 +106,7 @@ class TestOther : public TestFixture {
106106 TEST_CASE (varScope32); // #11441
107107 TEST_CASE (varScope33);
108108 TEST_CASE (varScope34);
109+ TEST_CASE (varScope35);
109110
110111 TEST_CASE (oldStylePointerCast);
111112 TEST_CASE (invalidPointerCast);
@@ -1636,6 +1637,27 @@ class TestOther : public TestFixture {
16361637 ASSERT_EQUALS (" " , errout.str ());
16371638 }
16381639
1640+ void varScope35 () { // #11845
1641+ check (" void f(int err, const char* src) {\n "
1642+ " const char* msg = \" Success\" ;\n "
1643+ " char buf[42];\n "
1644+ " if (err != 0)\n "
1645+ " msg = strcpy(buf, src);\n "
1646+ " printf(\" %d: %s\\ n\" , err, msg);\n "
1647+ " }\n " );
1648+ ASSERT_EQUALS (" " , errout.str ());
1649+
1650+ check (" char* g(char* dst, const char* src);\n "
1651+ " void f(int err, const char* src) {\n "
1652+ " const char* msg = \" Success\" ;\n "
1653+ " char buf[42];\n "
1654+ " if (err != 0)\n "
1655+ " msg = g(buf, src);\n "
1656+ " printf(\" %d: %s\\ n\" , err, msg);\n "
1657+ " }\n " );
1658+ ASSERT_EQUALS (" " , errout.str ());
1659+ }
1660+
16391661#define checkOldStylePointerCast (code ) checkOldStylePointerCast_(code, __FILE__, __LINE__)
16401662 void checkOldStylePointerCast_ (const char code[], const char * file, int line) {
16411663 // Clear the error buffer..
0 commit comments