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.