aboutsummaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2008-11-10 16:52:50 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2008-11-10 16:52:50 +0000
commit852d22b41a1467860f59d3aa900a8b9a96ed8be7 (patch)
treee3d180fb52be941078efe7fa4bcca0c71faa1a38 /gcc/calls.c
parent959f8cd7dac3ddd84c486ab0ab584513f2d150a6 (diff)
downloadgcc-852d22b41a1467860f59d3aa900a8b9a96ed8be7.zip
gcc-852d22b41a1467860f59d3aa900a8b9a96ed8be7.tar.gz
gcc-852d22b41a1467860f59d3aa900a8b9a96ed8be7.tar.bz2
calls.c (store_unaligned_arguments_into_pseudos): Deal only with values living in memory and use more precise alignment information.
* calls.c (store_unaligned_arguments_into_pseudos): Deal only with values living in memory and use more precise alignment information. From-SVN: r141742
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 a3d35b3..096dde4 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));