mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-28 10:00:51 +00:00
Fix "finish" with range types on ARM
On ARM (I tested big-endian but it may not matter), "finish" can sometimes print the wrong result when the return type is a range type. Range types should really be treated as their underlying type (normally integer, but sometimes fixed-point). This patch implements this. Approved-By: Luis Machado <luis.machado@arm.com>
This commit is contained in:
@@ -8915,6 +8915,9 @@ arm_extract_return_value (struct type *type, struct regcache *regs,
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
arm_gdbarch_tdep *tdep = gdbarch_tdep<arm_gdbarch_tdep> (gdbarch);
|
||||
|
||||
while (type->code () == TYPE_CODE_RANGE)
|
||||
type = check_typedef (type->target_type ());
|
||||
|
||||
if (TYPE_CODE_FLT == type->code ())
|
||||
{
|
||||
switch (tdep->fp_model)
|
||||
|
||||
Reference in New Issue
Block a user