http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970
--- Comment #21 from Jakub Jelinek <jakub at gcc dot gnu.org> --- If expansion has issues with that, then supposedly the + if (*bitpos < 0) + { + gcc_assert (*offset == NULL_TREE); + *offset = size_int (*bitpos >> (BITS_PER_UNIT == 8 + ? 3 : exact_log2 (BITS_PER_UNIT))); + *bitpos &= BITS_PER_UNIT - 1; + } hunk with s/\*//g could be moved to the get_bit_range caller, right above the call. But, do we have testcases that fail now?