diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/ada-lang.c | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 83661dc..4422ada 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2015-05-08 Joel Brobecker <brobecker@adacore.com> + * ada-lang.c (ada_convert_actual): Add handling of formals + passed inside an aligner type. + +2015-05-08 Joel Brobecker <brobecker@adacore.com> + * copyright.py (NOT_FSF_LIST): Remove sim/erc32 entries. 2015-05-08 Siva Chandra Reddy <sivachandra@google.com> diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 7fe85c0..3a00e5b 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -4310,6 +4310,16 @@ ada_convert_actual (struct value *actual, struct type *formal_type0) } else if (TYPE_CODE (actual_type) == TYPE_CODE_PTR) return ada_value_ind (actual); + else if (ada_is_aligner_type (formal_type)) + { + /* We need to turn this parameter into an aligner type + as well. */ + struct value *aligner = allocate_value (formal_type); + struct value *component = ada_value_struct_elt (aligner, "F", 0); + + value_assign_to_component (aligner, component, actual); + return aligner; + } return actual; } |