From 97ed5872c6629a96fcc4b4ff4ccaca41950ae26c Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Fri, 5 Aug 2011 15:46:16 +0200 Subject: [multiple changes] 2011-08-05 Ed Schonberg * sem_ch3.adb: (Check_Private_Overriding): better error message, suggested by AI95-0068. 2011-08-05 Hristian Kirtchev * exp_ch7.adb (Find_Last_Init): Use Next_Suitable_Statement to retrieve the two potential initialization calls. This accounts for any access-before-elaboration checks which may precede the initialization calls. (Next_Suitable_Statement): New routine. Returns the next real statement after the input node while skipping generated checks. * sem_elab.adb (Check_A_Call): New formal parameter In_Init_Proc along with comment on usage. Do not generate Elaborate_All when the trigger is a finalization call coming from a type init proc. (Check_Elab_Call): Propagate the initialization procedure context to subsequent calls to Check_A_Call. (Check_Internal_Call_Continue): Propagate the initialization procedure context to subsequent calls to Check_Elab_Call. (Is_Finalization_Procedure): New routine. Returns True if the input entity denotes a [Deep_]Finalize routine. * sem_elab.ads (Check_Elab_Call): New formal parameter In_Init_Proc along with comment on usage. 2011-08-05 Vadim Godunko * s-atocou.ads: Add list of supported platforms. 2011-08-05 Yannick Moy * sem_prag.adb, restrict.adb: Correct style for or'ing Boolean variables * opt.ads (Disable_ALI_File): new Boolean flag * lib-writ.adb (Write_ALI): when Disable_ALI_File is set, do nothing 2011-08-05 Ed Falis * env.c (__gnat_environ): Fix includes for RTPs and VTHREADS so that environ is properly defined. 2011-08-05 Vincent Celier * make.adb (Compilation_Phase): Exit immediately when all objects have been found up to date, to avoid multiple exit messages. * prj-nmsc.adb (Add_Source): Allow duplicate source file names in the same project for languages with no compiler. * gnat_ugn.texi: Document compiler switch -gnateI and gnatmake switch -eI. From-SVN: r177434 --- gcc/ada/sem_elab.ads | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'gcc/ada/sem_elab.ads') diff --git a/gcc/ada/sem_elab.ads b/gcc/ada/sem_elab.ads index 7b85b6f..f7a5246 100644 --- a/gcc/ada/sem_elab.ads +++ b/gcc/ada/sem_elab.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2008, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2011, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -118,12 +118,16 @@ package Sem_Elab is -- the resulting code does not contain subprogram specs with no -- corresponding bodies. - procedure Check_Elab_Call (N : Node_Id; Outer_Scope : Entity_Id := Empty); + procedure Check_Elab_Call + (N : Node_Id; + Outer_Scope : Entity_Id := Empty; + In_Init_Proc : Boolean := False); -- Check a call for possible elaboration problems. The node N is either -- an N_Function_Call or N_Procedure_Call_Statement node. The Outer_Scope -- argument indicates whether this is an outer level call from Sem_Res -- (Outer_Scope set to Empty), or an internal recursive call (Outer_Scope - -- set to entity of outermost call, see body). + -- set to entity of outermost call, see body). Flag In_Init_Proc should be + -- set whenever the current context is a type init proc. procedure Check_Elab_Calls; -- Not all the processing for Check_Elab_Call can be done at the time -- cgit v1.1