diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2019-09-06 17:33:41 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2019-09-06 17:33:41 +0000 |
commit | 5f2c4c2a88c1352f862f382769441403209ad3fd (patch) | |
tree | 1f4f0d8643503903630690489d6837dbeb9fcd79 /gcc/calls.c | |
parent | 98bd8ad6a8cb71d1c79182db8189037d8b7a7a6e (diff) |
* function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
before testing TYPE_TRANSPARENT_AGGR.
* calls.c (initialize_argument_information, load_register_parameters):
Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@275472 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index e5086f4bb1d..51ad55f15a9 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -1991,8 +1991,7 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED, /* If TYPE is a transparent union or record, pass things the way we would pass the first field of the union or record. We have already verified that the modes are the same. */ - if ((TREE_CODE (type) == UNION_TYPE || TREE_CODE (type) == RECORD_TYPE) - && TYPE_TRANSPARENT_AGGR (type)) + if (RECORD_OR_UNION_TYPE_P (type) && TYPE_TRANSPARENT_AGGR (type)) type = TREE_TYPE (first_field (type)); /* Decide where to pass this arg. @@ -2772,9 +2771,7 @@ load_register_parameters (struct arg_data *args, int num_actuals, HOST_WIDE_INT const_size = 0; rtx_insn *before_arg = get_last_insn (); tree type = TREE_TYPE (args[i].tree_value); - if ((TREE_CODE (type) == UNION_TYPE - || TREE_CODE (type) == RECORD_TYPE) - && TYPE_TRANSPARENT_AGGR (type)) + if (RECORD_OR_UNION_TYPE_P (type) && TYPE_TRANSPARENT_AGGR (type)) type = TREE_TYPE (first_field (type)); /* Set non-negative if we must move a word at a time, even if just one word (e.g, partial == 4 && mode == DFmode). Set |