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

--- Comment #6 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:82951a86c754cd7f8421783b6edaffc61a5e2119

commit r17-1289-g82951a86c754cd7f8421783b6edaffc61a5e2119
Author: Eric Botcazou <[email protected]>
Date:   Sat May 2 11:09:18 2026 +0200

    ada: Fix internal error on private tagged types in instance with -gnateV

    The problem is that the full view of a private tagged type, which is
visible
    in the generic unit, is not restored when expanding -gnateV in the
instance.

    The fix uses a two-pronged approach:

      1. the Valid_Scalars attribute, on which -gnateV is piggybacked, is fixed
         to properly handle tagged extensions (only the components declared in
         the root type are currently tested for validity).

      2. the special case for tagged extensions in instance bodies implemented
         by Try_Selected_Component_In_Instance is extended to whole instances.

    gcc/ada/ChangeLog:

            PR ada/124923
            * exp_attr.adb (Build_Record_VS_Func): Rename first parameter, fix
            description and implement support for tagged extensions.
            (Expand_N_Attribute_Reference) <Attribute_Valid_Scalars>: Also bail
            out for the class-wide type of private tagged types and Adjust call
            to Build_Record_VS_Func.
            * sem_attr.adb (Analyze_Attribute) <Attribute_Valid_Scalars>: Also
            warn for the class-wide type of private tagged types.
            * sem_ch4.adb (Try_Selected_Component_In_Instance): Extend a
special
            case from instance bodies to whole instances.
            * sem_util.ads (Validated_View): Adjust description.
            * sem_util.adb (Validated_View): Do not recurse on the parent type
            for tagged extensions.

Reply via email to