]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR debug/31899 (-g and using declaration causing ICE in reference_to_unused)
authorRichard Guenther <rguenther@suse.de>
Wed, 10 Oct 2007 09:29:13 +0000 (09:29 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 10 Oct 2007 09:29:13 +0000 (09:29 +0000)
2007-10-10  Richard Guenther  <rguenther@suse.de>

        Backport from mainline
        2007-10-03  Doug Kwan  <dougkwan@google.com>
                Richard Guenther  <rguenther@suse.de>

        PR debug/31899
        * dwarf2out.c (reference_to_unused): Disable sanity checking,
        be conservative instead.

        * g++.dg/debug/using3.C: New testcase.

From-SVN: r129199

gcc/ChangeLog
gcc/dwarf2out.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/debug/using3.C [new file with mode: 0644]

index 5d85ecea41f2f49a868327ba8bf9273c020086a0..6e66ce47447cc5847d517b38189ec0e10f023b47 100644 (file)
@@ -1,3 +1,13 @@
+2007-10-10  Richard Guenther  <rguenther@suse.de>
+
+       Backport from mainline
+       2007-10-03  Doug Kwan  <dougkwan@google.com>
+               Richard Guenther  <rguenther@suse.de>
+
+       PR debug/31899
+       * dwarf2out.c (reference_to_unused): Disable sanity checking,
+       be conservative instead.
+
 2007-10-10  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/33099
index 2d8932ae358fdb7cb1d4d4e2c59d0b0134bb0837..5a3a2a3de4beef5ebe590284c3b72ddf200b411e 100644 (file)
@@ -10005,9 +10005,12 @@ reference_to_unused (tree * tp, int * walk_subtrees,
     return *tp;
   else if (!flag_unit_at_a_time)
     return NULL_TREE;
+  /* ???  The C++ FE emits debug information for using decls, so
+     putting gcc_unreachable here falls over.  See PR31899.  For now
+     be conservative.  */
   else if (!cgraph_global_info_ready
           && (TREE_CODE (*tp) == VAR_DECL || TREE_CODE (*tp) == FUNCTION_DECL))
-    gcc_unreachable ();
+    return *tp;
   else if (DECL_P (*tp) && TREE_CODE (*tp) == VAR_DECL)
     {
       struct cgraph_varpool_node *node = cgraph_varpool_node (*tp);
index 4ddcfea428c2a2b58d02de3cc8f318e84fb8a216..c6ad1cb32b5da3bf93fbf5b6a4965193bbd09b26 100644 (file)
@@ -1,3 +1,12 @@
+2007-10-10  Richard Guenther  <rguenther@suse.de>
+
+       Backport from mainline
+       2007-10-03  Doug Kwan  <dougkwan@google.com>
+               Richard Guenther  <rguenther@suse.de>
+
+       PR debug/31899
+       * g++.dg/debug/using3.C: New testcase.
+
 2007-10-10  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/33099
diff --git a/gcc/testsuite/g++.dg/debug/using3.C b/gcc/testsuite/g++.dg/debug/using3.C
new file mode 100644 (file)
index 0000000..df3e3df
--- /dev/null
@@ -0,0 +1,8 @@
+// PR debug/31899
+
+namespace NS {
+  int x = 0;
+  int &ref = x;
+}
+
+using NS::ref;