Looks like the culprit may be this patch, which also went upstream. I checked upstream GCC, and it seems broken on the test case (on all platforms) as well ...
2009-06-11 Nathan Froyd <email address hidden>
Backport from upstream:
2009-06-10 Nathan Froyd <email address hidden>
gcc/
* tree.h (tree_base): Add packed_flag and user_align fields.
Decrease size of spare field. (TYPE_USER_ALIGN): Use user_align from tree_base. (DECL_USER_ALIGN): Likewise. (TYPE_PACKED): Use packed_flag from tree_base. (DECL_PACKED): Likewise.
(tree_type): Delete packed_flag and user_align fields. Widen
precision field. Widen mode field and shuffle fields to align
mode on an 8-bit boundary. (tree_decl_common): Delete decl_flag_1 and user_align fields.
Renumber decl_flag_* fields. Fix comments. Widen decl_common_unused field. (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
fields. (DECL_EXTERNAL): Likewise. (DECL_BIT_FIELD): Likewise. (DECL_NONADDRESSABLE_P): Likewise. (TYPE_DECL_SUPRESS_DEBUG): Likewise.
* config/arm/arm-modes.def (XImode): Make it an INT_MODE.
Looks like the culprit may be this patch, which also went upstream. I checked upstream GCC, and it seems broken on the test case (on all platforms) as well ...
2009-06-11 Nathan Froyd <email address hidden>
Backport from upstream:
2009-06-10 Nathan Froyd <email address hidden>
(TYPE_USER_ ALIGN): Use user_align from tree_base.
(DECL_USER_ ALIGN): Likewise.
(TYPE_PACKED) : Use packed_flag from tree_base.
(DECL_PACKED) : Likewise.
(tree_decl_ common) : Delete decl_flag_1 and user_align fields.
decl_common_ unused field.
(DECL_HAS_ VALUE_EXPR_ P): Adjust for renumbering of decl_flag_*
(DECL_EXTERNAL) : Likewise.
(DECL_BIT_ FIELD): Likewise.
(DECL_NONADDRES SABLE_P) : Likewise.
(TYPE_DECL_ SUPRESS_ DEBUG): Likewise. arm/arm- modes.def (XImode): Make it an INT_MODE.
gcc/
* tree.h (tree_base): Add packed_flag and user_align fields.
Decrease size of spare field.
(tree_type): Delete packed_flag and user_align fields. Widen
precision field. Widen mode field and shuffle fields to align
mode on an 8-bit boundary.
Renumber decl_flag_* fields. Fix comments. Widen
fields.
* config/
http:// gcc.gnu. org/ml/ gcc-patches/ 2009-06/ msg00763. html