diff options
author | Tom Tromey <tromey@adacore.com> | 2021-01-07 06:58:19 -0700 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2021-01-07 06:58:19 -0700 |
commit | d4813f104685d3b36ab0c36a928264f99f5d3f17 (patch) | |
tree | 87b4572f002a155102ce0a11908f6d4b3ac52473 /gdb/ada-lang.c | |
parent | 17d60030ae57fb53f5977fa6928d7d5006f42881 (diff) | |
download | fsf-binutils-gdb-d4813f104685d3b36ab0c36a928264f99f5d3f17.zip fsf-binutils-gdb-d4813f104685d3b36ab0c36a928264f99f5d3f17.tar.gz fsf-binutils-gdb-d4813f104685d3b36ab0c36a928264f99f5d3f17.tar.bz2 |
Fix regression in Ada aggregate assignment
A recent upstream patch of mine caused a regression in aggregate
assignment. The bug was that add_component_interval didn't properly
update the array contents in one resize case.
I found furthermore that there was no test case that would provoke
this failure. This patch fixes the bug and introduces a test.
gdb/ChangeLog
2021-01-07 Tom Tromey <tromey@adacore.com>
* ada-lang.c (add_component_interval): Start loop using vector's
updated size.
gdb/testsuite/ChangeLog
2021-01-07 Tom Tromey <tromey@adacore.com>
* gdb.ada/assign_arr.exp: Add 'others' test.
Diffstat (limited to 'gdb/ada-lang.c')
-rw-r--r-- | gdb/ada-lang.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 3bc7bdd..4751b6e 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -9755,7 +9755,7 @@ add_component_interval (LONGEST low, LONGEST high, } indices.resize (indices.size () + 2); - for (j = size - 1; j >= i + 2; j -= 1) + for (j = indices.size () - 1; j >= i + 2; j -= 1) indices[j] = indices[j - 2]; indices[i] = low; indices[i + 1] = high; |