aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorViljar Indus <indus@adacore.com>2024-10-16 12:01:38 +0300
committerMarc Poulhiès <dkm@gcc.gnu.org>2024-11-04 16:57:58 +0100
commit19367d7d8fb94f4157f6c1406473de7cff5ca149 (patch)
tree615a8904dacbd0de2b582d6b7bac72448c1e4e18 /gcc
parent7bcfdac0ef763587efd014310b779e192b143c62 (diff)
downloadgcc-19367d7d8fb94f4157f6c1406473de7cff5ca149.zip
gcc-19367d7d8fb94f4157f6c1406473de7cff5ca149.tar.gz
gcc-19367d7d8fb94f4157f6c1406473de7cff5ca149.tar.bz2
ada: Avoid unused with warning with Extend_System
When the Extend_System pragma is used then we are supposed to check the extended system for referenced entities. Otherwise we would get an incorrect unused with warning. This was previously done on body files but it should also be done specs as well. gcc/ada/ChangeLog: * sem_warn.adb (Check_One_Unit): When a system extension is present always check entities from that unit before marking the unit unreferenced.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/sem_warn.adb11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/ada/sem_warn.adb b/gcc/ada/sem_warn.adb
index 69e60be..2ffd631 100644
--- a/gcc/ada/sem_warn.adb
+++ b/gcc/ada/sem_warn.adb
@@ -2583,14 +2583,17 @@ package body Sem_Warn is
if No (Ent) then
+ -- Check entities in the extended system if
+ -- specified.
+
+ if Check_System_Aux (Lunit) then
+ null;
+
-- If in spec, just set the flag
- if Unit = Spec_Unit then
+ elsif Unit = Spec_Unit then
Set_No_Entities_Ref_In_Spec (Item);
- elsif Check_System_Aux (Lunit) then
- null;
-
-- Else the warning may be needed
else