From 07537fe632cd6e2fcf83954fb85455d118d80c06 Mon Sep 17 00:00:00 2001 From: Javier Miranda Date: Sat, 13 Mar 2021 14:47:59 -0500 Subject: [Ada] Ada2020: Special handling of types derived from runtime gcc/ada/ * einfo.ads (Is_Ada_2022_Only): Adding documentation. * gen_il-fields.ads (Is_Ada_2022_Only): New flag. * gen_il-gen-gen_entities.adb (Is_Ada_2022_Only): New flag. * itypes.adb (Create_Null_Excluding_Itype): Inherit Is_Ada_2022_Only. * sem_ch3.adb (Check_Abstract_Overriding): Skip reporting error on Ada 2022 only subprograms that require overriding if we are not in Ada 2022 mode. (Derive_Subprogram): Inherit Is_Ada_2022_Only. * sem_ch6.adb (Check_Overriding_Indicator): Inherit Is_Ada_2022_Only. (New_Overloaded_Entity): Inherit Is_Ada_2022_Only. * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Inherit Is_Ada_2022_Only. (Preserve_Full_Attributes): Inherit Is_Ada_2022_Only. * sem_disp.adb (Find_Hidden_Overridden_Primitive): Inherit Is_Ada_2022_Only. (Override_Dispatching_Operation): Inherit Is_Ada_2022_Only. * sem_prag.adb (Analyze_Pragma): Allow form with argument for Ada 2022. * sem_type.adb: (Disambiguate): Deal with Is_Ada_2022_Only * lib-xref.adb (Generate_Reference): Error on static and dispatching calls to Ada 2022 subprograms that require overriding if we are not in Ada 2022 mode; warn on other references to Ada 2022 entities when not in Ada 2022 mode. * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Inherit Ada_2020_Only. * libgnat/a-cdlili.ads (Empty): Adding pragma Ada_2022. * libgnat/a-cidlli.ads (Empty): Adding pragma Ada_2022. * libgnat/a-ciorma.ads (Empty): Adding pragma Ada_2022. * libgnat/a-cobove.ads (Empty): Adding pragma Ada_2022. * libgnat/a-coorma.ads (Empty): Adding pragma Ada_2022. (New_Vector): Adding pragma Ada_2022. (Insert_Vector): Adding pragma Ada_2022. (Prepend_Vector): Adding pragma Ada_2022. (Append_Vector): Adding pragma Ada_2022. --- gcc/ada/sem_ch7.adb | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gcc/ada/sem_ch7.adb') diff --git a/gcc/ada/sem_ch7.adb b/gcc/ada/sem_ch7.adb index 27927eb..69ad184 100644 --- a/gcc/ada/sem_ch7.adb +++ b/gcc/ada/sem_ch7.adb @@ -2061,6 +2061,8 @@ package body Sem_Ch7 is Replace_Elmt (Op_Elmt, New_Op); Remove_Elmt (Op_List, Op_Elmt_2); Set_Overridden_Operation (New_Op, Parent_Subp); + Set_Is_Ada_2022_Only (New_Op, + Is_Ada_2022_Only (Parent_Subp)); -- We don't need to inherit its dispatching slot. -- Set_All_DT_Position has previously ensured that @@ -2725,6 +2727,7 @@ package body Sem_Ch7 is Set_Is_Atomic (Priv, Is_Atomic (Full)); Set_Is_Ada_2005_Only (Priv, Is_Ada_2005_Only (Full)); Set_Is_Ada_2012_Only (Priv, Is_Ada_2012_Only (Full)); + Set_Is_Ada_2022_Only (Priv, Is_Ada_2022_Only (Full)); Set_Has_Pragma_Unmodified (Priv, Has_Pragma_Unmodified (Full)); Set_Has_Pragma_Unreferenced (Priv, Has_Pragma_Unreferenced (Full)); Set_Has_Pragma_Unreferenced_Objects -- cgit v1.1