aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Squirek <squirek@adacore.com>2018-05-24 13:05:20 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-05-24 13:05:20 +0000
commit36e7d49f8afc9bde0ef5691fc5a3ce4330fd3063 (patch)
treea1f671816f03d35cf2f2d90b42ac6661e47fd123
parent37a104eaa89a54f7c1a64a58c332fc04d2d757a6 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/ada/sem_res.adb8
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;
-------------------