diff options
| author | Ronan Desplanques <desplanques@adacore.com> | 2025-09-25 11:33:13 +0200 |
|---|---|---|
| committer | Marc Poulhiès <dkm@gcc.gnu.org> | 2025-10-28 11:24:05 +0100 |
| commit | 720aa07da3fa491d2453552820016345bcda4be3 (patch) | |
| tree | a2520f0a90b4b87ab55f406a05cccbd8d077e8a8 /contrib/gcc-changelog/git_commit.py | |
| parent | 36dc851484949c2e5d4fbfe33b8b336699a46104 (diff) | |
| download | gcc-720aa07da3fa491d2453552820016345bcda4be3.zip gcc-720aa07da3fa491d2453552820016345bcda4be3.tar.gz gcc-720aa07da3fa491d2453552820016345bcda4be3.tar.bz2 | |
ada: Fix usage of Table.Table in Sem_Ch12
Before this patch, Sem_Ch12 jumped through questionable hoops in the way
it used its Generics_Renaming table that involved defensive calls to the
'Valid attribute. No known bug has been caused by this, but valgrind
reported incorrect memory operations because of it.
After analysis, the problem seems to be a mix 0-based and 1-based
indexing in the uses of Generic_Renamings and a convoluted interface for
the Set_Instance_Of procedure, leading to an unclear status for
Generic_Renamings.Table (0).
This patch fixes those problems and removes the accompanying defensive
code.
gcc/ada/ChangeLog:
* sem_ch12.adb (Build_Local_Package)
(Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
Fix Set_Last calls.
(Set_Instance_Of): Use Table.Table.Append.
(Save_And_Reset): Remove useless call. Remove defensive code.
(Restore): Remove incorrect Set_Last call and adapt to
Set_Instance_Of change.
Diffstat (limited to 'contrib/gcc-changelog/git_commit.py')
0 files changed, 0 insertions, 0 deletions
