Commit 6d158291 by Robert Dewar Committed by Arnaud Charlet

system-unixware.ads, [...]: Minor comment update for AI-362 (unit is Pure).

2005-06-14  Robert Dewar  <dewar@adacore.com>

	* system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
	system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
	system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
	system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
	system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
	system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
	system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
	system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
	system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
	system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
	system-linux-hppa.ads, system-vms_64.ads,
	system-vxworks-alpha.ads: Minor comment update for
	AI-362 (unit is Pure).

	* a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
	Add pragma Pure_05 for AI-362
	Make remaining conversion functions obsolescent in Ada 95

	* impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
	Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
	Add entries for a-wichun and a-zchuni
	Add a-widcha a-zchara for AI-395
	Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines

	* Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
	Add entries for a-wichun.o and a-zchuni.o
	Entries for a-widcha.o and a-zchara.o
	Add entry for a-chacon.o

	* a-ztenau.adb: Add with of Ada.Characters.Conversions

	* a-chacon.ads, a-chacon.adb: New files.

	* a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
	categorization violations.

	* a-strmap.ads: Add pragma Pure_05 for AI-362
	* a-strmap.ads: Add note on implicit categorization for AI-362

	* a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362

	* par-prag.adb: Dummy entry for pragma Persistent_BSS
	Set Ada_Version_Explicit, for implementation of AI-362
	Add processing for pragma Pure_05 and Preelaborate_05
	Add entry for Assertion_Policy pragma

	* sem.adb: Make sure predefined units are compiled with GNAT_Mode true
	when needed for proper processing of categorization stuff

	* sem_cat.adb:
	For several cases, make errors in preealborate units warnings,
	instead of errors, if GNAT_Mode is set. For AI-362.

	* sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
	preelaborate unit is now warning if in GNAT mode

	* s-stoele.ads: Document AI-362 for pragma preelaborate

