]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR debug/31899 (-g and using declaration causing ICE in reference_to_unused)
authorDoug Kwan <dougkwan@google.com>
Wed, 3 Oct 2007 10:01:43 +0000 (10:01 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 3 Oct 2007 10:01:43 +0000 (10:01 +0000)
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.

Co-Authored-By: Richard Guenther <rguenther@suse.de>
From-SVN: r128978

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

index d08395db2ebb8045ecc26248dbe03301aa01323b..02f3040d37aa9eca0c3c645bf071da9369d83480 100644 (file)
@@ -1,3 +1,10 @@
+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-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
 
        PR fortran/26682
index 9ca68fb42077421dc4e6ee3f33a9d35b703d05be..05fd44576ae9172d2717a1e8b3fb4cd83615b745 100644 (file)
@@ -10344,9 +10344,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 varpool_node *node = varpool_node (*tp);
index 0f2e06fc58d73f81b06f5ab270a65022505da408..216454d5f0c8be57caddc58db8c65c597b9a61e2 100644 (file)
@@ -1,3 +1,9 @@
+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-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR libfortran/33253
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;