https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122161

--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Marc Poulhies <[email protected]>:

https://gcc.gnu.org/g:987d94ebf0b653707987bfe74e8fe4d3ff63d8ea

commit r16-4982-g987d94ebf0b653707987bfe74e8fe4d3ff63d8ea
Author: Eric Botcazou <[email protected]>
Date:   Thu Oct 9 09:41:54 2025 +0200

    ada: Tidy up code dealing with visibility in instances of formal packages

    The actuals for parameters of formal packages are visible in the instance
    if the formal packages either are declared with a box or contain defaulted
    parameters.  This is essentially implemented in Check_Generic_Actuals and
    Restore_Private_Views, with the help of the Is_Visible_Formal flag.

    This documents more prominently the processing and streamlines it, as well
    as removes a couple of questionable calls to Set_Is_Hidden, thus plugging
    a couple more loopholes in the implementation.

    gcc/ada/ChangeLog:

            PR ada/122161
            * sem_ch12.adb: Improve the description of Check_Generic_Actuals,
            Restore_Private_Views and Switch_View, and alphabetize them.
            (Check_Generic_Actuals): Make actuals visible only if needed.
            (Install_Formal_Packages): Pass exact Is_Formal_Box parameter and
            remove call to Set_Is_Hidden.
            (Instantiate_Formal_Package): Use Next_Non_Pragma consistently in
            the loop computing the visibility of actuals.
            (Analyze_Package_Instantiation): Use named second parameter in the
            call to Restore_Private_Views.
            (Analyze_Subprogram_Instantiation): Likewise.
            (Instantiate_Package_Body): Likewise and for Check_Generic_Actuals.
            (Instantiate_Subprogram_Body): Likewise.
            (Restore_Env): Replace call to Restore_Private_Views.
            (Restore_Private_Views): Remove default value for second parameter
            and test of presence for first parameter.  Consistently clear the
            Is_Potentially_Use_Visible flag when setting the Is_Hidden flag.
            Remove call to Set_Is_Hidden for a formal package of the enclosing
            generic unit, if any.

Reply via email to