From-SVN: r101016
parent b497b460
...@@ -79,6 +79,7 @@ GNATRTL_NONTASKING_OBJS= \ ...@@ -79,6 +79,7 @@ GNATRTL_NONTASKING_OBJS= \
a-cgaaso$(objext) \ a-cgaaso$(objext) \
a-cgarso$(objext) \ a-cgarso$(objext) \
a-cgcaso$(objext) \ a-cgcaso$(objext) \
a-chacon$(objext) \
a-chahan$(objext) \ a-chahan$(objext) \
a-charac$(objext) \ a-charac$(objext) \
a-chlat1$(objext) \ a-chlat1$(objext) \
...@@ -205,11 +206,11 @@ GNATRTL_NONTASKING_OBJS= \ ...@@ -205,11 +206,11 @@ GNATRTL_NONTASKING_OBJS= \
a-suteio$(objext) \ a-suteio$(objext) \
a-swmwco$(objext) \ a-swmwco$(objext) \
a-swunau$(objext) \ a-swunau$(objext) \
a-swunha$(objext) \ a-swuwha$(objext) \
a-swuwti$(objext) \ a-swuwti$(objext) \
a-szmzco$(objext) \ a-szmzco$(objext) \
a-szunau$(objext) \ a-szunau$(objext) \
a-szunha$(objext) \ a-szuzha$(objext) \
a-szuzti$(objext) \ a-szuzti$(objext) \
a-tags$(objext) \ a-tags$(objext) \
a-tgdico$(objext) \ a-tgdico$(objext) \
...@@ -234,6 +235,8 @@ GNATRTL_NONTASKING_OBJS= \ ...@@ -234,6 +235,8 @@ GNATRTL_NONTASKING_OBJS= \
a-tiunio$(objext) \ a-tiunio$(objext) \
a-unccon$(objext) \ a-unccon$(objext) \
a-uncdea$(objext) \ a-uncdea$(objext) \
a-wichun$(objext) \
a-widcha$(objext) \
a-witeio$(objext) \ a-witeio$(objext) \
a-wtcoau$(objext) \ a-wtcoau$(objext) \
a-wtcoio$(objext) \ a-wtcoio$(objext) \
...@@ -253,6 +256,8 @@ GNATRTL_NONTASKING_OBJS= \ ...@@ -253,6 +256,8 @@ GNATRTL_NONTASKING_OBJS= \
a-wtmoio$(objext) \ a-wtmoio$(objext) \
a-wttest$(objext) \ a-wttest$(objext) \
a-wwunio$(objext) \ a-wwunio$(objext) \
a-zchara$(objext) \
a-zchuni$(objext) \
a-ztcoau$(objext) \ a-ztcoau$(objext) \
a-ztcoio$(objext) \ a-ztcoio$(objext) \
a-ztcstr$(objext) \ a-ztcstr$(objext) \
......
------------------------------------------------------------------------------
-- --
-- GNAT RUN-TIME COMPONENTS --
-- --
-- A D A . C H A R A C T E R S . H A N D L I N G --
-- --
-- B o d y --
-- --
-- Copyright (C) 2005 Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
-- apply solely to the contents of the part following the private keyword. --
-- --
-- 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 2, 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. See the GNU General Public License --
-- for more details. You should have received a copy of the GNU General --
-- Public License distributed with GNAT; see file COPYING. If not, write --
-- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
-- MA 02111-1307, USA. --
-- --
-- As a special exception, if other files instantiate generics from this --
-- unit, or you link this unit with other files to produce an executable, --
-- this unit does not by itself cause the resulting executable to be --
-- covered by the GNU General Public License. This exception does not --
-- however invalidate any other reasons why the executable file might be --
-- covered by the GNU Public License. --
-- --
-- GNAT was originally developed by the GNAT team at New York University. --
-- Extensive contributions were provided by Ada Core Technologies Inc. --
-- --
------------------------------------------------------------------------------
package body Ada.Characters.Conversions is
------------------
-- Is_Character --
------------------
function Is_Character (Item : Wide_Character) return Boolean is
begin
return Wide_Character'Pos (Item) < 256;
end Is_Character;
function Is_Character (Item : Wide_Wide_Character) return Boolean is
begin
return Wide_Wide_Character'Pos (Item) < 256;
end Is_Character;
---------------
-- Is_String --
---------------
function Is_String (Item : Wide_String) return Boolean is
begin
for J in Item'Range loop
if Wide_Character'Pos (Item (J)) >= 256 then
return False;
end if;
end loop;
return True;
end Is_String;
function Is_String (Item : Wide_Wide_String) return Boolean is
begin
for J in Item'Range loop
if Wide_Wide_Character'Pos (Item (J)) >= 256 then
return False;
end if;
end loop;
return True;
end Is_String;
-----------------------
-- Is_Wide_Character --
-----------------------
function Is_Wide_Character (Item : Wide_Wide_Character) return Boolean is
begin
return Wide_Wide_Character'Pos (Item) < 2**16;
end Is_Wide_Character;
--------------------
-- Is_Wide_String --
--------------------
function Is_Wide_String (Item : Wide_Wide_String) return Boolean is
begin
for J in Item'Range loop
if Wide_Wide_Character'Pos (Item (J)) >= 2**16 then
return False;
end if;
end loop;
return True;
end Is_Wide_String;
------------------
-- To_Character --
------------------
function To_Character
(Item : Wide_Character;
Substitute : Character := ' ') return Character
is
begin
if Is_Character (Item) then
return Character'Val (Wide_Character'Pos (Item));
else
return Substitute;
end if;
end To_Character;
function To_Character
(Item : Wide_Wide_Character;
Substitute : Character := ' ') return Character
is
begin
if Is_Character (Item) then
return Character'Val (Wide_Wide_Character'Pos (Item));
else
return Substitute;
end if;
end To_Character;
---------------
-- To_String --
---------------
function To_String
(Item : Wide_String;
Substitute : Character := ' ') return String
is
Result : String (1 .. Item'Length);
begin
for J in Item'Range loop
Result (J - (Item'First - 1)) := To_Character (Item (J), Substitute);
end loop;
return Result;
end To_String;
function To_String
(Item : Wide_Wide_String;
Substitute : Character := ' ') return String
is
Result : String (1 .. Item'Length);
begin
for J in Item'Range loop
Result (J - (Item'First - 1)) := To_Character (Item (J), Substitute);
end loop;
return Result;
end To_String;
-----------------------
-- To_Wide_Character --
-----------------------
function To_Wide_Character
(Item : Character) return Wide_Character
is
begin
return Wide_Character'Val (Character'Pos (Item));
end To_Wide_Character;
function To_Wide_Character
(Item : Wide_Wide_Character;
Substitute : Wide_Character := ' ') return Wide_Character
is
begin
if Wide_Wide_Character'Pos (Item) < 2**16 then
return Wide_Character'Val (Wide_Wide_Character'Pos (Item));
else
return Substitute;
end if;
end To_Wide_Character;
--------------------
-- To_Wide_String --
--------------------
function To_Wide_String
(Item : String) return Wide_String
is
Result : Wide_String (1 .. Item'Length);
begin
for J in Item'Range loop
Result (J - (Item'First - 1)) := To_Wide_Character (Item (J));
end loop;
return Result;
end To_Wide_String;
function To_Wide_String
(Item : Wide_Wide_String;
Substitute : Wide_Character := ' ') return Wide_String
is
Result : Wide_String (1 .. Item'Length);
begin
for J in Item'Range loop
Result (J - (Item'First - 1)) :=
To_Wide_Character (Item (J), Substitute);
end loop;
return Result;
end To_Wide_String;
----------------------------
-- To_Wide_Wide_Character --
----------------------------
function To_Wide_Wide_Character
(Item : Character) return Wide_Wide_Character
is
begin
return Wide_Wide_Character'Val (Character'Pos (Item));
end To_Wide_Wide_Character;
function To_Wide_Wide_Character
(Item : Wide_Character) return Wide_Wide_Character
is
begin
return Wide_Wide_Character'Val (Wide_Character'Pos (Item));
end To_Wide_Wide_Character;
-------------------------
-- To_Wide_Wide_String --
-------------------------
function To_Wide_Wide_String
(Item : String) return Wide_Wide_String
is
Result : Wide_Wide_String (1 .. Item'Length);
begin
for J in Item'Range loop
Result (J - (Item'First - 1)) := To_Wide_Wide_Character (Item (J));
end loop;
return Result;
end To_Wide_Wide_String;
function To_Wide_Wide_String
(Item : Wide_String) return Wide_Wide_String
is
Result : Wide_Wide_String (1 .. Item'Length);
begin
for J in Item'Range loop
Result (J - (Item'First - 1)) := To_Wide_Wide_Character (Item (J));
end loop;
return Result;
end To_Wide_Wide_String;
end Ada.Characters.Conversions;
------------------------------------------------------------------------------
-- --
-- GNAT RUN-TIME COMPONENTS --
-- --
-- A D A . C H A R A C T E R S . H A N D L I N G --
-- --
-- S p e c --
-- --
-- Copyright (C) 2005 Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
-- apply solely to the contents of the part following the private keyword. --
-- --
-- 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 2, 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. See the GNU General Public License --
-- for more details. You should have received a copy of the GNU General --
-- Public License distributed with GNAT; see file COPYING. If not, write --
-- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
-- MA 02111-1307, USA. --
-- --
-- As a special exception, if other files instantiate generics from this --
-- unit, or you link this unit with other files to produce an executable, --
-- this unit does not by itself cause the resulting executable to be --
-- covered by the GNU General Public License. This exception does not --
-- however invalidate any other reasons why the executable file might be --
-- covered by the GNU Public License. --
-- --
-- GNAT was originally developed by the GNAT team at New York University. --
-- Extensive contributions were provided by Ada Core Technologies Inc. --
-- --
------------------------------------------------------------------------------
package Ada.Characters.Conversions is
pragma Pure (Conversions);
function Is_Character (Item : Wide_Character) return Boolean;
function Is_String (Item : Wide_String) return Boolean;
function Is_Character (Item : Wide_Wide_Character) return Boolean;
function Is_String (Item : Wide_Wide_String) return Boolean;
function Is_Wide_Character (Item : Wide_Wide_Character) return Boolean;
function Is_Wide_String (Item : Wide_Wide_String) return Boolean;
function To_Wide_Character (Item : Character) return Wide_Character;
function To_Wide_String (Item : String) return Wide_String;
function To_Wide_Wide_Character
(Item : Character) return Wide_Wide_Character;
function To_Wide_Wide_String
(Item : String) return Wide_Wide_String;
function To_Wide_Wide_Character
(Item : Wide_Character) return Wide_Wide_Character;
function To_Wide_Wide_String
(Item : Wide_String) return Wide_Wide_String;
function To_Character
(Item : Wide_Character;
Substitute : Character := ' ') return Character;
function To_String
(Item : Wide_String;
Substitute : Character := ' ') return String;
function To_Character
(Item : Wide_Wide_Character;
Substitute : Character := ' ') return Character;
function To_String
(Item : Wide_Wide_String;
Substitute : Character := ' ') return String;
function To_Wide_Character
(Item : Wide_Wide_Character;
Substitute : Wide_Character := ' ') return Wide_Character;
function To_Wide_String
(Item : Wide_Wide_String;
Substitute : Wide_Character := ' ') return Wide_String;
end Ada.Characters.Conversions;
...@@ -304,11 +304,6 @@ package body Ada.Characters.Handling is ...@@ -304,11 +304,6 @@ package body Ada.Characters.Handling is
return Wide_Character'Pos (Item) < 256; return Wide_Character'Pos (Item) < 256;
end Is_Character; end Is_Character;
function Is_Character (Item : Wide_Wide_Character) return Boolean is
begin
return Wide_Wide_Character'Pos (Item) < 256;
end Is_Character;
---------------- ----------------
-- Is_Control -- -- Is_Control --
---------------- ----------------
...@@ -410,17 +405,6 @@ package body Ada.Characters.Handling is ...@@ -410,17 +405,6 @@ package body Ada.Characters.Handling is
return True; return True;
end Is_String; end Is_String;
function Is_String (Item : Wide_Wide_String) return Boolean is
begin
for J in Item'Range loop
if Wide_Wide_Character'Pos (Item (J)) >= 256 then
return False;
end if;
end loop;
return True;
end Is_String;
-------------- --------------
-- Is_Upper -- -- Is_Upper --
-------------- --------------
...@@ -430,30 +414,6 @@ package body Ada.Characters.Handling is ...@@ -430,30 +414,6 @@ package body Ada.Characters.Handling is
return (Char_Map (Item) and Upper) /= 0; return (Char_Map (Item) and Upper) /= 0;
end Is_Upper; end Is_Upper;
-----------------------
-- Is_Wide_Character --
-----------------------
function Is_Wide_Character (Item : Wide_Wide_Character) return Boolean is
begin
return Wide_Wide_Character'Pos (Item) < 2**16;
end Is_Wide_Character;
--------------------
-- Is_Wide_String --
--------------------
function Is_Wide_String (Item : Wide_Wide_String) return Boolean is
begin
for J in Item'Range loop
if Wide_Wide_Character'Pos (Item (J)) >= 2**16 then
return False;
end if;
end loop;
return True;
end Is_Wide_String;
-------------- --------------
-- To_Basic -- -- To_Basic --
-------------- --------------
...@@ -490,18 +450,6 @@ package body Ada.Characters.Handling is ...@@ -490,18 +450,6 @@ package body Ada.Characters.Handling is
end if; end if;
end To_Character; end To_Character;
function To_Character
(Item : Wide_Wide_Character;
Substitute : Character := ' ') return Character
is
begin
if Is_Character (Item) then
return Character'Val (Wide_Wide_Character'Pos (Item));
else
return Substitute;
end if;
end To_Character;
---------------- ----------------
-- To_ISO_646 -- -- To_ISO_646 --
---------------- ----------------
...@@ -574,20 +522,6 @@ package body Ada.Characters.Handling is ...@@ -574,20 +522,6 @@ package body Ada.Characters.Handling is
return Result; return Result;
end To_String; end To_String;
function To_String
(Item : Wide_Wide_String;
Substitute : Character := ' ') return String
is
Result : String (1 .. Item'Length);
begin
for J in Item'Range loop
Result (J - (Item'First - 1)) := To_Character (Item (J), Substitute);
end loop;
return Result;
end To_String;
-------------- --------------
-- To_Upper -- -- To_Upper --
-------------- --------------
...@@ -623,18 +557,6 @@ package body Ada.Characters.Handling is ...@@ -623,18 +557,6 @@ package body Ada.Characters.Handling is
return Wide_Character'Val (Character'Pos (Item)); return Wide_Character'Val (Character'Pos (Item));
end To_Wide_Character; end To_Wide_Character;
function To_Wide_Character
(Item : Wide_Wide_Character;
Substitute : Wide_Character := ' ') return Wide_Character
is
begin
if Wide_Wide_Character'Pos (Item) < 2**16 then
return Wide_Character'Val (Wide_Wide_Character'Pos (Item));
else
return Substitute;
end if;
end To_Wide_Character;
-------------------- --------------------
-- To_Wide_String -- -- To_Wide_String --
-------------------- --------------------
...@@ -652,67 +574,4 @@ package body Ada.Characters.Handling is ...@@ -652,67 +574,4 @@ package body Ada.Characters.Handling is
return Result; return Result;
end To_Wide_String; end To_Wide_String;
function To_Wide_String
(Item : Wide_Wide_String;
Substitute : Wide_Character := ' ') return Wide_String
is
Result : Wide_String (1 .. Item'Length);
begin
for J in Item'Range loop
Result (J - (Item'First - 1)) :=
To_Wide_Character (Item (J), Substitute);
end loop;
return Result;
end To_Wide_String;
----------------------------
-- To_Wide_Wide_Character --
----------------------------
function To_Wide_Wide_Character
(Item : Character) return Wide_Wide_Character
is
begin
return Wide_Wide_Character'Val (Character'Pos (Item));
end To_Wide_Wide_Character;
function To_Wide_Wide_Character
(Item : Wide_Character) return Wide_Wide_Character
is
begin
return Wide_Wide_Character'Val (Wide_Character'Pos (Item));
end To_Wide_Wide_Character;
-------------------------
-- To_Wide_Wide_String --
-------------------------
function To_Wide_Wide_String
(Item : String) return Wide_Wide_String
is
Result : Wide_Wide_String (1 .. Item'Length);
begin
for J in Item'Range loop
Result (J - (Item'First - 1)) := To_Wide_Wide_Character (Item (J));
end loop;
return Result;
end To_Wide_Wide_String;
function To_Wide_Wide_String
(Item : Wide_String) return Wide_Wide_String
is
Result : Wide_Wide_String (1 .. Item'Length);
begin
for J in Item'Range loop
Result (J - (Item'First - 1)) := To_Wide_Wide_Character (Item (J));
end loop;
return Result;
end To_Wide_Wide_String;
end Ada.Characters.Handling; end Ada.Characters.Handling;
...@@ -35,9 +35,10 @@ ...@@ -35,9 +35,10 @@
-- -- -- --
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
package Ada.Characters.Handling is package Ada.Characters.Handling is
pragma Preelaborate (Handling); pragma Preelaborate (Handling);
pragma Pure_05 (Handling);
-- In accordance with Ada 2005 AI-362
---------------------------------------- ----------------------------------------
-- Character Classification Functions -- -- Character Classification Functions --
...@@ -90,54 +91,49 @@ pragma Preelaborate (Handling); ...@@ -90,54 +91,49 @@ pragma Preelaborate (Handling);
-- Classifications of Wide_Character and Characters -- -- Classifications of Wide_Character and Characters --
------------------------------------------------------ ------------------------------------------------------
function Is_Character (Item : Wide_Character) return Boolean; -- Ada 2005 AI 395: these functions are moved to Ada.Characters.Conversions
function Is_Character (Item : Wide_Wide_Character) return Boolean; -- and are considered obsolete in Ada.Characters.Handling. We deal with
function Is_String (Item : Wide_String) return Boolean; -- this by using the special Ada_05 form of pragma Obsolescent which is
function Is_String (Item : Wide_Wide_String) return Boolean; -- only active in Ada_05 mode.
function Is_Wide_Character (Item : Wide_Wide_Character) return Boolean;
function Is_Wide_String (Item : Wide_Wide_String) return Boolean;
--------------------------------------------------------------------------- function Is_Character (Item : Wide_Character) return Boolean;
-- Conversions between Wide_Wide_Character, Wide_Character and Character -- pragma Obsolescent
--------------------------------------------------------------------------- ("(Ada 2005) use Ada.Characters.Conversions.Is_Character", Ada_05);
function To_Character function Is_String (Item : Wide_String) return Boolean;
(Item : Wide_Character; pragma Obsolescent
Substitute : Character := ' ') return Character; ("(Ada 2005) use Ada.Characters.Conversions.Is_String", Ada_05);
------------------------------------------------------
-- Conversions between Wide_Character and Character --
------------------------------------------------------
-- Ada 2005 AI 395: these functions are moved to Ada.Characters.Conversions
-- and are considered obsolete in Ada.Characters.Handling. We deal with
-- this by using the special Ada_05 form of pragma Obsolescent which is
-- only active in Ada_05 mode.
function To_Character function To_Character
(Item : Wide_Wide_Character; (Item : Wide_Character;
Substitute : Character := ' ') return Character; Substitute : Character := ' ') return Character;
pragma Obsolescent
("(Ada 2005) use Ada.Characters.Conversions.To_Character", Ada_05);
function To_String function To_String
(Item : Wide_String; (Item : Wide_String;
Substitute : Character := ' ') return String; Substitute : Character := ' ') return String;
pragma Obsolescent
function To_String ("(Ada 2005) use Ada.Characters.Conversions.To_String", Ada_05);
(Item : Wide_Wide_String;
Substitute : Character := ' ') return String;
function To_Wide_Character function To_Wide_Character
(Item : Character) return Wide_Character; (Item : Character) return Wide_Character;
function To_Wide_Character pragma Obsolescent
(Item : Wide_Wide_Character; ("(Ada 2005) use Ada.Characters.Conversions.To_Wide_Character", Ada_05);
Substitute : Wide_Character := ' ') return Wide_Character;
function To_Wide_String function To_Wide_String
(Item : String) return Wide_String; (Item : String)return Wide_String;
function To_Wide_String pragma Obsolescent
(Item : Wide_Wide_String; ("(Ada 2005) use Ada.Characters.Conversions.To_Wide_String", Ada_05);
Substitute : Wide_Character := ' ') return Wide_String;
function To_Wide_Wide_Character
(Item : Character) return Wide_Wide_Character;
function To_Wide_Wide_Character
(Item : Wide_Character) return Wide_Wide_Character;
function To_Wide_Wide_String
(Item : String) return Wide_Wide_String;
function To_Wide_Wide_String
(Item : Wide_String) return Wide_Wide_String;
private private
pragma Inline (Is_Control); pragma Inline (Is_Control);
...@@ -157,6 +153,5 @@ private ...@@ -157,6 +153,5 @@ private
pragma Inline (Is_Character); pragma Inline (Is_Character);
pragma Inline (To_Character); pragma Inline (To_Character);
pragma Inline (To_Wide_Character); pragma Inline (To_Wide_Character);
pragma Inline (To_Wide_Wide_Character);
end Ada.Characters.Handling; end Ada.Characters.Handling;
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 1992-2003 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 -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -31,8 +31,15 @@ ...@@ -31,8 +31,15 @@
-- -- -- --
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
pragma Warnings (Off);
-- Allow withing of non-Preelaborated units in Ada 2005 mode where this
-- package will be categorized as Preelaborate. See AI-362 for details.
-- It is safe in the context of the run-time to violate the rules!
with System.Traceback; with System.Traceback;
pragma Warnings (On);
separate (Ada.Exceptions) separate (Ada.Exceptions)
procedure Call_Chain (Excep : EOA) is procedure Call_Chain (Excep : EOA) is
...@@ -42,7 +49,6 @@ procedure Call_Chain (Excep : EOA) is ...@@ -42,7 +49,6 @@ procedure Call_Chain (Excep : EOA) is
-- occurrences. -- occurrences.
begin begin
if Exception_Tracebacks /= 0 and Excep.Num_Tracebacks = 0 then if Exception_Tracebacks /= 0 and Excep.Num_Tracebacks = 0 then
-- If Exception_Tracebacks = 0 then the program was not -- If Exception_Tracebacks = 0 then the program was not
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 1992-2003 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 -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -31,9 +31,16 @@ ...@@ -31,9 +31,16 @@
-- -- -- --
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
pragma Warnings (Off);
-- Allow withing of non-Preelaborated units in Ada 2005 mode where this
-- package will be categorized as Preelaborate. See AI-362 for details.
-- It is safe in the context of the run-time to violate the rules!
with System.Exception_Table; use System.Exception_Table; with System.Exception_Table; use System.Exception_Table;
with System.Storage_Elements; use System.Storage_Elements; with System.Storage_Elements; use System.Storage_Elements;
pragma Warnings (On);
separate (Ada.Exceptions) separate (Ada.Exceptions)
package body Stream_Attributes is package body Stream_Attributes is
......
...@@ -39,6 +39,8 @@ with Ada.Characters.Latin_1; ...@@ -39,6 +39,8 @@ with Ada.Characters.Latin_1;
package Ada.Strings.Maps is package Ada.Strings.Maps is
pragma Preelaborate (Maps); pragma Preelaborate (Maps);
pragma Pure_05 (Maps);
-- In accordance with Ada 2005 AI-362
-------------------------------- --------------------------------
-- Character Set Declarations -- -- Character Set Declarations --
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 1992-2004 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 -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -31,6 +31,11 @@ ...@@ -31,6 +31,11 @@
-- -- -- --
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
pragma Warnings (Off);
-- Allow withing of non-Preelaborated units in Ada 2005 mode where this
-- package will be categorized as Preelaborate. See AI-362 for details.
-- It is safe in the context of the run-time to violate the rules!
with System.Address_Image; with System.Address_Image;
-- used for the function itself -- used for the function itself
...@@ -49,6 +54,8 @@ with System.Task_Primitives.Operations; ...@@ -49,6 +54,8 @@ with System.Task_Primitives.Operations;
with Unchecked_Conversion; with Unchecked_Conversion;
pragma Warnings (Off);
package body Ada.Task_Identification is package body Ada.Task_Identification is
----------------------- -----------------------
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- S p e c -- -- S p e c --
-- -- -- --
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. -- -- Copyright (C) 1992-2005 Free Software Foundation, Inc. --
-- -- -- --
-- This specification is derived from the Ada Reference Manual for use with -- -- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow -- -- GNAT. The copyright notice above, and the license provisions that follow --
...@@ -35,10 +35,19 @@ ...@@ -35,10 +35,19 @@
-- -- -- --
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
pragma Warnings (Off);
-- Allow withing of non-Preelaborated units in Ada 2005 mode where this
-- package will be categorized as Preelaborate. See AI-362 for details.
-- It is safe in the context of the run-time to violate the rules!
with System; with System;
with System.Tasking; with System.Tasking;
pragma Warnings (On);
package Ada.Task_Identification is package Ada.Task_Identification is
pragma Preelaborate_05 (Task_Identification);
-- In accordance with Ada 2005 AI-362
type Task_Id is private; type Task_Id is private;
...@@ -66,6 +75,13 @@ private ...@@ -66,6 +75,13 @@ private
type Task_Id is new System.Tasking.Task_Id; type Task_Id is new System.Tasking.Task_Id;
pragma Warnings (Off);
-- Allow non-static constant in Ada 2005 mode where this package will be
-- categorized as Preelaborate. See AI-362 for details. It is safe in the
-- context of the run-time to violate the rules!
Null_Task_Id : constant Task_Id := Task_Id (System.Tasking.Null_Task); Null_Task_Id : constant Task_Id := Task_Id (System.Tasking.Null_Task);
pragma Warnings (On);
end Ada.Task_Identification; end Ada.Task_Identification;
...@@ -13,6 +13,9 @@ ...@@ -13,6 +13,9 @@
-- -- -- --
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
pragma Warnings (Off);
-- Turn of categorization warnings
generic generic
type T (<>) is abstract tagged limited private; type T (<>) is abstract tagged limited private;
type Parameters (<>) is limited private; type Parameters (<>) is limited private;
...@@ -20,10 +23,9 @@ generic ...@@ -20,10 +23,9 @@ generic
function Ada.Tags.Generic_Dispatching_Constructor function Ada.Tags.Generic_Dispatching_Constructor
(The_Tag : Tag; Params : access Parameters) return T'Class; (The_Tag : Tag; Params : access Parameters) return T'Class;
pragma Preelaborate_05 (Generic_Dispatching_Constructor);
-- pragma Preelaborate (Generic_Dispatching_Constructor);
-- Commented out temporarily because various other predefined units do not
-- yet have proper categorization as specified by AI-362 (such as Ada.Tags,
-- Ada.Exceptions, etc.).
pragma Import (Intrinsic, Generic_Dispatching_Constructor); pragma Import (Intrinsic, Generic_Dispatching_Constructor);
-- Note: the reason that we use Preelaborate_05 here is so that this will
-- compile fine during the normal build procedures. In Ada 2005 mode (which
-- is required for this package anyway), this will be treated as Preelaborate
-- so everything will be fine.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
-- -- -- --
-- GNAT RUNTIME COMPONENTS -- -- GNAT RUN-TIME COMPONENTS --
-- -- -- --
-- A D A . W I D E _ W I D E _ T E X T _ I O . E N U M E R A T I O N _ A U X-- -- A D A . W I D E _ W I D E _ T E X T _ I O . E N U M E R A T I O N _ A U X--
-- -- -- --
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
with Ada.Wide_Wide_Text_IO.Generic_Aux; use Ada.Wide_Wide_Text_IO.Generic_Aux; with Ada.Wide_Wide_Text_IO.Generic_Aux; use Ada.Wide_Wide_Text_IO.Generic_Aux;
with Ada.Characters.Conversions; use Ada.Characters.Conversions;
with Ada.Characters.Handling; use Ada.Characters.Handling; with Ada.Characters.Handling; use Ada.Characters.Handling;
with Interfaces.C_Streams; use Interfaces.C_Streams; with Interfaces.C_Streams; use Interfaces.C_Streams;
with System.WCh_Con; use System.WCh_Con; with System.WCh_Con; use System.WCh_Con;
......
...@@ -157,6 +157,13 @@ package body Impunit is ...@@ -157,6 +157,13 @@ package body Impunit is
"a-tiocst", -- Ada.Text_IO.C_Streams "a-tiocst", -- Ada.Text_IO.C_Streams
"a-wtcstr", -- Ada.Wide_Text_IO.C_Streams "a-wtcstr", -- Ada.Wide_Text_IO.C_Streams
-- Note: strictly the next two should be Ada 2005 units, but it seems
-- harmless (and useful) to make then available in Ada 95 mode, since
-- they only deal with Wide_Character, not Wide_Wide_Character.
"a-wichun", -- Ada.Wide_Characters.Unicode
"a-widcha", -- Ada.Wide_Characters
--------------------------- ---------------------------
-- GNAT Special IO Units -- -- GNAT Special IO Units --
--------------------------- ---------------------------
...@@ -326,6 +333,7 @@ package body Impunit is ...@@ -326,6 +333,7 @@ package body Impunit is
"a-cgaaso", -- Ada.Containers.Generic_Anonymous_Array_Sort "a-cgaaso", -- Ada.Containers.Generic_Anonymous_Array_Sort
"a-cgarso", -- Ada.Containers.Generic_Array_Sort "a-cgarso", -- Ada.Containers.Generic_Array_Sort
"a-cgcaso", -- Ada.Containers.Generic_Constrained_Array_Sort "a-cgcaso", -- Ada.Containers.Generic_Constrained_Array_Sort
"a-chacon", -- Ada.Characters.Conversions
"a-chtgke", -- Ada.Containers.Hash_Tables.Generic_Keys "a-chtgke", -- Ada.Containers.Hash_Tables.Generic_Keys
"a-chtgop", -- Ada.Containers.Hash_Tables.Generic_Operations "a-chtgop", -- Ada.Containers.Hash_Tables.Generic_Operations
"a-cidlli", -- Ada.Containers.Indefinite_Doubly_Linked_Lists "a-cidlli", -- Ada.Containers.Indefinite_Doubly_Linked_Lists
...@@ -360,12 +368,14 @@ package body Impunit is ...@@ -360,12 +368,14 @@ package body Impunit is
"a-stzhas", -- Ada.Strings.Wide_Wide_Hash "a-stzhas", -- Ada.Strings.Wide_Wide_Hash
"a-stzmap", -- Ada.Strings.Wide_Wide_Maps "a-stzmap", -- Ada.Strings.Wide_Wide_Maps
"a-stzunb", -- Ada.Strings.Wide_Wide_Unbounded "a-stzunb", -- Ada.Strings.Wide_Wide_Unbounded
"a-swunha", -- Ada.Strings.Wide_Unbounded.Hash "a-swuwha", -- Ada.Strings.Wide_Unbounded.Wide_Hash
"a-szmzco", -- Ada.Strings.Wide_Wide_Maps.Wide_Wide_Constants; "a-szmzco", -- Ada.Strings.Wide_Wide_Maps.Wide_Wide_Constants;
"a-szunha", -- Ada.Strings.Wide_Wide_Unbounded.Hash "a-szuzha", -- Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Hash
"a-tgdico", -- Ada.Tags.Generic_Dispatching_Constructor; "a-tgdico", -- Ada.Tags.Generic_Dispatching_Constructor;
"a-tiunio", -- Ada.Text_IO.Unbounded_IO; "a-tiunio", -- Ada.Text_IO.Unbounded_IO;
"a-wichun", -- Ada.Wide_Characters.Unicode
"a-wwunio", -- Ada.Wide_Text_IO.Wide_Unbounded_IO; "a-wwunio", -- Ada.Wide_Text_IO.Wide_Unbounded_IO;
"a-zchara", -- Ada.Wide_Wide_Characters
"a-zttest", -- Ada.Wide_Wide_Text_IO.Text_Streams "a-zttest", -- Ada.Wide_Wide_Text_IO.Text_Streams
"a-ztexio", -- Ada.Wide_Wide_Text_IO "a-ztexio", -- Ada.Wide_Wide_Text_IO
"a-zzunio", -- Ada.Wide_Wide_Text_IO.Wide_Wide_Unbounded_IO "a-zzunio", -- Ada.Wide_Wide_Text_IO.Wide_Wide_Unbounded_IO
...@@ -390,6 +400,7 @@ package body Impunit is ...@@ -390,6 +400,7 @@ package body Impunit is
"a-chzla1", -- Ada.Characters.Wide_Wide_Latin_1 "a-chzla1", -- Ada.Characters.Wide_Wide_Latin_1
"a-chzla9", -- Ada.Characters.Wide_Wide_Latin_9 "a-chzla9", -- Ada.Characters.Wide_Wide_Latin_9
"a-szuzti", -- Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO "a-szuzti", -- Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO
"a-zchuni", -- Ada.Wide_Wide_Characters.Unicode
--------------------------- ---------------------------
-- GNAT Special IO Units -- -- GNAT Special IO Units --
......
...@@ -288,6 +288,7 @@ begin ...@@ -288,6 +288,7 @@ begin
when Pragma_Ada_83 => when Pragma_Ada_83 =>
Ada_Version := Ada_83; Ada_Version := Ada_83;
Ada_Version_Explicit := Ada_Version;
------------ ------------
-- Ada_95 -- -- Ada_95 --
...@@ -299,6 +300,7 @@ begin ...@@ -299,6 +300,7 @@ begin
when Pragma_Ada_95 => when Pragma_Ada_95 =>
Ada_Version := Ada_95; Ada_Version := Ada_95;
Ada_Version_Explicit := Ada_Version;
------------ ------------
-- Ada_05 -- -- Ada_05 --
...@@ -312,6 +314,7 @@ begin ...@@ -312,6 +314,7 @@ begin
when Pragma_Ada_05 => when Pragma_Ada_05 =>
if Arg_Count = 0 then if Arg_Count = 0 then
Ada_Version := Ada_05; Ada_Version := Ada_05;
Ada_Version_Explicit := Ada_Version;
end if; end if;
----------- -----------
...@@ -370,6 +373,8 @@ begin ...@@ -370,6 +373,8 @@ begin
Ada_Version := Ada_Version_Type'Min (Ada_Version, Ada_95); Ada_Version := Ada_Version_Type'Min (Ada_Version, Ada_95);
end if; end if;
Ada_Version_Explicit := Ada_Version;
---------------- ----------------
-- List (2.8) -- -- List (2.8) --
---------------- ----------------
...@@ -984,6 +989,7 @@ begin ...@@ -984,6 +989,7 @@ begin
-- entirely in Sem_Prag, and no further checking is done by Par. -- entirely in Sem_Prag, and no further checking is done by Par.
when Pragma_Abort_Defer | when Pragma_Abort_Defer |
Pragma_Assertion_Policy |
Pragma_AST_Entry | Pragma_AST_Entry |
Pragma_All_Calls_Remote | Pragma_All_Calls_Remote |
Pragma_Annotate | Pragma_Annotate |
...@@ -1066,15 +1072,16 @@ begin ...@@ -1066,15 +1072,16 @@ begin
Pragma_Pack | Pragma_Pack |
Pragma_Passive | Pragma_Passive |
Pragma_Polling | Pragma_Polling |
Pragma_Persistent_Data | Pragma_Persistent_BSS |
Pragma_Persistent_Object |
Pragma_Preelaborate | Pragma_Preelaborate |
Pragma_Preelaborate_05 |
Pragma_Priority | Pragma_Priority |
Pragma_Profile | Pragma_Profile |
Pragma_Profile_Warnings | Pragma_Profile_Warnings |
Pragma_Propagate_Exceptions | Pragma_Propagate_Exceptions |
Pragma_Psect_Object | Pragma_Psect_Object |
Pragma_Pure | Pragma_Pure |
Pragma_Pure_05 |
Pragma_Pure_Function | Pragma_Pure_Function |
Pragma_Queuing_Policy | Pragma_Queuing_Policy |
Pragma_Remote_Call_Interface | Pragma_Remote_Call_Interface |
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- S p e c -- -- S p e c --
-- -- -- --
-- Copyright (C) 2002-2004 Free Software Foundation, Inc. -- -- Copyright (C) 2002-2005 Free Software Foundation, Inc. --
-- -- -- --
-- This specification is derived from the Ada Reference Manual for use with -- -- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow -- -- GNAT. The copyright notice above, and the license provisions that follow --
...@@ -42,7 +42,8 @@ ...@@ -42,7 +42,8 @@
package System.Storage_Elements is package System.Storage_Elements is
pragma Pure (Storage_Elements); pragma Pure (Storage_Elements);
-- Note that we take advantage of the implementation permission to make -- Note that we take advantage of the implementation permission to make
-- this unit Pure instead of Preelaborable; see RM 13.7.1(15). -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005,
-- this is Pure in any case (AI-362).
-- We also add the pragma Pure_Function to the operations in this package, -- We also add the pragma Pure_Function to the operations in this package,
-- because otherwise functions with parameters derived from Address are -- because otherwise functions with parameters derived from Address are
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 1992-2004, 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 -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -1218,7 +1218,7 @@ package body Sem is ...@@ -1218,7 +1218,7 @@ package body Sem is
S_New_Nodes_OK : constant Int := New_Nodes_OK; S_New_Nodes_OK : constant Int := New_Nodes_OK;
S_Outer_Gen_Scope : constant Entity_Id := Outer_Generic_Scope; S_Outer_Gen_Scope : constant Entity_Id := Outer_Generic_Scope;
S_Sem_Unit : constant Unit_Number_Type := Current_Sem_Unit; S_Sem_Unit : constant Unit_Number_Type := Current_Sem_Unit;
S_GNAT_Mode : constant Boolean := GNAT_Mode;
Generic_Main : constant Boolean := Generic_Main : constant Boolean :=
Nkind (Unit (Cunit (Main_Unit))) Nkind (Unit (Cunit (Main_Unit)))
in N_Generic_Declaration; in N_Generic_Declaration;
...@@ -1270,6 +1270,21 @@ package body Sem is ...@@ -1270,6 +1270,21 @@ package body Sem is
Compiler_State := Analyzing; Compiler_State := Analyzing;
Current_Sem_Unit := Get_Cunit_Unit_Number (Comp_Unit); Current_Sem_Unit := Get_Cunit_Unit_Number (Comp_Unit);
-- Compile predefined units with GNAT_Mode set to True, to properly
-- process the categorization stuff. However, do not set set GNAT_Mode
-- to True for the renamings units (Text_IO, IO_Exceptions, Direct_IO,
-- Sequential_IO) as this would prevent pragma System_Extend to be
-- taken into account, for example when Text_IO is renaming DEC.Text_IO.
-- Cleaner might be to do the kludge at the point of excluding the
-- pragma (do not exclude for renamings ???)
GNAT_Mode :=
GNAT_Mode
or else Is_Predefined_File_Name
(Unit_File_Name (Current_Sem_Unit),
Renamings_Included => False);
if Generic_Main then if Generic_Main then
Expander_Mode_Save_And_Set (False); Expander_Mode_Save_And_Set (False);
else else
...@@ -1315,6 +1330,7 @@ package body Sem is ...@@ -1315,6 +1330,7 @@ package body Sem is
Inside_A_Generic := S_Inside_A_Generic; Inside_A_Generic := S_Inside_A_Generic;
New_Nodes_OK := S_New_Nodes_OK; New_Nodes_OK := S_New_Nodes_OK;
Outer_Generic_Scope := S_Outer_Gen_Scope; Outer_Generic_Scope := S_Outer_Gen_Scope;
GNAT_Mode := S_GNAT_Mode;
Restore_Opt_Config_Switches (Save_Config_Switches); Restore_Opt_Config_Switches (Save_Config_Switches);
Expander_Mode_Restore; Expander_Mode_Restore;
......
...@@ -1051,8 +1051,17 @@ package body Sem_Elab is ...@@ -1051,8 +1051,17 @@ package body Sem_Elab is
and then In_Preelaborated_Unit and then In_Preelaborated_Unit
and then not In_Inlined_Body and then not In_Inlined_Body
then then
Error_Msg_N -- This is a warning in -gnatg mode allowing such calls to
("non-static call not allowed in preelaborated unit", N); -- be used in the predefined library with appropriate care.
if GNAT_Mode then
Error_Msg_N
("?non-static call not allowed in preelaborated unit", N);
else
Error_Msg_N
("non-static call not allowed in preelaborated unit", N);
end if;
return; return;
end if; end if;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
...@@ -43,8 +43,9 @@ ...@@ -43,8 +43,9 @@
package System is package System is
pragma Pure (System); pragma Pure (System);
-- Note that we take advantage of the implementation permission to -- Note that we take advantage of the implementation permission to make this
-- make this unit Pure instead of Preelaborable, see RM 13.7(36) -- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is
-- Pure in any case (AI-362).
type Name is (SYSTEM_NAME_GNAT); type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT; System_Name : constant Name := SYSTEM_NAME_GNAT;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment