aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ada/exp_imgv.adb8
-rw-r--r--gcc/ada/libgnat/s-vaen16.ads4
-rw-r--r--gcc/ada/libgnat/s-vaen32.ads4
-rw-r--r--gcc/ada/libgnat/s-vaenu8.ads4
-rw-r--r--gcc/ada/libgnat/s-valuen.adb49
-rw-r--r--gcc/ada/libgnat/s-valuen.ads14
-rw-r--r--gcc/ada/rtsfind.ads12
7 files changed, 48 insertions, 47 deletions
diff --git a/gcc/ada/exp_imgv.adb b/gcc/ada/exp_imgv.adb
index 38ee11e..6e17a5c 100644
--- a/gcc/ada/exp_imgv.adb
+++ b/gcc/ada/exp_imgv.adb
@@ -1439,17 +1439,17 @@ package body Exp_Imgv is
begin
-- Generate:
- -- Valid_Enumeration_Value _NN
+ -- Valid_Value_Enumeration_NN
-- (typS, typN'Address, typH'Unrestricted_Access, Num, X)
Ttyp := Component_Type (Etype (Lit_Indexes (Rtyp)));
if Ttyp = Standard_Integer_8 then
- Func := RE_Valid_Enumeration_Value_8;
+ Func := RE_Valid_Value_Enumeration_8;
elsif Ttyp = Standard_Integer_16 then
- Func := RE_Valid_Enumeration_Value_16;
+ Func := RE_Valid_Value_Enumeration_16;
else
- Func := RE_Valid_Enumeration_Value_32;
+ Func := RE_Valid_Value_Enumeration_32;
end if;
Prepend_To (Args,
diff --git a/gcc/ada/libgnat/s-vaen16.ads b/gcc/ada/libgnat/s-vaen16.ads
index 86cdaa1..6ea6071 100644
--- a/gcc/ada/libgnat/s-vaen16.ads
+++ b/gcc/ada/libgnat/s-vaen16.ads
@@ -49,13 +49,13 @@ package System.Val_Enum_16 is
return Natural
renames Impl.Value_Enumeration;
- function Valid_Enumeration_Value_16
+ function Valid_Value_Enumeration_16
(Names : String;
Indexes : System.Address;
Hash : Impl.Hash_Function_Ptr;
Num : Natural;
Str : String)
return Boolean
- renames Impl.Valid_Enumeration_Value;
+ renames Impl.Valid_Value_Enumeration;
end System.Val_Enum_16;
diff --git a/gcc/ada/libgnat/s-vaen32.ads b/gcc/ada/libgnat/s-vaen32.ads
index 0dead07..e1a7644 100644
--- a/gcc/ada/libgnat/s-vaen32.ads
+++ b/gcc/ada/libgnat/s-vaen32.ads
@@ -49,13 +49,13 @@ package System.Val_Enum_32 is
return Natural
renames Impl.Value_Enumeration;
- function Valid_Enumeration_Value_32
+ function Valid_Value_Enumeration_32
(Names : String;
Indexes : System.Address;
Hash : Impl.Hash_Function_Ptr;
Num : Natural;
Str : String)
return Boolean
- renames Impl.Valid_Enumeration_Value;
+ renames Impl.Valid_Value_Enumeration;
end System.Val_Enum_32;
diff --git a/gcc/ada/libgnat/s-vaenu8.ads b/gcc/ada/libgnat/s-vaenu8.ads
index db0b360..395a969 100644
--- a/gcc/ada/libgnat/s-vaenu8.ads
+++ b/gcc/ada/libgnat/s-vaenu8.ads
@@ -49,13 +49,13 @@ package System.Val_Enum_8 is
return Natural
renames Impl.Value_Enumeration;
- function Valid_Enumeration_Value_8
+ function Valid_Value_Enumeration_8
(Names : String;
Indexes : System.Address;
Hash : Impl.Hash_Function_Ptr;
Num : Natural;
Str : String)
return Boolean
- renames Impl.Valid_Enumeration_Value;
+ renames Impl.Valid_Value_Enumeration;
end System.Val_Enum_8;
diff --git a/gcc/ada/libgnat/s-valuen.adb b/gcc/ada/libgnat/s-valuen.adb
index 7b72bc6..ef613a2 100644
--- a/gcc/ada/libgnat/s-valuen.adb
+++ b/gcc/ada/libgnat/s-valuen.adb
@@ -35,6 +35,16 @@ with System.Val_Util; use System.Val_Util;
package body System.Value_N is
+ function Value_Enumeration_Pos
+ (Names : String;
+ Indexes : System.Address;
+ Hash : Hash_Function_Ptr;
+ Num : Natural;
+ Str : String)
+ return Integer with Pure_Function;
+ -- Same as Value_Enumeration, except returns negative if Value_Enumeration
+ -- would raise Constraint_Error.
+
---------------------------
-- Value_Enumeration_Pos --
---------------------------
@@ -98,9 +108,25 @@ package body System.Value_N is
end if;
end;
- return Invalid;
+ return -1;
end Value_Enumeration_Pos;
+ -----------------------------
+ -- Valid_Value_Enumeration --
+ -----------------------------
+
+ function Valid_Value_Enumeration
+ (Names : String;
+ Indexes : System.Address;
+ Hash : Hash_Function_Ptr;
+ Num : Natural;
+ Str : String)
+ return Boolean
+ is
+ begin
+ return Value_Enumeration_Pos (Names, Indexes, Hash, Num, Str) >= 0;
+ end Valid_Value_Enumeration;
+
-----------------------
-- Value_Enumeration --
-----------------------
@@ -115,28 +141,15 @@ package body System.Value_N is
is
Result : constant Integer :=
Value_Enumeration_Pos (Names, Indexes, Hash, Num, Str);
+
begin
- if Result = Invalid then
+ -- The comparison eliminates the need for a range check on return
+
+ if Result < 0 then
Bad_Value (Str);
else
return Result;
end if;
end Value_Enumeration;
- -----------------------------
- -- Valid_Enumeration_Value --
- -----------------------------
-
- function Valid_Enumeration_Value
- (Names : String;
- Indexes : System.Address;
- Hash : Hash_Function_Ptr;
- Num : Natural;
- Str : String)
- return Boolean
- is
- begin
- return Value_Enumeration_Pos (Names, Indexes, Hash, Num, Str) /= Invalid;
- end Valid_Enumeration_Value;
-
end System.Value_N;
diff --git a/gcc/ada/libgnat/s-valuen.ads b/gcc/ada/libgnat/s-valuen.ads
index 7ef0539..db8ad1d 100644
--- a/gcc/ada/libgnat/s-valuen.ads
+++ b/gcc/ada/libgnat/s-valuen.ads
@@ -67,7 +67,7 @@ package System.Value_N is
-- If the image is found in Names, then the corresponding Pos value is
-- returned. If not, Constraint_Error is raised.
- function Valid_Enumeration_Value
+ function Valid_Value_Enumeration
(Names : String;
Indexes : System.Address;
Hash : Hash_Function_Ptr;
@@ -79,16 +79,4 @@ package System.Value_N is
-- raise Constraint_Error. The parameters have the same meaning as for
-- Value_Enumeration.
- Invalid : constant Integer := -1;
-
- function Value_Enumeration_Pos
- (Names : String;
- Indexes : System.Address;
- Hash : Hash_Function_Ptr;
- Num : Natural;
- Str : String)
- return Integer with Pure_Function;
- -- Same as Value_Enumeration, except returns Invalid if Value_Enumeration
- -- would raise Constraint_Error.
-
end System.Value_N;
diff --git a/gcc/ada/rtsfind.ads b/gcc/ada/rtsfind.ads
index df51477..ad84e9e 100644
--- a/gcc/ada/rtsfind.ads
+++ b/gcc/ada/rtsfind.ads
@@ -2040,9 +2040,9 @@ package Rtsfind is
RE_Value_Enumeration_16, -- System.Val_Enum_16
RE_Value_Enumeration_32, -- System.Val_Enum_32
- RE_Valid_Enumeration_Value_8, -- System.Val_Enum_8
- RE_Valid_Enumeration_Value_16, -- System.Val_Enum_16
- RE_Valid_Enumeration_Value_32, -- System.Val_Enum_32
+ RE_Valid_Value_Enumeration_8, -- System.Val_Enum_8
+ RE_Valid_Value_Enumeration_16, -- System.Val_Enum_16
+ RE_Valid_Value_Enumeration_32, -- System.Val_Enum_32
RE_Value_Fixed32, -- System_Val_Fixed_32
@@ -3731,11 +3731,11 @@ package Rtsfind is
RE_Value_Enumeration_32 => System_Val_Enum_32,
- RE_Valid_Enumeration_Value_8 => System_Val_Enum_8,
+ RE_Valid_Value_Enumeration_8 => System_Val_Enum_8,
- RE_Valid_Enumeration_Value_16 => System_Val_Enum_16,
+ RE_Valid_Value_Enumeration_16 => System_Val_Enum_16,
- RE_Valid_Enumeration_Value_32 => System_Val_Enum_32,
+ RE_Valid_Value_Enumeration_32 => System_Val_Enum_32,
RE_Value_Fixed32 => System_Val_Fixed_32,