diff options
author | Justin Squirek <squirek@adacore.com> | 2018-05-24 13:05:20 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2018-05-24 13:05:20 +0000 |
commit | 36e7d49f8afc9bde0ef5691fc5a3ce4330fd3063 (patch) | |
tree | a1f671816f03d35cf2f2d90b42ac6661e47fd123 | |
parent | 37a104eaa89a54f7c1a64a58c332fc04d2d757a6 (diff) | |
download | gcc-36e7d49f8afc9bde0ef5691fc5a3ce4330fd3063.zip gcc-36e7d49f8afc9bde0ef5691fc5a3ce4330fd3063.tar.gz gcc-36e7d49f8afc9bde0ef5691fc5a3ce4330fd3063.tar.bz2 |
[Ada] Ineffective use warning is suppressed when performing verification
This patch fixes an issue whereby the compiler incorrectly marked use clauses
as effective due to code generated for verification referencing certain types
leading to missing use clause warnings.
No reasonably small testcase available.
2018-05-24 Justin Squirek <squirek@adacore.com>
gcc/ada/
* sem_res.adb (Resolve_Entity_Name): Add guard to protect against
marking use clauses as effective when the reference appears within
generated code.
From-SVN: r260652
-rw-r--r-- | gcc/ada/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/sem_res.adb | 8 |
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index ae9c071..6707a1a 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2018-05-24 Justin Squirek <squirek@adacore.com> + + * sem_res.adb (Resolve_Entity_Name): Add guard to protect against + marking use clauses as effective when the reference appears within + generated code. + 2018-05-24 Cyrille Comar <comar@adacore.com> * doc/gnat_rm/the_gnat_library.rst: Fix typos. diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index e7ee70e..f6caccc 100644 --- a/gcc/ada/sem_res.adb +++ b/gcc/ada/sem_res.adb @@ -7293,7 +7293,13 @@ package body Sem_Res is end if; end if; - Mark_Use_Clauses (E); + -- We may be resolving an entity within expanded code, so a reference + -- to an entity should be ignored when calculating effective use clauses + -- to avoid inappropriate marking. + + if Comes_From_Source (N) then + Mark_Use_Clauses (E); + end if; end Resolve_Entity_Name; ------------------- |