]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 10 Apr 2009 15:57:48 +0000 (17:57 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 10 Apr 2009 15:57:48 +0000 (17:57 +0200)
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.

From-SVN: r145924

49 files changed:
gcc/ada/ChangeLog
gcc/ada/einfo.adb
gcc/ada/einfo.ads
gcc/ada/exp_ch4.adb
gcc/ada/exp_ch5.adb
gcc/ada/exp_ch6.adb
gcc/ada/prj-attr.adb
gcc/ada/prj-nmsc.adb
gcc/ada/prj.ads
gcc/ada/sem_ch6.ads
gcc/ada/sem_prag.adb
gcc/ada/sem_res.adb
gcc/ada/sem_warn.adb
gcc/ada/sem_warn.ads
gcc/ada/sinfo.ads
gcc/ada/snames.ads-tmpl
gcc/ada/system-aix.ads
gcc/ada/system-darwin-ppc.ads
gcc/ada/system-darwin-x86.ads
gcc/ada/system-freebsd-x86.ads
gcc/ada/system-hpux-ia64.ads
gcc/ada/system-hpux.ads
gcc/ada/system-irix-n32.ads
gcc/ada/system-irix-o32.ads
gcc/ada/system-linux-alpha.ads
gcc/ada/system-linux-hppa.ads
gcc/ada/system-linux-ia64.ads
gcc/ada/system-linux-ppc.ads
gcc/ada/system-linux-s390.ads
gcc/ada/system-linux-s390x.ads
gcc/ada/system-linux-sh4.ads
gcc/ada/system-linux-sparc.ads
gcc/ada/system-linux-x86.ads
gcc/ada/system-linux-x86_64.ads
gcc/ada/system-mingw.ads
gcc/ada/system-solaris-sparc.ads
gcc/ada/system-solaris-sparcv9.ads
gcc/ada/system-solaris-x86.ads
gcc/ada/system-tru64.ads
gcc/ada/system-vms-ia64.ads
gcc/ada/system-vms-zcx.ads
gcc/ada/system-vms.ads
gcc/ada/system-vms_64.ads
gcc/ada/system-vxworks-arm.ads
gcc/ada/system-vxworks-m68k.ads
gcc/ada/system-vxworks-mips.ads
gcc/ada/system-vxworks-ppc.ads
gcc/ada/system-vxworks-sparcv9.ads
gcc/ada/system-vxworks-x86.ads

index 97ba0a6a568e6d45458efff3bb3126df2ef59c11..69186b945897681ac12554b06f05fe7731d445cb 100644 (file)
@@ -1,3 +1,67 @@
+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
index 2587dac63f9955a525c414ae4064a1b13d77ca47..72db40fcf845f6db2d5d0bba545f3cc592badf6f 100644 (file)
@@ -460,7 +460,7 @@ package body Einfo is
    --    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
@@ -2160,10 +2160,10 @@ package body Einfo is
       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
@@ -4627,11 +4627,11 @@ package body Einfo is
       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
@@ -6971,7 +6971,7 @@ package body Einfo is
       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));
index 48d2e20a7cd2c7a7c4f8a064866c059f03e52ee0..94861354b70090018b7bd10c93d59cebd670551d 100644 (file)
@@ -2757,15 +2757,13 @@ package Einfo is
 --       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
@@ -4520,7 +4518,7 @@ package Einfo is
    --    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)
@@ -5008,7 +5006,7 @@ package Einfo is
    --    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)
 
@@ -5899,7 +5897,7 @@ package Einfo is
    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;
@@ -6450,7 +6448,7 @@ package Einfo is
    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);
@@ -7139,7 +7137,7 @@ package Einfo is
    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);
@@ -7527,7 +7525,7 @@ package Einfo is
    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);
index ccd990eeb6ae101cb4724565a03e1d661b2f3f04..6586e61928886d85c811e0bb2815270e0fd57026 100644 (file)
@@ -657,6 +657,11 @@ package body Exp_Ch4 is
                      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));
 
