summaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2008-11-10 16:52:50 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2008-11-10 16:52:50 +0000
commit77f1b1bb0779a6bc2d83344abac852797739256b (patch)
treee3d180fb52be941078efe7fa4bcca0c71faa1a38 /gcc/calls.c
parentc86f4c75645cdd38254700ada0b489d1ee20856b (diff)
downloadgcc-77f1b1bb0779a6bc2d83344abac852797739256b.tar.gz
* calls.c (store_unaligned_arguments_into_pseudos): Deal only with
values living in memory and use more precise alignment information. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141742 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index a3d35b3bf5c..096dde4948c 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -837,7 +837,8 @@ store_unaligned_arguments_into_pseudos (struct arg_data *args, int num_actuals)
for (i = 0; i < num_actuals; i++)
if (args[i].reg != 0 && ! args[i].pass_on_stack
&& args[i].mode == BLKmode
- && (TYPE_ALIGN (TREE_TYPE (args[i].tree_value))
+ && MEM_P (args[i].value)
+ && (MEM_ALIGN (args[i].value)
< (unsigned int) MIN (BIGGEST_ALIGNMENT, BITS_PER_WORD)))
{
int bytes = int_size_in_bytes (TREE_TYPE (args[i].tree_value));