On Nov 2, 2015, at 8:29 AM, Richard Sandiford <richard.sandif...@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?

Reply via email to