https://gcc.gnu.org/g:19367d7d8fb94f4157f6c1406473de7cff5ca149

commit r15-4919-g19367d7d8fb94f4157f6c1406473de7cff5ca149
Author: Viljar Indus <in...@adacore.com>
Date:   Wed Oct 16 12:01:38 2024 +0300

    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.

Diff:
---
 gcc/ada/sem_warn.adb | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/gcc/ada/sem_warn.adb b/gcc/ada/sem_warn.adb
index 69e60be29660..2ffd631d6283 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

Reply via email to