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

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

https://gcc.gnu.org/g:d0b3d120bc1792974c1b600e277716781b3dae35

commit r16-7812-gd0b3d120bc1792974c1b600e277716781b3dae35
Author: Eric Botcazou <[email protected]>
Date:   Fri Feb 27 19:54:33 2026 +0100

    Ada: Fix assertion failure for unfrozen mutably tagged type as actual

    This is a follow-up to the fix done last December at:
      https://gcc.gnu.org/pipermail/gcc-patches/2025-December/704521.html

    The fix is not sufficient when nested layers of generics are involved,
    so this changes the implementation of mutably tagged types to have the
    declaration of their CW-equivalent type immediately analyzed.  But this
    in turn requires making sure that the root type is frozen before the
    CW-equivalent type in all cases.

    gcc/ada/
            PR ada/123306
            * freeze.adb (Freeze_Entity): For a class-wide equivalent type of
            a non-interface root type, freeze the root type before it.
            * sem_ch3.adb (Derived_Type_Declaration): Minor tweak.
            * sem_ch12.adb (Analyze_One_Association): Revert latest change.
            * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: When
            the prefix is a class-wide type, insert the declaration of the CW-
            equivalent type immediately after that of the root type, and the
            size check for the root type into its own freezing actions.

    gcc/testsuite/
            * gnat.dg/specs/mutably_tagged2.ads: New test.

Reply via email to