From bde33286bde09e4a8fbb16d876a073207066e31e Mon Sep 17 00:00:00 2001 From: Robert Dewar Date: Tue, 15 Nov 2005 14:56:27 +0100 Subject: sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package 2005-11-14 Robert Dewar Ed Schonberg * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package (Check_Elab_Call): A call within a protected body is never an elaboration call, and does not require checking. (Same_Elaboration_Scope): Take into account protected types for both entities. (Activate_Elaborate_All_Desirable): New procedure * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable (Elab_Error_Msg): Use -da to include internal unit links, not -de. * lib-writ.ads, lib-writ.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable Use new Elaborate_All_Desirable flag in N_With_Clause node * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for N_Free_Statement nodes. Define new class N_Subprogram_Instantiation Add Elaborate_Desirable flag to N_With_Clause node Add N_Delay_Statement (covering two kinds of delay) * debug.adb: Introduce d.f flag for compiler Add -da switch for binder From-SVN: r106968 --- gcc/ada/ali.adb | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'gcc/ada/ali.adb') diff --git a/gcc/ada/ali.adb b/gcc/ada/ali.adb index c1ea6c4..2bafec0 100644 --- a/gcc/ada/ali.adb +++ b/gcc/ada/ali.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2005, 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- -- @@ -1556,6 +1556,7 @@ package body ALI is Withs.Table (Withs.Last).Uname := Get_Name; Withs.Table (Withs.Last).Elaborate := False; Withs.Table (Withs.Last).Elaborate_All := False; + Withs.Table (Withs.Last).Elab_Desirable := False; Withs.Table (Withs.Last).Elab_All_Desirable := False; Withs.Table (Withs.Last).SAL_Interface := False; @@ -1571,12 +1572,24 @@ package body ALI is Withs.Table (Withs.Last).Sfile := Get_Name (Lower => True); Withs.Table (Withs.Last).Afile := Get_Name; - -- Scan out possible E, EA, and NE parameters + -- Scan out possible E, EA, ED, and AD parameters while not At_Eol loop Skip_Space; - if Nextc = 'E' then + if Nextc = 'A' then + P := P + 1; + Checkc ('D'); + Check_At_End_Of_Field; + + -- Store AD indication unless ignore required + + if not Ignore_ED then + Withs.Table (Withs.Last).Elab_All_Desirable := + True; + end if; + + elsif Nextc = 'E' then P := P + 1; if At_End_Of_Field then @@ -1594,7 +1607,7 @@ package body ALI is -- Store ED indication unless ignore required if not Ignore_ED then - Withs.Table (Withs.Last).Elab_All_Desirable := + Withs.Table (Withs.Last).Elab_Desirable := True; end if; end if; -- cgit v1.1