Andreas, This patch seems to have introduced a failure for all of the gcc.dg-struct-layout tests on AIX.
gcc.dg-struct-layout-1/t001_test.h:8:1: internal compiler error: in int_mode_for_mode, at stor-layout.c:424 After your change, int_mode_for_mode now is passed VOIDmode because the rtx is a CONST_INT. (gdb) where #0 fancy_abort (file=0x112b2628 <error reading variable>, line=424, function=0x112b271c <error reading variable>) at /farm/dje/src/src/gcc/diagnostic.c:899 #1 0x1045ff14 in int_mode_for_mode (mode=VOIDmode) at /farm/dje/src/src/gcc/stor-layout.c:424 #2 0x10803734 in extract_bit_field_1 (str_rtx=0x7032cdc0, bitsize=27, bitnum=0, unsignedp=1, packedp=0 '<error reading variable>, target=0x0, mode=BLKmode, tmode=SImode, fallback_p=1 '<error reading variable>) at /farm/dje/src/src/gcc/expmed.c:1304 #3 0x1080567c in extract_bit_field (str_rtx=0x7032cdc0, bitsize=27, bitnum=0, unsignedp=1, packedp=0 '<error reading variable>, target=0x0, mode=BLKmode, tmode=SImode) at /farm/dje/src/src/gcc/expmed.c:1688 #4 0x107fff60 in store_bit_field_1 (str_rtx=0x7032cae0, bitsize=59, bitnum=0, bitregion_start=0, bitregion_end=0, fieldmode=DImode, value=0x7032caf0, fallback_p=1 '<error reading variable>) at /farm/dje/src/src/gcc/expmed.c:568 #5 0x10801578 in store_bit_field (str_rtx=0x7032cae0, bitsize=59, bitnum=0, bitregion_start=0, bitregion_end=0, fieldmode=VOIDmode, value=0x7032caf0) at /farm/dje/src/src/gcc/expmed.c:852 #6 0x10624258 in store_field (target=0x7032cae0, bitsize=59, bitpos=0, bitregion_start=0, bitregion_end=0, mode=VOIDmode, exp=0x7015c3a0, type=0x70159360, alias_set=0, nontemporal=0 '<error reading variable>) at /farm/dje/src/src/gcc/expr.c:6432 (gdb) up #2 0x10803734 in extract_bit_field_1 (str_rtx=0x7032cdc0, bitsize=27, bitnum=0, unsignedp=1, packedp=0 '<error reading variable>, target=0x0, mode=BLKmode, tmode=SImode, fallback_p=1 '<error reading variable>) at /farm/dje/src/src/gcc/expmed.c:1304 1304 enum machine_mode imode = int_mode_for_mode (GET_MODE (op0)); (gdb) print op0 $5 = (rtx) 0x7032cdc0 (gdb) pr (const_int 3673047 [0x380bd7]) (gdb) up #3 0x1080567c in extract_bit_field (str_rtx=0x7032cdc0, bitsize=27, bitnum=0, unsignedp=1, packedp=0 '<error reading variable>, target=0x0, mode=BLKmode, tmode=SImode) at /farm/dje/src/src/gcc/expmed.c:1688 1688 return extract_bit_field_1 (str_rtx, bitsize, bitnum, unsignedp, packedp, (gdb) print str_rtx $6 = (rtx) 0x7032cdc0 (gdb) pr (const_int 3673047 [0x380bd7]) Thanks, David