@@ -672,6 +677,7 @@ package body Exp_Ch4 is
                end if;
 
                Convert_Aggr_In_Allocator (N, Tmp_Node, Exp);
+
             else
                Node := Relocate_Node (N);
                Set_Analyzed (Node);
@@ -727,6 +733,11 @@ package body Exp_Ch4 is
                         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));
 
@@ -929,6 +940,11 @@ package body Exp_Ch4 is
              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));
 
@@ -4185,7 +4201,7 @@ package body Exp_Ch4 is
                            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
@@ -7920,6 +7936,72 @@ package body Exp_Ch4 is
             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
index dfc983da087d3533a4200e6254d3f937323ace02..9c5eabfd9a3db19d1e6355ab5543166876ec358f 100644 (file)
@@ -2825,12 +2825,14 @@ package body Exp_Ch5 is
                         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
index 045bd046895097474659e7eaeb4206828af5801d..2cd2f101a647eaaa5bc907fa73a3ce506614fb16 100644 (file)
@@ -5005,11 +5005,18 @@ package body Exp_Ch6 is
          --  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);
 
index 1096743be716081a65c6f67d9bc0941fc9b807b4..7e30de6876229fb7eadae1d9808b4fed914cf471 100644 (file)
@@ -245,6 +245,12 @@ package body Prj.Attr is
    "SVlib_dir_switch#" &
    "SVlib_name_switch#" &
 
+   --  Configuration - Response files
+
+   "SVmax_command_line_length#" &
+   "SVresponse_file_format#" &
+   "LVresponse_file_switches#" &
+
    --  package Cross_Reference
 
    "Pcross_reference#" &
index 7d532892b816d4d9ebb72e3c03c953ff4e00447a..bab813eb205252f5bdaab54a1e575327fb9c316a 100644 (file)
@@ -484,9 +484,9 @@ package body Prj.Nmsc is
    --  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
@@ -1839,6 +1839,57 @@ package body Prj.Nmsc is
 
                   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;
 
index c8ce1773d9965dd59a58191372c12544f6c81377..adc574723292e342a925f4d8dc9762ea7e6475a4 100644 (file)
@@ -979,6 +979,13 @@ package Prj is
       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
@@ -1015,6 +1022,19 @@ package Prj is
       --  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;
@@ -1085,6 +1105,9 @@ package Prj is
                                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,
index aecb09af949acde4c6add0f7e2268b7f757a6720..543f01bf7499f56c088162795481ad0d8a34f75f 100644 (file)
@@ -119,7 +119,9 @@ package Sem_Ch6 is
    --  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;
index af7cf60ce8bef9f149f59c3ec59e62c90754dad4..f6d5209514a6ae1dfedfcaad8ef59b3a7f20d720 100644 (file)
@@ -5733,25 +5733,6 @@ package body Sem_Prag is
             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;
 
          ----------------
@@ -9608,10 +9589,10 @@ package body Sem_Prag is
 
             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
index c9356b6288a40658dc8004a739386b8de5d879e0..31242c6eb57180797485357d0f813ea7e817cf61 100644 (file)
@@ -5393,6 +5393,7 @@ package body Sem_Res is
             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;
@@ -6135,6 +6136,7 @@ package body Sem_Res is
          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-
index d96f697fcbca640a8e4c3bfa722fd55cdd0e8250..7831315ee96f1d133717b0b7c1c5cbd4791c43b2 100644 (file)
@@ -604,6 +604,29 @@ package body Sem_Warn is
       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 --
    ----------------------
@@ -3633,7 +3656,7 @@ package body Sem_Warn is
 
             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;
index e3daef471ab9d7fe13285886d5cdb04fa6b1ab68..ce97d695efd064acacb005428771bc5c9a81b32f 100644 (file)
@@ -168,6 +168,13 @@ package Sem_Warn is
    --  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
