diff options
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 21 |
2 files changed, 21 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c89990b..7fb9e3d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index a3de759..84a5fe7 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -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; |