diff options
| author | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-11-06 15:19:49 +0000 |
|---|---|---|
| committer | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-11-06 15:19:49 +0000 |
| commit | 7a7557da8d8d021834bf12c39d35bf837e6be534 (patch) | |
| tree | c03c6855794b67bdd2fec6ad9cb8c6ce597ca95f /gcc/java/expr.c | |
| parent | a1d0a19052e3c2b9af1fe678574117d051a3b308 (diff) | |
| download | ppe42-gcc-7a7557da8d8d021834bf12c39d35bf837e6be534.tar.gz ppe42-gcc-7a7557da8d8d021834bf12c39d35bf837e6be534.zip | |
2003-11-06 Andrew Haley <aph@redhat.com>
* expr.c (java_stack_swap): Make sure destination stack slots are
of the correct type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73306 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java/expr.c')
| -rw-r--r-- | gcc/java/expr.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c index e5654e79b6f..8e7ea9d9829 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -503,8 +503,9 @@ java_stack_swap (void) decl1 = find_stack_slot (stack_pointer - 1, type1); decl2 = find_stack_slot (stack_pointer - 2, type2); temp = copy_to_reg (DECL_RTL (decl1)); - emit_move_insn (DECL_RTL (decl1), DECL_RTL (decl2)); - emit_move_insn (DECL_RTL (decl2), temp); + emit_move_insn (DECL_RTL (find_stack_slot (stack_pointer - 1, type2)), + DECL_RTL (decl2)); + emit_move_insn (DECL_RTL (find_stack_slot (stack_pointer - 2, type1)), temp); stack_type_map[stack_pointer - 1] = type2; stack_type_map[stack_pointer - 2] = type1; } |

