aboutsummaryrefslogtreecommitdiff
path: root/gcc/reg-stack.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r--gcc/reg-stack.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 7007fcb..7ee3be2 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -2667,8 +2667,9 @@ compensate_edge (edge e, FILE *file)
{
/* Assert that the lifetimes are as we expect -- one value
live at st(0) on the end of the source block, and no
- values live at the beginning of the destination block. */
- gcc_assert (source_stack->top == 0);
+ values live at the beginning of the destination block.
+ For complex return values, we may have st(1) live as well. */
+ gcc_assert (source_stack->top == 0 || source_stack->top == 1);
gcc_assert (target_stack->top == -1);
return false;
}