summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/ada/ChangeLog64
-rw-r--r--gcc/ada/einfo.adb12
-rw-r--r--gcc/ada/einfo.ads24
-rw-r--r--gcc/ada/exp_ch4.adb84
-rw-r--r--gcc/ada/exp_ch5.adb8
-rw-r--r--gcc/ada/exp_ch6.adb13
-rw-r--r--gcc/ada/prj-attr.adb6
-rw-r--r--gcc/ada/prj-nmsc.adb55
-rw-r--r--gcc/ada/prj.ads23
-rw-r--r--gcc/ada/sem_ch6.ads4
-rw-r--r--gcc/ada/sem_prag.adb27
-rw-r--r--gcc/ada/sem_res.adb2
-rw-r--r--gcc/ada/sem_warn.adb25
-rw-r--r--gcc/ada/sem_warn.ads7
-rw-r--r--gcc/ada/sinfo.ads7
-rw-r--r--gcc/ada/snames.ads-tmpl7
-rw-r--r--gcc/ada/system-aix.ads2
-rw-r--r--gcc/ada/system-darwin-ppc.ads2
-rw-r--r--gcc/ada/system-darwin-x86.ads2
-rw-r--r--gcc/ada/system-freebsd-x86.ads2
-rw-r--r--gcc/ada/system-hpux-ia64.ads2
-rw-r--r--gcc/ada/system-hpux.ads2
-rw-r--r--gcc/ada/system-irix-n32.ads2
-rw-r--r--gcc/ada/system-irix-o32.ads2
-rw-r--r--gcc/ada/system-linux-alpha.ads2
-rw-r--r--gcc/ada/system-linux-hppa.ads2
-rw-r--r--gcc/ada/system-linux-ia64.ads2
-rw-r--r--gcc/ada/system-linux-ppc.ads2
-rw-r--r--gcc/ada/system-linux-s390.ads2
-rw-r--r--gcc/ada/system-linux-s390x.ads2
-rw-r--r--gcc/ada/system-linux-sh4.ads2
-rw-r--r--gcc/ada/system-linux-sparc.ads2
-rw-r--r--gcc/ada/system-linux-x86.ads2
-rw-r--r--gcc/ada/system-linux-x86_64.ads2
-rw-r--r--gcc/ada/system-mingw.ads2
-rw-r--r--gcc/ada/system-solaris-sparc.ads2
-rw-r--r--gcc/ada/system-solaris-sparcv9.ads2
-rw-r--r--gcc/ada/system-solaris-x86.ads2
-rw-r--r--gcc/ada/system-tru64.ads2
-rw-r--r--gcc/ada/system-vms-ia64.ads2
-rw-r--r--gcc/ada/system-vms-zcx.ads2
-rw-r--r--gcc/ada/system-vms.ads2
-rw-r--r--gcc/ada/system-vms_64.ads2
-rw-r--r--gcc/ada/system-vxworks-arm.ads2
-rw-r--r--gcc/ada/system-vxworks-m68k.ads2
-rw-r--r--gcc/ada/system-vxworks-mips.ads2
-rw-r--r--gcc/ada/system-vxworks-ppc.ads2
-rw-r--r--gcc/ada/system-vxworks-sparcv9.ads2
-rw-r--r--gcc/ada/system-vxworks-x86.ads2
49 files changed, 348 insertions, 86 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 97ba0a6a568..69186b94589 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -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
diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb
index 2587dac63f9..72db40fcf84 100644
--- a/gcc/ada/einfo.adb
+++ b/gcc/ada/einfo.adb
@@ -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));
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads
index 48d2e20a7cd..94861354b70 100644
--- a/gcc/ada/einfo.ads
+++ b/gcc/ada/einfo.ads
@@ -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);
diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb
index ccd990eeb6a..6586e619288 100644
--- a/gcc/ada/exp_ch4.adb
+++ b/gcc/ada/exp_ch4.adb
@@ -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
diff --git a/gcc/ada/exp_ch5.adb b/gcc/ada/exp_ch5.adb
index dfc983da087..9c5eabfd9a3 100644
--- a/gcc/ada/exp_ch5.adb
+++ b/gcc/ada/exp_ch5.adb
@@ -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
diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb
index 045bd046895..2cd2f101a64 100644
--- a/gcc/ada/exp_ch6.adb
+++ b/gcc/ada/exp_ch6.adb
@@ -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);
diff --git a/gcc/ada/prj-attr.adb b/gcc/ada/prj-attr.adb
index 1096743be71..7e30de68762 100644
--- a/gcc/ada/prj-attr.adb
+++ b/gcc/ada/prj-attr.adb
@@ -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#" &
diff --git a/gcc/ada/prj-nmsc.adb b/gcc/ada/prj-nmsc.adb
index 7d532892b81..bab813eb205 100644
--- a/gcc/ada/prj-nmsc.adb
+++ b/gcc/ada/prj-nmsc.adb
@@ -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;
diff --git a/gcc/ada/prj.ads b/gcc/ada/prj.ads
index c8ce1773d99..adc57472329 100644
--- a/gcc/ada/prj.ads
+++ b/gcc/ada/prj.ads
@@ -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,
diff --git a/gcc/ada/sem_ch6.ads b/gcc/ada/sem_ch6.ads
index aecb09af949..543f01bf749 100644
--- a/gcc/ada/sem_ch6.ads
+++ b/gcc/ada/sem_ch6.ads
@@ -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;
diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index af7cf60ce8b..f6d5209514a 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -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
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index c9356b6288a..31242c6eb57 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -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-
diff --git a/gcc/ada/sem_warn.adb b/gcc/ada/sem_warn.adb
index d96f697fcbc..7831315ee96 100644
--- a/gcc/ada/sem_warn.adb
+++ b/gcc/ada/sem_warn.adb
@@ -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;
diff --git a/gcc/ada/sem_warn.ads b/gcc/ada/sem_warn.ads
index e3daef471ab..ce97d695efd 100644
--- a/gcc/ada/sem_warn.ads
+++ b/gcc/ada/sem_warn.ads
@@ -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
diff --git a/gcc/ada/sinfo.ads b/gcc/ada/sinfo.ads
index fd3a0852ee9..91d286fcc6d 100644
--- a/gcc/ada/sinfo.ads
+++ b/gcc/ada/sinfo.ads
@@ -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 --
---------------------------------
diff --git a/gcc/ada/snames.ads-tmpl b/gcc/ada/snames.ads-tmpl
index 352def5a5df..8943b7a53a5 100644
--- a/gcc/ada/snames.ads-tmpl
+++ b/gcc/ada/snames.ads-tmpl
@@ -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 + $;
diff --git a/gcc/ada/system-aix.ads b/gcc/ada/system-aix.ads
index 989cc848379..f76edfa2aa7 100644
--- a/gcc/ada/system-aix.ads
+++ b/gcc/ada/system-aix.ads
@@ -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;
diff --git a/gcc/ada/system-darwin-ppc.ads b/gcc/ada/system-darwin-ppc.ads
index df12ccfe132..0c9c32d5db5 100644
--- a/gcc/ada/system-darwin-ppc.ads
+++ b/gcc/ada/system-darwin-ppc.ads
@@ -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;
diff --git a/gcc/ada/system-darwin-x86.ads b/gcc/ada/system-darwin-x86.ads
index 009f52af7d8..d7f6d0ec272 100644
--- a/gcc/ada/system-darwin-x86.ads
+++ b/gcc/ada/system-darwin-x86.ads
@@ -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;
diff --git a/gcc/ada/system-freebsd-x86.ads b/gcc/ada/system-freebsd-x86.ads
index 37a3275050a..ffec2c11d72 100644
--- a/gcc/ada/system-freebsd-x86.ads
+++ b/gcc/ada/system-freebsd-x86.ads
@@ -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;
diff --git a/gcc/ada/system-hpux-ia64.ads b/gcc/ada/system-hpux-ia64.ads
index c866d242879..5c03a2490c9 100644
--- a/gcc/ada/system-hpux-ia64.ads
+++ b/gcc/ada/system-hpux-ia64.ads
@@ -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;
diff --git a/gcc/ada/system-hpux.ads b/gcc/ada/system-hpux.ads
index 77c9afa0979..ec6cd1c2c72 100644
--- a/gcc/ada/system-hpux.ads
+++ b/gcc/ada/system-hpux.ads
@@ -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;
diff --git a/gcc/ada/system-irix-n32.ads b/gcc/ada/system-irix-n32.ads
index 2c07b5ff334..b26894b52da 100644
--- a/gcc/ada/system-irix-n32.ads
+++ b/gcc/ada/system-irix-n32.ads
@@ -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;
diff --git a/gcc/ada/system-irix-o32.ads b/gcc/ada/system-irix-o32.ads
index 36701fb8bdf..22bbbaac43b 100644
--- a/gcc/ada/system-irix-o32.ads
+++ b/gcc/ada/system-irix-o32.ads
@@ -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;
diff --git a/gcc/ada/system-linux-alpha.ads b/gcc/ada/system-linux-alpha.ads
index 401330fd9cc..6ecca643f21 100644
--- a/gcc/ada/system-linux-alpha.ads
+++ b/gcc/ada/system-linux-alpha.ads
@@ -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;
diff --git a/gcc/ada/system-linux-hppa.ads b/gcc/ada/system-linux-hppa.ads
index 42b61b50d6b..a23ebde1c9c 100644
--- a/gcc/ada/system-linux-hppa.ads
+++ b/gcc/ada/system-linux-hppa.ads
@@ -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;
diff --git a/gcc/ada/system-linux-ia64.ads b/gcc/ada/system-linux-ia64.ads
index 5b436128d03..cb0746f1270 100644
--- a/gcc/ada/system-linux-ia64.ads
+++ b/gcc/ada/system-linux-ia64.ads
@@ -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;
diff --git a/gcc/ada/system-linux-ppc.ads b/gcc/ada/system-linux-ppc.ads
index f3cfb70b3c6..6433e06104f 100644
--- a/gcc/ada/system-linux-ppc.ads
+++ b/gcc/ada/system-linux-ppc.ads
@@ -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;
diff --git a/gcc/ada/system-linux-s390.ads b/gcc/ada/system-linux-s390.ads
index af5d0c25dc9..b44b4d12596 100644
--- a/gcc/ada/system-linux-s390.ads
+++ b/gcc/ada/system-linux-s390.ads
@@ -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;
diff --git a/gcc/ada/system-linux-s390x.ads b/gcc/ada/system-linux-s390x.ads
index 4e4ec8b72e5..52937de2521 100644
--- a/gcc/ada/system-linux-s390x.ads
+++ b/gcc/ada/system-linux-s390x.ads
@@ -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;
diff --git a/gcc/ada/system-linux-sh4.ads b/gcc/ada/system-linux-sh4.ads
index 4bf78bbd306..6a0fdf47c34 100644
--- a/gcc/ada/system-linux-sh4.ads
+++ b/gcc/ada/system-linux-sh4.ads
@@ -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;
diff --git a/gcc/ada/system-linux-sparc.ads b/gcc/ada/system-linux-sparc.ads
index a42dce5f673..465d8d3a1f0 100644
--- a/gcc/ada/system-linux-sparc.ads
+++ b/gcc/ada/system-linux-sparc.ads
@@ -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;
diff --git a/gcc/ada/system-linux-x86.ads b/gcc/ada/system-linux-x86.ads
index a81799c5635..f17f2ef7476 100644
--- a/gcc/ada/system-linux-x86.ads
+++ b/gcc/ada/system-linux-x86.ads
@@ -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;
diff --git a/gcc/ada/system-linux-x86_64.ads b/gcc/ada/system-linux-x86_64.ads
index bd856ae5dc2..94ef86f4f5f 100644
--- a/gcc/ada/system-linux-x86_64.ads
+++ b/gcc/ada/system-linux-x86_64.ads
@@ -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;
diff --git a/gcc/ada/system-mingw.ads b/gcc/ada/system-mingw.ads
index 2e4d1817d0c..6a9131a30d5 100644
--- a/gcc/ada/system-mingw.ads
+++ b/gcc/ada/system-mingw.ads
@@ -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;
diff --git a/gcc/ada/system-solaris-sparc.ads b/gcc/ada/system-solaris-sparc.ads
index fde9ef4f727..bc00976c5f9 100644
--- a/gcc/ada/system-solaris-sparc.ads
+++ b/gcc/ada/system-solaris-sparc.ads
@@ -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;
diff --git a/gcc/ada/system-solaris-sparcv9.ads b/gcc/ada/system-solaris-sparcv9.ads
index bbbc9d16884..96686f52605 100644
--- a/gcc/ada/system-solaris-sparcv9.ads
+++ b/gcc/ada/system-solaris-sparcv9.ads
@@ -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;
diff --git a/gcc/ada/system-solaris-x86.ads b/gcc/ada/system-solaris-x86.ads
index 4ddb7f6e082..57aeb8d8bf8 100644
--- a/gcc/ada/system-solaris-x86.ads
+++ b/gcc/ada/system-solaris-x86.ads
@@ -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;
diff --git a/gcc/ada/system-tru64.ads b/gcc/ada/system-tru64.ads
index 01359e02962..e56ae595526 100644
--- a/gcc/ada/system-tru64.ads
+++ b/gcc/ada/system-tru64.ads
@@ -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;
diff --git a/gcc/ada/system-vms-ia64.ads b/gcc/ada/system-vms-ia64.ads
index 8961dd005bf..57fece94076 100644
--- a/gcc/ada/system-vms-ia64.ads
+++ b/gcc/ada/system-vms-ia64.ads
@@ -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;
diff --git a/gcc/ada/system-vms-zcx.ads b/gcc/ada/system-vms-zcx.ads
index 6e019bb128d..5b4c3edb5d6 100644
--- a/gcc/ada/system-vms-zcx.ads
+++ b/gcc/ada/system-vms-zcx.ads
@@ -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;
diff --git a/gcc/ada/system-vms.ads b/gcc/ada/system-vms.ads
index 58e9ea15d0c..4b6f1eacdad 100644
--- a/gcc/ada/system-vms.ads
+++ b/gcc/ada/system-vms.ads
@@ -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;
diff --git a/gcc/ada/system-vms_64.ads b/gcc/ada/system-vms_64.ads
index f3cb30d7ff4..17b1ab81504 100644
--- a/gcc/ada/system-vms_64.ads
+++ b/gcc/ada/system-vms_64.ads
@@ -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;
diff --git a/gcc/ada/system-vxworks-arm.ads b/gcc/ada/system-vxworks-arm.ads
index 04027dd30f4..2c144afb6cd 100644
--- a/gcc/ada/system-vxworks-arm.ads
+++ b/gcc/ada/system-vxworks-arm.ads
@@ -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;
diff --git a/gcc/ada/system-vxworks-m68k.ads b/gcc/ada/system-vxworks-m68k.ads
index 8bee5983861..83bb9656b94 100644
--- a/gcc/ada/system-vxworks-m68k.ads
+++ b/gcc/ada/system-vxworks-m68k.ads
@@ -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;
diff --git a/gcc/ada/system-vxworks-mips.ads b/gcc/ada/system-vxworks-mips.ads
index bc07a3bc159..035e542cbaf 100644
--- a/gcc/ada/system-vxworks-mips.ads
+++ b/gcc/ada/system-vxworks-mips.ads
@@ -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;
diff --git a/gcc/ada/system-vxworks-ppc.ads b/gcc/ada/system-vxworks-ppc.ads
index 8681e28b44d..d355bae9700 100644
--- a/gcc/ada/system-vxworks-ppc.ads
+++ b/gcc/ada/system-vxworks-ppc.ads
@@ -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;
diff --git a/gcc/ada/system-vxworks-sparcv9.ads b/gcc/ada/system-vxworks-sparcv9.ads
index 58f4f14ef12..5d15daa50a0 100644
--- a/gcc/ada/system-vxworks-sparcv9.ads
+++ b/gcc/ada/system-vxworks-sparcv9.ads
@@ -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;
diff --git a/gcc/ada/system-vxworks-x86.ads b/gcc/ada/system-vxworks-x86.ads
index a16fde29fee..d028ca9103b 100644
--- a/gcc/ada/system-vxworks-x86.ads
+++ b/gcc/ada/system-vxworks-x86.ads
@@ -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;
OpenPOWER on IntegriCloud