aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2003-12-18 22:19:11 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2003-12-18 14:19:11 -0800
commit01d0a156a87faf436d7498ca73b67cc946c0a665 (patch)
tree02faca51cc6fe0818fb42b862ea3968e85ebdbb2
parent4f2ca7f5242367c32aa8ca848bfdf1d5cacd7d8b (diff)
downloadgcc-01d0a156a87faf436d7498ca73b67cc946c0a665.zip
gcc-01d0a156a87faf436d7498ca73b67cc946c0a665.tar.gz
gcc-01d0a156a87faf436d7498ca73b67cc946c0a665.tar.bz2
re PR debug/12923 (ICE in gen_subprogram_die, at dwarf2out.c:10607 with -O1 -g)
PR debug/12923 * gcc.dg/20031218-1.c: New test. PR debug/12389 * gcc.dg/20031218-2.c: New test. * gcc.dg/20031218-3.c: New test. From-SVN: r74807
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/gcc.dg/20031218-1.c19
-rw-r--r--gcc/testsuite/gcc.dg/20031218-2.c12
-rw-r--r--gcc/testsuite/gcc.dg/20031218-3.c12
4 files changed, 50 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index db37a99..980e449 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,12 @@
2003-12-18 Andrew Pinski <pinskia@physics.uc.edu>
+ PR debug/12923
+ * gcc.dg/20031218-1.c: New test.
+
+ PR debug/12389
+ * gcc.dg/20031218-2.c: New test.
+ * gcc.dg/20031218-3.c: New test.
+
* g++.dg/abi/mangle18-1.C: Modify regexp to test for `[: \t\n]' at end
of label name and allow for USER_LABEL_PREFIX == "_" names.
* g++.dg/abi/mangle18-2.C: Likewise.
diff --git a/gcc/testsuite/gcc.dg/20031218-1.c b/gcc/testsuite/gcc.dg/20031218-1.c
new file mode 100644
index 0000000..87cc105
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20031218-1.c
@@ -0,0 +1,19 @@
+/* Orgin: v.haisman@sh.cvut.cz
+ Reduced by: Wolfgang Bangerth <bangerth@dealii.org>
+ PR debug/12923 ICE in gen_subprogram_die with -O1 -g
+ The problem was that this just to ICE with -O1 -g. */
+
+/* { dg-do compile } */
+/* { dg-options "-O -g" } */
+
+struct S {
+ unsigned n;
+};
+
+inline void foo (struct S * mx) {
+ mx->n = 1;
+}
+
+void bar () {
+ foo (0);
+}
diff --git a/gcc/testsuite/gcc.dg/20031218-2.c b/gcc/testsuite/gcc.dg/20031218-2.c
new file mode 100644
index 0000000..497c963
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20031218-2.c
@@ -0,0 +1,12 @@
+/* Orgin: Richard Sandiford <rsandifo@gcc.gnu.org>
+ PR debug/12923 ICE in gen_subprogram_die with -O2 -g
+ The problem was that this just to ICE with -O2 -g. */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -g" } */
+
+int f1 (int y)
+{
+ int f2() { return y; }
+ return f2();
+}
diff --git a/gcc/testsuite/gcc.dg/20031218-3.c b/gcc/testsuite/gcc.dg/20031218-3.c
new file mode 100644
index 0000000..58878b6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20031218-3.c
@@ -0,0 +1,12 @@
+/* Orgin: Chris Demetriou <cgd@broadcom.com>
+ PR debug/12923 ICE in gen_subprogram_die with -O2 -g
+ The problem was that this just to ICE with -O2 -g. */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -g" } */
+
+int x (char *s)
+{
+ int y () { return (strlen (s)); }
+ return y (s);
+}