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

--- Comment #5 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Eric Botcazou
<ebotca...@gcc.gnu.org>:

https://gcc.gnu.org/g:5b17c2c6cbc34056ae878beed2351bf77a8f57a0

commit r12-10087-g5b17c2c6cbc34056ae878beed2351bf77a8f57a0
Author: Steve Baird <ba...@adacore.com>
Date:   Wed Nov 16 09:28:22 2022 -0800

    Fix nternal compiler error for Sequential Partition_Elaboration_Policy

    In some cases, compilation of a function with a limited class-wide result
    type could fail with an ICE if a Sequential Partition_Elaboration_Policy is
    specified. To prevent this, we really want that specifying a Sequential
    Partition_Elaboration_Policy to have the side effect of imposing a
    No_Task_Hierarchy restriction. But doing that in a straightforward
    way leads to problems with incorrectly accepting violations of H.6(6).
    So a new restriction, No_Task_Hierarchy_Implicit, is introduced.

    gcc/ada/
            PR ada/104354
            * libgnat/s-rident.ads: Define a new restriction,
            No_Task_Hierarchy_Implicit. This is like the No_Task_Hierarchy
            restriction, but with the difference that setting this restriction
            does not mean the H.6(6) post-compilation check is satisified.
            * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): If it is
            known that the function result cannot have tasks, then pass in a
            null literal for the activation chain actual parameter. This
            avoids generating a reference to an entity that
            Build_Activation_Chain_Entity may have chosen not to generate a
            declaration for.
            * gnatbind.adb (List_Applicable_Restrictions): Do not list the
            No_Task_Hierarchy_Implicit restriction.
            * restrict.adb: Special treatment for the
            No_Task_Hierarchy_Implicit restriction in functions
            Get_Restriction_Id and Restriction_Active. The former is needed to
            disallow the (unlikely) case that a user tries to explicitly
            reference the No_Task_Hierarchy_Implicit restriction.
            * sem_prag.adb (Analyze_Pragma): If a Sequential
            Partition_Elaboration_Policy is specified (and the
            No_Task_Hierarchy restriction is not already enabled), then enable
            the No_Task_Hierarchy_Implicit restriction.

Reply via email to