forked from Imagelibrary/binutils-gdb
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.
This commit is contained in:
@@ -510,11 +510,12 @@ public:
|
||||
type, evaluate an assignment of this aggregate's value to LHS.
|
||||
CONTAINER is an lvalue containing LHS (possibly LHS itself).
|
||||
Does not modify the inferior's memory, nor does it modify the
|
||||
contents of LHS (unless == CONTAINER). */
|
||||
contents of LHS (unless == CONTAINER). Returns the modified
|
||||
CONTAINER. */
|
||||
|
||||
void assign_aggregate (struct value *container,
|
||||
struct value *lhs,
|
||||
struct expression *exp);
|
||||
value *assign_aggregate (struct value *container,
|
||||
struct value *lhs,
|
||||
struct expression *exp);
|
||||
|
||||
value *evaluate (struct type *expect_type,
|
||||
struct expression *exp,
|
||||
|
||||
Reference in New Issue
Block a user