diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f6260c4ad01..3cbfc6766c0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2007-01-09 Jim Blandy + + * score-tdep.c (score_push_dummy_call): Don't mix declarations and + statements. + 2007-01-09 Daniel Jacobowitz * alpha-mdebug-tdep.c (alpha_mdebug_frame_prev_register): Use diff --git a/gdb/score-tdep.c b/gdb/score-tdep.c index a7bea042b5a..300e775c48d 100644 --- a/gdb/score-tdep.c +++ b/gdb/score-tdep.c @@ -434,15 +434,16 @@ score_push_dummy_call (struct gdbarch *gdbarch, struct value *function, { struct value *arg = args[argnum]; struct type *arg_type = check_typedef (value_type (arg)); - arglen = TYPE_LENGTH (arg_type); enum type_code typecode = TYPE_CODE (arg_type); const gdb_byte *val = value_contents (arg); int downward_offset = 0; - - int odd_sized_struct_p = (arglen > SCORE_REGSIZE - && arglen % SCORE_REGSIZE != 0); + int odd_sized_struct_p; int arg_last_part_p = 0; + arglen = TYPE_LENGTH (arg_type); + odd_sized_struct_p = (arglen > SCORE_REGSIZE + && arglen % SCORE_REGSIZE != 0); + /* If a arg should be aligned to 8 bytes (long long or double), the value should be put to even register numbers. */ if (score_type_needs_double_align (arg_type))