Fix bug in Ada aggregate assignment
authorTom Tromey <tromey@adacore.com>
Mon, 15 Mar 2021 12:23:12 +0000 (06:23 -0600)
committerTom Tromey <tromey@adacore.com>
Mon, 15 Mar 2021 12:23:12 +0000 (06:23 -0600)
commit207582c0758738447d2df8f778aeebf126c73b31
tree986f9fbcef047e24e6742cb3f95e81102d4ec83d
parent1996d0f12cd57391e01e0eebe32e44510e6ec17d
Fix bug in Ada aggregate assignment

The expression rewrite caused a regression in the internal AdaCore
test suite.  The bug was that I had dropped a bit of code from
aggregate assignment -- assign_aggregate used to return the container,
which I thought was redundant, but which can actually change during
the call.  There was no test for this case in the tree, so I've added
one.

gdb/ChangeLog
2021-03-15  Tom Tromey  <tromey@adacore.com>

* ada-lang.c (ada_aggregate_operation::assign_aggregate): Return
container.
(ada_assign_operation::evaluate): Update.
* ada-exp.h (class ada_aggregate_operation) <assign_aggregate>:
Change return type.

gdb/testsuite/ChangeLog
2021-03-15  Tom Tromey  <tromey@adacore.com>

* gdb.ada/assign_arr/target_wrapper.ads (IArray, Put, Do_Nothing):
Declare.
* gdb.ada/assign_arr/target_wrapper.adb: New file.
* gdb.ada/assign_arr/main_p324_051.adb (IValue): New variable.
Call Put.
* gdb.ada/assign_arr.exp: Update.
gdb/ChangeLog
gdb/ada-exp.h
gdb/ada-lang.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/assign_arr.exp
gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb
gdb/testsuite/gdb.ada/assign_arr/target_wrapper.adb [new file with mode: 0644]
gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads