https://gcc.gnu.org/g:5990d3e7163ff79829cf93524ac90ea3d6d901ec

commit r15-4896-g5990d3e7163ff79829cf93524ac90ea3d6d901ec
Author: Piotr Trojanek <troja...@adacore.com>
Date:   Tue Oct 8 22:52:38 2024 +0200

    ada: Fix visibility of Taft amendment types
    
    When uninstalling private package declarations we must mark Taft
    amendment types hidden, just like we mark other types.
    
    Looking at previous revisions of this code, it is quite clear that this
    bug comes from a code evolution and marking types should happen in all
    ELSE branches of the enclosing IF statement.
    
    gcc/ada/ChangeLog:
    
            * sem_ch7.adb (Uninstall_Declarations): Mark Taft amendment
            types like we mark other types declared in private package
            declarations.

Diff:
---
 gcc/ada/sem_ch7.adb | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gcc/ada/sem_ch7.adb b/gcc/ada/sem_ch7.adb
index 28031b5dbc27..07a88fee0ec3 100644
--- a/gcc/ada/sem_ch7.adb
+++ b/gcc/ada/sem_ch7.adb
@@ -3375,6 +3375,9 @@ package body Sem_Ch7 is
                end loop;
             end;
 
+            Set_Is_Hidden (Id);
+            Set_Is_Potentially_Use_Visible (Id, False);
+
          --  For subtypes of private types the frontend generates two entities:
          --  one associated with the partial view and the other associated with
          --  the full view. When the subtype declaration is public the frontend

Reply via email to