This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA] (riscv/ada) fix error when calling functions with range argument
- From: Joel Brobecker <brobecker at adacore dot com>
- To: gdb-patches at sourceware dot org
- Cc: KONRAD Frederic <konrad at adacore dot com>
- Date: Sun, 10 Feb 2019 08:38:26 -0500
- Subject: [RFA] (riscv/ada) fix error when calling functions with range argument
From: KONRAD Frederic <konrad@adacore.com>
Hello,
This is a patch that one of my coworkers wrote, which I have been
meaning to contribute for a long time, but haven't because we are not
set up to run the official testsuite on this platform (because of
the way our baremetal compiler is set up). But since the patch is
quite straightforward in my opinion, I thought I would propose it
anyway.
Using the gdb.ada/call_pn.exp testcase, and running it by hand on
riscv64-elf, we get the following error:
(gdb) call pn(55)
Could not compute alignment of type
The problem occurs because the parameter's type is a TYPE_CODE_RANGE,
and that type code is not handled by riscv_type_alignment. So this patch
fixes the issue by handling TYPE_CODE_RANGE the same way we handle other
integral types.
gdb/ChangeLog:
* gdb/riscv-rdep.c (riscv_type_alignment): Handle TYPE_CODE_RANGE.
Tested on riscv64-elf using AdaCore's testsuite.
OK to apply?
Thanks,
--
Joel
---
gdb/riscv-tdep.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c
index fb5e2c5..3e8f564 100644
--- a/gdb/riscv-tdep.c
+++ b/gdb/riscv-tdep.c
@@ -1632,6 +1632,7 @@ riscv_type_alignment (struct type *t)
default:
error (_("Could not compute alignment of type"));
+ case TYPE_CODE_RANGE:
case TYPE_CODE_RVALUE_REF:
case TYPE_CODE_PTR:
case TYPE_CODE_ENUM:
--
2.1.4