This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Slap a band-aid on PR41404 to restore bootstrap pending fuller fix.


    Hi all,

  Following discussion in the audit trail, Honza has a plan to fix the
underlying issue in PR41404, which is a mishandling of const_string RTL when
generating the dwarf for the location tables in mem_loc_descriptor().

  That will take a little time to develop and review, so in the meantime this
patch shoves a temporary band-aid on the problem and restores bootstrap by
simply punting to track string values.  When Honza's patch arrives it will
implicitly revert this patch by re-adding something correct to replace the
deleted code in the CONST_STRING switch case.

gcc/ChangeLog:

	PR bootstrap/41404
	* dwarf2out.c (mem_loc_descriptor): Punt on CONST_STRING until
	we can handle it correctly.

  Fixes the PR's attached testcase and restores java bootstrap on
i686-pc-cygwin.  C tests running now, have only got as far as
gcc.c-torture/execute/20020328-1.c yet but no sign of any failures.  Y'all
know how lumbering Cygwin can be(*), it'll be way late tonight before it
completes, so would it be OK after say just C and Java testing?

    cheers,
      DaveK
-- 
(*) - our mascot isn't a hippo for nothing!

Index: gcc/dwarf2out.c
===================================================================
--- gcc/dwarf2out.c	(revision 151860)
+++ gcc/dwarf2out.c	(working copy)
@@ -11192,7 +11192,6 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mod
 	  break;
 	}
 
-    symref:
       mem_loc_result = new_loc_descr (DW_OP_addr, 0, 0);
       mem_loc_result->dw_loc_oprnd1.val_class = dw_val_class_addr;
       mem_loc_result->dw_loc_oprnd1.v.val_addr = rtl;
@@ -11607,8 +11606,8 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mod
       break;
 
     case CONST_STRING:
-      rtl = get_debug_string_label (XSTR (rtl, 0));
-      goto symref;
+      /* These can't easily be tracked, see PR41404.  */
+      break;
 
     default:
 #ifdef ENABLE_CHECKING

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]