aboutsummaryrefslogtreecommitdiff
path: root/gcc/except.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2009-03-07 16:02:30 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2009-03-07 16:02:30 +0000
commit3a695389b367b19c3987d050908c6e7fb58225f0 (patch)
treed9b4cde82193c8beaf6b83e9cd810d0370752e67 /gcc/except.c
parentd97817522c056cde61126cd04dffd0990ef5652f (diff)
downloadgcc-3a695389b367b19c3987d050908c6e7fb58225f0.zip
gcc-3a695389b367b19c3987d050908c6e7fb58225f0.tar.gz
gcc-3a695389b367b19c3987d050908c6e7fb58225f0.tar.bz2
re PR middle-end/38028 (eh failures on spu-elf)
PR middle-end/38028 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to determine alignment passed to assign_stack_local. (assign_parms_unsplit_complex): Likewise. * except.c (sjlj_build_landing_pads): Likewise. From-SVN: r144696
Diffstat (limited to 'gcc/except.c')
-rw-r--r--gcc/except.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/except.c b/gcc/except.c
index c762edc..2913fc8 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -2017,11 +2017,13 @@ sjlj_build_landing_pads (void)
if (sjlj_find_directly_reachable_regions (lp_info))
{
rtx dispatch_label = gen_label_rtx ();
-
+ int align = STACK_SLOT_ALIGNMENT (sjlj_fc_type_node,
+ TYPE_MODE (sjlj_fc_type_node),
+ TYPE_ALIGN (sjlj_fc_type_node));
crtl->eh.sjlj_fc
= assign_stack_local (TYPE_MODE (sjlj_fc_type_node),
int_size_in_bytes (sjlj_fc_type_node),
- TYPE_ALIGN (sjlj_fc_type_node));
+ align);
sjlj_assign_call_site_values (dispatch_label, lp_info);
sjlj_mark_call_sites (lp_info);