diff options
-rw-r--r-- | gcc/ada/exp_imgv.adb | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/ada/exp_imgv.adb b/gcc/ada/exp_imgv.adb index 6e17a5c..d2605fb 100644 --- a/gcc/ada/exp_imgv.adb +++ b/gcc/ada/exp_imgv.adb @@ -37,6 +37,8 @@ with Namet; use Namet; with Nmake; use Nmake; with Nlists; use Nlists; with Opt; use Opt; +with Restrict; use Restrict; +with Rident; use Rident; with Rtsfind; use Rtsfind; with Sem_Aux; use Sem_Aux; with Sem_Res; use Sem_Res; @@ -160,6 +162,8 @@ package body Exp_Imgv is Expression => Make_Aggregate (Loc, Expressions => V))); end Append_Table_To; + -- Start of Build_Enumeration_Image_Tables + begin -- Nothing to do for types other than a root enumeration type @@ -247,7 +251,7 @@ package body Exp_Imgv is Append_Table_To (Act, Eind, Nlit, Ityp, Ind); -- If the number of literals is not greater than Threshold, then we are - -- done. Otherwise we compute a (perfect) hash function for use by the + -- done. Otherwise we generate a (perfect) hash function for use by the -- Value attribute. if Nlit > Threshold then @@ -283,11 +287,12 @@ package body Exp_Imgv is -- If the unit where the type is declared is the main unit, and the -- number of literals is greater than Threshold_For_Size when we are - -- optimizing for size, and -gnatd_h is not specified, try to compute - -- the hash function. + -- optimizing for size, and the restriction No_Implicit_Loops is not + -- active, and -gnatd_h is not specified, generate the hash function. if In_Main_Unit and then (Optimize_Size = 0 or else Nlit > Threshold_For_Size) + and then not Restriction_Active (No_Implicit_Loops) and then not Debug_Flag_Underscore_H then declare |