From 47231c30a0475092cd452d6062ed06ee904e28f8 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 20 Sep 2023 10:04:12 -0600 Subject: [PATCH] Fix range-type "return" command on ARM On big-endian ARM, "return"ing from a function that returned a range type did not work. This patch strips the range type to treat the function as though it were returning the underlying type instead. Approved-By: Luis Machado --- gdb/arm-tdep.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 493e5b84758..62412d92f85 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -9132,6 +9132,9 @@ arm_store_return_value (struct type *type, struct regcache *regs, struct gdbarch *gdbarch = regs->arch (); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); + while (type->code () == TYPE_CODE_RANGE) + type = check_typedef (type->target_type ()); + if (type->code () == TYPE_CODE_FLT) { gdb_byte buf[ARM_FP_REGISTER_SIZE]; -- 2.30.2