aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/ada-lang.c10
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;
}