OSDN Git Service

PR c++/6706
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Jul 2002 16:40:01 +0000 (16:40 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Jul 2002 16:40:01 +0000 (16:40 +0000)
* dwarfout.c (output_reg_number): Fix warning message.
(output_bound_representation): Check SAVE_EXPR_RTL is not NULL
before using it.

PR c++/6706
* g++.dg/debug/debug6.C: New test.
* g++.dg/debug/debug7.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55264 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/dwarfout.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/debug/debug6.C [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/debug7.C [new file with mode: 0644]

index 6c2b06e..767dd73 100644 (file)
@@ -1,3 +1,10 @@
+2002-07-03  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/6706
+       * dwarfout.c (output_reg_number): Fix warning message.
+       (output_bound_representation): Check SAVE_EXPR_RTL is not NULL
+       before using it.
+       
 2002-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
        * gcc/gcc.c (asm_debug): Move initialization ...
index c26a018..d51e65f 100644 (file)
@@ -2077,7 +2077,8 @@ output_reg_number (rtl)
 
   if (regno >= DWARF_FRAME_REGISTERS)
     {
-      warning_with_decl (dwarf_last_decl, "internal regno botch: regno = %d\n",
+      warning_with_decl (dwarf_last_decl, 
+                        "internal regno botch: `%s' has regno = %d\n",
                         regno);
       regno = 0;
     }
@@ -2294,7 +2295,8 @@ output_bound_representation (bound, dim_num, u_or_l)
                   || TREE_CODE (bound) == CONVERT_EXPR)
              bound = TREE_OPERAND (bound, 0);
 
-           if (TREE_CODE (bound) == SAVE_EXPR)
+           if (TREE_CODE (bound) == SAVE_EXPR 
+               && SAVE_EXPR_RTL (bound))
              output_loc_descriptor
                (eliminate_regs (SAVE_EXPR_RTL (bound), 0, NULL_RTX));
          }
index 4c8cb75..8880177 100644 (file)
@@ -1,3 +1,9 @@
+2002-07-03  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/6706
+       * g++.dg/debug/debug6.C: New test.
+       * g++.dg/debug/debug7.C: New test.
+
 Thu Jul  4 07:36:48 2002  J"orn Rennecke <joern.rennecke@superh.com>
 
        * gcc.c-torture/compile/simd-3.c: New test.
diff --git a/gcc/testsuite/g++.dg/debug/debug6.C b/gcc/testsuite/g++.dg/debug/debug6.C
new file mode 100644 (file)
index 0000000..64f121b
--- /dev/null
@@ -0,0 +1,7 @@
+// { dg-do compile }
+
+void foo()
+{
+  int i=1, x[i];
+}
+
diff --git a/gcc/testsuite/g++.dg/debug/debug7.C b/gcc/testsuite/g++.dg/debug/debug7.C
new file mode 100644 (file)
index 0000000..78faa20
--- /dev/null
@@ -0,0 +1,18 @@
+// { dg-do compile }
+
+void f (int);
+
+int
+main() {
+
+  int a = 4;
+  int b = 5;
+  int (*x)[b] = new int[a][b];
+
+  x[2][1] = 7;
+
+  for (int i = 0; i < a; ++i)
+    for (int j = 0; j < b; ++j)
+      f (x[i][j]);
+  delete [] x;
+}