re PR debug/77692 (gcc.dg/debug/dwarf2/const-2b.c FAILs)
authorRichard Biener <rguenther@suse.de>
Mon, 26 Sep 2016 07:33:33 +0000 (07:33 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 26 Sep 2016 07:33:33 +0000 (07:33 +0000)
2016-09-26  Richard Biener  <rguenther@suse.de>

PR debug/77692
* cgraphunit.c (analyze_functions): Before early removing
global vars calls the late_global_decl debug handler mark
the variable as readonly.

From-SVN: r240483

gcc/ChangeLog
gcc/cgraphunit.c

index ce6841b6894f6c7e85f6c1b7f93162ea9aaa4a8b..8d85d83fed1846bd1be55f12cf461a33d1183556 100644 (file)
@@ -1,3 +1,10 @@
+2016-09-26  Richard Biener  <rguenther@suse.de>
+
+       PR debug/77692
+       * cgraphunit.c (analyze_functions): Before early removing
+       global vars calls the late_global_decl debug handler mark
+       the variable as readonly.
+
 2016-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
 
        PR target/51244
index 4141badd2f539cdc3acce8d49228ca89145fd899..e38f0bf4e86b0d15f945f186b279984e6e623144 100644 (file)
@@ -1194,8 +1194,15 @@ analyze_functions (bool first_time)
             at looking at optimized away DECLs, since
             late_global_decl will subsequently be called from the
             contents of the now pruned symbol table.  */
-         if (!decl_function_context (node->decl))
-           (*debug_hooks->late_global_decl) (node->decl);
+         if (TREE_CODE (node->decl) == VAR_DECL
+             && !decl_function_context (node->decl))
+           {
+             /* We are reclaiming totally unreachable code and variables
+                so they effectively appear as readonly.  Show that to
+                the debug machinery.  */
+             TREE_READONLY (node->decl) = 1;
+             (*debug_hooks->late_global_decl) (node->decl);
+           }
 
          node->remove ();
          continue;