From: Josh Conner Date: Fri, 9 Sep 2005 01:39:36 +0000 (+0000) Subject: re PR c++/23180 (Segfault on const initializer with bogus pointer arithmetics) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=84bb243df1247aff566d54e2d097154e760059c3;p=gcc.git 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 --- 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;