(riscv/ada) fix error when calling functions with range argument
authorKONRAD Frederic <konrad@adacore.com>
Thu, 14 Feb 2019 03:37:11 +0000 (22:37 -0500)
committerJoel Brobecker <brobecker@adacore.com>
Thu, 14 Feb 2019 03:37:11 +0000 (22:37 -0500)
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:

        * riscv-rdep.c (riscv_type_alignment): Handle TYPE_CODE_RANGE.

Tested on riscv64-elf using AdaCore's testsuite.

gdb/ChangeLog
gdb/riscv-tdep.c

index 0dec9b0..34fe174 100644 (file)
@@ -1,3 +1,7 @@
+2019-02-14  Frederic Konrad  <konrad@adacore.com>
+
+       * riscv-rdep.c (riscv_type_alignment): Handle TYPE_CODE_RANGE.
+
 2019-02-14  Joel Brobecker  <brobecker@adacore.com>
 
        * windows-nat.c (windows_add_thread): Add new parameter
index fb5e2c5..3e8f564 100644 (file)
@@ -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: