OSDN Git Service

* dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 27 Mar 2010 10:52:27 +0000 (10:52 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 00:37:24 +0000 (09:37 +0900)
instead of dwarf2out_decl.
(struct var_loc_node): Remove section_label field.
(dwarf2out_function_decl): New function.
(dwarf2out_var_location): Don't set section_label field.
(dwarf2out_begin_function): Don't empty decl_loc_table here.

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

gcc/ChangeLog
gcc/dwarf2out.c

index c89990b..7fb9e3d 100644 (file)
@@ -1,3 +1,12 @@
+2010-03-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
+       instead of dwarf2out_decl.
+       (struct var_loc_node): Remove section_label field.
+       (dwarf2out_function_decl): New function.
+       (dwarf2out_var_location): Don't set section_label field.
+       (dwarf2out_begin_function): Don't empty decl_loc_table here.
+
 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        PR tree-optimization/43544
index a3de759..84a5fe7 100644 (file)
@@ -5410,6 +5410,7 @@ static void dwarf2out_define (unsigned int, const char *);
 static void dwarf2out_undef (unsigned int, const char *);
 static void dwarf2out_start_source_file (unsigned, const char *);
 static void dwarf2out_end_source_file (unsigned);
+static void dwarf2out_function_decl (tree);
 static void dwarf2out_begin_block (unsigned, unsigned);
 static void dwarf2out_end_block (unsigned, unsigned);
 static bool dwarf2out_ignore_block (const_tree);
@@ -5447,7 +5448,7 @@ const struct gcc_debug_hooks dwarf2_debug_hooks =
   dwarf2out_end_epilogue,
   dwarf2out_begin_function,
   debug_nothing_int,           /* end_function */
-  dwarf2out_decl,              /* function_decl */
+  dwarf2out_function_decl,     /* function_decl */
   dwarf2out_global_decl,
   dwarf2out_type_decl,         /* type_decl */
   dwarf2out_imported_module_or_decl,
@@ -5731,7 +5732,6 @@ DEF_VEC_ALLOC_O(die_arg_entry,gc);
 struct GTY ((chain_next ("%h.next"))) var_loc_node {
   rtx GTY (()) var_loc_note;
   const char * GTY (()) label;
-  const char * GTY (()) section_label;
   struct var_loc_node * GTY (()) next;
 };
 
@@ -19925,6 +19925,16 @@ dwarf2out_decl (tree decl)
   gen_decl_die (decl, NULL, context_die);
 }
 
+/* Write the debugging output for DECL.  */
+
+static void
+dwarf2out_function_decl (tree decl)
+{
+  dwarf2out_decl (decl);
+
+  htab_empty (decl_loc_table);
+}
+
 /* Output a marker (i.e. a label) for the beginning of the generated code for
    a lexical block.  */
 
@@ -20317,11 +20327,6 @@ dwarf2out_var_location (rtx loc_note)
       newloc->label = last_postcall_label;
     }
 
-  if (cfun && in_cold_section_p)
-    newloc->section_label = crtl->subsections.cold_section_label;
-  else
-    newloc->section_label = text_section_label;
-
   last_var_location_insn = next_real;
   last_in_cold_section_p = in_cold_section_p;
 }
@@ -20334,8 +20339,6 @@ dwarf2out_var_location (rtx loc_note)
 static void
 dwarf2out_begin_function (tree fun)
 {
-  htab_empty (decl_loc_table);
-
   if (function_section (fun) != text_section)
     have_multiple_function_sections = true;