]> git.ipfire.org Git - thirdparty/gcc.git/commit
ada: Fix spurious warning emissions
authorRonan Desplanques <desplanques@adacore.com>
Mon, 21 Aug 2023 11:35:37 +0000 (13:35 +0200)
committerMarc Poulhiès <poulhies@adacore.com>
Tue, 5 Sep 2023 11:05:15 +0000 (13:05 +0200)
commit9be6a698f95f94a27307208cdb90bd2018182071
treee2d77e4c7d04b99f50b28636e473c47df4c9b6e0
parent2f1cde4d511b9da6081b785f1c50b7e7aa271b4f
ada: Fix spurious warning emissions

Before this patch, warnings handled by `Sem_Warn.Check_References` were
erroneously emitted in some cases. Here is an example of a program that,
when compiled with the `-gnatwu` switch, triggered the bug:

    procedure Main is
       package T is
          A : Integer;
       end T;
    begin
       T.A := 7;
    end Main;

The following message was emitted:

   main.adb:3:07: warning: variable "A" is never read and never assigned [-gnatwu]

This patch mitigates the issue by restricting the cases in which
`Sem_Warn.Check_References` is called for package specifications.

Note that the recursive calls in `Sem_Warn.Check_References` can be used
to convince oneself that this patch does not remove legitimate warnings
for non-library-level package specifications.

gcc/ada/

* sem_ch7.adb (Analyze_Package_Declaration): Restrict calls to
`Sem_Warn.Check_References` and adjust comment accordingly.
gcc/ada/sem_ch7.adb