===================================================================
@@ -34,6 +34,7 @@
with System.UTF_32;
package Ada.Wide_Wide_Characters.Unicode is
+ pragma Pure;
-- The following type defines the categories from the unicode definitions.
-- The one addition we make is Fe, which represents the characters FFFE
===================================================================
@@ -14,6 +14,11 @@
------------------------------------------------------------------------------
package Ada.Wide_Wide_Characters.Handling is
+ pragma Pure;
+ -- This package is clearly intended to be Pure, by analogy with the
+ -- base Ada.Characters.Handling package. The version in the RM does
+ -- not yet have this pragma, but that is a clear omission. This will
+ -- be fixed in a future version of AI05-0266-1.
function Is_Control (Item : Wide_Wide_Character) return Boolean;
pragma Inline (Is_Control);
===================================================================
@@ -34,6 +34,13 @@
pragma Style_Checks (Off);
-- Allow long lines in this unit
+-- pragma Warnings (Off, "non-static constant in preelaborated unit");
+-- We need this to be pure, and the three constants in question are not a
+-- real problem, they are completely known at compile time. This pragma
+-- is commented out for now, because we still want to be able to bootstrap
+-- with old versions of the compiler that did not support this form. We
+-- have added additional pragma Warnings (Off/On) for now ???
+
package body System.UTF_32 is
----------------------
@@ -1850,6 +1857,9 @@
(16#F0000#, 16#FFFFD#), -- (Co) <Plane 15 Private Use, First> .. <Plane 15 Private Use, Last>
(16#100000#, 16#10FFFD#)); -- (Co) <Plane 16 Private Use, First> .. <Plane 16 Private Use, Last>
+ pragma Warnings (Off);
+ -- Temporary, until pragma at start can be activated ???
+
-- The following array is parallel to the Unicode_Ranges table above. For
-- each entry in the Unicode_Ranges table, there is a corresponding entry
-- in the following table indicating the corresponding unicode category.
@@ -6060,6 +6070,9 @@
40, -- DESERET CAPITAL LETTER LONG I .. DESERET CAPITAL LETTER EW
32); -- TAG LATIN CAPITAL LETTER A .. TAG LATIN CAPITAL LETTER Z
+ pragma Warnings (On);
+ -- Temporary until pragma Warnings at start can be activated ???
+
-- The following is a list of the 10646 names for CAPITAL LETTER entries
-- that have no matching SMALL LETTER entry and are thus not folded
===================================================================
@@ -44,6 +44,7 @@
pragma Compiler_Unit;
package System.UTF_32 is
+ pragma Pure;
type UTF_32 is range 0 .. 16#7FFF_FFFF#;
-- So far, the only defined character codes are in 0 .. 16#01_FFFF#
===================================================================
@@ -37,6 +37,7 @@
with System.UTF_32;
package Ada.Wide_Characters.Unicode is
+ pragma Pure;
-- The following type defines the categories from the unicode definitions.
-- The one addition we make is Fe, which represents the characters FFFE
===================================================================
@@ -14,6 +14,11 @@
------------------------------------------------------------------------------
package Ada.Wide_Characters.Handling is
+ pragma Pure;
+ -- This package is clearly intended to be Pure, by analogy with the
+ -- base Ada.Characters.Handling package. The version in the RM does
+ -- not yet have this pragma, but that is a clear omission. This will
+ -- be fixed in a future version of AI05-0266-1.
function Is_Control (Item : Wide_Character) return Boolean;
pragma Inline (Is_Control);