From 3651a95c76d043243e3cb0bfeb7ddc11bc10db2a Mon Sep 17 00:00:00 2001 From: jakub Date: Thu, 17 Mar 2011 15:22:20 +0000 Subject: [PATCH] PR bootstrap/48153 * dwarf2out.c (mem_loc_descriptor) : Return NULL if dwarf_strict. (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict. Clear call_arg_locations and call_arg_loc_last always. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171102 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/dwarf2out.c | 11 +++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 694452e1d79..b1085ae83c4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2011-03-17 Jakub Jelinek + PR bootstrap/48153 + * dwarf2out.c (mem_loc_descriptor) : Return NULL + if dwarf_strict. + (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict. + Clear call_arg_locations and call_arg_loc_last always. + PR middle-end/48152 * var-tracking.c (prepare_call_arguments): If argument needs to be passed by reference, adjust argtype and mode. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index b28025fcdf7..f62bb48737c 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -13864,6 +13864,8 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mode, return 0; case ENTRY_VALUE: + if (dwarf_strict) + return NULL; mem_loc_result = new_loc_descr (DW_OP_GNU_entry_value, 0, 0); mem_loc_result->dw_loc_oprnd1.val_class = dw_val_class_loc; if (REG_P (ENTRY_VALUE_EXP (rtl))) @@ -19447,7 +19449,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_die) current_function_has_inlines = 0; decls_for_scope (outer_scope, subr_die, 0); - if (call_arg_locations) + if (call_arg_locations && !dwarf_strict) { struct call_arg_loc_node *ca_loc; for (ca_loc = call_arg_locations; ca_loc; ca_loc = ca_loc->next) @@ -19547,11 +19549,12 @@ gen_subprogram_die (tree decl, dw_die_ref context_die) tail_call_site_note_count++; } } - call_arg_locations = NULL; - call_arg_loc_last = NULL; } + call_arg_locations = NULL; + call_arg_loc_last = NULL; if (tail_call_site_count >= 0 - && tail_call_site_count == tail_call_site_note_count) + && tail_call_site_count == tail_call_site_note_count + && !dwarf_strict) { if (call_site_count >= 0 && call_site_count == call_site_note_count) -- 2.11.4.GIT