http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58970
--- Comment #22 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- > Eric declared negative bitpos to be a nono that the expander is not handling > well. Thus, Eric, please chime in here. Well, that's a basic sanity requirement, all the routines in expmed.c dealing with bitfields use unsigned HOST_WIDE_INT so, yes, better avoid negative values unless you really know what you're doing...