index fd3a0852ee997d3036d1da94893b376e778a7cee..91d286fcc6d829e3d06250ec5ca18da0ad582dd5 100644 (file)
@@ -3728,6 +3728,13 @@ package Sinfo is
       --  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 --
       ---------------------------------
index 352def5a5dfeefaf617c531541e959444fc79c66..8943b7a53a5d0569c9813f11d283e9a33ac82543 100644 (file)
@@ -1048,6 +1048,7 @@ package Snames is
    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 + $;
@@ -1088,19 +1089,25 @@ package Snames is
    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 + $;
index 989cc8483795e1ba3f4235027397dbed5813376d..f76edfa2aa70e720334a02ecdd4925ffbf9bf206 100644 (file)
@@ -126,7 +126,7 @@ private
    --  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;
index df12ccfe132dab92d0c79f7e8c3f881206541827..0c9c32d5db5280fc792c806743d1a904ada44580 100644 (file)
@@ -142,7 +142,7 @@ private
    --  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;
index 009f52af7d8337a2a3bc84f62988dec895a2e7d5..d7f6d0ec2721fd3e2389f17bbc0c8a4a7817515b 100644 (file)
@@ -142,7 +142,7 @@ private
    --  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;
index 37a3275050aaef6fe0d656c1aabc81bba7c9c427..ffec2c11d72551c0c437d17d6a1460411c82bb72 100644 (file)
@@ -116,7 +116,7 @@ private
    --  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;
index c866d24287969a2d938c340f51132fa99ec3d082..5c03a2490c9f0fa76bccd09e1a4e828bcd0a21a5 100644 (file)
@@ -116,7 +116,7 @@ private
    --  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;
index 77c9afa097953747e854fe0a3b30544c89647ea7..ec6cd1c2c72d8d7c2ac1316ce446906ceea283cf 100644 (file)
@@ -116,7 +116,7 @@ private
    --  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;
index 2c07b5ff33438f972c36c1cec82c61ba97f64551..b26894b52da6bc547250c7caf982dffe81eb91df 100644 (file)
@@ -128,7 +128,7 @@ private
    --  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;
index 36701fb8bdf78cc5be4a3e9c2d875712fdfe1930..22bbbaac43b12268a07c4bbe516d6a4d5432b98c 100644 (file)
@@ -116,7 +116,7 @@ private
    --  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;
index 401330fd9cc6c7e75dde139411630ff10046cbcf..6ecca643f21c0a1969b1992bf55c73ddc7e08c27 100644 (file)
@@ -115,7 +115,7 @@ private
 
    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;
index 42b61b50d6b93687495f56fcc3962d6c5239bffb..a23ebde1c9ce561b0efd506adc4902d2f8cb7e42 100644 (file)
@@ -116,7 +116,7 @@ private
    --  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;
index 5b436128d03c0e4b20b4eaea99f72580279d64e6..cb0746f127013e6729a6e00eb573436d75347a9d 100644 (file)
@@ -124,7 +124,7 @@ private
    --  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;
index f3cfb70b3c6723c4a843a8e19268cc9013101e23..6433e06104f44c12695d7d3def493c36f48c909c 100644 (file)
@@ -124,7 +124,7 @@ private
    --  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;
index af5d0c25dc9c74871be8d85b924430f0c945872b..b44b4d125967354295fcee4ca63cff5879c135bf 100644 (file)
@@ -115,7 +115,7 @@ private
 
    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;
index 4e4ec8b72e5be2eeb4d512723a2992bb7d13588d..52937de2521f56874a8566b668619c628a852127 100644 (file)
@@ -115,7 +115,7 @@ private
 
    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;
index 4bf78bbd3064390a9d75276dafd46f1755de7b0c..6a0fdf47c34396339cf0902d2bcfd3019495afd5 100644 (file)
@@ -124,7 +124,7 @@ private
    --  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;
