mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-02 08:13:58 +08:00
sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE record with the type of its only member if...
* sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE record with the type of its only member if the modes don't match. From-SVN: r103223
This commit is contained in:
parent
dd0ae678ee
commit
c26104e494
@ -6684,7 +6684,15 @@ sh_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p,
|
||||
&& (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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user