+2009-04-10 Robert Dewar <dewar@adacore.com>
+
+ * einfo.ads, einfo.adb (Low_Bound_Tested): New name for Low_Bound_Known
+
+ * sem_prag.adb (Analyze_Pragma, case Check): Remove check for lower
+ bound tested, since this is now done more generally in Sem_Res.
+
+ * sem_res.adb (Resolve_Comparison_Op): Add call to
+ Check_Lower_Bound_Tested.
+ (Resolve_Equality_Op): Add call to Check_Lower_Bound_Tested
+
+ * sem_warn.ads, sem_warn.adb (Check_Low_Bound_Tested): New procedure
+ (Low_Bound_Tested): New name for Low_Bound_Known flag
+
+ * exp_ch5.adb: Minor reformatting
+
+ * exp_ch4.adb:
+ Add comments on copying the Comes_From_Source flag for allocators
+
+ * sinfo.ads:
+ Add comments on copying the Comes_From_Source flag for allocators
+
+ * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Copy
+ Comes_From_Source flag from old allocator to new one.
+
+2009-04-10 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch6.ads: Address missing documentation query
+
+2009-04-10 Vincent Celier <celier@adacore.com>
+
+ * prj-attr.adb:
+ Add new Linker attributes Max_Command_Line_Length, Response_File_Format
+ and Response_File_Switches.
+
+ * prj-nmsc.adb (Process_Linker): Process new attributes
+ Max_Command_Line_Length, Response_File_Format and
+ Response_File_Switches.
+
+ * prj.ads (Response_File_Format): New enumeration type
+ (Project_Configuration): New componants Max_Command_Line_Length,
+ Resp_File_Format and Resp_File_Options.
+
+ * snames.ads-tmpl: Add new standard names for linking response files
+ for gprbuild: GNU, None, Object_List, Option_List,
+ Max_Command_Line_Length, Response_File_Format and
+ Response_File_Switches.
+
+2009-04-10 Geert Bosch <bosch@adacore.com>
+
+ * system-aix.ads, system-darwin-ppc.ads, system-darwin-x86.ads,
+ system-freebsd-x86.ads, system-hpux.ads, system-hpux-ia64.ads,
+ system-irix-n32.ads, system-irix-o32.ads, system-linux-alpha.ads,
+ system-linux-hppa.ads, system-linux-ia64.ads, system-linux-ppc.ads,
+ system-linux-s390.ads, system-linux-s390x.ads, system-linux-sh4.ads,
+ system-linux-sparc.ads, system-linux-x86_64.ads, system-linux-x86.ads,
+ system-mingw.ads, system-solaris-sparc.ads, system-solaris-sparcv9.ads,
+ system-solaris-x86.ads, system-tru64.ads, system-vms_64.ads,
+ system-vms.ads, system-vms-ia64.ads, system-vms-zcx.ads,
+ system-vxworks-arm.ads, system-vxworks-m68k.ads,
+ system-vxworks-mips.ads, system-vxworks-ppc.ads,
+ system-vxworks-sparcv9.ads, system-vxworks-x86.ads
+ (Backend_Overflow_Checks): Set to True.
+
2009-04-10 Thomas Quinot <quinot@adacore.com>
* exp_attr.adb: Minor reformatting
-- Itype_Printed Flag202
-- Has_Pragma_Pure Flag203
-- Is_Known_Null Flag204
- -- Low_Bound_Known Flag205
+ -- Low_Bound_Tested Flag205
-- Is_Visible_Formal Flag206
-- Known_To_Have_Preelab_Init Flag207
-- Must_Have_Preelab_Init Flag208
return Node16 (Id);
end Lit_Strings;
- function Low_Bound_Known (Id : E) return B is
+ function Low_Bound_Tested (Id : E) return B is
begin
return Flag205 (Id);
- end Low_Bound_Known;
+ end Low_Bound_Tested;
function Machine_Radix_10 (Id : E) return B is
begin
Set_Node16 (Id, V);
end Set_Lit_Strings;
- procedure Set_Low_Bound_Known (Id : E; V : B := True) is
+ procedure Set_Low_Bound_Tested (Id : E; V : B := True) is
begin
pragma Assert (Is_Formal (Id));
Set_Flag205 (Id, V);
- end Set_Low_Bound_Known;
+ end Set_Low_Bound_Tested;
procedure Set_Machine_Radix_10 (Id : E; V : B := True) is
begin
W ("Kill_Range_Checks", Flag33 (Id));
W ("Kill_Tag_Checks", Flag34 (Id));
W ("Known_To_Have_Preelab_Init", Flag207 (Id));
- W ("Low_Bound_Known", Flag205 (Id));
+ W ("Low_Bound_Tested", Flag205 (Id));
W ("Machine_Radix_10", Flag84 (Id));
W ("Materialize_Entity", Flag168 (Id));
W ("Must_Be_On_Byte_Boundary", Flag183 (Id));
-- the nature and use of this entity for implementing the Image and
-- Value attributes for the enumeration type in question.
--- Low_Bound_Known (Flag205)
+-- Low_Bound_Tested (Flag205)
-- Present in all entities. Currently this can only be set True for
-- formal parameter entries of a standard unconstrained one-dimensional
--- array or string type, where the lower bound of the index type is zero
--- or one. Indicates that the low bound is known to be equal to the lower
--- bound of the index type (e.g. 1 for String, since the index type is
--- Positive). This flag can only be set by a pragma Assert which
--- specifies this. If this flag is set, warnings about assuming the index
--- low bound to be zero or one are suppressed.
+-- array or string type. Indicates that an explicit test of the low bound
+-- of the formal appeared in the code, e.g. in a pragma Assert. If this
+-- flag is set, warnings about assuming the index low bound to be one
+-- are suppressed.
-- Machine_Radix_10 (Flag84)
-- Present in decimal types and subtypes, set if the Machine_Radix
-- Kill_Elaboration_Checks (Flag32)
-- Kill_Range_Checks (Flag33)
-- Kill_Tag_Checks (Flag34)
- -- Low_Bound_Known (Flag205)
+ -- Low_Bound_Tested (Flag205)
-- Materialize_Entity (Flag168)
-- Needs_Debug_Info (Flag147)
-- Never_Set_In_Source (Flag115)
-- Is_Controlling_Formal (Flag97)
-- Is_Only_Out_Parameter (Flag226)
-- Is_Optional_Parameter (Flag134)
- -- Low_Bound_Known (Flag205)
+ -- Low_Bound_Tested (Flag205)
-- Is_Return_Object (Flag209)
-- Parameter_Mode (synth)
function Limited_View (Id : E) return E;
function Lit_Indexes (Id : E) return E;
function Lit_Strings (Id : E) return E;
- function Low_Bound_Known (Id : E) return B;
+ function Low_Bound_Tested (Id : E) return B;
function Machine_Radix_10 (Id : E) return B;
function Master_Id (Id : E) return E;
function Materialize_Entity (Id : E) return B;
procedure Set_Limited_View (Id : E; V : E);
procedure Set_Lit_Indexes (Id : E; V : E);
procedure Set_Lit_Strings (Id : E; V : E);
- procedure Set_Low_Bound_Known (Id : E; V : B := True);
+ procedure Set_Low_Bound_Tested (Id : E; V : B := True);
procedure Set_Machine_Radix_10 (Id : E; V : B := True);
procedure Set_Master_Id (Id : E; V : E);
procedure Set_Materialize_Entity (Id : E; V : B := True);
pragma Inline (Limited_View);
pragma Inline (Lit_Indexes);
pragma Inline (Lit_Strings);
- pragma Inline (Low_Bound_Known);
+ pragma Inline (Low_Bound_Tested);
pragma Inline (Machine_Radix_10);
pragma Inline (Master_Id);
pragma Inline (Materialize_Entity);
pragma Inline (Set_Limited_View);
pragma Inline (Set_Lit_Indexes);
pragma Inline (Set_Lit_Strings);
- pragma Inline (Set_Low_Bound_Known);
+ pragma Inline (Set_Low_Bound_Tested);
pragma Inline (Set_Machine_Radix_10);
pragma Inline (Set_Master_Id);
pragma Inline (Set_Materialize_Entity);
Make_Allocator (Loc,
New_Reference_To (Etype (Exp), Loc)));
+ -- Copy the Comes_From_Source flag for the allocator we just
+ -- built, since logically this allocator is a replacement of
+ -- the original allocator node. This is for proper handling of
+ -- restriction No_Implicit_Heap_Allocations.
+
Set_Comes_From_Source
(Expression (Tmp_Node), Comes_From_Source (N));
end if;
Convert_Aggr_In_Allocator (N, Tmp_Node, Exp);
+
else
Node := Relocate_Node (N);
Set_Analyzed (Node);
Make_Allocator (Loc,
New_Reference_To (Etype (Exp), Loc)));
+ -- Copy the Comes_From_Source flag for the allocator we just
+ -- built, since logically this allocator is a replacement of
+ -- the original allocator node. This is for proper handling
+ -- of restriction No_Implicit_Heap_Allocations.
+
Set_Comes_From_Source
(Expression (Tmp_Node), Comes_From_Source (N));
Expression => Make_Allocator (Loc,
New_Reference_To (Etype (Exp), Loc)));
+ -- Copy the Comes_From_Source flag for the allocator we just built,
+ -- since logically this allocator is a replacement of the original
+ -- allocator node. This is for proper handling of restriction
+ -- No_Implicit_Heap_Allocations.
+
Set_Comes_From_Source
(Expression (Tmp_Node), Comes_From_Source (N));
Make_Integer_Literal (Loc, Dim)));
end Construct_Attribute_Reference;
- -- Start processing for Check_Subscripts
+ -- Start of processing for Check_Subscripts
begin
for J in 1 .. Number_Dimensions (Typ) loop
or else
(Is_Fixed_Point_Type (Target_Type) and then Conversion_OK (N)))
then
+ -- Handle case in which type conversions from real types to integers
+ -- are truncated instead of rounded. For example, in the .NET target
+ -- the only instructions available for conversion from float types to
+ -- integers truncate the result. That is, the result of Integer (3.9)
+ -- is 3 instead of 4. The frontend expansion done here to handle also
+ -- negative values is the following composition of conditional
+ -- expressions:
+
+ -- (if Abs (Operand - Float(Integer(Operand))) >= 0.5 then
+ -- (if Operand >= 0.0 then
+ -- Integer(Operand) + 1
+ -- else
+ -- Integer(Operand) - 1)
+ -- else
+ -- Integer(Operand))
+
+ if Integer_Truncation_On_Target and then Comes_From_Source (N) then
+ declare
+ Conv_Node : Node_Id;
+
+ begin
+ -- This code is weird, why are we doing all these copy tree
+ -- operations, instead of just capturing Integer(Operand)
+ -- once and then reusing the value instead of forcing this
+ -- conversion to be done four times! ???
+
+ -- There should be no New_Copy_Tree operations in the below
+ -- code at all???
+
+ Conv_Node := New_Copy_Tree (N);
+ Set_Parent (Conv_Node, Parent (N));
+ Set_Comes_From_Source (Conv_Node, False);
+ Analyze_And_Resolve (Conv_Node, Target_Type);
+
+ Rewrite (N,
+ Make_Conditional_Expression (Loc,
+ Expressions => New_List (
+ Make_Op_Ge (Loc,
+ Left_Opnd =>
+ Make_Op_Abs (Loc,
+ Make_Op_Subtract (Loc,
+ New_Copy_Tree (Operand),
+ Make_Type_Conversion (Loc,
+ New_Reference_To (Etype (Operand), Loc),
+ New_Copy_Tree (Conv_Node)))),
+ Right_Opnd => Make_Real_Literal (Loc, Ureal_Half)),
+
+ Make_Conditional_Expression (Loc,
+ Expressions => New_List (
+ Make_Op_Ge (Loc,
+ Left_Opnd => New_Copy_Tree (Operand),
+ Right_Opnd => Make_Real_Literal (Loc, Ureal_0)),
+ Make_Op_Add (Loc,
+ New_Copy_Tree (Conv_Node),
+ Make_Integer_Literal (Loc, 1)),
+ Make_Op_Subtract (Loc,
+ New_Copy_Tree (Conv_Node),
+ Make_Integer_Literal (Loc, 1)))),
+
+ New_Copy_Tree (Conv_Node))));
+
+ Analyze_And_Resolve (N, Target_Type);
+ return;
+ end;
+ end if;
+
-- One more check here, gcc is still not able to do conversions of
-- this type with proper overflow checking, and so gigi is doing an
-- approximation of what is required by doing floating-point compares
if Is_Class_Wide_Type (Return_Obj_Typ) then
Heap_Allocator :=
Make_Allocator (Loc,
- New_Reference_To
- (Etype (Return_Obj_Expr), Loc));
+ Expression =>
+ New_Reference_To
+ (Etype (Return_Obj_Expr), Loc));
else
Heap_Allocator :=
Make_Allocator (Loc,
- New_Reference_To (Return_Obj_Typ, Loc));
+ Expression =>
+ New_Reference_To (Return_Obj_Typ, Loc));
end if;
-- If the object requires default initialization then
-- is handled separately further below.
New_Allocator :=
- Make_Allocator (Loc, New_Reference_To (Result_Subt, Loc));
+ Make_Allocator (Loc,
+ Expression => New_Reference_To (Result_Subt, Loc));
+ Set_No_Initialization (New_Allocator);
+
+ -- Copy attributes to new allocator. Note that the new allocator
+ -- logically comes from source if the original one did, so copy the
+ -- relevant flag. This ensures proper treatment of the restriction
+ -- No_Implicit_Heap_Allocations in this case.
- Set_Storage_Pool (New_Allocator, Storage_Pool (Allocator));
+ Set_Storage_Pool (New_Allocator, Storage_Pool (Allocator));
Set_Procedure_To_Call (New_Allocator, Procedure_To_Call (Allocator));
- Set_No_Initialization (New_Allocator);
+ Set_Comes_From_Source (New_Allocator, Comes_From_Source (Allocator));
Rewrite (Allocator, New_Allocator);
"SVlib_dir_switch#" &
"SVlib_name_switch#" &
+ -- Configuration - Response files
+
+ "SVmax_command_line_length#" &
+ "SVresponse_file_format#" &
+ "LVresponse_file_switches#" &
+
-- package Cross_Reference
"Pcross_reference#" &
-- Locate a directory. Name is the directory name. Parent is the root
-- directory, if Name a relative path name. Dir is set to the canonical
-- case path name of the directory, and Display is the directory path name
- -- for display purposes. If the directory does not exist and Project_Setup
+ -- for display purposes. If the directory does not exist and Setup_Projects
-- is True and Create is a non null string, an attempt is made to create
- -- the directory. If the directory does not exist and Project_Setup is
+ -- the directory. If the directory does not exist and Setup_Projects is
-- false, then Dir and Display are set to No_Name.
--
-- Current_Dir should represent the current directory, and is passed for
elsif Attribute.Name = Name_Map_File_Option then
Data.Config.Map_File_Option := Attribute.Value.Value;
+
+ elsif Attribute.Name = Name_Max_Command_Line_Length then
+ begin
+ Data.Config.Max_Command_Line_Length :=
+ Natural'Value (Get_Name_String
+ (Attribute.Value.Value));
+
+ exception
+ when Constraint_Error =>
+ Error_Msg
+ (Project,
+ In_Tree,
+ "value must be positive or equal to 0",
+ Attribute.Value.Location);
+ end;
+
+ elsif Attribute.Name = Name_Response_File_Format then
+ declare
+ Name : Name_Id;
+
+ begin
+ Get_Name_String (Attribute.Value.Value);
+ To_Lower (Name_Buffer (1 .. Name_Len));
+ Name := Name_Find;
+
+ if Name = Name_None then
+ Data.Config.Resp_File_Format := None;
+
+ elsif Name = Name_Gnu then
+ Data.Config.Resp_File_Format := GNU;
+
+ elsif Name = Name_Object_List then
+ Data.Config.Resp_File_Format := Object_List;
+
+ elsif Name = Name_Option_List then
+ Data.Config.Resp_File_Format := Option_List;
+
+ else
+ Error_Msg
+ (Project,
+ In_Tree,
+ "illegal response file format",
+ Attribute.Value.Location);
+ end if;
+ end;
+
+ elsif Attribute.Name = Name_Response_File_Switches then
+ Put (Into_List =>
+ Data.Config.Resp_File_Options,
+ From_List => Attribute.Value.Values,
+ In_Tree => In_Tree);
end if;
end if;
Table_Increment => 100);
-- The table that contains the lists of project files
+ type Response_File_Format is
+ (None,
+ GNU,
+ Object_List,
+ Option_List);
+ -- The format of the different response files
+
type Project_Configuration is record
Run_Path_Option : Name_List_Index := No_Name_List;
-- The option to use when linking to specify the path where to look for
-- The option to specify the name of a library for linking. Specified in
-- the configuration. When not specified, defaults to "-l".
+ Max_Command_Line_Length : Natural := 0;
+ -- When positive and when Resp_File_Format (see below) is not None,
+ -- if the command line for the invocation of the linker would be greater
+ -- than this value, a response file is used to invoke the linker.
+
+ Resp_File_Format : Response_File_Format := None;
+ -- The format of a response file, when linking with a response file is
+ -- supported.
+
+ Resp_File_Options : Name_List_Index := No_Name_List;
+ -- The switches, if any, that precede the path name of the response
+ -- file in the invocation of the linker.
+
-- Libraries
Library_Builder : Path_Name_Type := No_Path;
Linker_Lib_Dir_Option => No_Name,
Linker_Lib_Name_Option => No_Name,
Library_Builder => No_Path,
+ Max_Command_Line_Length => 0,
+ Resp_File_Format => None,
+ Resp_File_Options => No_Name_List,
Lib_Support => None,
Archive_Builder => No_Name_List,
Archive_Builder_Append_Option => No_Name_List,
-- are subtype conformant, post error message if not (RM 6.3.1(16)),
-- the flag being placed on the Err_Loc node if it is specified, and
-- on the appropriate component of the New_Id construct if not.
- -- What is the semantics of Skip_Controlling_Formals???
+ -- Skip_Controlling_Formals is True when checking the conformance of
+ -- a subprogram that implements an interface operation. In that case,
+ -- only the non-controlling formals can (and must) be examined.
procedure Check_Type_Conformant
(New_Id : Entity_Id;
else
Analyze_And_Resolve (Expr, Any_Boolean);
end if;
-
- -- If assertion is of the form (X'First = literal), where X is
- -- a formal, then set Low_Bound_Known flag on this formal.
-
- if Nkind (Expr) = N_Op_Eq then
- declare
- Right : constant Node_Id := Right_Opnd (Expr);
- Left : constant Node_Id := Left_Opnd (Expr);
- begin
- if Nkind (Left) = N_Attribute_Reference
- and then Attribute_Name (Left) = Name_First
- and then Is_Entity_Name (Prefix (Left))
- and then Is_Formal (Entity (Prefix (Left)))
- and then Nkind (Right) = N_Integer_Literal
- then
- Set_Low_Bound_Known (Entity (Prefix (Left)));
- end if;
- end;
- end if;
end Check;
----------------
Check_Precondition_Postcondition (In_Body);
- -- If in spec, nothing to do. If in body, then we convert the
- -- pragma to pragma Check (Precondition, cond [, msg]). Note we
- -- do this whether or not precondition checks are enabled. That
- -- works fine since pragma Check will do this check.
+ -- If in spec, nothing more to do. If in body, then we convert the
+ -- pragma to pragma Check (Precondition, cond [, msg]). Note we do
+ -- this whether or not precondition checks are enabled. That works
+ -- fine since pragma Check will do this check.
if In_Body then
if Arg_Count = 2 then
Check_Unset_Reference (L);
Check_Unset_Reference (R);
Generate_Operator_Reference (N, T);
+ Check_Low_Bound_Tested (N);
Eval_Relational_Op (N);
end if;
end if;
Check_Unset_Reference (L);
Check_Unset_Reference (R);
Generate_Operator_Reference (N, T);
+ Check_Low_Bound_Tested (N);
-- If this is an inequality, it may be the implicit inequality
-- created for a user-defined operation, in which case the corres-
end if;
end Check_Infinite_Loop_Warning;
+ ----------------------------
+ -- Check_Low_Bound_Tested --
+ ----------------------------
+
+ procedure Check_Low_Bound_Tested (Expr : Node_Id) is
+ begin
+ if Comes_From_Source (Expr) then
+ declare
+ L : constant Node_Id := Left_Opnd (Expr);
+ R : constant Node_Id := Right_Opnd (Expr);
+ begin
+ if Nkind (L) = N_Attribute_Reference
+ and then Attribute_Name (L) = Name_First
+ and then Is_Entity_Name (Prefix (L))
+ and then Is_Formal (Entity (Prefix (L)))
+ and then Nkind (R) = N_Integer_Literal
+ then
+ Set_Low_Bound_Tested (Entity (Prefix (L)));
+ end if;
+ end;
+ end if;
+ end Check_Low_Bound_Tested;
+
----------------------
-- Check_References --
----------------------
if Is_Formal (Ent)
and then Is_Suspicious_Type (Typ)
- and then not Low_Bound_Known (Ent)
+ and then not Low_Bound_Tested (Ent)
then
Test_Suspicious_Index;
end if;
-- N is the node for a loop statement. This procedure checks if a warning
-- should be given for a possible infinite loop, and if so issues it.
+ procedure Check_Low_Bound_Tested (Expr : Node_Id);
+ -- Expr is the node for a comparison operation. This procedure checks if
+ -- the comparison is a source comparison of P'First with a literal and if
+ -- so, sets the Low_Bound_Tested flag in Expr to suppress warnings about
+ -- improper low bound assumptions (we assume that if the code explicitly
+ -- checks X'First, then it is not operating in blind assumption mode).
+
procedure Warn_On_Known_Condition (C : Node_Id);
-- C is a node for a boolean expression resulting from a relational
-- or membership operation. If the expression has a compile time known
-- Is_Dynamic_Coextension (Flag18-Sem)
-- plus fields for expression
+ -- Note: like all nodes, the N_Allocator has the Comes_From_Source flag.
+ -- This flag has a special function in conjunction with the restriction
+ -- No_Implicit_Heap_Allocations, which will be triggered if this flag
+ -- is not set. This means that if a source allocator is replaced with
+ -- a constructed allocator, the Comes_From_Source flag should be copied
+ -- to the newly created allocator.
+
---------------------------------
-- 5.1 Sequence Of Statements --
---------------------------------
Name_Global_Config_File : constant Name_Id := N + $; -- GPR
Name_Gnatls : constant Name_Id := N + $;
Name_Gnatstub : constant Name_Id := N + $;
+ Name_Gnu : constant Name_Id := N + $;
Name_Ide : constant Name_Id := N + $;
Name_Implementation : constant Name_Id := N + $;
Name_Implementation_Exceptions : constant Name_Id := N + $;
Name_Mapping_File_Switches : constant Name_Id := N + $;
Name_Mapping_Spec_Suffix : constant Name_Id := N + $;
Name_Mapping_Body_Suffix : constant Name_Id := N + $;
+ Name_Max_Command_Line_Length : constant Name_Id := N + $;
Name_Metrics : constant Name_Id := N + $;
Name_Naming : constant Name_Id := N + $;
+ Name_None : constant Name_Id := N + $;
Name_Object_Generated : constant Name_Id := N + $;
+ Name_Object_List : constant Name_Id := N + $;
Name_Objects_Linked : constant Name_Id := N + $;
Name_Objects_Path : constant Name_Id := N + $;
Name_Objects_Path_File : constant Name_Id := N + $;
Name_Object_Dir : constant Name_Id := N + $;
+ Name_Option_List : constant Name_Id := N + $;
Name_Path_Syntax : constant Name_Id := N + $;
Name_Pic_Option : constant Name_Id := N + $;
Name_Pretty_Printer : constant Name_Id := N + $;
Name_Prefix : constant Name_Id := N + $;
Name_Project : constant Name_Id := N + $;
Name_Project_Dir : constant Name_Id := N + $;
+ Name_Response_File_Format : constant Name_Id := N + $;
+ Name_Response_File_Switches : constant Name_Id := N + $;
Name_Roots : constant Name_Id := N + $; -- GPR
Name_Required_Switches : constant Name_Id := N + $;
Name_Run_Path_Option : constant Name_Id := N + $;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := False;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := False;
AAMP : constant Boolean := False;
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Compiler_System_Version : constant Boolean := False;
Configurable_Run_Time : constant Boolean := False;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
AAMP : constant Boolean := False;
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Compiler_System_Version : constant Boolean := False;
Configurable_Run_Time : constant Boolean := False;
AAMP : constant Boolean := False;
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Compiler_System_Version : constant Boolean := False;
Configurable_Run_Time : constant Boolean := False;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
AAMP : constant Boolean := False;
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Compiler_System_Version : constant Boolean := False;
Configurable_Run_Time : constant Boolean := False;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := False;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := False;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := False;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := False;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := False;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := False;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := False;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := False;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := False;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := False;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := False;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;