From ba0004673231fb3feda75139c022d67401311b7e Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Mon, 2 Aug 2021 13:21:18 +0200 Subject: [PATCH] Add test case for ticket #6884 (#3375) * Add test case for ticket #9808 * Add test case for ticket #6884 --- test/testbufferoverrun.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/testbufferoverrun.cpp b/test/testbufferoverrun.cpp index c3c1a655c..44ad035c7 100644 --- a/test/testbufferoverrun.cpp +++ b/test/testbufferoverrun.cpp @@ -246,6 +246,7 @@ private: // Access array and then check if the used index is within bounds TEST_CASE(arrayIndexThenCheck); + TEST_CASE(arrayIndexEarlyReturn); // #6884 TEST_CASE(bufferNotZeroTerminated); @@ -4309,6 +4310,21 @@ private: ASSERT_EQUALS("", errout.str()); } + void arrayIndexEarlyReturn() { // #6884 + check("extern const char *Names[2];\n" + "const char* getName(int value) {\n" + " if ((value < 0) || (value > 1))\n" + " return \"???\";\n" + " const char* name = Names[value]; \n" + " switch (value) {\n" + " case 2:\n" + " break; \n" + " }\n" + " return name;\n" + "}\n"); + ASSERT_EQUALS("", errout.str()); + } + void bufferNotZeroTerminated() { check("void f() {\n" " char c[6];\n"