diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-03-17 16:22:20 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-03-17 16:22:20 +0100 |
commit | 8054a389725c18d627de6edf1f78dd1881819dd2 (patch) | |
tree | afdeeddd86fdeee2dfa0c3198d828fe63730edc0 /gcc | |
parent | db3ed0b3b72051c8b3f82f2f1228dfaad4fbce10 (diff) | |
download | gcc-8054a389725c18d627de6edf1f78dd1881819dd2.zip gcc-8054a389725c18d627de6edf1f78dd1881819dd2.tar.gz gcc-8054a389725c18d627de6edf1f78dd1881819dd2.tar.bz2 |
re PR bootstrap/48153 (Bootstrapping revision 171033 fails on x86_64-apple-darwin10)
PR bootstrap/48153
* dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: 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.
From-SVN: r171102
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 11 |
2 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 694452e..b1085ae 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2011-03-17 Jakub Jelinek <jakub@redhat.com> + PR bootstrap/48153 + * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: 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 b28025f..f62bb48 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) |