record with the type of its only member if the modes don't match.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103223
138bc75d-0d04-0410-961f-
82ee72b054a4
&& (TREE_CODE (TREE_TYPE (TYPE_FIELDS (type))) == REAL_TYPE
|| TREE_CODE (TREE_TYPE (TYPE_FIELDS (type))) == COMPLEX_TYPE)
&& TREE_CHAIN (TYPE_FIELDS (type)) == NULL_TREE)
- type = TREE_TYPE (TYPE_FIELDS (type));
+ {
+ tree field_type = TREE_TYPE (TYPE_FIELDS (type));
+
+ if (TYPE_MODE (type) == TYPE_MODE (field_type))
+ type = field_type;
+ else
+ gcc_assert (TYPE_ALIGN (type)
+ < GET_MODE_ALIGNMENT (TYPE_MODE (field_type)));
+ }
if (TARGET_SH4)
{