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]

Re: [ping] Fix PR debug/66728


On Nov 2, 2015, at 8:29 AM, Richard Sandiford <richard.sandiford@arm.com> wrote:
>   switch (GET_CODE (rtl))
>     {
>     case CONST_INT:
> -      {
> -	HOST_WIDE_INT val = INTVAL (rtl);
> +      if (mode != BLKmode)

This changes BLKmode for CONST_INT, but I didn’t see this discussed.  I didn’t see a test case?  I’d like to think that BLKmode things here would be fine.  I think they would be use for 1024 bit things that are representable in 20 bits, for example.  A value that is 1 (representable in 20 bits) can be trivially communicated the debugger.  The existing add_AT_unsigned I think can represent them, no?  Similarly for wide-int BLKmode support.  I think the real problem is simply the precision 0 part.  In the CONST_INT and CONST_DOUBLE there is no code that handled precision 0, and there is no code in the wide-int case either.  From wide-int.h:

  The precision and length of a wide_int are always greater than 0.

If is was 0, then we have failed.  When that bug is fixed, then the precision won’t be 0 and the existing code will work.  Where is the 0 first generated, and from what?

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