From 84bb243df1247aff566d54e2d097154e760059c3 Mon Sep 17 00:00:00 2001 From: Josh Conner Date: Fri, 9 Sep 2005 01:39:36 +0000 Subject: [PATCH] re PR c++/23180 (Segfault on const initializer with bogus pointer arithmetics) PR c++/23180 * g++.dg/init/pr23180-1.C: New test. * g++.dg/init/pr23180-2.C: New test. From-SVN: r104070 --- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/g++.dg/init/pr23180-1.C | 17 +++++++++++++++++ gcc/testsuite/g++.dg/init/pr23180-2.C | 11 +++++++++++ 3 files changed, 34 insertions(+) create mode 100644 gcc/testsuite/g++.dg/init/pr23180-1.C create mode 100644 gcc/testsuite/g++.dg/init/pr23180-2.C diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a9753daa32f..ed9e1b8a6e3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2005-09-08 Josh Conner + + PR c++/23180 + * g++.dg/init/pr23180-1.C: New test. + * g++.dg/init/pr23180-2.C: New test. + 2005-09-09 Paul Thomas PR fortran/18878 diff --git a/gcc/testsuite/g++.dg/init/pr23180-1.C b/gcc/testsuite/g++.dg/init/pr23180-1.C new file mode 100644 index 00000000000..65865dddb30 --- /dev/null +++ b/gcc/testsuite/g++.dg/init/pr23180-1.C @@ -0,0 +1,17 @@ +void saveLoadEntries(const void *); +void saveOrLoad() { + struct Track { + char soundName[15]; + }; + struct SaveLoadEntry { + int offs; + int type; + int size; + }; + + SaveLoadEntry trackEntries = { + ((long) (&((Track *) 42)->soundName[0])) - 42, + 0, 1 + }; + saveLoadEntries(&trackEntries); +} diff --git a/gcc/testsuite/g++.dg/init/pr23180-2.C b/gcc/testsuite/g++.dg/init/pr23180-2.C new file mode 100644 index 00000000000..a166df50f5a --- /dev/null +++ b/gcc/testsuite/g++.dg/init/pr23180-2.C @@ -0,0 +1,11 @@ +struct Track { + char soundName[15]; +}; + +struct SaveLoadEntry { + int offs; + int type; + int size; +}; + +int foobar = ((long) (& ((Track *) 42)->soundName[0])) - 42; -- 2.30.2