From: Robert Dewar Date: Fri, 5 Jul 2013 10:44:22 +0000 (+0000) Subject: exp_ch4.adb, [...]: Minor reformatting. X-Git-Tag: releases/gcc-4.9.0~5132 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=16788d44af6621f4bb0b51f3527a3e406cdfddca;p=thirdparty%2Fgcc.git exp_ch4.adb, [...]: Minor reformatting. 2013-07-05 Robert Dewar * exp_ch4.adb, a-cfdlli.ads, a-ngelfu.ads, s-bignum.adb: Minor reformatting. From-SVN: r200707 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 5de3e2a19b5e..44b72d4c9690 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2013-07-05 Robert Dewar + + * exp_ch4.adb, a-cfdlli.ads, a-ngelfu.ads, s-bignum.adb: Minor + reformatting. + 2013-07-05 Hristian Kirtchev * exp_ch4.adb (Expand_Composite_Equality): Use the full view diff --git a/gcc/ada/a-cfdlli.ads b/gcc/ada/a-cfdlli.ads index 8340abb2ae45..8ea3c4c348d5 100644 --- a/gcc/ada/a-cfdlli.ads +++ b/gcc/ada/a-cfdlli.ads @@ -78,30 +78,36 @@ package Ada.Containers.Formal_Doubly_Linked_Lists is procedure Clear (Container : in out List); - procedure Assign (Target : in out List; Source : List) - with Pre => Target.Capacity >= Length (Source); + procedure Assign (Target : in out List; Source : List) with + Pre => Target.Capacity >= Length (Source); function Copy (Source : List; Capacity : Count_Type := 0) return List; - function Element (Container : List; Position : Cursor) return Element_Type - with Pre => Has_Element (Container, Position); + function Element + (Container : List; + Position : Cursor) return Element_Type + with + Pre => Has_Element (Container, Position); procedure Replace_Element (Container : in out List; Position : Cursor; New_Item : Element_Type) - with Pre => Has_Element (Container, Position); + with + Pre => Has_Element (Container, Position); - procedure Move (Target : in out List; Source : in out List) - with Pre => Target.Capacity >= Length (Source); + procedure Move (Target : in out List; Source : in out List) with + Pre => Target.Capacity >= Length (Source); procedure Insert (Container : in out List; Before : Cursor; New_Item : Element_Type; Count : Count_Type := 1) - with Pre => Length (Container) + Count <= Container.Capacity and then - (Has_Element (Container, Before) or else Before = No_Element); + with + Pre => Length (Container) + Count <= Container.Capacity + and then (Has_Element (Container, Before) + or else Before = No_Element); procedure Insert (Container : in out List; @@ -109,114 +115,133 @@ package Ada.Containers.Formal_Doubly_Linked_Lists is New_Item : Element_Type; Position : out Cursor; Count : Count_Type := 1) - with Pre => Length (Container) + Count <= Container.Capacity and then - (Has_Element (Container, Before) or else Before = No_Element); + with + Pre => Length (Container) + Count <= Container.Capacity + and then (Has_Element (Container, Before) + or else Before = No_Element); procedure Insert (Container : in out List; Before : Cursor; Position : out Cursor; Count : Count_Type := 1) - with Pre => Length (Container) + Count <= Container.Capacity and then - (Has_Element (Container, Before) or else Before = No_Element); + with + Pre => Length (Container) + Count <= Container.Capacity + and then (Has_Element (Container, Before) + or else Before = No_Element); procedure Prepend (Container : in out List; New_Item : Element_Type; Count : Count_Type := 1) - with Pre => Length (Container) + Count <= Container.Capacity; + with + Pre => Length (Container) + Count <= Container.Capacity; procedure Append (Container : in out List; New_Item : Element_Type; Count : Count_Type := 1) - with Pre => Length (Container) + Count <= Container.Capacity; + with + Pre => Length (Container) + Count <= Container.Capacity; procedure Delete (Container : in out List; Position : in out Cursor; Count : Count_Type := 1) - with Pre => Has_Element (Container, Position); + with + Pre => Has_Element (Container, Position); procedure Delete_First (Container : in out List; Count : Count_Type := 1) - with Pre => not Is_Empty (Container); + with + Pre => not Is_Empty (Container); procedure Delete_Last (Container : in out List; Count : Count_Type := 1) - with Pre => not Is_Empty (Container); + with + Pre => not Is_Empty (Container); procedure Reverse_Elements (Container : in out List); procedure Swap (Container : in out List; I, J : Cursor) - with Pre => Has_Element (Container, I) and then Has_Element (Container, J); + with + Pre => Has_Element (Container, I) and then Has_Element (Container, J); procedure Swap_Links (Container : in out List; I, J : Cursor) - with Pre => Has_Element (Container, I) and then Has_Element (Container, J); + with + Pre => Has_Element (Container, I) and then Has_Element (Container, J); procedure Splice (Target : in out List; Before : Cursor; Source : in out List) - with Pre => Length (Source) + Length (Target) <= Target.Capacity and then - (Has_Element (Target, Before) or else Before = No_Element); + with + Pre => Length (Source) + Length (Target) <= Target.Capacity + and then (Has_Element (Target, Before) + or else Before = No_Element); procedure Splice (Target : in out List; Before : Cursor; Source : in out List; Position : in out Cursor) - with Pre => Length (Source) + Length (Target) <= Target.Capacity and then - (Has_Element (Target, Before) or else Before = No_Element) and then - Has_Element (Source, Position); + with + Pre => Length (Source) + Length (Target) <= Target.Capacity + and then (Has_Element (Target, Before) + or else Before = No_Element) + and then Has_Element (Source, Position); procedure Splice (Container : in out List; Before : Cursor; Position : Cursor) - with Pre => 2 * Length (Container) <= Container.Capacity and then - (Has_Element (Container, Before) or else Before = No_Element) and then - Has_Element (Container, Position); + with + Pre => 2 * Length (Container) <= Container.Capacity + and then (Has_Element (Container, Before) + or else Before = No_Element) + and then Has_Element (Container, Position); function First (Container : List) return Cursor; - function First_Element (Container : List) return Element_Type - with Pre => not Is_Empty (Container); + function First_Element (Container : List) return Element_Type with + Pre => not Is_Empty (Container); function Last (Container : List) return Cursor; - function Last_Element (Container : List) return Element_Type - with Pre => not Is_Empty (Container); + function Last_Element (Container : List) return Element_Type with + Pre => not Is_Empty (Container); - function Next (Container : List; Position : Cursor) return Cursor - with Pre => Has_Element (Container, Position) or else Position = No_Element; + function Next (Container : List; Position : Cursor) return Cursor with + Pre => Has_Element (Container, Position) or else Position = No_Element; - procedure Next (Container : List; Position : in out Cursor) - with Pre => Has_Element (Container, Position) or else Position = No_Element; + procedure Next (Container : List; Position : in out Cursor) with + Pre => Has_Element (Container, Position) or else Position = No_Element; - function Previous (Container : List; Position : Cursor) return Cursor - with Pre => Has_Element (Container, Position) or else Position = No_Element; + function Previous (Container : List; Position : Cursor) return Cursor with + Pre => Has_Element (Container, Position) or else Position = No_Element; - procedure Previous (Container : List; Position : in out Cursor) - with Pre => Has_Element (Container, Position) or else Position = No_Element; + procedure Previous (Container : List; Position : in out Cursor) with + Pre => Has_Element (Container, Position) or else Position = No_Element; function Find (Container : List; Item : Element_Type; Position : Cursor := No_Element) return Cursor - with Pre => Has_Element (Container, Position) or else Position = No_Element; + with + Pre => Has_Element (Container, Position) or else Position = No_Element; function Reverse_Find (Container : List; Item : Element_Type; Position : Cursor := No_Element) return Cursor - with Pre => Has_Element (Container, Position) or else Position = No_Element; + with + Pre => Has_Element (Container, Position) or else Position = No_Element; function Contains (Container : List; @@ -241,10 +266,10 @@ package Ada.Containers.Formal_Doubly_Linked_Lists is -- they are structurally equal (function "=" returns True) and that they -- have the same set of cursors. - function Left (Container : List; Position : Cursor) return List - with Pre => Has_Element (Container, Position) or else Position = No_Element; - function Right (Container : List; Position : Cursor) return List - with Pre => Has_Element (Container, Position) or else Position = No_Element; + function Left (Container : List; Position : Cursor) return List with + Pre => Has_Element (Container, Position) or else Position = No_Element; + function Right (Container : List; Position : Cursor) return List with + Pre => Has_Element (Container, Position) or else Position = No_Element; -- Left returns a container containing all elements preceding Position -- (excluded) in Container. Right returns a container containing all -- elements following Position (included) in Container. These two new diff --git a/gcc/ada/a-ngelfu.ads b/gcc/ada/a-ngelfu.ads index 9f7d3a3a1681..91e1cf7cf513 100644 --- a/gcc/ada/a-ngelfu.ads +++ b/gcc/ada/a-ngelfu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2012, Free Software Foundation, Inc. -- +-- Copyright (C) 2012-2013, Free Software Foundation, Inc. -- -- -- -- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. The copyright notice above, and the license provisions that follow -- @@ -39,139 +39,114 @@ generic package Ada.Numerics.Generic_Elementary_Functions is pragma Pure; - function Sqrt (X : Float_Type'Base) return Float_Type'Base - with + function Sqrt (X : Float_Type'Base) return Float_Type'Base with Post => Sqrt'Result >= 0.0 - and then (if X = 0.0 then Sqrt'Result = 0.0) - and then (if X = 1.0 then Sqrt'Result = 1.0); + and then (if X = 0.0 then Sqrt'Result = 0.0) + and then (if X = 1.0 then Sqrt'Result = 1.0); function Log (X : Float_Type'Base) return Float_Type'Base with Post => (if X = 1.0 then Log'Result = 0.0); - function Log (X, Base : Float_Type'Base) return Float_Type'Base - with + function Log (X, Base : Float_Type'Base) return Float_Type'Base with Post => (if X = 1.0 then Log'Result = 0.0); - function Exp (X : Float_Type'Base) return Float_Type'Base - with + function Exp (X : Float_Type'Base) return Float_Type'Base with Post => (if X = 0.0 then Exp'Result = 1.0); - function "**" (Left, Right : Float_Type'Base) return Float_Type'Base - with + function "**" (Left, Right : Float_Type'Base) return Float_Type'Base with Post => "**"'Result >= 0.0 - and then (if Right = 0.0 then "**"'Result = 1.0) - and then (if Right = 1.0 then "**"'Result = Left) - and then (if Left = 1.0 then "**"'Result = 1.0) - and then (if Left = 0.0 then "**"'Result = 0.0); + and then (if Right = 0.0 then "**"'Result = 1.0) + and then (if Right = 1.0 then "**"'Result = Left) + and then (if Left = 1.0 then "**"'Result = 1.0) + and then (if Left = 0.0 then "**"'Result = 0.0); - function Sin (X : Float_Type'Base) return Float_Type'Base - with + function Sin (X : Float_Type'Base) return Float_Type'Base with Post => Sin'Result in -1.0 .. 1.0 - and then (if X = 0.0 then Sin'Result = 0.0); + and then (if X = 0.0 then Sin'Result = 0.0); - function Sin (X, Cycle : Float_Type'Base) return Float_Type'Base - with + function Sin (X, Cycle : Float_Type'Base) return Float_Type'Base with Post => Sin'Result in -1.0 .. 1.0 - and then (if X = 0.0 then Sin'Result = 0.0); + and then (if X = 0.0 then Sin'Result = 0.0); - function Cos (X : Float_Type'Base) return Float_Type'Base - with + function Cos (X : Float_Type'Base) return Float_Type'Base with Post => Cos'Result in -1.0 .. 1.0 - and then (if X = 0.0 then Cos'Result = 1.0); + and then (if X = 0.0 then Cos'Result = 1.0); - function Cos (X, Cycle : Float_Type'Base) return Float_Type'Base - with + function Cos (X, Cycle : Float_Type'Base) return Float_Type'Base with Post => Cos'Result in -1.0 .. 1.0 - and then (if X = 0.0 then Cos'Result = 1.0); + and then (if X = 0.0 then Cos'Result = 1.0); - function Tan (X : Float_Type'Base) return Float_Type'Base - with + function Tan (X : Float_Type'Base) return Float_Type'Base with Post => (if X = 0.0 then Tan'Result = 0.0); - function Tan (X, Cycle : Float_Type'Base) return Float_Type'Base - with + function Tan (X, Cycle : Float_Type'Base) return Float_Type'Base with Post => (if X = 0.0 then Tan'Result = 0.0); function Cot (X : Float_Type'Base) return Float_Type'Base; function Cot (X, Cycle : Float_Type'Base) return Float_Type'Base; - function Arcsin (X : Float_Type'Base) return Float_Type'Base - with + function Arcsin (X : Float_Type'Base) return Float_Type'Base with Post => (if X = 0.0 then Arcsin'Result = 0.0); - function Arcsin (X, Cycle : Float_Type'Base) return Float_Type'Base - with + function Arcsin (X, Cycle : Float_Type'Base) return Float_Type'Base with Post => (if X = 0.0 then Arcsin'Result = 0.0); - function Arccos (X : Float_Type'Base) return Float_Type'Base - with + function Arccos (X : Float_Type'Base) return Float_Type'Base with Post => (if X = 1.0 then Arccos'Result = 0.0); - function Arccos (X, Cycle : Float_Type'Base) return Float_Type'Base - with + function Arccos (X, Cycle : Float_Type'Base) return Float_Type'Base with Post => (if X = 1.0 then Arccos'Result = 0.0); function Arctan - (Y : Float_Type'Base; - X : Float_Type'Base := 1.0) - return Float_Type'Base + (Y : Float_Type'Base; + X : Float_Type'Base := 1.0) return Float_Type'Base with Post => (if X > 0.0 and Y = 0.0 then Arctan'Result = 0.0); function Arctan (Y : Float_Type'Base; X : Float_Type'Base := 1.0; - Cycle : Float_Type'Base) - return Float_Type'Base + Cycle : Float_Type'Base) return Float_Type'Base with Post => (if X > 0.0 and Y = 0.0 then Arctan'Result = 0.0); function Arccot (X : Float_Type'Base; - Y : Float_Type'Base := 1.0) - return Float_Type'Base + Y : Float_Type'Base := 1.0) return Float_Type'Base with Post => (if X > 0.0 and Y = 0.0 then Arccot'Result = 0.0); function Arccot (X : Float_Type'Base; Y : Float_Type'Base := 1.0; - Cycle : Float_Type'Base) - return Float_Type'Base + Cycle : Float_Type'Base) return Float_Type'Base with Post => (if X > 0.0 and Y = 0.0 then Arccot'Result = 0.0); - function Sinh (X : Float_Type'Base) return Float_Type'Base - with + function Sinh (X : Float_Type'Base) return Float_Type'Base with Post => (if X = 0.0 then Sinh'Result = 0.0); - function Cosh (X : Float_Type'Base) return Float_Type'Base - with + function Cosh (X : Float_Type'Base) return Float_Type'Base with Post => Cosh'Result >= 1.0 - and then (if X = 0.0 then Cosh'Result = 1.0); + and then (if X = 0.0 then Cosh'Result = 1.0); - function Tanh (X : Float_Type'Base) return Float_Type'Base - with + function Tanh (X : Float_Type'Base) return Float_Type'Base with Post => Tanh'Result in -1.0 .. 1.0 - and then (if X = 0.0 then Tanh'Result = 0.0); + and then (if X = 0.0 then Tanh'Result = 0.0); - function Coth (X : Float_Type'Base) return Float_Type'Base - with + function Coth (X : Float_Type'Base) return Float_Type'Base with Post => abs Coth'Result >= 1.0; - function Arcsinh (X : Float_Type'Base) return Float_Type'Base - with + function Arcsinh (X : Float_Type'Base) return Float_Type'Base with Post => (if X = 0.0 then Arcsinh'Result = 0.0); - function Arccosh (X : Float_Type'Base) return Float_Type'Base - with + function Arccosh (X : Float_Type'Base) return Float_Type'Base with Post => Arccosh'Result >= 0.0 - and then (if X = 1.0 then Arccosh'Result = 0.0); + and then (if X = 1.0 then Arccosh'Result = 0.0); - function Arctanh (X : Float_Type'Base) return Float_Type'Base - with + function Arctanh (X : Float_Type'Base) return Float_Type'Base with Post => (if X = 0.0 then Arctanh'Result = 0.0); function Arccoth (X : Float_Type'Base) return Float_Type'Base; diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb index e8baffe0b5f6..f4abc654d078 100644 --- a/gcc/ada/exp_ch4.adb +++ b/gcc/ada/exp_ch4.adb @@ -2587,6 +2587,8 @@ package body Exp_Ch4 is Full_Type := Underlying_Type (Full_Type); end if; + -- Case of array types + if Is_Array_Type (Full_Type) then -- If the operand is an elementary type other than a floating-point @@ -2609,6 +2611,8 @@ package body Exp_Ch4 is return Expand_Array_Equality (Nod, Lhs, Rhs, Bodies, Full_Type); end if; + -- Case of tagged record types + elsif Is_Tagged_Type (Full_Type) then -- Call the primitive operation "=" of this type @@ -2653,6 +2657,8 @@ package body Exp_Ch4 is (Unchecked_Convert_To (Etype (First_Formal (Eq_Op)), Lhs), Unchecked_Convert_To (Etype (First_Formal (Eq_Op)), Rhs))); + -- Case of untagged record types + elsif Is_Record_Type (Full_Type) then Eq_Op := TSS (Full_Type, TSS_Composite_Equality); @@ -2821,9 +2827,9 @@ package body Exp_Ch4 is return Expand_Record_Equality (Nod, Full_Type, Lhs, Rhs, Bodies); end if; - else - -- If not array or record type, it is predefined equality. + -- Non-composite types (always use predefined equality) + else return Make_Op_Eq (Loc, Left_Opnd => Lhs, Right_Opnd => Rhs); end if; end Expand_Composite_Equality; diff --git a/gcc/ada/s-bignum.adb b/gcc/ada/s-bignum.adb index 7cafbf3d5ae7..cfcf7edf063b 100644 --- a/gcc/ada/s-bignum.adb +++ b/gcc/ada/s-bignum.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2012, Free Software Foundation, Inc. -- +-- Copyright (C) 2012-2013, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -64,14 +64,18 @@ package body System.Bignums is -- Local Subprograms -- ----------------------- - function Add (X, Y : Digit_Vector; X_Neg, Y_Neg : Boolean) return Bignum - with Pre => X'First = 1 and then Y'First = 1; + function Add + (X, Y : Digit_Vector; + X_Neg : Boolean; + Y_Neg : Boolean) return Bignum + with + Pre => X'First = 1 and then Y'First = 1; -- This procedure adds two signed numbers returning the Sum, it is used -- for both addition and subtraction. The value computed is X + Y, with -- X_Neg and Y_Neg giving the signs of the operands. - function Allocate_Bignum (Len : Length) return Bignum - with Post => Allocate_Bignum'Result.Len = Len; + function Allocate_Bignum (Len : Length) return Bignum with + Post => Allocate_Bignum'Result.Len = Len; -- Allocate Bignum value of indicated length on secondary stack. On return -- the Neg and D fields are left uninitialized. @@ -81,7 +85,8 @@ package body System.Bignums is function Compare (X, Y : Digit_Vector; X_Neg, Y_Neg : Boolean) return Compare_Result - with Pre => X'First = 1 and then Y'First = 1; + with + Pre => X'First = 1 and then Y'First = 1; -- Compare (X with sign X_Neg) with (Y with sign Y_Neg), and return the -- result of the signed comparison. @@ -113,7 +118,11 @@ package body System.Bignums is -- Add -- --------- - function Add (X, Y : Digit_Vector; X_Neg, Y_Neg : Boolean) return Bignum is + function Add + (X, Y : Digit_Vector; + X_Neg : Boolean; + Y_Neg : Boolean) return Bignum + is begin -- If signs are the same, we are doing an addition, it is convenient to -- ensure that the first operand is the longer of the two.