index a42dce5f673d8a2539b3132f44d6224c3a30d014..465d8d3a1f0a203e2482f0507d08b5e6160e5755 100644 (file)
@@ -115,7 +115,7 @@ private
 
    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;
index a81799c56358f0fa152d5822de875d7735311009..f17f2ef7476212cbfce3da41615799396eb6667e 100644 (file)
@@ -124,7 +124,7 @@ private
    --  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;
index bd856ae5dc2d80256e7e1b0694eb41b80c0e3fb2..94ef86f4f5fb902d1d663eb85f58f3a4aad75e5c 100644 (file)
@@ -124,7 +124,7 @@ private
    --  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;
index 2e4d1817d0c79281437144508c6d0b9be5024a96..6a9131a30d5eb6fd4d80bb303e1c73b50e4d088e 100644 (file)
@@ -116,7 +116,7 @@ private
    --  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;
index fde9ef4f727a60287370dcdcb7726c0d4d63c80b..bc00976c5f95d7706ea4a94eb38bc301213ab926 100644 (file)
@@ -116,7 +116,7 @@ private
    --  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;
index bbbc9d168848cf772e7cc7c2507d4a312979175e..96686f52605e9971cd3c595f7d67b663d1d983e9 100644 (file)
@@ -116,7 +116,7 @@ private
    --  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;
index 4ddb7f6e082640a65c7a24bff58488bfe12e3642..57aeb8d8bf8c877c0cd558f7c2a964150bb23c8f 100644 (file)
@@ -116,7 +116,7 @@ private
    --  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;
index 01359e02962c696bb77509363840c51cf9bbd75d..e56ae5955268a4bd71a595358560f810427929e7 100644 (file)
@@ -116,7 +116,7 @@ private
    --  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;
index 8961dd005bfc4509890e0c2c13c76156a2b621cd..57fece940765077843c95a48539c5fee147ad798 100644 (file)
@@ -133,7 +133,7 @@ private
    --  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;
index 6e019bb128dc9fc194ec38ecd492dbf3875714a4..5b4c3edb5d6ad0fe607cdd043b00dd1d4fcb321f 100644 (file)
@@ -116,7 +116,7 @@ private
    --  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;
index 58e9ea15d0cc184015f87be2a7d379dce9b6f9ae..4b6f1eacdadcb98091ecb8460398026dbadac065 100644 (file)
@@ -116,7 +116,7 @@ private
    --  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;
index f3cb30d7ff49add000625d6e563cac7910f1bde3..17b1ab81504a5138e9ecd940b1809e7e063c7f3f 100644 (file)
@@ -133,7 +133,7 @@ private
    --  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;
index 04027dd30f4bcc514dc33564deab2e1160594014..2c144afb6cd05bc615bbfbff29f65c911ad132d1 100644 (file)
@@ -129,7 +129,7 @@ private
    --  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;
index 8bee5983861e25c460106bea556c516ad57565c3..83bb9656b946edd7bbbc61eccd8814716e2552ed 100644 (file)
@@ -129,7 +129,7 @@ private
    --  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;
index bc07a3bc1590148da08c4c53512663a18f5b0f7e..035e542cbaff856f7c8fa90df927581b2533e050 100644 (file)
@@ -129,7 +129,7 @@ private
    --  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;
index 8681e28b44dd345da2ea81b0f8e7d0ca3b906507..d355bae9700d5ec2a074ea85d53eac84882f4af3 100644 (file)
@@ -129,7 +129,7 @@ private
    --  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;
index 58f4f14ef12a9673060cb2fc7636d254c3260aa3..5d15daa50a0cfbed43c9900e50626397f4f95dfa 100644 (file)
@@ -131,7 +131,7 @@ private
    --  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;
index a16fde29fee4d88d49d5e793d0b665bd916a9b87..d028ca9103bf7a99a5e79dc7d020bdf71751c1d2 100644 (file)
@@ -129,7 +129,7 @@ private
    --  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;