diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_ch13.adb | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index 3a99c5d..cead44c 100644 --- a/gcc/ada/sem_ch13.adb +++ b/gcc/ada/sem_ch13.adb @@ -1408,19 +1408,33 @@ package body Sem_Ch13 is -- Subsidiary to the analysis of aspects -- Abstract_State -- Attach_Handler + -- Async_Readers + -- Async_Writers + -- Constant_After_Elaboration -- Contract_Cases + -- Convention + -- Default_Initial_Condition + -- Default_Storage_Pool -- Depends -- Ghost -- Global -- Initial_Condition -- Initializes + -- Max_Entry_Queue_Depth + -- Max_Entry_Queue_Length + -- Max_Queue_Length + -- No_Caching + -- Part_Of -- Post -- Pre -- Refined_Depends -- Refined_Global + -- Refined_Post -- Refined_State -- SPARK_Mode + -- Secondary_Stack_Size -- Subprogram_Variant + -- Volatile_Function -- Warnings -- Insert pragma Prag such that it mimics the placement of a source -- pragma of the same kind. Flag Is_Generic should be set when the @@ -3061,16 +3075,11 @@ package body Sem_Ch13 is Expression => Relocate_Node (Expr))), Pragma_Name => Name_Linker_Section); - -- Linker_Section does not need delaying, as its argument - -- must be a static string. Furthermore, if applied to - -- an object with an explicit initialization, the object - -- must be frozen in order to elaborate the initialization - -- code. (This is already done for types with implicit - -- initialization, such as protected types.) + -- No need to delay the processing if the entity is already + -- frozen. This should only happen for subprogram bodies. - if Nkind (N) = N_Object_Declaration - and then Has_Init_Expression (N) - then + if Is_Frozen (E) then + pragma Assert (Nkind (N) = N_Subprogram_Body); Delay_Required := False; end if; @@ -4724,9 +4733,7 @@ package body Sem_Ch13 is -- For an aspect that applies to a type, indicate whether it -- appears on a partial view of the type. - if Is_Type (E) - and then Is_Private_Type (E) - then + if Is_Type (E) and then Is_Private_Type (E) then Set_Aspect_On_Partial_View (Aspect); end if; |