[Bug debug/36589] [4.4 Regression]: No debug info for local static variable at -O0

hjl dot tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Sat Jun 21 15:50:00 GMT 2008



------- Comment #1 from hjl dot tools at gmail dot com  2008-06-21 15:49 -------
varpool_output_debug_info has

        /* Local static variables are never seen by check_global_declarations
           so we need to output debug info by hand.  */
        if (DECL_CONTEXT (node->decl)
            && (TREE_CODE (DECL_CONTEXT (node->decl)) == BLOCK
                || TREE_CODE (DECL_CONTEXT (node->decl)) == FUNCTION_DECL)
            && errorcount == 0 && sorrycount == 0)
             (*debug_hooks->global_decl) (node->decl);

This is no longer called with -O0. Should cgraph_output_in_order handle
local static variable?
Index: cgraphunit.c
===================================================================
--- cgraphunit.c        (revision 136905)
+++ cgraphunit.c        (working copy)
@@ -1303,7 +1303,15 @@ cgraph_output_in_order (void)
          break;

        case ORDER_VAR:
-         varpool_assemble_decl (nodes[i].u.v);
+         pv = nodes[i].u.v;
+         varpool_assemble_decl (pv);
+         /* Since check_global_declarations never sees local static
+            variables, we need to output debug info by hand.  */
+       if (DECL_CONTEXT (pv->decl)
+           && (TREE_CODE (DECL_CONTEXT (pv->decl)) == BLOCK
+               || (TREE_CODE (DECL_CONTEXT (pv->decl))
+                   == FUNCTION_DECL)))
+            (*debug_hooks->global_decl) (pv->decl);
          break;

        case ORDER_ASM:


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.4 Regression]:           |[4.4 Regression]: No debug
                   |gcc.dg/debug/dwarf2/var1.c  |info for local static
                   |scan-assembler              |variable at -O0
                   |xyzzy[^\\\\n\\\\r]+DW_AT_nam|
                   |e                           |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36589



More information about the Gcc-bugs mailing list