From 0d1d3b4ed07714f4964e1e9a167f95e49613bfe2 Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Thu, 11 Nov 2021 07:59:14 +0100 Subject: [PATCH] Add regression test for #10458 (#3555) --- test/testbufferoverrun.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/testbufferoverrun.cpp b/test/testbufferoverrun.cpp index 3113d99a5..85999a34c 100644 --- a/test/testbufferoverrun.cpp +++ b/test/testbufferoverrun.cpp @@ -3129,6 +3129,22 @@ private: " int *p = s->a + 100;\n" "}"); ASSERT_EQUALS("[test.cpp:3]: (portability) Undefined behaviour, pointer arithmetic 's->a+100' is out of bounds.\n", errout.str()); + + check("template class Vector\n" + "{\n" + "public:\n" + " void test() const;\n" + " T* data();\n" + "};\n" + "template \n" + "void Vector::test() const\n" + "{\n" + " const T* PDat = data();\n" + " const T* P2 = PDat + 1;\n" + " const T* P1 = P2 - 1;\n" + "}\n" + "Vector> Foo;\n"); + ASSERT_EQUALS("", errout.str()); } void pointer_out_of_bounds_4() {