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?