gcc/gcc/ada/s-elaall.adb
Arnaud Charlet b3b26ace90 [multiple changes]
2014-07-18  Robert Dewar  <dewar@adacore.com>

	* bcheck.adb (Check_Consistent_Restrictions):
	Remove obsolete code checking for violation of
	No_Standard_Allocators_After_Elaboration (main program)
	* bindgen.adb (Gen_Adainit): Handle
	No_Standard_Allocators_After_Elaboration
	(Gen_Output_File_Ada): ditto.
	* exp_ch4.adb (Expand_N_Allocator): Handle
	No_Standard_Allocators_After_Elaboration.
	* Makefile.rtl: Add entry for s-elaall
	* rtsfind.ads: Add entry for Check_Standard_Allocator.
	* s-elaall.ads, s-elaall.adb: New files.
	* sem_ch4.adb (Analyze_Allocator): Handle
	No_Standard_Allocators_After_Elaboration.

2014-07-18  Robert Dewar  <dewar@adacore.com>

	* lib.adb, lib.ads, lib-writ.adb, lib-writ.ads, ali.adb,
	ali.ads, lib-load.adb: Remove Lib.Has_Allocator and all uses.
	Remove AB parameter from ali files and all uses.
	Remove Allocator_In_Body and all uses.

2014-07-18  Robert Dewar  <dewar@adacore.com>

	* g-expect-vms.adb: Add comment.

2014-07-18  Thomas Quinot  <quinot@adacore.com>

	* par_sco.adb (Is_Logical_Operation): return True for
	N_If_Expression.

2014-07-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Resolve_Attribute, case 'Update): Do full
	analysis and resolution of each choice in the associations within
	the argument of Update, because they may be variable names.

2014-07-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_attr.adb (Expand_Loop_Entry_Attribute): Insert any condition
	actions before the generated if statement.

2014-07-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* gnat_ugn.texi Enhance the documentation of
	switches -gnateA and -gnateV.

2014-07-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Build_Default_Subtype): Add missing condition
	so that code matches description: use the full view of the base
	only if the base is private and the subtype is not.

From-SVN: r212779
2014-07-18 11:05:04 +02:00

73 lines
3.6 KiB
Ada

------------------------------------------------------------------------------
-- --
-- GNAT RUN-TIME COMPONENTS --
-- --
-- S Y S T E M . E L A B O R A T I O N _ A L L O C A T O R S --
-- --
-- B o d y --
-- --
-- Copyright (C) 2014, 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- --
-- ware Foundation; either version 3, or (at your option) any later ver- --
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. --
-- --
-- As a special exception under Section 7 of GPL version 3, you are granted --
-- additional permissions described in the GCC Runtime Library Exception, --
-- version 3.1, as published by the Free Software Foundation. --
-- --
-- You should have received a copy of the GNU General Public License and --
-- a copy of the GCC Runtime Library Exception along with this program; --
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
-- <http://www.gnu.org/licenses/>. --
-- --
-- GNAT was originally developed by the GNAT team at New York University. --
-- Extensive contributions were provided by Ada Core Technologies Inc. --
-- --
------------------------------------------------------------------------------
package body System.Elaboration_Allocators is
Elaboration_In_Progress : Boolean;
pragma Atomic (Elaboration_In_Progress);
-- Flag to show if elaboration is active. We don't attempt to initialize
-- this because we want to be sure it gets reset if we are in a multiple
-- elaboration situation of some kind. Make it atomic to prevent race
-- conditions of any kind (not clearly necessary, but harmless!)
------------------------------
-- Check_Standard_Allocator --
------------------------------
procedure Check_Standard_Allocator is
begin
if not Elaboration_In_Progress then
raise Program_Error with
"standard allocator after elaboration is complete is not allowed "
& "(No_Standard_Allocators_After_Elaboration restriction active)";
end if;
end Check_Standard_Allocator;
-----------------------------
-- Mark_End_Of_Elaboration --
-----------------------------
procedure Mark_End_Of_Elaboration is
begin
Elaboration_In_Progress := False;
end Mark_End_Of_Elaboration;
-------------------------------
-- Mark_Start_Of_Elaboration --
-------------------------------
procedure Mark_Start_Of_Elaboration is
begin
Elaboration_In_Progress := True;
end Mark_Start_Of_Elaboration;
end System.Elaboration_Allocators;