diff options
Diffstat (limited to 'gcc/java')
-rw-r--r-- | gcc/java/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/java/expr.c | 12 |
2 files changed, 11 insertions, 5 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 95b3807..a218b80 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,7 @@ +2006-02-04 Andreas Tobler <a.tobler@schweiz.ch> + + * expr.c (java_stack_swap): Revert gcc_assert patch. + 2006-02-03 Ben Elliston <bje@au.ibm.com> * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout. diff --git a/gcc/java/expr.c b/gcc/java/expr.c index c28f6b2..6d8926c 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -629,12 +629,14 @@ java_stack_swap (void) tree temp; tree decl1, decl2; + if (stack_pointer < 2 + || (type1 = stack_type_map[stack_pointer - 1]) == TYPE_UNKNOWN + || (type2 = stack_type_map[stack_pointer - 2]) == TYPE_UNKNOWN + || type1 == TYPE_SECOND || type2 == TYPE_SECOND + || TYPE_IS_WIDE (type1) || TYPE_IS_WIDE (type2)) + /* Bad stack swap. */ + abort (); /* Bad stack swap. */ - gcc_assert (stack_pointer >= 2 - && (type1 = stack_type_map[stack_pointer - 1]) != TYPE_UNKNOWN - && (type2 = stack_type_map[stack_pointer - 2]) != TYPE_UNKNOWN - && (type1 != TYPE_SECOND && type2 != TYPE_SECOND) - && (! TYPE_IS_WIDE (type1) && ! TYPE_IS_WIDE (type2))); flush_quick_stack (); decl1 = find_stack_slot (stack_pointer - 1, type1); |