===================================================================
@@ -57,9 +57,7 @@
External_Name_Exp_Casing_Config := External_Name_Exp_Casing;
External_Name_Imp_Casing_Config := External_Name_Imp_Casing;
Fast_Math_Config := Fast_Math;
- Init_Or_Norm_Scalars_Config := Init_Or_Norm_Scalars;
Initialize_Scalars_Config := Initialize_Scalars;
- Normalize_Scalars_Config := Normalize_Scalars;
Optimize_Alignment_Config := Optimize_Alignment;
Persistent_BSS_Mode_Config := Persistent_BSS_Mode;
Polling_Required_Config := Polling_Required;
@@ -92,15 +90,20 @@
External_Name_Exp_Casing := Save.External_Name_Exp_Casing;
External_Name_Imp_Casing := Save.External_Name_Imp_Casing;
Fast_Math := Save.Fast_Math;
- Init_Or_Norm_Scalars := Save.Init_Or_Norm_Scalars;
Initialize_Scalars := Save.Initialize_Scalars;
- Normalize_Scalars := Save.Normalize_Scalars;
Optimize_Alignment := Save.Optimize_Alignment;
Optimize_Alignment_Local := Save.Optimize_Alignment_Local;
Persistent_BSS_Mode := Save.Persistent_BSS_Mode;
Polling_Required := Save.Polling_Required;
Short_Descriptors := Save.Short_Descriptors;
Use_VADS_Size := Save.Use_VADS_Size;
+
+ -- Update consistently the value of Init_Or_Norm_Scalars. The value of
+ -- Normalize_Scalars is not saved/restored because after set to True its
+ -- value is never changed. That is, if a compilation unit has pragma
+ -- Normalize_Scalars then it forces that value for all with'ed units.
+
+ Init_Or_Norm_Scalars := Initialize_Scalars or Normalize_Scalars;
end Restore_Opt_Config_Switches;
------------------------------
@@ -122,9 +125,7 @@
Save.External_Name_Exp_Casing := External_Name_Exp_Casing;
Save.External_Name_Imp_Casing := External_Name_Imp_Casing;
Save.Fast_Math := Fast_Math;
- Save.Init_Or_Norm_Scalars := Init_Or_Norm_Scalars;
Save.Initialize_Scalars := Initialize_Scalars;
- Save.Normalize_Scalars := Normalize_Scalars;
Save.Optimize_Alignment := Optimize_Alignment;
Save.Optimize_Alignment_Local := Optimize_Alignment_Local;
Save.Persistent_BSS_Mode := Persistent_BSS_Mode;
@@ -190,13 +191,19 @@
External_Name_Exp_Casing := External_Name_Exp_Casing_Config;
External_Name_Imp_Casing := External_Name_Imp_Casing_Config;
Fast_Math := Fast_Math_Config;
- Init_Or_Norm_Scalars := Init_Or_Norm_Scalars_Config;
Initialize_Scalars := Initialize_Scalars_Config;
- Normalize_Scalars := Normalize_Scalars_Config;
Optimize_Alignment := Optimize_Alignment_Config;
Optimize_Alignment_Local := False;
Persistent_BSS_Mode := Persistent_BSS_Mode_Config;
Use_VADS_Size := Use_VADS_Size_Config;
+
+ -- Update consistently the value of Init_Or_Norm_Scalars. The value
+ -- of Normalize_Scalars is not saved/restored because once set to
+ -- True its value is never changed. That is, if a compilation unit
+ -- has pragma Normalize_Scalars then it forces that value for all
+ -- with'ed units.
+
+ Init_Or_Norm_Scalars := Initialize_Scalars or Normalize_Scalars;
end if;
Default_Pool := Default_Pool_Config;
===================================================================
@@ -1718,11 +1718,6 @@
-- used to set the initial value of Fast_Math at the start of each new
-- compilation unit.
- Init_Or_Norm_Scalars_Config : Boolean;
- -- GNAT
- -- This is the value of the configuration switch that is set by one
- -- of the pragmas Initialize_Scalars or Normalize_Scalars.
-
Initialize_Scalars_Config : Boolean;
-- GNAT
-- This is the value of the configuration switch that is set by the
@@ -1730,13 +1725,6 @@
-- This switch is not set when the pragma appears ahead of a given
-- unit, so it does not affect the compilation of other units.
- Normalize_Scalars_Config : Boolean;
- -- GNAT
- -- This is the value of the configuration switch that is set by the
- -- pragma Normalize_Scalars when it appears in the gnat.adc file.
- -- This switch is not set when the pragma appears ahead of a given
- -- unit, so it does not affect the compilation of other units.
-
Optimize_Alignment_Config : Character;
-- GNAT
-- This is the value of the configuration switch that controls the
@@ -1916,7 +1904,6 @@
External_Name_Exp_Casing : External_Casing_Type;
External_Name_Imp_Casing : External_Casing_Type;
Fast_Math : Boolean;
- Init_Or_Norm_Scalars : Boolean;
Initialize_Scalars : Boolean;
Normalize_Scalars : Boolean;
Optimize_Alignment : Character;