diff options
author | Per Bothner <per@bothner.com> | 1995-11-30 01:43:37 +0000 |
---|---|---|
committer | Per Bothner <per@bothner.com> | 1995-11-30 01:43:37 +0000 |
commit | 940d596798931962895918454d2ca6bd14b83b1b (patch) | |
tree | 0b1efd109bb8fe8f038446ea785b2dd91e35ebeb /gdb/alpha-tdep.c | |
parent | d1f4065e6499c42088b36a058b1de4035d051392 (diff) | |
download | gdb-940d596798931962895918454d2ca6bd14b83b1b.zip gdb-940d596798931962895918454d2ca6bd14b83b1b.tar.gz gdb-940d596798931962895918454d2ca6bd14b83b1b.tar.bz2 |
* alpha-tdep.c, c-exp.y, h8500-tdep.c, f-exp.y, f-valprint.c,
findvar.c, hppa-tdep.c, infcmd.c, language.c, printcmd.c,
rs6000-tdep.c, symmisc.c, symtab.c:
Add check_typedef/CHECK_TYPEDEF as needed.
Diffstat (limited to 'gdb/alpha-tdep.c')
-rw-r--r-- | gdb/alpha-tdep.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index ce1c8ed..622ee44 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -729,21 +729,25 @@ alpha_push_arguments (nargs, args, sp, struct_return, struct_addr) for (i = 0, m_arg = alpha_args; i < nargs; i++, m_arg++) { value_ptr arg = args[i]; + struct type *arg_type = check_typedef (VALUE_TYPE (arg)); /* Cast argument to long if necessary as the compiler does it too. */ - switch (TYPE_CODE (VALUE_TYPE (arg))) + switch (TYPE_CODE (arg_type)) { case TYPE_CODE_INT: case TYPE_CODE_BOOL: case TYPE_CODE_CHAR: case TYPE_CODE_RANGE: case TYPE_CODE_ENUM: - if (TYPE_LENGTH (VALUE_TYPE (arg)) < TYPE_LENGTH (builtin_type_long)) - arg = value_cast (builtin_type_long, arg); + if (TYPE_LENGTH (arg_type) < TYPE_LENGTH (builtin_type_long)) + { + arg_type = builtin_type_long; + arg = value_cast (arg_type, arg); + } break; default: break; } - m_arg->len = TYPE_LENGTH (VALUE_TYPE (arg)); + m_arg->len = TYPE_LENGTH (arg_type); m_arg->offset = accumulate_size; accumulate_size = (accumulate_size + m_arg->len + 7) & ~7; m_arg->contents = VALUE_CONTENTS(arg); |