aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-03-17 16:22:20 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2011-03-17 16:22:20 +0100
commit8054a389725c18d627de6edf1f78dd1881819dd2 (patch)
treeafdeeddd86fdeee2dfa0c3198d828fe63730edc0
parentdb3ed0b3b72051c8b3f82f2f1228dfaad4fbce10 (diff)
downloadgcc-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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dwarf2out.c11
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)