re PR bootstrap/48153 (Bootstrapping revision 171033 fails on x86_64-apple-darwin10)
authorJakub Jelinek <jakub@redhat.com>
Thu, 17 Mar 2011 15:22:20 +0000 (16:22 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 17 Mar 2011 15:22:20 +0000 (16:22 +0100)
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

gcc/ChangeLog
gcc/dwarf2out.c

index 694452e1d79c5b9fafdc446bbb0f9e756d769819..b1085ae83c48f0da74155897923fb952c6ae428d 100644 (file)
@@ -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.
index b28025fcdf7d0556d2284187ce091377e25a4b5c..f62bb48737cd39d2869c8cd009f6013d3ccf76fe 100644 (file)
@@ -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)