diff options
author | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-22 17:43:43 -0300 |
---|---|---|
committer | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2020-08-22 17:43:43 -0300 |
commit | a926878ddbd5a98b272c22171ce58663fc04c3e0 (patch) | |
tree | 86af256e5d9a9c06263c00adc90e5fe348008c43 /gcc/ada/libgnat | |
parent | 542730f087133690b47e036dfd43eb0db8a650ce (diff) | |
parent | 07cbaed8ba7d1b6e4ab3a9f44175502a4e1ecdb1 (diff) | |
download | gcc-devel/autopar_devel.zip gcc-devel/autopar_devel.tar.gz gcc-devel/autopar_devel.tar.bz2 |
Merge branch 'autopar_rebase2' into autopar_develdevel/autopar_devel
Quickly commit changes in the rebase branch.
Diffstat (limited to 'gcc/ada/libgnat')
1253 files changed, 13806 insertions, 3776 deletions
diff --git a/gcc/ada/libgnat/a-assert.adb b/gcc/ada/libgnat/a-assert.adb index c76b7c3..f3fb837 100644 --- a/gcc/ada/libgnat/a-assert.adb +++ b/gcc/ada/libgnat/a-assert.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2007-2020, 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- -- diff --git a/gcc/ada/libgnat/a-assert.ads b/gcc/ada/libgnat/a-assert.ads index 362989a..f7aef0f 100644 --- a/gcc/ada/libgnat/a-assert.ads +++ b/gcc/ada/libgnat/a-assert.ads @@ -4,7 +4,7 @@ -- -- -- A D A . A S S E R T I O N S -- -- -- --- Copyright (C) 2015-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2015-2020, Free Software Foundation, Inc. -- -- -- -- S p e c -- -- -- diff --git a/gcc/ada/libgnat/a-btgbso.adb b/gcc/ada/libgnat/a-btgbso.adb index 08b4198..75c6dd5 100644 --- a/gcc/ada/libgnat/a-btgbso.adb +++ b/gcc/ada/libgnat/a-btgbso.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-btgbso.ads b/gcc/ada/libgnat/a-btgbso.ads index 389824a..a30ccf3 100644 --- a/gcc/ada/libgnat/a-btgbso.ads +++ b/gcc/ada/libgnat/a-btgbso.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-calari.adb b/gcc/ada/libgnat/a-calari.adb index 4c8bf46..27d6da4 100644 --- a/gcc/ada/libgnat/a-calari.adb +++ b/gcc/ada/libgnat/a-calari.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2006-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2006-2020, 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- -- diff --git a/gcc/ada/libgnat/a-calari.ads b/gcc/ada/libgnat/a-calari.ads index 4dc26e6..f319572 100644 --- a/gcc/ada/libgnat/a-calari.ads +++ b/gcc/ada/libgnat/a-calari.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, Free Software Foundation, Inc. -- -- -- -- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- diff --git a/gcc/ada/libgnat/a-calcon.adb b/gcc/ada/libgnat/a-calcon.adb index a6bb156..3b5ec6b 100644 --- a/gcc/ada/libgnat/a-calcon.adb +++ b/gcc/ada/libgnat/a-calcon.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- @@ -30,7 +30,6 @@ ------------------------------------------------------------------------------ with Interfaces.C; use Interfaces.C; -with Interfaces.C.Extensions; use Interfaces.C.Extensions; package body Ada.Calendar.Conversions is diff --git a/gcc/ada/libgnat/a-calcon.ads b/gcc/ada/libgnat/a-calcon.ads index 0847f36..23f176e 100644 --- a/gcc/ada/libgnat/a-calcon.ads +++ b/gcc/ada/libgnat/a-calcon.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- @@ -33,7 +33,6 @@ -- time models - Time, Duration, struct tm and struct timespec. with Interfaces.C; -with Interfaces.C.Extensions; package Ada.Calendar.Conversions is @@ -112,7 +111,7 @@ package Ada.Calendar.Conversions is -- fit into a Time value. function To_Unix_Nano_Time - (Ada_Time : Time) return Interfaces.C.Extensions.long_long; + (Ada_Time : Time) return Interfaces.C.long_long; -- Convert a time value represented as number of time units since the Ada -- implementation-defined Epoch to a value relative to the Unix Epoch. The -- units of the result are nanoseconds. Raises Time_Error if the result diff --git a/gcc/ada/libgnat/a-caldel.adb b/gcc/ada/libgnat/a-caldel.adb index b7cfefc..5b64ef7 100644 --- a/gcc/ada/libgnat/a-caldel.adb +++ b/gcc/ada/libgnat/a-caldel.adb @@ -7,7 +7,7 @@ -- B o d y -- -- -- -- Copyright (C) 1991-2017, Florida State University -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- @@ -103,6 +103,8 @@ begin -- this soft link, or this will be overridden during the elaboration of -- System.Tasking.Initialization + pragma Annotate (CodePeer, Modified, SSL.Timed_Delay); + if SSL.Timed_Delay = null then SSL.Timed_Delay := Timed_Delay_NT'Access; end if; diff --git a/gcc/ada/libgnat/a-caldel.ads b/gcc/ada/libgnat/a-caldel.ads index c45b765..9fa5d60 100644 --- a/gcc/ada/libgnat/a-caldel.ads +++ b/gcc/ada/libgnat/a-caldel.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/a-calend.adb b/gcc/ada/libgnat/a-calend.adb index 4cbfeff..f457412 100644 --- a/gcc/ada/libgnat/a-calend.adb +++ b/gcc/ada/libgnat/a-calend.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -167,9 +167,9 @@ is Secs_In_Non_Leap_Year : constant := 365 * Secs_In_Day; Nanos_In_Four_Years : constant := Secs_In_Four_Years * Nano; - -- Lower and upper bound of Ada time. The zero (0) value of type Time is - -- positioned at year 2150. Note that the lower and upper bound account - -- for the non-leap centennial years. + -- Lower and upper bound of Ada time. Note that the lower and upper bound + -- account for the non-leap centennial years. See "Implementation of Time" + -- in the spec for what the zero value represents. Ada_Low : constant Time_Rep := -(61 * 366 + 188 * 365) * Nanos_In_Day; Ada_High : constant Time_Rep := (60 * 366 + 190 * 365) * Nanos_In_Day; @@ -435,18 +435,14 @@ is if End_T < Leap_Second_Times (1) then Elapsed_Leaps := 0; Next_Leap := Leap_Second_Times (1); - return; elsif Start_T > Leap_Second_Times (Leap_Seconds_Count) then Elapsed_Leaps := 0; Next_Leap := End_Of_Time; - return; - end if; - - -- Perform the calculations only if the start date is within the leap - -- second occurrences table. - if Start_T <= Leap_Second_Times (Leap_Seconds_Count) then + else + -- Perform the calculations only if the start date is within the leap + -- second occurrences table. -- 1 2 N - 1 N -- +----+----+-- . . . --+-------+---+ @@ -480,9 +476,6 @@ is end if; Elapsed_Leaps := End_Index - Start_Index; - - else - Elapsed_Leaps := 0; end if; end Cumulative_Leap_Seconds; @@ -763,6 +756,7 @@ is (Secs_T'Unchecked_Access, Flag'Unchecked_Access, Offset'Unchecked_Access); + pragma Annotate (CodePeer, Modified, Offset); return Long_Integer (Offset); end UTC_Time_Offset; diff --git a/gcc/ada/libgnat/a-calend.ads b/gcc/ada/libgnat/a-calend.ads index 1b782f0..e7eb3ef 100644 --- a/gcc/ada/libgnat/a-calend.ads +++ b/gcc/ada/libgnat/a-calend.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- @@ -157,16 +157,20 @@ private -- Implementation of Time -- ---------------------------- - -- Time is represented as a signed 64 bit integer count of nanoseconds - -- since the start of Ada time (1901-01-01 00:00:00.0 UTC). Time values - -- produced by Time_Of are internally normalized to UTC regardless of their - -- local time zone. This representation ensures correct handling of leap - -- seconds as well as performing arithmetic. In Ada 95, Split and Time_Of - -- will treat a time value as being in the local time zone, in Ada 2005, - -- Split and Time_Of will treat a time value as being in the designated - -- time zone by the formal parameter or in UTC by default. The size of the - -- type is large enough to cover the Ada 2005 range of time (1901-01-01 - -- 00:00:00.0 UTC - 2399-12-31-23:59:59.999999999 UTC). + -- Time is represented as a signed 64 bit signed integer count of + -- nanoseconds since the "epoch" 2150-01-01 00:00:00 UTC. Thus a value of 0 + -- represents the epoch. As of this writing, the epoch is in the future, + -- so Time values returned by Clock will be negative. + -- + -- Time values produced by Time_Of are internally normalized to UTC + -- regardless of their local time zone. This representation ensures correct + -- handling of leap seconds as well as performing arithmetic. In Ada 95, + -- Split and Time_Of will treat a time value as being in the local time + -- zone, in Ada 2005, Split and Time_Of will treat a time value as being in + -- the designated time zone by the formal parameter or in UTC by + -- default. The size of the type is large enough to cover the Ada + -- range of time (1901-01-01T00:00:00.0 UTC - 2399-12-31T23:59:59.999999999 + -- UTC). ------------------ -- Leap Seconds -- @@ -234,8 +238,8 @@ private function Epoch_Offset return Time_Rep; pragma Inline (Epoch_Offset); - -- Return the difference between 2150-1-1 UTC and 1970-1-1 UTC expressed in - -- nanoseconds. Note that year 2100 is non-leap. + -- Return the difference between our epoch and 1970-1-1 UTC (the Unix + -- epoch) expressed in nanoseconds. Note that year 2100 is non-leap. Days_In_Month : constant array (Month_Number) of Day_Number := (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); diff --git a/gcc/ada/libgnat/a-calfor.adb b/gcc/ada/libgnat/a-calfor.adb index 5cc151d..7d53d56 100644 --- a/gcc/ada/libgnat/a-calfor.adb +++ b/gcc/ada/libgnat/a-calfor.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2006-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2006-2020, 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- -- diff --git a/gcc/ada/libgnat/a-calfor.ads b/gcc/ada/libgnat/a-calfor.ads index 60a586e..599e395 100644 --- a/gcc/ada/libgnat/a-calfor.ads +++ b/gcc/ada/libgnat/a-calfor.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, Free Software Foundation, Inc. -- -- -- -- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- @@ -206,6 +206,14 @@ package Ada.Calendar.Formatting is -- prefixed with a minus sign. If abs Elapsed_Time represents 100 hours or -- more, Time_Error is raised. + function Local_Image + (Date : Time; + Include_Time_Fraction : Boolean := False) return String + is (Image (Date, + Include_Time_Fraction, + Time_Zones.Local_Time_Offset (Date))); + -- Returns a string form of Date relative to the local time offset. + function Value (Elapsed_Time : String) return Duration; -- Returns a Duration value for the image given as Elapsed_Time. -- Constraint_Error is raised if the string is not formatted as described diff --git a/gcc/ada/libgnat/a-catizo.adb b/gcc/ada/libgnat/a-catizo.adb index 8937572..f183445 100644 --- a/gcc/ada/libgnat/a-catizo.adb +++ b/gcc/ada/libgnat/a-catizo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- @@ -38,11 +38,11 @@ package body Ada.Calendar.Time_Zones is -- All operations in this package are target and time representation -- independent, thus only one source file is needed for multiple targets. - --------------------- - -- UTC_Time_Offset -- - --------------------- + ----------------------- + -- Local_Time_Offset -- + ----------------------- - function UTC_Time_Offset (Date : Time := Clock) return Time_Offset is + function Local_Time_Offset (Date : Time := Clock) return Time_Offset is Offset_L : constant Long_Integer := Time_Zones_Operations.UTC_Time_Offset (Date); Offset : Time_Offset; @@ -64,6 +64,6 @@ package body Ada.Calendar.Time_Zones is end if; return Offset; - end UTC_Time_Offset; + end Local_Time_Offset; end Ada.Calendar.Time_Zones; diff --git a/gcc/ada/libgnat/a-catizo.ads b/gcc/ada/libgnat/a-catizo.ads index 5f55869..8ef139c 100644 --- a/gcc/ada/libgnat/a-catizo.ads +++ b/gcc/ada/libgnat/a-catizo.ads @@ -21,10 +21,13 @@ package Ada.Calendar.Time_Zones is -- Time zone manipulation type Time_Offset is range -(28 * 60) .. 28 * 60; + -- Offset in minutes Unknown_Zone_Error : exception; - function UTC_Time_Offset (Date : Time := Clock) return Time_Offset; + function Local_Time_Offset (Date : Time := Clock) return Time_Offset; + function UTC_Time_Offset (Date : Time := Clock) return Time_Offset + renames Local_Time_Offset; -- Returns (in minutes), the difference between the implementation-defined -- time zone of Calendar, and UTC time, at the time Date. If the time zone -- of the Calendar implementation is unknown, raises Unknown_Zone_Error. diff --git a/gcc/ada/libgnat/a-cbdlli.adb b/gcc/ada/libgnat/a-cbdlli.adb index 9a2282b..0f0c872 100644 --- a/gcc/ada/libgnat/a-cbdlli.adb +++ b/gcc/ada/libgnat/a-cbdlli.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -29,7 +29,9 @@ with System; use type System.Address; -package body Ada.Containers.Bounded_Doubly_Linked_Lists is +package body Ada.Containers.Bounded_Doubly_Linked_Lists with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -358,6 +360,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is X : Count_Type; begin + TC_Check (Container.TC); + if Checks and then Position.Node = 0 then raise Constraint_Error with "Position cursor has no element"; @@ -386,8 +390,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is return; end if; - TC_Check (Container.TC); - for Index in 1 .. Count loop pragma Assert (Container.Length >= 2); @@ -427,6 +429,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is X : Count_Type; begin + TC_Check (Container.TC); + if Count >= Container.Length then Clear (Container); return; @@ -436,8 +440,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is return; end if; - TC_Check (Container.TC); - for J in 1 .. Count loop X := Container.First; pragma Assert (N (N (X).Next).Prev = Container.First); @@ -463,6 +465,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is X : Count_Type; begin + TC_Check (Container.TC); + if Count >= Container.Length then Clear (Container); return; @@ -472,8 +476,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is return; end if; - TC_Check (Container.TC); - for J in 1 .. Count loop X := Container.Last; pragma Assert (N (N (X).Prev).Next = Container.Last); @@ -759,6 +761,9 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is Source : in out List) is begin + TC_Check (Target.TC); + TC_Check (Source.TC); + -- The semantics of Merge changed slightly per AI05-0021. It was -- originally the case that if Target and Source denoted the same -- container object, then the GNAT implementation of Merge did @@ -786,9 +791,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is raise Capacity_Error with "new length exceeds target capacity"; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - -- Per AI05-0022, the container implementation is required to detect -- element tampering by a generic actual subprogram. @@ -964,6 +966,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is New_Node : Count_Type; begin + TC_Check (Container.TC); + if Before.Container /= null then if Checks and then Before.Container /= Container'Unrestricted_Access then @@ -983,8 +987,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is raise Capacity_Error with "capacity exceeded"; end if; - TC_Check (Container.TC); - Allocate (Container, New_Item, New_Node); First_Node := New_Node; Insert_Internal (Container, Before.Node, New_Node); @@ -1261,6 +1263,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is X : Count_Type; begin + TC_Check (Source.TC); + if Target'Address = Source'Address then return; end if; @@ -1269,8 +1273,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is raise Capacity_Error with "Source length exceeds Target capacity"; end if; - TC_Check (Source.TC); - -- Clear target, note that this checks busy bits of Target Clear (Target); @@ -1579,6 +1581,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is New_Item : Element_Type) is begin + TE_Check (Container.TC); + if Checks and then Position.Container = null then raise Constraint_Error with "Position cursor has no element"; end if; @@ -1588,8 +1592,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is "Position cursor designates wrong container"; end if; - TE_Check (Container.TC); - pragma Assert (Vet (Position), "bad cursor in Replace_Element"); Container.Nodes (Position.Node).Element := New_Item; @@ -1751,6 +1753,9 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is Source : in out List) is begin + TC_Check (Target.TC); + TC_Check (Source.TC); + if Before.Container /= null then if Checks and then Before.Container /= Target'Unrestricted_Access then raise Program_Error with @@ -1772,9 +1777,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is raise Capacity_Error with "new length exceeds target capacity"; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - Splice_Internal (Target, Before.Node, Source); end Splice; @@ -1786,6 +1788,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is N : Node_Array renames Container.Nodes; begin + TC_Check (Container.TC); + if Before.Container /= null then if Checks and then Before.Container /= Container'Unchecked_Access then raise Program_Error with @@ -1815,8 +1819,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is pragma Assert (Container.Length >= 2); - TC_Check (Container.TC); - if Before.Node = 0 then pragma Assert (Position.Node /= Container.Last); @@ -1894,6 +1896,9 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is return; end if; + TC_Check (Target.TC); + TC_Check (Source.TC); + if Before.Container /= null then if Checks and then Before.Container /= Target'Unrestricted_Access then raise Program_Error with @@ -1918,9 +1923,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is raise Capacity_Error with "Target is full"; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - Splice_Internal (Target => Target, Before => Before.Node, @@ -2063,6 +2065,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is I, J : Cursor) is begin + TE_Check (Container.TC); + if Checks and then I.Node = 0 then raise Constraint_Error with "I cursor has no element"; end if; @@ -2083,8 +2087,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is return; end if; - TE_Check (Container.TC); - pragma Assert (Vet (I), "bad I cursor in Swap"); pragma Assert (Vet (J), "bad J cursor in Swap"); @@ -2109,6 +2111,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is I, J : Cursor) is begin + TC_Check (Container.TC); + if Checks and then I.Node = 0 then raise Constraint_Error with "I cursor has no element"; end if; @@ -2129,8 +2133,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is return; end if; - TC_Check (Container.TC); - pragma Assert (Vet (I), "bad I cursor in Swap_Links"); pragma Assert (Vet (J), "bad J cursor in Swap_Links"); diff --git a/gcc/ada/libgnat/a-cbdlli.ads b/gcc/ada/libgnat/a-cbdlli.ads index ca58c70..74639cf 100644 --- a/gcc/ada/libgnat/a-cbdlli.ads +++ b/gcc/ada/libgnat/a-cbdlli.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -43,7 +43,9 @@ generic with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Bounded_Doubly_Linked_Lists is +package Ada.Containers.Bounded_Doubly_Linked_Lists with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Pure; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-cbhama.adb b/gcc/ada/libgnat/a-cbhama.adb index d5cc820..1881db2 100644 --- a/gcc/ada/libgnat/a-cbhama.adb +++ b/gcc/ada/libgnat/a-cbhama.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -39,7 +39,9 @@ with Ada.Containers.Prime_Numbers; use Ada.Containers.Prime_Numbers; with System; use type System.Address; -package body Ada.Containers.Bounded_Hashed_Maps is +package body Ada.Containers.Bounded_Hashed_Maps with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -311,6 +313,8 @@ package body Ada.Containers.Bounded_Hashed_Maps is procedure Delete (Container : in out Map; Position : in out Cursor) is begin + TC_Check (Container.TC); + if Checks and then Position.Node = 0 then raise Constraint_Error with "Position cursor of Delete equals No_Element"; @@ -322,8 +326,6 @@ package body Ada.Containers.Bounded_Hashed_Maps is "Position cursor of Delete designates wrong map"; end if; - TC_Check (Container.TC); - pragma Assert (Vet (Position), "bad cursor in Delete"); HT_Ops.Delete_Node_Sans_Free (Container, Position.Node); @@ -1029,13 +1031,13 @@ package body Ada.Containers.Bounded_Hashed_Maps is Node : constant Count_Type := Key_Ops.Find (Container, Key); begin + TE_Check (Container.TC); + if Checks and then Node = 0 then raise Constraint_Error with "attempt to replace key not in map"; end if; - TE_Check (Container.TC); - declare N : Node_Type renames Container.Nodes (Node); begin @@ -1054,6 +1056,8 @@ package body Ada.Containers.Bounded_Hashed_Maps is New_Item : Element_Type) is begin + TE_Check (Position.Container.TC); + if Checks and then Position.Node = 0 then raise Constraint_Error with "Position cursor of Replace_Element equals No_Element"; @@ -1065,8 +1069,6 @@ package body Ada.Containers.Bounded_Hashed_Maps is "Position cursor of Replace_Element designates wrong map"; end if; - TE_Check (Position.Container.TC); - pragma Assert (Vet (Position), "bad cursor in Replace_Element"); Container.Nodes (Position.Node).Element := New_Item; diff --git a/gcc/ada/libgnat/a-cbhama.ads b/gcc/ada/libgnat/a-cbhama.ads index 0238548..86fed4e 100644 --- a/gcc/ada/libgnat/a-cbhama.ads +++ b/gcc/ada/libgnat/a-cbhama.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -45,7 +45,9 @@ generic with function Equivalent_Keys (Left, Right : Key_Type) return Boolean; with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Bounded_Hashed_Maps is +package Ada.Containers.Bounded_Hashed_Maps with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Pure; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-cbhase.adb b/gcc/ada/libgnat/a-cbhase.adb index 1fa2c21..a332bd7 100644 --- a/gcc/ada/libgnat/a-cbhase.adb +++ b/gcc/ada/libgnat/a-cbhase.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -39,7 +39,9 @@ with Ada.Containers.Prime_Numbers; use Ada.Containers.Prime_Numbers; with System; use type System.Address; -package body Ada.Containers.Bounded_Hashed_Sets is +package body Ada.Containers.Bounded_Hashed_Sets with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -309,6 +311,8 @@ package body Ada.Containers.Bounded_Hashed_Sets is Position : in out Cursor) is begin + TC_Check (Container.TC); + if Checks and then Position.Node = 0 then raise Constraint_Error with "Position cursor equals No_Element"; end if; @@ -318,8 +322,6 @@ package body Ada.Containers.Bounded_Hashed_Sets is raise Program_Error with "Position cursor designates wrong set"; end if; - TC_Check (Container.TC); - pragma Assert (Vet (Position), "bad cursor in Delete"); HT_Ops.Delete_Node_Sans_Free (Container, Position.Node); @@ -1179,13 +1181,13 @@ package body Ada.Containers.Bounded_Hashed_Sets is Node : constant Count_Type := Element_Keys.Find (Container, New_Item); begin + TE_Check (Container.TC); + if Checks and then Node = 0 then raise Constraint_Error with "attempt to replace element not in set"; end if; - TE_Check (Container.TC); - Container.Nodes (Node).Element := New_Item; end Replace; diff --git a/gcc/ada/libgnat/a-cbhase.ads b/gcc/ada/libgnat/a-cbhase.ads index cb9150b..01903c7 100644 --- a/gcc/ada/libgnat/a-cbhase.ads +++ b/gcc/ada/libgnat/a-cbhase.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -48,7 +48,9 @@ generic with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Bounded_Hashed_Sets is +package Ada.Containers.Bounded_Hashed_Sets with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Pure; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-cbmutr.adb b/gcc/ada/libgnat/a-cbmutr.adb index ad9edaa..58db8cf 100644 --- a/gcc/ada/libgnat/a-cbmutr.adb +++ b/gcc/ada/libgnat/a-cbmutr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- @@ -30,7 +30,9 @@ with Ada.Finalization; with System; use type System.Address; -package body Ada.Containers.Bounded_Multiway_Trees is +package body Ada.Containers.Bounded_Multiway_Trees with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -366,6 +368,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is First, Last : Count_Type; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -383,8 +387,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is with "requested count exceeds available storage"; end if; - TC_Check (Container.TC); - if Container.Count = 0 then Initialize_Root (Container); end if; @@ -985,6 +987,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is Count : Count_Type; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -993,8 +997,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is raise Program_Error with "Parent cursor not in container"; end if; - TC_Check (Container.TC); - if Container.Count = 0 then pragma Assert (Is_Root (Parent)); return; @@ -1024,6 +1026,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is X : Count_Type; begin + TC_Check (Container.TC); + if Checks and then Position = No_Element then raise Constraint_Error with "Position cursor has no element"; end if; @@ -1041,8 +1045,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is raise Constraint_Error with "Position cursor does not designate leaf"; end if; - TC_Check (Container.TC); - X := Position.Node; Position := No_Element; @@ -1064,6 +1066,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is Count : Count_Type; begin + TC_Check (Container.TC); + if Checks and then Position = No_Element then raise Constraint_Error with "Position cursor has no element"; end if; @@ -1077,8 +1081,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is raise Program_Error with "Position cursor designates root"; end if; - TC_Check (Container.TC); - X := Position.Node; Position := No_Element; @@ -1506,6 +1508,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is Last : Count_Type; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -1537,8 +1541,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is with "requested count exceeds available storage"; end if; - TC_Check (Container.TC); - if Container.Count = 0 then Initialize_Root (Container); end if; @@ -1584,6 +1586,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is -- OK to reference, see below begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -1615,8 +1619,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is with "requested count exceeds available storage"; end if; - TC_Check (Container.TC); - if Container.Count = 0 then Initialize_Root (Container); end if; @@ -2181,6 +2183,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is First, Last : Count_Type; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -2198,8 +2202,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is with "requested count exceeds available storage"; end if; - TC_Check (Container.TC); - if Container.Count = 0 then Initialize_Root (Container); end if; @@ -2545,6 +2547,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is New_Item : Element_Type) is begin + TE_Check (Container.TC); + if Checks and then Position = No_Element then raise Constraint_Error with "Position cursor has no element"; end if; @@ -2558,8 +2562,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is raise Program_Error with "Position cursor designates root"; end if; - TE_Check (Container.TC); - Container.Elements (Position.Node) := New_Item; end Replace_Element; @@ -2627,6 +2629,9 @@ package body Ada.Containers.Bounded_Multiway_Trees is Source_Parent : Cursor) is begin + TC_Check (Target.TC); + TC_Check (Source.TC); + if Checks and then Target_Parent = No_Element then raise Constraint_Error with "Target_Parent cursor has no element"; end if; @@ -2671,8 +2676,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is return; end if; - TC_Check (Target.TC); - if Checks and then Is_Reachable (Container => Target, From => Target_Parent.Node, To => Source_Parent.Node) @@ -2690,9 +2693,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is return; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - if Target.Count = 0 then Initialize_Root (Target); end if; @@ -2712,6 +2712,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is Source_Parent : Cursor) is begin + TC_Check (Container.TC); + if Checks and then Target_Parent = No_Element then raise Constraint_Error with "Target_Parent cursor has no element"; end if; @@ -2755,8 +2757,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is pragma Assert (Container.Count > 0); - TC_Check (Container.TC); - if Checks and then Is_Reachable (Container => Container, From => Target_Parent.Node, To => Source_Parent.Node) @@ -2911,6 +2911,9 @@ package body Ada.Containers.Bounded_Multiway_Trees is Position : in out Cursor) is begin + TC_Check (Target.TC); + TC_Check (Source.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -2957,8 +2960,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is end if; end if; - TC_Check (Target.TC); - if Checks and then Is_Reachable (Container => Target, From => Parent.Node, To => Position.Node) @@ -2974,9 +2975,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is return; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - if Target.Count = 0 then Initialize_Root (Target); end if; @@ -2998,6 +2996,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is Position : Cursor) is begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -3048,8 +3048,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is end if; end if; - TC_Check (Container.TC); - if Checks and then Is_Reachable (Container => Container, From => Parent.Node, To => Position.Node) @@ -3176,6 +3174,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is I, J : Cursor) is begin + TE_Check (Container.TC); + if Checks and then I = No_Element then raise Constraint_Error with "I cursor has no element"; end if; @@ -3204,8 +3204,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is raise Program_Error with "J cursor designates root"; end if; - TE_Check (Container.TC); - declare EE : Element_Array renames Container.Elements; EI : constant Element_Type := EE (I.Node); diff --git a/gcc/ada/libgnat/a-cbmutr.ads b/gcc/ada/libgnat/a-cbmutr.ads index f491ad4..653407b 100644 --- a/gcc/ada/libgnat/a-cbmutr.ads +++ b/gcc/ada/libgnat/a-cbmutr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2014-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2014-2020, 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 -- @@ -41,7 +41,9 @@ generic with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Bounded_Multiway_Trees is +package Ada.Containers.Bounded_Multiway_Trees with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Pure; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-cborma.adb b/gcc/ada/libgnat/a-cborma.adb index 005bca5..6f59471 100644 --- a/gcc/ada/libgnat/a-cborma.adb +++ b/gcc/ada/libgnat/a-cborma.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -39,7 +39,9 @@ pragma Elaborate_All with System; use type System.Address; -package body Ada.Containers.Bounded_Ordered_Maps is +package body Ada.Containers.Bounded_Ordered_Maps with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -1418,12 +1420,12 @@ package body Ada.Containers.Bounded_Ordered_Maps is Node : constant Count_Type := Key_Ops.Find (Container, Key); begin + TE_Check (Container.TC); + if Checks and then Node = 0 then raise Constraint_Error with "key not in map"; end if; - TE_Check (Container.TC); - declare N : Node_Type renames Container.Nodes (Node); @@ -1443,6 +1445,8 @@ package body Ada.Containers.Bounded_Ordered_Maps is New_Item : Element_Type) is begin + TE_Check (Container.TC); + if Checks and then Position.Node = 0 then raise Constraint_Error with "Position cursor of Replace_Element equals No_Element"; @@ -1454,8 +1458,6 @@ package body Ada.Containers.Bounded_Ordered_Maps is "Position cursor of Replace_Element designates wrong map"; end if; - TE_Check (Container.TC); - pragma Assert (Vet (Container, Position.Node), "Position cursor of Replace_Element is bad"); diff --git a/gcc/ada/libgnat/a-cborma.ads b/gcc/ada/libgnat/a-cborma.ads index ba5d4fe..c199a09 100644 --- a/gcc/ada/libgnat/a-cborma.ads +++ b/gcc/ada/libgnat/a-cborma.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -44,7 +44,9 @@ generic with function "<" (Left, Right : Key_Type) return Boolean is <>; with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Bounded_Ordered_Maps is +package Ada.Containers.Bounded_Ordered_Maps with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Pure; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-cborse.adb b/gcc/ada/libgnat/a-cborse.adb index b553048..af4f87f 100644 --- a/gcc/ada/libgnat/a-cborse.adb +++ b/gcc/ada/libgnat/a-cborse.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -42,7 +42,9 @@ pragma Elaborate_All with System; use type System.Address; -package body Ada.Containers.Bounded_Ordered_Sets is +package body Ada.Containers.Bounded_Ordered_Sets with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -461,6 +463,8 @@ package body Ada.Containers.Bounded_Ordered_Sets is procedure Delete (Container : in out Set; Position : in out Cursor) is begin + TC_Check (Container.TC); + if Checks and then Position.Node = 0 then raise Constraint_Error with "Position cursor equals No_Element"; end if; @@ -470,8 +474,6 @@ package body Ada.Containers.Bounded_Ordered_Sets is raise Program_Error with "Position cursor designates wrong set"; end if; - TC_Check (Container.TC); - pragma Assert (Vet (Container, Position.Node), "bad cursor in Delete"); @@ -933,7 +935,7 @@ package body Ada.Containers.Bounded_Ordered_Sets is Control => (Controlled with Container.TC'Unrestricted_Access, - Container => Container'Access, + Container => Container'Unchecked_Access, Pos => Position, Old_Key => new Key_Type'(Key (Position)))) do @@ -961,7 +963,7 @@ package body Ada.Containers.Bounded_Ordered_Sets is Control => (Controlled with Container.TC'Unrestricted_Access, - Container => Container'Access, + Container => Container'Unchecked_Access, Pos => Find (Container, Key), Old_Key => new Key_Type'(Key))) do @@ -1682,13 +1684,13 @@ package body Ada.Containers.Bounded_Ordered_Sets is Node : constant Count_Type := Element_Keys.Find (Container, New_Item); begin + TE_Check (Container.TC); + if Checks and then Node = 0 then raise Constraint_Error with "attempt to replace element not in set"; end if; - TE_Check (Container.TC); - Container.Nodes (Node).Element := New_Item; end Replace; diff --git a/gcc/ada/libgnat/a-cborse.ads b/gcc/ada/libgnat/a-cborse.ads index fd4d12d..52b8786 100644 --- a/gcc/ada/libgnat/a-cborse.ads +++ b/gcc/ada/libgnat/a-cborse.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -44,7 +44,9 @@ generic with function "<" (Left, Right : Element_Type) return Boolean is <>; with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Bounded_Ordered_Sets is +package Ada.Containers.Bounded_Ordered_Sets with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Pure; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-cbprqu.adb b/gcc/ada/libgnat/a-cbprqu.adb index c714b76..2e97291 100644 --- a/gcc/ada/libgnat/a-cbprqu.adb +++ b/gcc/ada/libgnat/a-cbprqu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- @@ -27,7 +27,9 @@ -- This unit was originally developed by Matthew J Heaney. -- ------------------------------------------------------------------------------ -package body Ada.Containers.Bounded_Priority_Queues is +package body Ada.Containers.Bounded_Priority_Queues with + SPARK_Mode => Off +is package body Implementation is diff --git a/gcc/ada/libgnat/a-cbprqu.ads b/gcc/ada/libgnat/a-cbprqu.ads index 1eb2674..6259a47 100644 --- a/gcc/ada/libgnat/a-cbprqu.ads +++ b/gcc/ada/libgnat/a-cbprqu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- @@ -51,7 +51,9 @@ generic Default_Capacity : Count_Type; Default_Ceiling : System.Any_Priority := System.Priority'Last; -package Ada.Containers.Bounded_Priority_Queues is +package Ada.Containers.Bounded_Priority_Queues with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; diff --git a/gcc/ada/libgnat/a-cbsyqu.adb b/gcc/ada/libgnat/a-cbsyqu.adb index 4de9f25..abb0e79 100644 --- a/gcc/ada/libgnat/a-cbsyqu.adb +++ b/gcc/ada/libgnat/a-cbsyqu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- @@ -27,7 +27,9 @@ -- This unit was originally developed by Matthew J Heaney. -- ------------------------------------------------------------------------------ -package body Ada.Containers.Bounded_Synchronized_Queues is +package body Ada.Containers.Bounded_Synchronized_Queues with + SPARK_Mode => Off +is package body Implementation is diff --git a/gcc/ada/libgnat/a-cbsyqu.ads b/gcc/ada/libgnat/a-cbsyqu.ads index e457e4c..61504fa 100644 --- a/gcc/ada/libgnat/a-cbsyqu.ads +++ b/gcc/ada/libgnat/a-cbsyqu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- @@ -41,7 +41,9 @@ generic Default_Capacity : Count_Type; Default_Ceiling : System.Any_Priority := System.Priority'Last; -package Ada.Containers.Bounded_Synchronized_Queues is +package Ada.Containers.Bounded_Synchronized_Queues with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; diff --git a/gcc/ada/libgnat/a-cdlili.adb b/gcc/ada/libgnat/a-cdlili.adb index 949fb0f..a668db1 100644 --- a/gcc/ada/libgnat/a-cdlili.adb +++ b/gcc/ada/libgnat/a-cdlili.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -31,7 +31,9 @@ with Ada.Unchecked_Deallocation; with System; use type System.Address; -package body Ada.Containers.Doubly_Linked_Lists is +package body Ada.Containers.Doubly_Linked_Lists with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -295,6 +297,8 @@ package body Ada.Containers.Doubly_Linked_Lists is X : Node_Access; begin + TC_Check (Container.TC); + if Checks and then Position.Node = null then raise Constraint_Error with "Position cursor has no element"; @@ -319,8 +323,6 @@ package body Ada.Containers.Doubly_Linked_Lists is return; end if; - TC_Check (Container.TC); - for Index in 1 .. Count loop X := Position.Node; Container.Length := Container.Length - 1; @@ -604,6 +606,9 @@ package body Ada.Containers.Doubly_Linked_Lists is Source : in out List) is begin + TC_Check (Target.TC); + TC_Check (Source.TC); + -- The semantics of Merge changed slightly per AI05-0021. It was -- originally the case that if Target and Source denoted the same -- container object, then the GNAT implementation of Merge did @@ -626,9 +631,6 @@ package body Ada.Containers.Doubly_Linked_Lists is raise Constraint_Error with "new length exceeds maximum"; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - -- Per AI05-0022, the container implementation is required to detect -- element tampering by a generic actual subprogram. @@ -796,6 +798,8 @@ package body Ada.Containers.Doubly_Linked_Lists is New_Node : Node_Access; begin + TC_Check (Container.TC); + if Before.Container /= null then if Checks and then Before.Container /= Container'Unrestricted_Access then @@ -815,8 +819,6 @@ package body Ada.Containers.Doubly_Linked_Lists is raise Constraint_Error with "new length exceeds maximum"; end if; - TC_Check (Container.TC); - New_Node := new Node_Type'(New_Item, null, null); First_Node := New_Node; Insert_Internal (Container, Before.Node, New_Node); @@ -851,6 +853,8 @@ package body Ada.Containers.Doubly_Linked_Lists is New_Node : Node_Access; begin + TC_Check (Container.TC); + if Before.Container /= null then if Checks and then Before.Container /= Container'Unrestricted_Access then @@ -870,8 +874,6 @@ package body Ada.Containers.Doubly_Linked_Lists is raise Constraint_Error with "new length exceeds maximum"; end if; - TC_Check (Container.TC); - New_Node := new Node_Type; First_Node := New_Node; Insert_Internal (Container, Before.Node, New_Node); @@ -1372,6 +1374,8 @@ package body Ada.Containers.Doubly_Linked_Lists is New_Item : Element_Type) is begin + TE_Check (Container.TC); + if Checks and then Position.Container = null then raise Constraint_Error with "Position cursor has no element"; end if; @@ -1381,8 +1385,6 @@ package body Ada.Containers.Doubly_Linked_Lists is "Position cursor designates wrong container"; end if; - TE_Check (Container.TC); - pragma Assert (Vet (Position), "bad cursor in Replace_Element"); Position.Node.Element := New_Item; @@ -1543,6 +1545,9 @@ package body Ada.Containers.Doubly_Linked_Lists is Source : in out List) is begin + TC_Check (Target.TC); + TC_Check (Source.TC); + if Before.Container /= null then if Checks and then Before.Container /= Target'Unrestricted_Access then raise Program_Error with @@ -1560,9 +1565,6 @@ package body Ada.Containers.Doubly_Linked_Lists is raise Constraint_Error with "new length exceeds maximum"; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - Splice_Internal (Target, Before.Node, Source); end Splice; @@ -1572,6 +1574,8 @@ package body Ada.Containers.Doubly_Linked_Lists is Position : Cursor) is begin + TC_Check (Container.TC); + if Before.Container /= null then if Checks and then Before.Container /= Container'Unchecked_Access then raise Program_Error with @@ -1601,8 +1605,6 @@ package body Ada.Containers.Doubly_Linked_Lists is pragma Assert (Container.Length >= 2); - TC_Check (Container.TC); - if Before.Node = null then pragma Assert (Position.Node /= Container.Last); @@ -1678,6 +1680,9 @@ package body Ada.Containers.Doubly_Linked_Lists is return; end if; + TC_Check (Target.TC); + TC_Check (Source.TC); + if Before.Container /= null then if Checks and then Before.Container /= Target'Unrestricted_Access then raise Program_Error with @@ -1702,9 +1707,6 @@ package body Ada.Containers.Doubly_Linked_Lists is raise Constraint_Error with "Target is full"; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - Splice_Internal (Target, Before.Node, Source, Position.Node); Position.Container := Target'Unchecked_Access; end Splice; @@ -1862,6 +1864,8 @@ package body Ada.Containers.Doubly_Linked_Lists is I, J : Cursor) is begin + TE_Check (Container.TC); + if Checks and then I.Node = null then raise Constraint_Error with "I cursor has no element"; end if; @@ -1882,8 +1886,6 @@ package body Ada.Containers.Doubly_Linked_Lists is return; end if; - TE_Check (Container.TC); - pragma Assert (Vet (I), "bad I cursor in Swap"); pragma Assert (Vet (J), "bad J cursor in Swap"); @@ -1908,6 +1910,8 @@ package body Ada.Containers.Doubly_Linked_Lists is I, J : Cursor) is begin + TC_Check (Container.TC); + if Checks and then I.Node = null then raise Constraint_Error with "I cursor has no element"; end if; @@ -1928,8 +1932,6 @@ package body Ada.Containers.Doubly_Linked_Lists is return; end if; - TC_Check (Container.TC); - pragma Assert (Vet (I), "bad I cursor in Swap_Links"); pragma Assert (Vet (J), "bad J cursor in Swap_Links"); diff --git a/gcc/ada/libgnat/a-cdlili.ads b/gcc/ada/libgnat/a-cdlili.ads index e7f40b1..89216e0 100644 --- a/gcc/ada/libgnat/a-cdlili.ads +++ b/gcc/ada/libgnat/a-cdlili.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -43,7 +43,9 @@ generic with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Doubly_Linked_Lists is +package Ada.Containers.Doubly_Linked_Lists with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-cfdlli.adb b/gcc/ada/libgnat/a-cfdlli.adb index 1f23f4b..9713f4c 100644 --- a/gcc/ada/libgnat/a-cfdlli.adb +++ b/gcc/ada/libgnat/a-cfdlli.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cfdlli.ads b/gcc/ada/libgnat/a-cfdlli.ads index b8df023..6131239 100644 --- a/gcc/ada/libgnat/a-cfdlli.ads +++ b/gcc/ada/libgnat/a-cfdlli.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -789,9 +789,10 @@ is Count => Count); procedure Delete (Container : in out List; Position : in out Cursor) with - Global => null, - Pre => Has_Element (Container, Position), - Post => + Global => null, + Depends => (Container =>+ Position, Position => null), + Pre => Has_Element (Container, Position), + Post => Length (Container) = Length (Container)'Old - 1 -- Position is set to No_Element diff --git a/gcc/ada/libgnat/a-cfhama.adb b/gcc/ada/libgnat/a-cfhama.adb index 580ca12..b5c37d2 100644 --- a/gcc/ada/libgnat/a-cfhama.adb +++ b/gcc/ada/libgnat/a-cfhama.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cfhama.ads b/gcc/ada/libgnat/a-cfhama.ads index c4e8221..8a73508 100644 --- a/gcc/ada/libgnat/a-cfhama.ads +++ b/gcc/ada/libgnat/a-cfhama.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -669,9 +669,10 @@ is Find (Container, Key)'Old); procedure Delete (Container : in out Map; Position : in out Cursor) with - Global => null, - Pre => Has_Element (Container, Position), - Post => + Global => null, + Depends => (Container =>+ Position, Position => null), + Pre => Has_Element (Container, Position), + Post => Position = No_Element and Length (Container) = Length (Container)'Old - 1 diff --git a/gcc/ada/libgnat/a-cfhase.adb b/gcc/ada/libgnat/a-cfhase.adb index 8cc220c..121708c 100644 --- a/gcc/ada/libgnat/a-cfhase.adb +++ b/gcc/ada/libgnat/a-cfhase.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cfhase.ads b/gcc/ada/libgnat/a-cfhase.ads index 3e72aef..37022ca 100644 --- a/gcc/ada/libgnat/a-cfhase.ads +++ b/gcc/ada/libgnat/a-cfhase.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -801,9 +801,10 @@ is -- already in the set.) procedure Delete (Container : in out Set; Position : in out Cursor) with - Global => null, - Pre => Has_Element (Container, Position), - Post => + Global => null, + Depends => (Container =>+ Position, Position => null), + Pre => Has_Element (Container, Position), + Post => Position = No_Element and Length (Container) = Length (Container)'Old - 1 diff --git a/gcc/ada/libgnat/a-cfinve.adb b/gcc/ada/libgnat/a-cfinve.adb index b5c318b..28e31d1 100644 --- a/gcc/ada/libgnat/a-cfinve.adb +++ b/gcc/ada/libgnat/a-cfinve.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cfinve.ads b/gcc/ada/libgnat/a-cfinve.ads index 87940d2..3e2e350 100644 --- a/gcc/ada/libgnat/a-cfinve.ads +++ b/gcc/ada/libgnat/a-cfinve.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2014-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2014-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cforma.adb b/gcc/ada/libgnat/a-cforma.adb index 15d142d..004b31e 100644 --- a/gcc/ada/libgnat/a-cforma.adb +++ b/gcc/ada/libgnat/a-cforma.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cforma.ads b/gcc/ada/libgnat/a-cforma.ads index a13bce4..99b02a5 100644 --- a/gcc/ada/libgnat/a-cforma.ads +++ b/gcc/ada/libgnat/a-cforma.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -733,9 +733,10 @@ is Cut => Find (Keys (Container), Key)'Old); procedure Delete (Container : in out Map; Position : in out Cursor) with - Global => null, - Pre => Has_Element (Container, Position), - Post => + Global => null, + Depends => (Container =>+ Position, Position => null), + Pre => Has_Element (Container, Position), + Post => Position = No_Element and Length (Container) = Length (Container)'Old - 1 diff --git a/gcc/ada/libgnat/a-cforse.adb b/gcc/ada/libgnat/a-cforse.adb index 71d9b47..991d1dc 100644 --- a/gcc/ada/libgnat/a-cforse.adb +++ b/gcc/ada/libgnat/a-cforse.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cforse.ads b/gcc/ada/libgnat/a-cforse.ads index 3cd62af..a818726 100644 --- a/gcc/ada/libgnat/a-cforse.ads +++ b/gcc/ada/libgnat/a-cforse.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -858,9 +858,10 @@ is (Container : in out Set; Position : in out Cursor) with - Global => null, - Pre => Has_Element (Container, Position), - Post => + Global => null, + Depends => (Container =>+ Position, Position => null), + Pre => Has_Element (Container, Position), + Post => Position = No_Element and Length (Container) = Length (Container)'Old - 1 diff --git a/gcc/ada/libgnat/a-cgaaso.adb b/gcc/ada/libgnat/a-cgaaso.adb index 0169c9b..6d0049a 100644 --- a/gcc/ada/libgnat/a-cgaaso.adb +++ b/gcc/ada/libgnat/a-cgaaso.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cgaaso.ads b/gcc/ada/libgnat/a-cgaaso.ads index 3622702..c809b65 100644 --- a/gcc/ada/libgnat/a-cgaaso.ads +++ b/gcc/ada/libgnat/a-cgaaso.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cgarso.adb b/gcc/ada/libgnat/a-cgarso.adb index 9117fd4..5f4e594 100644 --- a/gcc/ada/libgnat/a-cgarso.adb +++ b/gcc/ada/libgnat/a-cgarso.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cgcaso.adb b/gcc/ada/libgnat/a-cgcaso.adb index 25508fd..877abab 100644 --- a/gcc/ada/libgnat/a-cgcaso.adb +++ b/gcc/ada/libgnat/a-cgcaso.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-chacon.adb b/gcc/ada/libgnat/a-chacon.adb index 2415103..638dcc4 100644 --- a/gcc/ada/libgnat/a-chacon.adb +++ b/gcc/ada/libgnat/a-chacon.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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- -- diff --git a/gcc/ada/libgnat/a-chacon.ads b/gcc/ada/libgnat/a-chacon.ads index fe8d5e2..df2e276 100644 --- a/gcc/ada/libgnat/a-chacon.ads +++ b/gcc/ada/libgnat/a-chacon.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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 -- diff --git a/gcc/ada/libgnat/a-chahan.adb b/gcc/ada/libgnat/a-chahan.adb index e4827a1..de66846 100644 --- a/gcc/ada/libgnat/a-chahan.adb +++ b/gcc/ada/libgnat/a-chahan.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -399,6 +399,17 @@ package body Ada.Characters.Handling is return False; end Is_Mark; + ------------- + -- Is_NFKC -- + ------------- + + function Is_NFKC (Item : Character) return Boolean is + begin + return Character'Pos (Item) not in + 160 | 168 | 170 | 175 | 178 | 179 | 180 | 181 | 184 | 185 | 186 | + 188 | 189 | 190; + end Is_NFKC; + --------------------- -- Is_Other_Format -- --------------------- diff --git a/gcc/ada/libgnat/a-chahan.ads b/gcc/ada/libgnat/a-chahan.ads index 867c893..04f975c 100644 --- a/gcc/ada/libgnat/a-chahan.ads +++ b/gcc/ada/libgnat/a-chahan.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- @@ -58,6 +58,7 @@ package Ada.Characters.Handling is function Is_Other_Format (Item : Character) return Boolean; function Is_Punctuation_Connector (Item : Character) return Boolean; function Is_Space (Item : Character) return Boolean; + function Is_NFKC (Item : Character) return Boolean; --------------------------------------------------- -- Conversion Functions for Character and String -- diff --git a/gcc/ada/libgnat/a-chlat9.ads b/gcc/ada/libgnat/a-chlat9.ads index b58585c..de9b54e 100644 --- a/gcc/ada/libgnat/a-chlat9.ads +++ b/gcc/ada/libgnat/a-chlat9.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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 -- diff --git a/gcc/ada/libgnat/a-chtgbk.adb b/gcc/ada/libgnat/a-chtgbk.adb index f567cd5..89358e4 100644 --- a/gcc/ada/libgnat/a-chtgbk.adb +++ b/gcc/ada/libgnat/a-chtgbk.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -228,6 +228,8 @@ package body Ada.Containers.Hash_Tables.Generic_Bounded_Keys is N, M : Count_Type; begin + TC_Check (HT.TC); + -- Per AI05-0022, the container implementation is required to detect -- element tampering by a generic actual subprogram. @@ -250,8 +252,6 @@ package body Ada.Containers.Hash_Tables.Generic_Bounded_Keys is -- hash table as this one, a key is mapped to exactly one node.) if Checked_Equivalent_Keys (HT, Key, Node) then - TE_Check (HT.TC); - -- The new Key value is mapped to this same Node, so Node -- stays in the same bucket. @@ -292,10 +292,7 @@ package body Ada.Containers.Hash_Tables.Generic_Bounded_Keys is return; end if; - -- The node is a bucket different from the bucket implied by Key - - TC_Check (HT.TC); - + -- The node is in a bucket different from the bucket implied by Key. -- Do the assignment first, before moving the node, so that if Assign -- propagates an exception, then the hash table will not have been -- modified (except for any possible side-effect Assign had on Node). diff --git a/gcc/ada/libgnat/a-chtgbk.ads b/gcc/ada/libgnat/a-chtgbk.ads index 6b46903..43ad208 100644 --- a/gcc/ada/libgnat/a-chtgbk.ads +++ b/gcc/ada/libgnat/a-chtgbk.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-chtgbo.adb b/gcc/ada/libgnat/a-chtgbo.adb index ace096d..9fec5c4 100644 --- a/gcc/ada/libgnat/a-chtgbo.adb +++ b/gcc/ada/libgnat/a-chtgbo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-chtgbo.ads b/gcc/ada/libgnat/a-chtgbo.ads index 8dfe3aa..5fc852d 100644 --- a/gcc/ada/libgnat/a-chtgbo.ads +++ b/gcc/ada/libgnat/a-chtgbo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-chtgke.adb b/gcc/ada/libgnat/a-chtgke.adb index 3c5fff3..fdd62b7 100644 --- a/gcc/ada/libgnat/a-chtgke.adb +++ b/gcc/ada/libgnat/a-chtgke.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -91,7 +91,6 @@ package body Ada.Containers.Hash_Tables.Generic_Keys is end if; if Checked_Equivalent_Keys (HT, Key, X) then - TC_Check (HT.TC); HT.Buckets (Indx) := Next (X); HT.Length := HT.Length - 1; return; @@ -106,7 +105,6 @@ package body Ada.Containers.Hash_Tables.Generic_Keys is end if; if Checked_Equivalent_Keys (HT, Key, X) then - TC_Check (HT.TC); Set_Next (Node => Prev, Next => Next (X)); HT.Length := HT.Length - 1; return; diff --git a/gcc/ada/libgnat/a-chtgke.ads b/gcc/ada/libgnat/a-chtgke.ads index 43b0275b..375ddf6 100644 --- a/gcc/ada/libgnat/a-chtgke.ads +++ b/gcc/ada/libgnat/a-chtgke.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-chtgop.adb b/gcc/ada/libgnat/a-chtgop.adb index 7eba2b8..6e7511f 100644 --- a/gcc/ada/libgnat/a-chtgop.adb +++ b/gcc/ada/libgnat/a-chtgop.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-chtgop.ads b/gcc/ada/libgnat/a-chtgop.ads index 6ebb9e5..9073d57 100644 --- a/gcc/ada/libgnat/a-chtgop.ads +++ b/gcc/ada/libgnat/a-chtgop.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-chzla1.ads b/gcc/ada/libgnat/a-chzla1.ads index 724a36e..8afca7d 100644 --- a/gcc/ada/libgnat/a-chzla1.ads +++ b/gcc/ada/libgnat/a-chzla1.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-chzla9.ads b/gcc/ada/libgnat/a-chzla9.ads index d61e62c..389bccf 100644 --- a/gcc/ada/libgnat/a-chzla9.ads +++ b/gcc/ada/libgnat/a-chzla9.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cidlli.adb b/gcc/ada/libgnat/a-cidlli.adb index 65e4c10..0898db8 100644 --- a/gcc/ada/libgnat/a-cidlli.adb +++ b/gcc/ada/libgnat/a-cidlli.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -31,7 +31,9 @@ with Ada.Unchecked_Deallocation; with System; use type System.Address; -package body Ada.Containers.Indefinite_Doubly_Linked_Lists is +package body Ada.Containers.Indefinite_Doubly_Linked_Lists with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -320,6 +322,8 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is X : Node_Access; begin + TC_Check (Container.TC); + if Checks and then Position.Node = null then raise Constraint_Error with "Position cursor has no element"; @@ -349,8 +353,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is return; end if; - TC_Check (Container.TC); - for Index in 1 .. Count loop X := Position.Node; Container.Length := Container.Length - 1; @@ -667,6 +669,9 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is return; end if; + TC_Check (Target.TC); + TC_Check (Source.TC); + if Checks and then Target'Address = Source'Address then raise Program_Error with "Target and Source denote same non-empty container"; @@ -677,9 +682,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is raise Constraint_Error with "new length exceeds maximum"; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - declare Lock_Target : With_Lock (Target.TC'Unchecked_Access); Lock_Source : With_Lock (Source.TC'Unchecked_Access); @@ -847,6 +849,8 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is New_Node : Node_Access; begin + TC_Check (Container.TC); + if Before.Container /= null then if Checks and then Before.Container /= Container'Unrestricted_Access then @@ -873,8 +877,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is raise Constraint_Error with "new length exceeds maximum"; end if; - TC_Check (Container.TC); - declare -- The element allocator may need an accessibility check in the case -- the actual type is class-wide or has access discriminants (see @@ -1420,6 +1422,8 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is New_Item : Element_Type) is begin + TE_Check (Container.TC); + if Checks and then Position.Container = null then raise Constraint_Error with "Position cursor has no element"; end if; @@ -1429,8 +1433,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is "Position cursor designates wrong container"; end if; - TE_Check (Container.TC); - if Checks and then Position.Node.Element = null then raise Program_Error with "Position cursor has no element"; @@ -1612,6 +1614,9 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is Source : in out List) is begin + TC_Check (Target.TC); + TC_Check (Source.TC); + if Before.Container /= null then if Checks and then Before.Container /= Target'Unrestricted_Access then raise Program_Error with @@ -1636,9 +1641,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is raise Constraint_Error with "new length exceeds maximum"; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - Splice_Internal (Target, Before.Node, Source); end Splice; @@ -1648,6 +1650,8 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is Position : Cursor) is begin + TC_Check (Container.TC); + if Before.Container /= null then if Checks and then Before.Container /= Container'Unchecked_Access then raise Program_Error with @@ -1688,8 +1692,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is pragma Assert (Container.Length >= 2); - TC_Check (Container.TC); - if Before.Node = null then pragma Assert (Position.Node /= Container.Last); @@ -1765,6 +1767,9 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is return; end if; + TC_Check (Target.TC); + TC_Check (Source.TC); + if Before.Container /= null then if Checks and then Before.Container /= Target'Unrestricted_Access then raise Program_Error with @@ -1801,9 +1806,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is raise Constraint_Error with "Target is full"; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - Splice_Internal (Target, Before.Node, Source, Position.Node); Position.Container := Target'Unchecked_Access; end Splice; @@ -1960,6 +1962,8 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is I, J : Cursor) is begin + TE_Check (Container.TC); + if Checks and then I.Node = null then raise Constraint_Error with "I cursor has no element"; end if; @@ -1980,8 +1984,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is return; end if; - TE_Check (Container.TC); - pragma Assert (Vet (I), "bad I cursor in Swap"); pragma Assert (Vet (J), "bad J cursor in Swap"); @@ -2003,6 +2005,8 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is I, J : Cursor) is begin + TC_Check (Container.TC); + if Checks and then I.Node = null then raise Constraint_Error with "I cursor has no element"; end if; @@ -2023,8 +2027,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is return; end if; - TC_Check (Container.TC); - pragma Assert (Vet (I), "bad I cursor in Swap_Links"); pragma Assert (Vet (J), "bad J cursor in Swap_Links"); diff --git a/gcc/ada/libgnat/a-cidlli.ads b/gcc/ada/libgnat/a-cidlli.ads index 14d1065..e9220a6 100644 --- a/gcc/ada/libgnat/a-cidlli.ads +++ b/gcc/ada/libgnat/a-cidlli.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -43,7 +43,9 @@ generic with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Indefinite_Doubly_Linked_Lists is +package Ada.Containers.Indefinite_Doubly_Linked_Lists with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-cihama.adb b/gcc/ada/libgnat/a-cihama.adb index b33246d..9f5aed7 100644 --- a/gcc/ada/libgnat/a-cihama.adb +++ b/gcc/ada/libgnat/a-cihama.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -39,7 +39,9 @@ with Ada.Unchecked_Deallocation; with System; use type System.Address; -package body Ada.Containers.Indefinite_Hashed_Maps is +package body Ada.Containers.Indefinite_Hashed_Maps with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -327,6 +329,8 @@ package body Ada.Containers.Indefinite_Hashed_Maps is procedure Delete (Container : in out Map; Position : in out Cursor) is begin + TC_Check (Container.HT.TC); + if Checks and then Position.Node = null then raise Constraint_Error with "Position cursor of Delete equals No_Element"; @@ -338,8 +342,6 @@ package body Ada.Containers.Indefinite_Hashed_Maps is "Position cursor of Delete designates wrong map"; end if; - TC_Check (Container.HT.TC); - pragma Assert (Vet (Position), "bad cursor in Delete"); HT_Ops.Delete_Node_Sans_Free (Container.HT, Position.Node); @@ -1106,13 +1108,13 @@ package body Ada.Containers.Indefinite_Hashed_Maps is E : Element_Access; begin + TE_Check (Container.HT.TC); + if Checks and then Node = null then raise Constraint_Error with "attempt to replace key not in map"; end if; - TE_Check (Container.HT.TC); - K := Node.Key; E := Node.Element; @@ -1148,6 +1150,8 @@ package body Ada.Containers.Indefinite_Hashed_Maps is New_Item : Element_Type) is begin + TE_Check (Position.Container.HT.TC); + if Checks and then Position.Node = null then raise Constraint_Error with "Position cursor of Replace_Element equals No_Element"; @@ -1166,8 +1170,6 @@ package body Ada.Containers.Indefinite_Hashed_Maps is "Position cursor of Replace_Element designates wrong map"; end if; - TE_Check (Position.Container.HT.TC); - pragma Assert (Vet (Position), "bad cursor in Replace_Element"); declare diff --git a/gcc/ada/libgnat/a-cihama.ads b/gcc/ada/libgnat/a-cihama.ads index 97a78b2..fb6f4e0 100644 --- a/gcc/ada/libgnat/a-cihama.ads +++ b/gcc/ada/libgnat/a-cihama.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -45,7 +45,9 @@ generic with function Equivalent_Keys (Left, Right : Key_Type) return Boolean; with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Indefinite_Hashed_Maps is +package Ada.Containers.Indefinite_Hashed_Maps with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-cihase.adb b/gcc/ada/libgnat/a-cihase.adb index bec48d0..b91532d 100644 --- a/gcc/ada/libgnat/a-cihase.adb +++ b/gcc/ada/libgnat/a-cihase.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -41,7 +41,9 @@ with Ada.Containers.Prime_Numbers; with System; use type System.Address; -package body Ada.Containers.Indefinite_Hashed_Sets is +package body Ada.Containers.Indefinite_Hashed_Sets with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -320,6 +322,8 @@ package body Ada.Containers.Indefinite_Hashed_Sets is Position : in out Cursor) is begin + TC_Check (Container.HT.TC); + if Checks and then Position.Node = null then raise Constraint_Error with "Position cursor equals No_Element"; end if; @@ -333,8 +337,6 @@ package body Ada.Containers.Indefinite_Hashed_Sets is raise Program_Error with "Position cursor designates wrong set"; end if; - TC_Check (Container.HT.TC); - pragma Assert (Vet (Position), "Position cursor is bad"); HT_Ops.Delete_Node_Sans_Free (Container.HT, Position.Node); @@ -1321,13 +1323,13 @@ package body Ada.Containers.Indefinite_Hashed_Sets is pragma Warnings (Off, X); begin + TE_Check (Container.HT.TC); + if Checks and then Node = null then raise Constraint_Error with "attempt to replace element not in set"; end if; - TE_Check (Container.HT.TC); - X := Node.Element; declare @@ -2227,7 +2229,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is Control => (Controlled with HT.TC'Unrestricted_Access, - Container => Container'Access, + Container => Container'Unchecked_Access, Index => HT_Ops.Index (HT, Position.Node), Old_Pos => Position, Old_Hash => Hash (Key (Position)))) @@ -2261,7 +2263,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is Control => (Controlled with HT.TC'Unrestricted_Access, - Container => Container'Access, + Container => Container'Unchecked_Access, Index => HT_Ops.Index (HT, P.Node), Old_Pos => P, Old_Hash => Hash (Key))) diff --git a/gcc/ada/libgnat/a-cihase.ads b/gcc/ada/libgnat/a-cihase.ads index ed62c01..926e07f 100644 --- a/gcc/ada/libgnat/a-cihase.ads +++ b/gcc/ada/libgnat/a-cihase.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -48,7 +48,9 @@ generic with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Indefinite_Hashed_Sets is +package Ada.Containers.Indefinite_Hashed_Sets with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-cimutr.adb b/gcc/ada/libgnat/a-cimutr.adb index c5cf221..293275a 100644 --- a/gcc/ada/libgnat/a-cimutr.adb +++ b/gcc/ada/libgnat/a-cimutr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -31,7 +31,9 @@ with Ada.Unchecked_Deallocation; with System; use type System.Address; -package body Ada.Containers.Indefinite_Multiway_Trees is +package body Ada.Containers.Indefinite_Multiway_Trees with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -261,6 +263,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is Element : Element_Access; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -273,8 +277,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is return; end if; - TC_Check (Container.TC); - declare -- The element allocator may need an accessibility check in the case -- the actual type is class-wide or has access discriminants (see @@ -738,6 +740,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is Count : Count_Type; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -746,8 +750,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is raise Program_Error with "Parent cursor not in container"; end if; - TC_Check (Container.TC); - -- Deallocate_Children returns a count of the number of nodes -- that it deallocates, but it works by incrementing the -- value that is passed in. We must therefore initialize @@ -772,6 +774,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is X : Tree_Node_Access; begin + TC_Check (Container.TC); + if Checks and then Position = No_Element then raise Constraint_Error with "Position cursor has no element"; end if; @@ -789,8 +793,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is raise Constraint_Error with "Position cursor does not designate leaf"; end if; - TC_Check (Container.TC); - X := Position.Node; Position := No_Element; @@ -819,6 +821,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is Count : Count_Type; begin + TC_Check (Container.TC); + if Checks and then Position = No_Element then raise Constraint_Error with "Position cursor has no element"; end if; @@ -832,8 +836,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is raise Program_Error with "Position cursor designates root"; end if; - TC_Check (Container.TC); - X := Position.Node; Position := No_Element; @@ -1191,6 +1193,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is Element : Element_Access; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -1215,8 +1219,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is return; end if; - TC_Check (Container.TC); - declare -- The element allocator may need an accessibility check in the case -- the actual type is class-wide or has access discriminants (see @@ -1735,6 +1737,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is Element : Element_Access; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -1747,8 +1751,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is return; end if; - TC_Check (Container.TC); - declare -- The element allocator may need an accessibility check in the case -- the actual type is class-wide or has access discriminants (see @@ -2096,6 +2098,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is E, X : Element_Access; begin + TE_Check (Container.TC); + if Checks and then Position = No_Element then raise Constraint_Error with "Position cursor has no element"; end if; @@ -2109,8 +2113,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is raise Program_Error with "Position cursor designates root"; end if; - TE_Check (Container.TC); - declare -- The element allocator may need an accessibility check in the case -- the actual type is class-wide or has access discriminants (see @@ -2182,6 +2184,9 @@ package body Ada.Containers.Indefinite_Multiway_Trees is Count : Count_Type; begin + TC_Check (Target.TC); + TC_Check (Source.TC); + if Checks and then Target_Parent = No_Element then raise Constraint_Error with "Target_Parent cursor has no element"; end if; @@ -2219,8 +2224,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is return; end if; - TC_Check (Target.TC); - if Checks and then Is_Reachable (From => Target_Parent.Node, To => Source_Parent.Node) then @@ -2236,9 +2239,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is return; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - -- We cache the count of the nodes we have allocated, so that operation -- Node_Count can execute in O(1) time. But that means we must count the -- nodes in the subtree we remove from Source and insert into Target, in @@ -2265,6 +2265,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is Source_Parent : Cursor) is begin + TC_Check (Container.TC); + if Checks and then Target_Parent = No_Element then raise Constraint_Error with "Target_Parent cursor has no element"; end if; @@ -2304,8 +2306,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is return; end if; - TC_Check (Container.TC); - if Checks and then Is_Reachable (From => Target_Parent.Node, To => Source_Parent.Node) then @@ -2363,6 +2363,9 @@ package body Ada.Containers.Indefinite_Multiway_Trees is Subtree_Count : Count_Type; begin + TC_Check (Target.TC); + TC_Check (Source.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -2404,8 +2407,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is end if; end if; - TC_Check (Target.TC); - if Checks and then Is_Reachable (From => Parent.Node, To => Position.Node) then @@ -2420,9 +2421,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is return; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - -- This is an unfortunate feature of this API: we must count the nodes -- in the subtree that we remove from the source tree, which is an O(n) -- operation. It would have been better if the Tree container did not @@ -2455,6 +2453,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is Position : Cursor) is begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -2500,8 +2500,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is end if; end if; - TC_Check (Container.TC); - if Checks and then Is_Reachable (From => Parent.Node, To => Position.Node) then @@ -2553,6 +2551,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is I, J : Cursor) is begin + TE_Check (Container.TC); + if Checks and then I = No_Element then raise Constraint_Error with "I cursor has no element"; end if; @@ -2581,8 +2581,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is raise Program_Error with "J cursor designates root"; end if; - TE_Check (Container.TC); - declare EI : constant Element_Access := I.Node.Element; diff --git a/gcc/ada/libgnat/a-cimutr.ads b/gcc/ada/libgnat/a-cimutr.ads index 6441aeb..474a1b5 100644 --- a/gcc/ada/libgnat/a-cimutr.ads +++ b/gcc/ada/libgnat/a-cimutr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -42,7 +42,9 @@ generic with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Indefinite_Multiway_Trees is +package Ada.Containers.Indefinite_Multiway_Trees with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-ciorma.adb b/gcc/ada/libgnat/a-ciorma.adb index 818a2ae..86cd01f 100644 --- a/gcc/ada/libgnat/a-ciorma.adb +++ b/gcc/ada/libgnat/a-ciorma.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -39,7 +39,9 @@ pragma Elaborate_All (Ada.Containers.Red_Black_Trees.Generic_Keys); with System; use type System.Address; -package body Ada.Containers.Indefinite_Ordered_Maps is +package body Ada.Containers.Indefinite_Ordered_Maps with + SPARK_Mode => Off +is pragma Suppress (All_Checks); pragma Warnings (Off, "variable ""Busy*"" is not referenced"); @@ -1435,12 +1437,12 @@ package body Ada.Containers.Indefinite_Ordered_Maps is E : Element_Access; begin + TE_Check (Container.Tree.TC); + if Checks and then Node = null then raise Constraint_Error with "key not in map"; end if; - TE_Check (Container.Tree.TC); - K := Node.Key; E := Node.Element; @@ -1476,6 +1478,8 @@ package body Ada.Containers.Indefinite_Ordered_Maps is New_Item : Element_Type) is begin + TE_Check (Container.Tree.TC); + if Checks and then Position.Node = null then raise Constraint_Error with "Position cursor of Replace_Element equals No_Element"; @@ -1494,8 +1498,6 @@ package body Ada.Containers.Indefinite_Ordered_Maps is "Position cursor of Replace_Element designates wrong map"; end if; - TE_Check (Container.Tree.TC); - pragma Assert (Vet (Container.Tree, Position.Node), "Position cursor of Replace_Element is bad"); diff --git a/gcc/ada/libgnat/a-ciorma.ads b/gcc/ada/libgnat/a-ciorma.ads index 5a872dd..a7799a6 100644 --- a/gcc/ada/libgnat/a-ciorma.ads +++ b/gcc/ada/libgnat/a-ciorma.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -44,7 +44,9 @@ generic with function "<" (Left, Right : Key_Type) return Boolean is <>; with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Indefinite_Ordered_Maps is +package Ada.Containers.Indefinite_Ordered_Maps with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-ciormu.adb b/gcc/ada/libgnat/a-ciormu.adb index 70fb4cf..110d734 100644 --- a/gcc/ada/libgnat/a-ciormu.adb +++ b/gcc/ada/libgnat/a-ciormu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -40,7 +40,9 @@ pragma Elaborate_All (Ada.Containers.Red_Black_Trees.Generic_Set_Operations); with System; use type System.Address; -package body Ada.Containers.Indefinite_Ordered_Multisets is +package body Ada.Containers.Indefinite_Ordered_Multisets with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); diff --git a/gcc/ada/libgnat/a-ciormu.ads b/gcc/ada/libgnat/a-ciormu.ads index f8f4991..474ccc7 100644 --- a/gcc/ada/libgnat/a-ciormu.ads +++ b/gcc/ada/libgnat/a-ciormu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -43,7 +43,9 @@ generic with function "<" (Left, Right : Element_Type) return Boolean is <>; with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Indefinite_Ordered_Multisets is +package Ada.Containers.Indefinite_Ordered_Multisets with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-ciorse.adb b/gcc/ada/libgnat/a-ciorse.adb index 7cc7dca..772061d 100644 --- a/gcc/ada/libgnat/a-ciorse.adb +++ b/gcc/ada/libgnat/a-ciorse.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -42,7 +42,9 @@ with Ada.Unchecked_Deallocation; with System; use type System.Address; -package body Ada.Containers.Indefinite_Ordered_Sets is +package body Ada.Containers.Indefinite_Ordered_Sets with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -1013,7 +1015,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is Control => (Controlled with Tree.TC'Unrestricted_Access, - Container => Container'Access, + Container => Container'Unchecked_Access, Pos => Position, Old_Key => new Key_Type'(Key (Position)))) do @@ -1045,7 +1047,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is Control => (Controlled with Tree.TC'Unrestricted_Access, - Container => Container'Access, + Container => Container'Unchecked_Access, Pos => Find (Container, Key), Old_Key => new Key_Type'(Key))) do @@ -1788,12 +1790,12 @@ package body Ada.Containers.Indefinite_Ordered_Sets is pragma Warnings (Off, X); begin + TE_Check (Container.Tree.TC); + if Checks and then Node = null then raise Constraint_Error with "attempt to replace element not in set"; end if; - TE_Check (Container.Tree.TC); - declare -- The element allocator may need an accessibility check in the case -- the actual type is class-wide or has access discriminants (see diff --git a/gcc/ada/libgnat/a-ciorse.ads b/gcc/ada/libgnat/a-ciorse.ads index 0a98d18..1eb8135 100644 --- a/gcc/ada/libgnat/a-ciorse.ads +++ b/gcc/ada/libgnat/a-ciorse.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -44,7 +44,9 @@ generic with function "<" (Left, Right : Element_Type) return Boolean is <>; with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Indefinite_Ordered_Sets is +package Ada.Containers.Indefinite_Ordered_Sets with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-clrefi.adb b/gcc/ada/libgnat/a-clrefi.adb index 51d1a84..2d2c78c 100644 --- a/gcc/ada/libgnat/a-clrefi.adb +++ b/gcc/ada/libgnat/a-clrefi.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2007-2020, 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- -- diff --git a/gcc/ada/libgnat/a-clrefi.ads b/gcc/ada/libgnat/a-clrefi.ads index 27e9c39..4aace2d 100644 --- a/gcc/ada/libgnat/a-clrefi.ads +++ b/gcc/ada/libgnat/a-clrefi.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2007-2020, 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- -- diff --git a/gcc/ada/libgnat/a-coboho.adb b/gcc/ada/libgnat/a-coboho.adb index 45b2210..eefb106 100644 --- a/gcc/ada/libgnat/a-coboho.adb +++ b/gcc/ada/libgnat/a-coboho.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2015-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2015-2020, 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- -- diff --git a/gcc/ada/libgnat/a-coboho.ads b/gcc/ada/libgnat/a-coboho.ads index 036569c..cb24c89 100644 --- a/gcc/ada/libgnat/a-coboho.ads +++ b/gcc/ada/libgnat/a-coboho.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2015-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2015-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cobove.adb b/gcc/ada/libgnat/a-cobove.adb index 7508794..fe94ea5 100644 --- a/gcc/ada/libgnat/a-cobove.adb +++ b/gcc/ada/libgnat/a-cobove.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -483,6 +483,8 @@ package body Ada.Containers.Bounded_Vectors is Off : Count_Type'Base; -- Index expressed as offset from IT'First begin + TC_Check (Container.TC); + -- Delete removes items from the vector, the number of which is the -- minimum of the specified Count and the items (if any) that exist from -- Index to Container.Last. There are no constraints on the specified @@ -532,8 +534,6 @@ package body Ada.Containers.Bounded_Vectors is -- the count on exit. Delete checks the count to determine whether it is -- being called while the associated callback procedure is executing. - TC_Check (Container.TC); - -- We first calculate what's available for deletion starting at -- Index. Here and elsewhere we use the wider of Index_Type'Base and -- Count_Type'Base as the type for intermediate values. (See function @@ -636,15 +636,6 @@ package body Ada.Containers.Bounded_Vectors is Count : Count_Type := 1) is begin - -- It is not permitted to delete items while the container is busy (for - -- example, we're in the middle of a passive iteration). However, we - -- always treat deleting 0 items as a no-op, even when we're busy, so we - -- simply return without checking. - - if Count = 0 then - return; - end if; - -- The tampering bits exist to prevent an item from being deleted (or -- otherwise harmfully manipulated) while it is being visited. Query, -- Update, and Iterate increment the busy count on entry, and decrement @@ -654,6 +645,10 @@ package body Ada.Containers.Bounded_Vectors is TC_Check (Container.TC); + if Count = 0 then + return; + end if; + -- There is no restriction on how large Count can be when deleting -- items. If it is equal or greater than the current length, then this -- is equivalent to clearing the vector. (In particular, there's no need @@ -882,6 +877,8 @@ package body Ada.Containers.Bounded_Vectors is return; end if; + TC_Check (Source.TC); + if Checks and then Target'Address = Source'Address then raise Program_Error with "Target and Source denote same non-empty container"; @@ -892,8 +889,6 @@ package body Ada.Containers.Bounded_Vectors is return; end if; - TC_Check (Source.TC); - I := Target.Length; Target.Set_Length (I + Source.Length); @@ -1021,6 +1016,14 @@ package body Ada.Containers.Bounded_Vectors is J : Count_Type'Base; -- scratch begin + -- The tampering bits exist to prevent an item from being harmfully + -- manipulated while it is being visited. Query, Update, and Iterate + -- increment the busy count on entry, and decrement the count on + -- exit. Insert checks the count to determine whether it is being called + -- while the associated callback procedure is executing. + + TC_Check (Container.TC); + -- As a precondition on the generic actual Index_Type, the base type -- must include Index_Type'Pred (Index_Type'First); this is the value -- that Container.Last assumes when the vector is empty. However, we do @@ -1176,14 +1179,6 @@ package body Ada.Containers.Bounded_Vectors is raise Constraint_Error with "Count is out of range"; end if; - -- The tampering bits exist to prevent an item from being harmfully - -- manipulated while it is being visited. Query, Update, and Iterate - -- increment the busy count on entry, and decrement the count on - -- exit. Insert checks the count to determine whether it is being called - -- while the associated callback procedure is executing. - - TC_Check (Container.TC); - if Checks and then New_Length > Container.Capacity then raise Capacity_Error with "New length is larger than capacity"; end if; @@ -1491,6 +1486,14 @@ package body Ada.Containers.Bounded_Vectors is J : Count_Type'Base; -- scratch begin + -- The tampering bits exist to prevent an item from being harmfully + -- manipulated while it is being visited. Query, Update, and Iterate + -- increment the busy count on entry, and decrement the count on + -- exit. Insert checks the count to determine whether it is being called + -- while the associated callback procedure is executing. + + TC_Check (Container.TC); + -- As a precondition on the generic actual Index_Type, the base type -- must include Index_Type'Pred (Index_Type'First); this is the value -- that Container.Last assumes when the vector is empty. However, we do @@ -1646,14 +1649,6 @@ package body Ada.Containers.Bounded_Vectors is raise Constraint_Error with "Count is out of range"; end if; - -- The tampering bits exist to prevent an item from being harmfully - -- manipulated while it is being visited. Query, Update, and Iterate - -- increment the busy count on entry, and decrement the count on - -- exit. Insert checks the count to determine whether it is being called - -- while the associated callback procedure is executing. - - TC_Check (Container.TC); - -- An internal array has already been allocated, so we need to check -- whether there is enough unused storage for the new items. @@ -1937,14 +1932,14 @@ package body Ada.Containers.Bounded_Vectors is return; end if; + TC_Check (Target.TC); + TC_Check (Source.TC); + if Checks and then Target.Capacity < Source.Length then raise Capacity_Error -- ??? with "Target capacity is less than Source length"; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - -- Clear Target now, in case element assignment fails Target.Last := No_Index; @@ -2222,12 +2217,12 @@ package body Ada.Containers.Bounded_Vectors is New_Item : Element_Type) is begin + TE_Check (Container.TC); + if Checks and then Index > Container.Last then raise Constraint_Error with "Index is out of range"; end if; - TE_Check (Container.TC); - Container.Elements (To_Array_Index (Index)) := New_Item; end Replace_Element; @@ -2237,6 +2232,8 @@ package body Ada.Containers.Bounded_Vectors is New_Item : Element_Type) is begin + TE_Check (Container.TC); + if Checks and then Position.Container = null then raise Constraint_Error with "Position cursor has no element"; end if; @@ -2250,8 +2247,6 @@ package body Ada.Containers.Bounded_Vectors is raise Constraint_Error with "Position cursor is out of range"; end if; - TE_Check (Container.TC); - Container.Elements (To_Array_Index (Position.Index)) := New_Item; end Replace_Element; @@ -2425,6 +2420,8 @@ package body Ada.Containers.Bounded_Vectors is E : Elements_Array renames Container.Elements; begin + TE_Check (Container.TC); + if Checks and then I > Container.Last then raise Constraint_Error with "I index is out of range"; end if; @@ -2437,8 +2434,6 @@ package body Ada.Containers.Bounded_Vectors is return; end if; - TE_Check (Container.TC); - declare EI_Copy : constant Element_Type := E (To_Array_Index (I)); begin diff --git a/gcc/ada/libgnat/a-cobove.ads b/gcc/ada/libgnat/a-cobove.ads index 34a1fc00..72da498 100644 --- a/gcc/ada/libgnat/a-cobove.ads +++ b/gcc/ada/libgnat/a-cobove.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cofove.adb b/gcc/ada/libgnat/a-cofove.adb index 1240a50..41c69a8 100644 --- a/gcc/ada/libgnat/a-cofove.adb +++ b/gcc/ada/libgnat/a-cofove.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- @@ -868,7 +868,11 @@ is -- less than 0, so it is safe to compute the following sum without -- fear of overflow. + pragma Warnings + (Off, "value not in range of type ""T"" defined at line 4"); Index := No_Index + Index_Type'Base (Count_Type'Last); + pragma Warnings + (On, "value not in range of type ""T"" defined at line 4"); if Index <= Index_Type'Last then diff --git a/gcc/ada/libgnat/a-cofove.ads b/gcc/ada/libgnat/a-cofove.ads index 5fb3bc9..5712e63 100644 --- a/gcc/ada/libgnat/a-cofove.ads +++ b/gcc/ada/libgnat/a-cofove.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cofuba.adb b/gcc/ada/libgnat/a-cofuba.adb index 5c5f488..6f2b1f3 100644 --- a/gcc/ada/libgnat/a-cofuba.adb +++ b/gcc/ada/libgnat/a-cofuba.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2016-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2016-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cofuba.ads b/gcc/ada/libgnat/a-cofuba.ads index b693baa..7865342 100644 --- a/gcc/ada/libgnat/a-cofuba.ads +++ b/gcc/ada/libgnat/a-cofuba.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2016-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2016-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cofuma.adb b/gcc/ada/libgnat/a-cofuma.adb index e8da187..4defdf2 100644 --- a/gcc/ada/libgnat/a-cofuma.adb +++ b/gcc/ada/libgnat/a-cofuma.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2016-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2016-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cofuma.ads b/gcc/ada/libgnat/a-cofuma.ads index e458b06..d50d5de 100644 --- a/gcc/ada/libgnat/a-cofuma.ads +++ b/gcc/ada/libgnat/a-cofuma.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2016-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2016-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cofuse.adb b/gcc/ada/libgnat/a-cofuse.adb index e087d64..668c6d0 100644 --- a/gcc/ada/libgnat/a-cofuse.adb +++ b/gcc/ada/libgnat/a-cofuse.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2016-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2016-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cofuse.ads b/gcc/ada/libgnat/a-cofuse.ads index c91a1d1..4209e74 100644 --- a/gcc/ada/libgnat/a-cofuse.ads +++ b/gcc/ada/libgnat/a-cofuse.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2016-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2016-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cofuve.adb b/gcc/ada/libgnat/a-cofuve.adb index 026a32c..0ff2204 100644 --- a/gcc/ada/libgnat/a-cofuve.adb +++ b/gcc/ada/libgnat/a-cofuve.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2016-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2016-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cofuve.ads b/gcc/ada/libgnat/a-cofuve.ads index 804d7b0..cfccf1d 100644 --- a/gcc/ada/libgnat/a-cofuve.ads +++ b/gcc/ada/libgnat/a-cofuve.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2016-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2016-2020, 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 -- @@ -92,7 +92,8 @@ package Ada.Containers.Functional_Vectors with SPARK_Mode is Length (Container)); pragma Annotate (GNATprove, Inline_For_Proof, Last); - function First return Extended_Index is (Index_Type'First); + function First return Extended_Index is (Index_Type'First) with + Global => null; -- First index of a sequence ------------------------ diff --git a/gcc/ada/libgnat/a-cogeso.adb b/gcc/ada/libgnat/a-cogeso.adb index 447b03d..7a71772 100644 --- a/gcc/ada/libgnat/a-cogeso.adb +++ b/gcc/ada/libgnat/a-cogeso.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cogeso.ads b/gcc/ada/libgnat/a-cogeso.ads index e77558f..6457e64 100644 --- a/gcc/ada/libgnat/a-cogeso.ads +++ b/gcc/ada/libgnat/a-cogeso.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cohama.adb b/gcc/ada/libgnat/a-cohama.adb index e7da020..7f2d8e1 100644 --- a/gcc/ada/libgnat/a-cohama.adb +++ b/gcc/ada/libgnat/a-cohama.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -39,7 +39,9 @@ with Ada.Containers.Helpers; use Ada.Containers.Helpers; with System; use type System.Address; -package body Ada.Containers.Hashed_Maps is +package body Ada.Containers.Hashed_Maps with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -314,6 +316,8 @@ package body Ada.Containers.Hashed_Maps is procedure Delete (Container : in out Map; Position : in out Cursor) is begin + TC_Check (Container.HT.TC); + if Checks and then Position.Node = null then raise Constraint_Error with "Position cursor of Delete equals No_Element"; @@ -325,8 +329,6 @@ package body Ada.Containers.Hashed_Maps is "Position cursor of Delete designates wrong map"; end if; - TC_Check (Container.HT.TC); - pragma Assert (Vet (Position), "bad cursor in Delete"); HT_Ops.Delete_Node_Sans_Free (Container.HT, Position.Node); @@ -999,13 +1001,13 @@ package body Ada.Containers.Hashed_Maps is Node : constant Node_Access := Key_Ops.Find (Container.HT, Key); begin + TE_Check (Container.HT.TC); + if Checks and then Node = null then raise Constraint_Error with "attempt to replace key not in map"; end if; - TE_Check (Container.HT.TC); - Node.Key := Key; Node.Element := New_Item; end Replace; @@ -1020,6 +1022,8 @@ package body Ada.Containers.Hashed_Maps is New_Item : Element_Type) is begin + TE_Check (Position.Container.HT.TC); + if Checks and then Position.Node = null then raise Constraint_Error with "Position cursor of Replace_Element equals No_Element"; @@ -1031,8 +1035,6 @@ package body Ada.Containers.Hashed_Maps is "Position cursor of Replace_Element designates wrong map"; end if; - TE_Check (Position.Container.HT.TC); - pragma Assert (Vet (Position), "bad cursor in Replace_Element"); Position.Node.Element := New_Item; diff --git a/gcc/ada/libgnat/a-cohama.ads b/gcc/ada/libgnat/a-cohama.ads index d16e246..9d927bd 100644 --- a/gcc/ada/libgnat/a-cohama.ads +++ b/gcc/ada/libgnat/a-cohama.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -88,7 +88,9 @@ generic -- map values returns an unspecified value. The exact arguments and number -- of calls of this generic formal function by the function "=" on map -- values are unspecified. -package Ada.Containers.Hashed_Maps is +package Ada.Containers.Hashed_Maps with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-cohase.adb b/gcc/ada/libgnat/a-cohase.adb index 61ebf87..bc4e53f 100644 --- a/gcc/ada/libgnat/a-cohase.adb +++ b/gcc/ada/libgnat/a-cohase.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -41,7 +41,9 @@ with Ada.Containers.Prime_Numbers; with System; use type System.Address; -package body Ada.Containers.Hashed_Sets is +package body Ada.Containers.Hashed_Sets with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -299,6 +301,8 @@ package body Ada.Containers.Hashed_Sets is Position : in out Cursor) is begin + TC_Check (Container.HT.TC); + if Checks and then Position.Node = null then raise Constraint_Error with "Position cursor equals No_Element"; end if; @@ -308,8 +312,6 @@ package body Ada.Containers.Hashed_Sets is raise Program_Error with "Position cursor designates wrong set"; end if; - TC_Check (Container.HT.TC); - pragma Assert (Vet (Position), "bad cursor in Delete"); HT_Ops.Delete_Node_Sans_Free (Container.HT, Position.Node); @@ -1204,13 +1206,13 @@ package body Ada.Containers.Hashed_Sets is Element_Keys.Find (Container.HT, New_Item); begin + TE_Check (Container.HT.TC); + if Checks and then Node = null then raise Constraint_Error with "attempt to replace element not in set"; end if; - TE_Check (Container.HT.TC); - Node.Element := New_Item; end Replace; diff --git a/gcc/ada/libgnat/a-cohase.ads b/gcc/ada/libgnat/a-cohase.ads index 7cfd1a3..3645ed0 100644 --- a/gcc/ada/libgnat/a-cohase.ads +++ b/gcc/ada/libgnat/a-cohase.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -48,7 +48,9 @@ generic with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Hashed_Sets is +package Ada.Containers.Hashed_Sets with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-cohata.ads b/gcc/ada/libgnat/a-cohata.ads index cf209bd..9033c52 100644 --- a/gcc/ada/libgnat/a-cohata.ads +++ b/gcc/ada/libgnat/a-cohata.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-coinho.adb b/gcc/ada/libgnat/a-coinho.adb index bc06ffb..c5da943 100644 --- a/gcc/ada/libgnat/a-coinho.adb +++ b/gcc/ada/libgnat/a-coinho.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2012-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2012-2020, 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- -- @@ -304,6 +304,30 @@ package body Ada.Containers.Indefinite_Holders is end; end Replace_Element; + ---------- + -- Swap -- + ---------- + + procedure Swap (Left, Right : in out Holder) is + begin + if Left.Busy /= 0 then + raise Program_Error with "attempt to tamper with elements"; + end if; + + if Right.Busy /= 0 then + raise Program_Error with "attempt to tamper with elements"; + end if; + + if Left.Element /= Right.Element then + declare + Tmp : constant Element_Access := Left.Element; + begin + Left.Element := Right.Element; + Right.Element := Tmp; + end; + end if; + end Swap; + --------------- -- To_Holder -- --------------- diff --git a/gcc/ada/libgnat/a-coinho.ads b/gcc/ada/libgnat/a-coinho.ads index c9035cd..bf6165e 100644 --- a/gcc/ada/libgnat/a-coinho.ads +++ b/gcc/ada/libgnat/a-coinho.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- @@ -92,6 +92,8 @@ package Ada.Containers.Indefinite_Holders is procedure Move (Target : in out Holder; Source : in out Holder); + procedure Swap (Left, Right : in out Holder); + private use Ada.Finalization; diff --git a/gcc/ada/libgnat/a-coinho__shared.adb b/gcc/ada/libgnat/a-coinho__shared.adb index d96069f..43f5d52 100644 --- a/gcc/ada/libgnat/a-coinho__shared.adb +++ b/gcc/ada/libgnat/a-coinho__shared.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2013-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2013-2020, 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- -- @@ -426,6 +426,30 @@ package body Ada.Containers.Indefinite_Holders is end if; end Replace_Element; + ---------- + -- Swap -- + ---------- + + procedure Swap (Left, Right : in out Holder) is + begin + if Left.Busy /= 0 then + raise Program_Error with "attempt to tamper with elements"; + end if; + + if Right.Busy /= 0 then + raise Program_Error with "attempt to tamper with elements"; + end if; + + if Left.Reference /= Right.Reference then + declare + Tmp : constant Shared_Holder_Access := Left.Reference; + begin + Left.Reference := Right.Reference; + Right.Reference := Tmp; + end; + end if; + end Swap; + --------------- -- To_Holder -- --------------- diff --git a/gcc/ada/libgnat/a-coinho__shared.ads b/gcc/ada/libgnat/a-coinho__shared.ads index e29e5d0..0345b5e 100644 --- a/gcc/ada/libgnat/a-coinho__shared.ads +++ b/gcc/ada/libgnat/a-coinho__shared.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2013-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2013-2020, 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 -- @@ -96,6 +96,8 @@ package Ada.Containers.Indefinite_Holders is procedure Move (Target : in out Holder; Source : in out Holder); + procedure Swap (Left, Right : in out Holder); + private use Ada.Finalization; diff --git a/gcc/ada/libgnat/a-coinve.adb b/gcc/ada/libgnat/a-coinve.adb index 0dfe1c6..79e36ae 100644 --- a/gcc/ada/libgnat/a-coinve.adb +++ b/gcc/ada/libgnat/a-coinve.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -32,7 +32,9 @@ with Ada.Unchecked_Deallocation; with System; use type System.Address; -package body Ada.Containers.Indefinite_Vectors is +package body Ada.Containers.Indefinite_Vectors with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -408,6 +410,14 @@ package body Ada.Containers.Indefinite_Vectors is J : Index_Type'Base; -- first index of items that slide down begin + -- The tampering bits exist to prevent an item from being deleted (or + -- otherwise harmfully manipulated) while it is being visited. Query, + -- Update, and Iterate increment the busy count on entry, and decrement + -- the count on exit. Delete checks the count to determine whether it is + -- being called while the associated callback procedure is executing. + + TC_Check (Container.TC); + -- Delete removes items from the vector, the number of which is the -- minimum of the specified Count and the items (if any) that exist from -- Index to Container.Last. There are no constraints on the specified @@ -460,14 +470,6 @@ package body Ada.Containers.Indefinite_Vectors is return; end if; - -- The tampering bits exist to prevent an item from being deleted (or - -- otherwise harmfully manipulated) while it is being visited. Query, - -- Update, and Iterate increment the busy count on entry, and decrement - -- the count on exit. Delete checks the count to determine whether it is - -- being called while the associated callback procedure is executing. - - TC_Check (Container.TC); - -- We first calculate what's available for deletion starting at -- Index. Here and elsewhere we use the wider of Index_Type'Base and -- Count_Type'Base as the type for intermediate values. (See function @@ -942,6 +944,8 @@ package body Ada.Containers.Indefinite_Vectors is I, J : Index_Type'Base; begin + TC_Check (Source.TC); + -- The semantics of Merge changed slightly per AI05-0021. It was -- originally the case that if Target and Source denoted the same -- container object, then the GNAT implementation of Merge did @@ -964,8 +968,6 @@ package body Ada.Containers.Indefinite_Vectors is return; end if; - TC_Check (Source.TC); - I := Target.Last; -- original value (before Set_Length) Target.Set_Length (Length (Target) + Length (Source)); @@ -1128,6 +1130,14 @@ package body Ada.Containers.Indefinite_Vectors is Dst : Elements_Access; -- new, expanded internal array begin + -- The tampering bits exist to prevent an item from being harmfully + -- manipulated while it is being visited. Query, Update, and Iterate + -- increment the busy count on entry, and decrement the count on + -- exit. Insert checks the count to determine whether it is being called + -- while the associated callback procedure is executing. + + TC_Check (Container.TC); + if Checks then -- As a precondition on the generic actual Index_Type, the base type -- must include Index_Type'Pred (Index_Type'First); this is the value @@ -1335,14 +1345,6 @@ package body Ada.Containers.Indefinite_Vectors is return; end if; - -- The tampering bits exist to prevent an item from being harmfully - -- manipulated while it is being visited. Query, Update, and Iterate - -- increment the busy count on entry, and decrement the count on - -- exit. Insert checks the count to determine whether it is being called - -- while the associated callback procedure is executing. - - TC_Check (Container.TC); - if New_Length <= Container.Elements.EA'Length then -- In this case, we're inserting elements into a vector that has @@ -1908,6 +1910,14 @@ package body Ada.Containers.Indefinite_Vectors is Dst : Elements_Access; -- new, expanded internal array begin + -- The tampering bits exist to prevent an item from being harmfully + -- manipulated while it is being visited. Query, Update, and Iterate + -- increment the busy count on entry, and decrement the count on exit. + -- Insert checks the count to determine whether it is being called while + -- the associated callback procedure is executing. + + TC_Check (Container.TC); + if Checks then -- As a precondition on the generic actual Index_Type, the base type -- must include Index_Type'Pred (Index_Type'First); this is the value @@ -2090,14 +2100,6 @@ package body Ada.Containers.Indefinite_Vectors is return; end if; - -- The tampering bits exist to prevent an item from being harmfully - -- manipulated while it is being visited. Query, Update, and Iterate - -- increment the busy count on entry, and decrement the count on exit. - -- Insert checks the count to determine whether it is being called while - -- the associated callback procedure is executing. - - TC_Check (Container.TC); - if New_Length <= Container.Elements.EA'Length then -- In this case, we are inserting elements into a vector that has @@ -2757,12 +2759,12 @@ package body Ada.Containers.Indefinite_Vectors is New_Item : Element_Type) is begin + TE_Check (Container.TC); + if Checks and then Index > Container.Last then raise Constraint_Error with "Index is out of range"; end if; - TE_Check (Container.TC); - declare X : Element_Access := Container.Elements.EA (Index); @@ -2784,6 +2786,8 @@ package body Ada.Containers.Indefinite_Vectors is New_Item : Element_Type) is begin + TE_Check (Container.TC); + if Checks then if Position.Container = null then raise Constraint_Error with "Position cursor has no element"; @@ -2798,8 +2802,6 @@ package body Ada.Containers.Indefinite_Vectors is end if; end if; - TE_Check (Container.TC); - declare X : Element_Access := Container.Elements.EA (Position.Index); @@ -3258,6 +3260,8 @@ package body Ada.Containers.Indefinite_Vectors is procedure Swap (Container : in out Vector; I, J : Index_Type) is begin + TE_Check (Container.TC); + if Checks then if I > Container.Last then raise Constraint_Error with "I index is out of range"; @@ -3272,8 +3276,6 @@ package body Ada.Containers.Indefinite_Vectors is return; end if; - TE_Check (Container.TC); - declare EI : Element_Access renames Container.Elements.EA (I); EJ : Element_Access renames Container.Elements.EA (J); diff --git a/gcc/ada/libgnat/a-coinve.ads b/gcc/ada/libgnat/a-coinve.ads index 9ca73ce..075a184 100644 --- a/gcc/ada/libgnat/a-coinve.ads +++ b/gcc/ada/libgnat/a-coinve.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -43,7 +43,9 @@ generic with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Indefinite_Vectors is +package Ada.Containers.Indefinite_Vectors with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-colien.adb b/gcc/ada/libgnat/a-colien.adb index 7211c5e..9ea536d 100644 --- a/gcc/ada/libgnat/a-colien.adb +++ b/gcc/ada/libgnat/a-colien.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1996-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1996-2020, 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- -- diff --git a/gcc/ada/libgnat/a-colien.ads b/gcc/ada/libgnat/a-colien.ads index 87de37b..cdcb842 100644 --- a/gcc/ada/libgnat/a-colien.ads +++ b/gcc/ada/libgnat/a-colien.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1996-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1996-2020, 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- -- diff --git a/gcc/ada/libgnat/a-colire.adb b/gcc/ada/libgnat/a-colire.adb index 32d78df..c341773 100644 --- a/gcc/ada/libgnat/a-colire.adb +++ b/gcc/ada/libgnat/a-colire.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, 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- -- diff --git a/gcc/ada/libgnat/a-colire.ads b/gcc/ada/libgnat/a-colire.ads index cf04606..975c0db 100644 --- a/gcc/ada/libgnat/a-colire.ads +++ b/gcc/ada/libgnat/a-colire.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, 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- -- diff --git a/gcc/ada/libgnat/a-comlin.adb b/gcc/ada/libgnat/a-comlin.adb index 1471282..e6e6174 100644 --- a/gcc/ada/libgnat/a-comlin.adb +++ b/gcc/ada/libgnat/a-comlin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-comlin.ads b/gcc/ada/libgnat/a-comlin.ads index 4191fd3..8dbbb07 100644 --- a/gcc/ada/libgnat/a-comlin.ads +++ b/gcc/ada/libgnat/a-comlin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-comutr.adb b/gcc/ada/libgnat/a-comutr.adb index 9e6a00e..76ff751 100644 --- a/gcc/ada/libgnat/a-comutr.adb +++ b/gcc/ada/libgnat/a-comutr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -32,7 +32,9 @@ with Ada.Unchecked_Deallocation; with System; use type System.Address; -package body Ada.Containers.Multiway_Trees is +package body Ada.Containers.Multiway_Trees with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -263,6 +265,8 @@ package body Ada.Containers.Multiway_Trees is Last : Tree_Node_Access; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -275,8 +279,6 @@ package body Ada.Containers.Multiway_Trees is return; end if; - TC_Check (Container.TC); - First := new Tree_Node_Type'(Parent => Parent.Node, Element => New_Item, others => <>); @@ -699,6 +701,8 @@ package body Ada.Containers.Multiway_Trees is Count : Count_Type; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -707,8 +711,6 @@ package body Ada.Containers.Multiway_Trees is raise Program_Error with "Parent cursor not in container"; end if; - TC_Check (Container.TC); - -- Deallocate_Children returns a count of the number of nodes that it -- deallocates, but it works by incrementing the value that is passed -- in. We must therefore initialize the count value before calling @@ -733,6 +735,8 @@ package body Ada.Containers.Multiway_Trees is X : Tree_Node_Access; begin + TC_Check (Container.TC); + if Checks and then Position = No_Element then raise Constraint_Error with "Position cursor has no element"; end if; @@ -750,8 +754,6 @@ package body Ada.Containers.Multiway_Trees is raise Constraint_Error with "Position cursor does not designate leaf"; end if; - TC_Check (Container.TC); - X := Position.Node; Position := No_Element; @@ -780,6 +782,8 @@ package body Ada.Containers.Multiway_Trees is Count : Count_Type; begin + TC_Check (Container.TC); + if Checks and then Position = No_Element then raise Constraint_Error with "Position cursor has no element"; end if; @@ -793,8 +797,6 @@ package body Ada.Containers.Multiway_Trees is raise Program_Error with "Position cursor designates root"; end if; - TC_Check (Container.TC); - X := Position.Node; Position := No_Element; @@ -1145,6 +1147,8 @@ package body Ada.Containers.Multiway_Trees is Last : Tree_Node_Access; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -1169,8 +1173,6 @@ package body Ada.Containers.Multiway_Trees is return; end if; - TC_Check (Container.TC); - First := new Tree_Node_Type'(Parent => Parent.Node, Element => New_Item, others => <>); @@ -1214,6 +1216,8 @@ package body Ada.Containers.Multiway_Trees is Last : Tree_Node_Access; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -1238,8 +1242,6 @@ package body Ada.Containers.Multiway_Trees is return; end if; - TC_Check (Container.TC); - First := new Tree_Node_Type'(Parent => Parent.Node, Element => <>, others => <>); @@ -1737,6 +1739,8 @@ package body Ada.Containers.Multiway_Trees is First, Last : Tree_Node_Access; begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -1749,8 +1753,6 @@ package body Ada.Containers.Multiway_Trees is return; end if; - TC_Check (Container.TC); - First := new Tree_Node_Type'(Parent => Parent.Node, Element => New_Item, others => <>); @@ -2073,6 +2075,8 @@ package body Ada.Containers.Multiway_Trees is New_Item : Element_Type) is begin + TE_Check (Container.TC); + if Checks and then Position = No_Element then raise Constraint_Error with "Position cursor has no element"; end if; @@ -2086,8 +2090,6 @@ package body Ada.Containers.Multiway_Trees is raise Program_Error with "Position cursor designates root"; end if; - TE_Check (Container.TC); - Position.Node.Element := New_Item; end Replace_Element; @@ -2160,6 +2162,9 @@ package body Ada.Containers.Multiway_Trees is Count : Count_Type; begin + TC_Check (Target.TC); + TC_Check (Source.TC); + if Checks and then Target_Parent = No_Element then raise Constraint_Error with "Target_Parent cursor has no element"; end if; @@ -2197,8 +2202,6 @@ package body Ada.Containers.Multiway_Trees is return; end if; - TC_Check (Target.TC); - if Checks and then Is_Reachable (From => Target_Parent.Node, To => Source_Parent.Node) then @@ -2214,9 +2217,6 @@ package body Ada.Containers.Multiway_Trees is return; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - -- We cache the count of the nodes we have allocated, so that operation -- Node_Count can execute in O(1) time. But that means we must count the -- nodes in the subtree we remove from Source and insert into Target, in @@ -2243,6 +2243,8 @@ package body Ada.Containers.Multiway_Trees is Source_Parent : Cursor) is begin + TC_Check (Container.TC); + if Checks and then Target_Parent = No_Element then raise Constraint_Error with "Target_Parent cursor has no element"; end if; @@ -2282,8 +2284,6 @@ package body Ada.Containers.Multiway_Trees is return; end if; - TC_Check (Container.TC); - if Checks and then Is_Reachable (From => Target_Parent.Node, To => Source_Parent.Node) then @@ -2341,6 +2341,9 @@ package body Ada.Containers.Multiway_Trees is Subtree_Count : Count_Type; begin + TC_Check (Target.TC); + TC_Check (Source.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -2382,8 +2385,6 @@ package body Ada.Containers.Multiway_Trees is end if; end if; - TC_Check (Target.TC); - if Checks and then Is_Reachable (From => Parent.Node, To => Position.Node) then @@ -2398,9 +2399,6 @@ package body Ada.Containers.Multiway_Trees is return; end if; - TC_Check (Target.TC); - TC_Check (Source.TC); - -- This is an unfortunate feature of this API: we must count the nodes -- in the subtree that we remove from the source tree, which is an O(n) -- operation. It would have been better if the Tree container did not @@ -2433,6 +2431,8 @@ package body Ada.Containers.Multiway_Trees is Position : Cursor) is begin + TC_Check (Container.TC); + if Checks and then Parent = No_Element then raise Constraint_Error with "Parent cursor has no element"; end if; @@ -2478,8 +2478,6 @@ package body Ada.Containers.Multiway_Trees is end if; end if; - TC_Check (Container.TC); - if Checks and then Is_Reachable (From => Parent.Node, To => Position.Node) then @@ -2531,6 +2529,8 @@ package body Ada.Containers.Multiway_Trees is I, J : Cursor) is begin + TE_Check (Container.TC); + if Checks and then I = No_Element then raise Constraint_Error with "I cursor has no element"; end if; @@ -2559,8 +2559,6 @@ package body Ada.Containers.Multiway_Trees is raise Program_Error with "J cursor designates root"; end if; - TE_Check (Container.TC); - declare EI : constant Element_Type := I.Node.Element; diff --git a/gcc/ada/libgnat/a-comutr.ads b/gcc/ada/libgnat/a-comutr.ads index e6a8dbd..46934a1 100644 --- a/gcc/ada/libgnat/a-comutr.ads +++ b/gcc/ada/libgnat/a-comutr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -42,7 +42,9 @@ generic with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Multiway_Trees is +package Ada.Containers.Multiway_Trees with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-conhel.adb b/gcc/ada/libgnat/a-conhel.adb index 06af0da..1a30b53 100644 --- a/gcc/ada/libgnat/a-conhel.adb +++ b/gcc/ada/libgnat/a-conhel.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2015-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2015-2020, 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- -- diff --git a/gcc/ada/libgnat/a-conhel.ads b/gcc/ada/libgnat/a-conhel.ads index b76f519..80ae980 100644 --- a/gcc/ada/libgnat/a-conhel.ads +++ b/gcc/ada/libgnat/a-conhel.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2015-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2015-2020, 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- -- diff --git a/gcc/ada/libgnat/a-convec.adb b/gcc/ada/libgnat/a-convec.adb index f5e2eb4..c2a0a83 100644 --- a/gcc/ada/libgnat/a-convec.adb +++ b/gcc/ada/libgnat/a-convec.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -31,8 +31,11 @@ with Ada.Containers.Generic_Array_Sort; with Ada.Unchecked_Deallocation; with System; use type System.Address; +with System.Put_Images; -package body Ada.Containers.Vectors is +package body Ada.Containers.Vectors with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -377,6 +380,14 @@ package body Ada.Containers.Vectors is J : Index_Type'Base; -- first index of items that slide down begin + -- The tampering bits exist to prevent an item from being deleted (or + -- otherwise harmfully manipulated) while it is being visited. Query, + -- Update, and Iterate increment the busy count on entry, and decrement + -- the count on exit. Delete checks the count to determine whether it is + -- being called while the associated callback procedure is executing. + + TC_Check (Container.TC); + -- Delete removes items from the vector, the number of which is the -- minimum of the specified Count and the items (if any) that exist from -- Index to Container.Last. There are no constraints on the specified @@ -420,14 +431,6 @@ package body Ada.Containers.Vectors is return; end if; - -- The tampering bits exist to prevent an item from being deleted (or - -- otherwise harmfully manipulated) while it is being visited. Query, - -- Update, and Iterate increment the busy count on entry, and decrement - -- the count on exit. Delete checks the count to determine whether it is - -- being called while the associated callback procedure is executing. - - TC_Check (Container.TC); - -- We first calculate what's available for deletion starting at -- Index. Here and elsewhere we use the wider of Index_Type'Base and -- Count_Type'Base as the type for intermediate values. (See function @@ -781,6 +784,8 @@ package body Ada.Containers.Vectors is J : Index_Type'Base; begin + TC_Check (Source.TC); + -- The semantics of Merge changed slightly per AI05-0021. It was -- originally the case that if Target and Source denoted the same -- container object, then the GNAT implementation of Merge did @@ -803,8 +808,6 @@ package body Ada.Containers.Vectors is return; end if; - TC_Check (Source.TC); - Target.Set_Length (Length (Target) + Length (Source)); -- Per AI05-0022, the container implementation is required to detect @@ -861,10 +864,6 @@ package body Ada.Containers.Vectors is "<" => "<"); begin - if Container.Last <= Index_Type'First then - return; - end if; - -- The exception behavior for the vector container must match that -- for the list container, so we check for cursor tampering here -- (which will catch more things) instead of for element tampering @@ -878,6 +877,10 @@ package body Ada.Containers.Vectors is TC_Check (Container.TC); + if Container.Last <= Index_Type'First then + return; + end if; + -- Per AI05-0022, the container implementation is required to detect -- element tampering by a generic actual subprogram. @@ -933,6 +936,14 @@ package body Ada.Containers.Vectors is Dst : Elements_Access; -- new, expanded internal array begin + -- The tampering bits exist to prevent an item from being harmfully + -- manipulated while it is being visited. Query, Update, and Iterate + -- increment the busy count on entry, and decrement the count on + -- exit. Insert checks the count to determine whether it is being called + -- while the associated callback procedure is executing. + + TC_Check (Container.TC); + if Checks then -- As a precondition on the generic actual Index_Type, the base type -- must include Index_Type'Pred (Index_Type'First); this is the value @@ -1124,14 +1135,6 @@ package body Ada.Containers.Vectors is return; end if; - -- The tampering bits exist to prevent an item from being harmfully - -- manipulated while it is being visited. Query, Update, and Iterate - -- increment the busy count on entry, and decrement the count on - -- exit. Insert checks the count to determine whether it is being called - -- while the associated callback procedure is executing. - - TC_Check (Container.TC); - -- An internal array has already been allocated, so we must determine -- whether there is enough unused storage for the new items. @@ -1595,6 +1598,14 @@ package body Ada.Containers.Vectors is Dst : Elements_Access; -- new, expanded internal array begin + -- The tampering bits exist to prevent an item from being harmfully + -- manipulated while it is being visited. Query, Update, and Iterate + -- increment the busy count on entry, and decrement the count on + -- exit. Insert checks the count to determine whether it is being called + -- while the associated callback procedure is executing. + + TC_Check (Container.TC); + if Checks then -- As a precondition on the generic actual Index_Type, the base type -- must include Index_Type'Pred (Index_Type'First); this is the value @@ -1784,14 +1795,6 @@ package body Ada.Containers.Vectors is return; end if; - -- The tampering bits exist to prevent an item from being harmfully - -- manipulated while it is being visited. Query, Update, and Iterate - -- increment the busy count on entry, and decrement the count on - -- exit. Insert checks the count to determine whether it is being called - -- while the associated callback procedure is executing. - - TC_Check (Container.TC); - -- An internal array has already been allocated, so we must determine -- whether there is enough unused storage for the new items. @@ -2297,6 +2300,31 @@ package body Ada.Containers.Vectors is end return; end Pseudo_Reference; + --------------- + -- Put_Image -- + --------------- + + procedure Put_Image + (S : in out Ada.Strings.Text_Output.Sink'Class; V : Vector) + is + First_Time : Boolean := True; + use System.Put_Images; + begin + Array_Before (S); + + for X of V loop + if First_Time then + First_Time := False; + else + Simple_Array_Between (S); + end if; + + Element_Type'Put_Image (S, X); + end loop; + + Array_After (S); + end Put_Image; + ------------------- -- Query_Element -- ------------------- @@ -2446,11 +2474,12 @@ package body Ada.Containers.Vectors is New_Item : Element_Type) is begin + TE_Check (Container.TC); + if Checks and then Index > Container.Last then raise Constraint_Error with "Index is out of range"; end if; - TE_Check (Container.TC); Container.Elements.EA (Index) := New_Item; end Replace_Element; @@ -2460,6 +2489,8 @@ package body Ada.Containers.Vectors is New_Item : Element_Type) is begin + TE_Check (Container.TC); + if Checks then if Position.Container = null then raise Constraint_Error with "Position cursor has no element"; @@ -2472,7 +2503,6 @@ package body Ada.Containers.Vectors is end if; end if; - TE_Check (Container.TC); Container.Elements.EA (Position.Index) := New_Item; end Replace_Element; @@ -2940,6 +2970,8 @@ package body Ada.Containers.Vectors is procedure Swap (Container : in out Vector; I, J : Index_Type) is begin + TE_Check (Container.TC); + if Checks then if I > Container.Last then raise Constraint_Error with "I index is out of range"; @@ -2954,8 +2986,6 @@ package body Ada.Containers.Vectors is return; end if; - TE_Check (Container.TC); - declare EI_Copy : constant Element_Type := Container.Elements.EA (I); begin diff --git a/gcc/ada/libgnat/a-convec.ads b/gcc/ada/libgnat/a-convec.ads index 8109f8a..a12e456 100644 --- a/gcc/ada/libgnat/a-convec.ads +++ b/gcc/ada/libgnat/a-convec.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -36,6 +36,7 @@ with Ada.Iterator_Interfaces; with Ada.Containers.Helpers; private with Ada.Finalization; private with Ada.Streams; +private with Ada.Strings.Text_Output; -- The language-defined generic package Containers.Vectors provides private -- types Vector and Cursor, and a set of operations for each type. A vector @@ -70,7 +71,9 @@ generic -- number of calls of this generic formal function by the functions defined -- to use it are unspecified. -package Ada.Containers.Vectors is +package Ada.Containers.Vectors with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; @@ -694,7 +697,10 @@ private Elements : Elements_Access := null; Last : Extended_Index := No_Index; TC : aliased Tamper_Counts; - end record; + end record with Put_Image => Put_Image; + + procedure Put_Image + (S : in out Ada.Strings.Text_Output.Sink'Class; V : Vector); overriding procedure Adjust (Container : in out Vector); overriding procedure Finalize (Container : in out Vector); diff --git a/gcc/ada/libgnat/a-coorma.adb b/gcc/ada/libgnat/a-coorma.adb index e49ae90..4106d58 100644 --- a/gcc/ada/libgnat/a-coorma.adb +++ b/gcc/ada/libgnat/a-coorma.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -39,7 +39,9 @@ pragma Elaborate_All (Ada.Containers.Red_Black_Trees.Generic_Keys); with System; use type System.Address; -package body Ada.Containers.Ordered_Maps is +package body Ada.Containers.Ordered_Maps with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -1349,12 +1351,12 @@ package body Ada.Containers.Ordered_Maps is Node : constant Node_Access := Key_Ops.Find (Container.Tree, Key); begin + TE_Check (Container.Tree.TC); + if Checks and then Node = null then raise Constraint_Error with "key not in map"; end if; - TE_Check (Container.Tree.TC); - Node.Key := Key; Node.Element := New_Item; end Replace; @@ -1369,6 +1371,8 @@ package body Ada.Containers.Ordered_Maps is New_Item : Element_Type) is begin + TE_Check (Container.Tree.TC); + if Checks and then Position.Node = null then raise Constraint_Error with "Position cursor of Replace_Element equals No_Element"; @@ -1380,8 +1384,6 @@ package body Ada.Containers.Ordered_Maps is "Position cursor of Replace_Element designates wrong map"; end if; - TE_Check (Container.Tree.TC); - pragma Assert (Vet (Container.Tree, Position.Node), "Position cursor of Replace_Element is bad"); diff --git a/gcc/ada/libgnat/a-coorma.ads b/gcc/ada/libgnat/a-coorma.ads index 7599750..e2d5e1e 100644 --- a/gcc/ada/libgnat/a-coorma.ads +++ b/gcc/ada/libgnat/a-coorma.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -44,7 +44,9 @@ generic with function "<" (Left, Right : Key_Type) return Boolean is <>; with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Ordered_Maps is +package Ada.Containers.Ordered_Maps with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-coormu.adb b/gcc/ada/libgnat/a-coormu.adb index 52db05d..c02a9f1 100644 --- a/gcc/ada/libgnat/a-coormu.adb +++ b/gcc/ada/libgnat/a-coormu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -40,7 +40,9 @@ pragma Elaborate_All (Ada.Containers.Red_Black_Trees.Generic_Set_Operations); with System; use type System.Address; -package body Ada.Containers.Ordered_Multisets is +package body Ada.Containers.Ordered_Multisets with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); diff --git a/gcc/ada/libgnat/a-coormu.ads b/gcc/ada/libgnat/a-coormu.ads index a3d7631..9c6c3ae 100644 --- a/gcc/ada/libgnat/a-coormu.ads +++ b/gcc/ada/libgnat/a-coormu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -42,7 +42,9 @@ generic with function "<" (Left, Right : Element_Type) return Boolean is <>; with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Ordered_Multisets is +package Ada.Containers.Ordered_Multisets with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-coorse.adb b/gcc/ada/libgnat/a-coorse.adb index d2f8a58..15b59dd 100644 --- a/gcc/ada/libgnat/a-coorse.adb +++ b/gcc/ada/libgnat/a-coorse.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -42,7 +42,9 @@ pragma Elaborate_All (Ada.Containers.Red_Black_Trees.Generic_Set_Operations); with System; use type System.Address; -package body Ada.Containers.Ordered_Sets is +package body Ada.Containers.Ordered_Sets with + SPARK_Mode => Off +is pragma Warnings (Off, "variable ""Busy*"" is not referenced"); pragma Warnings (Off, "variable ""Lock*"" is not referenced"); @@ -899,7 +901,7 @@ package body Ada.Containers.Ordered_Sets is Control => (Controlled with Tree.TC'Unrestricted_Access, - Container => Container'Access, + Container => Container'Unchecked_Access, Pos => Position, Old_Key => new Key_Type'(Key (Position)))) do @@ -927,7 +929,7 @@ package body Ada.Containers.Ordered_Sets is Control => (Controlled with Tree.TC'Unrestricted_Access, - Container => Container'Access, + Container => Container'Unchecked_Access, Pos => Find (Container, Key), Old_Key => new Key_Type'(Key))) do @@ -1641,13 +1643,13 @@ package body Ada.Containers.Ordered_Sets is Element_Keys.Find (Container.Tree, New_Item); begin + TE_Check (Container.Tree.TC); + if Checks and then Node = null then raise Constraint_Error with "attempt to replace element not in set"; end if; - TE_Check (Container.Tree.TC); - Node.Element := New_Item; end Replace; diff --git a/gcc/ada/libgnat/a-coorse.ads b/gcc/ada/libgnat/a-coorse.ads index 5586e4c..42e5b49 100644 --- a/gcc/ada/libgnat/a-coorse.ads +++ b/gcc/ada/libgnat/a-coorse.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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 -- @@ -44,7 +44,9 @@ generic with function "<" (Left, Right : Element_Type) return Boolean is <>; with function "=" (Left, Right : Element_Type) return Boolean is <>; -package Ada.Containers.Ordered_Sets is +package Ada.Containers.Ordered_Sets with + SPARK_Mode => Off +is pragma Annotate (CodePeer, Skip_Analysis); pragma Preelaborate; pragma Remote_Types; diff --git a/gcc/ada/libgnat/a-coprnu.adb b/gcc/ada/libgnat/a-coprnu.adb index 891cd59..25f04e6 100644 --- a/gcc/ada/libgnat/a-coprnu.adb +++ b/gcc/ada/libgnat/a-coprnu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-coprnu.ads b/gcc/ada/libgnat/a-coprnu.ads index c944f8c..5afb474 100644 --- a/gcc/ada/libgnat/a-coprnu.ads +++ b/gcc/ada/libgnat/a-coprnu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-crbltr.ads b/gcc/ada/libgnat/a-crbltr.ads index ecc1dca..0ae2abd 100644 --- a/gcc/ada/libgnat/a-crbltr.ads +++ b/gcc/ada/libgnat/a-crbltr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-crbtgk.adb b/gcc/ada/libgnat/a-crbtgk.adb index be78f03..a41fcbb 100644 --- a/gcc/ada/libgnat/a-crbtgk.adb +++ b/gcc/ada/libgnat/a-crbtgk.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -422,12 +422,12 @@ package body Ada.Containers.Red_Black_Trees.Generic_Keys is Z : out Node_Access) is begin + TC_Check (Tree.TC); + if Checks and then Tree.Length = Count_Type'Last then raise Constraint_Error with "too many elements"; end if; - TC_Check (Tree.TC); - Z := New_Node; pragma Assert (Z /= null); pragma Assert (Ops.Color (Z) = Red); diff --git a/gcc/ada/libgnat/a-crbtgk.ads b/gcc/ada/libgnat/a-crbtgk.ads index 0077758..4bdcf5c 100644 --- a/gcc/ada/libgnat/a-crbtgk.ads +++ b/gcc/ada/libgnat/a-crbtgk.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-crbtgo.adb b/gcc/ada/libgnat/a-crbtgo.adb index cf125f1..35727b0 100644 --- a/gcc/ada/libgnat/a-crbtgo.adb +++ b/gcc/ada/libgnat/a-crbtgo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -693,12 +693,12 @@ package body Ada.Containers.Red_Black_Trees.Generic_Operations is procedure Generic_Move (Target, Source : in out Tree_Type) is begin + TC_Check (Source.TC); + if Target'Address = Source'Address then return; end if; - TC_Check (Source.TC); - Clear (Target); Target := Source; diff --git a/gcc/ada/libgnat/a-crbtgo.ads b/gcc/ada/libgnat/a-crbtgo.ads index a46f787..5f37221 100644 --- a/gcc/ada/libgnat/a-crbtgo.ads +++ b/gcc/ada/libgnat/a-crbtgo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-crdlli.adb b/gcc/ada/libgnat/a-crdlli.adb index f69c5d8..fb92fd4 100644 --- a/gcc/ada/libgnat/a-crdlli.adb +++ b/gcc/ada/libgnat/a-crdlli.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-crdlli.ads b/gcc/ada/libgnat/a-crdlli.ads index d4ad46e..7f27497 100644 --- a/gcc/ada/libgnat/a-crdlli.ads +++ b/gcc/ada/libgnat/a-crdlli.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-csquin.ads b/gcc/ada/libgnat/a-csquin.ads index 68d20c8..df65ba4 100644 --- a/gcc/ada/libgnat/a-csquin.ads +++ b/gcc/ada/libgnat/a-csquin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cuprqu.adb b/gcc/ada/libgnat/a-cuprqu.adb index 843c9a9..deae9a7 100644 --- a/gcc/ada/libgnat/a-cuprqu.adb +++ b/gcc/ada/libgnat/a-cuprqu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cuprqu.ads b/gcc/ada/libgnat/a-cuprqu.ads index 81ae16b..a70e5e0 100644 --- a/gcc/ada/libgnat/a-cuprqu.ads +++ b/gcc/ada/libgnat/a-cuprqu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cusyqu.adb b/gcc/ada/libgnat/a-cusyqu.adb index c92ca5e..295711c 100644 --- a/gcc/ada/libgnat/a-cusyqu.adb +++ b/gcc/ada/libgnat/a-cusyqu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cusyqu.ads b/gcc/ada/libgnat/a-cusyqu.ads index 28995c2..cd2af82 100644 --- a/gcc/ada/libgnat/a-cusyqu.ads +++ b/gcc/ada/libgnat/a-cusyqu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- diff --git a/gcc/ada/libgnat/a-cwila1.ads b/gcc/ada/libgnat/a-cwila1.ads index fdf9188..fc28f17 100644 --- a/gcc/ada/libgnat/a-cwila1.ads +++ b/gcc/ada/libgnat/a-cwila1.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-cwila9.ads b/gcc/ada/libgnat/a-cwila9.ads index 2016590a..8f44c5b 100644 --- a/gcc/ada/libgnat/a-cwila9.ads +++ b/gcc/ada/libgnat/a-cwila9.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-decima.adb b/gcc/ada/libgnat/a-decima.adb index afa9a0d..bf05516 100644 --- a/gcc/ada/libgnat/a-decima.adb +++ b/gcc/ada/libgnat/a-decima.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-decima.ads b/gcc/ada/libgnat/a-decima.ads index 07986ce..9b56cc6 100644 --- a/gcc/ada/libgnat/a-decima.ads +++ b/gcc/ada/libgnat/a-decima.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-dhfina.adb b/gcc/ada/libgnat/a-dhfina.adb index df7c345..e0ae41fe 100644 --- a/gcc/ada/libgnat/a-dhfina.adb +++ b/gcc/ada/libgnat/a-dhfina.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-dhfina.ads b/gcc/ada/libgnat/a-dhfina.ads index fe32d01..cf8697e 100644 --- a/gcc/ada/libgnat/a-dhfina.ads +++ b/gcc/ada/libgnat/a-dhfina.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-diocst.adb b/gcc/ada/libgnat/a-diocst.adb index 5f4bf9f..83dc30a 100644 --- a/gcc/ada/libgnat/a-diocst.adb +++ b/gcc/ada/libgnat/a-diocst.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-diocst.ads b/gcc/ada/libgnat/a-diocst.ads index eabade9..a6507c1 100644 --- a/gcc/ada/libgnat/a-diocst.ads +++ b/gcc/ada/libgnat/a-diocst.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-direct.adb b/gcc/ada/libgnat/a-direct.adb index 1a1b708..b70bf0e 100644 --- a/gcc/ada/libgnat/a-direct.adb +++ b/gcc/ada/libgnat/a-direct.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-direct.ads b/gcc/ada/libgnat/a-direct.ads index d36a024..05cb2b6 100644 --- a/gcc/ada/libgnat/a-direct.ads +++ b/gcc/ada/libgnat/a-direct.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, Free Software Foundation, Inc. -- -- -- -- This specification is derived for use with GNAT from AI-00248, which is -- -- expected to be a part of a future expected revised Ada Reference Manual. -- diff --git a/gcc/ada/libgnat/a-direio.adb b/gcc/ada/libgnat/a-direio.adb index a144841..48e4f74 100644 --- a/gcc/ada/libgnat/a-direio.adb +++ b/gcc/ada/libgnat/a-direio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-direio.ads b/gcc/ada/libgnat/a-direio.ads index 5cf8bff..a293156 100644 --- a/gcc/ada/libgnat/a-direio.ads +++ b/gcc/ada/libgnat/a-direio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-dirval.adb b/gcc/ada/libgnat/a-dirval.adb index cd7e96e..38e56c9 100644 --- a/gcc/ada/libgnat/a-dirval.adb +++ b/gcc/ada/libgnat/a-dirval.adb @@ -7,7 +7,7 @@ -- B o d y -- -- (POSIX Version) -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-dirval.ads b/gcc/ada/libgnat/a-dirval.ads index bf67640..0485802 100644 --- a/gcc/ada/libgnat/a-dirval.ads +++ b/gcc/ada/libgnat/a-dirval.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-dirval__mingw.adb b/gcc/ada/libgnat/a-dirval__mingw.adb index 4ab9908..27d09ef 100644 --- a/gcc/ada/libgnat/a-dirval__mingw.adb +++ b/gcc/ada/libgnat/a-dirval__mingw.adb @@ -7,7 +7,7 @@ -- B o d y -- -- (Windows Version) -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-einuoc.adb b/gcc/ada/libgnat/a-einuoc.adb index 77d6b8d..bc9211a 100644 --- a/gcc/ada/libgnat/a-einuoc.adb +++ b/gcc/ada/libgnat/a-einuoc.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2000-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2000-2020, 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- -- diff --git a/gcc/ada/libgnat/a-einuoc.ads b/gcc/ada/libgnat/a-einuoc.ads index c78d511..5d1e264 100644 --- a/gcc/ada/libgnat/a-einuoc.ads +++ b/gcc/ada/libgnat/a-einuoc.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2000-2020, 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- -- diff --git a/gcc/ada/libgnat/a-elchha.adb b/gcc/ada/libgnat/a-elchha.adb index 96f4112..244352d 100644 --- a/gcc/ada/libgnat/a-elchha.adb +++ b/gcc/ada/libgnat/a-elchha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/a-elchha.ads b/gcc/ada/libgnat/a-elchha.ads index d4352be..5aa7fe2 100644 --- a/gcc/ada/libgnat/a-elchha.ads +++ b/gcc/ada/libgnat/a-elchha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/a-elchha__vxworks-ppc-full.adb b/gcc/ada/libgnat/a-elchha__vxworks-ppc-full.adb index d184743..25097d6 100644 --- a/gcc/ada/libgnat/a-elchha__vxworks-ppc-full.adb +++ b/gcc/ada/libgnat/a-elchha__vxworks-ppc-full.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/a-envvar.adb b/gcc/ada/libgnat/a-envvar.adb index 09b1af5..0d6e2ed 100644 --- a/gcc/ada/libgnat/a-envvar.adb +++ b/gcc/ada/libgnat/a-envvar.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/a-excach.adb b/gcc/ada/libgnat/a-excach.adb index 84ee98d..f9d6ee0 100644 --- a/gcc/ada/libgnat/a-excach.adb +++ b/gcc/ada/libgnat/a-excach.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-except.adb b/gcc/ada/libgnat/a-except.adb index 8b0a31c..17f3db6 100644 --- a/gcc/ada/libgnat/a-except.adb +++ b/gcc/ada/libgnat/a-except.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -1660,10 +1660,10 @@ package body Ada.Exceptions is --------------- procedure To_Stderr (C : Character) is - procedure Put_Char_Stderr (C : Character); + procedure Put_Char_Stderr (C : Integer); pragma Import (C, Put_Char_Stderr, "put_char_stderr"); begin - Put_Char_Stderr (C); + Put_Char_Stderr (Character'Pos (C)); end To_Stderr; procedure To_Stderr (S : String) is diff --git a/gcc/ada/libgnat/a-except.ads b/gcc/ada/libgnat/a-except.ads index 4f70769..85bb5bd 100644 --- a/gcc/ada/libgnat/a-except.ads +++ b/gcc/ada/libgnat/a-except.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-excpol.adb b/gcc/ada/libgnat/a-excpol.adb index 058dbad..27893c3 100644 --- a/gcc/ada/libgnat/a-excpol.adb +++ b/gcc/ada/libgnat/a-excpol.adb @@ -7,7 +7,7 @@ -- B o d y -- -- (dummy version where polling is not used) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/a-excpol__abort.adb b/gcc/ada/libgnat/a-excpol__abort.adb index 733abcc..511f58c 100644 --- a/gcc/ada/libgnat/a-excpol__abort.adb +++ b/gcc/ada/libgnat/a-excpol__abort.adb @@ -7,7 +7,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/a-exctra.adb b/gcc/ada/libgnat/a-exctra.adb index 164e6fd..450af8b 100644 --- a/gcc/ada/libgnat/a-exctra.adb +++ b/gcc/ada/libgnat/a-exctra.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, 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- -- diff --git a/gcc/ada/libgnat/a-exctra.ads b/gcc/ada/libgnat/a-exctra.ads index 6033a2d..ba90f52 100644 --- a/gcc/ada/libgnat/a-exctra.ads +++ b/gcc/ada/libgnat/a-exctra.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, 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 -- diff --git a/gcc/ada/libgnat/a-exexda.adb b/gcc/ada/libgnat/a-exexda.adb index 1f0fb11..31831b6 100644 --- a/gcc/ada/libgnat/a-exexda.adb +++ b/gcc/ada/libgnat/a-exexda.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-exexpr.adb b/gcc/ada/libgnat/a-exexpr.adb index 5e72fd6..fb4b545 100644 --- a/gcc/ada/libgnat/a-exexpr.adb +++ b/gcc/ada/libgnat/a-exexpr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-exextr.adb b/gcc/ada/libgnat/a-exextr.adb index 6a32b51..da66873 100644 --- a/gcc/ada/libgnat/a-exextr.adb +++ b/gcc/ada/libgnat/a-exextr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -43,12 +43,23 @@ package body Exception_Traces is -- Convenient shortcut type Exception_Action is access procedure (E : Exception_Occurrence); + pragma Favor_Top_Level (Exception_Action); + Global_Action : Exception_Action := null; + pragma Atomic (Global_Action); pragma Export (Ada, Global_Action, "__gnat_exception_actions_global_action"); -- Global action, executed whenever an exception is raised. Changing the -- export name must be coordinated with code in g-excact.adb. + Global_Unhandled_Action : Exception_Action := null; + pragma Atomic (Global_Unhandled_Action); + pragma Export + (Ada, Global_Unhandled_Action, + "__gnat_exception_actions_global_unhandled_action"); + -- Global action, executed whenever an unhandled exception is raised. + -- Changing the export name must be coordinated with code in g-excact.adb. + Raise_Hook_Initialized : Boolean := False; pragma Export (Ada, Raise_Hook_Initialized, "__gnat_exception_actions_initialized"); @@ -77,6 +88,11 @@ package body Exception_Traces is ---------------------- procedure Notify_Exception (Excep : EOA; Is_Unhandled : Boolean) is + -- Save actions locally to avoid any race condition that would + -- reset them to null. + Action : constant Exception_Action := Global_Action; + Unhandled_Action : constant Exception_Action := Global_Unhandled_Action; + begin -- Output the exception information required by the Exception_Trace -- configuration. Take care not to output information about internal @@ -119,8 +135,12 @@ package body Exception_Traces is To_Action (Exception_Data_Ptr (Excep.Id).Raise_Hook) (Excep.all); end if; - if Global_Action /= null then - Global_Action (Excep.all); + if Is_Unhandled and Unhandled_Action /= null then + Unhandled_Action (Excep.all); + end if; + + if Action /= null then + Action (Excep.all); end if; end Notify_Exception; diff --git a/gcc/ada/libgnat/a-exstat.adb b/gcc/ada/libgnat/a-exstat.adb index e15ff51..028be1f 100644 --- a/gcc/ada/libgnat/a-exstat.adb +++ b/gcc/ada/libgnat/a-exstat.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-finali.adb b/gcc/ada/libgnat/a-finali.adb index b742b27..ba8b7b3 100644 --- a/gcc/ada/libgnat/a-finali.adb +++ b/gcc/ada/libgnat/a-finali.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-finali.ads b/gcc/ada/libgnat/a-finali.ads index 4ff5281..2ee4cf8 100644 --- a/gcc/ada/libgnat/a-finali.ads +++ b/gcc/ada/libgnat/a-finali.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-locale.adb b/gcc/ada/libgnat/a-locale.adb index aa700dc..ec65938 100644 --- a/gcc/ada/libgnat/a-locale.adb +++ b/gcc/ada/libgnat/a-locale.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/a-locale.ads b/gcc/ada/libgnat/a-locale.ads index 418c41e..be6b0c2 100644 --- a/gcc/ada/libgnat/a-locale.ads +++ b/gcc/ada/libgnat/a-locale.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, Free Software Foundation, Inc. -- -- -- -- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- diff --git a/gcc/ada/libgnat/a-nbnbin.adb b/gcc/ada/libgnat/a-nbnbin.adb index 7d8311d..b919d86 100644 --- a/gcc/ada/libgnat/a-nbnbin.adb +++ b/gcc/ada/libgnat/a-nbnbin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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- -- @@ -30,20 +30,48 @@ ------------------------------------------------------------------------------ with Ada.Unchecked_Deallocation; -with Ada.Characters.Conversions; use Ada.Characters.Conversions; +with Ada.Strings.Text_Output.Utils; with Interfaces; use Interfaces; with System.Generic_Bignums; +with System.Shared_Bignums; use System.Shared_Bignums; package body Ada.Numerics.Big_Numbers.Big_Integers is - package Bignums is new - System.Generic_Bignums (Use_Secondary_Stack => False); - use Bignums, System; + function Allocate_Bignum (D : Digit_Vector; Neg : Boolean) return Bignum; + -- Allocate Bignum value with the given contents + + procedure Free_Bignum (X : in out Bignum); + -- Free memory associated with X + + function To_Bignum (X : aliased in out Bignum) return Bignum is (X); procedure Free is new Ada.Unchecked_Deallocation (Bignum_Data, Bignum); + --------------------- + -- Allocate_Bignum -- + --------------------- + + function Allocate_Bignum (D : Digit_Vector; Neg : Boolean) return Bignum is + begin + return new Bignum_Data'(D'Length, Neg, D); + end Allocate_Bignum; + + ----------------- + -- Free_Bignum -- + ----------------- + + procedure Free_Bignum (X : in out Bignum) is + begin + Free (X); + end Free_Bignum; + + package Bignums is new System.Generic_Bignums + (Bignum, Allocate_Bignum, Free_Bignum, To_Bignum); + + use Bignums, System; + function Get_Bignum (Arg : Big_Integer) return Bignum is (if Arg.Value.C = System.Null_Address then raise Constraint_Error with "invalid big integer" @@ -75,7 +103,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "=" -- --------- - function "=" (L, R : Big_Integer) return Boolean is + function "=" (L, R : Valid_Big_Integer) return Boolean is begin return Big_EQ (Get_Bignum (L), Get_Bignum (R)); end "="; @@ -84,7 +112,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "<" -- --------- - function "<" (L, R : Big_Integer) return Boolean is + function "<" (L, R : Valid_Big_Integer) return Boolean is begin return Big_LT (Get_Bignum (L), Get_Bignum (R)); end "<"; @@ -93,7 +121,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "<=" -- ---------- - function "<=" (L, R : Big_Integer) return Boolean is + function "<=" (L, R : Valid_Big_Integer) return Boolean is begin return Big_LE (Get_Bignum (L), Get_Bignum (R)); end "<="; @@ -102,7 +130,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- ">" -- --------- - function ">" (L, R : Big_Integer) return Boolean is + function ">" (L, R : Valid_Big_Integer) return Boolean is begin return Big_GT (Get_Bignum (L), Get_Bignum (R)); end ">"; @@ -111,7 +139,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- ">=" -- ---------- - function ">=" (L, R : Big_Integer) return Boolean is + function ">=" (L, R : Valid_Big_Integer) return Boolean is begin return Big_GE (Get_Bignum (L), Get_Bignum (R)); end ">="; @@ -120,7 +148,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- To_Big_Integer -- -------------------- - function To_Big_Integer (Arg : Integer) return Big_Integer is + function To_Big_Integer (Arg : Integer) return Valid_Big_Integer is Result : Big_Integer; begin Set_Bignum (Result, To_Bignum (Long_Long_Integer (Arg))); @@ -131,7 +159,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- To_Integer -- ---------------- - function To_Integer (Arg : Big_Integer) return Integer is + function To_Integer (Arg : Valid_Big_Integer) return Integer is begin return Integer (From_Bignum (Get_Bignum (Arg))); end To_Integer; @@ -146,7 +174,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- To_Big_Integer -- -------------------- - function To_Big_Integer (Arg : Int) return Big_Integer is + function To_Big_Integer (Arg : Int) return Valid_Big_Integer is Result : Big_Integer; begin Set_Bignum (Result, To_Bignum (Long_Long_Integer (Arg))); @@ -157,7 +185,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- From_Big_Integer -- ---------------------- - function From_Big_Integer (Arg : Big_Integer) return Int is + function From_Big_Integer (Arg : Valid_Big_Integer) return Int is begin return Int (From_Bignum (Get_Bignum (Arg))); end From_Big_Integer; @@ -174,7 +202,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- To_Big_Integer -- -------------------- - function To_Big_Integer (Arg : Int) return Big_Integer is + function To_Big_Integer (Arg : Int) return Valid_Big_Integer is Result : Big_Integer; begin Set_Bignum (Result, To_Bignum (Unsigned_64 (Arg))); @@ -185,7 +213,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- From_Big_Integer -- ---------------------- - function From_Big_Integer (Arg : Big_Integer) return Int is + function From_Big_Integer (Arg : Valid_Big_Integer) return Int is begin return Int (From_Bignum (Get_Bignum (Arg))); end From_Big_Integer; @@ -196,82 +224,11 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- To_String -- --------------- - Hex_Chars : constant array (0 .. 15) of Character := "0123456789ABCDEF"; - function To_String - (Arg : Big_Integer; Width : Field := 0; Base : Number_Base := 10) - return String - is - Big_Base : constant Big_Integer := To_Big_Integer (Integer (Base)); - - function Add_Base (S : String) return String; - -- Add base information if Base /= 10 - - function Leading_Padding - (Str : String; - Min_Length : Field; - Char : Character := ' ') return String; - -- Return padding of Char concatenated with Str so that the resulting - -- string is at least Min_Length long. - - function Image (Arg : Big_Integer) return String; - -- Return image of Arg, assuming Arg is positive. - - function Image (N : Natural) return String; - -- Return image of N, with no leading space. - - -------------- - -- Add_Base -- - -------------- - - function Add_Base (S : String) return String is - begin - if Base = 10 then - return S; - else - return Image (Base) & "#" & S & "#"; - end if; - end Add_Base; - - ----------- - -- Image -- - ----------- - - function Image (N : Natural) return String is - S : constant String := Natural'Image (N); - begin - return S (2 .. S'Last); - end Image; - - function Image (Arg : Big_Integer) return String is - begin - if Arg < Big_Base then - return (1 => Hex_Chars (To_Integer (Arg))); - else - return Image (Arg / Big_Base) - & Hex_Chars (To_Integer (Arg rem Big_Base)); - end if; - end Image; - - --------------------- - -- Leading_Padding -- - --------------------- - - function Leading_Padding - (Str : String; - Min_Length : Field; - Char : Character := ' ') return String is - begin - return (1 .. Integer'Max (Integer (Min_Length) - Str'Length, 0) - => Char) & Str; - end Leading_Padding; - + (Arg : Valid_Big_Integer; Width : Field := 0; Base : Number_Base := 10) + return String is begin - if Arg < To_Big_Integer (0) then - return Leading_Padding ("-" & Add_Base (Image (-Arg)), Width); - else - return Leading_Padding (" " & Add_Base (Image (Arg)), Width); - end if; + return To_String (Get_Bignum (Arg), Natural (Width), Positive (Base)); end To_String; ----------------- @@ -290,18 +247,19 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- Put_Image -- --------------- - procedure Put_Image - (Stream : not null access Ada.Streams.Root_Stream_Type'Class; - Arg : Big_Integer) is + procedure Put_Image (S : in out Sink'Class; V : Big_Integer) is + -- This is implemented in terms of To_String. It might be more elegant + -- and more efficient to do it the other way around, but this is the + -- most expedient implementation for now. begin - Wide_Wide_String'Write (Stream, To_Wide_Wide_String (To_String (Arg))); + Strings.Text_Output.Utils.Put_UTF_8 (S, To_String (V)); end Put_Image; --------- -- "+" -- --------- - function "+" (L : Big_Integer) return Big_Integer is + function "+" (L : Valid_Big_Integer) return Valid_Big_Integer is Result : Big_Integer; begin Set_Bignum (Result, new Bignum_Data'(Get_Bignum (L).all)); @@ -312,7 +270,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "-" -- --------- - function "-" (L : Big_Integer) return Big_Integer is + function "-" (L : Valid_Big_Integer) return Valid_Big_Integer is Result : Big_Integer; begin Set_Bignum (Result, Big_Neg (Get_Bignum (L))); @@ -323,7 +281,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "abs" -- ----------- - function "abs" (L : Big_Integer) return Big_Integer is + function "abs" (L : Valid_Big_Integer) return Valid_Big_Integer is Result : Big_Integer; begin Set_Bignum (Result, Big_Abs (Get_Bignum (L))); @@ -334,7 +292,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "+" -- --------- - function "+" (L, R : Big_Integer) return Big_Integer is + function "+" (L, R : Valid_Big_Integer) return Valid_Big_Integer is Result : Big_Integer; begin Set_Bignum (Result, Big_Add (Get_Bignum (L), Get_Bignum (R))); @@ -345,7 +303,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "-" -- --------- - function "-" (L, R : Big_Integer) return Big_Integer is + function "-" (L, R : Valid_Big_Integer) return Valid_Big_Integer is Result : Big_Integer; begin Set_Bignum (Result, Big_Sub (Get_Bignum (L), Get_Bignum (R))); @@ -356,7 +314,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "*" -- --------- - function "*" (L, R : Big_Integer) return Big_Integer is + function "*" (L, R : Valid_Big_Integer) return Valid_Big_Integer is Result : Big_Integer; begin Set_Bignum (Result, Big_Mul (Get_Bignum (L), Get_Bignum (R))); @@ -367,7 +325,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "/" -- --------- - function "/" (L, R : Big_Integer) return Big_Integer is + function "/" (L, R : Valid_Big_Integer) return Valid_Big_Integer is Result : Big_Integer; begin Set_Bignum (Result, Big_Div (Get_Bignum (L), Get_Bignum (R))); @@ -378,7 +336,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "mod" -- ----------- - function "mod" (L, R : Big_Integer) return Big_Integer is + function "mod" (L, R : Valid_Big_Integer) return Valid_Big_Integer is Result : Big_Integer; begin Set_Bignum (Result, Big_Mod (Get_Bignum (L), Get_Bignum (R))); @@ -389,7 +347,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "rem" -- ----------- - function "rem" (L, R : Big_Integer) return Big_Integer is + function "rem" (L, R : Valid_Big_Integer) return Valid_Big_Integer is Result : Big_Integer; begin Set_Bignum (Result, Big_Rem (Get_Bignum (L), Get_Bignum (R))); @@ -400,16 +358,9 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "**" -- ---------- - function "**" (L : Big_Integer; R : Natural) return Big_Integer is + function "**" + (L : Valid_Big_Integer; R : Natural) return Valid_Big_Integer is begin - -- Explicitly check for validity before allocating Exp so that - -- the call to Get_Bignum below cannot raise an exception before - -- we get a chance to free Exp. - - if not Is_Valid (L) then - raise Constraint_Error with "invalid big integer"; - end if; - declare Exp : Bignum := To_Bignum (Long_Long_Integer (R)); Result : Big_Integer; @@ -424,21 +375,23 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- Min -- --------- - function Min (L, R : Big_Integer) return Big_Integer is + function Min (L, R : Valid_Big_Integer) return Valid_Big_Integer is (if L < R then L else R); --------- -- Max -- --------- - function Max (L, R : Big_Integer) return Big_Integer is + function Max (L, R : Valid_Big_Integer) return Valid_Big_Integer is (if L > R then L else R); ----------------------------- -- Greatest_Common_Divisor -- ----------------------------- - function Greatest_Common_Divisor (L, R : Big_Integer) return Big_Positive is + function Greatest_Common_Divisor + (L, R : Valid_Big_Integer) return Big_Positive + is function GCD (A, B : Big_Integer) return Big_Integer; -- Recursive internal version diff --git a/gcc/ada/libgnat/a-nbnbin.ads b/gcc/ada/libgnat/a-nbnbin.ads index a54b09f..7b4974a 100644 --- a/gcc/ada/libgnat/a-nbnbin.ads +++ b/gcc/ada/libgnat/a-nbnbin.ads @@ -13,121 +13,153 @@ -- -- ------------------------------------------------------------------------------ -with Ada.Finalization; -with Ada.Streams; +with Ada.Strings.Text_Output; use Ada.Strings.Text_Output; +private with Ada.Finalization; private with System; --- Note that some Ada 2020 aspects are commented out since they are not --- supported yet. - package Ada.Numerics.Big_Numbers.Big_Integers with Preelaborate --- Nonblocking is - type Big_Integer is private; - -- with Integer_Literal => From_String, - -- Put_Image => Put_Image; + type Big_Integer is private + with Integer_Literal => From_String, + Put_Image => Put_Image; function Is_Valid (Arg : Big_Integer) return Boolean - with Convention => Intrinsic; + with + Convention => Intrinsic, + Global => null; + + subtype Valid_Big_Integer is Big_Integer + with Dynamic_Predicate => Is_Valid (Valid_Big_Integer), + Predicate_Failure => raise Program_Error; - function "=" (L, R : Big_Integer) return Boolean; + function "=" (L, R : Valid_Big_Integer) return Boolean with Global => null; - function "<" (L, R : Big_Integer) return Boolean; + function "<" (L, R : Valid_Big_Integer) return Boolean with Global => null; - function "<=" (L, R : Big_Integer) return Boolean; + function "<=" (L, R : Valid_Big_Integer) return Boolean with Global => null; - function ">" (L, R : Big_Integer) return Boolean; + function ">" (L, R : Valid_Big_Integer) return Boolean with Global => null; - function ">=" (L, R : Big_Integer) return Boolean; + function ">=" (L, R : Valid_Big_Integer) return Boolean with Global => null; - function To_Big_Integer (Arg : Integer) return Big_Integer; + function To_Big_Integer (Arg : Integer) return Valid_Big_Integer + with Global => null; subtype Big_Positive is Big_Integer - with Dynamic_Predicate => Big_Positive > To_Big_Integer (0), + with Dynamic_Predicate => + (if Is_Valid (Big_Positive) + then Big_Positive > To_Big_Integer (0)), Predicate_Failure => (raise Constraint_Error); subtype Big_Natural is Big_Integer - with Dynamic_Predicate => Big_Natural >= To_Big_Integer (0), + with Dynamic_Predicate => + (if Is_Valid (Big_Natural) + then Big_Natural >= To_Big_Integer (0)), Predicate_Failure => (raise Constraint_Error); - function In_Range (Arg, Low, High : Big_Integer) return Boolean is - ((Low <= Arg) and (Arg <= High)); + function In_Range + (Arg : Valid_Big_Integer; Low, High : Big_Integer) return Boolean + is (Low <= Arg and Arg <= High) + with + Global => null; - function To_Integer (Arg : Big_Integer) return Integer - with Pre => In_Range (Arg, - Low => To_Big_Integer (Integer'First), - High => To_Big_Integer (Integer'Last)) - or else (raise Constraint_Error); + function To_Integer (Arg : Valid_Big_Integer) return Integer + with + Pre => In_Range (Arg, + Low => To_Big_Integer (Integer'First), + High => To_Big_Integer (Integer'Last)) + or else (raise Constraint_Error), + Global => null; generic type Int is range <>; package Signed_Conversions is - function To_Big_Integer (Arg : Int) return Big_Integer; - - function From_Big_Integer (Arg : Big_Integer) return Int - with Pre => In_Range (Arg, - Low => To_Big_Integer (Int'First), - High => To_Big_Integer (Int'Last)) - or else (raise Constraint_Error); + function To_Big_Integer (Arg : Int) return Valid_Big_Integer + with Global => null; + function From_Big_Integer (Arg : Valid_Big_Integer) return Int + with + Pre => In_Range (Arg, + Low => To_Big_Integer (Int'First), + High => To_Big_Integer (Int'Last)) + or else (raise Constraint_Error), + Global => null; end Signed_Conversions; generic type Int is mod <>; package Unsigned_Conversions is - function To_Big_Integer (Arg : Int) return Big_Integer; + function To_Big_Integer (Arg : Int) return Valid_Big_Integer + with Global => null; - function From_Big_Integer (Arg : Big_Integer) return Int - with Pre => In_Range (Arg, - Low => To_Big_Integer (Int'First), - High => To_Big_Integer (Int'Last)) - or else (raise Constraint_Error); + function From_Big_Integer (Arg : Valid_Big_Integer) return Int + with + Pre => In_Range (Arg, + Low => To_Big_Integer (Int'First), + High => To_Big_Integer (Int'Last)) + or else (raise Constraint_Error), + Global => null; end Unsigned_Conversions; - function To_String (Arg : Big_Integer; + function To_String (Arg : Valid_Big_Integer; Width : Field := 0; Base : Number_Base := 10) return String - with Post => To_String'Result'First = 1; + with + Post => To_String'Result'First = 1, + Global => null; - function From_String (Arg : String) return Big_Integer; + function From_String (Arg : String) return Big_Integer + with Global => null; - procedure Put_Image - (Stream : not null access Ada.Streams.Root_Stream_Type'Class; - Arg : Big_Integer); + procedure Put_Image (S : in out Sink'Class; V : Big_Integer); - function "+" (L : Big_Integer) return Big_Integer; + function "+" (L : Valid_Big_Integer) return Valid_Big_Integer + with Global => null; - function "-" (L : Big_Integer) return Big_Integer; + function "-" (L : Valid_Big_Integer) return Valid_Big_Integer + with Global => null; - function "abs" (L : Big_Integer) return Big_Integer; + function "abs" (L : Valid_Big_Integer) return Valid_Big_Integer + with Global => null; - function "+" (L, R : Big_Integer) return Big_Integer; + function "+" (L, R : Valid_Big_Integer) return Valid_Big_Integer + with Global => null; - function "-" (L, R : Big_Integer) return Big_Integer; + function "-" (L, R : Valid_Big_Integer) return Valid_Big_Integer + with Global => null; - function "*" (L, R : Big_Integer) return Big_Integer; + function "*" (L, R : Valid_Big_Integer) return Valid_Big_Integer + with Global => null; - function "/" (L, R : Big_Integer) return Big_Integer; + function "/" (L, R : Valid_Big_Integer) return Valid_Big_Integer + with Global => null; - function "mod" (L, R : Big_Integer) return Big_Integer; + function "mod" (L, R : Valid_Big_Integer) return Valid_Big_Integer + with Global => null; - function "rem" (L, R : Big_Integer) return Big_Integer; + function "rem" (L, R : Valid_Big_Integer) return Valid_Big_Integer + with Global => null; - function "**" (L : Big_Integer; R : Natural) return Big_Integer; + function "**" (L : Valid_Big_Integer; R : Natural) return Valid_Big_Integer + with Global => null; - function Min (L, R : Big_Integer) return Big_Integer; + function Min (L, R : Valid_Big_Integer) return Valid_Big_Integer + with Global => null; - function Max (L, R : Big_Integer) return Big_Integer; + function Max (L, R : Valid_Big_Integer) return Valid_Big_Integer + with Global => null; function Greatest_Common_Divisor - (L, R : Big_Integer) return Big_Positive - with Pre => (L /= To_Big_Integer (0) and R /= To_Big_Integer (0)) - or else (raise Constraint_Error); + (L, R : Valid_Big_Integer) return Big_Positive + with + Pre => (L /= To_Big_Integer (0) and R /= To_Big_Integer (0)) + or else (raise Constraint_Error), + Global => null; private diff --git a/gcc/ada/libgnat/a-nbnbin__gmp.adb b/gcc/ada/libgnat/a-nbnbin__gmp.adb index 041dfe2..2e8a260 100644 --- a/gcc/ada/libgnat/a-nbnbin__gmp.adb +++ b/gcc/ada/libgnat/a-nbnbin__gmp.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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- -- @@ -35,7 +35,7 @@ with Ada.Unchecked_Conversion; with Ada.Unchecked_Deallocation; with Interfaces.C; use Interfaces.C; with Interfaces.C.Strings; use Interfaces.C.Strings; -with Ada.Characters.Conversions; use Ada.Characters.Conversions; +with Ada.Strings.Text_Output.Utils; with Ada.Characters.Handling; use Ada.Characters.Handling; package body Ada.Numerics.Big_Numbers.Big_Integers is @@ -56,16 +56,16 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is function To_Address is new Ada.Unchecked_Conversion (mpz_t_ptr, System.Address); - function Get_Mpz (Arg : Optional_Big_Integer) return mpz_t_ptr is + function Get_Mpz (Arg : Big_Integer) return mpz_t_ptr is (To_Mpz (Arg.Value.C)); -- Return the mpz_t value stored in Arg - procedure Set_Mpz (Arg : in out Optional_Big_Integer; Value : mpz_t_ptr) + procedure Set_Mpz (Arg : in out Big_Integer; Value : mpz_t_ptr) with Inline; -- Set the mpz_t value stored in Arg to Value - procedure Allocate (This : in out Optional_Big_Integer) with Inline; - -- Allocate an Optional_Big_Integer, including the underlying mpz + procedure Allocate (This : in out Big_Integer) with Inline; + -- Allocate a Big_Integer, including the underlying mpz procedure mpz_init_set (ROP : access mpz_t; OP : access constant mpz_t); pragma Import (C, mpz_init_set, "__gmpz_init_set"); @@ -102,7 +102,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- Set_Mpz -- ------------- - procedure Set_Mpz (Arg : in out Optional_Big_Integer; Value : mpz_t_ptr) is + procedure Set_Mpz (Arg : in out Big_Integer; Value : mpz_t_ptr) is begin Arg.Value.C := To_Address (Value); end Set_Mpz; @@ -111,21 +111,14 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- Is_Valid -- -------------- - function Is_Valid (Arg : Optional_Big_Integer) return Boolean is + function Is_Valid (Arg : Big_Integer) return Boolean is (Arg.Value.C /= System.Null_Address); - -------------------------- - -- Invalid_Big_Integer -- - -------------------------- - - function Invalid_Big_Integer return Optional_Big_Integer is - (Value => (Ada.Finalization.Controlled with C => System.Null_Address)); - --------- -- "=" -- --------- - function "=" (L, R : Big_Integer) return Boolean is + function "=" (L, R : Valid_Big_Integer) return Boolean is begin return mpz_cmp (Get_Mpz (L), Get_Mpz (R)) = 0; end "="; @@ -134,7 +127,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "<" -- --------- - function "<" (L, R : Big_Integer) return Boolean is + function "<" (L, R : Valid_Big_Integer) return Boolean is begin return mpz_cmp (Get_Mpz (L), Get_Mpz (R)) < 0; end "<"; @@ -143,7 +136,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "<=" -- ---------- - function "<=" (L, R : Big_Integer) return Boolean is + function "<=" (L, R : Valid_Big_Integer) return Boolean is begin return mpz_cmp (Get_Mpz (L), Get_Mpz (R)) <= 0; end "<="; @@ -152,7 +145,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- ">" -- --------- - function ">" (L, R : Big_Integer) return Boolean is + function ">" (L, R : Valid_Big_Integer) return Boolean is begin return mpz_cmp (Get_Mpz (L), Get_Mpz (R)) > 0; end ">"; @@ -161,7 +154,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- ">=" -- ---------- - function ">=" (L, R : Big_Integer) return Boolean is + function ">=" (L, R : Valid_Big_Integer) return Boolean is begin return mpz_cmp (Get_Mpz (L), Get_Mpz (R)) >= 0; end ">="; @@ -170,8 +163,8 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- To_Big_Integer -- -------------------- - function To_Big_Integer (Arg : Integer) return Big_Integer is - Result : Optional_Big_Integer; + function To_Big_Integer (Arg : Integer) return Valid_Big_Integer is + Result : Big_Integer; begin Allocate (Result); mpz_set_si (Get_Mpz (Result), long (Arg)); @@ -182,7 +175,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- To_Integer -- ---------------- - function To_Integer (Arg : Big_Integer) return Integer is + function To_Integer (Arg : Valid_Big_Integer) return Integer is begin return Integer (mpz_get_si (Get_Mpz (Arg))); end To_Integer; @@ -197,8 +190,8 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- To_Big_Integer -- -------------------- - function To_Big_Integer (Arg : Int) return Big_Integer is - Result : Optional_Big_Integer; + function To_Big_Integer (Arg : Int) return Valid_Big_Integer is + Result : Big_Integer; begin Allocate (Result); mpz_set_si (Get_Mpz (Result), long (Arg)); @@ -209,7 +202,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- From_Big_Integer -- ---------------------- - function From_Big_Integer (Arg : Big_Integer) return Int is + function From_Big_Integer (Arg : Valid_Big_Integer) return Int is begin return Int (mpz_get_si (Get_Mpz (Arg))); end From_Big_Integer; @@ -226,8 +219,8 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- To_Big_Integer -- -------------------- - function To_Big_Integer (Arg : Int) return Big_Integer is - Result : Optional_Big_Integer; + function To_Big_Integer (Arg : Int) return Valid_Big_Integer is + Result : Big_Integer; begin Allocate (Result); mpz_set_ui (Get_Mpz (Result), unsigned_long (Arg)); @@ -238,7 +231,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- From_Big_Integer -- ---------------------- - function From_Big_Integer (Arg : Big_Integer) return Int is + function From_Big_Integer (Arg : Valid_Big_Integer) return Int is begin return Int (mpz_get_ui (Get_Mpz (Arg))); end From_Big_Integer; @@ -250,7 +243,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is --------------- function To_String - (Arg : Big_Integer; Width : Field := 0; Base : Number_Base := 10) + (Arg : Valid_Big_Integer; Width : Field := 0; Base : Number_Base := 10) return String is function mpz_get_str @@ -342,7 +335,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is base : Integer := 10) return Integer; pragma Import (C, mpz_set_str, "__gmpz_set_str"); - Result : Optional_Big_Integer; + Result : Big_Integer; First : Natural; Last : Natural; Base : Natural; @@ -410,19 +403,20 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- Put_Image -- --------------- - procedure Put_Image - (Stream : not null access Ada.Streams.Root_Stream_Type'Class; - Arg : Big_Integer) is + procedure Put_Image (S : in out Sink'Class; V : Big_Integer) is + -- This is implemented in terms of To_String. It might be more elegant + -- and more efficient to do it the other way around, but this is the + -- most expedient implementation for now. begin - Wide_Wide_String'Write (Stream, To_Wide_Wide_String (To_String (Arg))); + Strings.Text_Output.Utils.Put_UTF_8 (S, To_String (V)); end Put_Image; --------- -- "+" -- --------- - function "+" (L : Big_Integer) return Big_Integer is - Result : Optional_Big_Integer; + function "+" (L : Valid_Big_Integer) return Valid_Big_Integer is + Result : Big_Integer; begin Set_Mpz (Result, new mpz_t); mpz_init_set (Get_Mpz (Result), Get_Mpz (L)); @@ -433,8 +427,8 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "-" -- --------- - function "-" (L : Big_Integer) return Big_Integer is - Result : Optional_Big_Integer; + function "-" (L : Valid_Big_Integer) return Valid_Big_Integer is + Result : Big_Integer; begin Allocate (Result); mpz_neg (Get_Mpz (Result), Get_Mpz (L)); @@ -445,11 +439,11 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "abs" -- ----------- - function "abs" (L : Big_Integer) return Big_Integer is + function "abs" (L : Valid_Big_Integer) return Valid_Big_Integer is procedure mpz_abs (ROP : access mpz_t; OP : access constant mpz_t); pragma Import (C, mpz_abs, "__gmpz_abs"); - Result : Optional_Big_Integer; + Result : Big_Integer; begin Allocate (Result); mpz_abs (Get_Mpz (Result), Get_Mpz (L)); @@ -460,12 +454,12 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "+" -- --------- - function "+" (L, R : Big_Integer) return Big_Integer is + function "+" (L, R : Valid_Big_Integer) return Valid_Big_Integer is procedure mpz_add (ROP : access mpz_t; OP1, OP2 : access constant mpz_t); pragma Import (C, mpz_add, "__gmpz_add"); - Result : Optional_Big_Integer; + Result : Big_Integer; begin Allocate (Result); @@ -477,8 +471,8 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "-" -- --------- - function "-" (L, R : Big_Integer) return Big_Integer is - Result : Optional_Big_Integer; + function "-" (L, R : Valid_Big_Integer) return Valid_Big_Integer is + Result : Big_Integer; begin Allocate (Result); mpz_sub (Get_Mpz (Result), Get_Mpz (L), Get_Mpz (R)); @@ -489,12 +483,12 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "*" -- --------- - function "*" (L, R : Big_Integer) return Big_Integer is + function "*" (L, R : Valid_Big_Integer) return Valid_Big_Integer is procedure mpz_mul (ROP : access mpz_t; OP1, OP2 : access constant mpz_t); pragma Import (C, mpz_mul, "__gmpz_mul"); - Result : Optional_Big_Integer; + Result : Big_Integer; begin Allocate (Result); @@ -506,7 +500,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "/" -- --------- - function "/" (L, R : Big_Integer) return Big_Integer is + function "/" (L, R : Valid_Big_Integer) return Valid_Big_Integer is procedure mpz_tdiv_q (Q : access mpz_t; N, D : access constant mpz_t); pragma Import (C, mpz_tdiv_q, "__gmpz_tdiv_q"); begin @@ -515,7 +509,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is end if; declare - Result : Optional_Big_Integer; + Result : Big_Integer; begin Allocate (Result); mpz_tdiv_q (Get_Mpz (Result), Get_Mpz (L), Get_Mpz (R)); @@ -527,7 +521,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "mod" -- ----------- - function "mod" (L, R : Big_Integer) return Big_Integer is + function "mod" (L, R : Valid_Big_Integer) return Valid_Big_Integer is procedure mpz_mod (R : access mpz_t; N, D : access constant mpz_t); pragma Import (C, mpz_mod, "__gmpz_mod"); -- result is always non-negative @@ -540,7 +534,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is end if; declare - Result : Optional_Big_Integer; + Result : Big_Integer; begin Allocate (Result); L_Negative := mpz_cmp_ui (Get_Mpz (L), 0) < 0; @@ -609,7 +603,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "rem" -- ----------- - function "rem" (L, R : Big_Integer) return Big_Integer is + function "rem" (L, R : Valid_Big_Integer) return Valid_Big_Integer is procedure mpz_tdiv_r (R : access mpz_t; N, D : access constant mpz_t); pragma Import (C, mpz_tdiv_r, "__gmpz_tdiv_r"); -- R will have the same sign as N. @@ -620,7 +614,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is end if; declare - Result : Optional_Big_Integer; + Result : Big_Integer; begin Allocate (Result); mpz_tdiv_r (R => Get_Mpz (Result), @@ -636,13 +630,15 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- "**" -- ---------- - function "**" (L : Big_Integer; R : Natural) return Big_Integer is + function "**" + (L : Valid_Big_Integer; R : Natural) return Valid_Big_Integer + is procedure mpz_pow_ui (ROP : access mpz_t; BASE : access constant mpz_t; EXP : unsigned_long); pragma Import (C, mpz_pow_ui, "__gmpz_pow_ui"); - Result : Optional_Big_Integer; + Result : Big_Integer; begin Allocate (Result); @@ -654,26 +650,28 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- Min -- --------- - function Min (L, R : Big_Integer) return Big_Integer is + function Min (L, R : Valid_Big_Integer) return Valid_Big_Integer is (if L < R then L else R); --------- -- Max -- --------- - function Max (L, R : Big_Integer) return Big_Integer is + function Max (L, R : Valid_Big_Integer) return Valid_Big_Integer is (if L > R then L else R); ----------------------------- -- Greatest_Common_Divisor -- ----------------------------- - function Greatest_Common_Divisor (L, R : Big_Integer) return Big_Integer is + function Greatest_Common_Divisor + (L, R : Valid_Big_Integer) return Big_Positive + is procedure mpz_gcd (ROP : access mpz_t; Op1, Op2 : access constant mpz_t); pragma Import (C, mpz_gcd, "__gmpz_gcd"); - Result : Optional_Big_Integer; + Result : Big_Integer; begin Allocate (Result); @@ -685,7 +683,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is -- Allocate -- -------------- - procedure Allocate (This : in out Optional_Big_Integer) is + procedure Allocate (This : in out Big_Integer) is procedure mpz_init (this : access mpz_t); pragma Import (C, mpz_init, "__gmpz_init"); begin diff --git a/gcc/ada/libgnat/a-nbnbre.adb b/gcc/ada/libgnat/a-nbnbre.adb index c087f49..d61668d 100644 --- a/gcc/ada/libgnat/a-nbnbre.adb +++ b/gcc/ada/libgnat/a-nbnbre.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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- -- @@ -31,7 +31,7 @@ -- This is the default version of this package, based on Big_Integers only. -with Ada.Characters.Conversions; use Ada.Characters.Conversions; +with Ada.Strings.Text_Output.Utils; package body Ada.Numerics.Big_Numbers.Big_Reals is @@ -46,13 +46,13 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is -------------- function Is_Valid (Arg : Big_Real) return Boolean is - (Is_Valid (Arg.Num) and then Is_Valid (Arg.Den)); + (Is_Valid (Arg.Num) and Is_Valid (Arg.Den)); --------- -- "/" -- --------- - function "/" (Num, Den : Big_Integer) return Big_Real is + function "/" (Num, Den : Valid_Big_Integer) return Valid_Big_Real is Result : Big_Real; begin if Den = To_Big_Integer (0) then @@ -69,45 +69,47 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is -- Numerator -- --------------- - function Numerator (Arg : Big_Real) return Big_Integer is (Arg.Num); + function Numerator (Arg : Valid_Big_Real) return Valid_Big_Integer is + (Arg.Num); ----------------- -- Denominator -- ----------------- - function Denominator (Arg : Big_Real) return Big_Positive is (Arg.Den); + function Denominator (Arg : Valid_Big_Real) return Big_Positive is + (Arg.Den); --------- -- "=" -- --------- - function "=" (L, R : Big_Real) return Boolean is + function "=" (L, R : Valid_Big_Real) return Boolean is (abs L.Num = abs R.Num and then L.Den = R.Den); --------- -- "<" -- --------- - function "<" (L, R : Big_Real) return Boolean is + function "<" (L, R : Valid_Big_Real) return Boolean is (abs L.Num * R.Den < abs R.Num * L.Den); ---------- -- "<=" -- ---------- - function "<=" (L, R : Big_Real) return Boolean is (not (R < L)); + function "<=" (L, R : Valid_Big_Real) return Boolean is (not (R < L)); --------- -- ">" -- --------- - function ">" (L, R : Big_Real) return Boolean is (R < L); + function ">" (L, R : Valid_Big_Real) return Boolean is (R < L); ---------- -- ">=" -- ---------- - function ">=" (L, R : Big_Real) return Boolean is (not (L < R)); + function ">=" (L, R : Valid_Big_Real) return Boolean is (not (L < R)); ----------------------- -- Float_Conversions -- @@ -119,7 +121,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is -- To_Big_Real -- ----------------- - function To_Big_Real (Arg : Num) return Big_Real is + function To_Big_Real (Arg : Num) return Valid_Big_Real is begin return From_String (Arg'Image); end To_Big_Real; @@ -145,7 +147,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is -- To_Big_Real -- ----------------- - function To_Big_Real (Arg : Num) return Big_Real is + function To_Big_Real (Arg : Num) return Valid_Big_Real is begin return From_String (Arg'Image); end To_Big_Real; @@ -166,8 +168,10 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is --------------- function To_String - (Arg : Big_Real; Fore : Field := 2; Aft : Field := 3; Exp : Field := 0) - return String + (Arg : Valid_Big_Real; + Fore : Field := 2; + Aft : Field := 3; + Exp : Field := 0) return String is Zero : constant Big_Integer := To_Big_Integer (0); Ten : constant Big_Integer := To_Big_Integer (10); @@ -373,7 +377,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is -- From_Quotient_String -- -------------------------- - function From_Quotient_String (Arg : String) return Big_Real is + function From_Quotient_String (Arg : String) return Valid_Big_Real is Index : Natural := 0; begin for J in Arg'First + 1 .. Arg'Last - 1 loop @@ -395,18 +399,19 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is -- Put_Image -- --------------- - procedure Put_Image - (Stream : not null access Ada.Streams.Root_Stream_Type'Class; - Arg : Big_Real) is + procedure Put_Image (S : in out Sink'Class; V : Big_Real) is + -- This is implemented in terms of To_String. It might be more elegant + -- and more efficient to do it the other way around, but this is the + -- most expedient implementation for now. begin - Wide_Wide_String'Write (Stream, To_Wide_Wide_String (To_String (Arg))); + Strings.Text_Output.Utils.Put_UTF_8 (S, To_String (V)); end Put_Image; --------- -- "+" -- --------- - function "+" (L : Big_Real) return Big_Real is + function "+" (L : Valid_Big_Real) return Valid_Big_Real is Result : Big_Real; begin Result.Num := L.Num; @@ -418,21 +423,21 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is -- "-" -- --------- - function "-" (L : Big_Real) return Big_Real is + function "-" (L : Valid_Big_Real) return Valid_Big_Real is (Num => -L.Num, Den => L.Den); ----------- -- "abs" -- ----------- - function "abs" (L : Big_Real) return Big_Real is + function "abs" (L : Valid_Big_Real) return Valid_Big_Real is (Num => abs L.Num, Den => L.Den); --------- -- "+" -- --------- - function "+" (L, R : Big_Real) return Big_Real is + function "+" (L, R : Valid_Big_Real) return Valid_Big_Real is Result : Big_Real; begin Result.Num := L.Num * R.Den + R.Num * L.Den; @@ -445,7 +450,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is -- "-" -- --------- - function "-" (L, R : Big_Real) return Big_Real is + function "-" (L, R : Valid_Big_Real) return Valid_Big_Real is Result : Big_Real; begin Result.Num := L.Num * R.Den - R.Num * L.Den; @@ -458,7 +463,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is -- "*" -- --------- - function "*" (L, R : Big_Real) return Big_Real is + function "*" (L, R : Valid_Big_Real) return Valid_Big_Real is Result : Big_Real; begin Result.Num := L.Num * R.Num; @@ -471,7 +476,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is -- "/" -- --------- - function "/" (L, R : Big_Real) return Big_Real is + function "/" (L, R : Valid_Big_Real) return Valid_Big_Real is Result : Big_Real; begin Result.Num := L.Num * R.Den; @@ -484,7 +489,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is -- "**" -- ---------- - function "**" (L : Big_Real; R : Integer) return Big_Real is + function "**" (L : Valid_Big_Real; R : Integer) return Valid_Big_Real is Result : Big_Real; begin if R = 0 then @@ -509,32 +514,39 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is -- Min -- --------- - function Min (L, R : Big_Real) return Big_Real is (if L < R then L else R); + function Min (L, R : Valid_Big_Real) return Valid_Big_Real is + (if L < R then L else R); --------- -- Max -- --------- - function Max (L, R : Big_Real) return Big_Real is (if L > R then L else R); + function Max (L, R : Valid_Big_Real) return Valid_Big_Real is + (if L > R then L else R); --------------- -- Normalize -- --------------- procedure Normalize (Arg : in out Big_Real) is + Zero : constant Big_Integer := To_Big_Integer (0); begin - if Arg.Den < To_Big_Integer (0) then + if Arg.Den < Zero then Arg.Num := -Arg.Num; Arg.Den := -Arg.Den; end if; - declare - GCD : constant Big_Integer := - Greatest_Common_Divisor (Arg.Num, Arg.Den); - begin - Arg.Num := Arg.Num / GCD; - Arg.Den := Arg.Den / GCD; - end; + if Arg.Num = Zero then + Arg.Den := To_Big_Integer (1); + else + declare + GCD : constant Big_Integer := + Greatest_Common_Divisor (Arg.Num, Arg.Den); + begin + Arg.Num := Arg.Num / GCD; + Arg.Den := Arg.Den / GCD; + end; + end if; end Normalize; end Ada.Numerics.Big_Numbers.Big_Reals; diff --git a/gcc/ada/libgnat/a-nbnbre.ads b/gcc/ada/libgnat/a-nbnbre.ads index 4827caa..5a8ebb9 100644 --- a/gcc/ada/libgnat/a-nbnbre.ads +++ b/gcc/ada/libgnat/a-nbnbre.ads @@ -14,66 +14,84 @@ ------------------------------------------------------------------------------ with Ada.Numerics.Big_Numbers.Big_Integers; -with Ada.Streams; --- Note that some Ada 2020 aspects are commented out since they are not --- supported yet. +with Ada.Strings.Text_Output; use Ada.Strings.Text_Output; package Ada.Numerics.Big_Numbers.Big_Reals with Preelaborate --- Nonblocking, Global => in out synchronized Big_Reals is - type Big_Real is private; --- with Real_Literal => From_String, --- Put_Image => Put_Image; - - function Is_Valid (Arg : Big_Real) return Boolean; - - function "/" (Num, Den : Big_Integers.Big_Integer) return Big_Real; --- with Pre => (if Big_Integers."=" (Den, Big_Integers.To_Big_Integer (0)) --- then raise Constraint_Error); - - function Numerator (Arg : Big_Real) return Big_Integers.Big_Integer; - - function Denominator (Arg : Big_Real) return Big_Integers.Big_Positive - with Post => - (Arg = To_Real (0)) or else - (Big_Integers."=" - (Big_Integers.Greatest_Common_Divisor - (Numerator (Arg), Denominator'Result), - Big_Integers.To_Big_Integer (1))); + type Big_Real is private with + Real_Literal => From_String, + Put_Image => Put_Image; + + function Is_Valid (Arg : Big_Real) return Boolean + with + Convention => Intrinsic, + Global => null; + + subtype Valid_Big_Real is Big_Real + with Dynamic_Predicate => Is_Valid (Valid_Big_Real), + Predicate_Failure => raise Program_Error; + + function "/" + (Num, Den : Big_Integers.Valid_Big_Integer) return Valid_Big_Real + with Global => null; +-- with Pre => (Big_Integers."/=" (Den, Big_Integers.To_Big_Integer (0)) +-- or else Constraint_Error); + + function Numerator + (Arg : Valid_Big_Real) return Big_Integers.Valid_Big_Integer + with Global => null; + + function Denominator (Arg : Valid_Big_Real) return Big_Integers.Big_Positive + with + Post => + (if Arg = To_Real (0) + then Big_Integers."=" (Denominator'Result, + Big_Integers.To_Big_Integer (1)) + else Big_Integers."=" + (Big_Integers.Greatest_Common_Divisor + (Numerator (Arg), Denominator'Result), + Big_Integers.To_Big_Integer (1))), + Global => null; function To_Big_Real (Arg : Big_Integers.Big_Integer) - return Big_Real is (Arg / Big_Integers.To_Big_Integer (1)); + return Valid_Big_Real is (Arg / Big_Integers.To_Big_Integer (1)) + with Global => null; - function To_Real (Arg : Integer) return Big_Real is - (Big_Integers.To_Big_Integer (Arg) / Big_Integers.To_Big_Integer (1)); + function To_Real (Arg : Integer) return Valid_Big_Real is + (Big_Integers.To_Big_Integer (Arg) / Big_Integers.To_Big_Integer (1)) + with Global => null; - function "=" (L, R : Big_Real) return Boolean; + function "=" (L, R : Valid_Big_Real) return Boolean with Global => null; - function "<" (L, R : Big_Real) return Boolean; + function "<" (L, R : Valid_Big_Real) return Boolean with Global => null; - function "<=" (L, R : Big_Real) return Boolean; + function "<=" (L, R : Valid_Big_Real) return Boolean with Global => null; - function ">" (L, R : Big_Real) return Boolean; + function ">" (L, R : Valid_Big_Real) return Boolean with Global => null; - function ">=" (L, R : Big_Real) return Boolean; + function ">=" (L, R : Valid_Big_Real) return Boolean with Global => null; function In_Range (Arg, Low, High : Big_Real) return Boolean is - (Low <= Arg and then Arg <= High); + (Low <= Arg and then Arg <= High) + with Global => null; generic type Num is digits <>; package Float_Conversions is - function To_Big_Real (Arg : Num) return Big_Real; + function To_Big_Real (Arg : Num) return Valid_Big_Real + with Global => null; function From_Big_Real (Arg : Big_Real) return Num - with Pre => In_Range (Arg, - Low => To_Big_Real (Num'First), - High => To_Big_Real (Num'Last)) - or else (raise Constraint_Error); + with + Pre => In_Range (Arg, + Low => To_Big_Real (Num'First), + High => To_Big_Real (Num'Last)) + or else (raise Constraint_Error), + Global => null; end Float_Conversions; @@ -81,53 +99,69 @@ is type Num is delta <>; package Fixed_Conversions is - function To_Big_Real (Arg : Num) return Big_Real; + function To_Big_Real (Arg : Num) return Valid_Big_Real + with Global => null; function From_Big_Real (Arg : Big_Real) return Num - with Pre => In_Range (Arg, - Low => To_Big_Real (Num'First), - High => To_Big_Real (Num'Last)) - or else (raise Constraint_Error); + with + Pre => In_Range (Arg, + Low => To_Big_Real (Num'First), + High => To_Big_Real (Num'Last)) + or else (raise Constraint_Error), + Global => null; end Fixed_Conversions; - function To_String (Arg : Big_Real; + function To_String (Arg : Valid_Big_Real; Fore : Field := 2; Aft : Field := 3; Exp : Field := 0) return String - with Post => To_String'Result'First = 1; + with + Post => To_String'Result'First = 1, + Global => null; - function From_String (Arg : String) return Big_Real; + function From_String (Arg : String) return Big_Real + with Global => null; function To_Quotient_String (Arg : Big_Real) return String is (Big_Integers.To_String (Numerator (Arg)) & " / " - & Big_Integers.To_String (Denominator (Arg))); + & Big_Integers.To_String (Denominator (Arg))) + with Global => null; - function From_Quotient_String (Arg : String) return Big_Real; + function From_Quotient_String (Arg : String) return Valid_Big_Real + with Global => null; - procedure Put_Image - (Stream : not null access Ada.Streams.Root_Stream_Type'Class; - Arg : Big_Real); + procedure Put_Image (S : in out Sink'Class; V : Big_Real); - function "+" (L : Big_Real) return Big_Real; + function "+" (L : Valid_Big_Real) return Valid_Big_Real + with Global => null; - function "-" (L : Big_Real) return Big_Real; + function "-" (L : Valid_Big_Real) return Valid_Big_Real + with Global => null; - function "abs" (L : Big_Real) return Big_Real; + function "abs" (L : Valid_Big_Real) return Valid_Big_Real + with Global => null; - function "+" (L, R : Big_Real) return Big_Real; + function "+" (L, R : Valid_Big_Real) return Valid_Big_Real + with Global => null; - function "-" (L, R : Big_Real) return Big_Real; + function "-" (L, R : Valid_Big_Real) return Valid_Big_Real + with Global => null; - function "*" (L, R : Big_Real) return Big_Real; + function "*" (L, R : Valid_Big_Real) return Valid_Big_Real + with Global => null; - function "/" (L, R : Big_Real) return Big_Real; + function "/" (L, R : Valid_Big_Real) return Valid_Big_Real + with Global => null; - function "**" (L : Big_Real; R : Integer) return Big_Real; + function "**" (L : Valid_Big_Real; R : Integer) return Valid_Big_Real + with Global => null; - function Min (L, R : Big_Real) return Big_Real; + function Min (L, R : Valid_Big_Real) return Valid_Big_Real + with Global => null; - function Max (L, R : Big_Real) return Big_Real; + function Max (L, R : Valid_Big_Real) return Valid_Big_Real + with Global => null; private diff --git a/gcc/ada/libgnat/a-ngcefu.adb b/gcc/ada/libgnat/a-ngcefu.adb index 390f42b..46af6f8 100644 --- a/gcc/ada/libgnat/a-ngcefu.adb +++ b/gcc/ada/libgnat/a-ngcefu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ngcoar.adb b/gcc/ada/libgnat/a-ngcoar.adb index a464a32..3a7cede 100644 --- a/gcc/ada/libgnat/a-ngcoar.adb +++ b/gcc/ada/libgnat/a-ngcoar.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2006-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2006-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ngcoty.adb b/gcc/ada/libgnat/a-ngcoty.adb index bece703..6785ccf 100644 --- a/gcc/ada/libgnat/a-ngcoty.adb +++ b/gcc/ada/libgnat/a-ngcoty.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -66,11 +66,19 @@ package body Ada.Numerics.Generic_Complex_Types is -- return false, the test can only be written thus. if not (abs (X) <= R'Last) then + pragma Annotate + (CodePeer, Intentional, + "test always false", "test for infinity"); + X := Scale**2 * ((Left.Re / Scale) * (Right.Re / Scale) - (Left.Im / Scale) * (Right.Im / Scale)); end if; if not (abs (Y) <= R'Last) then + pragma Annotate + (CodePeer, Intentional, + "test always false", "test for infinity"); + Y := Scale**2 * ((Left.Re / Scale) * (Right.Im / Scale) + (Left.Im / Scale) * (Right.Re / Scale)); end if; @@ -588,6 +596,7 @@ package body Ada.Numerics.Generic_Complex_Types is exception when Constraint_Error => + pragma Assert (X.Re /= 0.0); return R (Double (abs (X.Re)) * Sqrt (1.0 + (Double (X.Im) / Double (X.Re)) ** 2)); end; @@ -602,6 +611,7 @@ package body Ada.Numerics.Generic_Complex_Types is exception when Constraint_Error => + pragma Assert (X.Im /= 0.0); return R (Double (abs (X.Im)) * Sqrt (1.0 + (Double (X.Re) / Double (X.Im)) ** 2)); end; diff --git a/gcc/ada/libgnat/a-ngcoty.ads b/gcc/ada/libgnat/a-ngcoty.ads index f775120..a5534cd 100644 --- a/gcc/ada/libgnat/a-ngcoty.ads +++ b/gcc/ada/libgnat/a-ngcoty.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-ngelfu.adb b/gcc/ada/libgnat/a-ngelfu.adb index 71cd47b..7e7c662 100644 --- a/gcc/ada/libgnat/a-ngelfu.adb +++ b/gcc/ada/libgnat/a-ngelfu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -680,6 +680,8 @@ is Z := G * G; P := G * ((P2 * Z + P1) * Z + P0); Q := ((Q3 * Z + Q2) * Z + Q1) * Z + Q0; + + pragma Assert (Q /= P); R := 0.5 + P / (Q - P); R := Float_Type'Base'Scaling (R, Integer (XN) + 1); diff --git a/gcc/ada/libgnat/a-ngelfu.ads b/gcc/ada/libgnat/a-ngelfu.ads index cb6137c..1a8e176 100644 --- a/gcc/ada/libgnat/a-ngelfu.ads +++ b/gcc/ada/libgnat/a-ngelfu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2012-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2012-2020, 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 -- diff --git a/gcc/ada/libgnat/a-ngrear.adb b/gcc/ada/libgnat/a-ngrear.adb index 8418ec1..1115cd3 100644 --- a/gcc/ada/libgnat/a-ngrear.adb +++ b/gcc/ada/libgnat/a-ngrear.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2006-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2006-2020, 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- -- @@ -560,6 +560,8 @@ package body Ada.Numerics.Generic_Real_Arrays is function Compute_Tan (P, H : Real) return Real is (if Is_Tiny (P, Compared_To => H) then P / H else Compute_Tan (Theta => H / (2.0 * P))); + pragma Annotate + (CodePeer, False_Positive, "divide by zero", "H, P /= 0"); function Sum_Strict_Upper (M : Square_Matrix) return Real; -- Return the sum of all elements in the strict upper triangle of M diff --git a/gcc/ada/libgnat/a-ngrear.ads b/gcc/ada/libgnat/a-ngrear.ads index aa97af5..748d6b7 100644 --- a/gcc/ada/libgnat/a-ngrear.ads +++ b/gcc/ada/libgnat/a-ngrear.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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 -- diff --git a/gcc/ada/libgnat/a-nubinu.ads b/gcc/ada/libgnat/a-nubinu.ads index a25e39c..c2b95d8 100644 --- a/gcc/ada/libgnat/a-nubinu.ads +++ b/gcc/ada/libgnat/a-nubinu.ads @@ -13,11 +13,7 @@ -- -- ------------------------------------------------------------------------------ --- Note that some Ada 2020 aspects are commented out since they are not --- supported yet. - package Ada.Numerics.Big_Numbers - -- with Pure, Nonblocking, Global => null with Pure is subtype Field is Integer range 0 .. 255; diff --git a/gcc/ada/libgnat/a-nudira.adb b/gcc/ada/libgnat/a-nudira.adb index 23c8e72..e18403c 100644 --- a/gcc/ada/libgnat/a-nudira.adb +++ b/gcc/ada/libgnat/a-nudira.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -56,6 +56,17 @@ is return Random (SRN.Generator (Gen)); end Random; + function Random + (Gen : Generator; + First : Result_Subtype; + Last : Result_Subtype) return Result_Subtype + is + subtype Local_Subtype is Result_Subtype range First .. Last; + function Random is new SRN.Random_Discrete (Local_Subtype, First); + begin + return Random (SRN.Generator (Gen)); + end Random; + ----------- -- Reset -- ----------- diff --git a/gcc/ada/libgnat/a-nudira.ads b/gcc/ada/libgnat/a-nudira.ads index 8a6b6c2..35b7dc6 100644 --- a/gcc/ada/libgnat/a-nudira.ads +++ b/gcc/ada/libgnat/a-nudira.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- @@ -51,6 +51,12 @@ is function Random (Gen : Generator) return Result_Subtype; + function Random + (Gen : Generator; + First : Result_Subtype; + Last : Result_Subtype) return Result_Subtype + with Post => Random'Result in First .. Last; + procedure Reset (Gen : Generator; Initiator : Integer); procedure Reset (Gen : Generator); diff --git a/gcc/ada/libgnat/a-nuflra.adb b/gcc/ada/libgnat/a-nuflra.adb index 19d202b..8621006 100644 --- a/gcc/ada/libgnat/a-nuflra.adb +++ b/gcc/ada/libgnat/a-nuflra.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-nuflra.ads b/gcc/ada/libgnat/a-nuflra.ads index e1f8704..ff7ab88 100644 --- a/gcc/ada/libgnat/a-nuflra.ads +++ b/gcc/ada/libgnat/a-nuflra.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-numaux.ads b/gcc/ada/libgnat/a-numaux.ads index 01c5224..3ad7067 100644 --- a/gcc/ada/libgnat/a-numaux.ads +++ b/gcc/ada/libgnat/a-numaux.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (C Library Version, non-x86) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-numaux__darwin.adb b/gcc/ada/libgnat/a-numaux__darwin.adb index 0e57128..85fdd24 100644 --- a/gcc/ada/libgnat/a-numaux__darwin.adb +++ b/gcc/ada/libgnat/a-numaux__darwin.adb @@ -7,7 +7,7 @@ -- B o d y -- -- (Apple OS X Version) -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, 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- -- diff --git a/gcc/ada/libgnat/a-numaux__darwin.ads b/gcc/ada/libgnat/a-numaux__darwin.ads index a699e85..f2a4428 100644 --- a/gcc/ada/libgnat/a-numaux__darwin.ads +++ b/gcc/ada/libgnat/a-numaux__darwin.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (Apple OS X Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-numaux__dummy.adb b/gcc/ada/libgnat/a-numaux__dummy.adb new file mode 100644 index 0000000..f5d72ec --- /dev/null +++ b/gcc/ada/libgnat/a-numaux__dummy.adb @@ -0,0 +1,32 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- A D A . N U M E R I C S . A U X -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 1992-2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +pragma No_Body; diff --git a/gcc/ada/libgnat/a-numaux__libc-x86.ads b/gcc/ada/libgnat/a-numaux__libc-x86.ads index db71671..c4647fd 100644 --- a/gcc/ada/libgnat/a-numaux__libc-x86.ads +++ b/gcc/ada/libgnat/a-numaux__libc-x86.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (C Library Version for x86) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-numaux__vxworks.ads b/gcc/ada/libgnat/a-numaux__vxworks.ads index ace578c..c291334 100644 --- a/gcc/ada/libgnat/a-numaux__vxworks.ads +++ b/gcc/ada/libgnat/a-numaux__vxworks.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (C Library Version, VxWorks) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-numaux__x86.adb b/gcc/ada/libgnat/a-numaux__x86.adb deleted file mode 100644 index 2a849a6..0000000 --- a/gcc/ada/libgnat/a-numaux__x86.adb +++ /dev/null @@ -1,577 +0,0 @@ ------------------------------------------------------------------------------- --- -- --- GNAT RUN-TIME COMPONENTS -- --- -- --- A D A . N U M E R I C S . A U X -- --- -- --- B o d y -- --- (Machine Version for x86) -- --- -- --- Copyright (C) 1998-2019, 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- -- --- ware Foundation; either version 3, or (at your option) any later ver- -- --- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- --- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- --- or FITNESS FOR A PARTICULAR PURPOSE. -- --- -- --- As a special exception under Section 7 of GPL version 3, you are granted -- --- additional permissions described in the GCC Runtime Library Exception, -- --- version 3.1, as published by the Free Software Foundation. -- --- -- --- You should have received a copy of the GNU General Public License and -- --- a copy of the GCC Runtime Library Exception along with this program; -- --- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- --- <http://www.gnu.org/licenses/>. -- --- -- --- GNAT was originally developed by the GNAT team at New York University. -- --- Extensive contributions were provided by Ada Core Technologies Inc. -- --- -- ------------------------------------------------------------------------------- - -with System.Machine_Code; use System.Machine_Code; - -package body Ada.Numerics.Aux is - - NL : constant String := ASCII.LF & ASCII.HT; - - ----------------------- - -- Local subprograms -- - ----------------------- - - function Is_Nan (X : Double) return Boolean; - -- Return True iff X is a IEEE NaN value - - function Logarithmic_Pow (X, Y : Double) return Double; - -- Implementation of X**Y using Exp and Log functions (binary base) - -- to calculate the exponentiation. This is used by Pow for values - -- for values of Y in the open interval (-0.25, 0.25) - - procedure Reduce (X : in out Double; Q : out Natural); - -- Implement reduction of X by Pi/2. Q is the quadrant of the final - -- result in the range 0..3. The absolute value of X is at most Pi/4. - -- It is needed to avoid a loss of accuracy for sin near Pi and cos - -- near Pi/2 due to the use of an insufficiently precise value of Pi - -- in the range reduction. - - pragma Inline (Is_Nan); - pragma Inline (Reduce); - - -------------------------------- - -- Basic Elementary Functions -- - -------------------------------- - - -- This section implements a few elementary functions that are used to - -- build the more complex ones. This ordering enables better inlining. - - ---------- - -- Atan -- - ---------- - - function Atan (X : Double) return Double is - Result : Double; - - begin - Asm (Template => - "fld1" & NL - & "fpatan", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", X)); - - -- The result value is NaN iff input was invalid - - if not (Result = Result) then - raise Argument_Error; - end if; - - return Result; - end Atan; - - --------- - -- Exp -- - --------- - - function Exp (X : Double) return Double is - Result : Double; - begin - Asm (Template => - "fldl2e " & NL - & "fmulp %%st, %%st(1)" & NL -- X * log2 (E) - & "fld %%st(0) " & NL - & "frndint " & NL -- Integer (X * Log2 (E)) - & "fsubr %%st, %%st(1)" & NL -- Fraction (X * Log2 (E)) - & "fxch " & NL - & "f2xm1 " & NL -- 2**(...) - 1 - & "fld1 " & NL - & "faddp %%st, %%st(1)" & NL -- 2**(Fraction (X * Log2 (E))) - & "fscale " & NL -- E ** X - & "fstp %%st(1) ", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", X)); - return Result; - end Exp; - - ------------ - -- Is_Nan -- - ------------ - - function Is_Nan (X : Double) return Boolean is - begin - -- The IEEE NaN values are the only ones that do not equal themselves - - return X /= X; - end Is_Nan; - - --------- - -- Log -- - --------- - - function Log (X : Double) return Double is - Result : Double; - - begin - Asm (Template => - "fldln2 " & NL - & "fxch " & NL - & "fyl2x " & NL, - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", X)); - return Result; - end Log; - - ------------ - -- Reduce -- - ------------ - - procedure Reduce (X : in out Double; Q : out Natural) is - Half_Pi : constant := Pi / 2.0; - Two_Over_Pi : constant := 2.0 / Pi; - - HM : constant := Integer'Min (Double'Machine_Mantissa / 2, Natural'Size); - M : constant Double := 0.5 + 2.0**(1 - HM); -- Splitting constant - P1 : constant Double := Double'Leading_Part (Half_Pi, HM); - P2 : constant Double := Double'Leading_Part (Half_Pi - P1, HM); - P3 : constant Double := Double'Leading_Part (Half_Pi - P1 - P2, HM); - P4 : constant Double := Double'Leading_Part (Half_Pi - P1 - P2 - P3, HM); - P5 : constant Double := Double'Leading_Part (Half_Pi - P1 - P2 - P3 - - P4, HM); - P6 : constant Double := Double'Model (Half_Pi - P1 - P2 - P3 - P4 - P5); - K : Double; - R : Integer; - - begin - -- For X < 2.0**HM, all products below are computed exactly. - -- Due to cancellation effects all subtractions are exact as well. - -- As no double extended floating-point number has more than 75 - -- zeros after the binary point, the result will be the correctly - -- rounded result of X - K * (Pi / 2.0). - - K := X * Two_Over_Pi; - while abs K >= 2.0**HM loop - K := K * M - (K * M - K); - X := - (((((X - K * P1) - K * P2) - K * P3) - K * P4) - K * P5) - K * P6; - K := X * Two_Over_Pi; - end loop; - - -- If K is not a number (because X was not finite) raise exception - - if Is_Nan (K) then - raise Constraint_Error; - end if; - - -- Go through an integer temporary so as to use machine instructions - - R := Integer (Double'Rounding (K)); - Q := R mod 4; - K := Double (R); - X := (((((X - K * P1) - K * P2) - K * P3) - K * P4) - K * P5) - K * P6; - end Reduce; - - ---------- - -- Sqrt -- - ---------- - - function Sqrt (X : Double) return Double is - Result : Double; - - begin - if X < 0.0 then - raise Argument_Error; - end if; - - Asm (Template => "fsqrt", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", X)); - - return Result; - end Sqrt; - - -------------------------------- - -- Other Elementary Functions -- - -------------------------------- - - -- These are built using the previously implemented basic functions - - ---------- - -- Acos -- - ---------- - - function Acos (X : Double) return Double is - Result : Double; - - begin - Result := 2.0 * Atan (Sqrt ((1.0 - X) / (1.0 + X))); - - -- The result value is NaN iff input was invalid - - if Is_Nan (Result) then - raise Argument_Error; - end if; - - return Result; - end Acos; - - ---------- - -- Asin -- - ---------- - - function Asin (X : Double) return Double is - Result : Double; - - begin - Result := Atan (X / Sqrt ((1.0 - X) * (1.0 + X))); - - -- The result value is NaN iff input was invalid - - if Is_Nan (Result) then - raise Argument_Error; - end if; - - return Result; - end Asin; - - --------- - -- Cos -- - --------- - - function Cos (X : Double) return Double is - Reduced_X : Double := abs X; - Result : Double; - Quadrant : Natural range 0 .. 3; - - begin - if Reduced_X > Pi / 4.0 then - Reduce (Reduced_X, Quadrant); - - case Quadrant is - when 0 => - Asm (Template => "fcos", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", Reduced_X)); - - when 1 => - Asm (Template => "fsin", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", -Reduced_X)); - - when 2 => - Asm (Template => "fcos ; fchs", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", Reduced_X)); - - when 3 => - Asm (Template => "fsin", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", Reduced_X)); - end case; - - else - Asm (Template => "fcos", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", Reduced_X)); - end if; - - return Result; - end Cos; - - --------------------- - -- Logarithmic_Pow -- - --------------------- - - function Logarithmic_Pow (X, Y : Double) return Double is - Result : Double; - begin - Asm (Template => "" -- X : Y - & "fyl2x " & NL -- Y * Log2 (X) - & "fld %%st(0) " & NL -- Y * Log2 (X) : Y * Log2 (X) - & "frndint " & NL -- Int (...) : Y * Log2 (X) - & "fsubr %%st, %%st(1)" & NL -- Int (...) : Fract (...) - & "fxch " & NL -- Fract (...) : Int (...) - & "f2xm1 " & NL -- 2**Fract (...) - 1 : Int (...) - & "fld1 " & NL -- 1 : 2**Fract (...) - 1 : Int (...) - & "faddp %%st, %%st(1)" & NL -- 2**Fract (...) : Int (...) - & "fscale ", -- 2**(Fract (...) + Int (...)) - Outputs => Double'Asm_Output ("=t", Result), - Inputs => - (Double'Asm_Input ("0", X), - Double'Asm_Input ("u", Y))); - return Result; - end Logarithmic_Pow; - - --------- - -- Pow -- - --------- - - function Pow (X, Y : Double) return Double is - type Mantissa_Type is mod 2**Double'Machine_Mantissa; - -- Modular type that can hold all bits of the mantissa of Double - - -- For negative exponents, do divide at the end of the processing - - Negative_Y : constant Boolean := Y < 0.0; - Abs_Y : constant Double := abs Y; - - -- During this function the following invariant is kept: - -- X ** (abs Y) = Base**(Exp_High + Exp_Mid + Exp_Low) * Factor - - Base : Double := X; - - Exp_High : Double := Double'Floor (Abs_Y); - Exp_Mid : Double; - Exp_Low : Double; - Exp_Int : Mantissa_Type; - - Factor : Double := 1.0; - - begin - -- Select algorithm for calculating Pow (integer cases fall through) - - if Exp_High >= 2.0**Double'Machine_Mantissa then - - -- In case of Y that is IEEE infinity, just raise constraint error - - if Exp_High > Double'Safe_Last then - raise Constraint_Error; - end if; - - -- Large values of Y are even integers and will stay integer - -- after division by two. - - loop - -- Exp_Mid and Exp_Low are zero, so - -- X**(abs Y) = Base ** Exp_High = (Base**2) ** (Exp_High / 2) - - Exp_High := Exp_High / 2.0; - Base := Base * Base; - exit when Exp_High < 2.0**Double'Machine_Mantissa; - end loop; - - elsif Exp_High /= Abs_Y then - Exp_Low := Abs_Y - Exp_High; - Factor := 1.0; - - if Exp_Low /= 0.0 then - - -- Exp_Low now is in interval (0.0, 1.0) - -- Exp_Mid := Double'Floor (Exp_Low * 4.0) / 4.0; - - Exp_Mid := 0.0; - Exp_Low := Exp_Low - Exp_Mid; - - if Exp_Low >= 0.5 then - Factor := Sqrt (X); - Exp_Low := Exp_Low - 0.5; -- exact - - if Exp_Low >= 0.25 then - Factor := Factor * Sqrt (Factor); - Exp_Low := Exp_Low - 0.25; -- exact - end if; - - elsif Exp_Low >= 0.25 then - Factor := Sqrt (Sqrt (X)); - Exp_Low := Exp_Low - 0.25; -- exact - end if; - - -- Exp_Low now is in interval (0.0, 0.25) - - -- This means it is safe to call Logarithmic_Pow - -- for the remaining part. - - Factor := Factor * Logarithmic_Pow (X, Exp_Low); - end if; - - elsif X = 0.0 then - return 0.0; - end if; - - -- Exp_High is non-zero integer smaller than 2**Double'Machine_Mantissa - - Exp_Int := Mantissa_Type (Exp_High); - - -- Standard way for processing integer powers > 0 - - while Exp_Int > 1 loop - if (Exp_Int and 1) = 1 then - - -- Base**Y = Base**(Exp_Int - 1) * Exp_Int for Exp_Int > 0 - - Factor := Factor * Base; - end if; - - -- Exp_Int is even and Exp_Int > 0, so - -- Base**Y = (Base**2)**(Exp_Int / 2) - - Base := Base * Base; - Exp_Int := Exp_Int / 2; - end loop; - - -- Exp_Int = 1 or Exp_Int = 0 - - if Exp_Int = 1 then - Factor := Base * Factor; - end if; - - if Negative_Y then - Factor := 1.0 / Factor; - end if; - - return Factor; - end Pow; - - --------- - -- Sin -- - --------- - - function Sin (X : Double) return Double is - Reduced_X : Double := X; - Result : Double; - Quadrant : Natural range 0 .. 3; - - begin - if abs X > Pi / 4.0 then - Reduce (Reduced_X, Quadrant); - - case Quadrant is - when 0 => - Asm (Template => "fsin", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", Reduced_X)); - - when 1 => - Asm (Template => "fcos", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", Reduced_X)); - - when 2 => - Asm (Template => "fsin", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", -Reduced_X)); - - when 3 => - Asm (Template => "fcos ; fchs", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", Reduced_X)); - end case; - - else - Asm (Template => "fsin", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", Reduced_X)); - end if; - - return Result; - end Sin; - - --------- - -- Tan -- - --------- - - function Tan (X : Double) return Double is - Reduced_X : Double := X; - Result : Double; - Quadrant : Natural range 0 .. 3; - - begin - if abs X > Pi / 4.0 then - Reduce (Reduced_X, Quadrant); - - if Quadrant mod 2 = 0 then - Asm (Template => "fptan" & NL - & "ffree %%st(0)" & NL - & "fincstp", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", Reduced_X)); - else - Asm (Template => "fsincos" & NL - & "fdivp %%st, %%st(1)" & NL - & "fchs", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", Reduced_X)); - end if; - - else - Asm (Template => - "fptan " & NL - & "ffree %%st(0) " & NL - & "fincstp ", - Outputs => Double'Asm_Output ("=t", Result), - Inputs => Double'Asm_Input ("0", Reduced_X)); - end if; - - return Result; - end Tan; - - ---------- - -- Sinh -- - ---------- - - function Sinh (X : Double) return Double is - begin - -- Mathematically Sinh (x) is defined to be (Exp (X) - Exp (-X)) / 2.0 - - if abs X < 25.0 then - return (Exp (X) - Exp (-X)) / 2.0; - else - return Exp (X) / 2.0; - end if; - end Sinh; - - ---------- - -- Cosh -- - ---------- - - function Cosh (X : Double) return Double is - begin - -- Mathematically Cosh (X) is defined to be (Exp (X) + Exp (-X)) / 2.0 - - if abs X < 22.0 then - return (Exp (X) + Exp (-X)) / 2.0; - else - return Exp (X) / 2.0; - end if; - end Cosh; - - ---------- - -- Tanh -- - ---------- - - function Tanh (X : Double) return Double is - begin - -- Return the Hyperbolic Tangent of x - - -- x -x - -- e - e Sinh (X) - -- Tanh (X) is defined to be ----------- = -------- - -- x -x Cosh (X) - -- e + e - - if abs X > 23.0 then - return Double'Copy_Sign (1.0, X); - end if; - - return 1.0 / (1.0 + Exp (-(2.0 * X))) - 1.0 / (1.0 + Exp (2.0 * X)); - end Tanh; - -end Ada.Numerics.Aux; diff --git a/gcc/ada/libgnat/a-rbtgbk.adb b/gcc/ada/libgnat/a-rbtgbk.adb index d959de5..40a792f 100644 --- a/gcc/ada/libgnat/a-rbtgbk.adb +++ b/gcc/ada/libgnat/a-rbtgbk.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-rbtgbk.ads b/gcc/ada/libgnat/a-rbtgbk.ads index 36c4783..22f6c22 100644 --- a/gcc/ada/libgnat/a-rbtgbk.ads +++ b/gcc/ada/libgnat/a-rbtgbk.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-rbtgbo.adb b/gcc/ada/libgnat/a-rbtgbo.adb index 679030d..a2775ea 100644 --- a/gcc/ada/libgnat/a-rbtgbo.adb +++ b/gcc/ada/libgnat/a-rbtgbo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-rbtgbo.ads b/gcc/ada/libgnat/a-rbtgbo.ads index 73ee0de..968c2f2 100644 --- a/gcc/ada/libgnat/a-rbtgbo.ads +++ b/gcc/ada/libgnat/a-rbtgbo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-rbtgso.adb b/gcc/ada/libgnat/a-rbtgso.adb index 5dbee70..fcb254d 100644 --- a/gcc/ada/libgnat/a-rbtgso.adb +++ b/gcc/ada/libgnat/a-rbtgso.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- @@ -94,9 +94,9 @@ package body Ada.Containers.Red_Black_Trees.Generic_Set_Operations is Compare : Integer; begin - if Target'Address = Source'Address then - TC_Check (Target.TC); + TC_Check (Target.TC); + if Target'Address = Source'Address then Clear (Target); return; end if; @@ -105,8 +105,6 @@ package body Ada.Containers.Red_Black_Trees.Generic_Set_Operations is return; end if; - TC_Check (Target.TC); - Tgt := Target.First; Src := Source.First; loop diff --git a/gcc/ada/libgnat/a-rbtgso.ads b/gcc/ada/libgnat/a-rbtgso.ads index 5970f45..e6eeb33 100644 --- a/gcc/ada/libgnat/a-rbtgso.ads +++ b/gcc/ada/libgnat/a-rbtgso.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-sbecin.adb b/gcc/ada/libgnat/a-sbecin.adb index 4673236..d9bef56 100644 --- a/gcc/ada/libgnat/a-sbecin.adb +++ b/gcc/ada/libgnat/a-sbecin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/a-sbecin.ads b/gcc/ada/libgnat/a-sbecin.ads index 66e682b..9144e9e 100644 --- a/gcc/ada/libgnat/a-sbecin.ads +++ b/gcc/ada/libgnat/a-sbecin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- diff --git a/gcc/ada/libgnat/a-sbhcin.adb b/gcc/ada/libgnat/a-sbhcin.adb index 2efd5d8..5062756 100644 --- a/gcc/ada/libgnat/a-sbhcin.adb +++ b/gcc/ada/libgnat/a-sbhcin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/a-sbhcin.ads b/gcc/ada/libgnat/a-sbhcin.ads index 64de2ca..ec1d97c 100644 --- a/gcc/ada/libgnat/a-sbhcin.ads +++ b/gcc/ada/libgnat/a-sbhcin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- diff --git a/gcc/ada/libgnat/a-sblcin.adb b/gcc/ada/libgnat/a-sblcin.adb index 386a1a0..c21050d 100644 --- a/gcc/ada/libgnat/a-sblcin.adb +++ b/gcc/ada/libgnat/a-sblcin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/a-sblcin.ads b/gcc/ada/libgnat/a-sblcin.ads index f50c6df..8915631 100644 --- a/gcc/ada/libgnat/a-sblcin.ads +++ b/gcc/ada/libgnat/a-sblcin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- diff --git a/gcc/ada/libgnat/a-secain.adb b/gcc/ada/libgnat/a-secain.adb index b06387f..6c042f1 100644 --- a/gcc/ada/libgnat/a-secain.adb +++ b/gcc/ada/libgnat/a-secain.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-secain.ads b/gcc/ada/libgnat/a-secain.ads index 4d985e1..3e77231 100644 --- a/gcc/ada/libgnat/a-secain.ads +++ b/gcc/ada/libgnat/a-secain.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-sequio.adb b/gcc/ada/libgnat/a-sequio.adb index 9519a87..0b5aa61 100644 --- a/gcc/ada/libgnat/a-sequio.adb +++ b/gcc/ada/libgnat/a-sequio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -73,7 +73,7 @@ package body Ada.Sequential_IO is procedure Byte_Swap (Siz : in out size_t) is use System.Byte_Swapping; begin - case Siz'Size is + case size_t'Size is when 32 => Siz := size_t (Bswap_32 (U32 (Siz))); when 64 => Siz := size_t (Bswap_64 (U64 (Siz))); when others => raise Program_Error; diff --git a/gcc/ada/libgnat/a-sequio.ads b/gcc/ada/libgnat/a-sequio.ads index 4a2e803..dcaa3f0 100644 --- a/gcc/ada/libgnat/a-sequio.ads +++ b/gcc/ada/libgnat/a-sequio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-sfecin.ads b/gcc/ada/libgnat/a-sfecin.ads index 0aaf97b..0c1b0a7 100644 --- a/gcc/ada/libgnat/a-sfecin.ads +++ b/gcc/ada/libgnat/a-sfecin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- diff --git a/gcc/ada/libgnat/a-sfhcin.ads b/gcc/ada/libgnat/a-sfhcin.ads index be7e5c2..8da6f43 100644 --- a/gcc/ada/libgnat/a-sfhcin.ads +++ b/gcc/ada/libgnat/a-sfhcin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- diff --git a/gcc/ada/libgnat/a-sflcin.ads b/gcc/ada/libgnat/a-sflcin.ads index a40c3aa..8fb7ac1 100644 --- a/gcc/ada/libgnat/a-sflcin.ads +++ b/gcc/ada/libgnat/a-sflcin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- diff --git a/gcc/ada/libgnat/a-shcain.adb b/gcc/ada/libgnat/a-shcain.adb index 5908614..35a346e 100644 --- a/gcc/ada/libgnat/a-shcain.adb +++ b/gcc/ada/libgnat/a-shcain.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-shcain.ads b/gcc/ada/libgnat/a-shcain.ads index efe0e2c..4d2975c 100644 --- a/gcc/ada/libgnat/a-shcain.ads +++ b/gcc/ada/libgnat/a-shcain.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-siocst.adb b/gcc/ada/libgnat/a-siocst.adb index a912eee..5501486 100644 --- a/gcc/ada/libgnat/a-siocst.adb +++ b/gcc/ada/libgnat/a-siocst.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-siocst.ads b/gcc/ada/libgnat/a-siocst.ads index a4dcfba..3a37f7bb 100644 --- a/gcc/ada/libgnat/a-siocst.ads +++ b/gcc/ada/libgnat/a-siocst.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-slcain.adb b/gcc/ada/libgnat/a-slcain.adb index 72c9192..732e103 100644 --- a/gcc/ada/libgnat/a-slcain.adb +++ b/gcc/ada/libgnat/a-slcain.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-slcain.ads b/gcc/ada/libgnat/a-slcain.ads index 84ca194..8efa651 100644 --- a/gcc/ada/libgnat/a-slcain.ads +++ b/gcc/ada/libgnat/a-slcain.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ssicst.adb b/gcc/ada/libgnat/a-ssicst.adb index 90b48bd..2293136 100644 --- a/gcc/ada/libgnat/a-ssicst.adb +++ b/gcc/ada/libgnat/a-ssicst.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ssicst.ads b/gcc/ada/libgnat/a-ssicst.ads index c488536..7cf18cb 100644 --- a/gcc/ada/libgnat/a-ssicst.ads +++ b/gcc/ada/libgnat/a-ssicst.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stboha.adb b/gcc/ada/libgnat/a-stboha.adb index adf0330..a960dc3 100644 --- a/gcc/ada/libgnat/a-stboha.adb +++ b/gcc/ada/libgnat/a-stboha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stmaco.ads b/gcc/ada/libgnat/a-stmaco.ads index 3bd60f6..8493bb3 100644 --- a/gcc/ada/libgnat/a-stmaco.ads +++ b/gcc/ada/libgnat/a-stmaco.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-stobbu.adb b/gcc/ada/libgnat/a-stobbu.adb new file mode 100644 index 0000000..fba591d --- /dev/null +++ b/gcc/ada/libgnat/a-stobbu.adb @@ -0,0 +1,53 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT.BIT_BUCKETS -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +package body Ada.Strings.Text_Output.Bit_Buckets is + + type Bit_Bucket_Type is new Sink with null record; + overriding procedure Full_Method (S : in out Bit_Bucket_Type); + overriding procedure Flush_Method (S : in out Bit_Bucket_Type); + + The_Bit_Bucket : aliased Bit_Bucket_Type + (Chunk_Length => Default_Chunk_Length); + function Bit_Bucket return Sink_Access is (The_Bit_Bucket'Access); + + overriding procedure Full_Method (S : in out Bit_Bucket_Type) + renames Flush_Method; + + overriding procedure Flush_Method (S : in out Bit_Bucket_Type) is + begin + S.Last := 0; + end Flush_Method; + +begin + The_Bit_Bucket.Indent_Amount := 0; + The_Bit_Bucket.Cur_Chunk := The_Bit_Bucket.Initial_Chunk'Access; +end Ada.Strings.Text_Output.Bit_Buckets; diff --git a/gcc/ada/libgnat/a-stobbu.ads b/gcc/ada/libgnat/a-stobbu.ads new file mode 100644 index 0000000..027e711 --- /dev/null +++ b/gcc/ada/libgnat/a-stobbu.ads @@ -0,0 +1,34 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT.BIT_BUCKETS -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +package Ada.Strings.Text_Output.Bit_Buckets is + function Bit_Bucket return Sink_Access; +end Ada.Strings.Text_Output.Bit_Buckets; diff --git a/gcc/ada/libgnat/a-stobfi.adb b/gcc/ada/libgnat/a-stobfi.adb new file mode 100644 index 0000000..dd485ba --- /dev/null +++ b/gcc/ada/libgnat/a-stobfi.adb @@ -0,0 +1,118 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT.BASIC_FILES -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +with Ada.Strings.Text_Output.Utils; use Ada.Strings.Text_Output.Utils; +package body Ada.Strings.Text_Output.Basic_Files is + use type OS.File_Descriptor; + + function Create_From_FD + (FD : OS.File_Descriptor; + Indent_Amount : Natural; + Chunk_Length : Positive) return File; + -- Create a file from an OS file descriptor + + function Create_From_FD + (FD : OS.File_Descriptor; + Indent_Amount : Natural; + Chunk_Length : Positive) return File + is + begin + if FD = OS.Invalid_FD then + raise Program_Error with OS.Errno_Message; + end if; + return Result : File (Chunk_Length) do + Result.Indent_Amount := Indent_Amount; + Result.Cur_Chunk := Result.Initial_Chunk'Unchecked_Access; + Result.FD := FD; + end return; + end Create_From_FD; + + function Create_File + (Name : String; + Indent_Amount : Natural := Default_Indent_Amount; + Chunk_Length : Positive := Default_Chunk_Length) return File + is + begin + return Create_From_FD + (OS.Create_File (Name, Fmode => OS.Text), + Indent_Amount, Chunk_Length); + end Create_File; + + function Create_New_File + (Name : String; + Indent_Amount : Natural := Default_Indent_Amount; + Chunk_Length : Positive := Default_Chunk_Length) return File + is + begin + return Create_From_FD + (OS.Create_New_File (Name, Fmode => OS.Text), + Indent_Amount, Chunk_Length); + end Create_New_File; + + procedure Close (S : in out File'Class) is + Status : Boolean; + begin + Flush (S); + + if S.FD not in OS.Standout | OS.Standerr then -- Don't close these + OS.Close (S.FD, Status); + if not Status then + raise Program_Error with OS.Errno_Message; + end if; + end if; + end Close; + + overriding procedure Full_Method (S : in out File) renames Flush_Method; + + overriding procedure Flush_Method (S : in out File) is + pragma Assert (S.Cur_Chunk = S.Initial_Chunk'Unchecked_Access); + Res : constant Integer := + OS.Write (S.FD, S.Cur_Chunk.Chars'Address, S.Last); + begin + if Res /= S.Last then + raise Program_Error with OS.Errno_Message; + end if; + S.Last := 0; + end Flush_Method; + + The_Stdout : aliased File := + Create_From_FD (OS.Standout, + Indent_Amount => Default_Indent_Amount, + Chunk_Length => Default_Chunk_Length); + The_Stderr : aliased File := + Create_From_FD (OS.Standerr, + Indent_Amount => Default_Indent_Amount, + Chunk_Length => Default_Chunk_Length); + + function Standard_Output return Sink_Access is (The_Stdout'Access); + function Standard_Error return Sink_Access is (The_Stderr'Access); + +end Ada.Strings.Text_Output.Basic_Files; diff --git a/gcc/ada/libgnat/a-stobfi.ads b/gcc/ada/libgnat/a-stobfi.ads new file mode 100644 index 0000000..65e8e24 --- /dev/null +++ b/gcc/ada/libgnat/a-stobfi.ads @@ -0,0 +1,66 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT.BASIC_FILES -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +private with GNAT.OS_Lib; +package Ada.Strings.Text_Output.Basic_Files is + -- Normally, you should use Ada.Strings.Text_Output.Files, which + -- automatically Closes files via finalization. If you don't want to use + -- finalization, use this package instead. You must then Close the file by + -- hand. The semantics is otherwise the same as Files. + + function Standard_Output return Sink_Access; + function Standard_Error return Sink_Access; + + type File (<>) is new Sink with private; + + function Create_File + (Name : String; + Indent_Amount : Natural := Default_Indent_Amount; + Chunk_Length : Positive := Default_Chunk_Length) return File; + function Create_New_File + (Name : String; + Indent_Amount : Natural := Default_Indent_Amount; + Chunk_Length : Positive := Default_Chunk_Length) return File; + + procedure Close (S : in out File'Class); + +private + + package OS renames GNAT.OS_Lib; + + type File is new Sink with record + FD : OS.File_Descriptor := OS.Invalid_FD; + end record; + + overriding procedure Full_Method (S : in out File); + overriding procedure Flush_Method (S : in out File); + +end Ada.Strings.Text_Output.Basic_Files; diff --git a/gcc/ada/libgnat/a-storio.adb b/gcc/ada/libgnat/a-storio.adb index 441b6ec..5c68082 100644 --- a/gcc/ada/libgnat/a-storio.adb +++ b/gcc/ada/libgnat/a-storio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stoubu.adb b/gcc/ada/libgnat/a-stoubu.adb new file mode 100644 index 0000000..9fb6c5a --- /dev/null +++ b/gcc/ada/libgnat/a-stoubu.adb @@ -0,0 +1,138 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT.BUFFERS -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +with Unchecked_Deallocation; +with Ada.Strings.UTF_Encoding.Strings; +with Ada.Strings.UTF_Encoding.Wide_Strings; +with Ada.Strings.UTF_Encoding.Wide_Wide_Strings; +package body Ada.Strings.Text_Output.Buffers is + + function New_Buffer + (Indent_Amount : Natural := Default_Indent_Amount; + Chunk_Length : Positive := Default_Chunk_Length) return Buffer + is + begin + return Result : Buffer (Chunk_Length) do + Result.Indent_Amount := Indent_Amount; + Result.Cur_Chunk := Result.Initial_Chunk'Unchecked_Access; + end return; + end New_Buffer; + + procedure Destroy (S : in out Buffer) is + procedure Free is new Unchecked_Deallocation (Chunk, Chunk_Access); + Cur : Chunk_Access := S.Initial_Chunk.Next; + begin + while Cur /= null loop + declare + Temp : constant Chunk_Access := Cur.Next; + begin + Free (Cur); + Cur := Temp; + end; + end loop; + + S.Cur_Chunk := null; + end Destroy; + + overriding procedure Full_Method (S : in out Buffer) is + begin + pragma Assert (S.Cur_Chunk.Next = null); + pragma Assert (S.Last = S.Cur_Chunk.Chars'Length); + S.Cur_Chunk.Next := new Chunk (S.Chunk_Length); + S.Cur_Chunk := S.Cur_Chunk.Next; + S.Num_Extra_Chunks := @ + 1; + S.Last := 0; + end Full_Method; + + function UTF_8_Length (S : Buffer'Class) return Natural is + begin + return S.Num_Extra_Chunks * S.Chunk_Length + S.Last; + end UTF_8_Length; + + procedure Get_UTF_8 + (S : Buffer'Class; Result : out UTF_8_Lines) + is + Cur : access constant Chunk := S.Initial_Chunk'Access; + First : Positive := 1; + begin + loop + if Cur.Next = null then + pragma Assert (Result'Last = First + S.Last - 1); + Result (First .. Result'Last) := Cur.Chars (1 .. S.Last); + exit; + end if; + + pragma Assert (S.Chunk_Length = Cur.Chars'Length); + Result (First .. First + S.Chunk_Length - 1) := Cur.Chars; + First := First + S.Chunk_Length; + Cur := Cur.Next; + end loop; + end Get_UTF_8; + + function Get_UTF_8 (S : Buffer'Class) return UTF_8_Lines is + begin + return Result : String (1 .. UTF_8_Length (S)) do + Get_UTF_8 (S, Result); + end return; + end Get_UTF_8; + + function Get (S : Buffer'Class) return String is + begin + -- If all characters are 7 bits, we don't need to decode; + -- this is an optimization. + + -- Otherwise, if all are 8 bits, we need to decode to get Latin-1. + -- Otherwise, the result is implementation defined, so we return a + -- String encoded as UTF-8. (Note that the AI says "if any character + -- in the sequence is not defined in Character, the result is + -- implementation-defined", so we are not obliged to decode ANY + -- Latin-1 characters if ANY character is bigger than 8 bits. + + if S.All_7_Bits then + return Get_UTF_8 (S); + elsif S.All_8_Bits then + return UTF_Encoding.Strings.Decode (Get_UTF_8 (S)); + else + return Get_UTF_8 (S); + end if; + end Get; + + function Wide_Get (S : Buffer'Class) return Wide_String is + begin + return UTF_Encoding.Wide_Strings.Decode (Get_UTF_8 (S)); + end Wide_Get; + + function Wide_Wide_Get (S : Buffer'Class) return Wide_Wide_String is + begin + return UTF_Encoding.Wide_Wide_Strings.Decode (Get_UTF_8 (S)); + end Wide_Wide_Get; + +end Ada.Strings.Text_Output.Buffers; diff --git a/gcc/ada/libgnat/a-stoubu.ads b/gcc/ada/libgnat/a-stoubu.ads new file mode 100644 index 0000000..faec897 --- /dev/null +++ b/gcc/ada/libgnat/a-stoubu.ads @@ -0,0 +1,73 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT.BUFFERS -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +package Ada.Strings.Text_Output.Buffers is + + type Buffer (<>) is new Sink with private; + + function New_Buffer + (Indent_Amount : Natural := Default_Indent_Amount; + Chunk_Length : Positive := Default_Chunk_Length) return Buffer; + + procedure Destroy (S : in out Buffer); + -- Reclaim any heap-allocated data, and render the Buffer unusable. + -- It would make sense to do this via finalization, but we wish to + -- avoid controlled types in the generated code for 'Image. + + function Get_UTF_8 (S : Buffer'Class) return UTF_8_Lines; + -- Get the characters in S, encoded as UTF-8. + + function UTF_8_Length (S : Buffer'Class) return Natural; + procedure Get_UTF_8 + (S : Buffer'Class; Result : out UTF_8_Lines) with + Pre => Result'First = 1 and Result'Last = UTF_8_Length (S); + -- This is a procedure version of the Get_UTF_8 function, for + -- efficiency. The Result String must be the exact right length. + + function Get (S : Buffer'Class) return String; + function Wide_Get (S : Buffer'Class) return Wide_String; + function Wide_Wide_Get (S : Buffer'Class) return Wide_Wide_String; + -- Get the characters in S, decoded as [[Wide_]Wide_]String. + -- There is no need for procedure versions of these, because + -- they are intended primarily to implement the [[Wide_]Wide_]Image + -- attribute, which is already a function. + +private + type Chunk_Count is new Natural; + type Buffer is new Sink with record + Num_Extra_Chunks : Natural := 0; + -- Number of chunks in the linked list, not including Initial_Chunk. + end record; + + overriding procedure Full_Method (S : in out Buffer); + overriding procedure Flush_Method (S : in out Buffer) is null; + +end Ada.Strings.Text_Output.Buffers; diff --git a/gcc/ada/libgnat/a-stoufi.adb b/gcc/ada/libgnat/a-stoufi.adb new file mode 100644 index 0000000..34086bb --- /dev/null +++ b/gcc/ada/libgnat/a-stoufi.adb @@ -0,0 +1,123 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT.FILES -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +with Ada.Strings.Text_Output.Utils; use Ada.Strings.Text_Output.Utils; +package body Ada.Strings.Text_Output.Files is + use type OS.File_Descriptor; + + function Create_From_FD + (FD : OS.File_Descriptor; + Indent_Amount : Natural; + Chunk_Length : Positive) return File; + -- Create a file from an OS file descriptor + + function Create_From_FD + (FD : OS.File_Descriptor; + Indent_Amount : Natural; + Chunk_Length : Positive) return File + is + begin + if FD = OS.Invalid_FD then + raise Program_Error with OS.Errno_Message; + end if; + return Result : File (Chunk_Length) do + Result.Indent_Amount := Indent_Amount; + Result.Cur_Chunk := Result.Initial_Chunk'Unchecked_Access; + Result.FD := FD; + end return; + end Create_From_FD; + + function Create_File + (Name : String; + Indent_Amount : Natural := Default_Indent_Amount; + Chunk_Length : Positive := Default_Chunk_Length) return File + is + begin + return Create_From_FD + (OS.Create_File (Name, Fmode => OS.Text), + Indent_Amount, Chunk_Length); + end Create_File; + + function Create_New_File + (Name : String; + Indent_Amount : Natural := Default_Indent_Amount; + Chunk_Length : Positive := Default_Chunk_Length) return File + is + begin + return Create_From_FD + (OS.Create_New_File (Name, Fmode => OS.Text), + Indent_Amount, Chunk_Length); + end Create_New_File; + + overriding procedure Finalize (Ref : in out Self_Ref) is + begin + Close (Ref.Self.all); + end Finalize; + + procedure Close (S : in out File'Class) is + Status : Boolean; + begin + Flush (S); + + if S.FD not in OS.Standout | OS.Standerr then -- Don't close these + OS.Close (S.FD, Status); + if not Status then + raise Program_Error with OS.Errno_Message; + end if; + end if; + end Close; + + overriding procedure Full_Method (S : in out File) renames Flush_Method; + + overriding procedure Flush_Method (S : in out File) is + pragma Assert (S.Cur_Chunk = S.Initial_Chunk'Unchecked_Access); + Res : constant Integer := + OS.Write (S.FD, S.Cur_Chunk.Chars'Address, S.Last); + begin + if Res /= S.Last then + raise Program_Error with OS.Errno_Message; + end if; + S.Last := 0; + end Flush_Method; + + The_Stdout : aliased File := + Create_From_FD (OS.Standout, + Indent_Amount => Default_Indent_Amount, + Chunk_Length => Default_Chunk_Length); + The_Stderr : aliased File := + Create_From_FD (OS.Standerr, + Indent_Amount => Default_Indent_Amount, + Chunk_Length => Default_Chunk_Length); + + function Standard_Output return Sink_Access is (The_Stdout'Access); + function Standard_Error return Sink_Access is (The_Stderr'Access); + +end Ada.Strings.Text_Output.Files; diff --git a/gcc/ada/libgnat/a-stoufi.ads b/gcc/ada/libgnat/a-stoufi.ads new file mode 100644 index 0000000..0bff45a --- /dev/null +++ b/gcc/ada/libgnat/a-stoufi.ads @@ -0,0 +1,72 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT.FILES -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +private with GNAT.OS_Lib; +private with Ada.Finalization; +package Ada.Strings.Text_Output.Files is + -- This package supports a Sink type that sends output to a file. The file + -- is automatically closed when finalized. + + function Standard_Output return Sink_Access; + function Standard_Error return Sink_Access; + + type File (<>) is new Sink with private; + + function Create_File + (Name : String; + Indent_Amount : Natural := Default_Indent_Amount; + Chunk_Length : Positive := Default_Chunk_Length) return File; + function Create_New_File + (Name : String; + Indent_Amount : Natural := Default_Indent_Amount; + Chunk_Length : Positive := Default_Chunk_Length) return File; + -- Create a file. Create_New_File raises an exception if the file already + -- exists; Create_File overwrites. + + procedure Close (S : in out File'Class); + +private + + package OS renames GNAT.OS_Lib; + + type Self_Ref (Self : access File) is new Finalization.Limited_Controlled + with null record; + overriding procedure Finalize (Ref : in out Self_Ref); + + type File is new Sink with record + FD : OS.File_Descriptor := OS.Invalid_FD; + Ref : Self_Ref (File'Access); + end record; + + overriding procedure Full_Method (S : in out File); + overriding procedure Flush_Method (S : in out File); + +end Ada.Strings.Text_Output.Files; diff --git a/gcc/ada/libgnat/a-stoufo.adb b/gcc/ada/libgnat/a-stoufo.adb new file mode 100644 index 0000000..f80b30a --- /dev/null +++ b/gcc/ada/libgnat/a-stoufo.adb @@ -0,0 +1,155 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT.FORMATTING -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +with Ada.Strings.Text_Output.Files; +with Ada.Strings.Text_Output.Buffers; use Ada.Strings.Text_Output.Buffers; +with Ada.Strings.Text_Output.Utils; use Ada.Strings.Text_Output.Utils; +package body Ada.Strings.Text_Output.Formatting is + + procedure Put + (S : in out Sink'Class; T : Template; + X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "") + is + J : Positive := T'First; + Used : array (1 .. 9) of Boolean := (others => False); + begin + while J <= T'Last loop + if T (J) = '\' then + J := J + 1; + case T (J) is + when 'n' => + New_Line (S); + when '\' => + Put_7bit (S, '\'); + when 'i' => + Indent (S); + when 'o' => + Outdent (S); + when 'I' => + Indent (S, 1); + when 'O' => + Outdent (S, 1); + + when '1' => + Used (1) := True; + Put_UTF_8_Lines (S, X1); + when '2' => + Used (2) := True; + Put_UTF_8_Lines (S, X2); + when '3' => + Used (3) := True; + Put_UTF_8_Lines (S, X3); + when '4' => + Used (4) := True; + Put_UTF_8_Lines (S, X4); + when '5' => + Used (5) := True; + Put_UTF_8_Lines (S, X5); + when '6' => + Used (6) := True; + Put_UTF_8_Lines (S, X6); + when '7' => + Used (7) := True; + Put_UTF_8_Lines (S, X7); + when '8' => + Used (8) := True; + Put_UTF_8_Lines (S, X8); + when '9' => + Used (9) := True; + Put_UTF_8_Lines (S, X9); + + when others => + raise Program_Error; + end case; + else + Put_7bit (S, T (J)); + end if; + + J := J + 1; + end loop; + + if not Used (1) then + pragma Assert (X1 = ""); + end if; + if not Used (2) then + pragma Assert (X2 = ""); + end if; + if not Used (3) then + pragma Assert (X3 = ""); + end if; + if not Used (4) then + pragma Assert (X4 = ""); + end if; + if not Used (5) then + pragma Assert (X5 = ""); + end if; + if not Used (6) then + pragma Assert (X6 = ""); + end if; + if not Used (7) then + pragma Assert (X7 = ""); + end if; + if not Used (8) then + pragma Assert (X8 = ""); + end if; + if not Used (9) then + pragma Assert (X9 = ""); + end if; + + Flush (S); + end Put; + + procedure Put + (T : Template; + X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "") is + begin + Put (Files.Standard_Output.all, T, X1, X2, X3, X4, X5, X6, X7, X8, X9); + end Put; + + procedure Err + (T : Template; + X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "") is + begin + Put (Files.Standard_Error.all, T, X1, X2, X3, X4, X5, X6, X7, X8, X9); + end Err; + + function Format + (T : Template; + X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "") + return UTF_8_Lines + is + Buf : Buffer := New_Buffer; + begin + Put (Buf, T, X1, X2, X3, X4, X5, X6, X7, X8, X9); + return Get_UTF_8 (Buf); + end Format; + +end Ada.Strings.Text_Output.Formatting; diff --git a/gcc/ada/libgnat/a-stoufo.ads b/gcc/ada/libgnat/a-stoufo.ads new file mode 100644 index 0000000..3b44bd8 --- /dev/null +++ b/gcc/ada/libgnat/a-stoufo.ads @@ -0,0 +1,72 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT.FORMATTING -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +package Ada.Strings.Text_Output.Formatting is + + -- Template-based output, based loosely on C's printf family. Unlike + -- printf, it is type safe. We don't support myriad formatting options; the + -- caller is expected to call 'Image, or other functions that might have + -- various formatting capabilities. + -- + -- Each of the following calls Flush + + type Template is new UTF_8; + procedure Put + (S : in out Sink'Class; T : Template; + X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := ""); + -- Prints the template as is, except for the following escape sequences: + -- "\n" is end of line. + -- "\i" indents by the default amount, and "\o" outdents. + -- "\I" indents by one space, and "\O" outdents. + -- "\1" is replaced with X1, and similarly for 2, 3, .... + -- "\\" is "\". + + -- Note that the template is not type String, to avoid this sort of thing: + -- + -- https://xkcd.com/327/ + + procedure Put + (T : Template; + X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := ""); + -- Sends to standard output + + procedure Err + (T : Template; + X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := ""); + -- Sends to standard error + + function Format + (T : Template; + X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "") + return UTF_8_Lines; + -- Returns a UTF-8-encoded String + +end Ada.Strings.Text_Output.Formatting; diff --git a/gcc/ada/libgnat/a-stouut.adb b/gcc/ada/libgnat/a-stouut.adb new file mode 100644 index 0000000..b5a8f97 --- /dev/null +++ b/gcc/ada/libgnat/a-stouut.adb @@ -0,0 +1,271 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT.UTILS -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +with Ada.Strings.UTF_Encoding.Wide_Wide_Strings; + +package body Ada.Strings.Text_Output.Utils is + + procedure Put_Octet (S : in out Sink'Class; Item : Character) with Inline; + -- Send a single octet to the current Chunk + + procedure Adjust_Column (S : in out Sink'Class) with Inline; + -- Adjust the column for a non-NL character. + + procedure Put_UTF_8_Outline (S : in out Sink'Class; Item : UTF_8); + -- Out-of-line portion of Put_UTF_8. This exists solely to make Put_UTF_8 + -- small enough to reasonably inline it. + + procedure Full (S : in out Sink'Class) is + begin + pragma Assert (S.Last = S.Chunk_Length); + Full_Method (S); + pragma Assert (S.Last = 0); + end Full; + + procedure Flush (S : in out Sink'Class) is + begin + Flush_Method (S); + end Flush; + + procedure Put_Octet (S : in out Sink'Class; Item : Character) is + begin + S.Last := @ + 1; + S.Cur_Chunk.Chars (S.Last) := Item; + pragma Assert (S.Chunk_Length = S.Cur_Chunk.Chars'Length); + if S.Last = S.Chunk_Length then + Full (S); + end if; + end Put_Octet; + + procedure Adjust_Column (S : in out Sink'Class) is + begin + -- If we're in the first column, indent. This is handled here, rather + -- than when we see NL, because we don't want spaces in a blank line. + -- The character we're about to put is not NL; NL is handled in + -- New_Line. So after indenting, we simply increment the Column. + + if S.Column = 1 then + Tab_To_Column (S, S.Indentation + 1); + end if; + S.Column := @ + 1; + end Adjust_Column; + + procedure Put_7bit (S : in out Sink'Class; Item : Character_7) is + begin + Adjust_Column (S); + Put_Octet (S, Item); + end Put_7bit; + + procedure Put_7bit_NL (S : in out Sink'Class; Item : Character_7) is + begin + if Item = NL then + New_Line (S); + else + Put_7bit (S, Item); + end if; + end Put_7bit_NL; + + procedure Put_Character (S : in out Sink'Class; Item : Character) is + begin + if Character'Pos (Item) < 2**7 then + Put_7bit_NL (S, Item); + else + Put_Wide_Wide_Character (S, To_Wide_Wide (Item)); + end if; + end Put_Character; + + procedure Put_Wide_Character + (S : in out Sink'Class; Item : Wide_Character) is + begin + if Wide_Character'Pos (Item) < 2**7 then + Put_7bit_NL (S, From_Wide (Item)); + else + Put_Wide_Wide_Character (S, To_Wide_Wide (Item)); + end if; + end Put_Wide_Character; + + procedure Put_Wide_Wide_Character + (S : in out Sink'Class; Item : Wide_Wide_Character) is + begin + if Wide_Wide_Character'Pos (Item) < 2**7 then + Put_7bit_NL (S, From_Wide_Wide (Item)); + else + S.All_7_Bits := False; + if Wide_Wide_Character'Pos (Item) >= 2**8 then + S.All_8_Bits := False; + end if; + declare + Temp : constant UTF_8_Lines := + UTF_Encoding.Wide_Wide_Strings.Encode ((1 => Item)); + begin + for X of Temp loop + pragma Assert (X /= NL); + Adjust_Column (S); + Put_Octet (S, X); + end loop; + end; + end if; + end Put_Wide_Wide_Character; + + procedure Put_UTF_8_Outline (S : in out Sink'Class; Item : UTF_8) is + begin + if S.Last + Item'Length = S.Chunk_Length then + -- Item fits exactly in current chunk + + S.Cur_Chunk.Chars (S.Last + 1 .. S.Last + Item'Length) := Item; + S.Last := S.Last + Item'Length; + Full (S); + -- ???Seems like maybe we shouldn't call Full until we have MORE + -- characters. But then we can't pass Chunk_Length => 1 to + -- Create_File to get unbuffered output. + else + -- We get here only if Item doesn't fit in the current chunk, which + -- should be fairly rare. We split Item into Left and Right, where + -- Left exactly fills the current chunk, and recurse on Left and + -- Right. Right will fit into the next chunk unless it's very long, + -- so another level of recursion will be extremely rare. + + declare + Left_Length : constant Natural := S.Chunk_Length - S.Last; + Right_First : constant Natural := Item'First + Left_Length; + Left : UTF_8 renames Item (Item'First .. Right_First - 1); + Right : UTF_8 renames Item (Right_First .. Item'Last); + pragma Assert (Left & Right = Item); + begin + Put_UTF_8 (S, Left); -- This will call Full. + Put_UTF_8 (S, Right); -- This might call Full, but probably not. + end; + end if; + end Put_UTF_8_Outline; + + procedure Put_UTF_8 (S : in out Sink'Class; Item : UTF_8) is + begin + Adjust_Column (S); + + if S.Last + Item'Length < S.Chunk_Length then + -- Item fits in current chunk + + S.Cur_Chunk.Chars (S.Last + 1 .. S.Last + Item'Length) := Item; + S.Last := S.Last + Item'Length; + else + Put_UTF_8_Outline (S, Item); + end if; + end Put_UTF_8; + + procedure Put_UTF_8_Lines (S : in out Sink'Class; Item : UTF_8_Lines) is + Line_Start, Index : Integer := Item'First; + -- Needs to be Integer, because Item'First might be negative for empty + -- Items. + begin + while Index <= Item'Last loop + if Item (Index) = NL then + if Index > Line_Start then + Put_UTF_8 (S, Item (Line_Start .. Index - 1)); + end if; + New_Line (S); + S.Column := 1; + Line_Start := Index + 1; + end if; + + Index := @ + 1; + end loop; + + if Index > Line_Start then + Put_UTF_8 (S, Item (Line_Start .. Index - 1)); + end if; + end Put_UTF_8_Lines; + + procedure Put_String (S : in out Sink'Class; Item : String) is + begin + for X of Item loop + Put_Character (S, X); + end loop; + end Put_String; + + procedure Put_Wide_String (S : in out Sink'Class; Item : Wide_String) is + begin + for X of Item loop + Put_Wide_Character (S, X); + end loop; + end Put_Wide_String; + + procedure Put_Wide_Wide_String + (S : in out Sink'Class; Item : Wide_Wide_String) is + begin + for X of Item loop + Put_Wide_Wide_Character (S, X); + end loop; + end Put_Wide_Wide_String; + + procedure New_Line (S : in out Sink'Class) is + begin + S.Column := 1; + Put_Octet (S, NL); + end New_Line; + + function Column (S : Sink'Class) return Positive is (S.Column); + + procedure Tab_To_Column (S : in out Sink'Class; Column : Positive) is + begin + if S.Column < Column then + for X in 1 .. Column - S.Column loop + Put_Octet (S, ' '); + end loop; + S.Column := Column; + end if; + end Tab_To_Column; + + procedure Set_Indentation (S : in out Sink'Class; Amount : Natural) is + begin + S.Indentation := Amount; + end Set_Indentation; + + function Indentation (S : Sink'Class) return Natural is (S.Indentation); + + procedure Indent + (S : in out Sink'Class; Amount : Optional_Indentation := Default) + is + By : constant Natural := + (if Amount = Default then S.Indent_Amount else Amount); + begin + Set_Indentation (S, Indentation (S) + By); + end Indent; + + procedure Outdent + (S : in out Sink'Class; Amount : Optional_Indentation := Default) + is + By : constant Natural := + (if Amount = Default then S.Indent_Amount else Amount); + begin + Set_Indentation (S, Indentation (S) - By); + end Outdent; + +end Ada.Strings.Text_Output.Utils; diff --git a/gcc/ada/libgnat/a-stouut.ads b/gcc/ada/libgnat/a-stouut.ads new file mode 100644 index 0000000..28d7eca --- /dev/null +++ b/gcc/ada/libgnat/a-stouut.ads @@ -0,0 +1,106 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT.UTILS -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +package Ada.Strings.Text_Output.Utils with Preelaborate is + + -- This package provides utility functions on Sink'Class. These are + -- intended for use by Put_Image attributes, both the default versions + -- generated by the compiler, and user-defined ones. + + procedure Full (S : in out Sink'Class) with Inline; + -- Must be called when the current chunk is full. Dispatches to + -- Full_Method. + + procedure Flush (S : in out Sink'Class) with Inline; + -- Dispatches to Flush_Method + + -- Full_Method and Flush_Method should be called only via Full and Flush + + procedure Put_Character (S : in out Sink'Class; Item : Character); + procedure Put_Wide_Character (S : in out Sink'Class; Item : Wide_Character); + procedure Put_Wide_Wide_Character + (S : in out Sink'Class; Item : Wide_Wide_Character); + procedure Put_String (S : in out Sink'Class; Item : String); + procedure Put_Wide_String (S : in out Sink'Class; Item : Wide_String); + procedure Put_Wide_Wide_String + (S : in out Sink'Class; Item : Wide_Wide_String); + -- Encode characters or strings as UTF-8, and send them to S. + + subtype Character_7 is + Character range Character'Val (0) .. Character'Val (2**7 - 1); + -- 7-bit character. These are the same in both Latin-1 and UTF-8. + + procedure Put_7bit (S : in out Sink'Class; Item : Character_7) + with Inline, Pre => Item /= NL; + procedure Put_7bit_NL (S : in out Sink'Class; Item : Character_7) + with Inline; + -- Put a 7-bit character, and adjust the Column. For Put_7bit_NL, Item can + -- be NL. + + procedure Put_UTF_8 (S : in out Sink'Class; Item : UTF_8) with Inline; + procedure Put_UTF_8_Lines (S : in out Sink'Class; Item : UTF_8_Lines); + -- Send data that is already UTF-8 encoded (including 7-bit ASCII) to + -- S. These are more efficient than Put_String. + + procedure New_Line (S : in out Sink'Class) with Inline; + -- Puts the new-line character. + + function Column (S : Sink'Class) return Positive with Inline; + -- Current output column. The Column is initially 1, and is incremented for + -- each 7-bit character output, except for the new-line character, which + -- sets Column back to 1. The next character to be output will go in this + -- column. + + procedure Tab_To_Column (S : in out Sink'Class; Column : Positive); + -- Put spaces until we're at or past Column. + + procedure Set_Indentation (S : in out Sink'Class; Amount : Natural) + with Inline; + function Indentation (S : Sink'Class) return Natural with Inline; + -- Indentation is initially 0. Set_Indentation sets it, and Indentation + -- returns it. This number of space characters are put at the start of + -- each nonempty line. + + subtype Optional_Indentation is Integer range -1 .. Natural'Last; + Default : constant Optional_Indentation := -1; + + procedure Indent + (S : in out Sink'Class; Amount : Optional_Indentation := Default) + with Inline; + procedure Outdent + (S : in out Sink'Class; Amount : Optional_Indentation := Default) + with Inline; + -- Increase/decrease Indentation by Amount. If Amount = Default, the amount + -- specified by the Indent_Amount parameter of the sink creation function + -- is used. The sink creation functions are New_Buffer, Create_File, and + -- Create_New_File. + +end Ada.Strings.Text_Output.Utils; diff --git a/gcc/ada/libgnat/a-strbou.adb b/gcc/ada/libgnat/a-strbou.adb index 50da492..d48798b 100644 --- a/gcc/ada/libgnat/a-strbou.adb +++ b/gcc/ada/libgnat/a-strbou.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-strbou.ads b/gcc/ada/libgnat/a-strbou.ads index ae61b86..ebde112 100644 --- a/gcc/ada/libgnat/a-strbou.ads +++ b/gcc/ada/libgnat/a-strbou.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-stream.adb b/gcc/ada/libgnat/a-stream.adb index d4a3f13..67d70c5 100644 --- a/gcc/ada/libgnat/a-stream.adb +++ b/gcc/ada/libgnat/a-stream.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2013-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2013-2020, 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 -- diff --git a/gcc/ada/libgnat/a-stream.ads b/gcc/ada/libgnat/a-stream.ads index 8886c94..9a76ee3 100644 --- a/gcc/ada/libgnat/a-stream.ads +++ b/gcc/ada/libgnat/a-stream.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-strfix.adb b/gcc/ada/libgnat/a-strfix.adb index b8b5f42..8105f30 100644 --- a/gcc/ada/libgnat/a-strfix.adb +++ b/gcc/ada/libgnat/a-strfix.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -192,6 +192,10 @@ package body Ada.Strings.Fixed is elsif From not in Source'Range or else Through > Source'Last then + pragma Annotate + (CodePeer, False_Positive, + "test always false", "self fullfilling prophecy"); + -- In most cases this raises an exception, but the case of deleting -- a null string at the end of the current one is a special-case, and -- reflects the equivalence with Replace_String (RM A.4.3 (86/3)). diff --git a/gcc/ada/libgnat/a-strhas.adb b/gcc/ada/libgnat/a-strhas.adb index 258ee92..572b766 100644 --- a/gcc/ada/libgnat/a-strhas.adb +++ b/gcc/ada/libgnat/a-strhas.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-strmap.adb b/gcc/ada/libgnat/a-strmap.adb index c8917d9..9f6e857 100644 --- a/gcc/ada/libgnat/a-strmap.adb +++ b/gcc/ada/libgnat/a-strmap.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-strmap.ads b/gcc/ada/libgnat/a-strmap.ads index 3782189..ab59402 100644 --- a/gcc/ada/libgnat/a-strmap.ads +++ b/gcc/ada/libgnat/a-strmap.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-strsea.adb b/gcc/ada/libgnat/a-strsea.adb index c835f3a..b779090 100644 --- a/gcc/ada/libgnat/a-strsea.adb +++ b/gcc/ada/libgnat/a-strsea.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-strsea.ads b/gcc/ada/libgnat/a-strsea.ads index 1e1bc59..668b2e1 100644 --- a/gcc/ada/libgnat/a-strsea.ads +++ b/gcc/ada/libgnat/a-strsea.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-strsto.ads b/gcc/ada/libgnat/a-strsto.ads new file mode 100644 index 0000000..ae38b2d --- /dev/null +++ b/gcc/ada/libgnat/a-strsto.ads @@ -0,0 +1,44 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT LIBRARY COMPONENTS -- +-- -- +-- A D A . S T R E A M S . S T O R A G E -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2020, 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 -- +-- apply solely to the contents of the part following the private keyword. -- +-- -- +-- 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +------------------------------------------------------------------------------ + +package Ada.Streams.Storage with Pure is + + type Storage_Stream_Type is abstract new Root_Stream_Type with private; + + function Element_Count + (Stream : Storage_Stream_Type) return Stream_Element_Count is abstract; + + procedure Clear (Stream : in out Storage_Stream_Type) is abstract; + +private + type Storage_Stream_Type is abstract new Root_Stream_Type with null record; +end Ada.Streams.Storage; diff --git a/gcc/ada/libgnat/a-strsup.adb b/gcc/ada/libgnat/a-strsup.adb index fa2ba88..e11df76 100644 --- a/gcc/ada/libgnat/a-strsup.adb +++ b/gcc/ada/libgnat/a-strsup.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/a-strsup.ads b/gcc/ada/libgnat/a-strsup.ads index f68db86..50607ae 100644 --- a/gcc/ada/libgnat/a-strsup.ads +++ b/gcc/ada/libgnat/a-strsup.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/a-strunb.adb b/gcc/ada/libgnat/a-strunb.adb index 347d85a..988de42 100644 --- a/gcc/ada/libgnat/a-strunb.adb +++ b/gcc/ada/libgnat/a-strunb.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -35,6 +35,19 @@ with Ada.Unchecked_Deallocation; package body Ada.Strings.Unbounded is + function Sum (Left : Natural; Right : Integer) return Natural with Inline; + -- Returns summary of Left and Right, raise Constraint_Error on overflow + + function Mul (Left, Right : Natural) return Natural with Inline; + -- Returns multiplication of Left and Right, raise Constraint_Error on + -- overflow. + + function Saturated_Sum (Left : Natural; Right : Integer) return Natural; + -- Returns summary of Left and Right or Natural'Last on overflow + + function Saturated_Mul (Left, Right : Natural) return Natural; + -- Returns multiplication of Left and Right or Natural'Last on overflow + --------- -- "&" -- --------- @@ -48,7 +61,7 @@ package body Ada.Strings.Unbounded is Result : Unbounded_String; begin - Result.Last := L_Length + R_Length; + Result.Last := Sum (L_Length, R_Length); Result.Reference := new String (1 .. Result.Last); @@ -68,7 +81,7 @@ package body Ada.Strings.Unbounded is Result : Unbounded_String; begin - Result.Last := L_Length + Right'Length; + Result.Last := Sum (L_Length, Right'Length); Result.Reference := new String (1 .. Result.Last); @@ -86,7 +99,7 @@ package body Ada.Strings.Unbounded is Result : Unbounded_String; begin - Result.Last := Left'Length + R_Length; + Result.Last := Sum (Left'Length, R_Length); Result.Reference := new String (1 .. Result.Last); @@ -104,7 +117,7 @@ package body Ada.Strings.Unbounded is Result : Unbounded_String; begin - Result.Last := Left.Last + 1; + Result.Last := Sum (Left.Last, 1); Result.Reference := new String (1 .. Result.Last); @@ -122,7 +135,7 @@ package body Ada.Strings.Unbounded is Result : Unbounded_String; begin - Result.Last := Right.Last + 1; + Result.Last := Sum (Right.Last, 1); Result.Reference := new String (1 .. Result.Last); Result.Reference (1) := Left; @@ -142,7 +155,7 @@ package body Ada.Strings.Unbounded is Result : Unbounded_String; begin - Result.Last := Left; + Result.Last := Left; Result.Reference := new String (1 .. Left); for J in Result.Reference'Range loop @@ -161,7 +174,7 @@ package body Ada.Strings.Unbounded is Result : Unbounded_String; begin - Result.Last := Left * Len; + Result.Last := Mul (Left, Len); Result.Reference := new String (1 .. Result.Last); @@ -183,7 +196,7 @@ package body Ada.Strings.Unbounded is Result : Unbounded_String; begin - Result.Last := Left * Len; + Result.Last := Mul (Left, Len); Result.Reference := new String (1 .. Result.Last); @@ -718,6 +731,16 @@ package body Ada.Strings.Unbounded is return Source.Last; end Length; + --------- + -- Mul -- + --------- + + function Mul (Left, Right : Natural) return Natural is + pragma Unsuppress (Overflow_Check); + begin + return Left * Right; + end Mul; + --------------- -- Overwrite -- --------------- @@ -783,10 +806,12 @@ package body Ada.Strings.Unbounded is if Chunk_Size > S_Length - Source.Last then declare New_Size : constant Positive := - S_Length + Chunk_Size + (S_Length / Growth_Factor); + Saturated_Sum + (Sum (S_Length, Chunk_Size), S_Length / Growth_Factor); New_Rounded_Up_Size : constant Positive := - ((New_Size - 1) / Min_Mul_Alloc + 1) * Min_Mul_Alloc; + Saturated_Mul + ((New_Size - 1) / Min_Mul_Alloc + 1, Min_Mul_Alloc); Tmp : constant String_Access := new String (1 .. New_Rounded_Up_Size); @@ -847,6 +872,30 @@ package body Ada.Strings.Unbounded is Free (Old); end Replace_Slice; + ------------------- + -- Saturated_Mul -- + ------------------- + + function Saturated_Mul (Left, Right : Natural) return Natural is + begin + return Mul (Left, Right); + exception + when Constraint_Error => + return Natural'Last; + end Saturated_Mul; + + ----------------- + -- Saturated_Sum -- + ----------------- + + function Saturated_Sum (Left : Natural; Right : Integer) return Natural is + begin + return Sum (Left, Right); + exception + when Constraint_Error => + return Natural'Last; + end Saturated_Sum; + -------------------------- -- Set_Unbounded_String -- -------------------------- @@ -882,6 +931,16 @@ package body Ada.Strings.Unbounded is end if; end Slice; + --------- + -- Sum -- + --------- + + function Sum (Left : Natural; Right : Integer) return Natural is + pragma Unsuppress (Overflow_Check); + begin + return Left + Right; + end Sum; + ---------- -- Tail -- ---------- @@ -1047,7 +1106,7 @@ package body Ada.Strings.Unbounded is High : Natural) return Unbounded_String is begin - if Low > Source.Last + 1 or else High > Source.Last then + if Low - 1 > Source.Last or else High > Source.Last then raise Index_Error; else return To_Unbounded_String (Source.Reference.all (Low .. High)); @@ -1061,7 +1120,7 @@ package body Ada.Strings.Unbounded is High : Natural) is begin - if Low > Source.Last + 1 or else High > Source.Last then + if Low - 1 > Source.Last or else High > Source.Last then raise Index_Error; else Target := To_Unbounded_String (Source.Reference.all (Low .. High)); diff --git a/gcc/ada/libgnat/a-strunb.ads b/gcc/ada/libgnat/a-strunb.ads index e875b5b..3471dbb 100644 --- a/gcc/ada/libgnat/a-strunb.ads +++ b/gcc/ada/libgnat/a-strunb.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-strunb__shared.adb b/gcc/ada/libgnat/a-strunb__shared.adb index 90a6c40..0ff34d8 100644 --- a/gcc/ada/libgnat/a-strunb__shared.adb +++ b/gcc/ada/libgnat/a-strunb__shared.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -56,6 +56,18 @@ package body Ada.Strings.Unbounded is -- allocated memory segments to use memory effectively by Append/Insert/etc -- operations. + function Sum (Left : Natural; Right : Integer) return Natural with Inline; + -- Returns summary of Left and Right, raise Constraint_Error on overflow + + function Mul (Left, Right : Natural) return Natural with Inline; + -- Returns multiplication of Left and Right, raise Constraint_Error on + -- overflow + + function Allocate + (Length, Growth : Natural) return not null Shared_String_Access; + -- Allocates new Shared_String with at least specified Length plus optional + -- Growth. + --------- -- "&" -- --------- @@ -66,14 +78,13 @@ package body Ada.Strings.Unbounded is is LR : constant Shared_String_Access := Left.Reference; RR : constant Shared_String_Access := Right.Reference; - DL : constant Natural := LR.Last + RR.Last; + DL : constant Natural := Sum (LR.Last, RR.Last); DR : Shared_String_Access; begin -- Result is an empty string, reuse shared empty string if DL = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Left string is empty, return Right string @@ -105,14 +116,13 @@ package body Ada.Strings.Unbounded is Right : String) return Unbounded_String is LR : constant Shared_String_Access := Left.Reference; - DL : constant Natural := LR.Last + Right'Length; + DL : constant Natural := Sum (LR.Last, Right'Length); DR : Shared_String_Access; begin -- Result is an empty string, reuse shared empty string if DL = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Right is an empty string, return Left string @@ -138,14 +148,13 @@ package body Ada.Strings.Unbounded is Right : Unbounded_String) return Unbounded_String is RR : constant Shared_String_Access := Right.Reference; - DL : constant Natural := Left'Length + RR.Last; + DL : constant Natural := Sum (Left'Length, RR.Last); DR : Shared_String_Access; begin -- Result is an empty string, reuse shared one if DL = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Left is empty string, return Right string @@ -171,7 +180,7 @@ package body Ada.Strings.Unbounded is Right : Character) return Unbounded_String is LR : constant Shared_String_Access := Left.Reference; - DL : constant Natural := LR.Last + 1; + DL : constant Natural := Sum (LR.Last, 1); DR : Shared_String_Access; begin @@ -188,7 +197,7 @@ package body Ada.Strings.Unbounded is Right : Unbounded_String) return Unbounded_String is RR : constant Shared_String_Access := Right.Reference; - DL : constant Natural := 1 + RR.Last; + DL : constant Natural := Sum (1, RR.Last); DR : Shared_String_Access; begin @@ -214,7 +223,6 @@ package body Ada.Strings.Unbounded is -- Result is an empty string, reuse shared empty string if Left = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Otherwise, allocate new shared string and fill it @@ -236,7 +244,7 @@ package body Ada.Strings.Unbounded is (Left : Natural; Right : String) return Unbounded_String is - DL : constant Natural := Left * Right'Length; + DL : constant Natural := Mul (Left, Right'Length); DR : Shared_String_Access; K : Positive; @@ -244,7 +252,6 @@ package body Ada.Strings.Unbounded is -- Result is an empty string, reuse shared empty string if DL = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Otherwise, allocate new shared string and fill it @@ -269,7 +276,7 @@ package body Ada.Strings.Unbounded is Right : Unbounded_String) return Unbounded_String is RR : constant Shared_String_Access := Right.Reference; - DL : constant Natural := Left * RR.Last; + DL : constant Natural := Mul (Left, RR.Last); DR : Shared_String_Access; K : Positive; @@ -277,7 +284,6 @@ package body Ada.Strings.Unbounded is -- Result is an empty string, reuse shared empty string if DL = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Coefficient is one, just return string itself @@ -486,13 +492,16 @@ package body Ada.Strings.Unbounded is function Aligned_Max_Length (Max_Length : Natural) return Natural is Static_Size : constant Natural := - Empty_Shared_String'Size / Standard'Storage_Unit; - -- Total size of all static components - + Empty_Shared_String'Size / Standard'Storage_Unit; + -- Total size of all Shared_String static components begin - return - ((Static_Size + Max_Length - 1) / Min_Mul_Alloc + 2) * Min_Mul_Alloc - - Static_Size; + if Max_Length > Natural'Last - Static_Size then + return Natural'Last; + else + return + ((Static_Size + Max_Length - 1) / Min_Mul_Alloc + 2) * Min_Mul_Alloc + - Static_Size; + end if; end Aligned_Max_Length; -------------- @@ -506,7 +515,6 @@ package body Ada.Strings.Unbounded is -- Empty string requested, return shared empty string if Max_Length = 0 then - Reference (Empty_Shared_String'Access); return Empty_Shared_String'Access; -- Otherwise, allocate requested space (and probably some more room) @@ -516,6 +524,23 @@ package body Ada.Strings.Unbounded is end if; end Allocate; + -------------- + -- Allocate -- + -------------- + + function Allocate + (Length, Growth : Natural) return not null Shared_String_Access is + begin + if Natural'Last - Growth < Length then + -- Then Length + Growth would be more than Natural'Last + + return new Shared_String (Integer'Last); + + else + return Allocate (Length + Growth); + end if; + end Allocate; + ------------ -- Append -- ------------ @@ -526,7 +551,7 @@ package body Ada.Strings.Unbounded is is SR : constant Shared_String_Access := Source.Reference; NR : constant Shared_String_Access := New_Item.Reference; - DL : constant Natural := SR.Last + NR.Last; + DL : constant Natural := Sum (SR.Last, NR.Last); DR : Shared_String_Access; begin @@ -551,7 +576,7 @@ package body Ada.Strings.Unbounded is -- Otherwise, allocate new one and fill it else - DR := Allocate (DL + DL / Growth_Factor); + DR := Allocate (DL, DL / Growth_Factor); DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last); DR.Data (SR.Last + 1 .. DL) := NR.Data (1 .. NR.Last); DR.Last := DL; @@ -565,7 +590,7 @@ package body Ada.Strings.Unbounded is New_Item : String) is SR : constant Shared_String_Access := Source.Reference; - DL : constant Natural := SR.Last + New_Item'Length; + DL : constant Natural := Sum (SR.Last, New_Item'Length); DR : Shared_String_Access; begin @@ -583,7 +608,7 @@ package body Ada.Strings.Unbounded is -- Otherwise, allocate new one and fill it else - DR := Allocate (DL + DL / Growth_Factor); + DR := Allocate (DL, DL / Growth_Factor); DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last); DR.Data (SR.Last + 1 .. DL) := New_Item; DR.Last := DL; @@ -597,20 +622,20 @@ package body Ada.Strings.Unbounded is New_Item : Character) is SR : constant Shared_String_Access := Source.Reference; - DL : constant Natural := SR.Last + 1; + DL : constant Natural := Sum (SR.Last, 1); DR : Shared_String_Access; begin -- Try to reuse existing shared string - if Can_Be_Reused (SR, SR.Last + 1) then + if Can_Be_Reused (SR, DL) then SR.Data (SR.Last + 1) := New_Item; SR.Last := SR.Last + 1; -- Otherwise, allocate new one and fill it else - DR := Allocate (DL + DL / Growth_Factor); + DR := Allocate (DL, DL / Growth_Factor); DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last); DR.Data (DL) := New_Item; DR.Last := DL; @@ -701,7 +726,6 @@ package body Ada.Strings.Unbounded is -- Result is an empty string, reuse shared empty string if DL = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Otherwise, allocate new shared string and fill it @@ -743,7 +767,6 @@ package body Ada.Strings.Unbounded is -- Result is empty, reuse shared empty string if DL = 0 then - Reference (Empty_Shared_String'Access); Source.Reference := Empty_Shared_String'Access; Unreference (SR); @@ -801,7 +824,6 @@ package body Ada.Strings.Unbounded is -- effects if a program references an already-finalized object. Object.Reference := Null_Unbounded_String.Reference; - Reference (Object.Reference); Unreference (SR); end if; end Finalize; @@ -862,7 +884,6 @@ package body Ada.Strings.Unbounded is -- Result is empty, reuse shared empty string if Count = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Length of the string is the same as requested, reuse source shared @@ -912,7 +933,6 @@ package body Ada.Strings.Unbounded is -- Result is empty, reuse empty shared string if Count = 0 then - Reference (Empty_Shared_String'Access); Source.Reference := Empty_Shared_String'Access; Unreference (SR); @@ -1090,7 +1110,6 @@ package body Ada.Strings.Unbounded is -- Result is empty, reuse empty shared string if DL = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Inserted string is empty, reuse source shared string @@ -1102,7 +1121,7 @@ package body Ada.Strings.Unbounded is -- Otherwise, allocate new shared string and fill it else - DR := Allocate (DL + DL / Growth_Factor); + DR := Allocate (DL, DL / Growth_Factor); DR.Data (1 .. Before - 1) := SR.Data (1 .. Before - 1); DR.Data (Before .. Before + New_Item'Length - 1) := New_Item; DR.Data (Before + New_Item'Length .. DL) := @@ -1132,7 +1151,6 @@ package body Ada.Strings.Unbounded is -- Result is empty string, reuse empty shared string if DL = 0 then - Reference (Empty_Shared_String'Access); Source.Reference := Empty_Shared_String'Access; Unreference (SR); @@ -1152,7 +1170,7 @@ package body Ada.Strings.Unbounded is -- Otherwise, allocate new shared string and fill it else - DR := Allocate (DL + DL / Growth_Factor); + DR := Allocate (DL, DL / Growth_Factor); DR.Data (1 .. Before - 1) := SR.Data (1 .. Before - 1); DR.Data (Before .. Before + New_Item'Length - 1) := New_Item; DR.Data (Before + New_Item'Length .. DL) := @@ -1172,6 +1190,16 @@ package body Ada.Strings.Unbounded is return Source.Reference.Last; end Length; + --------- + -- Mul -- + --------- + + function Mul (Left, Right : Natural) return Natural is + pragma Unsuppress (Overflow_Check); + begin + return Left * Right; + end Mul; + --------------- -- Overwrite -- --------------- @@ -1192,12 +1220,11 @@ package body Ada.Strings.Unbounded is raise Index_Error; end if; - DL := Integer'Max (SR.Last, Position + New_Item'Length - 1); + DL := Integer'Max (SR.Last, Sum (Position - 1, New_Item'Length)); -- Result is empty string, reuse empty shared string if DL = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Result is same as source string, reuse source shared string @@ -1241,7 +1268,6 @@ package body Ada.Strings.Unbounded is -- Result is empty string, reuse empty shared string if DL = 0 then - Reference (Empty_Shared_String'Access); Source.Reference := Empty_Shared_String'Access; Unreference (SR); @@ -1276,6 +1302,10 @@ package body Ada.Strings.Unbounded is procedure Reference (Item : not null Shared_String_Access) is begin + if Item = Empty_Shared_String'Access then + return; + end if; + System.Atomic_Counters.Increment (Item.Counter); end Reference; @@ -1341,14 +1371,14 @@ package body Ada.Strings.Unbounded is -- Do replace operation when removed slice is not empty if High >= Low then - DL := By'Length + SR.Last + Low - Integer'Min (High, SR.Last) - 1; + DL := Sum (SR.Last, + By'Length + Low - Integer'Min (High, SR.Last) - 1); -- This is the number of characters remaining in the string after -- replacing the slice. -- Result is empty string, reuse empty shared string if DL = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Otherwise allocate new shared string and fill it @@ -1397,7 +1427,6 @@ package body Ada.Strings.Unbounded is -- Result is empty string, reuse empty shared string if DL = 0 then - Reference (Empty_Shared_String'Access); Source.Reference := Empty_Shared_String'Access; Unreference (SR); @@ -1442,7 +1471,6 @@ package body Ada.Strings.Unbounded is -- In case of empty string, reuse empty shared string if Source'Length = 0 then - Reference (Empty_Shared_String'Access); Target.Reference := Empty_Shared_String'Access; else @@ -1488,6 +1516,16 @@ package body Ada.Strings.Unbounded is end if; end Slice; + --------- + -- Sum -- + --------- + + function Sum (Left : Natural; Right : Integer) return Natural is + pragma Unsuppress (Overflow_Check); + begin + return Left + Right; + end Sum; + ---------- -- Tail -- ---------- @@ -1504,7 +1542,6 @@ package body Ada.Strings.Unbounded is -- For empty result reuse empty shared string if Count = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Result is whole source string, reuse source shared string @@ -1576,7 +1613,6 @@ package body Ada.Strings.Unbounded is -- Result is empty string, reuse empty shared string if Count = 0 then - Reference (Empty_Shared_String'Access); Source.Reference := Empty_Shared_String'Access; Unreference (SR); @@ -1619,7 +1655,6 @@ package body Ada.Strings.Unbounded is begin if Source'Length = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; else @@ -1636,7 +1671,6 @@ package body Ada.Strings.Unbounded is begin if Length = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; else @@ -1662,7 +1696,6 @@ package body Ada.Strings.Unbounded is -- Nothing to translate, reuse empty shared string if SR.Last = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Otherwise, allocate new shared string and fill it @@ -1726,7 +1759,6 @@ package body Ada.Strings.Unbounded is -- Nothing to translate, reuse empty shared string if SR.Last = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Otherwise, allocate new shared string and fill it @@ -1813,7 +1845,6 @@ package body Ada.Strings.Unbounded is -- All blanks, reuse empty shared string if Low = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; else @@ -1867,7 +1898,6 @@ package body Ada.Strings.Unbounded is -- All blanks, reuse empty shared string if Low = 0 then - Reference (Empty_Shared_String'Access); Source.Reference := Empty_Shared_String'Access; Unreference (SR); @@ -1929,7 +1959,6 @@ package body Ada.Strings.Unbounded is -- string. if Low = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; else @@ -1940,7 +1969,6 @@ package body Ada.Strings.Unbounded is -- is empty, reuse empty shared string. if High = 0 or else DL = 0 then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Otherwise, allocate new shared string and fill it @@ -1973,7 +2001,6 @@ package body Ada.Strings.Unbounded is -- string. if Low = 0 then - Reference (Empty_Shared_String'Access); Source.Reference := Empty_Shared_String'Access; Unreference (SR); @@ -1985,7 +2012,6 @@ package body Ada.Strings.Unbounded is -- is empty, reuse empty shared string. if High = 0 or else DL = 0 then - Reference (Empty_Shared_String'Access); Source.Reference := Empty_Shared_String'Access; Unreference (SR); @@ -2023,13 +2049,12 @@ package body Ada.Strings.Unbounded is begin -- Check bounds - if Low > SR.Last + 1 or else High > SR.Last then + if Low - 1 > SR.Last or else High > SR.Last then raise Index_Error; -- Result is empty slice, reuse empty shared string elsif Low > High then - Reference (Empty_Shared_String'Access); DR := Empty_Shared_String'Access; -- Otherwise, allocate new shared string and fill it @@ -2058,13 +2083,12 @@ package body Ada.Strings.Unbounded is begin -- Check bounds - if Low > SR.Last + 1 or else High > SR.Last then + if Low - 1 > SR.Last or else High > SR.Last then raise Index_Error; -- Result is empty slice, reuse empty shared string elsif Low > High then - Reference (Empty_Shared_String'Access); Target.Reference := Empty_Shared_String'Access; Unreference (TR); @@ -2101,14 +2125,12 @@ package body Ada.Strings.Unbounded is Aux : Shared_String_Access := Item; begin - if System.Atomic_Counters.Decrement (Aux.Counter) then - - -- Reference counter of Empty_Shared_String should never reach - -- zero. We check here in case it wraps around. + if Aux = Empty_Shared_String'Access then + return; + end if; - if Aux /= Empty_Shared_String'Access then - Free (Aux); - end if; + if System.Atomic_Counters.Decrement (Aux.Counter) then + Free (Aux); end if; end Unreference; diff --git a/gcc/ada/libgnat/a-strunb__shared.ads b/gcc/ada/libgnat/a-strunb__shared.ads index 17acd56..5a5ad93 100644 --- a/gcc/ada/libgnat/a-strunb__shared.ads +++ b/gcc/ada/libgnat/a-strunb__shared.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- @@ -708,10 +708,12 @@ private type Shared_String_Access is access all Shared_String; procedure Reference (Item : not null Shared_String_Access); - -- Increment reference counter + -- Increment reference counter. + -- Do nothing if Item points to Empty_Shared_String. procedure Unreference (Item : not null Shared_String_Access); - -- Decrement reference counter, deallocate Item when counter goes to zero + -- Decrement reference counter, deallocate Item when counter goes to zero. + -- Do nothing if Item points to Empty_Shared_String. function Can_Be_Reused (Item : not null Shared_String_Access; diff --git a/gcc/ada/libgnat/a-ststbo.adb b/gcc/ada/libgnat/a-ststbo.adb new file mode 100644 index 0000000..16c6d00 --- /dev/null +++ b/gcc/ada/libgnat/a-ststbo.adb @@ -0,0 +1,117 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT LIBRARY COMPONENTS -- +-- -- +-- A D A . S T R E A M S . S T O R A G E . B O U N D E D -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +------------------------------------------------------------------------------ + +package body Ada.Streams.Storage.Bounded is + + ---------- + -- Read -- + ---------- + + overriding procedure Read + (Stream : in out Stream_Type; Item : out Stream_Element_Array; + Last : out Stream_Element_Offset) + is + EA : Stream_Element_Array renames + Stream.Elements (1 .. Element_Count (Stream)); + begin + if Item'Length = 0 then + Last := Item'First - 1; + + -- If the entire content of the stream fits in Item, then copy it and + -- clear the stream. This is likely the usual case. + + elsif Element_Count (Stream) <= Item'Length then + Last := Item'First + Element_Count (Stream) - 1; + Item (Item'First .. Last) := EA; + Clear (Stream); + + -- Otherwise, copy as much into Item as will fit. Then slide the + -- remaining part of the stream down, and compute the new Count. + -- We expect this to be the unusual case, so the cost of copying + -- the remaining part probably doesn't matter. + + else + Last := Item'Last; + + declare + New_Count : constant Stream_Element_Count := + Element_Count (Stream) - Item'Length; + begin + Item := EA (1 .. Item'Length); + EA (1 .. New_Count) := + EA (Element_Count (Stream) - New_Count + 1 .. + Element_Count (Stream)); + Stream.Count := New_Count; + end; + end if; + end Read; + + ----------- + -- Write -- + ----------- + + overriding procedure Write + (Stream : in out Stream_Type; Item : Stream_Element_Array) + is + begin + if Element_Count (Stream) + Item'Length > Stream.Max_Elements then + -- That is a precondition in the RM + raise Constraint_Error; + end if; + + declare + New_Count : constant Stream_Element_Count := + Element_Count (Stream) + Item'Length; + begin + Stream.Elements (Element_Count (Stream) + 1 .. New_Count) := Item; + Stream.Count := New_Count; + end; + end Write; + + ------------------- + -- Element_Count -- + ------------------- + + overriding function Element_Count + (Stream : Stream_Type) return Stream_Element_Count + is + begin + return Stream.Count; + end Element_Count; + + ----------- + -- Clear -- + ----------- + + overriding procedure Clear (Stream : in out Stream_Type) + is + begin + Stream.Count := 0; + end Clear; + +end Ada.Streams.Storage.Bounded; diff --git a/gcc/ada/libgnat/a-ststbo.ads b/gcc/ada/libgnat/a-ststbo.ads new file mode 100644 index 0000000..fe41c2c --- /dev/null +++ b/gcc/ada/libgnat/a-ststbo.ads @@ -0,0 +1,73 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT LIBRARY COMPONENTS -- +-- -- +-- A D A . S T R E A M S . S T O R A G E . B O U N D E D -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2020, 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 -- +-- apply solely to the contents of the part following the private keyword. -- +-- -- +-- 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +------------------------------------------------------------------------------ + +package Ada.Streams.Storage.Bounded with Pure is + + type Stream_Type (Max_Elements : Stream_Element_Count) is + new Storage_Stream_Type with private with + Default_Initial_Condition => Element_Count (Stream_Type) = 0; + + overriding procedure Read + (Stream : in out Stream_Type; Item : out Stream_Element_Array; + Last : out Stream_Element_Offset) + with Post => + (declare + Num_Read : constant Stream_Element_Count := + Stream_Element_Count'Min + (Element_Count (Stream)'Old, Item'Length); + begin + Last = Num_Read + Item'First - 1 + and + Element_Count (Stream) = + Element_Count (Stream)'Old - Num_Read); + + overriding procedure Write + (Stream : in out Stream_Type; Item : Stream_Element_Array) with + Post => Element_Count (Stream) = + Element_Count (Stream)'Old + Item'Length; + + overriding function Element_Count + (Stream : Stream_Type) return Stream_Element_Count with + Post => Element_Count'Result <= Stream.Max_Elements; + + overriding procedure Clear (Stream : in out Stream_Type) with + Post => Element_Count (Stream) = 0; + +private + + type Stream_Type (Max_Elements : Stream_Element_Count) is + new Storage_Stream_Type with record + Count : Stream_Element_Count := 0; + Elements : Stream_Element_Array (1 .. Max_Elements); + end record; + +end Ada.Streams.Storage.Bounded; diff --git a/gcc/ada/libgnat/a-ststio.adb b/gcc/ada/libgnat/a-ststio.adb index 119ac5f..5ed5e00 100644 --- a/gcc/ada/libgnat/a-ststio.adb +++ b/gcc/ada/libgnat/a-ststio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ststio.ads b/gcc/ada/libgnat/a-ststio.ads index 30be158..71482a4 100644 --- a/gcc/ada/libgnat/a-ststio.ads +++ b/gcc/ada/libgnat/a-ststio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-ststun.adb b/gcc/ada/libgnat/a-ststun.adb new file mode 100644 index 0000000..cf3a250 --- /dev/null +++ b/gcc/ada/libgnat/a-ststun.adb @@ -0,0 +1,151 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT LIBRARY COMPONENTS -- +-- -- +-- A D A . S T R E A M S . S T O R A G E . U N B O U N D E D -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +------------------------------------------------------------------------------ + +with Ada.Unchecked_Deallocation; + +package body Ada.Streams.Storage.Unbounded is + + procedure Free is new Ada.Unchecked_Deallocation + (Elements_Type, Elements_Access); + + -------------- + -- Finalize -- + -------------- + + overriding procedure Finalize (X : in out Controlled_Elements_Access) is + begin + if X.A /= Empty_Elements'Access then + Free (X.A); + end if; + end Finalize; + + ---------- + -- Read -- + ---------- + + overriding procedure Read + (Stream : in out Stream_Type; Item : out Stream_Element_Array; + Last : out Stream_Element_Offset) + is + EA : Stream_Element_Array renames + Stream.Elements.A.EA (1 .. Element_Count (Stream)); + begin + if Item'Length = 0 then + Last := Item'First - 1; + + -- If the entire content of the stream fits in Item, then copy it and + -- clear the stream. This is likely the usual case. + + elsif Element_Count (Stream) <= Item'Length then + Last := Item'First + Element_Count (Stream) - 1; + Item (Item'First .. Last) := EA; + Clear (Stream); + + -- Otherwise, copy as much into Item as will fit. Then slide the + -- remaining part of the stream down, and compute the new Count. + -- We expect this to be the unusual case, so the cost of copying + -- the remaining part probably doesn't matter. + + else + Last := Item'Last; + + declare + New_Count : constant Stream_Element_Count := + Element_Count (Stream) - Item'Length; + begin + Item := EA (1 .. Item'Length); + EA (1 .. New_Count) := + EA (Element_Count (Stream) - New_Count + 1 .. + Element_Count (Stream)); + Stream.Count := New_Count; + end; + end if; + end Read; + + ----------- + -- Write -- + ----------- + + overriding procedure Write + (Stream : in out Stream_Type; Item : Stream_Element_Array) + is + New_Count : constant Stream_Element_Count := + Element_Count (Stream) + Item'Length; + begin + -- Check whether we need to grow the array. If so, then if the Stream is + -- empty, allocate a goodly amount. Otherwise double the length, for + -- amortized efficiency. In any case, we need to make sure it's at least + -- big enough for New_Count. + + if New_Count > Stream.Elements.A.Last then + declare + New_Last : Stream_Element_Index := + (if Stream.Elements.A.Last = 0 then 2**10 -- goodly amount + else Stream.Elements.A.Last * 2); + Old_Elements : Elements_Access := Stream.Elements.A; + begin + if New_Last < New_Count then + New_Last := New_Count; + end if; + + Stream.Elements.A := new Elements_Type (Last => New_Last); + + if Old_Elements /= Empty_Elements'Access then + Stream.Elements.A.EA (Old_Elements.EA'Range) := Old_Elements.EA; + Free (Old_Elements); + end if; + end; + end if; + + Stream.Elements.A.EA (Element_Count (Stream) + 1 .. New_Count) := Item; + Stream.Count := New_Count; + end Write; + + ------------------- + -- Element_Count -- + ------------------- + + overriding function Element_Count + (Stream : Stream_Type) return Stream_Element_Count + is + begin + return Stream.Count; + end Element_Count; + + ----------- + -- Clear -- + ----------- + + overriding procedure Clear (Stream : in out Stream_Type) is + begin + Stream.Count := 0; + -- We don't free Stream.Elements here, because we want to reuse it if + -- there are more Write calls. + end Clear; + +end Ada.Streams.Storage.Unbounded; diff --git a/gcc/ada/libgnat/a-ststun.ads b/gcc/ada/libgnat/a-ststun.ads new file mode 100644 index 0000000..95aca9b --- /dev/null +++ b/gcc/ada/libgnat/a-ststun.ads @@ -0,0 +1,91 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT LIBRARY COMPONENTS -- +-- -- +-- A D A . S T R E A M S . S T O R A G E . U N B O U N D E D -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2020, 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 -- +-- apply solely to the contents of the part following the private keyword. -- +-- -- +-- 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +------------------------------------------------------------------------------ + +private with Ada.Finalization; + +package Ada.Streams.Storage.Unbounded with Preelaborate is + + type Stream_Type is new Storage_Stream_Type with private with + Default_Initial_Condition => Element_Count (Stream_Type) = 0; + + overriding procedure Read + (Stream : in out Stream_Type; Item : out Stream_Element_Array; + Last : out Stream_Element_Offset) + with Post => + (declare + Num_Read : constant Stream_Element_Count := + Stream_Element_Count'Min + (Element_Count (Stream)'Old, Item'Length); + begin + Last = Num_Read + Item'First - 1 + and + Element_Count (Stream) = + Element_Count (Stream)'Old - Num_Read); + + overriding procedure Write + (Stream : in out Stream_Type; Item : Stream_Element_Array) with + Post => Element_Count (Stream) = + Element_Count (Stream)'Old + Item'Length; + + overriding function Element_Count + (Stream : Stream_Type) return Stream_Element_Count; + + overriding procedure Clear (Stream : in out Stream_Type) with + Post => Element_Count (Stream) = 0; + +private + + subtype Stream_Element_Index is Stream_Element_Count + range 1 .. Stream_Element_Count'Last; + + type Elements_Type (Last : Stream_Element_Count) is limited record + EA : Stream_Element_Array (1 .. Last); + end record; + + Empty_Elements : aliased Elements_Type := (Last => 0, EA => (others => <>)); + + type Elements_Access is access all Elements_Type; + + type Controlled_Elements_Access is + new Finalization.Limited_Controlled with record + A : Elements_Access; + end record; + + overriding procedure Finalize (X : in out Controlled_Elements_Access); + + type Stream_Type is new Storage_Stream_Type with record + Elements : Controlled_Elements_Access := + (Finalization.Limited_Controlled with A => Empty_Elements'Access); + Count : Stream_Element_Count := 0; + end record; + +end Ada.Streams.Storage.Unbounded; diff --git a/gcc/ada/libgnat/a-stteou.ads b/gcc/ada/libgnat/a-stteou.ads new file mode 100644 index 0000000..924b550 --- /dev/null +++ b/gcc/ada/libgnat/a-stteou.ads @@ -0,0 +1,191 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- ADA.STRINGS.TEXT_OUTPUT -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +with Ada.Strings.UTF_Encoding; +with Ada.Strings.UTF_Encoding.Wide_Wide_Strings; + +package Ada.Strings.Text_Output with Preelaborate is + + -- This package provides a "Sink" abstraction, to which characters of type + -- Character, Wide_Character, and Wide_Wide_Character can be sent. This + -- type is used by the Put_Image attribute. In particular, T'Put_Image has + -- the following parameter types: + -- + -- procedure T'Put_Image (S : in out Sink'Class; V : T); + -- + -- The default generated code for Put_Image of a composite type will + -- typically call Put_Image on the components. + -- + -- This is not a fully general abstraction that can be arbitrarily + -- extended. It is designed with particular extensions in mind, and these + -- extensions are declared in child packages of this package, because they + -- depend on implementation details in the private part of this + -- package. The primary extensions of Sink are: + -- + -- Buffer. The characters sent to a Buffer are stored in memory, and can + -- be retrieved via Get functions. This is intended for the + -- implementation of the 'Image attribute. The compiler will generate a + -- T'Image function that declares a local Buffer, sends characters to + -- it, and then returns a call to Get, Destroying the Buffer on return. + -- + -- function T'Image (V : T) return String is + -- Buf : Buffer := New_Buffer (...); + -- begin + -- T'Put_Image (Buf, V); + -- return Result : constant String := Get (Buf) do + -- Destroy (Buf); + -- end return; + -- end T'Image; + -- ????Perhaps Buffer should be controlled; if you don't like + -- controlled types, call Put_Image directly. + -- + -- File. The characters are sent to a file, possibly opened by file + -- name, or possibly standard output or standard error. 'Put_Image + -- can be called directly on a File, thus avoiding any heap allocation. + + type Sink (<>) is abstract tagged limited private; + type Sink_Access is access all Sink'Class with Storage_Size => 0; + -- Sink is a character sink; you can send characters to a Sink. + -- UTF-8 encoding is used. + + procedure Full_Method (S : in out Sink) is abstract; + procedure Flush_Method (S : in out Sink) is abstract; + -- There is an internal buffer to store the characters. Full_Method is + -- called when the buffer is full, and Flush_Method may be called to flush + -- the buffer. For Buffer, Full_Method allocates more space for more + -- characters, and Flush_Method does nothing. For File, Full_Method and + -- Flush_Method do the same thing: write the characters to the file, and + -- empty the internal buffer. + -- + -- These are the only dispatching subprograms on Sink. This is for + -- efficiency; we don't dispatch on every write to the Sink, but only when + -- the internal buffer is full (or upon client request). + -- + -- Full_Method and Flush_Method must make the current chunk empty. + -- + -- Additional operations operating on Sink'Class are declared in the Utils + -- child, including Full and Flush, which call the above. + + function To_Wide (C : Character) return Wide_Character is + (Wide_Character'Val (Character'Pos (C))); + function To_Wide_Wide (C : Character) return Wide_Wide_Character is + (Wide_Wide_Character'Val (Character'Pos (C))); + function To_Wide_Wide (C : Wide_Character) return Wide_Wide_Character is + (Wide_Wide_Character'Val (Wide_Character'Pos (C))); + -- Conversions [Wide_]Character --> [Wide_]Wide_Character. + -- These cannot fail. + + function From_Wide (C : Wide_Character) return Character is + (Character'Val (Wide_Character'Pos (C))); + function From_Wide_Wide (C : Wide_Wide_Character) return Character is + (Character'Val (Wide_Wide_Character'Pos (C))); + function From_Wide_Wide (C : Wide_Wide_Character) return Wide_Character is + (Wide_Character'Val (Wide_Wide_Character'Pos (C))); + -- Conversions [Wide_]Wide_Character --> [Wide_]Character. + -- These fail if the character is out of range. + + function NL return Character is (ASCII.LF) with Inline; + function Wide_NL return Wide_Character is (To_Wide (Character'(NL))) + with Inline; + function Wide_Wide_NL return Wide_Wide_Character is + (To_Wide_Wide (Character'(NL))) with Inline; + -- Character representing new line. There is no support for CR/LF line + -- endings. + + -- We have two subtypes of String that are encoded in UTF-8. UTF_8 cannot + -- contain newline characters; UTF_8_Lines can. Sending UTF_8 data to a + -- Sink is more efficient, because end-of-line processing is not needed. + -- Both of these are more efficient than [[Wide_]Wide_]String, because no + -- encoding is needed. + + subtype UTF_8_Lines is UTF_Encoding.UTF_8_String with + Predicate => + UTF_Encoding.Wide_Wide_Strings.Encode + (UTF_Encoding.Wide_Wide_Strings.Decode (UTF_8_Lines)) = UTF_8_Lines; + + subtype UTF_8 is UTF_8_Lines with + Predicate => (for all UTF_8_Char of UTF_8 => UTF_8_Char /= NL); + + Default_Indent_Amount : constant Natural := 4; + + Default_Chunk_Length : constant Positive := 500; + -- Experiment shows this value to be reasonably efficient; decreasing it + -- slows things down, but increasing it doesn't gain much. + +private + type String_Access is access all String; + + -- For Buffer, the "internal buffer" mentioned above is implemented as a + -- linked list of chunks. When the current chunk is full, we allocate a new + -- one. For File, there is only one chunk. When it is full, we send the + -- data to the file, and empty it. + + type Chunk; + type Chunk_Access is access all Chunk; + type Chunk (Length : Positive) is limited record + Next : Chunk_Access := null; + Chars : UTF_8_Lines (1 .. Length); + end record; + + type Sink (Chunk_Length : Positive) is abstract tagged limited record + Indent_Amount : Natural; + Column : Positive := 1; + Indentation : Natural := 0; + + All_7_Bits : Boolean := True; + -- For optimization of Text_Output.Buffers.Get (cf). + -- True if all characters seen so far fit in 7 bits. + -- 7-bit characters are represented the same in Character + -- and in UTF-8, so they don't need translation. + + All_8_Bits : Boolean := True; + -- True if all characters seen so far fit in 8 bits. + -- This is needed in Text_Output.Buffers.Get to distinguish + -- the case where all characters are Latin-1 (so it should + -- decode) from the case where some characters are bigger than + -- 8 bits (so the result is implementation defined). + + Cur_Chunk : Chunk_Access; + -- Points to the chunk we are currently sending characters to. + -- We want to say: + -- Cur_Chunk : Chunk_Access := Initial_Chunk'Access; + -- but that's illegal, so we have some horsing around to do. + + Last : Natural := 0; + -- Last-used character in Cur_Chunk.all. + + Initial_Chunk : aliased Chunk (Length => Chunk_Length); + -- For Buffer, this is the first chunk. Subsequent chunks are allocated + -- on the heap. For File, this is the only chunk, and there is no heap + -- allocation. + end record; + +end Ada.Strings.Text_Output; diff --git a/gcc/ada/libgnat/a-stunau.adb b/gcc/ada/libgnat/a-stunau.adb index 761afe9..a0e2eda 100644 --- a/gcc/ada/libgnat/a-stunau.adb +++ b/gcc/ada/libgnat/a-stunau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stunau.ads b/gcc/ada/libgnat/a-stunau.ads index d3cf29f..bac37ef 100644 --- a/gcc/ada/libgnat/a-stunau.ads +++ b/gcc/ada/libgnat/a-stunau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stunau__shared.adb b/gcc/ada/libgnat/a-stunau__shared.adb index 2f3efb7..5f903f1 100644 --- a/gcc/ada/libgnat/a-stunau__shared.adb +++ b/gcc/ada/libgnat/a-stunau__shared.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stunha.adb b/gcc/ada/libgnat/a-stunha.adb index 59c76ab..e92ad27 100644 --- a/gcc/ada/libgnat/a-stunha.adb +++ b/gcc/ada/libgnat/a-stunha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stuten.adb b/gcc/ada/libgnat/a-stuten.adb index 178827c..d6654b2 100644 --- a/gcc/ada/libgnat/a-stuten.adb +++ b/gcc/ada/libgnat/a-stuten.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stwibo.adb b/gcc/ada/libgnat/a-stwibo.adb index 30a6555..46e1b41 100644 --- a/gcc/ada/libgnat/a-stwibo.adb +++ b/gcc/ada/libgnat/a-stwibo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stwibo.ads b/gcc/ada/libgnat/a-stwibo.ads index e6c4e65..ba35134 100644 --- a/gcc/ada/libgnat/a-stwibo.ads +++ b/gcc/ada/libgnat/a-stwibo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-stwifi.adb b/gcc/ada/libgnat/a-stwifi.adb index ed81482..05e58e9 100644 --- a/gcc/ada/libgnat/a-stwifi.adb +++ b/gcc/ada/libgnat/a-stwifi.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stwiha.adb b/gcc/ada/libgnat/a-stwiha.adb index 47a9fab..b25614a 100644 --- a/gcc/ada/libgnat/a-stwiha.adb +++ b/gcc/ada/libgnat/a-stwiha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stwima.adb b/gcc/ada/libgnat/a-stwima.adb index 514b6e5..1cc7d67 100644 --- a/gcc/ada/libgnat/a-stwima.adb +++ b/gcc/ada/libgnat/a-stwima.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stwima.ads b/gcc/ada/libgnat/a-stwima.ads index a37e578..24c6bb84 100644 --- a/gcc/ada/libgnat/a-stwima.ads +++ b/gcc/ada/libgnat/a-stwima.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-stwise.adb b/gcc/ada/libgnat/a-stwise.adb index 897591c..f93c5cb 100644 --- a/gcc/ada/libgnat/a-stwise.adb +++ b/gcc/ada/libgnat/a-stwise.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stwise.ads b/gcc/ada/libgnat/a-stwise.ads index 3491eff..0573157 100644 --- a/gcc/ada/libgnat/a-stwise.ads +++ b/gcc/ada/libgnat/a-stwise.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stwisu.adb b/gcc/ada/libgnat/a-stwisu.adb index a192005..8c343fe 100644 --- a/gcc/ada/libgnat/a-stwisu.adb +++ b/gcc/ada/libgnat/a-stwisu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stwisu.ads b/gcc/ada/libgnat/a-stwisu.ads index ee52f0d..387e012 100644 --- a/gcc/ada/libgnat/a-stwisu.ads +++ b/gcc/ada/libgnat/a-stwisu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stwiun.adb b/gcc/ada/libgnat/a-stwiun.adb index ded9d10..912af42 100644 --- a/gcc/ada/libgnat/a-stwiun.adb +++ b/gcc/ada/libgnat/a-stwiun.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stwiun.ads b/gcc/ada/libgnat/a-stwiun.ads index 9f2a273..00d5c3d 100644 --- a/gcc/ada/libgnat/a-stwiun.ads +++ b/gcc/ada/libgnat/a-stwiun.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-stwiun__shared.adb b/gcc/ada/libgnat/a-stwiun__shared.adb index 7fab387..b61139b1 100644 --- a/gcc/ada/libgnat/a-stwiun__shared.adb +++ b/gcc/ada/libgnat/a-stwiun__shared.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stwiun__shared.ads b/gcc/ada/libgnat/a-stwiun__shared.ads index ba01ffd..3d29939 100644 --- a/gcc/ada/libgnat/a-stwiun__shared.ads +++ b/gcc/ada/libgnat/a-stwiun__shared.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-stzbou.adb b/gcc/ada/libgnat/a-stzbou.adb index 403cc8b..60afeec 100644 --- a/gcc/ada/libgnat/a-stzbou.adb +++ b/gcc/ada/libgnat/a-stzbou.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stzbou.ads b/gcc/ada/libgnat/a-stzbou.ads index ffa0e48..f5bbcf3 100644 --- a/gcc/ada/libgnat/a-stzbou.ads +++ b/gcc/ada/libgnat/a-stzbou.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-stzfix.adb b/gcc/ada/libgnat/a-stzfix.adb index 0367994..ea97b13 100644 --- a/gcc/ada/libgnat/a-stzfix.adb +++ b/gcc/ada/libgnat/a-stzfix.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stzhas.adb b/gcc/ada/libgnat/a-stzhas.adb index 77d838b..43abb80 100644 --- a/gcc/ada/libgnat/a-stzhas.adb +++ b/gcc/ada/libgnat/a-stzhas.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stzmap.adb b/gcc/ada/libgnat/a-stzmap.adb index 76c4110..2e1cd5d 100644 --- a/gcc/ada/libgnat/a-stzmap.adb +++ b/gcc/ada/libgnat/a-stzmap.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stzmap.ads b/gcc/ada/libgnat/a-stzmap.ads index d0d2a1f..9cfa5ed 100644 --- a/gcc/ada/libgnat/a-stzmap.ads +++ b/gcc/ada/libgnat/a-stzmap.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-stzsea.adb b/gcc/ada/libgnat/a-stzsea.adb index 3c800c0..9982b75 100644 --- a/gcc/ada/libgnat/a-stzsea.adb +++ b/gcc/ada/libgnat/a-stzsea.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stzsea.ads b/gcc/ada/libgnat/a-stzsea.ads index 244cfb6..bdd27d5 100644 --- a/gcc/ada/libgnat/a-stzsea.ads +++ b/gcc/ada/libgnat/a-stzsea.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stzsup.adb b/gcc/ada/libgnat/a-stzsup.adb index ad2160a..e4558e5 100644 --- a/gcc/ada/libgnat/a-stzsup.adb +++ b/gcc/ada/libgnat/a-stzsup.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stzsup.ads b/gcc/ada/libgnat/a-stzsup.ads index a60ef64..b128010 100644 --- a/gcc/ada/libgnat/a-stzsup.ads +++ b/gcc/ada/libgnat/a-stzsup.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stzunb.adb b/gcc/ada/libgnat/a-stzunb.adb index e795826..f32b3ed 100644 --- a/gcc/ada/libgnat/a-stzunb.adb +++ b/gcc/ada/libgnat/a-stzunb.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stzunb.ads b/gcc/ada/libgnat/a-stzunb.ads index 3dc490c9..7ee8a56 100644 --- a/gcc/ada/libgnat/a-stzunb.ads +++ b/gcc/ada/libgnat/a-stzunb.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-stzunb__shared.adb b/gcc/ada/libgnat/a-stzunb__shared.adb index f88a4c5..86bed5c 100644 --- a/gcc/ada/libgnat/a-stzunb__shared.adb +++ b/gcc/ada/libgnat/a-stzunb__shared.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-stzunb__shared.ads b/gcc/ada/libgnat/a-stzunb__shared.ads index d062d46..5079d63 100644 --- a/gcc/ada/libgnat/a-stzunb__shared.ads +++ b/gcc/ada/libgnat/a-stzunb__shared.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-suecin.adb b/gcc/ada/libgnat/a-suecin.adb index 4ea16c2..4336538 100644 --- a/gcc/ada/libgnat/a-suecin.adb +++ b/gcc/ada/libgnat/a-suecin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/a-suecin.ads b/gcc/ada/libgnat/a-suecin.ads index b4085b8..6578191 100644 --- a/gcc/ada/libgnat/a-suecin.ads +++ b/gcc/ada/libgnat/a-suecin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- diff --git a/gcc/ada/libgnat/a-suenco.adb b/gcc/ada/libgnat/a-suenco.adb index 47dee2e..6d30f84 100644 --- a/gcc/ada/libgnat/a-suenco.adb +++ b/gcc/ada/libgnat/a-suenco.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/a-suenst.adb b/gcc/ada/libgnat/a-suenst.adb index 12793c4..ff730e8 100644 --- a/gcc/ada/libgnat/a-suenst.adb +++ b/gcc/ada/libgnat/a-suenst.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/a-suewst.adb b/gcc/ada/libgnat/a-suewst.adb index ed9817f..25a671a 100644 --- a/gcc/ada/libgnat/a-suewst.adb +++ b/gcc/ada/libgnat/a-suewst.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/a-suezst.adb b/gcc/ada/libgnat/a-suezst.adb index bba805f..951a171 100644 --- a/gcc/ada/libgnat/a-suezst.adb +++ b/gcc/ada/libgnat/a-suezst.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/a-suhcin.adb b/gcc/ada/libgnat/a-suhcin.adb index f1dc0f7..98de7a1 100644 --- a/gcc/ada/libgnat/a-suhcin.adb +++ b/gcc/ada/libgnat/a-suhcin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/a-suhcin.ads b/gcc/ada/libgnat/a-suhcin.ads index b06655c..20aa236 100644 --- a/gcc/ada/libgnat/a-suhcin.ads +++ b/gcc/ada/libgnat/a-suhcin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- diff --git a/gcc/ada/libgnat/a-sulcin.adb b/gcc/ada/libgnat/a-sulcin.adb index 096b759..10df730 100644 --- a/gcc/ada/libgnat/a-sulcin.adb +++ b/gcc/ada/libgnat/a-sulcin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/a-sulcin.ads b/gcc/ada/libgnat/a-sulcin.ads index 220ffdc9..174ec4b 100644 --- a/gcc/ada/libgnat/a-sulcin.ads +++ b/gcc/ada/libgnat/a-sulcin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- diff --git a/gcc/ada/libgnat/a-suteio.adb b/gcc/ada/libgnat/a-suteio.adb index 4571692..28d8435 100644 --- a/gcc/ada/libgnat/a-suteio.adb +++ b/gcc/ada/libgnat/a-suteio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/a-suteio.ads b/gcc/ada/libgnat/a-suteio.ads index 64d43de..fda5b3c 100644 --- a/gcc/ada/libgnat/a-suteio.ads +++ b/gcc/ada/libgnat/a-suteio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/a-suteio__shared.adb b/gcc/ada/libgnat/a-suteio__shared.adb index 9847757..fc28aaa 100644 --- a/gcc/ada/libgnat/a-suteio__shared.adb +++ b/gcc/ada/libgnat/a-suteio__shared.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/a-swbwha.adb b/gcc/ada/libgnat/a-swbwha.adb index 2c1574c..7ad420c 100644 --- a/gcc/ada/libgnat/a-swbwha.adb +++ b/gcc/ada/libgnat/a-swbwha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-swmwco.ads b/gcc/ada/libgnat/a-swmwco.ads index 08eda0d..9e71851 100644 --- a/gcc/ada/libgnat/a-swmwco.ads +++ b/gcc/ada/libgnat/a-swmwco.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-swunau.adb b/gcc/ada/libgnat/a-swunau.adb index 59520d8..e77a34c 100644 --- a/gcc/ada/libgnat/a-swunau.adb +++ b/gcc/ada/libgnat/a-swunau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-swunau.ads b/gcc/ada/libgnat/a-swunau.ads index 8160a8f..a2bf6d1 100644 --- a/gcc/ada/libgnat/a-swunau.ads +++ b/gcc/ada/libgnat/a-swunau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-swunau__shared.adb b/gcc/ada/libgnat/a-swunau__shared.adb index 2cd6395..16ffd82 100644 --- a/gcc/ada/libgnat/a-swunau__shared.adb +++ b/gcc/ada/libgnat/a-swunau__shared.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-swuwha.adb b/gcc/ada/libgnat/a-swuwha.adb index 935eb47..2ff28b0 100644 --- a/gcc/ada/libgnat/a-swuwha.adb +++ b/gcc/ada/libgnat/a-swuwha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-swuwti.adb b/gcc/ada/libgnat/a-swuwti.adb index df238e5..e664d3d 100644 --- a/gcc/ada/libgnat/a-swuwti.adb +++ b/gcc/ada/libgnat/a-swuwti.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/a-swuwti.ads b/gcc/ada/libgnat/a-swuwti.ads index bcf3b20..6eb9e58 100644 --- a/gcc/ada/libgnat/a-swuwti.ads +++ b/gcc/ada/libgnat/a-swuwti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/a-swuwti__shared.adb b/gcc/ada/libgnat/a-swuwti__shared.adb index 4b606b2..96680e2 100644 --- a/gcc/ada/libgnat/a-swuwti__shared.adb +++ b/gcc/ada/libgnat/a-swuwti__shared.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/a-szbzha.adb b/gcc/ada/libgnat/a-szbzha.adb index b28689f..e6f6936 100644 --- a/gcc/ada/libgnat/a-szbzha.adb +++ b/gcc/ada/libgnat/a-szbzha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-szmzco.ads b/gcc/ada/libgnat/a-szmzco.ads index ae560cf..eaaf116 100644 --- a/gcc/ada/libgnat/a-szmzco.ads +++ b/gcc/ada/libgnat/a-szmzco.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-szunau.adb b/gcc/ada/libgnat/a-szunau.adb index e9b7864..f9c263e 100644 --- a/gcc/ada/libgnat/a-szunau.adb +++ b/gcc/ada/libgnat/a-szunau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-szunau.ads b/gcc/ada/libgnat/a-szunau.ads index d791b8e..2795dbe 100644 --- a/gcc/ada/libgnat/a-szunau.ads +++ b/gcc/ada/libgnat/a-szunau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-szunau__shared.adb b/gcc/ada/libgnat/a-szunau__shared.adb index a46d632..fcd14eb 100644 --- a/gcc/ada/libgnat/a-szunau__shared.adb +++ b/gcc/ada/libgnat/a-szunau__shared.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-szuzha.adb b/gcc/ada/libgnat/a-szuzha.adb index 4666bcc..00cad7c 100644 --- a/gcc/ada/libgnat/a-szuzha.adb +++ b/gcc/ada/libgnat/a-szuzha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/a-szuzti.adb b/gcc/ada/libgnat/a-szuzti.adb index bd42c76..239d319 100644 --- a/gcc/ada/libgnat/a-szuzti.adb +++ b/gcc/ada/libgnat/a-szuzti.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/a-szuzti.ads b/gcc/ada/libgnat/a-szuzti.ads index 69d63b4..0e7f1f5 100644 --- a/gcc/ada/libgnat/a-szuzti.ads +++ b/gcc/ada/libgnat/a-szuzti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/a-szuzti__shared.adb b/gcc/ada/libgnat/a-szuzti__shared.adb index 5690294..9f486e2 100644 --- a/gcc/ada/libgnat/a-szuzti__shared.adb +++ b/gcc/ada/libgnat/a-szuzti__shared.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tags.adb b/gcc/ada/libgnat/a-tags.adb index 4c99523..798780a 100644 --- a/gcc/ada/libgnat/a-tags.adb +++ b/gcc/ada/libgnat/a-tags.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -49,10 +49,6 @@ package body Ada.Tags is -- Local Subprograms -- ----------------------- - function CW_Membership (Obj_Tag : Tag; Typ_Tag : Tag) return Boolean; - -- Given the tag of an object and the tag associated to a type, return - -- true if Obj is in Typ'Class. - function Get_External_Tag (T : Tag) return System.Address; -- Returns address of a null terminated string containing the external name @@ -82,7 +78,6 @@ package body Ada.Tags is -- Ada 2005 (AI-251): Given a pointer T to a dispatch Table, retrieves the -- address of the record containing the Select Specific Data in T's TSD. - pragma Inline_Always (CW_Membership); pragma Inline_Always (Get_External_Tag); pragma Inline_Always (Is_Primary_DT); pragma Inline_Always (OSD); diff --git a/gcc/ada/libgnat/a-tags.ads b/gcc/ada/libgnat/a-tags.ads index 8799a31..fb386c3 100644 --- a/gcc/ada/libgnat/a-tags.ads +++ b/gcc/ada/libgnat/a-tags.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- @@ -501,6 +501,10 @@ private -- dispatch table, return the tagged kind of a type in the context of -- concurrency and limitedness. + function CW_Membership (Obj_Tag : Tag; Typ_Tag : Tag) return Boolean; + -- Given the tag of an object and the tag associated to a type, return + -- true if Obj is in Typ'Class. + function IW_Membership (This : System.Address; T : Tag) return Boolean; -- Ada 2005 (AI-251): General routine that checks if a given object -- implements a tagged type. Its common usage is to check if Obj is in @@ -588,7 +592,7 @@ private procedure Unregister_Tag (T : Tag); -- Remove a particular tag from the external tag hash table - Max_Predef_Prims : constant Positive := 15; + Max_Predef_Prims : constant Positive := 16; -- Number of reserved slots for the following predefined ada primitives: -- -- 1. Size @@ -600,12 +604,13 @@ private -- 7. assignment -- 8. deep adjust -- 9. deep finalize - -- 10. async select - -- 11. conditional select - -- 12. prim_op kind - -- 13. task_id - -- 14. dispatching requeue - -- 15. timed select + -- 10. Put_Image + -- 11. async select + -- 12. conditional select + -- 13. prim_op kind + -- 14. task_id + -- 15. dispatching requeue + -- 16. timed select -- -- The compiler checks that the value here is correct diff --git a/gcc/ada/libgnat/a-teioed.adb b/gcc/ada/libgnat/a-teioed.adb index ca70075..f3b0928 100644 --- a/gcc/ada/libgnat/a-teioed.adb +++ b/gcc/ada/libgnat/a-teioed.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-teioed.ads b/gcc/ada/libgnat/a-teioed.ads index 6f1652f..273291e 100644 --- a/gcc/ada/libgnat/a-teioed.ads +++ b/gcc/ada/libgnat/a-teioed.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-textio.adb b/gcc/ada/libgnat/a-textio.adb index 276be12..b36d28b 100644 --- a/gcc/ada/libgnat/a-textio.adb +++ b/gcc/ada/libgnat/a-textio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-textio.ads b/gcc/ada/libgnat/a-textio.ads index a2e1daf..6e5e392 100644 --- a/gcc/ada/libgnat/a-textio.ads +++ b/gcc/ada/libgnat/a-textio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- @@ -70,7 +70,7 @@ is -- used in this package and System.File_IO. for File_Mode use - (In_File => 0, -- System.FIle_IO.File_Mode'Pos (In_File) + (In_File => 0, -- System.File_IO.File_Mode'Pos (In_File) Out_File => 2, -- System.File_IO.File_Mode'Pos (Out_File) Append_File => 3); -- System.File_IO.File_Mode'Pos (Append_File) diff --git a/gcc/ada/libgnat/a-tiboio.adb b/gcc/ada/libgnat/a-tiboio.adb index bee738e..e212356 100644 --- a/gcc/ada/libgnat/a-tiboio.adb +++ b/gcc/ada/libgnat/a-tiboio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ticoau.adb b/gcc/ada/libgnat/a-ticoau.adb index ad3b4d3..e4f56dd 100644 --- a/gcc/ada/libgnat/a-ticoau.adb +++ b/gcc/ada/libgnat/a-ticoau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ticoau.ads b/gcc/ada/libgnat/a-ticoau.ads index 01d387c..739dce8 100644 --- a/gcc/ada/libgnat/a-ticoau.ads +++ b/gcc/ada/libgnat/a-ticoau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ticoio.adb b/gcc/ada/libgnat/a-ticoio.adb index 0758479..fa52b60 100644 --- a/gcc/ada/libgnat/a-ticoio.adb +++ b/gcc/ada/libgnat/a-ticoio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ticoio.ads b/gcc/ada/libgnat/a-ticoio.ads index 5c37f8f..b0e3d8c 100644 --- a/gcc/ada/libgnat/a-ticoio.ads +++ b/gcc/ada/libgnat/a-ticoio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-tideau.adb b/gcc/ada/libgnat/a-tideau.adb index debaeda..caf77e3 100644 --- a/gcc/ada/libgnat/a-tideau.adb +++ b/gcc/ada/libgnat/a-tideau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tideau.ads b/gcc/ada/libgnat/a-tideau.ads index 2205ffc..e7d7f44 100644 --- a/gcc/ada/libgnat/a-tideau.ads +++ b/gcc/ada/libgnat/a-tideau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tideio.adb b/gcc/ada/libgnat/a-tideio.adb index 3497080..0624c2c 100644 --- a/gcc/ada/libgnat/a-tideio.adb +++ b/gcc/ada/libgnat/a-tideio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tideio.ads b/gcc/ada/libgnat/a-tideio.ads index efe52c5..83e72aa 100644 --- a/gcc/ada/libgnat/a-tideio.ads +++ b/gcc/ada/libgnat/a-tideio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-tienau.adb b/gcc/ada/libgnat/a-tienau.adb index d9cf888..87dce4b 100644 --- a/gcc/ada/libgnat/a-tienau.adb +++ b/gcc/ada/libgnat/a-tienau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tienau.ads b/gcc/ada/libgnat/a-tienau.ads index 236d05f..27b15c1 100644 --- a/gcc/ada/libgnat/a-tienau.ads +++ b/gcc/ada/libgnat/a-tienau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tienio.adb b/gcc/ada/libgnat/a-tienio.adb index 55c87f3..adc93db 100644 --- a/gcc/ada/libgnat/a-tienio.adb +++ b/gcc/ada/libgnat/a-tienio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tifiio.adb b/gcc/ada/libgnat/a-tifiio.adb index d048646..4098f0e 100644 --- a/gcc/ada/libgnat/a-tifiio.adb +++ b/gcc/ada/libgnat/a-tifiio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tiflau.adb b/gcc/ada/libgnat/a-tiflau.adb index d3ef65c..214b5c8 100644 --- a/gcc/ada/libgnat/a-tiflau.adb +++ b/gcc/ada/libgnat/a-tiflau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -194,7 +194,7 @@ package body Ada.Text_IO.Float_Aux is Aft : Field; Exp : Field) is - Buf : String (1 .. 3 * Field'Last + 2); + Buf : String (1 .. Max_Real_Image_Length); Ptr : Natural := 0; begin @@ -212,7 +212,7 @@ package body Ada.Text_IO.Float_Aux is Aft : Field; Exp : Field) is - Buf : String (1 .. 3 * Field'Last + 2); + Buf : String (1 .. Max_Real_Image_Length); Ptr : Natural := 0; begin diff --git a/gcc/ada/libgnat/a-tiflau.ads b/gcc/ada/libgnat/a-tiflau.ads index 558df2e..68ac9eb 100644 --- a/gcc/ada/libgnat/a-tiflau.ads +++ b/gcc/ada/libgnat/a-tiflau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tiflio.adb b/gcc/ada/libgnat/a-tiflio.adb index 23d31f7..0daa044 100644 --- a/gcc/ada/libgnat/a-tiflio.adb +++ b/gcc/ada/libgnat/a-tiflio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tiflio.ads b/gcc/ada/libgnat/a-tiflio.ads index 16e65a5..bd4c64f64 100644 --- a/gcc/ada/libgnat/a-tiflio.ads +++ b/gcc/ada/libgnat/a-tiflio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-tigeau.adb b/gcc/ada/libgnat/a-tigeau.adb index 462058c9..c7f719a 100644 --- a/gcc/ada/libgnat/a-tigeau.adb +++ b/gcc/ada/libgnat/a-tigeau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tigeau.ads b/gcc/ada/libgnat/a-tigeau.ads index 90ccb72..32b5fe3 100644 --- a/gcc/ada/libgnat/a-tigeau.ads +++ b/gcc/ada/libgnat/a-tigeau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tigeli.adb b/gcc/ada/libgnat/a-tigeli.adb index 4562ca9..3dad18b 100644 --- a/gcc/ada/libgnat/a-tigeli.adb +++ b/gcc/ada/libgnat/a-tigeli.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tiinau.adb b/gcc/ada/libgnat/a-tiinau.adb index 8fe2f75..d09b456 100644 --- a/gcc/ada/libgnat/a-tiinau.adb +++ b/gcc/ada/libgnat/a-tiinau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tiinau.ads b/gcc/ada/libgnat/a-tiinau.ads index fd5ffb4..fda5b68 100644 --- a/gcc/ada/libgnat/a-tiinau.ads +++ b/gcc/ada/libgnat/a-tiinau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tiinio.adb b/gcc/ada/libgnat/a-tiinio.adb index a62f925..c71b4bf 100644 --- a/gcc/ada/libgnat/a-tiinio.adb +++ b/gcc/ada/libgnat/a-tiinio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tiinio.ads b/gcc/ada/libgnat/a-tiinio.ads index 28f8d54..2998764 100644 --- a/gcc/ada/libgnat/a-tiinio.ads +++ b/gcc/ada/libgnat/a-tiinio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-timoau.adb b/gcc/ada/libgnat/a-timoau.adb index d42a18c..050b9c8 100644 --- a/gcc/ada/libgnat/a-timoau.adb +++ b/gcc/ada/libgnat/a-timoau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-timoau.ads b/gcc/ada/libgnat/a-timoau.ads index 973fb75..247eb14 100644 --- a/gcc/ada/libgnat/a-timoau.ads +++ b/gcc/ada/libgnat/a-timoau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-timoio.adb b/gcc/ada/libgnat/a-timoio.adb index d6e9c95..0cdeef1 100644 --- a/gcc/ada/libgnat/a-timoio.adb +++ b/gcc/ada/libgnat/a-timoio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-timoio.ads b/gcc/ada/libgnat/a-timoio.ads index 2d1ab91..aa1de6b 100644 --- a/gcc/ada/libgnat/a-timoio.ads +++ b/gcc/ada/libgnat/a-timoio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1993-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1993-2020, 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 -- diff --git a/gcc/ada/libgnat/a-tiocst.adb b/gcc/ada/libgnat/a-tiocst.adb index 0051235..aea0995 100644 --- a/gcc/ada/libgnat/a-tiocst.adb +++ b/gcc/ada/libgnat/a-tiocst.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tiocst.ads b/gcc/ada/libgnat/a-tiocst.ads index 0f678dd..0f4f8a5 100644 --- a/gcc/ada/libgnat/a-tiocst.ads +++ b/gcc/ada/libgnat/a-tiocst.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tirsfi.adb b/gcc/ada/libgnat/a-tirsfi.adb index 4fe3bc7..a5d217c 100644 --- a/gcc/ada/libgnat/a-tirsfi.adb +++ b/gcc/ada/libgnat/a-tirsfi.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/a-tirsfi.ads b/gcc/ada/libgnat/a-tirsfi.ads index 2ce7e59..e3f8caa 100644 --- a/gcc/ada/libgnat/a-tirsfi.ads +++ b/gcc/ada/libgnat/a-tirsfi.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/a-titest.adb b/gcc/ada/libgnat/a-titest.adb index 3d03981..e0d13dc 100644 --- a/gcc/ada/libgnat/a-titest.adb +++ b/gcc/ada/libgnat/a-titest.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-undesu.adb b/gcc/ada/libgnat/a-undesu.adb index 5bcbd00..8fd8a77 100644 --- a/gcc/ada/libgnat/a-undesu.adb +++ b/gcc/ada/libgnat/a-undesu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wichha.adb b/gcc/ada/libgnat/a-wichha.adb index 3c01a2d..feccc23 100644 --- a/gcc/ada/libgnat/a-wichha.adb +++ b/gcc/ada/libgnat/a-wichha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- @@ -51,6 +51,13 @@ package body Ada.Wide_Characters.Handling is return Is_Letter (Item) or else Is_Digit (Item); end Is_Alphanumeric; + -------------- + -- Is_Basic -- + -------------- + + function Is_Basic (Item : Wide_Character) return Boolean + renames Ada.Wide_Characters.Unicode.Is_Basic; + ---------------- -- Is_Control -- ---------------- @@ -117,6 +124,13 @@ package body Ada.Wide_Characters.Handling is function Is_Mark (Item : Wide_Character) return Boolean renames Ada.Wide_Characters.Unicode.Is_Mark; + ------------- + -- Is_NFKC -- + ------------- + + function Is_NFKC (Item : Wide_Character) return Boolean + renames Ada.Wide_Characters.Unicode.Is_NFKC; + --------------------- -- Is_Other_Format -- --------------------- @@ -192,4 +206,22 @@ package body Ada.Wide_Characters.Handling is return Result; end To_Upper; + -------------- + -- To_Basic -- + -------------- + + function To_Basic (Item : Wide_Character) return Wide_Character + renames Ada.Wide_Characters.Unicode.To_Basic; + + function To_Basic (Item : Wide_String) return Wide_String is + Result : Wide_String (Item'Range); + + begin + for J in Result'Range loop + Result (J) := To_Basic (Item (J)); + end loop; + + return Result; + end To_Basic; + end Ada.Wide_Characters.Handling; diff --git a/gcc/ada/libgnat/a-wichha.ads b/gcc/ada/libgnat/a-wichha.ads index a906e02..23eb468 100644 --- a/gcc/ada/libgnat/a-wichha.ads +++ b/gcc/ada/libgnat/a-wichha.ads @@ -43,6 +43,12 @@ package Ada.Wide_Characters.Handling is -- Returns True if the Wide_Character designated by Item is categorized as -- letter_uppercase, otherwise returns False. + function Is_Basic (Item : Wide_Character) return Boolean; + pragma Inline (Is_Basic); + -- Returns True if the Wide_Character designated by Item has no + -- Decomposition Mapping in the code charts of ISO/IEC 10646:2017, + -- otherwise returns False. + function Is_Digit (Item : Wide_Character) return Boolean; pragma Inline (Is_Digit); -- Returns True if the Wide_Character designated by Item is categorized as @@ -95,6 +101,12 @@ package Ada.Wide_Characters.Handling is -- Returns True if the Wide_Character designated by Item is categorized as -- separator_space, otherwise returns False. + function Is_NFKC (Item : Wide_Character) return Boolean; + pragma Inline (Is_NFKC); + -- Returns True if the Wide_Character designated by Item could be present + -- in a string normalized to Normalization Form KC (as defined by Clause + -- 21 of ISO/IEC 10646:2017), otherwise returns False. + function Is_Graphic (Item : Wide_Character) return Boolean; pragma Inline (Is_Graphic); -- Returns True if the Wide_Character designated by Item is categorized as @@ -124,4 +136,16 @@ package Ada.Wide_Characters.Handling is -- by Item. The result is the null Wide_String if the value of the formal -- parameter is the null Wide_String. + function To_Basic (Item : Wide_Character) return Wide_Character; + pragma Inline (To_Basic); + -- Returns the Wide_Character whose code point is given by the first value + -- of its Decomposition Mapping in the code charts of ISO/IEC 10646:2017 if + -- any, returns Item otherwise. + + function To_Basic (Item : Wide_String) return Wide_String; + -- Returns the result of applying the To_Basic conversion to each + -- Wide_Character element of the Wide_String designated by Item. The result + -- is the null Wide_String if the value of the formal parameter is the null + -- Wide_String. The lower bound of the result Wide_String is 1. + end Ada.Wide_Characters.Handling; diff --git a/gcc/ada/libgnat/a-wichun.adb b/gcc/ada/libgnat/a-wichun.adb index 75880ab..09cbad2 100644 --- a/gcc/ada/libgnat/a-wichun.adb +++ b/gcc/ada/libgnat/a-wichun.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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- -- @@ -43,6 +43,15 @@ package body Ada.Wide_Characters.Unicode is end Get_Category; -------------- + -- Is_Basic -- + -------------- + + function Is_Basic (U : Wide_Character) return Boolean is + begin + return G.Is_UTF_32_Basic (Wide_Character'Pos (U)); + end Is_Basic; + + -------------- -- Is_Digit -- -------------- @@ -107,6 +116,15 @@ package body Ada.Wide_Characters.Unicode is return G.Is_UTF_32_Non_Graphic (G.Category (C)); end Is_Non_Graphic; + ------------- + -- Is_NFKC -- + ------------- + + function Is_NFKC (U : Wide_Character) return Boolean is + begin + return G.Is_UTF_32_NFKC (Wide_Character'Pos (U)); + end Is_NFKC; + -------------- -- Is_Other -- -------------- @@ -149,26 +167,30 @@ package body Ada.Wide_Characters.Unicode is return G.Is_UTF_32_Space (G.Category (C)); end Is_Space; + -------------- + -- To_Basic -- + -------------- + + function To_Basic (U : Wide_Character) return Wide_Character is + begin + return Wide_Character'Val (G.UTF_32_To_Basic (Wide_Character'Pos (U))); + end To_Basic; + ------------------- -- To_Lower_Case -- ------------------- - function To_Lower_Case - (U : Wide_Character) return Wide_Character - is + function To_Lower_Case (U : Wide_Character) return Wide_Character is begin return - Wide_Character'Val - (G.UTF_32_To_Lower_Case (Wide_Character'Pos (U))); + Wide_Character'Val (G.UTF_32_To_Lower_Case (Wide_Character'Pos (U))); end To_Lower_Case; ------------------- -- To_Upper_Case -- ------------------- - function To_Upper_Case - (U : Wide_Character) return Wide_Character - is + function To_Upper_Case (U : Wide_Character) return Wide_Character is begin return Wide_Character'Val diff --git a/gcc/ada/libgnat/a-wichun.ads b/gcc/ada/libgnat/a-wichun.ads index 7a9f597..9e42749 100644 --- a/gcc/ada/libgnat/a-wichun.ads +++ b/gcc/ada/libgnat/a-wichun.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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- -- @@ -131,7 +131,7 @@ package Ada.Wide_Characters.Unicode is pragma Inline (Is_Other); -- Returns true iff U is an other format character, which means that it -- can be used to extend an identifier, but is ignored for the purposes of - -- matching of identiers, or if C is one of the corresponding categories, + -- matching of identifiers, or if C is one of the corresponding categories, -- which are the following: -- Other, Format (Cf) @@ -150,6 +150,12 @@ package Ada.Wide_Characters.Unicode is -- of the corresponding categories, which are the following: -- Separator, Space (Zs) + function Is_NFKC (U : Wide_Character) return Boolean; + pragma Inline (Is_NFKC); + -- Returns True if the Wide_Character designated by U could be present + -- in a string normalized to Normalization Form KC (as defined by Clause + -- 21 of ISO/IEC 10646:2017), otherwise returns False. + function Is_Non_Graphic (U : Wide_Character) return Boolean; function Is_Non_Graphic (C : Category) return Boolean; pragma Inline (Is_Non_Graphic); @@ -174,6 +180,18 @@ package Ada.Wide_Characters.Unicode is -- in the list of categories above. This means that these characters can -- be included in character and string literals. + function Is_Basic (U : Wide_Character) return Boolean; + pragma Inline (Is_Basic); + -- Returns True if the Wide_Character designated by Item has no + -- Decomposition Mapping in the code charts of ISO/IEC 10646:2017, + -- otherwise returns False. + + function To_Basic (U : Wide_Character) return Wide_Character; + pragma Inline (To_Basic); + -- Returns the Wide_Character whose code point is given by the first value + -- of its Decomposition Mapping in the code charts of ISO/IEC 10646:2017 if + -- any, returns Item otherwise. + -- The following function is used to fold to upper case, as required by -- the Ada 2005 standard rules for identifier case folding. Two -- identifiers are equivalent if they are identical after folding all diff --git a/gcc/ada/libgnat/a-witeio.adb b/gcc/ada/libgnat/a-witeio.adb index ef97f3d..6bc3f48 100644 --- a/gcc/ada/libgnat/a-witeio.adb +++ b/gcc/ada/libgnat/a-witeio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-witeio.ads b/gcc/ada/libgnat/a-witeio.ads index c34f290..9dcfda0 100644 --- a/gcc/ada/libgnat/a-witeio.ads +++ b/gcc/ada/libgnat/a-witeio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-wrstfi.adb b/gcc/ada/libgnat/a-wrstfi.adb index 7c5f460..95e66ba 100644 --- a/gcc/ada/libgnat/a-wrstfi.adb +++ b/gcc/ada/libgnat/a-wrstfi.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wrstfi.ads b/gcc/ada/libgnat/a-wrstfi.ads index fdd40c6..e8bf4d1 100644 --- a/gcc/ada/libgnat/a-wrstfi.ads +++ b/gcc/ada/libgnat/a-wrstfi.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtcoau.adb b/gcc/ada/libgnat/a-wtcoau.adb index cf5946f..a60336b 100644 --- a/gcc/ada/libgnat/a-wtcoau.adb +++ b/gcc/ada/libgnat/a-wtcoau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtcoau.ads b/gcc/ada/libgnat/a-wtcoau.ads index af75a99..781dd8d 100644 --- a/gcc/ada/libgnat/a-wtcoau.ads +++ b/gcc/ada/libgnat/a-wtcoau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtcoio.adb b/gcc/ada/libgnat/a-wtcoio.adb index 228d66a..c1c3b94 100644 --- a/gcc/ada/libgnat/a-wtcoio.adb +++ b/gcc/ada/libgnat/a-wtcoio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtcstr.adb b/gcc/ada/libgnat/a-wtcstr.adb index ddcc8f3..c039677 100644 --- a/gcc/ada/libgnat/a-wtcstr.adb +++ b/gcc/ada/libgnat/a-wtcstr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtcstr.ads b/gcc/ada/libgnat/a-wtcstr.ads index 73b5ecc..414a5e9 100644 --- a/gcc/ada/libgnat/a-wtcstr.ads +++ b/gcc/ada/libgnat/a-wtcstr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtdeau.adb b/gcc/ada/libgnat/a-wtdeau.adb index 36b9a71..7bfc613 100644 --- a/gcc/ada/libgnat/a-wtdeau.adb +++ b/gcc/ada/libgnat/a-wtdeau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtdeau.ads b/gcc/ada/libgnat/a-wtdeau.ads index a3dcaa9..0465455 100644 --- a/gcc/ada/libgnat/a-wtdeau.ads +++ b/gcc/ada/libgnat/a-wtdeau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtdeio.adb b/gcc/ada/libgnat/a-wtdeio.adb index 5d2f91d..845a217 100644 --- a/gcc/ada/libgnat/a-wtdeio.adb +++ b/gcc/ada/libgnat/a-wtdeio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtedit.adb b/gcc/ada/libgnat/a-wtedit.adb index 42cecb7..e8a4b57 100644 --- a/gcc/ada/libgnat/a-wtedit.adb +++ b/gcc/ada/libgnat/a-wtedit.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtedit.ads b/gcc/ada/libgnat/a-wtedit.ads index b0e1c7e..4d74578 100644 --- a/gcc/ada/libgnat/a-wtedit.ads +++ b/gcc/ada/libgnat/a-wtedit.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-wtenau.adb b/gcc/ada/libgnat/a-wtenau.adb index 939d5a4..3fb6f76 100644 --- a/gcc/ada/libgnat/a-wtenau.adb +++ b/gcc/ada/libgnat/a-wtenau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtenau.ads b/gcc/ada/libgnat/a-wtenau.ads index efa09a2..b9b7566 100644 --- a/gcc/ada/libgnat/a-wtenau.ads +++ b/gcc/ada/libgnat/a-wtenau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtenio.adb b/gcc/ada/libgnat/a-wtenio.adb index e9ec829..ee500f9 100644 --- a/gcc/ada/libgnat/a-wtenio.adb +++ b/gcc/ada/libgnat/a-wtenio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtfiio.adb b/gcc/ada/libgnat/a-wtfiio.adb index c9e7a38..f70c8e4 100644 --- a/gcc/ada/libgnat/a-wtfiio.adb +++ b/gcc/ada/libgnat/a-wtfiio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtflau.adb b/gcc/ada/libgnat/a-wtflau.adb index 0011e52..fd9ff1a 100644 --- a/gcc/ada/libgnat/a-wtflau.adb +++ b/gcc/ada/libgnat/a-wtflau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtflau.ads b/gcc/ada/libgnat/a-wtflau.ads index db1032c..3598f77 100644 --- a/gcc/ada/libgnat/a-wtflau.ads +++ b/gcc/ada/libgnat/a-wtflau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtflio.adb b/gcc/ada/libgnat/a-wtflio.adb index 98542e3..5a36d88 100644 --- a/gcc/ada/libgnat/a-wtflio.adb +++ b/gcc/ada/libgnat/a-wtflio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtgeau.adb b/gcc/ada/libgnat/a-wtgeau.adb index f271daf..45eef92 100644 --- a/gcc/ada/libgnat/a-wtgeau.adb +++ b/gcc/ada/libgnat/a-wtgeau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtgeau.ads b/gcc/ada/libgnat/a-wtgeau.ads index fa9b2e2..ba8509b 100644 --- a/gcc/ada/libgnat/a-wtgeau.ads +++ b/gcc/ada/libgnat/a-wtgeau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtinau.adb b/gcc/ada/libgnat/a-wtinau.adb index 1fe968e..53e8163 100644 --- a/gcc/ada/libgnat/a-wtinau.adb +++ b/gcc/ada/libgnat/a-wtinau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtinau.ads b/gcc/ada/libgnat/a-wtinau.ads index bec6e03..691a877 100644 --- a/gcc/ada/libgnat/a-wtinau.ads +++ b/gcc/ada/libgnat/a-wtinau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtinio.adb b/gcc/ada/libgnat/a-wtinio.adb index cb0dde0..bc03227 100644 --- a/gcc/ada/libgnat/a-wtinio.adb +++ b/gcc/ada/libgnat/a-wtinio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtmoau.adb b/gcc/ada/libgnat/a-wtmoau.adb index 12dd532..9039798 100644 --- a/gcc/ada/libgnat/a-wtmoau.adb +++ b/gcc/ada/libgnat/a-wtmoau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtmoau.ads b/gcc/ada/libgnat/a-wtmoau.ads index e89bb5b..9fe444e 100644 --- a/gcc/ada/libgnat/a-wtmoau.ads +++ b/gcc/ada/libgnat/a-wtmoau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtmoio.adb b/gcc/ada/libgnat/a-wtmoio.adb index ec82562..629f95d 100644 --- a/gcc/ada/libgnat/a-wtmoio.adb +++ b/gcc/ada/libgnat/a-wtmoio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wtmoio.ads b/gcc/ada/libgnat/a-wtmoio.ads index 68f7ff7..b28aacd 100644 --- a/gcc/ada/libgnat/a-wtmoio.ads +++ b/gcc/ada/libgnat/a-wtmoio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, Free Software Foundation, Inc. -- -- -- -- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- diff --git a/gcc/ada/libgnat/a-wttest.adb b/gcc/ada/libgnat/a-wttest.adb index cf5f0d9..01b6688 100644 --- a/gcc/ada/libgnat/a-wttest.adb +++ b/gcc/ada/libgnat/a-wttest.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-wwboio.adb b/gcc/ada/libgnat/a-wwboio.adb index 7b73357..4602596 100644 --- a/gcc/ada/libgnat/a-wwboio.adb +++ b/gcc/ada/libgnat/a-wwboio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/a-zchhan.adb b/gcc/ada/libgnat/a-zchhan.adb index 7acd07d..6930121 100644 --- a/gcc/ada/libgnat/a-zchhan.adb +++ b/gcc/ada/libgnat/a-zchhan.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- @@ -108,6 +108,13 @@ package body Ada.Wide_Wide_Characters.Handling is function Is_Mark (Item : Wide_Wide_Character) return Boolean renames Ada.Wide_Wide_Characters.Unicode.Is_Mark; + ------------- + -- Is_NFKC -- + ------------- + + function Is_NFKC (Item : Wide_Wide_Character) return Boolean + renames Ada.Wide_Wide_Characters.Unicode.Is_NFKC; + --------------------- -- Is_Other_Format -- --------------------- diff --git a/gcc/ada/libgnat/a-zchhan.ads b/gcc/ada/libgnat/a-zchhan.ads index 354452b..74fab2a 100644 --- a/gcc/ada/libgnat/a-zchhan.ads +++ b/gcc/ada/libgnat/a-zchhan.ads @@ -98,6 +98,12 @@ package Ada.Wide_Wide_Characters.Handling is -- Returns True if the Wide_Wide_Character designated by Item is -- categorized as separator_space, otherwise returns false. + function Is_NFKC (Item : Wide_Wide_Character) return Boolean; + pragma Inline (Is_NFKC); + -- Returns True if the Wide_Wide_Character designated by Item could be + -- present in a string normalized to Normalization Form KC (as defined by + -- Clause 21 of ISO/IEC 10646:2017), otherwise returns False. + function Is_Graphic (Item : Wide_Wide_Character) return Boolean; pragma Inline (Is_Graphic); -- Returns True if the Wide_Wide_Character designated by Item is diff --git a/gcc/ada/libgnat/a-zchuni.adb b/gcc/ada/libgnat/a-zchuni.adb index e938156..203c3aa 100644 --- a/gcc/ada/libgnat/a-zchuni.adb +++ b/gcc/ada/libgnat/a-zchuni.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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- -- @@ -107,6 +107,15 @@ package body Ada.Wide_Wide_Characters.Unicode is return G.Is_UTF_32_Non_Graphic (G.Category (C)); end Is_Non_Graphic; + ------------- + -- Is_NFKC -- + ------------- + + function Is_NFKC (U : Wide_Wide_Character) return Boolean is + begin + return G.Is_UTF_32_NFKC (Wide_Wide_Character'Pos (U)); + end Is_NFKC; + -------------- -- Is_Other -- -------------- diff --git a/gcc/ada/libgnat/a-zchuni.ads b/gcc/ada/libgnat/a-zchuni.ads index 9b18702..7f4a30b 100644 --- a/gcc/ada/libgnat/a-zchuni.ads +++ b/gcc/ada/libgnat/a-zchuni.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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- -- @@ -147,6 +147,12 @@ package Ada.Wide_Wide_Characters.Unicode is -- of the corresponding categories, which are the following: -- Separator, Space (Zs) + function Is_NFKC (U : Wide_Wide_Character) return Boolean; + pragma Inline (Is_NFKC); + -- Returns True if the Wide_Wide_Character designated by U could be present + -- in a string normalized to Normalization Form KC (as defined by Clause + -- 21 of ISO/IEC 10646:2017), otherwise returns False. + function Is_Non_Graphic (U : Wide_Wide_Character) return Boolean; function Is_Non_Graphic (C : Category) return Boolean; pragma Inline (Is_Non_Graphic); diff --git a/gcc/ada/libgnat/a-zrstfi.adb b/gcc/ada/libgnat/a-zrstfi.adb index e38be0a..aa73032 100644 --- a/gcc/ada/libgnat/a-zrstfi.adb +++ b/gcc/ada/libgnat/a-zrstfi.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/a-zrstfi.ads b/gcc/ada/libgnat/a-zrstfi.ads index 6b6b4f8..86a6fc5 100644 --- a/gcc/ada/libgnat/a-zrstfi.ads +++ b/gcc/ada/libgnat/a-zrstfi.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztcoau.adb b/gcc/ada/libgnat/a-ztcoau.adb index d160957..ffe0a90 100644 --- a/gcc/ada/libgnat/a-ztcoau.adb +++ b/gcc/ada/libgnat/a-ztcoau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztcoio.adb b/gcc/ada/libgnat/a-ztcoio.adb index 7d1f103..ead1234 100644 --- a/gcc/ada/libgnat/a-ztcoio.adb +++ b/gcc/ada/libgnat/a-ztcoio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztcstr.adb b/gcc/ada/libgnat/a-ztcstr.adb index 114a2f4..8ce9d66 100644 --- a/gcc/ada/libgnat/a-ztcstr.adb +++ b/gcc/ada/libgnat/a-ztcstr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztcstr.ads b/gcc/ada/libgnat/a-ztcstr.ads index 2405a8e..80c30fc 100644 --- a/gcc/ada/libgnat/a-ztcstr.ads +++ b/gcc/ada/libgnat/a-ztcstr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztdeau.adb b/gcc/ada/libgnat/a-ztdeau.adb index 684fdd3..3daff0f 100644 --- a/gcc/ada/libgnat/a-ztdeau.adb +++ b/gcc/ada/libgnat/a-ztdeau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztdeau.ads b/gcc/ada/libgnat/a-ztdeau.ads index 412e1a0..b493b80 100644 --- a/gcc/ada/libgnat/a-ztdeau.ads +++ b/gcc/ada/libgnat/a-ztdeau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztdeio.adb b/gcc/ada/libgnat/a-ztdeio.adb index 8e0dce2..3655386 100644 --- a/gcc/ada/libgnat/a-ztdeio.adb +++ b/gcc/ada/libgnat/a-ztdeio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztedit.adb b/gcc/ada/libgnat/a-ztedit.adb index 328dc74..a23074d 100644 --- a/gcc/ada/libgnat/a-ztedit.adb +++ b/gcc/ada/libgnat/a-ztedit.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztedit.ads b/gcc/ada/libgnat/a-ztedit.ads index 4d18e86..54cd24a 100644 --- a/gcc/ada/libgnat/a-ztedit.ads +++ b/gcc/ada/libgnat/a-ztedit.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-ztenau.adb b/gcc/ada/libgnat/a-ztenau.adb index e9f8461..f985d52d 100644 --- a/gcc/ada/libgnat/a-ztenau.adb +++ b/gcc/ada/libgnat/a-ztenau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztenau.ads b/gcc/ada/libgnat/a-ztenau.ads index 9148029..dd31182 100644 --- a/gcc/ada/libgnat/a-ztenau.ads +++ b/gcc/ada/libgnat/a-ztenau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztenio.adb b/gcc/ada/libgnat/a-ztenio.adb index 202e198..5a61874 100644 --- a/gcc/ada/libgnat/a-ztenio.adb +++ b/gcc/ada/libgnat/a-ztenio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztexio.adb b/gcc/ada/libgnat/a-ztexio.adb index 0a4c7a8..dcd6f9e 100644 --- a/gcc/ada/libgnat/a-ztexio.adb +++ b/gcc/ada/libgnat/a-ztexio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztexio.ads b/gcc/ada/libgnat/a-ztexio.ads index e16a175..85ea6b5 100644 --- a/gcc/ada/libgnat/a-ztexio.ads +++ b/gcc/ada/libgnat/a-ztexio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/a-ztfiio.adb b/gcc/ada/libgnat/a-ztfiio.adb index 3451197..7c0c95d 100644 --- a/gcc/ada/libgnat/a-ztfiio.adb +++ b/gcc/ada/libgnat/a-ztfiio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztflau.adb b/gcc/ada/libgnat/a-ztflau.adb index c71bcaf..c0c55ba 100644 --- a/gcc/ada/libgnat/a-ztflau.adb +++ b/gcc/ada/libgnat/a-ztflau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztflau.ads b/gcc/ada/libgnat/a-ztflau.ads index 825cb95..dc24682 100644 --- a/gcc/ada/libgnat/a-ztflau.ads +++ b/gcc/ada/libgnat/a-ztflau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztflio.adb b/gcc/ada/libgnat/a-ztflio.adb index 8d16ffc..fd6bf52 100644 --- a/gcc/ada/libgnat/a-ztflio.adb +++ b/gcc/ada/libgnat/a-ztflio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztgeau.adb b/gcc/ada/libgnat/a-ztgeau.adb index 02ee1bf..dbd8926 100644 --- a/gcc/ada/libgnat/a-ztgeau.adb +++ b/gcc/ada/libgnat/a-ztgeau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztgeau.ads b/gcc/ada/libgnat/a-ztgeau.ads index 2b3ee11..2c5c306 100644 --- a/gcc/ada/libgnat/a-ztgeau.ads +++ b/gcc/ada/libgnat/a-ztgeau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztinau.adb b/gcc/ada/libgnat/a-ztinau.adb index a39056b..e7e290e 100644 --- a/gcc/ada/libgnat/a-ztinau.adb +++ b/gcc/ada/libgnat/a-ztinau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztinau.ads b/gcc/ada/libgnat/a-ztinau.ads index ea01d11..49eb3c5 100644 --- a/gcc/ada/libgnat/a-ztinau.ads +++ b/gcc/ada/libgnat/a-ztinau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztinio.adb b/gcc/ada/libgnat/a-ztinio.adb index 9607cb1..c0726ce 100644 --- a/gcc/ada/libgnat/a-ztinio.adb +++ b/gcc/ada/libgnat/a-ztinio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztmoau.adb b/gcc/ada/libgnat/a-ztmoau.adb index 1cc2a24..2f179e2 100644 --- a/gcc/ada/libgnat/a-ztmoau.adb +++ b/gcc/ada/libgnat/a-ztmoau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztmoau.ads b/gcc/ada/libgnat/a-ztmoau.ads index 46454ff..9d53154 100644 --- a/gcc/ada/libgnat/a-ztmoau.ads +++ b/gcc/ada/libgnat/a-ztmoau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-ztmoio.adb b/gcc/ada/libgnat/a-ztmoio.adb index 1675c4f..bf9d42b 100644 --- a/gcc/ada/libgnat/a-ztmoio.adb +++ b/gcc/ada/libgnat/a-ztmoio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-zttest.adb b/gcc/ada/libgnat/a-zttest.adb index fee4974..71004bb 100644 --- a/gcc/ada/libgnat/a-zttest.adb +++ b/gcc/ada/libgnat/a-zttest.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/a-zzboio.adb b/gcc/ada/libgnat/a-zzboio.adb index 5b22b72..a41aadc 100644 --- a/gcc/ada/libgnat/a-zzboio.adb +++ b/gcc/ada/libgnat/a-zzboio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/g-allein.ads b/gcc/ada/libgnat/g-allein.ads index a29fc67..ab23380 100644 --- a/gcc/ada/libgnat/g-allein.ads +++ b/gcc/ada/libgnat/g-allein.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/g-alleve.adb b/gcc/ada/libgnat/g-alleve.adb index 7bd9194..a3aa5b6 100644 --- a/gcc/ada/libgnat/g-alleve.adb +++ b/gcc/ada/libgnat/g-alleve.adb @@ -7,7 +7,7 @@ -- B o d y -- -- (Soft Binding Version) -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/g-alleve.ads b/gcc/ada/libgnat/g-alleve.ads index 73100f4..3c39b11 100644 --- a/gcc/ada/libgnat/g-alleve.ads +++ b/gcc/ada/libgnat/g-alleve.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (Soft Binding Version) -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/g-alleve__hard.adb b/gcc/ada/libgnat/g-alleve__hard.adb index caf4366..7934091 100644 --- a/gcc/ada/libgnat/g-alleve__hard.adb +++ b/gcc/ada/libgnat/g-alleve__hard.adb @@ -7,7 +7,7 @@ -- B o d y -- -- (Hard Binding Version) -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/g-alleve__hard.ads b/gcc/ada/libgnat/g-alleve__hard.ads index d4306ee..318f72d 100644 --- a/gcc/ada/libgnat/g-alleve__hard.ads +++ b/gcc/ada/libgnat/g-alleve__hard.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (Hard Binding Version) -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/g-altcon.adb b/gcc/ada/libgnat/g-altcon.adb index 9fe4dcc..589ba6c 100644 --- a/gcc/ada/libgnat/g-altcon.adb +++ b/gcc/ada/libgnat/g-altcon.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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- -- diff --git a/gcc/ada/libgnat/g-altcon.ads b/gcc/ada/libgnat/g-altcon.ads index 5a6faed..173d0d0 100644 --- a/gcc/ada/libgnat/g-altcon.ads +++ b/gcc/ada/libgnat/g-altcon.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-altive.ads b/gcc/ada/libgnat/g-altive.ads index a77a60d..455ebe7 100644 --- a/gcc/ada/libgnat/g-altive.ads +++ b/gcc/ada/libgnat/g-altive.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/g-alveop.adb b/gcc/ada/libgnat/g-alveop.adb index cb36031..b889778 100644 --- a/gcc/ada/libgnat/g-alveop.adb +++ b/gcc/ada/libgnat/g-alveop.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/g-alveop.ads b/gcc/ada/libgnat/g-alveop.ads index a7e0f26..644b3c4 100644 --- a/gcc/ada/libgnat/g-alveop.ads +++ b/gcc/ada/libgnat/g-alveop.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/g-alvety.ads b/gcc/ada/libgnat/g-alvety.ads index 0d742fe..66cac0c 100644 --- a/gcc/ada/libgnat/g-alvety.ads +++ b/gcc/ada/libgnat/g-alvety.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/g-alvevi.ads b/gcc/ada/libgnat/g-alvevi.ads index a23c491..adf463c 100644 --- a/gcc/ada/libgnat/g-alvevi.ads +++ b/gcc/ada/libgnat/g-alvevi.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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- -- diff --git a/gcc/ada/libgnat/g-arrspl.adb b/gcc/ada/libgnat/g-arrspl.adb index 119e7c9..e6f0d99 100644 --- a/gcc/ada/libgnat/g-arrspl.adb +++ b/gcc/ada/libgnat/g-arrspl.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/g-arrspl.ads b/gcc/ada/libgnat/g-arrspl.ads index f06a0e2..3383f40 100644 --- a/gcc/ada/libgnat/g-arrspl.ads +++ b/gcc/ada/libgnat/g-arrspl.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/g-awk.adb b/gcc/ada/libgnat/g-awk.adb index 45305e6..cd2031f 100644 --- a/gcc/ada/libgnat/g-awk.adb +++ b/gcc/ada/libgnat/g-awk.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-awk.ads b/gcc/ada/libgnat/g-awk.ads index fc7b3ae..21b008b 100644 --- a/gcc/ada/libgnat/g-awk.ads +++ b/gcc/ada/libgnat/g-awk.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-binenv.adb b/gcc/ada/libgnat/g-binenv.adb index c7dece4..95ef997 100644 --- a/gcc/ada/libgnat/g-binenv.adb +++ b/gcc/ada/libgnat/g-binenv.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2015-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2015-2020, 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- -- diff --git a/gcc/ada/libgnat/g-binenv.ads b/gcc/ada/libgnat/g-binenv.ads index e702ce4..dab454a 100644 --- a/gcc/ada/libgnat/g-binenv.ads +++ b/gcc/ada/libgnat/g-binenv.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2015-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2015-2020, 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- -- diff --git a/gcc/ada/libgnat/g-brapre.ads b/gcc/ada/libgnat/g-brapre.ads index 9b88e35..3559b0a 100644 --- a/gcc/ada/libgnat/g-brapre.ads +++ b/gcc/ada/libgnat/g-brapre.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2019, AdaCore -- +-- Copyright (C) 2019-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-bubsor.adb b/gcc/ada/libgnat/g-bubsor.adb index b59707c..f36c5a9c 100644 --- a/gcc/ada/libgnat/g-bubsor.adb +++ b/gcc/ada/libgnat/g-bubsor.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-bubsor.ads b/gcc/ada/libgnat/g-bubsor.ads index cae1fff..5eeb5dd 100644 --- a/gcc/ada/libgnat/g-bubsor.ads +++ b/gcc/ada/libgnat/g-bubsor.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-busora.adb b/gcc/ada/libgnat/g-busora.adb index e91d4e3..125afee 100644 --- a/gcc/ada/libgnat/g-busora.adb +++ b/gcc/ada/libgnat/g-busora.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-busora.ads b/gcc/ada/libgnat/g-busora.ads index bd87cf5..11a3d75 100644 --- a/gcc/ada/libgnat/g-busora.ads +++ b/gcc/ada/libgnat/g-busora.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-busorg.adb b/gcc/ada/libgnat/g-busorg.adb index 4efe587..543a197 100644 --- a/gcc/ada/libgnat/g-busorg.adb +++ b/gcc/ada/libgnat/g-busorg.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-busorg.ads b/gcc/ada/libgnat/g-busorg.ads index fa13aea..fc6546a 100644 --- a/gcc/ada/libgnat/g-busorg.ads +++ b/gcc/ada/libgnat/g-busorg.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-byorma.adb b/gcc/ada/libgnat/g-byorma.adb index b067240..635f4b4 100644 --- a/gcc/ada/libgnat/g-byorma.adb +++ b/gcc/ada/libgnat/g-byorma.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2006-2019, AdaCore -- +-- Copyright (C) 2006-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-byorma.ads b/gcc/ada/libgnat/g-byorma.ads index e0cc749..ac0d812 100644 --- a/gcc/ada/libgnat/g-byorma.ads +++ b/gcc/ada/libgnat/g-byorma.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2006-2019, AdaCore -- +-- Copyright (C) 2006-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-bytswa.adb b/gcc/ada/libgnat/g-bytswa.adb index e915e58..f34730f 100644 --- a/gcc/ada/libgnat/g-bytswa.adb +++ b/gcc/ada/libgnat/g-bytswa.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2006-2019, AdaCore -- +-- Copyright (C) 2006-2020, AdaCore -- -- -- -- 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- -- @@ -45,7 +45,7 @@ package body GNAT.Byte_Swapping is function Swapped2 (Input : Item) return Item is function As_U16 is new Unchecked_Conversion (Item, U16); function As_Item is new Unchecked_Conversion (U16, Item); - pragma Compile_Time_Error (Item'Max_Size_In_Storage_Elements /= 2, + pragma Compile_Time_Warning (Item'Max_Size_In_Storage_Elements /= 2, "storage size must be 2 bytes"); begin return As_Item (Bswap_16 (As_U16 (Input))); @@ -58,7 +58,7 @@ package body GNAT.Byte_Swapping is function Swapped4 (Input : Item) return Item is function As_U32 is new Unchecked_Conversion (Item, U32); function As_Item is new Unchecked_Conversion (U32, Item); - pragma Compile_Time_Error (Item'Max_Size_In_Storage_Elements /= 4, + pragma Compile_Time_Warning (Item'Max_Size_In_Storage_Elements /= 4, "storage size must be 4 bytes"); begin return As_Item (Bswap_32 (As_U32 (Input))); @@ -71,7 +71,7 @@ package body GNAT.Byte_Swapping is function Swapped8 (Input : Item) return Item is function As_U64 is new Unchecked_Conversion (Item, U64); function As_Item is new Unchecked_Conversion (U64, Item); - pragma Compile_Time_Error (Item'Max_Size_In_Storage_Elements /= 8, + pragma Compile_Time_Warning (Item'Max_Size_In_Storage_Elements /= 8, "storage size must be 8 bytes"); begin return As_Item (Bswap_64 (As_U64 (Input))); diff --git a/gcc/ada/libgnat/g-bytswa.ads b/gcc/ada/libgnat/g-bytswa.ads index a552db7..01d4501 100644 --- a/gcc/ada/libgnat/g-bytswa.ads +++ b/gcc/ada/libgnat/g-bytswa.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2006-2019, AdaCore -- +-- Copyright (C) 2006-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-calend.adb b/gcc/ada/libgnat/g-calend.adb index d1d4b55..55fb181 100644 --- a/gcc/ada/libgnat/g-calend.adb +++ b/gcc/ada/libgnat/g-calend.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- @@ -226,7 +226,8 @@ package body GNAT.Calendar is begin -- Even though the input time zone is UTC (0), the flag Use_TZ will - -- ensure that Split picks up the local time zone. + -- ensure that Split picks up the local time zone. ???But Use_TZ is + -- False below, and anyway, Use_TZ has no effect if Time_Zone is 0. Ada_Calendar_Split (Date => Date, @@ -315,7 +316,8 @@ package body GNAT.Calendar is begin -- Even though the input time zone is UTC (0), the flag Use_TZ will - -- ensure that Split picks up the local time zone. + -- ensure that Split picks up the local time zone. ???But there is no + -- call to Split here. return Ada_Calendar_Time_Of @@ -352,6 +354,9 @@ package body GNAT.Calendar is begin timeval_to_duration (T, sec'Access, usec'Access); + pragma Annotate (CodePeer, Modified, sec); + pragma Annotate (CodePeer, Modified, usec); + return Duration (sec) + Duration (usec) / Micro; end To_Duration; diff --git a/gcc/ada/libgnat/g-calend.ads b/gcc/ada/libgnat/g-calend.ads index 19999af..e153e08 100644 --- a/gcc/ada/libgnat/g-calend.ads +++ b/gcc/ada/libgnat/g-calend.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, 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- -- diff --git a/gcc/ada/libgnat/g-casuti.adb b/gcc/ada/libgnat/g-casuti.adb index 621147f..7baa43a 100644 --- a/gcc/ada/libgnat/g-casuti.adb +++ b/gcc/ada/libgnat/g-casuti.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-casuti.ads b/gcc/ada/libgnat/g-casuti.ads index 9607c35..5468e25 100644 --- a/gcc/ada/libgnat/g-casuti.ads +++ b/gcc/ada/libgnat/g-casuti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-catiio.adb b/gcc/ada/libgnat/g-catiio.adb index dc2fa40..cd2df6a 100644 --- a/gcc/ada/libgnat/g-catiio.adb +++ b/gcc/ada/libgnat/g-catiio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- @@ -29,7 +29,6 @@ -- -- ------------------------------------------------------------------------------ -with Ada.Calendar; use Ada.Calendar; with Ada.Characters.Handling; with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; with Ada.Text_IO; @@ -70,6 +69,14 @@ package body GNAT.Calendar.Time_IO is -- Local Subprograms -- ----------------------- + function Image_Helper + (Date : Ada.Calendar.Time; + Picture : Picture_String; + Time_Zone : Time_Zones.Time_Offset) return String; + -- This is called by the two exported Image functions. It uses the local + -- time zone for its computations, but uses Time_Zone when interpreting the + -- "%:::z" tag. + function Am_Pm (H : Natural) return String; -- Return AM or PM depending on the hour H @@ -93,19 +100,14 @@ package body GNAT.Calendar.Time_IO is Length : Natural := 0) return String; -- As above with N provided in Integer format - procedure Parse_ISO_8861_UTC + procedure Parse_ISO_8601 (Date : String; Time : out Ada.Calendar.Time; Success : out Boolean); -- Subsidiary of function Value. It parses the string Date, interpreted as - -- an ISO 8861 time representation, and returns corresponding Time value. - -- Success is set to False when the string is not a supported ISO 8861 - -- date. The following regular expression defines the supported format: - -- - -- (yyyymmdd | yyyy'-'mm'-'dd)'T'(hhmmss | hh':'mm':'ss) - -- [ ('Z' | ('.' | ',') s{s} | ('+'|'-')hh':'mm) ] - -- - -- Trailing characters (in particular spaces) are not allowed. + -- an ISO 8601 time representation, and returns corresponding Time value. + -- Success is set to False when the string is not a supported ISO 8601 + -- date. -- -- Examples: -- @@ -174,6 +176,10 @@ package body GNAT.Calendar.Time_IO is return Image (Sec_Number (N), Padding, Length); end Image; + ----------- + -- Image -- + ----------- + function Image (N : Sec_Number; Padding : Padding_Mode := Zero; @@ -214,9 +220,46 @@ package body GNAT.Calendar.Time_IO is ----------- function Image + (Date : Ada.Calendar.Time; + Picture : Picture_String; + Time_Zone : Time_Zones.Time_Offset) return String + is + -- We subtract off the local time zone, and add in the requested + -- Time_Zone, and then pass it on to Image_Helper, which uses the + -- local time zone. + + use Time_Zones; + Local_TZ : constant Time_Offset := Local_Time_Offset (Date); + Minute_Offset : constant Integer := Integer (Time_Zone - Local_TZ); + Second_Offset : constant Integer := Minute_Offset * 60; + begin + return Image_Helper + (Date + Duration (Second_Offset), Picture, Time_Zone); + end Image; + + ----------- + -- Image -- + ----------- + + function Image (Date : Ada.Calendar.Time; Picture : Picture_String) return String is + use Time_Zones; + Local_TZ : constant Time_Offset := Local_Time_Offset (Date); + begin + return Image_Helper (Date, Picture, Local_TZ); + end Image; + + ------------------ + -- Image_Helper -- + ------------------ + + function Image_Helper + (Date : Ada.Calendar.Time; + Picture : Picture_String; + Time_Zone : Time_Zones.Time_Offset) return String + is Padding : Padding_Mode := Zero; -- Padding is set for one directive @@ -409,6 +452,43 @@ package body GNAT.Calendar.Time_IO is Image (Minute, Padding, Length => 2) & ':' & Image (Second, Padding, Length => 2); + -- Time zone. Append "+hh", "-hh", "+hh:mm", or "-hh:mm", as + -- appropriate. + + when ':' => + declare + use type Time_Zones.Time_Offset; + TZ_Form : constant Picture_String := "%:::z"; + TZ : constant Natural := Natural (abs Time_Zone); + begin + if P + TZ_Form'Length - 1 <= Picture'Last + and then Picture (P .. P + TZ_Form'Length - 1) = "%:::z" + then + if Time_Zone >= 0 then + Result := Result & "+"; + else + Result := Result & "-"; + end if; + + Result := Result & + Image (Integer (TZ / 60), Padding, Length => 2); + + if TZ mod 60 /= 0 then + Result := Result & ":"; + Result := Result & + Image (TZ mod 60, Padding, Length => 2); + end if; + + P := P + TZ_Form'Length - 2; -- will add 2 below + + -- We do not support any of the other standard GNU + -- time-zone formats (%z, %:z, %::z, %Z). + + else + raise Picture_Error with "unsupported picture format"; + end if; + end; + -- Locale's abbreviated weekday name (Sun..Sat) when 'a' => @@ -535,7 +615,7 @@ package body GNAT.Calendar.Time_IO is end loop; return To_String (Result); - end Image; + end Image_Helper; -------------------------- -- Month_Name_To_Number -- @@ -565,26 +645,29 @@ package body GNAT.Calendar.Time_IO is return Abbrev_Upper_Month_Names'First; end Month_Name_To_Number; - ------------------------ - -- Parse_ISO_8861_UTC -- - ------------------------ + -------------------- + -- Parse_ISO_8601 -- + -------------------- - procedure Parse_ISO_8861_UTC + procedure Parse_ISO_8601 (Date : String; Time : out Ada.Calendar.Time; Success : out Boolean) is + pragma Unsuppress (All_Checks); + -- This is necessary because the run-time library is usually compiled + -- with checks suppressed, and we are relying on constraint checks in + -- this code to catch syntax errors in the Date string (e.g. out of + -- bounds slices). + Index : Positive := Date'First; -- The current character scan index. After a call to Advance, Index -- points to the next character. - End_Of_Source_Reached : exception; - -- An exception used to signal that the scan pointer has reached the - -- end of the source string. - Wrong_Syntax : exception; -- An exception used to signal that the scan pointer has reached an - -- unexpected character in the source string. + -- unexpected character in the source string, or if premature + -- end-of-source was reached. procedure Advance; pragma Inline (Advance); @@ -642,13 +725,12 @@ package body GNAT.Calendar.Time_IO is procedure Advance is begin - -- Signal the end of the source string. This stops a complex scan by - -- bottoming up any recursive calls till control reaches routine Scan - -- which handles the exception. Certain scanning scenarios may handle - -- this exception on their own. + -- Signal the end of the source string. This stops a complex scan + -- by bottoming up any recursive calls till control reaches routine + -- Scan, which handles the exception. if Index > Date'Last then - raise End_Of_Source_Reached; + raise Wrong_Syntax; -- Advance the scan pointer as long as there are characters to scan, -- in other words, the scan pointer has not passed the end of the @@ -767,17 +849,10 @@ package body GNAT.Calendar.Time_IO is begin Advance_Digits (Num_Digits => 1); - while Symbol in '0' .. '9' - and then Index < Date'Length - loop + while Index <= Date'Length and then Symbol in '0' .. '9' loop Advance; end loop; - if Symbol not in '0' .. '9' then - raise Wrong_Syntax; - end if; - - Advance; return Second_Duration'Value ("0." & Date (From .. Index - 1)); end Scan_Subsecond; @@ -804,7 +879,7 @@ package body GNAT.Calendar.Time_IO is -- this exception on their own. if Index > Date'Last then - raise End_Of_Source_Reached; + raise Wrong_Syntax; else return Date (Index); @@ -813,25 +888,29 @@ package body GNAT.Calendar.Time_IO is -- Local variables + use Time_Zones; + Date_Separator : constant Character := '-'; Hour_Separator : constant Character := ':'; - Day : Day_Number; - Month : Month_Number; - Year : Year_Number; - Hour : Hour_Number := 0; - Minute : Minute_Number := 0; - Second : Second_Number := 0; - Subsec : Second_Duration := 0.0; + Day : Day_Number; + Month : Month_Number; + Year : Year_Number; + Hour : Hour_Number := 0; + Minute : Minute_Number := 0; + Second : Second_Number := 0; + Subsec : Second_Duration := 0.0; - Local_Hour : Hour_Number := 0; - Local_Minute : Minute_Number := 0; - Local_Sign : Character := ' '; - Local_Disp : Duration; + Time_Zone_Seen : Boolean := False; + Time_Zone_Offset : Time_Offset; -- Valid only if Time_Zone_Seen Sep_Required : Boolean := False; -- True if a separator is seen (and therefore required after it!) + subtype Sign_Type is Character with Predicate => Sign_Type in '+' | '-'; + + -- Start of processing for Parse_ISO_8601 + begin -- Parse date @@ -856,25 +935,31 @@ package body GNAT.Calendar.Time_IO is Second := Scan_Second; - -- [('Z' | ('.' | ',') s{s} | ('+'|'-')hh:mm)] + -- [ ('.' | ',') s{s} ] if Index <= Date'Last then - - -- Suffix 'Z' just confirms that this is an UTC time. No further - -- action needed. - - if Symbol = 'Z' then - Advance; - -- A decimal fraction shall have at least one digit, and has as -- many digits as supported by the underlying implementation. -- The valid decimal separators are those specified in ISO 31-0, -- i.e. the comma [,] or full stop [.]. Of these, the comma is - -- the preferred separator of ISO-8861. + -- the preferred separator of ISO-8601. - elsif Symbol = ',' or else Symbol = '.' then + if Symbol = ',' or else Symbol = '.' then Advance; -- past decimal separator Subsec := Scan_Subsecond; + end if; + end if; + + -- [ ('Z' | ('+'|'-')hh':'mm) ] + + if Index <= Date'Last then + Time_Zone_Seen := Symbol in 'Z' | Sign_Type; + + -- Suffix 'Z' signifies that this is UTC time (time zone 0) + + if Symbol = 'Z' then + Time_Zone_Offset := 0; + Advance; -- Difference between local time and UTC: It shall be expressed -- as positive (i.e. with the leading plus sign [+]) if the local @@ -884,62 +969,57 @@ package body GNAT.Calendar.Time_IO is -- if the difference between the time scales is exactly an -- integral number of hours. - elsif Symbol = '+' or else Symbol = '-' then - Local_Sign := Symbol; - Advance; - Local_Hour := Scan_Hour; + elsif Symbol in Sign_Type then + declare + Time_Zone_Sign : constant Sign_Type := Symbol; + Time_Zone_Hour : Hour_Number; + Time_Zone_Minute : Minute_Number; + begin + Advance; + Time_Zone_Hour := Scan_Hour; - -- Past ':' + -- Past ':' - if Index < Date'Last and then Symbol = Hour_Separator then - Advance; - Local_Minute := Scan_Minute; - end if; + if Index < Date'Last and then Symbol = Hour_Separator then + Advance; + Time_Zone_Minute := Scan_Minute; + else + Time_Zone_Minute := 0; + end if; + + -- Compute Time_Zone_Offset - -- Compute local displacement + Time_Zone_Offset := + Time_Offset (Time_Zone_Hour * 60 + Time_Zone_Minute); - Local_Disp := Local_Hour * 3600.0 + Local_Minute * 60.0; + case Time_Zone_Sign is + when '+' => null; + when '-' => Time_Zone_Offset := -Time_Zone_Offset; + end case; + end; else raise Wrong_Syntax; end if; end if; end if; - -- Sanity checks. The check on Index ensures that there are no trailing - -- characters. - - if Index /= Date'Length + 1 - or else not Year'Valid - or else not Month'Valid - or else not Day'Valid - or else not Hour'Valid - or else not Minute'Valid - or else not Second'Valid - or else not Subsec'Valid - or else not Local_Hour'Valid - or else not Local_Minute'Valid - then + -- Check for trailing characters + + if Index /= Date'Length + 1 then raise Wrong_Syntax; end if; - -- Compute time without local displacement - - if Local_Sign = ' ' then - Time := Time_Of (Year, Month, Day, Hour, Minute, Second, Subsec); + -- If a time zone was specified, use Ada.Calendar.Formatting.Time_Of, + -- and specify the time zone. Otherwise, call GNAT.Calendar.Time_Of, + -- which uses local time. - -- Compute time with positive local displacement - - elsif Local_Sign = '+' then - Time := - Time_Of (Year, Month, Day, Hour, Minute, Second, Subsec) - - Local_Disp; - - -- Compute time with negative local displacement - - elsif Local_Sign = '-' then - Time := - Time_Of (Year, Month, Day, Hour, Minute, Second, Subsec) + - Local_Disp; + if Time_Zone_Seen then + Time := Ada.Calendar.Formatting.Time_Of + (Year, Month, Day, Hour, Minute, Second, Subsec, + Time_Zone => Time_Zone_Offset); + else + Time := GNAT.Calendar.Time_Of + (Year, Month, Day, Hour, Minute, Second, Subsec); end if; -- Notify that the input string was successfully parsed @@ -947,17 +1027,22 @@ package body GNAT.Calendar.Time_IO is Success := True; exception - when End_Of_Source_Reached - | Wrong_Syntax - => + when Wrong_Syntax | Constraint_Error => + -- If constraint check fails, we want to behave the same as + -- Wrong_Syntax; we want the caller (Value) to try other + -- allowed syntaxes. + Time := + Time_Of (Year_Number'First, Month_Number'First, Day_Number'First); Success := False; - end Parse_ISO_8861_UTC; + end Parse_ISO_8601; ----------- -- Value -- ----------- function Value (Date : String) return Ada.Calendar.Time is + pragma Unsuppress (All_Checks); -- see comment in Parse_ISO_8601 + D : String (1 .. 21); D_Length : constant Natural := Date'Length; @@ -1172,10 +1257,10 @@ package body GNAT.Calendar.Time_IO is -- Start of processing for Value begin - -- Let's try parsing Date as a supported ISO-8861 format. If we do not + -- Let's try parsing Date as a supported ISO-8601 format. If we do not -- succeed, then retry using all the other GNAT supported formats. - Parse_ISO_8861_UTC (Date, Time, Success); + Parse_ISO_8601 (Date, Time, Success); if Success then return Time; @@ -1183,15 +1268,7 @@ package body GNAT.Calendar.Time_IO is -- Length checks - if D_Length /= 8 - and then D_Length /= 10 - and then D_Length /= 11 - and then D_Length /= 12 - and then D_Length /= 17 - and then D_Length /= 19 - and then D_Length /= 20 - and then D_Length /= 21 - then + if D_Length not in 8 | 10 | 11 | 12 | 17 | 19 | 20 | 21 then raise Constraint_Error; end if; @@ -1215,18 +1292,6 @@ package body GNAT.Calendar.Time_IO is Extract_Time (1, Hour, Minute, Second, Check_Space => False); end if; - -- Sanity checks - - if not Year'Valid - or else not Month'Valid - or else not Day'Valid - or else not Hour'Valid - or else not Minute'Valid - or else not Second'Valid - then - raise Constraint_Error; - end if; - return Time_Of (Year, Month, Day, Hour, Minute, Second); end Value; diff --git a/gcc/ada/libgnat/g-catiio.ads b/gcc/ada/libgnat/g-catiio.ads index 272f1ee..6bb9847 100644 --- a/gcc/ada/libgnat/g-catiio.ads +++ b/gcc/ada/libgnat/g-catiio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- @@ -32,6 +32,8 @@ -- This package augments standard Ada.Text_IO with facilities for input -- and output of time values in standardized format. +with Ada.Calendar.Time_Zones; use Ada.Calendar; + package GNAT.Calendar.Time_IO is Picture_Error : exception; @@ -41,7 +43,7 @@ package GNAT.Calendar.Time_IO is -- This is a string to describe date and time output format. The string is -- a set of standard character and special tag that are replaced by the -- corresponding values. It follows the GNU Date specification. Here are - -- the recognized directives : + -- the recognized directives: -- -- % a literal % -- n a newline @@ -60,6 +62,8 @@ package GNAT.Calendar.Time_IO is -- (a nonstandard extension) -- %S second (00..59) -- %T time, 24-hour (hh:mm:ss) + -- %:::z numeric time zone with : to necessary precision + -- (e.g., -04, +05:30) -- -- Date fields: -- @@ -96,8 +100,11 @@ package GNAT.Calendar.Time_IO is -- %e microseconds (6 digits) -- %o nanoseconds (9 digits) + ISO_Time : constant Picture_String; + -- ISO 8601 standard date and time, with time zone. + ISO_Date : constant Picture_String; - -- This format follow the ISO 8601 standard. The format is "YYYY-MM-DD", + -- This format follows the ISO 8601 standard. The format is "YYYY-MM-DD", -- four digits year, month and day number separated by minus. US_Date : constant Picture_String; @@ -115,6 +122,13 @@ package GNAT.Calendar.Time_IO is -- with format Picture. Raise Picture_Error if picture string is null or -- has an incorrect format. + function Image + (Date : Ada.Calendar.Time; + Picture : Picture_String; + Time_Zone : Time_Zones.Time_Offset) return String; + -- Same as previous Image, except it uses the specified time zone instead + -- of the local time zone. + function Value (Date : String) return Ada.Calendar.Time; -- Parse the string Date, interpreted as a time representation in the -- current local time zone, and return the corresponding Time value. The @@ -141,11 +155,15 @@ package GNAT.Calendar.Time_IO is -- mmm dd, yyyy - month spelled out -- dd mmm yyyy - month spelled out -- - -- The following ISO-8861 format expressed as a regular expression is also + -- The following ISO-8601 format expressed as a regular expression is also -- supported: -- -- (yyyymmdd | yyyy'-'mm'-'dd)'T'(hhmmss | hh':'mm':'ss) - -- [ ('Z' | ('.' | ',') s{s} | ('+'|'-')hh':'mm) ] + -- [ ('.' | ',') s{s} ] + -- [ ('Z' | ('+'|'-')hh':'mm) ] + -- Trailing characters (including spaces) are not allowed. + -- In the ISO case, the current time zone is not used; the time zone + -- is as specified in the string, defaulting to UTC. -- -- Examples: -- @@ -161,6 +179,7 @@ package GNAT.Calendar.Time_IO is -- Put Date with format Picture. Raise Picture_Error if bad picture string private + ISO_Time : constant Picture_String := "%Y-%m-%dT%H:%M:%S%:::z"; ISO_Date : constant Picture_String := "%Y-%m-%d"; US_Date : constant Picture_String := "%m/%d/%y"; European_Date : constant Picture_String := "%d/%m/%y"; diff --git a/gcc/ada/libgnat/g-cgi.adb b/gcc/ada/libgnat/g-cgi.adb index 7ac74dcd..495b6dd 100644 --- a/gcc/ada/libgnat/g-cgi.adb +++ b/gcc/ada/libgnat/g-cgi.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-cgi.ads b/gcc/ada/libgnat/g-cgi.ads index 879cf62..4b2b9dc 100644 --- a/gcc/ada/libgnat/g-cgi.ads +++ b/gcc/ada/libgnat/g-cgi.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-cgicoo.adb b/gcc/ada/libgnat/g-cgicoo.adb index a1fca87..0f4444a 100644 --- a/gcc/ada/libgnat/g-cgicoo.adb +++ b/gcc/ada/libgnat/g-cgicoo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-cgicoo.ads b/gcc/ada/libgnat/g-cgicoo.ads index 0d57f46..42b79db 100644 --- a/gcc/ada/libgnat/g-cgicoo.ads +++ b/gcc/ada/libgnat/g-cgicoo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-cgideb.adb b/gcc/ada/libgnat/g-cgideb.adb index c52ccbc4..7ce04a1 100644 --- a/gcc/ada/libgnat/g-cgideb.adb +++ b/gcc/ada/libgnat/g-cgideb.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-cgideb.ads b/gcc/ada/libgnat/g-cgideb.ads index 51f0f71..5ae3bdd 100644 --- a/gcc/ada/libgnat/g-cgideb.ads +++ b/gcc/ada/libgnat/g-cgideb.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-comlin.adb b/gcc/ada/libgnat/g-comlin.adb index ec057a9..0ca82f8 100644 --- a/gcc/ada/libgnat/g-comlin.adb +++ b/gcc/ada/libgnat/g-comlin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, 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- -- @@ -537,6 +537,7 @@ package body GNAT.Command_Line is P : Switch_Parameter_Type; begin + Param := Parameter_None; Index_In_Switches := 0; Switch_Length := 0; diff --git a/gcc/ada/libgnat/g-comlin.ads b/gcc/ada/libgnat/g-comlin.ads index 34feee7..aa25118 100644 --- a/gcc/ada/libgnat/g-comlin.ads +++ b/gcc/ada/libgnat/g-comlin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-comver.adb b/gcc/ada/libgnat/g-comver.adb index d337c24..fbc1469 100644 --- a/gcc/ada/libgnat/g-comver.adb +++ b/gcc/ada/libgnat/g-comver.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, AdaCore -- +-- Copyright (C) 2002-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-comver.ads b/gcc/ada/libgnat/g-comver.ads index c8a9c9c..0b56b78 100644 --- a/gcc/ada/libgnat/g-comver.ads +++ b/gcc/ada/libgnat/g-comver.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, AdaCore -- +-- Copyright (C) 2002-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-cppexc.adb b/gcc/ada/libgnat/g-cppexc.adb index bb8f2b6..691780f 100644 --- a/gcc/ada/libgnat/g-cppexc.adb +++ b/gcc/ada/libgnat/g-cppexc.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2013-2019, AdaCore -- +-- Copyright (C) 2013-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-cppexc.ads b/gcc/ada/libgnat/g-cppexc.ads index 04ee87a..3781c13 100644 --- a/gcc/ada/libgnat/g-cppexc.ads +++ b/gcc/ada/libgnat/g-cppexc.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2013-2019, AdaCore -- +-- Copyright (C) 2013-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-crc32.adb b/gcc/ada/libgnat/g-crc32.adb index 85be42f..3adcf60 100644 --- a/gcc/ada/libgnat/g-crc32.adb +++ b/gcc/ada/libgnat/g-crc32.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-crc32.ads b/gcc/ada/libgnat/g-crc32.ads index e56330e..b3d6005 100644 --- a/gcc/ada/libgnat/g-crc32.ads +++ b/gcc/ada/libgnat/g-crc32.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, AdaCore -- +-- Copyright (C) 2004-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-ctrl_c.adb b/gcc/ada/libgnat/g-ctrl_c.adb index ad14abe..82d66b9 100644 --- a/gcc/ada/libgnat/g-ctrl_c.adb +++ b/gcc/ada/libgnat/g-ctrl_c.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, AdaCore -- +-- Copyright (C) 2002-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-ctrl_c.ads b/gcc/ada/libgnat/g-ctrl_c.ads index ad1a9cf..c3f2cc8 100644 --- a/gcc/ada/libgnat/g-ctrl_c.ads +++ b/gcc/ada/libgnat/g-ctrl_c.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, AdaCore -- +-- Copyright (C) 2002-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-curexc.ads b/gcc/ada/libgnat/g-curexc.ads index 56d89e0..2af5cd8 100644 --- a/gcc/ada/libgnat/g-curexc.ads +++ b/gcc/ada/libgnat/g-curexc.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1996-2019, AdaCore -- +-- Copyright (C) 1996-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-debpoo.adb b/gcc/ada/libgnat/g-debpoo.adb index 52c0c50..b6523ca 100644 --- a/gcc/ada/libgnat/g-debpoo.adb +++ b/gcc/ada/libgnat/g-debpoo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -1420,6 +1420,7 @@ package body GNAT.Debug_Pools is begin Valid := Is_Valid (Storage_Address); + Size_In_Storage_Elements := Storage_Count'First; if Is_Valid (Storage_Address) then declare diff --git a/gcc/ada/libgnat/g-debpoo.ads b/gcc/ada/libgnat/g-debpoo.ads index 6b2f0ab..ed000fa 100644 --- a/gcc/ada/libgnat/g-debpoo.ads +++ b/gcc/ada/libgnat/g-debpoo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/g-debuti.adb b/gcc/ada/libgnat/g-debuti.adb index 07f826a..5b1277d 100644 --- a/gcc/ada/libgnat/g-debuti.adb +++ b/gcc/ada/libgnat/g-debuti.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, AdaCore -- +-- Copyright (C) 1997-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-debuti.ads b/gcc/ada/libgnat/g-debuti.ads index 04be683..dab5131 100644 --- a/gcc/ada/libgnat/g-debuti.ads +++ b/gcc/ada/libgnat/g-debuti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-decstr.adb b/gcc/ada/libgnat/g-decstr.adb index 68755a0..64ae297 100644 --- a/gcc/ada/libgnat/g-decstr.adb +++ b/gcc/ada/libgnat/g-decstr.adb @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-decstr.ads b/gcc/ada/libgnat/g-decstr.ads index 0f3b1f1..9e82b75 100644 --- a/gcc/ada/libgnat/g-decstr.ads +++ b/gcc/ada/libgnat/g-decstr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-deutst.ads b/gcc/ada/libgnat/g-deutst.ads index 5e1009c..e4ae4e19 100644 --- a/gcc/ada/libgnat/g-deutst.ads +++ b/gcc/ada/libgnat/g-deutst.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-diopit.adb b/gcc/ada/libgnat/g-diopit.adb index fb62d4f..50bbf9b 100644 --- a/gcc/ada/libgnat/g-diopit.adb +++ b/gcc/ada/libgnat/g-diopit.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-diopit.ads b/gcc/ada/libgnat/g-diopit.ads index bf3cc3b..aa60d32 100644 --- a/gcc/ada/libgnat/g-diopit.ads +++ b/gcc/ada/libgnat/g-diopit.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-dirope.adb b/gcc/ada/libgnat/g-dirope.adb index 9153c70..3078130 100644 --- a/gcc/ada/libgnat/g-dirope.adb +++ b/gcc/ada/libgnat/g-dirope.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- @@ -352,6 +352,8 @@ package body GNAT.Directory_Operations is begin K := K + 1; + pragma Annotate (CodePeer, Modified, P); + if P = '%' or else Path (K) = '{' then -- Set terminator character diff --git a/gcc/ada/libgnat/g-dirope.ads b/gcc/ada/libgnat/g-dirope.ads index 3747553..03a062f 100644 --- a/gcc/ada/libgnat/g-dirope.ads +++ b/gcc/ada/libgnat/g-dirope.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-dynhta.adb b/gcc/ada/libgnat/g-dynhta.adb index 84dcc30..4c8dda5 100644 --- a/gcc/ada/libgnat/g-dynhta.adb +++ b/gcc/ada/libgnat/g-dynhta.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, AdaCore -- +-- Copyright (C) 2002-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-dynhta.ads b/gcc/ada/libgnat/g-dynhta.ads index 107c4c0..3e4f561 100644 --- a/gcc/ada/libgnat/g-dynhta.ads +++ b/gcc/ada/libgnat/g-dynhta.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-dyntab.adb b/gcc/ada/libgnat/g-dyntab.adb index 1eb0e59..4c53f15 100644 --- a/gcc/ada/libgnat/g-dyntab.adb +++ b/gcc/ada/libgnat/g-dyntab.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-dyntab.ads b/gcc/ada/libgnat/g-dyntab.ads index 6a7b5e3..7a6c9fa 100644 --- a/gcc/ada/libgnat/g-dyntab.ads +++ b/gcc/ada/libgnat/g-dyntab.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-eacodu.adb b/gcc/ada/libgnat/g-eacodu.adb index 6dd77b8..cb07631 100644 --- a/gcc/ada/libgnat/g-eacodu.adb +++ b/gcc/ada/libgnat/g-eacodu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/g-encstr.adb b/gcc/ada/libgnat/g-encstr.adb index b115c8a..62fff77 100644 --- a/gcc/ada/libgnat/g-encstr.adb +++ b/gcc/ada/libgnat/g-encstr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2007-2020, 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- -- diff --git a/gcc/ada/libgnat/g-encstr.ads b/gcc/ada/libgnat/g-encstr.ads index 764710d..0e2fdf4 100644 --- a/gcc/ada/libgnat/g-encstr.ads +++ b/gcc/ada/libgnat/g-encstr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-enutst.ads b/gcc/ada/libgnat/g-enutst.ads index b2696e8..e5b20cf 100644 --- a/gcc/ada/libgnat/g-enutst.ads +++ b/gcc/ada/libgnat/g-enutst.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-excact.adb b/gcc/ada/libgnat/g-excact.adb index acffd93..202d9e2 100644 --- a/gcc/ada/libgnat/g-excact.adb +++ b/gcc/ada/libgnat/g-excact.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- @@ -38,9 +38,19 @@ with System.Exception_Table; use System.Exception_Table; package body GNAT.Exception_Actions is Global_Action : Exception_Action; - pragma Import (C, Global_Action, "__gnat_exception_actions_global_action"); + pragma Import + (Ada, Global_Action, "__gnat_exception_actions_global_action"); + pragma Atomic (Global_Action); -- Imported from Ada.Exceptions. Any change in the external name needs to - -- be coordinated with a-except.adb + -- be coordinated with a-exextr.adb. + + Global_Unhandled_Action : Exception_Action; + pragma Import + (Ada, Global_Unhandled_Action, + "__gnat_exception_actions_global_unhandled_action"); + pragma Atomic (Global_Unhandled_Action); + -- Imported from Ada.Exceptions. Any change in the external name needs to + -- be coordinated with a-exextr.adb. Raise_Hook_Initialized : Boolean; pragma Import @@ -61,11 +71,18 @@ package body GNAT.Exception_Actions is procedure Register_Global_Action (Action : Exception_Action) is begin - Lock_Task.all; Global_Action := Action; - Unlock_Task.all; end Register_Global_Action; + -------------------------------------- + -- Register_Global_Unhandled_Action -- + -------------------------------------- + + procedure Register_Global_Unhandled_Action (Action : Exception_Action) is + begin + Global_Unhandled_Action := Action; + end Register_Global_Unhandled_Action; + ------------------------ -- Register_Id_Action -- ------------------------ diff --git a/gcc/ada/libgnat/g-excact.ads b/gcc/ada/libgnat/g-excact.ads index 92a5329..c38f6a0 100644 --- a/gcc/ada/libgnat/g-excact.ads +++ b/gcc/ada/libgnat/g-excact.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- @@ -57,6 +57,7 @@ package GNAT.Exception_Actions is type Exception_Action is access procedure (Occurrence : Exception_Occurrence); + pragma Favor_Top_Level (Exception_Action); -- General callback type whenever an exception is raised. The callback -- procedure must not propagate an exception (execution of the program -- is erroneous if such an exception is propagated). @@ -69,6 +70,10 @@ package GNAT.Exception_Actions is -- Action is called before the exception is propagated to user's code. -- If Action is null, this will in effect cancel all exception actions. + procedure Register_Global_Unhandled_Action (Action : Exception_Action); + -- Similar to Register_Global_Action, called on unhandled exceptions + -- only. + procedure Register_Id_Action (Id : Exception_Id; Action : Exception_Action); diff --git a/gcc/ada/libgnat/g-except.ads b/gcc/ada/libgnat/g-except.ads index 1af6fca..6d13f5a 100644 --- a/gcc/ada/libgnat/g-except.ads +++ b/gcc/ada/libgnat/g-except.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-exctra.adb b/gcc/ada/libgnat/g-exctra.adb index 371836f..1db76b7 100644 --- a/gcc/ada/libgnat/g-exctra.adb +++ b/gcc/ada/libgnat/g-exctra.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-exctra.ads b/gcc/ada/libgnat/g-exctra.ads index 8e0bdae..3ae90f4 100644 --- a/gcc/ada/libgnat/g-exctra.ads +++ b/gcc/ada/libgnat/g-exctra.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-expect.adb b/gcc/ada/libgnat/g-expect.adb index 4efd98d..78b3c27 100644 --- a/gcc/ada/libgnat/g-expect.adb +++ b/gcc/ada/libgnat/g-expect.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-expect.ads b/gcc/ada/libgnat/g-expect.ads index 77bb579..19e704b 100644 --- a/gcc/ada/libgnat/g-expect.ads +++ b/gcc/ada/libgnat/g-expect.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-exptty.adb b/gcc/ada/libgnat/g-exptty.adb index 758be7a..bc239e4 100644 --- a/gcc/ada/libgnat/g-exptty.adb +++ b/gcc/ada/libgnat/g-exptty.adb @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- @@ -314,9 +314,9 @@ package body GNAT.Expect.TTY is overriding procedure Set_Up_Communications (Pid : in out TTY_Process_Descriptor; Err_To_Out : Boolean; - Pipe1 : access Pipe_Type; - Pipe2 : access Pipe_Type; - Pipe3 : access Pipe_Type) + Pipe1 : not null access Pipe_Type; + Pipe2 : not null access Pipe_Type; + Pipe3 : not null access Pipe_Type) is pragma Unreferenced (Err_To_Out, Pipe1, Pipe2, Pipe3); diff --git a/gcc/ada/libgnat/g-exptty.ads b/gcc/ada/libgnat/g-exptty.ads index 683a453..ede147c 100644 --- a/gcc/ada/libgnat/g-exptty.ads +++ b/gcc/ada/libgnat/g-exptty.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- @@ -116,9 +116,9 @@ private procedure Set_Up_Communications (Pid : in out TTY_Process_Descriptor; Err_To_Out : Boolean; - Pipe1 : access Pipe_Type; - Pipe2 : access Pipe_Type; - Pipe3 : access Pipe_Type); + Pipe1 : not null access Pipe_Type; + Pipe2 : not null access Pipe_Type; + Pipe3 : not null access Pipe_Type); procedure Set_Up_Parent_Communications (Pid : in out TTY_Process_Descriptor; diff --git a/gcc/ada/libgnat/g-flocon.ads b/gcc/ada/libgnat/g-flocon.ads index 5ea17f1..bdc9b0e 100644 --- a/gcc/ada/libgnat/g-flocon.ads +++ b/gcc/ada/libgnat/g-flocon.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-forstr.adb b/gcc/ada/libgnat/g-forstr.adb index 4fb87ec..94492e9 100644 --- a/gcc/ada/libgnat/g-forstr.adb +++ b/gcc/ada/libgnat/g-forstr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2014-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2014-2020, 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- -- diff --git a/gcc/ada/libgnat/g-forstr.ads b/gcc/ada/libgnat/g-forstr.ads index 4dd5be5..9c15845 100644 --- a/gcc/ada/libgnat/g-forstr.ads +++ b/gcc/ada/libgnat/g-forstr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2014-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2014-2020, 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- -- diff --git a/gcc/ada/libgnat/g-graphs.adb b/gcc/ada/libgnat/g-graphs.adb index 1049641..410b6ca 100644 --- a/gcc/ada/libgnat/g-graphs.adb +++ b/gcc/ada/libgnat/g-graphs.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2018-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2018-2020, 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- -- diff --git a/gcc/ada/libgnat/g-graphs.ads b/gcc/ada/libgnat/g-graphs.ads index 3b65522..ec3fbbc 100644 --- a/gcc/ada/libgnat/g-graphs.ads +++ b/gcc/ada/libgnat/g-graphs.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2018-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2018-2020, 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- -- diff --git a/gcc/ada/libgnat/g-heasor.adb b/gcc/ada/libgnat/g-heasor.adb index 00e4108..449cf8d 100644 --- a/gcc/ada/libgnat/g-heasor.adb +++ b/gcc/ada/libgnat/g-heasor.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-heasor.ads b/gcc/ada/libgnat/g-heasor.ads index 4d9dd29..bab0c5b 100644 --- a/gcc/ada/libgnat/g-heasor.ads +++ b/gcc/ada/libgnat/g-heasor.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-hesora.adb b/gcc/ada/libgnat/g-hesora.adb index 0bef033..f4610e2 100644 --- a/gcc/ada/libgnat/g-hesora.adb +++ b/gcc/ada/libgnat/g-hesora.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-hesora.ads b/gcc/ada/libgnat/g-hesora.ads index 0c20479..f7064e4 100644 --- a/gcc/ada/libgnat/g-hesora.ads +++ b/gcc/ada/libgnat/g-hesora.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-hesorg.adb b/gcc/ada/libgnat/g-hesorg.adb index fec6e9c..89de591 100644 --- a/gcc/ada/libgnat/g-hesorg.adb +++ b/gcc/ada/libgnat/g-hesorg.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- @@ -45,6 +45,8 @@ package body GNAT.Heap_Sort_G is -- from 2NlogN to NlogN. procedure Sort (N : Natural) is + pragma Annotate (CodePeer, Skip_Analysis); + -- CodePeer is sometimes getting confused on this procedure Max : Natural := N; -- Current Max index in tree being sifted diff --git a/gcc/ada/libgnat/g-hesorg.ads b/gcc/ada/libgnat/g-hesorg.ads index 7127b68..e2a3b8e 100644 --- a/gcc/ada/libgnat/g-hesorg.ads +++ b/gcc/ada/libgnat/g-hesorg.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-htable.adb b/gcc/ada/libgnat/g-htable.adb index 141fe4e..31bce1d 100644 --- a/gcc/ada/libgnat/g-htable.adb +++ b/gcc/ada/libgnat/g-htable.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-htable.ads b/gcc/ada/libgnat/g-htable.ads index 4849ade..b7c464d 100644 --- a/gcc/ada/libgnat/g-htable.ads +++ b/gcc/ada/libgnat/g-htable.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-io-put__vxworks.adb b/gcc/ada/libgnat/g-io-put__vxworks.adb index 4fef0a1..135e435 100644 --- a/gcc/ada/libgnat/g-io-put__vxworks.adb +++ b/gcc/ada/libgnat/g-io-put__vxworks.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-io.adb b/gcc/ada/libgnat/g-io.adb index bc874b5..c2c1ffa 100644 --- a/gcc/ada/libgnat/g-io.adb +++ b/gcc/ada/libgnat/g-io.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- @@ -47,10 +47,10 @@ package body GNAT.IO is end Get; procedure Get (C : out Character) is - function Get_Char return Character; + function Get_Char return Integer; pragma Import (C, Get_Char, "get_char"); begin - C := Get_Char; + C := Character'Val (Get_Char); end Get; -------------- @@ -121,16 +121,16 @@ package body GNAT.IO is end Put; procedure Put (File : File_Type; C : Character) is - procedure Put_Char (C : Character); + procedure Put_Char (C : Integer); pragma Import (C, Put_Char, "put_char"); - procedure Put_Char_Stderr (C : Character); + procedure Put_Char_Stderr (C : Integer); pragma Import (C, Put_Char_Stderr, "put_char_stderr"); begin case File is - when Stdout => Put_Char (C); - when Stderr => Put_Char_Stderr (C); + when Stdout => Put_Char (Character'Pos (C)); + when Stderr => Put_Char_Stderr (Character'Pos (C)); end case; end Put; diff --git a/gcc/ada/libgnat/g-io.ads b/gcc/ada/libgnat/g-io.ads index 1b0ec06..2ba9362 100644 --- a/gcc/ada/libgnat/g-io.ads +++ b/gcc/ada/libgnat/g-io.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-io_aux.adb b/gcc/ada/libgnat/g-io_aux.adb index daaa364..0590199 100644 --- a/gcc/ada/libgnat/g-io_aux.adb +++ b/gcc/ada/libgnat/g-io_aux.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-io_aux.ads b/gcc/ada/libgnat/g-io_aux.ads index 99e0377..aa9978a 100644 --- a/gcc/ada/libgnat/g-io_aux.ads +++ b/gcc/ada/libgnat/g-io_aux.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-lists.adb b/gcc/ada/libgnat/g-lists.adb index 817274a..e9414e7 100644 --- a/gcc/ada/libgnat/g-lists.adb +++ b/gcc/ada/libgnat/g-lists.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2018-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2018-2020, 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- -- diff --git a/gcc/ada/libgnat/g-lists.ads b/gcc/ada/libgnat/g-lists.ads index fdcaed6..29cda7a 100644 --- a/gcc/ada/libgnat/g-lists.ads +++ b/gcc/ada/libgnat/g-lists.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2018-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2018-2020, 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- -- diff --git a/gcc/ada/libgnat/g-locfil.adb b/gcc/ada/libgnat/g-locfil.adb index c5ffb63..7112704 100644 --- a/gcc/ada/libgnat/g-locfil.adb +++ b/gcc/ada/libgnat/g-locfil.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, 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- -- diff --git a/gcc/ada/libgnat/g-locfil.ads b/gcc/ada/libgnat/g-locfil.ads index 4d05149..4ef4912 100644 --- a/gcc/ada/libgnat/g-locfil.ads +++ b/gcc/ada/libgnat/g-locfil.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-mbdira.adb b/gcc/ada/libgnat/g-mbdira.adb index 80117d2..f89a563 100644 --- a/gcc/ada/libgnat/g-mbdira.adb +++ b/gcc/ada/libgnat/g-mbdira.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/g-mbdira.ads b/gcc/ada/libgnat/g-mbdira.ads index 2893db6..f3d7e5e 100644 --- a/gcc/ada/libgnat/g-mbdira.ads +++ b/gcc/ada/libgnat/g-mbdira.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/g-mbflra.adb b/gcc/ada/libgnat/g-mbflra.adb index a31f143..2e4498d 100644 --- a/gcc/ada/libgnat/g-mbflra.adb +++ b/gcc/ada/libgnat/g-mbflra.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/g-mbflra.ads b/gcc/ada/libgnat/g-mbflra.ads index 2722659..6c65469 100644 --- a/gcc/ada/libgnat/g-mbflra.ads +++ b/gcc/ada/libgnat/g-mbflra.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/g-md5.adb b/gcc/ada/libgnat/g-md5.adb index fa9bb2a..90f2242 100644 --- a/gcc/ada/libgnat/g-md5.adb +++ b/gcc/ada/libgnat/g-md5.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-md5.ads b/gcc/ada/libgnat/g-md5.ads index 75d337e..f599c8b 100644 --- a/gcc/ada/libgnat/g-md5.ads +++ b/gcc/ada/libgnat/g-md5.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-memdum.adb b/gcc/ada/libgnat/g-memdum.adb index a680cab..ffc8d02 100644 --- a/gcc/ada/libgnat/g-memdum.adb +++ b/gcc/ada/libgnat/g-memdum.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2003-2019, AdaCore -- +-- Copyright (C) 2003-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-memdum.ads b/gcc/ada/libgnat/g-memdum.ads index 2cedbf1..cfb9ad9 100644 --- a/gcc/ada/libgnat/g-memdum.ads +++ b/gcc/ada/libgnat/g-memdum.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2003-2019, AdaCore -- +-- Copyright (C) 2003-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-moreex.adb b/gcc/ada/libgnat/g-moreex.adb index 303b4b3..6802b4de 100644 --- a/gcc/ada/libgnat/g-moreex.adb +++ b/gcc/ada/libgnat/g-moreex.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-moreex.ads b/gcc/ada/libgnat/g-moreex.ads index b05706d..15c5c67 100644 --- a/gcc/ada/libgnat/g-moreex.ads +++ b/gcc/ada/libgnat/g-moreex.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-os_lib.adb b/gcc/ada/libgnat/g-os_lib.adb index 56c1197..608f685 100644 --- a/gcc/ada/libgnat/g-os_lib.adb +++ b/gcc/ada/libgnat/g-os_lib.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-os_lib.ads b/gcc/ada/libgnat/g-os_lib.ads index 9796d1e..c178465 100644 --- a/gcc/ada/libgnat/g-os_lib.ads +++ b/gcc/ada/libgnat/g-os_lib.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, 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- -- diff --git a/gcc/ada/libgnat/g-pehage.adb b/gcc/ada/libgnat/g-pehage.adb index 9b88256..a2c25f1 100644 --- a/gcc/ada/libgnat/g-pehage.adb +++ b/gcc/ada/libgnat/g-pehage.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, AdaCore -- +-- Copyright (C) 2002-2020, AdaCore -- -- -- -- 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- -- @@ -622,6 +622,7 @@ package body GNAT.Perfect_Hash_Generators is E := Get_Edges (J); if Get_Graph (E.Y) = -1 then + pragma Assert (NK /= 0); Set_Graph (E.Y, (E.Key - Get_Graph (X)) mod NK); Assign (E.Y); end if; @@ -2201,6 +2202,8 @@ package body GNAT.Perfect_Hash_Generators is -- in the position selection. for J in S'Range loop + pragma Annotate (CodePeer, Modified, S (J)); + if S (J).First = S (J).Last then F := S (J).First; L := S (J).Last; @@ -2359,6 +2362,10 @@ package body GNAT.Perfect_Hash_Generators is for P in 1 .. Last_Sel_Pos - 1 loop if Max_Diff_Sel_Pos < Sel_Position (P) then + pragma Annotate + (CodePeer, False_Positive, + "test always false", "false positive?"); + Sel_Position (P + 1 .. Last_Sel_Pos) := Sel_Position (P .. Last_Sel_Pos - 1); Sel_Position (P) := Max_Diff_Sel_Pos; @@ -2525,6 +2532,7 @@ package body GNAT.Perfect_Hash_Generators is for J in 0 .. T1_Len - 1 loop exit when Word (J + 1) = ASCII.NUL; R := Get_Table (Table, J, Get_Used_Char (Word (J + 1))); + pragma Assert (NV /= 0); S := (S + R) mod NV; end loop; @@ -2532,6 +2540,7 @@ package body GNAT.Perfect_Hash_Generators is for J in 0 .. T1_Len - 1 loop exit when Word (J + 1) = ASCII.NUL; R := Get_Table (Table, J, 0); + pragma Assert (NV /= 0); S := (S + R * Character'Pos (Word (J + 1))) mod NV; end loop; end case; diff --git a/gcc/ada/libgnat/g-pehage.ads b/gcc/ada/libgnat/g-pehage.ads index f9dbc61..814f1cc 100644 --- a/gcc/ada/libgnat/g-pehage.ads +++ b/gcc/ada/libgnat/g-pehage.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, AdaCore -- +-- Copyright (C) 2002-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-rannum.adb b/gcc/ada/libgnat/g-rannum.adb index ed43a71..b7ef7d1 100644 --- a/gcc/ada/libgnat/g-rannum.adb +++ b/gcc/ada/libgnat/g-rannum.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2007-2020, 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- -- diff --git a/gcc/ada/libgnat/g-rannum.ads b/gcc/ada/libgnat/g-rannum.ads index fad5ace..5b633ff 100644 --- a/gcc/ada/libgnat/g-rannum.ads +++ b/gcc/ada/libgnat/g-rannum.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2007-2020, 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- -- diff --git a/gcc/ada/libgnat/g-regexp.adb b/gcc/ada/libgnat/g-regexp.adb index b1e6d1f..3d8b8c7 100644 --- a/gcc/ada/libgnat/g-regexp.adb +++ b/gcc/ada/libgnat/g-regexp.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-regexp.ads b/gcc/ada/libgnat/g-regexp.ads index 162738b..3a21edb 100644 --- a/gcc/ada/libgnat/g-regexp.ads +++ b/gcc/ada/libgnat/g-regexp.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-regist.adb b/gcc/ada/libgnat/g-regist.adb index 283cb05..fa67f0c 100644 --- a/gcc/ada/libgnat/g-regist.adb +++ b/gcc/ada/libgnat/g-regist.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2001-2020, 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- -- diff --git a/gcc/ada/libgnat/g-regist.ads b/gcc/ada/libgnat/g-regist.ads index bb35523..606fa91 100644 --- a/gcc/ada/libgnat/g-regist.ads +++ b/gcc/ada/libgnat/g-regist.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2001-2020, 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- -- diff --git a/gcc/ada/libgnat/g-regpat.adb b/gcc/ada/libgnat/g-regpat.adb index 5244a03..b06214b 100644 --- a/gcc/ada/libgnat/g-regpat.adb +++ b/gcc/ada/libgnat/g-regpat.adb @@ -7,7 +7,7 @@ -- B o d y -- -- -- -- Copyright (C) 1986 by University of Toronto. -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-regpat.ads b/gcc/ada/libgnat/g-regpat.ads index 62fc2e8..c45e722 100644 --- a/gcc/ada/libgnat/g-regpat.ads +++ b/gcc/ada/libgnat/g-regpat.ads @@ -7,7 +7,7 @@ -- S p e c -- -- -- -- Copyright (C) 1986 by University of Toronto. -- --- Copyright (C) 1996-2019, AdaCore -- +-- Copyright (C) 1996-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-rewdat.adb b/gcc/ada/libgnat/g-rewdat.adb index c4906e8..897cac4 100644 --- a/gcc/ada/libgnat/g-rewdat.adb +++ b/gcc/ada/libgnat/g-rewdat.adb @@ -5,7 +5,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2014-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2014-2020, 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- -- diff --git a/gcc/ada/libgnat/g-rewdat.ads b/gcc/ada/libgnat/g-rewdat.ads index 8f7602d..108035f 100644 --- a/gcc/ada/libgnat/g-rewdat.ads +++ b/gcc/ada/libgnat/g-rewdat.ads @@ -5,7 +5,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2014-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2014-2020, 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- -- diff --git a/gcc/ada/libgnat/g-sechas.adb b/gcc/ada/libgnat/g-sechas.adb index edf7d3e..bd97571 100644 --- a/gcc/ada/libgnat/g-sechas.adb +++ b/gcc/ada/libgnat/g-sechas.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- @@ -40,25 +40,25 @@ package body GNAT.Secure_Hashes is type Fill_Buffer_Access is access procedure (M : in out Message_State; - S : String; - First : Natural; - Last : out Natural); - -- A procedure to transfer data from S, starting at First, into M's block + SEA : Stream_Element_Array; + First : Stream_Element_Offset; + Last : out Stream_Element_Offset); + -- A procedure to transfer data from SEA, starting at First, into M's block -- buffer until either the block buffer is full or all data from S has been -- consumed. procedure Fill_Buffer_Copy (M : in out Message_State; - S : String; - First : Natural; - Last : out Natural); + SEA : Stream_Element_Array; + First : Stream_Element_Offset; + Last : out Stream_Element_Offset); -- Transfer procedure which just copies data from S to M procedure Fill_Buffer_Swap (M : in out Message_State; - S : String; - First : Natural; - Last : out Natural); + SEA : Stream_Element_Array; + First : Stream_Element_Offset; + Last : out Stream_Element_Offset); -- Transfer procedure which swaps bytes from S when copying into M. S must -- have even length. Note that the swapping is performed considering pairs -- starting at S'First, even if S'First /= First (that is, if @@ -75,22 +75,23 @@ package body GNAT.Secure_Hashes is procedure Fill_Buffer_Copy (M : in out Message_State; - S : String; - First : Natural; - Last : out Natural) + SEA : Stream_Element_Array; + First : Stream_Element_Offset; + Last : out Stream_Element_Offset) is - Buf_String : String (M.Buffer'Range); - for Buf_String'Address use M.Buffer'Address; - pragma Import (Ada, Buf_String); + Buf_SEA : Stream_Element_Array (M.Buffer'Range); + for Buf_SEA'Address use M.Buffer'Address; + pragma Import (Ada, Buf_SEA); - Length : constant Natural := - Natural'Min (M.Block_Length - M.Last, S'Last - First + 1); + Length : constant Stream_Element_Offset := + Stream_Element_Offset'Min + (M.Block_Length - M.Last, SEA'Last - First + 1); begin pragma Assert (Length > 0); - Buf_String (M.Last + 1 .. M.Last + Length) := - S (First .. First + Length - 1); + Buf_SEA (M.Last + 1 .. M.Last + Length) := + SEA (First .. First + Length - 1); M.Last := M.Last + Length; Last := First + Length - 1; end Fill_Buffer_Copy; @@ -101,20 +102,21 @@ package body GNAT.Secure_Hashes is procedure Fill_Buffer_Swap (M : in out Message_State; - S : String; - First : Natural; - Last : out Natural) + SEA : Stream_Element_Array; + First : Stream_Element_Offset; + Last : out Stream_Element_Offset) is - pragma Assert (S'Length mod 2 = 0); - Length : constant Natural := - Natural'Min (M.Block_Length - M.Last, S'Last - First + 1); + pragma Assert (SEA'Length mod 2 = 0); + Length : constant Stream_Element_Offset := + Stream_Element_Offset'Min + (M.Block_Length - M.Last, SEA'Last - First + 1); begin Last := First; while Last - First < Length loop M.Buffer (M.Last + 1 + Last - First) := - (if (Last - S'First) mod 2 = 0 - then S (Last + 1) - else S (Last - 1)); + (if (Last - SEA'First) mod 2 = 0 + then SEA (Last + 1) + else SEA (Last - 1)); Last := Last + 1; end loop; M.Last := M.Last + Length; @@ -146,7 +148,7 @@ package body GNAT.Secure_Hashes is procedure Update (C : in out Context; - S : String; + SEA : Stream_Element_Array; Fill_Buffer : Fill_Buffer_Access); -- Internal common routine for all Update procedures @@ -161,8 +163,7 @@ package body GNAT.Secure_Hashes is ------------ function Digest (C : Context) return Message_Digest is - Hash_Bits : Stream_Element_Array - (1 .. Stream_Element_Offset (Hash_Length)); + Hash_Bits : Stream_Element_Array (1 .. Hash_Length); begin Final (C, Hash_Bits); return MD : Message_Digest do @@ -185,8 +186,7 @@ package body GNAT.Secure_Hashes is end Digest; function Digest (C : Context) return Binary_Message_Digest is - Hash_Bits : Stream_Element_Array - (1 .. Stream_Element_Offset (Hash_Length)); + Hash_Bits : Stream_Element_Array (1 .. Hash_Length); begin Final (C, Hash_Bits); return Hash_Bits; @@ -223,13 +223,13 @@ package body GNAT.Secure_Hashes is is FC : Context := C; - Zeroes : Natural; + Zeroes : Stream_Element_Count; -- Number of 0 bytes in padding Message_Length : Unsigned_64 := FC.M_State.Length; -- Message length in bytes - Size_Length : constant Natural := + Size_Length : constant Stream_Element_Count := 2 * Hash_State.Word'Size / 8; -- Length in bytes of the size representation @@ -237,11 +237,11 @@ package body GNAT.Secure_Hashes is Zeroes := (Block_Length - 1 - Size_Length - FC.M_State.Last) mod FC.M_State.Block_Length; declare - Pad : String (1 .. 1 + Zeroes + Size_Length) := - (1 => Character'Val (128), others => ASCII.NUL); + Pad : Stream_Element_Array (1 .. 1 + Zeroes + Size_Length) := + (1 => 128, others => 0); - Index : Natural; - First_Index : Natural; + Index : Stream_Element_Offset; + First_Index : Stream_Element_Offset; begin First_Index := (if Hash_Bit_Order = Low_Order_First @@ -255,12 +255,12 @@ package body GNAT.Secure_Hashes is -- Message_Length is in bytes, but we need to store it as -- a bit count. - Pad (Index) := Character'Val + Pad (Index) := Stream_Element (Shift_Left (Message_Length and 16#1f#, 3)); Message_Length := Shift_Right (Message_Length, 5); else - Pad (Index) := Character'Val (Message_Length and 16#ff#); + Pad (Index) := Stream_Element (Message_Length and 16#ff#); Message_Length := Shift_Right (Message_Length, 8); end if; @@ -308,7 +308,7 @@ package body GNAT.Secure_Hashes is return C : Context (KL => (if Key'Length <= Key_Length'Last then Key'Length - else Stream_Element_Offset (Hash_Length))) + else Hash_Length)) do -- Set Key (if longer than block length, first hash it) @@ -361,22 +361,29 @@ package body GNAT.Secure_Hashes is procedure Update (C : in out Context; - S : String; + SEA : Stream_Element_Array; Fill_Buffer : Fill_Buffer_Access) is - Last : Natural; + First, Last : Stream_Element_Offset; begin - C.M_State.Length := C.M_State.Length + S'Length; + if SEA'Length = 0 then + return; + end if; + + C.M_State.Length := C.M_State.Length + SEA'Length; - Last := S'First - 1; - while Last < S'Last loop - Fill_Buffer (C.M_State, S, Last + 1, Last); + First := SEA'First; + loop + Fill_Buffer (C.M_State, SEA, First, Last); if C.M_State.Last = Block_Length then Transform (C.H_State, C.M_State); C.M_State.Last := 0; end if; + + exit when Last = SEA'Last; + First := Last + 1; end loop; end Update; @@ -384,7 +391,7 @@ package body GNAT.Secure_Hashes is -- Update -- ------------ - procedure Update (C : in out Context; Input : String) is + procedure Update (C : in out Context; Input : Stream_Element_Array) is begin Update (C, Input, Fill_Buffer_Copy'Access); end Update; @@ -393,12 +400,13 @@ package body GNAT.Secure_Hashes is -- Update -- ------------ - procedure Update (C : in out Context; Input : Stream_Element_Array) is - S : String (1 .. Input'Length); - for S'Address use Input'Address; - pragma Import (Ada, S); + procedure Update (C : in out Context; Input : String) is + pragma Assert (Input'Length <= Stream_Element_Offset'Last); + SEA : Stream_Element_Array (1 .. Input'Length); + for SEA'Address use Input'Address; + pragma Import (Ada, SEA); begin - Update (C, S, Fill_Buffer_Copy'Access); + Update (C, SEA, Fill_Buffer_Copy'Access); end Update; ----------------- @@ -406,12 +414,12 @@ package body GNAT.Secure_Hashes is ----------------- procedure Wide_Update (C : in out Context; Input : Wide_String) is - S : String (1 .. 2 * Input'Length); - for S'Address use Input'Address; - pragma Import (Ada, S); + SEA : Stream_Element_Array (1 .. 2 * Input'Length); + for SEA'Address use Input'Address; + pragma Import (Ada, SEA); begin Update - (C, S, + (C, SEA, (if System.Default_Bit_Order /= Low_Order_First then Fill_Buffer_Swap'Access else Fill_Buffer_Copy'Access)); @@ -460,7 +468,7 @@ package body GNAT.Secure_Hashes is ------------- procedure To_Hash (H : State; H_Bits : out Stream_Element_Array) is - Hash_Words : constant Natural := H'Size / Word'Size; + Hash_Words : constant Stream_Element_Offset := H'Size / Word'Size; Result : State (1 .. Hash_Words) := H (H'Last - Hash_Words + 1 .. H'Last); diff --git a/gcc/ada/libgnat/g-sechas.ads b/gcc/ada/libgnat/g-sechas.ads index a259ec3..2edc2e3 100644 --- a/gcc/ada/libgnat/g-sechas.ads +++ b/gcc/ada/libgnat/g-sechas.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- @@ -44,7 +44,7 @@ with System; package GNAT.Secure_Hashes is - type Buffer_Type is new String; + type Buffer_Type is new Stream_Element_Array; for Buffer_Type'Alignment use 8; -- Secure hash functions use a string buffer that is also accessed as an -- array of words, which may require up to 64 bit alignment. @@ -52,8 +52,8 @@ package GNAT.Secure_Hashes is -- The function-independent part of processing state: A buffer of data -- being accumulated until a complete block is ready for hashing. - type Message_State (Block_Length : Natural) is record - Last : Natural := 0; + type Message_State (Block_Length : Stream_Element_Count) is record + Last : Stream_Element_Offset := 0; -- Index of last used element in Buffer Length : Interfaces.Unsigned_64 := 0; @@ -81,7 +81,7 @@ package GNAT.Secure_Hashes is package Hash_Function_State is - type State is array (Natural range <>) of Word; + type State is array (Stream_Element_Offset range <>) of Word; -- Used to store a hash function's internal state procedure To_Hash @@ -97,13 +97,13 @@ package GNAT.Secure_Hashes is -- secure hash function is an instance of this generic package. generic - Block_Words : Natural; + Block_Words : Stream_Element_Count; -- Number of words in each block - State_Words : Natural; + State_Words : Stream_Element_Count; -- Number of words in internal state - Hash_Words : Natural; + Hash_Words : Stream_Element_Count; -- Number of words in the final hash (must be no greater than -- State_Words). @@ -157,11 +157,10 @@ package GNAT.Secure_Hashes is -- the Wide_String version, each Wide_Character is processed low order -- byte first. - Word_Length : constant Natural := Hash_State.Word'Size / 8; - Hash_Length : constant Natural := Hash_Words * Word_Length; + Word_Length : constant Stream_Element_Offset := Hash_State.Word'Size / 8; + Hash_Length : constant Stream_Element_Offset := Hash_Words * Word_Length; - subtype Binary_Message_Digest is - Stream_Element_Array (1 .. Stream_Element_Offset (Hash_Length)); + subtype Binary_Message_Digest is Stream_Element_Array (1 .. Hash_Length); -- The fixed-length byte array returned by Digest, providing -- the hash in binary representation. @@ -176,7 +175,7 @@ package GNAT.Secure_Hashes is -- Wide_Update) on a default initialized Context, followed by Digest -- on the resulting Context. - subtype Message_Digest is String (1 .. 2 * Hash_Length); + subtype Message_Digest is String (1 .. 2 * Integer (Hash_Length)); -- The fixed-length string returned by Digest, providing the hash in -- hexadecimal representation. @@ -199,11 +198,12 @@ package GNAT.Secure_Hashes is private - Block_Length : constant Natural := Block_Words * Word_Length; + Block_Length : constant Stream_Element_Count := + Block_Words * Word_Length; -- Length in bytes of a data block subtype Key_Length is - Stream_Element_Offset range 0 .. Stream_Element_Offset (Block_Length); + Stream_Element_Offset range 0 .. Block_Length; -- KL is 0 for a normal hash context, > 0 for HMAC diff --git a/gcc/ada/libgnat/g-sehamd.adb b/gcc/ada/libgnat/g-sehamd.adb index f759ec8..d82cc36 100644 --- a/gcc/ada/libgnat/g-sehamd.adb +++ b/gcc/ada/libgnat/g-sehamd.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/g-sehamd.ads b/gcc/ada/libgnat/g-sehamd.ads index 7cecc92..5f9bfe3 100644 --- a/gcc/ada/libgnat/g-sehamd.ads +++ b/gcc/ada/libgnat/g-sehamd.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/g-sehash.adb b/gcc/ada/libgnat/g-sehash.adb index bd94510..470c9b5 100644 --- a/gcc/ada/libgnat/g-sehash.adb +++ b/gcc/ada/libgnat/g-sehash.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/g-sehash.ads b/gcc/ada/libgnat/g-sehash.ads index 133a109..ed8aefb 100644 --- a/gcc/ada/libgnat/g-sehash.ads +++ b/gcc/ada/libgnat/g-sehash.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/g-sercom.adb b/gcc/ada/libgnat/g-sercom.adb index ccf5239..6f4d5e0 100644 --- a/gcc/ada/libgnat/g-sercom.adb +++ b/gcc/ada/libgnat/g-sercom.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-sercom.ads b/gcc/ada/libgnat/g-sercom.ads index 52447db..5d4a809 100644 --- a/gcc/ada/libgnat/g-sercom.ads +++ b/gcc/ada/libgnat/g-sercom.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-sercom__linux.adb b/gcc/ada/libgnat/g-sercom__linux.adb index 87143e2..7d93e57 100644 --- a/gcc/ada/libgnat/g-sercom__linux.adb +++ b/gcc/ada/libgnat/g-sercom__linux.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-sercom__mingw.adb b/gcc/ada/libgnat/g-sercom__mingw.adb index d5e2344..a0da5ff 100644 --- a/gcc/ada/libgnat/g-sercom__mingw.adb +++ b/gcc/ada/libgnat/g-sercom__mingw.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-sestin.ads b/gcc/ada/libgnat/g-sestin.ads index 236009d..1e74ff8 100644 --- a/gcc/ada/libgnat/g-sestin.ads +++ b/gcc/ada/libgnat/g-sestin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, AdaCore -- +-- Copyright (C) 2004-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-sets.adb b/gcc/ada/libgnat/g-sets.adb index b588880..9d34553 100644 --- a/gcc/ada/libgnat/g-sets.adb +++ b/gcc/ada/libgnat/g-sets.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2018-2019, AdaCore -- +-- Copyright (C) 2018-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-sets.ads b/gcc/ada/libgnat/g-sets.ads index 1898e26..18568fa 100644 --- a/gcc/ada/libgnat/g-sets.ads +++ b/gcc/ada/libgnat/g-sets.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2018-2019, AdaCore -- +-- Copyright (C) 2018-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-sha1.adb b/gcc/ada/libgnat/g-sha1.adb index b84ca95..66e717f 100644 --- a/gcc/ada/libgnat/g-sha1.adb +++ b/gcc/ada/libgnat/g-sha1.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-sha1.ads b/gcc/ada/libgnat/g-sha1.ads index c662e8f..584c560 100644 --- a/gcc/ada/libgnat/g-sha1.ads +++ b/gcc/ada/libgnat/g-sha1.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-sha224.ads b/gcc/ada/libgnat/g-sha224.ads index 6a4dd25..fd8b753 100644 --- a/gcc/ada/libgnat/g-sha224.ads +++ b/gcc/ada/libgnat/g-sha224.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-sha256.ads b/gcc/ada/libgnat/g-sha256.ads index 6f226f8..58d8b16 100644 --- a/gcc/ada/libgnat/g-sha256.ads +++ b/gcc/ada/libgnat/g-sha256.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-sha384.ads b/gcc/ada/libgnat/g-sha384.ads index dc5df0a..32ea088 100644 --- a/gcc/ada/libgnat/g-sha384.ads +++ b/gcc/ada/libgnat/g-sha384.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-sha512.ads b/gcc/ada/libgnat/g-sha512.ads index 42926ff..6d7c0ee 100644 --- a/gcc/ada/libgnat/g-sha512.ads +++ b/gcc/ada/libgnat/g-sha512.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-shsh32.adb b/gcc/ada/libgnat/g-shsh32.adb index 4036ad6..1631562 100644 --- a/gcc/ada/libgnat/g-shsh32.adb +++ b/gcc/ada/libgnat/g-shsh32.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-shsh32.ads b/gcc/ada/libgnat/g-shsh32.ads index 6359001..3f46df3 100644 --- a/gcc/ada/libgnat/g-shsh32.ads +++ b/gcc/ada/libgnat/g-shsh32.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-shsh64.adb b/gcc/ada/libgnat/g-shsh64.adb index bf95a3d..061c407 100644 --- a/gcc/ada/libgnat/g-shsh64.adb +++ b/gcc/ada/libgnat/g-shsh64.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-shsh64.ads b/gcc/ada/libgnat/g-shsh64.ads index 5d8e07a..010e5c4 100644 --- a/gcc/ada/libgnat/g-shsh64.ads +++ b/gcc/ada/libgnat/g-shsh64.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-shshco.adb b/gcc/ada/libgnat/g-shshco.adb index c0802ce..89e27f0 100644 --- a/gcc/ada/libgnat/g-shshco.adb +++ b/gcc/ada/libgnat/g-shshco.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- @@ -108,7 +108,8 @@ package body GNAT.Secure_Hashes.SHA2_Common is -- 3. Perform transformation rounds for T in 0 .. Rounds - 1 loop - T1 := H + Sigma1 (E) + Ch (E, F, G) + K (T) + W (T); + T1 := H + Sigma1 (E) + Ch (E, F, G) + + K (Stream_Element_Offset (T)) + W (T); T2 := Sigma0 (A) + Maj (A, B, C); H := G; G := F; diff --git a/gcc/ada/libgnat/g-shshco.ads b/gcc/ada/libgnat/g-shshco.ads index 8f0e84c..8c389dd 100644 --- a/gcc/ada/libgnat/g-shshco.ads +++ b/gcc/ada/libgnat/g-shshco.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-soccon.ads b/gcc/ada/libgnat/g-soccon.ads index 0fe12dc..06cf683 100644 --- a/gcc/ada/libgnat/g-soccon.ads +++ b/gcc/ada/libgnat/g-soccon.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2000-2020, 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- -- diff --git a/gcc/ada/libgnat/g-socket.adb b/gcc/ada/libgnat/g-socket.adb index 6c65424..719d9a9 100644 --- a/gcc/ada/libgnat/g-socket.adb +++ b/gcc/ada/libgnat/g-socket.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- @@ -29,14 +29,14 @@ -- -- ------------------------------------------------------------------------------ -with Ada.Streams; use Ada.Streams; -with Ada.Exceptions; use Ada.Exceptions; with Ada.Containers.Generic_Array_Sort; +with Ada.Exceptions; use Ada.Exceptions; with Ada.Finalization; +with Ada.Streams; use Ada.Streams; with Ada.Unchecked_Conversion; -with GNAT.Sockets.Thin_Common; use GNAT.Sockets.Thin_Common; with GNAT.Sockets.Thin; use GNAT.Sockets.Thin; +with GNAT.Sockets.Thin_Common; use GNAT.Sockets.Thin_Common; with GNAT.Sockets.Linker_Options; pragma Warnings (Off, GNAT.Sockets.Linker_Options); @@ -291,7 +291,7 @@ package body GNAT.Sockets is function Create_Address (Family : Family_Inet_4_6; Bytes : Inet_Addr_Bytes) return Inet_Addr_Type with Inline; - -- Creates address from family and Inet_Addr_Bytes array. + -- Creates address from family and Inet_Addr_Bytes array function Get_Bytes (Addr : Inet_Addr_Type) return Inet_Addr_Bytes with Inline; @@ -836,6 +836,7 @@ package body GNAT.Sockets is -- the waiting task to resume its execution. Res := Signalling_Fds.Create (Two_Fds'Access); + pragma Annotate (CodePeer, Modified, Two_Fds); if Res = Failure then Raise_Socket_Error (Socket_Errno); @@ -886,6 +887,7 @@ package body GNAT.Sockets is ((if Family = Family_Unspec then Default_Socket_Pair_Family else Families (Family)), Modes (Mode), Levels (Level), Pair'Access); + pragma Annotate (CodePeer, Modified, Pair); if Res = Failure then Raise_Socket_Error (Socket_Errno); @@ -957,8 +959,12 @@ package body GNAT.Sockets is if Item.Last /= No_Socket then Get_Socket_From_Set (Item.Set'Access, Last => L'Access, Socket => S'Access); + pragma Annotate (CodePeer, Modified, L); + pragma Annotate (CodePeer, Modified, S); + Item.Last := Socket_Type (L); Socket := Socket_Type (S); + else Socket := No_Socket; end if; @@ -1216,7 +1222,7 @@ package body GNAT.Sockets is pragma Unreferenced (Family); HA : aliased In_Addr_Union (Address.Family); - Buflen : constant C.int := Netdb_Buffer_Size; + Buflen : constant C.size_t := Netdb_Buffer_Size; Buf : aliased C.char_array (1 .. Netdb_Buffer_Size); Res : aliased Hostent; Err : aliased C.int; @@ -1271,7 +1277,7 @@ package body GNAT.Sockets is declare HN : constant C.char_array := C.To_C (Name); - Buflen : constant C.int := Netdb_Buffer_Size; + Buflen : constant C.size_t := Netdb_Buffer_Size; Buf : aliased C.char_array (1 .. Netdb_Buffer_Size); Res : aliased Hostent; Err : aliased C.int; @@ -1319,7 +1325,7 @@ package body GNAT.Sockets is is SN : constant C.char_array := C.To_C (Name); SP : constant C.char_array := C.To_C (Protocol); - Buflen : constant C.int := Netdb_Buffer_Size; + Buflen : constant C.size_t := Netdb_Buffer_Size; Buf : aliased C.char_array (1 .. Netdb_Buffer_Size); Res : aliased Servent; @@ -1349,7 +1355,7 @@ package body GNAT.Sockets is Protocol : String) return Service_Entry_Type is SP : constant C.char_array := C.To_C (Protocol); - Buflen : constant C.int := Netdb_Buffer_Size; + Buflen : constant C.size_t := Netdb_Buffer_Size; Buf : aliased C.char_array (1 .. Netdb_Buffer_Size); Res : aliased Servent; @@ -2022,7 +2028,11 @@ package body GNAT.Sockets is type Local_Selector_Access is access Selector_Type; for Local_Selector_Access'Storage_Size use Selector_Type'Size; - S : Selector_Access; + procedure Unchecked_Free is new Ada.Unchecked_Deallocation + (Selector_Type, Local_Selector_Access); + + Local_S : Local_Selector_Access; + S : Selector_Access; -- Selector to use for waiting R_Fd_Set : Socket_Set_Type; @@ -2032,12 +2042,9 @@ package body GNAT.Sockets is -- Create selector if not provided by the user if Selector = null then - declare - Local_S : constant Local_Selector_Access := new Selector_Type; - begin - S := Local_S.all'Unchecked_Access; - Create_Selector (S.all); - end; + Local_S := new Selector_Type; + S := Local_S.all'Unchecked_Access; + Create_Selector (S.all); else S := Selector.all'Access; @@ -2053,7 +2060,17 @@ package body GNAT.Sockets is if Selector = null then Close_Selector (S.all); + Unchecked_Free (Local_S); end if; + + exception + when others => + Status := Completed; + + if Selector = null then + Close_Selector (S.all); + Unchecked_Free (Local_S); + end if; end Wait_On_Socket; ----------------- @@ -2709,14 +2726,14 @@ package body GNAT.Sockets is U4 := C.unsigned (Option.Timeout / 0.001); if Option.Timeout > 0.0 and then U4 = 0 then - -- Avoid round to zero. Zero timeout mean unlimited. + -- Avoid round to zero. Zero timeout mean unlimited U4 := 1; end if; -- Old windows versions actual timeout is 500 ms + the given -- value (unless it is 0). - if Minus_500ms_Windows_Timeout /= 0 then + if Minus_500ms_Windows_Timeout then if U4 > 500 then U4 := U4 - 500; @@ -2833,9 +2850,11 @@ package body GNAT.Sockets is -- Check for possible Duration overflow when Tv_Sec field is 64 bit -- integer. - if Val.Tv_Sec > time_t (Max_D) or else - (Val.Tv_Sec = time_t (Max_D) and then - Val.Tv_Usec > suseconds_t ((Forever - Duration (Max_D)) * 1E6)) + if Val.Tv_Sec > time_t (Max_D) + or else + (Val.Tv_Sec = time_t (Max_D) + and then + Val.Tv_Usec > suseconds_t ((Forever - Duration (Max_D)) * 1E6)) then return Forever; end if; @@ -2921,8 +2940,7 @@ package body GNAT.Sockets is -- To_Int -- ------------ - function To_Int (F : Request_Flag_Type) return C.int - is + function To_Int (F : Request_Flag_Type) return C.int is Current : Request_Flag_Type := F; Result : C.int := 0; @@ -2932,6 +2950,10 @@ package body GNAT.Sockets is if Current mod 2 /= 0 then if Flags (J) = -1 then + pragma Annotate + (CodePeer, False_Positive, + "test always false", "self fulfilling prophecy"); + Raise_Socket_Error (SOSC.EOPNOTSUPP); end if; diff --git a/gcc/ada/libgnat/g-socket.ads b/gcc/ada/libgnat/g-socket.ads index 3962cc0..9167241 100644 --- a/gcc/ada/libgnat/g-socket.ads +++ b/gcc/ada/libgnat/g-socket.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-socket__dummy.adb b/gcc/ada/libgnat/g-socket__dummy.adb index 6873185..a343eab 100644 --- a/gcc/ada/libgnat/g-socket__dummy.adb +++ b/gcc/ada/libgnat/g-socket__dummy.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-socket__dummy.ads b/gcc/ada/libgnat/g-socket__dummy.ads index 67f9e0f..2cd7460 100644 --- a/gcc/ada/libgnat/g-socket__dummy.ads +++ b/gcc/ada/libgnat/g-socket__dummy.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-socthi.adb b/gcc/ada/libgnat/g-socthi.adb index d1640f1..5d86993 100644 --- a/gcc/ada/libgnat/g-socthi.adb +++ b/gcc/ada/libgnat/g-socthi.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- @@ -74,17 +74,17 @@ package body GNAT.Sockets.Thin is function Syscall_Recv (S : C.int; Msg : System.Address; - Len : C.int; - Flags : C.int) return C.int; + Len : C.size_t; + Flags : C.int) return System.CRTL.ssize_t; pragma Import (C, Syscall_Recv, "recv"); function Syscall_Recvfrom (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int; From : System.Address; - Fromlen : not null access C.int) return C.int; + Fromlen : not null access C.int) return System.CRTL.ssize_t; pragma Import (C, Syscall_Recvfrom, "recvfrom"); function Syscall_Recvmsg @@ -102,10 +102,10 @@ package body GNAT.Sockets.Thin is function Syscall_Sendto (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int; To : System.Address; - Tolen : C.int) return C.int; + Tolen : C.int) return System.CRTL.ssize_t; pragma Import (C, Syscall_Sendto, "sendto"); function Syscall_Socket @@ -250,14 +250,14 @@ package body GNAT.Sockets.Thin is function C_Recv (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int) return C.int is Res : C.int; begin loop - Res := Syscall_Recv (S, Msg, Len, Flags); + Res := C.int (Syscall_Recv (S, Msg, Len, Flags)); exit when SOSC.Thread_Blocking_IO or else Res /= Failure or else Non_Blocking_Socket (S) @@ -275,7 +275,7 @@ package body GNAT.Sockets.Thin is function C_Recvfrom (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int; From : System.Address; Fromlen : not null access C.int) return C.int @@ -284,7 +284,7 @@ package body GNAT.Sockets.Thin is begin loop - Res := Syscall_Recvfrom (S, Msg, Len, Flags, From, Fromlen); + Res := C.int (Syscall_Recvfrom (S, Msg, Len, Flags, From, Fromlen)); exit when SOSC.Thread_Blocking_IO or else Res /= Failure or else Non_Blocking_Socket (S) @@ -350,7 +350,7 @@ package body GNAT.Sockets.Thin is function C_Sendto (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int; To : System.Address; Tolen : C.int) return C.int @@ -359,7 +359,7 @@ package body GNAT.Sockets.Thin is begin loop - Res := Syscall_Sendto (S, Msg, Len, Flags, To, Tolen); + Res := C.int (Syscall_Sendto (S, Msg, Len, Flags, To, Tolen)); exit when SOSC.Thread_Blocking_IO or else Res /= Failure or else Non_Blocking_Socket (S) diff --git a/gcc/ada/libgnat/g-socthi.ads b/gcc/ada/libgnat/g-socthi.ads index 56b31ac..c6a07ba 100644 --- a/gcc/ada/libgnat/g-socthi.ads +++ b/gcc/ada/libgnat/g-socthi.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- @@ -98,7 +98,7 @@ package GNAT.Sockets.Thin is function C_Gethostname (Name : System.Address; - Namelen : C.int) return C.int; + Namelen : C.size_t) return C.int; function C_Getpeername (S : C.int; @@ -129,13 +129,13 @@ package GNAT.Sockets.Thin is function C_Recv (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int) return C.int; function C_Recvfrom (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int; From : System.Address; Fromlen : not null access C.int) return C.int; @@ -160,7 +160,7 @@ package GNAT.Sockets.Thin is function C_Sendto (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int; To : System.Address; Tolen : C.int) return C.int; diff --git a/gcc/ada/libgnat/g-socthi__dummy.adb b/gcc/ada/libgnat/g-socthi__dummy.adb index c83f9e8..53acef5 100644 --- a/gcc/ada/libgnat/g-socthi__dummy.adb +++ b/gcc/ada/libgnat/g-socthi__dummy.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-socthi__dummy.ads b/gcc/ada/libgnat/g-socthi__dummy.ads index 3aacf17..3ddcdb4 100644 --- a/gcc/ada/libgnat/g-socthi__dummy.ads +++ b/gcc/ada/libgnat/g-socthi__dummy.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-socthi__mingw.adb b/gcc/ada/libgnat/g-socthi__mingw.adb index 5ad292d..f63a6cb 100644 --- a/gcc/ada/libgnat/g-socthi__mingw.adb +++ b/gcc/ada/libgnat/g-socthi__mingw.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-socthi__mingw.ads b/gcc/ada/libgnat/g-socthi__mingw.ads index a5aa67e..ff6feaa 100644 --- a/gcc/ada/libgnat/g-socthi__mingw.ads +++ b/gcc/ada/libgnat/g-socthi__mingw.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-socthi__vxworks.adb b/gcc/ada/libgnat/g-socthi__vxworks.adb index a2bbed6..548b9d3 100644 --- a/gcc/ada/libgnat/g-socthi__vxworks.adb +++ b/gcc/ada/libgnat/g-socthi__vxworks.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, AdaCore -- +-- Copyright (C) 2002-2020, AdaCore -- -- -- -- 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- -- @@ -78,14 +78,14 @@ package body GNAT.Sockets.Thin is function Syscall_Recv (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int) return C.int; pragma Import (C, Syscall_Recv, "recv"); function Syscall_Recvfrom (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int; From : System.Address; Fromlen : not null access C.int) return C.int; @@ -106,17 +106,17 @@ package body GNAT.Sockets.Thin is function Syscall_Send (S : C.int; Msg : System.Address; - Len : C.int; - Flags : C.int) return C.int; + Len : C.size_t; + Flags : C.int) return System.CRTL.ssize_t; pragma Import (C, Syscall_Send, "send"); function Syscall_Sendto (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int; To : System.Address; - Tolen : C.int) return C.int; + Tolen : C.int) return System.CRTL.ssize_t; pragma Import (C, Syscall_Sendto, "sendto"); function Syscall_Socket @@ -252,7 +252,7 @@ package body GNAT.Sockets.Thin is function C_Recv (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int) return C.int is Res : C.int; @@ -277,7 +277,7 @@ package body GNAT.Sockets.Thin is function C_Recvfrom (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int; From : System.Address; Fromlen : not null access C.int) return C.int @@ -352,7 +352,7 @@ package body GNAT.Sockets.Thin is function C_Sendto (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int; To : System.Address; Tolen : C.int) return C.int @@ -369,12 +369,12 @@ package body GNAT.Sockets.Thin is -- support sendto(2) calls on connected sockets with a null -- destination address, so use send(2) instead in that case. - Res := Syscall_Send (S, Msg, Len, Flags); + Res := C.int (Syscall_Send (S, Msg, Len, Flags)); -- Normal case where destination address is non-null else - Res := Syscall_Sendto (S, Msg, Len, Flags, To, Tolen); + Res := C.int (Syscall_Sendto (S, Msg, Len, Flags, To, Tolen)); end if; exit when SOSC.Thread_Blocking_IO diff --git a/gcc/ada/libgnat/g-socthi__vxworks.ads b/gcc/ada/libgnat/g-socthi__vxworks.ads index 664218d..704ec0a 100644 --- a/gcc/ada/libgnat/g-socthi__vxworks.ads +++ b/gcc/ada/libgnat/g-socthi__vxworks.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, AdaCore -- +-- Copyright (C) 2002-2020, AdaCore -- -- -- -- 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- -- @@ -95,7 +95,7 @@ package GNAT.Sockets.Thin is function C_Gethostname (Name : System.Address; - Namelen : C.int) return C.int; + Namelen : C.size_t) return C.int; function C_Getpeername (S : C.int; @@ -126,13 +126,13 @@ package GNAT.Sockets.Thin is function C_Recv (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int) return C.int; function C_Recvfrom (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int; From : System.Address; Fromlen : not null access C.int) return C.int; @@ -157,7 +157,7 @@ package GNAT.Sockets.Thin is function C_Sendto (S : C.int; Msg : System.Address; - Len : C.int; + Len : C.size_t; Flags : C.int; To : System.Address; Tolen : C.int) return C.int; diff --git a/gcc/ada/libgnat/g-soliop.ads b/gcc/ada/libgnat/g-soliop.ads index cbbf015..295d812 100644 --- a/gcc/ada/libgnat/g-soliop.ads +++ b/gcc/ada/libgnat/g-soliop.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-soliop__lynxos.ads b/gcc/ada/libgnat/g-soliop__lynxos.ads index f9f8b89..227c2e4 100644 --- a/gcc/ada/libgnat/g-soliop__lynxos.ads +++ b/gcc/ada/libgnat/g-soliop__lynxos.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-soliop__mingw.ads b/gcc/ada/libgnat/g-soliop__mingw.ads index cca249d..cbb3e36 100644 --- a/gcc/ada/libgnat/g-soliop__mingw.ads +++ b/gcc/ada/libgnat/g-soliop__mingw.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-soliop__qnx.ads b/gcc/ada/libgnat/g-soliop__qnx.ads index 5ea4d8d..c45bd04 100644 --- a/gcc/ada/libgnat/g-soliop__qnx.ads +++ b/gcc/ada/libgnat/g-soliop__qnx.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-soliop__solaris.ads b/gcc/ada/libgnat/g-soliop__solaris.ads index 613b343..388b87c 100644 --- a/gcc/ada/libgnat/g-soliop__solaris.ads +++ b/gcc/ada/libgnat/g-soliop__solaris.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-sothco.adb b/gcc/ada/libgnat/g-sothco.adb index 9794d8b..1b8dd49 100644 --- a/gcc/ada/libgnat/g-sothco.adb +++ b/gcc/ada/libgnat/g-sothco.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, AdaCore -- +-- Copyright (C) 2008-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-sothco.ads b/gcc/ada/libgnat/g-sothco.ads index a68019c..e30af18 100644 --- a/gcc/ada/libgnat/g-sothco.ads +++ b/gcc/ada/libgnat/g-sothco.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, AdaCore -- +-- Copyright (C) 2008-2020, AdaCore -- -- -- -- 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- -- @@ -281,7 +281,7 @@ package GNAT.Sockets.Thin_Common is (Name : C.char_array; Ret : not null access Hostent; Buf : System.Address; - Buflen : C.int; + Buflen : C.size_t; H_Errnop : not null access C.int) return C.int; function C_Gethostbyaddr @@ -290,7 +290,7 @@ package GNAT.Sockets.Thin_Common is Addr_Type : C.int; Ret : not null access Hostent; Buf : System.Address; - Buflen : C.int; + Buflen : C.size_t; H_Errnop : not null access C.int) return C.int; function C_Getservbyname @@ -298,14 +298,14 @@ package GNAT.Sockets.Thin_Common is Proto : C.char_array; Ret : not null access Servent; Buf : System.Address; - Buflen : C.int) return C.int; + Buflen : C.size_t) return C.int; function C_Getservbyport (Port : C.int; Proto : C.char_array; Ret : not null access Servent; Buf : System.Address; - Buflen : C.int) return C.int; + Buflen : C.size_t) return C.int; Address_Size : constant := Standard'Address_Size; @@ -451,12 +451,19 @@ package GNAT.Sockets.Thin_Common is renames Short_To_Network; -- Symmetric operation - function Minus_500ms_Windows_Timeout return C.int; + Minus_500ms_Windows_Timeout : constant Boolean; -- Microsoft Windows desktop older then 8.0 and Microsoft Windows Server -- older than 2019 need timeout correction for 500 milliseconds. This - -- routine returns 1 for such versions. + -- constant is True for such versions. private + + function Get_Minus_500ms_Timeout return C.int + with Import, Convention => C, External_Name => "__gnat_minus_500ms"; + + Minus_500ms_Windows_Timeout : constant Boolean := + Get_Minus_500ms_Timeout /= 0; + pragma Import (C, Get_Socket_From_Set, "__gnat_get_socket_from_set"); pragma Import (C, Is_Socket_In_Set, "__gnat_is_socket_in_set"); pragma Import (C, Last_Socket_In_Set, "__gnat_last_socket_in_set"); @@ -488,6 +495,4 @@ private pragma Import (C, Hostent_H_Length, "__gnat_hostent_h_length"); pragma Import (C, Hostent_H_Addr, "__gnat_hostent_h_addr"); - pragma Import (C, Minus_500ms_Windows_Timeout, "__gnat_minus_500ms"); - end GNAT.Sockets.Thin_Common; diff --git a/gcc/ada/libgnat/g-sothco__dummy.adb b/gcc/ada/libgnat/g-sothco__dummy.adb index 62f99bb..8c90ab0 100644 --- a/gcc/ada/libgnat/g-sothco__dummy.adb +++ b/gcc/ada/libgnat/g-sothco__dummy.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/g-sothco__dummy.ads b/gcc/ada/libgnat/g-sothco__dummy.ads index ae3e5cc..d93916a 100644 --- a/gcc/ada/libgnat/g-sothco__dummy.ads +++ b/gcc/ada/libgnat/g-sothco__dummy.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, AdaCore -- +-- Copyright (C) 2008-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-souinf.ads b/gcc/ada/libgnat/g-souinf.ads index bdd27a5..ce55464 100644 --- a/gcc/ada/libgnat/g-souinf.ads +++ b/gcc/ada/libgnat/g-souinf.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2000-2020, 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- -- diff --git a/gcc/ada/libgnat/g-spchge.adb b/gcc/ada/libgnat/g-spchge.adb index ad70fad..62f1666 100644 --- a/gcc/ada/libgnat/g-spchge.adb +++ b/gcc/ada/libgnat/g-spchge.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-spchge.ads b/gcc/ada/libgnat/g-spchge.ads index 93e8dbc..a0ce625 100644 --- a/gcc/ada/libgnat/g-spchge.ads +++ b/gcc/ada/libgnat/g-spchge.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-speche.adb b/gcc/ada/libgnat/g-speche.adb index 21c1d85..545ca42 100644 --- a/gcc/ada/libgnat/g-speche.adb +++ b/gcc/ada/libgnat/g-speche.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-speche.ads b/gcc/ada/libgnat/g-speche.ads index d566e1e..a906e43 100644 --- a/gcc/ada/libgnat/g-speche.ads +++ b/gcc/ada/libgnat/g-speche.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-spipat.adb b/gcc/ada/libgnat/g-spipat.adb index 699b322..e9f4bf5 100644 --- a/gcc/ada/libgnat/g-spipat.adb +++ b/gcc/ada/libgnat/g-spipat.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-spipat.ads b/gcc/ada/libgnat/g-spipat.ads index 4dfc25a..d711b3b6 100644 --- a/gcc/ada/libgnat/g-spipat.ads +++ b/gcc/ada/libgnat/g-spipat.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2019, AdaCore -- +-- Copyright (C) 1997-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-spitbo.adb b/gcc/ada/libgnat/g-spitbo.adb index ad56822..07ecd52 100644 --- a/gcc/ada/libgnat/g-spitbo.adb +++ b/gcc/ada/libgnat/g-spitbo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-spitbo.ads b/gcc/ada/libgnat/g-spitbo.ads index 126972f..29a0606 100644 --- a/gcc/ada/libgnat/g-spitbo.ads +++ b/gcc/ada/libgnat/g-spitbo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2019, AdaCore -- +-- Copyright (C) 1997-2020, AdaCore -- -- -- -- 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- -- @@ -126,7 +126,7 @@ package GNAT.Spitbol is Len : Natural; Pad : Character := ' ') return VString; -- If the length of Str is greater than or equal to Len, then Str is - -- returned unchanged. Otherwise, The value returned is obtained by + -- returned unchanged. Otherwise, the value returned is obtained by -- concatenating Length (Str) - Len instances of the Pad character to -- the left hand side. @@ -155,7 +155,7 @@ package GNAT.Spitbol is Len : Natural; Pad : Character := ' ') return VString; -- If the length of Str is greater than or equal to Len, then Str is - -- returned unchanged. Otherwise, The value returned is obtained by + -- returned unchanged. Otherwise, the value returned is obtained by -- concatenating Length (Str) - Len instances of the Pad character to -- the right hand side. diff --git a/gcc/ada/libgnat/g-sptabo.ads b/gcc/ada/libgnat/g-sptabo.ads index 06de800..4aa1a76 100644 --- a/gcc/ada/libgnat/g-sptabo.ads +++ b/gcc/ada/libgnat/g-sptabo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2019, AdaCore -- +-- Copyright (C) 1997-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-sptain.ads b/gcc/ada/libgnat/g-sptain.ads index 0a0933c..065a33d 100644 --- a/gcc/ada/libgnat/g-sptain.ads +++ b/gcc/ada/libgnat/g-sptain.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2019, AdaCore -- +-- Copyright (C) 1997-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-sptavs.ads b/gcc/ada/libgnat/g-sptavs.ads index 8b7d85c..2771cf5 100644 --- a/gcc/ada/libgnat/g-sptavs.ads +++ b/gcc/ada/libgnat/g-sptavs.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2019, AdaCore -- +-- Copyright (C) 1997-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-sse.ads b/gcc/ada/libgnat/g-sse.ads index 915eda3..fc220bd 100644 --- a/gcc/ada/libgnat/g-sse.ads +++ b/gcc/ada/libgnat/g-sse.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-ssvety.ads b/gcc/ada/libgnat/g-ssvety.ads index 53e8dc1..d7b134d 100644 --- a/gcc/ada/libgnat/g-ssvety.ads +++ b/gcc/ada/libgnat/g-ssvety.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/g-sthcso.adb b/gcc/ada/libgnat/g-sthcso.adb index 49c55f2..f6345d4 100644 --- a/gcc/ada/libgnat/g-sthcso.adb +++ b/gcc/ada/libgnat/g-sthcso.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-stheme.adb b/gcc/ada/libgnat/g-stheme.adb index 38859dd..679adf0 100644 --- a/gcc/ada/libgnat/g-stheme.adb +++ b/gcc/ada/libgnat/g-stheme.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-strhas.ads b/gcc/ada/libgnat/g-strhas.ads index 266c2e1..f6949b5 100644 --- a/gcc/ada/libgnat/g-strhas.ads +++ b/gcc/ada/libgnat/g-strhas.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2015-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2015-2020, 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- -- diff --git a/gcc/ada/libgnat/g-string.adb b/gcc/ada/libgnat/g-string.adb index a4d3c54..7d820c6 100644 --- a/gcc/ada/libgnat/g-string.adb +++ b/gcc/ada/libgnat/g-string.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, 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- -- diff --git a/gcc/ada/libgnat/g-string.ads b/gcc/ada/libgnat/g-string.ads index 37d86a4..8d35847 100644 --- a/gcc/ada/libgnat/g-string.ads +++ b/gcc/ada/libgnat/g-string.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, 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- -- diff --git a/gcc/ada/libgnat/g-strspl.ads b/gcc/ada/libgnat/g-strspl.ads index af58dc6..0995e2b 100644 --- a/gcc/ada/libgnat/g-strspl.ads +++ b/gcc/ada/libgnat/g-strspl.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/g-stseme.adb b/gcc/ada/libgnat/g-stseme.adb index e752622..ad78669 100644 --- a/gcc/ada/libgnat/g-stseme.adb +++ b/gcc/ada/libgnat/g-stseme.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-stsifd__sockets.adb b/gcc/ada/libgnat/g-stsifd__sockets.adb index 90c98b7..6d018e2 100644 --- a/gcc/ada/libgnat/g-stsifd__sockets.adb +++ b/gcc/ada/libgnat/g-stsifd__sockets.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-table.adb b/gcc/ada/libgnat/g-table.adb index bcced26..8872a4c 100644 --- a/gcc/ada/libgnat/g-table.adb +++ b/gcc/ada/libgnat/g-table.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-table.ads b/gcc/ada/libgnat/g-table.ads index 68c851c..752f1dc 100644 --- a/gcc/ada/libgnat/g-table.ads +++ b/gcc/ada/libgnat/g-table.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-tasloc.adb b/gcc/ada/libgnat/g-tasloc.adb index ca46b89..64c4940 100644 --- a/gcc/ada/libgnat/g-tasloc.adb +++ b/gcc/ada/libgnat/g-tasloc.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, AdaCore -- +-- Copyright (C) 1997-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-tasloc.ads b/gcc/ada/libgnat/g-tasloc.ads index 7770c27b..b8ccb83 100644 --- a/gcc/ada/libgnat/g-tasloc.ads +++ b/gcc/ada/libgnat/g-tasloc.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-timsta.adb b/gcc/ada/libgnat/g-timsta.adb index 1c34082..6bc12ab 100644 --- a/gcc/ada/libgnat/g-timsta.adb +++ b/gcc/ada/libgnat/g-timsta.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/g-timsta.ads b/gcc/ada/libgnat/g-timsta.ads index fa3c2e0..df87840 100644 --- a/gcc/ada/libgnat/g-timsta.ads +++ b/gcc/ada/libgnat/g-timsta.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/g-traceb.adb b/gcc/ada/libgnat/g-traceb.adb index 9cf04de..c826dd5 100644 --- a/gcc/ada/libgnat/g-traceb.adb +++ b/gcc/ada/libgnat/g-traceb.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-traceb.ads b/gcc/ada/libgnat/g-traceb.ads index 6a565c9..0bd1ddf 100644 --- a/gcc/ada/libgnat/g-traceb.ads +++ b/gcc/ada/libgnat/g-traceb.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-trasym.adb b/gcc/ada/libgnat/g-trasym.adb index ecc2aac..064724c 100644 --- a/gcc/ada/libgnat/g-trasym.adb +++ b/gcc/ada/libgnat/g-trasym.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-trasym.ads b/gcc/ada/libgnat/g-trasym.ads index 5d3620c..03055d4 100644 --- a/gcc/ada/libgnat/g-trasym.ads +++ b/gcc/ada/libgnat/g-trasym.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-tty.adb b/gcc/ada/libgnat/g-tty.adb index da9a60f..ff3bb46 100644 --- a/gcc/ada/libgnat/g-tty.adb +++ b/gcc/ada/libgnat/g-tty.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, AdaCore -- +-- Copyright (C) 2002-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-tty.ads b/gcc/ada/libgnat/g-tty.ads index 022a778..502850b 100644 --- a/gcc/ada/libgnat/g-tty.ads +++ b/gcc/ada/libgnat/g-tty.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, AdaCore -- +-- Copyright (C) 2002-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-u3spch.adb b/gcc/ada/libgnat/g-u3spch.adb index 0012953..a225afb 100644 --- a/gcc/ada/libgnat/g-u3spch.adb +++ b/gcc/ada/libgnat/g-u3spch.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-u3spch.ads b/gcc/ada/libgnat/g-u3spch.ads index c31d604..8960231 100644 --- a/gcc/ada/libgnat/g-u3spch.ads +++ b/gcc/ada/libgnat/g-u3spch.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-utf_32.adb b/gcc/ada/libgnat/g-utf_32.adb index dd5a9b6..82958f8 100644 --- a/gcc/ada/libgnat/g-utf_32.adb +++ b/gcc/ada/libgnat/g-utf_32.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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- -- diff --git a/gcc/ada/libgnat/g-utf_32.ads b/gcc/ada/libgnat/g-utf_32.ads index 11dc6fd..2d6dc72 100644 --- a/gcc/ada/libgnat/g-utf_32.ads +++ b/gcc/ada/libgnat/g-utf_32.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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- -- diff --git a/gcc/ada/libgnat/g-wispch.adb b/gcc/ada/libgnat/g-wispch.adb index 670edc1..403d02a 100644 --- a/gcc/ada/libgnat/g-wispch.adb +++ b/gcc/ada/libgnat/g-wispch.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-wispch.ads b/gcc/ada/libgnat/g-wispch.ads index 1a3b569..cfff62e 100644 --- a/gcc/ada/libgnat/g-wispch.ads +++ b/gcc/ada/libgnat/g-wispch.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-wistsp.ads b/gcc/ada/libgnat/g-wistsp.ads index 2026718..da64a6d 100644 --- a/gcc/ada/libgnat/g-wistsp.ads +++ b/gcc/ada/libgnat/g-wistsp.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/g-zspche.adb b/gcc/ada/libgnat/g-zspche.adb index 0014d49..38684f3 100644 --- a/gcc/ada/libgnat/g-zspche.adb +++ b/gcc/ada/libgnat/g-zspche.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-zspche.ads b/gcc/ada/libgnat/g-zspche.ads index cd9c85a..47f5772 100644 --- a/gcc/ada/libgnat/g-zspche.ads +++ b/gcc/ada/libgnat/g-zspche.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/g-zstspl.ads b/gcc/ada/libgnat/g-zstspl.ads index 16400fd..9a8b5f9 100644 --- a/gcc/ada/libgnat/g-zstspl.ads +++ b/gcc/ada/libgnat/g-zstspl.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/gnat.ads b/gcc/ada/libgnat/gnat.ads index ffcb725..c3217a6 100644 --- a/gcc/ada/libgnat/gnat.ads +++ b/gcc/ada/libgnat/gnat.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, AdaCore -- +-- Copyright (C) 1992-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/i-c.adb b/gcc/ada/libgnat/i-c.adb index 2e651b6..028e5cb 100644 --- a/gcc/ada/libgnat/i-c.adb +++ b/gcc/ada/libgnat/i-c.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/i-c.ads b/gcc/ada/libgnat/i-c.ads index 1088836..279c75a 100644 --- a/gcc/ada/libgnat/i-c.ads +++ b/gcc/ada/libgnat/i-c.ads @@ -36,13 +36,15 @@ package Interfaces.C is type short is new Short_Integer; type long is range -(2 ** (System.Parameters.long_bits - Integer'(1))) .. +(2 ** (System.Parameters.long_bits - Integer'(1))) - 1; + type long_long is new Long_Long_Integer; type signed_char is range SCHAR_MIN .. SCHAR_MAX; for signed_char'Size use CHAR_BIT; - type unsigned is mod 2 ** int'Size; - type unsigned_short is mod 2 ** short'Size; - type unsigned_long is mod 2 ** long'Size; + type unsigned is mod 2 ** int'Size; + type unsigned_short is mod 2 ** short'Size; + type unsigned_long is mod 2 ** long'Size; + type unsigned_long_long is mod 2 ** long_long'Size; type unsigned_char is mod (UCHAR_MAX + 1); for unsigned_char'Size use CHAR_BIT; diff --git a/gcc/ada/libgnat/i-cexten.ads b/gcc/ada/libgnat/i-cexten.ads index d0a0747..2772860 100644 --- a/gcc/ada/libgnat/i-cexten.ads +++ b/gcc/ada/libgnat/i-cexten.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -61,8 +61,8 @@ package Interfaces.C.Extensions is -- 64-bit integer types - subtype long_long is Long_Long_Integer; - type unsigned_long_long is mod 2 ** 64; + subtype long_long is Interfaces.C.long_long; + subtype unsigned_long_long is Interfaces.C.unsigned_long_long; -- 128-bit integer type available on 64-bit platforms: -- typedef int signed_128 __attribute__ ((mode (TI))); diff --git a/gcc/ada/libgnat/i-cobol.adb b/gcc/ada/libgnat/i-cobol.adb index 807a3a1..d69ef9d 100644 --- a/gcc/ada/libgnat/i-cobol.adb +++ b/gcc/ada/libgnat/i-cobol.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -240,11 +240,6 @@ package body Interfaces.COBOL is (COBOL_Character'Pos (K) - COBOL_Character'Pos (COBOL_Digits'First)); - elsif K in COBOL_Plus_Digits then - Result := Result * 10 + - (COBOL_Character'Pos (K) - - COBOL_Character'Pos (COBOL_Plus_Digits'First)); - elsif K in COBOL_Minus_Digits then Result := Result * 10 + (COBOL_Character'Pos (K) - diff --git a/gcc/ada/libgnat/i-cobol.ads b/gcc/ada/libgnat/i-cobol.ads index 1741474..21eecf8 100644 --- a/gcc/ada/libgnat/i-cobol.ads +++ b/gcc/ada/libgnat/i-cobol.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (ASCII Version) -- -- -- --- Copyright (C) 1993-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1993-2020, 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 -- diff --git a/gcc/ada/libgnat/i-cpoint.adb b/gcc/ada/libgnat/i-cpoint.adb index 6f3c530..6e5a2d2 100644 --- a/gcc/ada/libgnat/i-cpoint.adb +++ b/gcc/ada/libgnat/i-cpoint.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/i-cpoint.ads b/gcc/ada/libgnat/i-cpoint.ads index 03ca369..a3caca8 100644 --- a/gcc/ada/libgnat/i-cpoint.ads +++ b/gcc/ada/libgnat/i-cpoint.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1993-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1993-2020, 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 -- diff --git a/gcc/ada/libgnat/i-cstrea.adb b/gcc/ada/libgnat/i-cstrea.adb index 5574908..4cd4bed 100644 --- a/gcc/ada/libgnat/i-cstrea.adb +++ b/gcc/ada/libgnat/i-cstrea.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1996-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1996-2020, 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- -- diff --git a/gcc/ada/libgnat/i-cstrea.ads b/gcc/ada/libgnat/i-cstrea.ads index 2b78a9a..4277042 100644 --- a/gcc/ada/libgnat/i-cstrea.ads +++ b/gcc/ada/libgnat/i-cstrea.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, 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- -- diff --git a/gcc/ada/libgnat/i-cstrin.adb b/gcc/ada/libgnat/i-cstrin.adb index 3d20294..17f4585 100644 --- a/gcc/ada/libgnat/i-cstrin.adb +++ b/gcc/ada/libgnat/i-cstrin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/i-cstrin.ads b/gcc/ada/libgnat/i-cstrin.ads index 0272136..fae8e97 100644 --- a/gcc/ada/libgnat/i-cstrin.ads +++ b/gcc/ada/libgnat/i-cstrin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1993-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1993-2020, 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 -- diff --git a/gcc/ada/libgnat/i-fortra.adb b/gcc/ada/libgnat/i-fortra.adb index f74d632..b529717 100644 --- a/gcc/ada/libgnat/i-fortra.adb +++ b/gcc/ada/libgnat/i-fortra.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/i-pacdec.adb b/gcc/ada/libgnat/i-pacdec.adb index 4f86f5b..e6eb790 100644 --- a/gcc/ada/libgnat/i-pacdec.adb +++ b/gcc/ada/libgnat/i-pacdec.adb @@ -7,7 +7,7 @@ -- B o d y -- -- (Version for IBM Mainframe Packed Decimal Format) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/i-pacdec.ads b/gcc/ada/libgnat/i-pacdec.ads index 43381ac..389dc3a 100644 --- a/gcc/ada/libgnat/i-pacdec.ads +++ b/gcc/ada/libgnat/i-pacdec.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (Version for IBM Mainframe Packed Decimal Format) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/i-vxwoio.adb b/gcc/ada/libgnat/i-vxwoio.adb index 4b75364..4ae2245 100644 --- a/gcc/ada/libgnat/i-vxwoio.adb +++ b/gcc/ada/libgnat/i-vxwoio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/i-vxwoio.ads b/gcc/ada/libgnat/i-vxwoio.ads index 052626e..fc6c10f 100644 --- a/gcc/ada/libgnat/i-vxwoio.ads +++ b/gcc/ada/libgnat/i-vxwoio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/i-vxwork.ads b/gcc/ada/libgnat/i-vxwork.ads index 5285a8c..4f25bbd 100644 --- a/gcc/ada/libgnat/i-vxwork.ads +++ b/gcc/ada/libgnat/i-vxwork.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/i-vxwork__x86.ads b/gcc/ada/libgnat/i-vxwork__x86.ads index 8dc81d2..641f9fe 100644 --- a/gcc/ada/libgnat/i-vxwork__x86.ads +++ b/gcc/ada/libgnat/i-vxwork__x86.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/interfac.ads b/gcc/ada/libgnat/interfac.ads index 829cd8e..9fe7aac 100644 --- a/gcc/ada/libgnat/interfac.ads +++ b/gcc/ada/libgnat/interfac.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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 -- diff --git a/gcc/ada/libgnat/libada.gpr b/gcc/ada/libgnat/libada.gpr new file mode 100644 index 0000000..9453cae --- /dev/null +++ b/gcc/ada/libgnat/libada.gpr @@ -0,0 +1,77 @@ +-- This is a project file used to rebuild the GNAT run-time for debug +-- or instrumentation purposes. +-- +-- Here is how to use this project file: +-- +-- 1. Create a new directory (e.g. "rts-debug"), then copy the adainclude +-- directory from the reference runtime that you want to rebuild. +-- You can find the relevant adainclude directory by running the command +-- gprls [--target=<target>] [--RTS=<runtime>] and using the adainclude +-- directory listed. For example: +-- $ cd <reference directory> +-- $ mkdir rts-debug +-- $ cd rts-debug +-- $ cp -a `gprls -v | grep adainclude` . +-- $ cd adainclude +-- +-- or under Windows: +-- +-- $ mkdir adainclude +-- $ xcopy /s /path/to/adainclude adainclude +-- $ cd adainclude +-- +-- 2. If needed (e.g for pragma Normalize_Scalars), create a file called +-- gnat.adc in the adainclude directory containing the configuration pragmas +-- you want to use to build the library, e.g. +-- +-- $ echo "pragma Normalize_Scalars;" > gnat.adc +-- +-- Note that this step is usually not needed, and most pragmas are not +-- relevant to the GNAT run time. +-- +-- 3. Determine the values of the following variables +-- CFLAGS (back end compilation flags such as -g -O2) +-- ADAFLAGS (front end compilation flags such as -gnatn) +-- +-- 4. Run gprbuild on libada.gpr, e.g: +-- $ gprbuild -p -Plibada -j0 -XCFLAGS="-O2 -g" -XADAFLAGS="-gnatn" +-- +-- or for a cross target: +-- +-- $ gprbuild --target=powerpc-elf -p -Plibada -j0 [...] +-- +-- if you created a gnat.adc file at step 2, add "-XCONFIG_FILE=gnat.adc" to +-- the gprbuild switches. +-- +-- The above command will build libgnat.a and libgnarl.a with the given +-- switches. +-- +-- 4b. In order to generate shared libraries instead, add +-- "-XLIBRARY_KIND=dynamic" to the gprbuild switches, and if you want to +-- build both shared and static libraries, you can run gprbuild twice in +-- a row, e.g: +-- +-- $ gprbuild -p -Plibada -j0 -XLIBRARY_KIND=dynamic [...] +-- $ gprbuild -p -Plibada -j0 -XLIBRARY_KIND=static [...] +-- +-- 5. Once the above gprbuild command is successful, you can use this new +-- runtime directory by specifying it either via the --RTS= switch on the +-- command line or via the attribute Runtime ("Ada") in the main project +-- file: +-- $ gprbuild --RTS=.../rts-debug ... +-- or +-- for Runtime ("Ada") use ".../rts-debug"; + +aggregate project Libada is + for Project_Files use ("libgnat.gpr", "libgnarl.gpr"); + + Config_File := External ("CONFIG_FILE", ""); + + package Builder is + case Config_File is + when "" => null; + when others => for Global_Configuration_Pragmas use Config_File; + end case; + end Builder; + +end Libada; diff --git a/gcc/ada/libgnat/libgnat.gpr b/gcc/ada/libgnat/libgnat.gpr new file mode 100644 index 0000000..006ff2d --- /dev/null +++ b/gcc/ada/libgnat/libgnat.gpr @@ -0,0 +1,69 @@ +with "libgnat_common"; + +library project Libgnat is + + for Languages use ("Ada", "C"); + for Source_Dirs use ("."); + for Source_List_File use "libgnat.lst"; + for Object_Dir use "../obj-" & Libgnat_Common.Library_Kind; + + for Library_Name use "gnat"; + for Library_Dir use "../adalib"; + for Library_Kind use Libgnat_Common.Library_Kind; + + package Compiler is + + for Switches ("C") use Libgnat_Common.C_Flags; + for Switches ("Ada") use Libgnat_Common.Ada_Flags; + + for Switches ("s-traceb.adb") use + Libgnat_Common.Ada_Flags & Libgnat_Common.Force_Debug & + Libgnat_Common.No_Inline & Libgnat_Common.No_Sibling; + -- Force no sibling call optimization on s-traceb.o so the number of + -- stack frames to be skipped when computing a call chain is not + -- modified by optimization. We don.t want inlining, either. + + for Switches ("a-except.adb") use + Libgnat_Common.Ada_Flags & ("-O1") & + Libgnat_Common.Force_Debug & Libgnat_Common.No_Inline & + Libgnat_Common.No_Reorder; + -- Force no function reordering because of the exclusion bounds + -- mechanism (see the source file for more detailed information). + -- Force debugging information so that it is always possible to set + -- conditional breakpoints on exceptions. + -- Use -O1 otherwise gdb isn.t able to get a full backtrace on mips + -- targets. + + for Switches ("s-excdeb.adb") use + Libgnat_Common.Ada_Flags & Libgnat_Common.Force_Debug & + Libgnat_Common.No_Opt; + -- Compile without optimization and with debug info to let the debugger + -- set breakpoints and inspect subprogram parameters on exception + -- related events. + + for Switches ("s-assert.adb") use + Libgnat_Common.Ada_Flags & Libgnat_Common.Force_Debug; + -- Force debugging information on s-assert.o so that it is always + -- possible to set breakpoint on assert failures. + + for Switches ("a-tags.adb") use + Libgnat_Common.Ada_Flags & Libgnat_Common.Force_Debug; + -- Force debugging information on a-tags.o so that the debugger can find + -- the description of Ada.Tags.Type_Specific_Data. + + for Switches ("s-memory.adb") use + Libgnat_Common.Ada_Flags & Libgnat_Common.No_Sibling; + -- Force no sibling call optimization on s-memory.o to avoid turning the + -- tail recursion in Alloc into a loop that confuses branch prediction. + + for Switches ("g-debpoo.adb") use + Libgnat_Common.Ada_Flags & Libgnat_Common.No_Reorder; + -- Need to keep functions ordered on g-debpoo.o since labels are used to + -- exclude subprograms from traceback computation. + + for Switches ("traceback.c") use + Libgnat_Common.C_Flags & Libgnat_Common.No_Omit; + + end Compiler; + +end Libgnat; diff --git a/gcc/ada/libgnat/libgnat_common.gpr b/gcc/ada/libgnat/libgnat_common.gpr new file mode 100644 index 0000000..6303928 --- /dev/null +++ b/gcc/ada/libgnat/libgnat_common.gpr @@ -0,0 +1,19 @@ +abstract project Libgnat_Common is + + Common_Flags := Split (External ("CFLAGS", "-O2 -g"), " "); + C_Flags := Common_Flags & + ("-I../include", "-DIN_RTS=1", "-fexceptions", + "-DSTANDALONE") & + External_As_List ("EXTRALIBFLAGS", " "); + Ada_Flags := Common_Flags & ("-nostdinc", "-I../adainclude") + & Split (External ("ADAFLAGS", "-gnatpg"), " "); + Library_Kind := External ("LIBRARY_KIND", "static"); + + No_Opt := ("-O0"); + Force_Debug := ("-g"); + No_Inline := ("-fno-inline"); + No_Omit := ("-fno-omit-frame-pointer"); + No_Sibling := ("-fno-optimize-sibling-calls"); + No_Reorder := ("-fno-toplevel-reorder", "-O0"); + +end Libgnat_Common; diff --git a/gcc/ada/libgnat/memtrack.adb b/gcc/ada/libgnat/memtrack.adb index 04f3f0f..bd34796 100644 --- a/gcc/ada/libgnat/memtrack.adb +++ b/gcc/ada/libgnat/memtrack.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2001-2020, 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- -- diff --git a/gcc/ada/libgnat/s-addima.adb b/gcc/ada/libgnat/s-addima.adb index 6a7ab7e..a231be2 100644 --- a/gcc/ada/libgnat/s-addima.adb +++ b/gcc/ada/libgnat/s-addima.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-addima.ads b/gcc/ada/libgnat/s-addima.ads index 04bf964..281655d 100644 --- a/gcc/ada/libgnat/s-addima.ads +++ b/gcc/ada/libgnat/s-addima.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-addope.adb b/gcc/ada/libgnat/s-addope.adb index edda33d..5c3fd4a 100644 --- a/gcc/ada/libgnat/s-addope.adb +++ b/gcc/ada/libgnat/s-addope.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/s-addope.ads b/gcc/ada/libgnat/s-addope.ads index fc71956e..881882a 100644 --- a/gcc/ada/libgnat/s-addope.ads +++ b/gcc/ada/libgnat/s-addope.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/s-atopar.adb b/gcc/ada/libgnat/s-aoinar.adb index 82cfbd3..b05134f 100644 --- a/gcc/ada/libgnat/s-atopar.adb +++ b/gcc/ada/libgnat/s-aoinar.adb @@ -2,11 +2,11 @@ -- -- -- GNAT RUN-TIME COMPONENTS -- -- -- --- System.Atomic_Operations.Arithmetic -- +-- System.Atomic_Operations.Integer_Arithmetic -- -- -- -- B o d y -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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- -- @@ -30,9 +30,12 @@ ------------------------------------------------------------------------------ with System.Atomic_Primitives; use System.Atomic_Primitives; +with System.Atomic_Operations.Exchange; with Interfaces.C; -package body System.Atomic_Operations.Arithmetic is +package body System.Atomic_Operations.Integer_Arithmetic is + + package Exchange is new System.Atomic_Operations.Exchange (Atomic_Type); ---------------- -- Atomic_Add -- @@ -88,13 +91,42 @@ package body System.Atomic_Operations.Arithmetic is pragma Warnings (On); begin - case Item'Size is - when 8 => return Atomic_Fetch_Add_1 (Item'Address, Value); - when 16 => return Atomic_Fetch_Add_2 (Item'Address, Value); - when 32 => return Atomic_Fetch_Add_4 (Item'Address, Value); - when 64 => return Atomic_Fetch_Add_8 (Item'Address, Value); - when others => raise Program_Error; - end case; + -- Use the direct intrinsics when possible, and fallback to + -- compare-and-exchange otherwise. + + if Atomic_Type'Base'Last = Atomic_Type'Last + and then Atomic_Type'Base'First = Atomic_Type'First + and then Atomic_Type'Last + in 2 ** 7 - 1 | 2 ** 15 - 1 | 2 ** 31 - 1 | 2 ** 63 - 1 + then + case Long_Long_Integer (Atomic_Type'Last) is + when 2 ** 7 - 1 => + return Atomic_Fetch_Add_1 (Item'Address, Value); + when 2 ** 15 - 1 => + return Atomic_Fetch_Add_2 (Item'Address, Value); + when 2 ** 31 - 1 => + return Atomic_Fetch_Add_4 (Item'Address, Value); + when 2 ** 63 - 1 => + return Atomic_Fetch_Add_8 (Item'Address, Value); + when others => + raise Program_Error; + end case; + else + declare + Old_Value : aliased Atomic_Type := Item; + New_Value : Atomic_Type := Old_Value + Value; + begin + -- Keep iterating until the exchange succeeds + + while not Exchange.Atomic_Compare_And_Exchange + (Item, Old_Value, New_Value) + loop + New_Value := Old_Value + Value; + end loop; + + return Old_Value; + end; + end if; end Atomic_Fetch_And_Add; ------------------------------- @@ -125,13 +157,42 @@ package body System.Atomic_Operations.Arithmetic is pragma Warnings (On); begin - case Item'Size is - when 8 => return Atomic_Fetch_Sub_1 (Item'Address, Value); - when 16 => return Atomic_Fetch_Sub_2 (Item'Address, Value); - when 32 => return Atomic_Fetch_Sub_4 (Item'Address, Value); - when 64 => return Atomic_Fetch_Sub_8 (Item'Address, Value); - when others => raise Program_Error; - end case; + -- Use the direct intrinsics when possible, and fallback to + -- compare-and-exchange otherwise. + + if Atomic_Type'Base'Last = Atomic_Type'Last + and then Atomic_Type'Base'First = Atomic_Type'First + and then Atomic_Type'Last + in 2 ** 7 - 1 | 2 ** 15 - 1 | 2 ** 31 - 1 | 2 ** 63 - 1 + then + case Long_Long_Integer (Atomic_Type'Last) is + when 2 ** 7 - 1 => + return Atomic_Fetch_Sub_1 (Item'Address, Value); + when 2 ** 15 - 1 => + return Atomic_Fetch_Sub_2 (Item'Address, Value); + when 2 ** 31 - 1 => + return Atomic_Fetch_Sub_4 (Item'Address, Value); + when 2 ** 63 - 1 => + return Atomic_Fetch_Sub_8 (Item'Address, Value); + when others => + raise Program_Error; + end case; + else + declare + Old_Value : aliased Atomic_Type := Item; + New_Value : Atomic_Type := Old_Value - Value; + begin + -- Keep iterating until the exchange succeeds + + while not Exchange.Atomic_Compare_And_Exchange + (Item, Old_Value, New_Value) + loop + New_Value := Old_Value - Value; + end loop; + + return Old_Value; + end; + end if; end Atomic_Fetch_And_Subtract; ------------------ @@ -139,9 +200,10 @@ package body System.Atomic_Operations.Arithmetic is ------------------ function Is_Lock_Free (Item : aliased Atomic_Type) return Boolean is + pragma Unreferenced (Item); use type Interfaces.C.size_t; begin - return Boolean (Atomic_Always_Lock_Free (Item'Size / 8)); + return Boolean (Atomic_Always_Lock_Free (Atomic_Type'Object_Size / 8)); end Is_Lock_Free; -end System.Atomic_Operations.Arithmetic; +end System.Atomic_Operations.Integer_Arithmetic; diff --git a/gcc/ada/libgnat/s-atopar.ads b/gcc/ada/libgnat/s-aoinar.ads index 73c2447..558754f 100644 --- a/gcc/ada/libgnat/s-atopar.ads +++ b/gcc/ada/libgnat/s-aoinar.ads @@ -2,11 +2,15 @@ -- -- -- GNAT RUN-TIME COMPONENTS -- -- -- --- System.Atomic_Operations.Arithmetic -- +-- System.Atomic_Operations.Integer_Arithmetic -- -- -- -- S p e c -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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 -- +-- apply solely to the contents of the part following the private keyword. -- -- -- -- 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- -- @@ -29,13 +33,10 @@ -- -- ------------------------------------------------------------------------------ -pragma Ada_2020; - generic type Atomic_Type is range <> with Atomic; -package System.Atomic_Operations.Arithmetic +package System.Atomic_Operations.Integer_Arithmetic with Pure --- Nonblocking is procedure Atomic_Add (Item : aliased in out Atomic_Type; @@ -62,4 +63,4 @@ private pragma Inline_Always (Atomic_Fetch_And_Add); pragma Inline_Always (Atomic_Fetch_And_Subtract); pragma Inline_Always (Is_Lock_Free); -end System.Atomic_Operations.Arithmetic; +end System.Atomic_Operations.Integer_Arithmetic; diff --git a/gcc/ada/libgnat/s-aomoar.adb b/gcc/ada/libgnat/s-aomoar.adb new file mode 100644 index 0000000..9f350c1 --- /dev/null +++ b/gcc/ada/libgnat/s-aomoar.adb @@ -0,0 +1,215 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- System.Atomic_Operations.Modular_Arithmetic -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 2019-2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +with System.Atomic_Primitives; use System.Atomic_Primitives; +with System.Atomic_Operations.Exchange; +with Interfaces.C; use Interfaces; + +package body System.Atomic_Operations.Modular_Arithmetic is + + package Exchange is new System.Atomic_Operations.Exchange (Atomic_Type); + + ---------------- + -- Atomic_Add -- + ---------------- + + procedure Atomic_Add + (Item : aliased in out Atomic_Type; + Value : Atomic_Type) + is + Ignore : constant Atomic_Type := Atomic_Fetch_And_Add (Item, Value); + begin + null; + end Atomic_Add; + + --------------------- + -- Atomic_Subtract -- + --------------------- + + procedure Atomic_Subtract + (Item : aliased in out Atomic_Type; + Value : Atomic_Type) + is + Ignore : constant Atomic_Type := Atomic_Fetch_And_Subtract (Item, Value); + begin + null; + end Atomic_Subtract; + + -------------------------- + -- Atomic_Fetch_And_Add -- + -------------------------- + + function Atomic_Fetch_And_Add + (Item : aliased in out Atomic_Type; + Value : Atomic_Type) return Atomic_Type + is + pragma Warnings (Off); + function Atomic_Fetch_Add_1 + (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst) + return Atomic_Type; + pragma Import (Intrinsic, Atomic_Fetch_Add_1, "__atomic_fetch_add_1"); + function Atomic_Fetch_Add_2 + (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst) + return Atomic_Type; + pragma Import (Intrinsic, Atomic_Fetch_Add_2, "__atomic_fetch_add_2"); + function Atomic_Fetch_Add_4 + (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst) + return Atomic_Type; + pragma Import (Intrinsic, Atomic_Fetch_Add_4, "__atomic_fetch_add_4"); + function Atomic_Fetch_Add_8 + (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst) + return Atomic_Type; + pragma Import (Intrinsic, Atomic_Fetch_Add_8, "__atomic_fetch_add_8"); + pragma Warnings (On); + + begin + -- Use the direct intrinsics when possible, and fallback to + -- compare-and-exchange otherwise. + -- Also suppress spurious warnings. + + pragma Warnings (Off); + if Atomic_Type'Base'Last = Atomic_Type'Last + and then Atomic_Type'First = 0 + and then Atomic_Type'Last + in 2 ** 8 - 1 | 2 ** 16 - 1 | 2 ** 32 - 1 | 2 ** 64 - 1 + then + pragma Warnings (On); + case Unsigned_64 (Atomic_Type'Last) is + when 2 ** 8 - 1 => + return Atomic_Fetch_Add_1 (Item'Address, Value); + when 2 ** 16 - 1 => + return Atomic_Fetch_Add_2 (Item'Address, Value); + when 2 ** 32 - 1 => + return Atomic_Fetch_Add_4 (Item'Address, Value); + when 2 ** 64 - 1 => + return Atomic_Fetch_Add_8 (Item'Address, Value); + when others => + raise Program_Error; + end case; + else + declare + Old_Value : aliased Atomic_Type := Item; + New_Value : Atomic_Type := Old_Value + Value; + begin + -- Keep iterating until the exchange succeeds + + while not Exchange.Atomic_Compare_And_Exchange + (Item, Old_Value, New_Value) + loop + New_Value := Old_Value + Value; + end loop; + + return Old_Value; + end; + end if; + end Atomic_Fetch_And_Add; + + ------------------------------- + -- Atomic_Fetch_And_Subtract -- + ------------------------------- + + function Atomic_Fetch_And_Subtract + (Item : aliased in out Atomic_Type; + Value : Atomic_Type) return Atomic_Type + is + pragma Warnings (Off); + function Atomic_Fetch_Sub_1 + (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst) + return Atomic_Type; + pragma Import (Intrinsic, Atomic_Fetch_Sub_1, "__atomic_fetch_sub_1"); + function Atomic_Fetch_Sub_2 + (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst) + return Atomic_Type; + pragma Import (Intrinsic, Atomic_Fetch_Sub_2, "__atomic_fetch_sub_2"); + function Atomic_Fetch_Sub_4 + (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst) + return Atomic_Type; + pragma Import (Intrinsic, Atomic_Fetch_Sub_4, "__atomic_fetch_sub_4"); + function Atomic_Fetch_Sub_8 + (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst) + return Atomic_Type; + pragma Import (Intrinsic, Atomic_Fetch_Sub_8, "__atomic_fetch_sub_8"); + pragma Warnings (On); + + begin + -- Use the direct intrinsics when possible, and fallback to + -- compare-and-exchange otherwise. + -- Also suppress spurious warnings. + + pragma Warnings (Off); + if Atomic_Type'Base'Last = Atomic_Type'Last + and then Atomic_Type'First = 0 + and then Atomic_Type'Last + in 2 ** 8 - 1 | 2 ** 16 - 1 | 2 ** 32 - 1 | 2 ** 64 - 1 + then + pragma Warnings (On); + case Unsigned_64 (Atomic_Type'Last) is + when 2 ** 8 - 1 => + return Atomic_Fetch_Sub_1 (Item'Address, Value); + when 2 ** 16 - 1 => + return Atomic_Fetch_Sub_2 (Item'Address, Value); + when 2 ** 32 - 1 => + return Atomic_Fetch_Sub_4 (Item'Address, Value); + when 2 ** 64 - 1 => + return Atomic_Fetch_Sub_8 (Item'Address, Value); + when others => + raise Program_Error; + end case; + else + declare + Old_Value : aliased Atomic_Type := Item; + New_Value : Atomic_Type := Old_Value - Value; + begin + -- Keep iterating until the exchange succeeds + + while not Exchange.Atomic_Compare_And_Exchange + (Item, Old_Value, New_Value) + loop + New_Value := Old_Value - Value; + end loop; + + return Old_Value; + end; + end if; + end Atomic_Fetch_And_Subtract; + + ------------------ + -- Is_Lock_Free -- + ------------------ + + function Is_Lock_Free (Item : aliased Atomic_Type) return Boolean is + pragma Unreferenced (Item); + use type Interfaces.C.size_t; + begin + return Boolean (Atomic_Always_Lock_Free (Atomic_Type'Object_Size / 8)); + end Is_Lock_Free; + +end System.Atomic_Operations.Modular_Arithmetic; diff --git a/gcc/ada/libgnat/s-aomoar.ads b/gcc/ada/libgnat/s-aomoar.ads new file mode 100644 index 0000000..4062d1a --- /dev/null +++ b/gcc/ada/libgnat/s-aomoar.ads @@ -0,0 +1,66 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- System.Atomic_Operations.Modular_Arithmetic -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2019-2020, 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 -- +-- apply solely to the contents of the part following the private keyword. -- +-- -- +-- 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +generic + type Atomic_Type is mod <> with Atomic; +package System.Atomic_Operations.Modular_Arithmetic + with Pure +is + procedure Atomic_Add + (Item : aliased in out Atomic_Type; + Value : Atomic_Type) with Convention => Intrinsic; + + procedure Atomic_Subtract + (Item : aliased in out Atomic_Type; + Value : Atomic_Type) with Convention => Intrinsic; + + function Atomic_Fetch_And_Add + (Item : aliased in out Atomic_Type; + Value : Atomic_Type) return Atomic_Type with Convention => Intrinsic; + + function Atomic_Fetch_And_Subtract + (Item : aliased in out Atomic_Type; + Value : Atomic_Type) return Atomic_Type with Convention => Intrinsic; + + function Is_Lock_Free + (Item : aliased Atomic_Type) return Boolean with Convention => Intrinsic; + +private + pragma Inline_Always (Atomic_Add); + pragma Inline_Always (Atomic_Subtract); + pragma Inline_Always (Atomic_Fetch_And_Add); + pragma Inline_Always (Atomic_Fetch_And_Subtract); + pragma Inline_Always (Is_Lock_Free); +end System.Atomic_Operations.Modular_Arithmetic; diff --git a/gcc/ada/libgnat/s-aotase.adb b/gcc/ada/libgnat/s-aotase.adb index 7ed6ab8..84a1a6e 100644 --- a/gcc/ada/libgnat/s-aotase.adb +++ b/gcc/ada/libgnat/s-aotase.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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- -- diff --git a/gcc/ada/libgnat/s-aotase.ads b/gcc/ada/libgnat/s-aotase.ads index 0406630..f979788 100644 --- a/gcc/ada/libgnat/s-aotase.ads +++ b/gcc/ada/libgnat/s-aotase.ads @@ -6,7 +6,11 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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 -- +-- apply solely to the contents of the part following the private keyword. -- -- -- -- 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- -- @@ -31,7 +35,6 @@ package System.Atomic_Operations.Test_And_Set with Pure --- Nonblocking is type Test_And_Set_Flag is mod 2 ** 8 with Atomic, Default_Value => 0, Size => 8; diff --git a/gcc/ada/libgnat/s-arit64.adb b/gcc/ada/libgnat/s-arit64.adb index ede7562..060f352 100644 --- a/gcc/ada/libgnat/s-arit64.adb +++ b/gcc/ada/libgnat/s-arit64.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-arit64.ads b/gcc/ada/libgnat/s-arit64.ads index bc9d5a6..479515f 100644 --- a/gcc/ada/libgnat/s-arit64.ads +++ b/gcc/ada/libgnat/s-arit64.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-assert.adb b/gcc/ada/libgnat/s-assert.adb index 412b5b7..55020b9 100644 --- a/gcc/ada/libgnat/s-assert.adb +++ b/gcc/ada/libgnat/s-assert.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-assert.ads b/gcc/ada/libgnat/s-assert.ads index a5dc808..7dcd93a 100644 --- a/gcc/ada/libgnat/s-assert.ads +++ b/gcc/ada/libgnat/s-assert.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-atacco.adb b/gcc/ada/libgnat/s-atacco.adb index 892d6d7..11857b9 100644 --- a/gcc/ada/libgnat/s-atacco.adb +++ b/gcc/ada/libgnat/s-atacco.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-atacco.ads b/gcc/ada/libgnat/s-atacco.ads index 2609998..e9076cc 100644 --- a/gcc/ada/libgnat/s-atacco.ads +++ b/gcc/ada/libgnat/s-atacco.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/s-atocou.adb b/gcc/ada/libgnat/s-atocou.adb index cb6ead4..5d7f98e 100644 --- a/gcc/ada/libgnat/s-atocou.adb +++ b/gcc/ada/libgnat/s-atocou.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-atocou.ads b/gcc/ada/libgnat/s-atocou.ads index 51930e6..b64f947 100644 --- a/gcc/ada/libgnat/s-atocou.ads +++ b/gcc/ada/libgnat/s-atocou.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-atocou__builtin.adb b/gcc/ada/libgnat/s-atocou__builtin.adb index cf60e68..2f2a5f6 100644 --- a/gcc/ada/libgnat/s-atocou__builtin.adb +++ b/gcc/ada/libgnat/s-atocou__builtin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-atocou__x86.adb b/gcc/ada/libgnat/s-atocou__x86.adb index 322b03f..217cdec 100644 --- a/gcc/ada/libgnat/s-atocou__x86.adb +++ b/gcc/ada/libgnat/s-atocou__x86.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-atoope.ads b/gcc/ada/libgnat/s-atoope.ads index cbe089b..a0f0eb8 100644 --- a/gcc/ada/libgnat/s-atoope.ads +++ b/gcc/ada/libgnat/s-atoope.ads @@ -6,7 +6,11 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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 -- +-- apply solely to the contents of the part following the private keyword. -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-atopex.adb b/gcc/ada/libgnat/s-atopex.adb index 624d3d5..4fb2824 100644 --- a/gcc/ada/libgnat/s-atopex.adb +++ b/gcc/ada/libgnat/s-atopex.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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- -- @@ -66,7 +66,7 @@ package body System.Atomic_Operations.Exchange is pragma Warnings (On); begin - case Item'Size is + case Atomic_Type'Object_Size is when 8 => return Atomic_Exchange_1 (Item'Address, Value); when 16 => return Atomic_Exchange_2 (Item'Address, Value); when 32 => return Atomic_Exchange_4 (Item'Address, Value); @@ -124,7 +124,7 @@ package body System.Atomic_Operations.Exchange is pragma Warnings (On); begin - case Item'Size is + case Atomic_Type'Object_Size is when 8 => return Boolean (Atomic_Compare_Exchange_1 @@ -151,9 +151,10 @@ package body System.Atomic_Operations.Exchange is ------------------ function Is_Lock_Free (Item : aliased Atomic_Type) return Boolean is + pragma Unreferenced (Item); use type Interfaces.C.size_t; begin - return Boolean (Atomic_Always_Lock_Free (Item'Size / 8)); + return Boolean (Atomic_Always_Lock_Free (Atomic_Type'Object_Size / 8)); end Is_Lock_Free; end System.Atomic_Operations.Exchange; diff --git a/gcc/ada/libgnat/s-atopex.ads b/gcc/ada/libgnat/s-atopex.ads index 51db0b9..996883c 100644 --- a/gcc/ada/libgnat/s-atopex.ads +++ b/gcc/ada/libgnat/s-atopex.ads @@ -6,7 +6,11 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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 -- +-- apply solely to the contents of the part following the private keyword. -- -- -- -- 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- -- @@ -29,13 +33,10 @@ -- -- ------------------------------------------------------------------------------ -pragma Ada_2020; - generic type Atomic_Type is private with Atomic; package System.Atomic_Operations.Exchange with Pure --- Blocking is function Atomic_Exchange (Item : aliased in out Atomic_Type; diff --git a/gcc/ada/libgnat/s-atopri.adb b/gcc/ada/libgnat/s-atopri.adb index f1b8a55..fa40d20 100644 --- a/gcc/ada/libgnat/s-atopri.adb +++ b/gcc/ada/libgnat/s-atopri.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2012-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2012-2020, 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- -- diff --git a/gcc/ada/libgnat/s-atopri.ads b/gcc/ada/libgnat/s-atopri.ads index b65156a..603793f 100644 --- a/gcc/ada/libgnat/s-atopri.ads +++ b/gcc/ada/libgnat/s-atopri.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2012-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2012-2020, 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- -- diff --git a/gcc/ada/libgnat/s-auxdec.adb b/gcc/ada/libgnat/s-auxdec.adb index 51c0c33..19741ea 100644 --- a/gcc/ada/libgnat/s-auxdec.adb +++ b/gcc/ada/libgnat/s-auxdec.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-auxdec.ads b/gcc/ada/libgnat/s-auxdec.ads index f8defb2..66a9c9e 100644 --- a/gcc/ada/libgnat/s-auxdec.ads +++ b/gcc/ada/libgnat/s-auxdec.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1996-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1996-2020, 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- -- @@ -198,6 +198,8 @@ package System.Aux_DEC is type Unsigned_Quadword_Array is array (Integer range <>) of Unsigned_Quadword; + subtype Address_Int is Integer; + function To_Address (X : Integer) return Address; pragma Pure_Function (To_Address); diff --git a/gcc/ada/libgnat/s-bignum.adb b/gcc/ada/libgnat/s-bignum.adb index bde6c1f..5e85c4a 100644 --- a/gcc/ada/libgnat/s-bignum.adb +++ b/gcc/ada/libgnat/s-bignum.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2012-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2012-2020, 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- -- @@ -29,68 +29,121 @@ -- -- ------------------------------------------------------------------------------ -with System.Generic_Bignums; with Ada.Unchecked_Conversion; +with System.Generic_Bignums; +with System.Secondary_Stack; use System.Secondary_Stack; +with System.Shared_Bignums; use System.Shared_Bignums; +with System.Storage_Elements; use System.Storage_Elements; package body System.Bignums is - package Sec_Stack_Bignums is new - System.Generic_Bignums (Use_Secondary_Stack => True); - use Sec_Stack_Bignums; + function Allocate_Bignum (D : Digit_Vector; Neg : Boolean) return Bignum; + -- Allocate Bignum value with the given contents + + procedure Free_Bignum (X : in out Bignum) is null; + -- No op when using the secondary stack + + function To_Bignum (X : aliased in out Bignum) return Bignum is (X); + + --------------------- + -- Allocate_Bignum -- + --------------------- + + function Allocate_Bignum (D : Digit_Vector; Neg : Boolean) return Bignum is + Addr : aliased Address; + begin + -- Note: The approach used here is designed to avoid strict aliasing + -- warnings that appeared previously using unchecked conversion. + + SS_Allocate (Addr, Storage_Offset (4 + 4 * D'Length)); + + declare + B : Bignum; + for B'Address use Addr'Address; + pragma Import (Ada, B); + + BD : Bignum_Data (D'Length); + for BD'Address use Addr; + pragma Import (Ada, BD); + + -- Expose a writable view of discriminant BD.Len so that we can + -- initialize it. We need to use the exact layout of the record + -- to ensure that the Length field has 24 bits as expected. + + type Bignum_Data_Header is record + Len : Length; + Neg : Boolean; + end record; + + for Bignum_Data_Header use record + Len at 0 range 0 .. 23; + Neg at 3 range 0 .. 7; + end record; + + BDH : Bignum_Data_Header; + for BDH'Address use BD'Address; + pragma Import (Ada, BDH); + + pragma Assert (BDH.Len'Size = BD.Len'Size); - function "+" is new Ada.Unchecked_Conversion - (Bignum, Sec_Stack_Bignums.Bignum); + begin + BDH.Len := D'Length; + BDH.Neg := Neg; + B.D := D; + return B; + end; + end Allocate_Bignum; - function "-" is new Ada.Unchecked_Conversion - (Sec_Stack_Bignums.Bignum, Bignum); + package Sec_Stack_Bignums is new System.Generic_Bignums + (Bignum, Allocate_Bignum, Free_Bignum, To_Bignum); - function Big_Add (X, Y : Bignum) return Bignum is - (-Sec_Stack_Bignums.Big_Add (+X, +Y)); + function Big_Add (X, Y : Bignum) return Bignum + renames Sec_Stack_Bignums.Big_Add; - function Big_Sub (X, Y : Bignum) return Bignum is - (-Sec_Stack_Bignums.Big_Sub (+X, +Y)); + function Big_Sub (X, Y : Bignum) return Bignum + renames Sec_Stack_Bignums.Big_Sub; - function Big_Mul (X, Y : Bignum) return Bignum is - (-Sec_Stack_Bignums.Big_Mul (+X, +Y)); + function Big_Mul (X, Y : Bignum) return Bignum + renames Sec_Stack_Bignums.Big_Mul; - function Big_Div (X, Y : Bignum) return Bignum is - (-Sec_Stack_Bignums.Big_Div (+X, +Y)); + function Big_Div (X, Y : Bignum) return Bignum + renames Sec_Stack_Bignums.Big_Div; - function Big_Exp (X, Y : Bignum) return Bignum is - (-Sec_Stack_Bignums.Big_Exp (+X, +Y)); + function Big_Exp (X, Y : Bignum) return Bignum + renames Sec_Stack_Bignums.Big_Exp; - function Big_Mod (X, Y : Bignum) return Bignum is - (-Sec_Stack_Bignums.Big_Mod (+X, +Y)); + function Big_Mod (X, Y : Bignum) return Bignum + renames Sec_Stack_Bignums.Big_Mod; - function Big_Rem (X, Y : Bignum) return Bignum is - (-Sec_Stack_Bignums.Big_Rem (+X, +Y)); + function Big_Rem (X, Y : Bignum) return Bignum + renames Sec_Stack_Bignums.Big_Rem; - function Big_Neg (X : Bignum) return Bignum is - (-Sec_Stack_Bignums.Big_Neg (+X)); + function Big_Neg (X : Bignum) return Bignum + renames Sec_Stack_Bignums.Big_Neg; - function Big_Abs (X : Bignum) return Bignum is - (-Sec_Stack_Bignums.Big_Abs (+X)); + function Big_Abs (X : Bignum) return Bignum + renames Sec_Stack_Bignums.Big_Abs; - function Big_EQ (X, Y : Bignum) return Boolean is - (Sec_Stack_Bignums.Big_EQ (+X, +Y)); - function Big_NE (X, Y : Bignum) return Boolean is - (Sec_Stack_Bignums.Big_NE (+X, +Y)); - function Big_GE (X, Y : Bignum) return Boolean is - (Sec_Stack_Bignums.Big_GE (+X, +Y)); - function Big_LE (X, Y : Bignum) return Boolean is - (Sec_Stack_Bignums.Big_LE (+X, +Y)); - function Big_GT (X, Y : Bignum) return Boolean is - (Sec_Stack_Bignums.Big_GT (+X, +Y)); - function Big_LT (X, Y : Bignum) return Boolean is - (Sec_Stack_Bignums.Big_LT (+X, +Y)); + function Big_EQ (X, Y : Bignum) return Boolean + renames Sec_Stack_Bignums.Big_EQ; + function Big_NE (X, Y : Bignum) return Boolean + renames Sec_Stack_Bignums.Big_NE; + function Big_GE (X, Y : Bignum) return Boolean + renames Sec_Stack_Bignums.Big_GE; + function Big_LE (X, Y : Bignum) return Boolean + renames Sec_Stack_Bignums.Big_LE; + function Big_GT (X, Y : Bignum) return Boolean + renames Sec_Stack_Bignums.Big_GT; + function Big_LT (X, Y : Bignum) return Boolean + renames Sec_Stack_Bignums.Big_LT; - function Bignum_In_LLI_Range (X : Bignum) return Boolean is - (Sec_Stack_Bignums.Bignum_In_LLI_Range (+X)); + function Bignum_In_LLI_Range (X : Bignum) return Boolean + renames Sec_Stack_Bignums.Bignum_In_LLI_Range; - function To_Bignum (X : Long_Long_Integer) return Bignum is - (-Sec_Stack_Bignums.To_Bignum (X)); + function To_Bignum (X : Long_Long_Integer) return Bignum + renames Sec_Stack_Bignums.To_Bignum; - function From_Bignum (X : Bignum) return Long_Long_Integer is - (Sec_Stack_Bignums.From_Bignum (+X)); + function From_Bignum (X : Bignum) return Long_Long_Integer + renames Sec_Stack_Bignums.From_Bignum; end System.Bignums; diff --git a/gcc/ada/libgnat/s-bignum.ads b/gcc/ada/libgnat/s-bignum.ads index 5edb62c..728e5438 100644 --- a/gcc/ada/libgnat/s-bignum.ads +++ b/gcc/ada/libgnat/s-bignum.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2012-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2012-2020, 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- -- @@ -36,10 +36,12 @@ -- Note that we cannot use a straight instantiation of System.Generic_Bignums -- because the rtsfind mechanism is not ready to handle instantiations. +with System.Shared_Bignums; + package System.Bignums is pragma Preelaborate; - type Bignum is private; + subtype Bignum is System.Shared_Bignums.Bignum; function Big_Add (X, Y : Bignum) return Bignum; -- "+" function Big_Sub (X, Y : Bignum) return Bignum; -- "-" @@ -77,8 +79,6 @@ package System.Bignums is private - type Bignum is new System.Address; - pragma Inline (Big_Add); pragma Inline (Big_Sub); pragma Inline (Big_Mul); diff --git a/gcc/ada/libgnat/s-bitfie.ads b/gcc/ada/libgnat/s-bitfie.ads index a90605b..4f17a9c 100644 --- a/gcc/ada/libgnat/s-bitfie.ads +++ b/gcc/ada/libgnat/s-bitfie.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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- -- diff --git a/gcc/ada/libgnat/s-bitops.adb b/gcc/ada/libgnat/s-bitops.adb index 7535810..19bf14f 100644 --- a/gcc/ada/libgnat/s-bitops.adb +++ b/gcc/ada/libgnat/s-bitops.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1996-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1996-2020, 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- -- diff --git a/gcc/ada/libgnat/s-bitops.ads b/gcc/ada/libgnat/s-bitops.ads index b7f8b0a..8caf77c 100644 --- a/gcc/ada/libgnat/s-bitops.ads +++ b/gcc/ada/libgnat/s-bitops.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-bituti.adb b/gcc/ada/libgnat/s-bituti.adb index b425e9f..e3bd70a 100644 --- a/gcc/ada/libgnat/s-bituti.adb +++ b/gcc/ada/libgnat/s-bituti.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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- -- diff --git a/gcc/ada/libgnat/s-bituti.ads b/gcc/ada/libgnat/s-bituti.ads index 1e446c1..305133b 100644 --- a/gcc/ada/libgnat/s-bituti.ads +++ b/gcc/ada/libgnat/s-bituti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2019-2020, 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- -- diff --git a/gcc/ada/libgnat/s-boarop.ads b/gcc/ada/libgnat/s-boarop.ads index c648413..3f3656d 100644 --- a/gcc/ada/libgnat/s-boarop.ads +++ b/gcc/ada/libgnat/s-boarop.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-boustr.adb b/gcc/ada/libgnat/s-boustr.adb index 3b878a9..d153f10 100644 --- a/gcc/ada/libgnat/s-boustr.adb +++ b/gcc/ada/libgnat/s-boustr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2016-2019, AdaCore -- +-- Copyright (C) 2016-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-boustr.ads b/gcc/ada/libgnat/s-boustr.ads index af88c23..e49c5aa 100644 --- a/gcc/ada/libgnat/s-boustr.ads +++ b/gcc/ada/libgnat/s-boustr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2016-2019, AdaCore -- +-- Copyright (C) 2016-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-bytswa.ads b/gcc/ada/libgnat/s-bytswa.ads index 7ba6047..76d8ded 100644 --- a/gcc/ada/libgnat/s-bytswa.ads +++ b/gcc/ada/libgnat/s-bytswa.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2006-2019, AdaCore -- +-- Copyright (C) 2006-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-carsi8.adb b/gcc/ada/libgnat/s-carsi8.adb index 8ffdb67..11ec460 100644 --- a/gcc/ada/libgnat/s-carsi8.adb +++ b/gcc/ada/libgnat/s-carsi8.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-carsi8.ads b/gcc/ada/libgnat/s-carsi8.ads index 7830859..a515aad 100644 --- a/gcc/ada/libgnat/s-carsi8.ads +++ b/gcc/ada/libgnat/s-carsi8.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-carun8.adb b/gcc/ada/libgnat/s-carun8.adb index 3304769..412410e 100644 --- a/gcc/ada/libgnat/s-carun8.adb +++ b/gcc/ada/libgnat/s-carun8.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-carun8.ads b/gcc/ada/libgnat/s-carun8.ads index f4694d1..f74c1e3 100644 --- a/gcc/ada/libgnat/s-carun8.ads +++ b/gcc/ada/libgnat/s-carun8.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-casi16.adb b/gcc/ada/libgnat/s-casi16.adb index 40741f4..17f8429 100644 --- a/gcc/ada/libgnat/s-casi16.adb +++ b/gcc/ada/libgnat/s-casi16.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-casi16.ads b/gcc/ada/libgnat/s-casi16.ads index 83b5fc9..cdb9b51 100644 --- a/gcc/ada/libgnat/s-casi16.ads +++ b/gcc/ada/libgnat/s-casi16.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-casi32.adb b/gcc/ada/libgnat/s-casi32.adb index b125d25..9d54fe3 100644 --- a/gcc/ada/libgnat/s-casi32.adb +++ b/gcc/ada/libgnat/s-casi32.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-casi32.ads b/gcc/ada/libgnat/s-casi32.ads index f497fbb..90ffaf0 100644 --- a/gcc/ada/libgnat/s-casi32.ads +++ b/gcc/ada/libgnat/s-casi32.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-casi64.adb b/gcc/ada/libgnat/s-casi64.adb index 4ec7161..464f99e 100644 --- a/gcc/ada/libgnat/s-casi64.adb +++ b/gcc/ada/libgnat/s-casi64.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-casi64.ads b/gcc/ada/libgnat/s-casi64.ads index f512c56..7296dd8 100644 --- a/gcc/ada/libgnat/s-casi64.ads +++ b/gcc/ada/libgnat/s-casi64.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-casuti.adb b/gcc/ada/libgnat/s-casuti.adb index 712b2b4..a8982f2 100644 --- a/gcc/ada/libgnat/s-casuti.adb +++ b/gcc/ada/libgnat/s-casuti.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-casuti.ads b/gcc/ada/libgnat/s-casuti.ads index 09b8ae0..4204b5e 100644 --- a/gcc/ada/libgnat/s-casuti.ads +++ b/gcc/ada/libgnat/s-casuti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, 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- -- diff --git a/gcc/ada/libgnat/s-caun16.adb b/gcc/ada/libgnat/s-caun16.adb index df3dcc1..ef016b5 100644 --- a/gcc/ada/libgnat/s-caun16.adb +++ b/gcc/ada/libgnat/s-caun16.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-caun16.ads b/gcc/ada/libgnat/s-caun16.ads index 8efac8a..beb6322 100644 --- a/gcc/ada/libgnat/s-caun16.ads +++ b/gcc/ada/libgnat/s-caun16.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-caun32.adb b/gcc/ada/libgnat/s-caun32.adb index d0ae97d..6979dfc 100644 --- a/gcc/ada/libgnat/s-caun32.adb +++ b/gcc/ada/libgnat/s-caun32.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-caun32.ads b/gcc/ada/libgnat/s-caun32.ads index e4fb4f9..8f07450b 100644 --- a/gcc/ada/libgnat/s-caun32.ads +++ b/gcc/ada/libgnat/s-caun32.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-caun64.adb b/gcc/ada/libgnat/s-caun64.adb index 2184721..32e3749 100644 --- a/gcc/ada/libgnat/s-caun64.adb +++ b/gcc/ada/libgnat/s-caun64.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-caun64.ads b/gcc/ada/libgnat/s-caun64.ads index 5d1413f..e732fc7 100644 --- a/gcc/ada/libgnat/s-caun64.ads +++ b/gcc/ada/libgnat/s-caun64.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-chepoo.ads b/gcc/ada/libgnat/s-chepoo.ads index b253df7..47ea922 100644 --- a/gcc/ada/libgnat/s-chepoo.ads +++ b/gcc/ada/libgnat/s-chepoo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-commun.adb b/gcc/ada/libgnat/s-commun.adb index 65b2a14..0e924be 100644 --- a/gcc/ada/libgnat/s-commun.adb +++ b/gcc/ada/libgnat/s-commun.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-commun.ads b/gcc/ada/libgnat/s-commun.ads index 4528415..b338343 100644 --- a/gcc/ada/libgnat/s-commun.ads +++ b/gcc/ada/libgnat/s-commun.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, AdaCore -- +-- Copyright (C) 2001-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-conca2.adb b/gcc/ada/libgnat/s-conca2.adb index 37ec804..3b6639c 100644 --- a/gcc/ada/libgnat/s-conca2.adb +++ b/gcc/ada/libgnat/s-conca2.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca2.ads b/gcc/ada/libgnat/s-conca2.ads index 2250e09..d120d47 100644 --- a/gcc/ada/libgnat/s-conca2.ads +++ b/gcc/ada/libgnat/s-conca2.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca3.adb b/gcc/ada/libgnat/s-conca3.adb index 4685218..1115434 100644 --- a/gcc/ada/libgnat/s-conca3.adb +++ b/gcc/ada/libgnat/s-conca3.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca3.ads b/gcc/ada/libgnat/s-conca3.ads index 4c0c454..6935974 100644 --- a/gcc/ada/libgnat/s-conca3.ads +++ b/gcc/ada/libgnat/s-conca3.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca4.adb b/gcc/ada/libgnat/s-conca4.adb index 81e47b8..b170b1f 100644 --- a/gcc/ada/libgnat/s-conca4.adb +++ b/gcc/ada/libgnat/s-conca4.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca4.ads b/gcc/ada/libgnat/s-conca4.ads index cca1844..64157df 100644 --- a/gcc/ada/libgnat/s-conca4.ads +++ b/gcc/ada/libgnat/s-conca4.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca5.adb b/gcc/ada/libgnat/s-conca5.adb index 9612681..0b14a5c 100644 --- a/gcc/ada/libgnat/s-conca5.adb +++ b/gcc/ada/libgnat/s-conca5.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca5.ads b/gcc/ada/libgnat/s-conca5.ads index 8dfbda9..ec6c326 100644 --- a/gcc/ada/libgnat/s-conca5.ads +++ b/gcc/ada/libgnat/s-conca5.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca6.adb b/gcc/ada/libgnat/s-conca6.adb index d56523c..43a15b9 100644 --- a/gcc/ada/libgnat/s-conca6.adb +++ b/gcc/ada/libgnat/s-conca6.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca6.ads b/gcc/ada/libgnat/s-conca6.ads index 95b377d..20a9075 100644 --- a/gcc/ada/libgnat/s-conca6.ads +++ b/gcc/ada/libgnat/s-conca6.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca7.adb b/gcc/ada/libgnat/s-conca7.adb index 418c637..9691ec0 100644 --- a/gcc/ada/libgnat/s-conca7.adb +++ b/gcc/ada/libgnat/s-conca7.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca7.ads b/gcc/ada/libgnat/s-conca7.ads index 859e63a..2a382c2 100644 --- a/gcc/ada/libgnat/s-conca7.ads +++ b/gcc/ada/libgnat/s-conca7.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca8.adb b/gcc/ada/libgnat/s-conca8.adb index 53e3f19..44968ac 100644 --- a/gcc/ada/libgnat/s-conca8.adb +++ b/gcc/ada/libgnat/s-conca8.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca8.ads b/gcc/ada/libgnat/s-conca8.ads index 027f3c0..1bee3cf 100644 --- a/gcc/ada/libgnat/s-conca8.ads +++ b/gcc/ada/libgnat/s-conca8.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca9.adb b/gcc/ada/libgnat/s-conca9.adb index 9b3f33d..b5c4ade 100644 --- a/gcc/ada/libgnat/s-conca9.adb +++ b/gcc/ada/libgnat/s-conca9.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-conca9.ads b/gcc/ada/libgnat/s-conca9.ads index 632a002..fc900c6 100644 --- a/gcc/ada/libgnat/s-conca9.ads +++ b/gcc/ada/libgnat/s-conca9.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-crc32.adb b/gcc/ada/libgnat/s-crc32.adb index ae415e3..49df8c2 100644 --- a/gcc/ada/libgnat/s-crc32.adb +++ b/gcc/ada/libgnat/s-crc32.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2001-2020, 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- -- diff --git a/gcc/ada/libgnat/s-crc32.ads b/gcc/ada/libgnat/s-crc32.ads index 065ac1b..3591120 100644 --- a/gcc/ada/libgnat/s-crc32.ads +++ b/gcc/ada/libgnat/s-crc32.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2001-2020, 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- -- diff --git a/gcc/ada/libgnat/s-crtl.ads b/gcc/ada/libgnat/s-crtl.ads index 306a607..a3299ef 100644 --- a/gcc/ada/libgnat/s-crtl.ads +++ b/gcc/ada/libgnat/s-crtl.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/s-dfmkio.ads b/gcc/ada/libgnat/s-dfmkio.ads index 1629edb..cad07fe 100644 --- a/gcc/ada/libgnat/s-dfmkio.ads +++ b/gcc/ada/libgnat/s-dfmkio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2018-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2018-2020, 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- -- diff --git a/gcc/ada/libgnat/s-dfmopr.ads b/gcc/ada/libgnat/s-dfmopr.ads index be71b4f..f9e24bb 100644 --- a/gcc/ada/libgnat/s-dfmopr.ads +++ b/gcc/ada/libgnat/s-dfmopr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2018-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2018-2020, 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- -- diff --git a/gcc/ada/libgnat/s-dgmgop.ads b/gcc/ada/libgnat/s-dgmgop.ads index 5f38c65..3141ddb 100644 --- a/gcc/ada/libgnat/s-dgmgop.ads +++ b/gcc/ada/libgnat/s-dgmgop.ads @@ -7,7 +7,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-diflio.adb b/gcc/ada/libgnat/s-diflio.adb index 20afccc..222679ef 100644 --- a/gcc/ada/libgnat/s-diflio.adb +++ b/gcc/ada/libgnat/s-diflio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-diflio.ads b/gcc/ada/libgnat/s-diflio.ads index fb92ea9..67bce0f 100644 --- a/gcc/ada/libgnat/s-diflio.ads +++ b/gcc/ada/libgnat/s-diflio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-diflmk.ads b/gcc/ada/libgnat/s-diflmk.ads index fcd5938..6ba1e01 100644 --- a/gcc/ada/libgnat/s-diflmk.ads +++ b/gcc/ada/libgnat/s-diflmk.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2018-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2018-2020, 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- -- diff --git a/gcc/ada/libgnat/s-digemk.ads b/gcc/ada/libgnat/s-digemk.ads index 6a2798a..5013083 100644 --- a/gcc/ada/libgnat/s-digemk.ads +++ b/gcc/ada/libgnat/s-digemk.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-diinio.adb b/gcc/ada/libgnat/s-diinio.adb index 2439769..a067ccc 100644 --- a/gcc/ada/libgnat/s-diinio.adb +++ b/gcc/ada/libgnat/s-diinio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-diinio.ads b/gcc/ada/libgnat/s-diinio.ads index a54804b..ddcd716 100644 --- a/gcc/ada/libgnat/s-diinio.ads +++ b/gcc/ada/libgnat/s-diinio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-dilomk.ads b/gcc/ada/libgnat/s-dilomk.ads index 0666b2d..df3d28f 100644 --- a/gcc/ada/libgnat/s-dilomk.ads +++ b/gcc/ada/libgnat/s-dilomk.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2018-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2018-2020, 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- -- diff --git a/gcc/ada/libgnat/s-dim.ads b/gcc/ada/libgnat/s-dim.ads index d119371..9780a85 100644 --- a/gcc/ada/libgnat/s-dim.ads +++ b/gcc/ada/libgnat/s-dim.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2012-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2012-2020, 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- -- diff --git a/gcc/ada/libgnat/s-dimkio.ads b/gcc/ada/libgnat/s-dimkio.ads index bb87bdf..4293103 100644 --- a/gcc/ada/libgnat/s-dimkio.ads +++ b/gcc/ada/libgnat/s-dimkio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-dimmks.ads b/gcc/ada/libgnat/s-dimmks.ads index 5a3f8e4..24eb0b9 100644 --- a/gcc/ada/libgnat/s-dimmks.ads +++ b/gcc/ada/libgnat/s-dimmks.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-direio.adb b/gcc/ada/libgnat/s-direio.adb index 23b1157..0ebc2bc 100644 --- a/gcc/ada/libgnat/s-direio.adb +++ b/gcc/ada/libgnat/s-direio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-direio.ads b/gcc/ada/libgnat/s-direio.ads index c2672ca..aa93797 100644 --- a/gcc/ada/libgnat/s-direio.ads +++ b/gcc/ada/libgnat/s-direio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-dlmkio.ads b/gcc/ada/libgnat/s-dlmkio.ads index 2a13299..fccfd8b 100644 --- a/gcc/ada/libgnat/s-dlmkio.ads +++ b/gcc/ada/libgnat/s-dlmkio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2018-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2018-2020, 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- -- diff --git a/gcc/ada/libgnat/s-dlmopr.ads b/gcc/ada/libgnat/s-dlmopr.ads index 53dc586..ee743d5 100644 --- a/gcc/ada/libgnat/s-dlmopr.ads +++ b/gcc/ada/libgnat/s-dlmopr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2018-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2018-2020, 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- -- diff --git a/gcc/ada/libgnat/s-dmotpr.ads b/gcc/ada/libgnat/s-dmotpr.ads index 0208341..04d6ca4 100644 --- a/gcc/ada/libgnat/s-dmotpr.ads +++ b/gcc/ada/libgnat/s-dmotpr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-dsaser.ads b/gcc/ada/libgnat/s-dsaser.ads index 2275669..4f38d8b 100644 --- a/gcc/ada/libgnat/s-dsaser.ads +++ b/gcc/ada/libgnat/s-dsaser.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2006-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2006-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-dwalin.adb b/gcc/ada/libgnat/s-dwalin.adb index 5307eae..dbd4c53 100644 --- a/gcc/ada/libgnat/s-dwalin.adb +++ b/gcc/ada/libgnat/s-dwalin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- @@ -440,6 +440,10 @@ package body System.Dwarf_Lines is or else Info_Sec = Null_Section or else Aranges_Sec = Null_Section then + pragma Annotate + (CodePeer, False_Positive, + "test always true", "codepeer got confused"); + C.Has_Debug := False; return; end if; @@ -883,6 +887,7 @@ package body System.Dwarf_Lines is Success : out Boolean) is begin + Info_Offset := 0; Seek (C.Aranges, 0); while Tell (C.Aranges) < Length (C.Aranges) loop @@ -905,6 +910,7 @@ package body System.Dwarf_Lines is end; end loop; end loop; + Success := False; end Aranges_Lookup; @@ -1028,6 +1034,7 @@ package body System.Dwarf_Lines is Has_Child : uint8; pragma Unreferenced (Has_Child); begin + Line_Offset := 0; Success := False; Seek (C.Info, Info_Offset); @@ -1119,7 +1126,8 @@ package body System.Dwarf_Lines is Version : uint16; Sz : uint8; begin - Success := False; + Success := False; + Info_Offset := 0; Read_Initial_Length (C.Aranges, Unit_Length, Is64); @@ -1407,6 +1415,7 @@ package body System.Dwarf_Lines is Success : Boolean; Done : Boolean; S : Object_Symbol; + begin -- Initialize result Dir_Name := null; @@ -1422,6 +1431,8 @@ package body System.Dwarf_Lines is begin First := C.Cache'First; Last := C.Cache'Last; + Mid := First; + while First <= Last loop Mid := First + (Last - First) / 2; if Addr_Off < C.Cache (Mid).First then @@ -1432,6 +1443,7 @@ package body System.Dwarf_Lines is exit; end if; end loop; + if Addr_Off >= C.Cache (Mid).First and then Addr_Off < C.Cache (Mid).First + C.Cache (Mid).Size then @@ -1474,6 +1486,7 @@ package body System.Dwarf_Lines is C.Next_Prologue := 0; Initialize_State_Machine (C); Parse_Prologue (C); + Previous_Row.Line := 0; -- Advance to the first entry @@ -1535,7 +1548,7 @@ package body System.Dwarf_Lines is (Cin : Dwarf_Context; Traceback : AET.Tracebacks_Array; Suppress_Hex : Boolean; - Symbol_Found : in out Boolean; + Symbol_Found : out Boolean; Res : in out System.Bounded_Strings.Bounded_String) is use Ada.Characters.Handling; diff --git a/gcc/ada/libgnat/s-dwalin.ads b/gcc/ada/libgnat/s-dwalin.ads index 297fd8e..2753be3 100644 --- a/gcc/ada/libgnat/s-dwalin.ads +++ b/gcc/ada/libgnat/s-dwalin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- @@ -93,7 +93,7 @@ package System.Dwarf_Lines is (Cin : Dwarf_Context; Traceback : AET.Tracebacks_Array; Suppress_Hex : Boolean; - Symbol_Found : in out Boolean; + Symbol_Found : out Boolean; Res : in out System.Bounded_Strings.Bounded_String); -- Generate a string for a traceback suitable for displaying to the user. -- If one or more symbols are found, Symbol_Found is set to True. This diff --git a/gcc/ada/libgnat/s-elaall.adb b/gcc/ada/libgnat/s-elaall.adb index 24fc0ff..03ed66c 100644 --- a/gcc/ada/libgnat/s-elaall.adb +++ b/gcc/ada/libgnat/s-elaall.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2014-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2014-2020, 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- -- diff --git a/gcc/ada/libgnat/s-elaall.ads b/gcc/ada/libgnat/s-elaall.ads index 3773b72..27344bf 100644 --- a/gcc/ada/libgnat/s-elaall.ads +++ b/gcc/ada/libgnat/s-elaall.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2014-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2014-2020, 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- -- diff --git a/gcc/ada/libgnat/s-excdeb.adb b/gcc/ada/libgnat/s-excdeb.adb index 8e48caf..56efde6 100644 --- a/gcc/ada/libgnat/s-excdeb.adb +++ b/gcc/ada/libgnat/s-excdeb.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2006-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2006-2020, 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- -- diff --git a/gcc/ada/libgnat/s-excdeb.ads b/gcc/ada/libgnat/s-excdeb.ads index 7afdb6c..c1836b2 100644 --- a/gcc/ada/libgnat/s-excdeb.ads +++ b/gcc/ada/libgnat/s-excdeb.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2006-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2006-2020, 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- -- diff --git a/gcc/ada/libgnat/s-except.adb b/gcc/ada/libgnat/s-except.adb index b742226..228cf2b 100644 --- a/gcc/ada/libgnat/s-except.adb +++ b/gcc/ada/libgnat/s-except.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2006-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2006-2020, 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- -- diff --git a/gcc/ada/libgnat/s-except.ads b/gcc/ada/libgnat/s-except.ads index 02a139f..29d960e 100644 --- a/gcc/ada/libgnat/s-except.ads +++ b/gcc/ada/libgnat/s-except.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2006-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2006-2020, 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- -- diff --git a/gcc/ada/libgnat/s-excmac__arm.adb b/gcc/ada/libgnat/s-excmac__arm.adb index 5571245..faf53b7 100644 --- a/gcc/ada/libgnat/s-excmac__arm.adb +++ b/gcc/ada/libgnat/s-excmac__arm.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2013-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2013-2020, 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- -- diff --git a/gcc/ada/libgnat/s-excmac__arm.ads b/gcc/ada/libgnat/s-excmac__arm.ads index 380c116..65269ae 100644 --- a/gcc/ada/libgnat/s-excmac__arm.ads +++ b/gcc/ada/libgnat/s-excmac__arm.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2013-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2013-2020, 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- -- diff --git a/gcc/ada/libgnat/s-excmac__gcc.adb b/gcc/ada/libgnat/s-excmac__gcc.adb index add7c3a..ead0550 100644 --- a/gcc/ada/libgnat/s-excmac__gcc.adb +++ b/gcc/ada/libgnat/s-excmac__gcc.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2013-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2013-2020, 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- -- diff --git a/gcc/ada/libgnat/s-excmac__gcc.ads b/gcc/ada/libgnat/s-excmac__gcc.ads index bdb2648..f7148a3 100644 --- a/gcc/ada/libgnat/s-excmac__gcc.ads +++ b/gcc/ada/libgnat/s-excmac__gcc.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2013-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2013-2020, 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- -- diff --git a/gcc/ada/libgnat/s-exctab.adb b/gcc/ada/libgnat/s-exctab.adb index 09f494e..ec5e0a7 100644 --- a/gcc/ada/libgnat/s-exctab.adb +++ b/gcc/ada/libgnat/s-exctab.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1996-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1996-2020, 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- -- diff --git a/gcc/ada/libgnat/s-exctab.ads b/gcc/ada/libgnat/s-exctab.ads index 4063b15..d0ead62 100644 --- a/gcc/ada/libgnat/s-exctab.ads +++ b/gcc/ada/libgnat/s-exctab.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1996-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1996-2020, 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- -- diff --git a/gcc/ada/libgnat/s-exctra.adb b/gcc/ada/libgnat/s-exctra.adb index 3254d10..2ada43b 100644 --- a/gcc/ada/libgnat/s-exctra.adb +++ b/gcc/ada/libgnat/s-exctra.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-exctra.ads b/gcc/ada/libgnat/s-exctra.ads index 73380b2..e3b360f 100644 --- a/gcc/ada/libgnat/s-exctra.ads +++ b/gcc/ada/libgnat/s-exctra.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-exnint.adb b/gcc/ada/libgnat/s-exnint.adb index 46bb82d..fccd675 100644 --- a/gcc/ada/libgnat/s-exnint.adb +++ b/gcc/ada/libgnat/s-exnint.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-exnint.ads b/gcc/ada/libgnat/s-exnint.ads index 3e99a39..29303a3 100644 --- a/gcc/ada/libgnat/s-exnint.ads +++ b/gcc/ada/libgnat/s-exnint.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-exnllf.adb b/gcc/ada/libgnat/s-exnllf.adb index 84bf7f9..7ca2675 100644 --- a/gcc/ada/libgnat/s-exnllf.adb +++ b/gcc/ada/libgnat/s-exnllf.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-exnllf.ads b/gcc/ada/libgnat/s-exnllf.ads index b023bd8..6a334de 100644 --- a/gcc/ada/libgnat/s-exnllf.ads +++ b/gcc/ada/libgnat/s-exnllf.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-exnlli.adb b/gcc/ada/libgnat/s-exnlli.adb index 6e77b09..dc486d6 100644 --- a/gcc/ada/libgnat/s-exnlli.adb +++ b/gcc/ada/libgnat/s-exnlli.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-exnlli.ads b/gcc/ada/libgnat/s-exnlli.ads index 2e716d4..f6d94de 100644 --- a/gcc/ada/libgnat/s-exnlli.ads +++ b/gcc/ada/libgnat/s-exnlli.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-expint.adb b/gcc/ada/libgnat/s-expint.adb index 1cc2181..aa3445c 100644 --- a/gcc/ada/libgnat/s-expint.adb +++ b/gcc/ada/libgnat/s-expint.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-expint.ads b/gcc/ada/libgnat/s-expint.ads index f6c9f83..584564a 100644 --- a/gcc/ada/libgnat/s-expint.ads +++ b/gcc/ada/libgnat/s-expint.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-explli.adb b/gcc/ada/libgnat/s-explli.adb index 782d881..4f244cd 100644 --- a/gcc/ada/libgnat/s-explli.adb +++ b/gcc/ada/libgnat/s-explli.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-explli.ads b/gcc/ada/libgnat/s-explli.ads index be37781..f1283cd 100644 --- a/gcc/ada/libgnat/s-explli.ads +++ b/gcc/ada/libgnat/s-explli.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-expllu.adb b/gcc/ada/libgnat/s-expllu.adb index ad28a24..5615e4a 100644 --- a/gcc/ada/libgnat/s-expllu.adb +++ b/gcc/ada/libgnat/s-expllu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-expllu.ads b/gcc/ada/libgnat/s-expllu.ads index 683aae2..2127aaad 100644 --- a/gcc/ada/libgnat/s-expllu.ads +++ b/gcc/ada/libgnat/s-expllu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-expmod.adb b/gcc/ada/libgnat/s-expmod.adb index 713a6e7..1d6b404 100644 --- a/gcc/ada/libgnat/s-expmod.adb +++ b/gcc/ada/libgnat/s-expmod.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-expmod.ads b/gcc/ada/libgnat/s-expmod.ads index d221a2b..925ae11 100644 --- a/gcc/ada/libgnat/s-expmod.ads +++ b/gcc/ada/libgnat/s-expmod.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-expuns.adb b/gcc/ada/libgnat/s-expuns.adb index 4bf3f3f..da43763 100644 --- a/gcc/ada/libgnat/s-expuns.adb +++ b/gcc/ada/libgnat/s-expuns.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-expuns.ads b/gcc/ada/libgnat/s-expuns.ads index 69dd64f..a0d8085 100644 --- a/gcc/ada/libgnat/s-expuns.ads +++ b/gcc/ada/libgnat/s-expuns.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-fatflt.ads b/gcc/ada/libgnat/s-fatflt.ads index 3e9abfa..615e5f4 100644 --- a/gcc/ada/libgnat/s-fatflt.ads +++ b/gcc/ada/libgnat/s-fatflt.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-fatgen.adb b/gcc/ada/libgnat/s-fatgen.adb index 93237fb..b544587 100644 --- a/gcc/ada/libgnat/s-fatgen.adb +++ b/gcc/ada/libgnat/s-fatgen.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -219,6 +219,10 @@ package body System.Fat_Gen is Ax := Ax * R_Power (Expbits'Last); Ex := Ex - Log_Power (Expbits'Last); end loop; + pragma Annotate + (CodePeer, Intentional, + "test always false", + "expected for some instantiations"); -- Rad ** -64 <= Ax < 1 diff --git a/gcc/ada/libgnat/s-fatgen.ads b/gcc/ada/libgnat/s-fatgen.ads index d338a45..b84d23b 100644 --- a/gcc/ada/libgnat/s-fatgen.ads +++ b/gcc/ada/libgnat/s-fatgen.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-fatlfl.ads b/gcc/ada/libgnat/s-fatlfl.ads index 48539c6..2be41118 100644 --- a/gcc/ada/libgnat/s-fatlfl.ads +++ b/gcc/ada/libgnat/s-fatlfl.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-fatllf.ads b/gcc/ada/libgnat/s-fatllf.ads index b352ecc..6361296 100644 --- a/gcc/ada/libgnat/s-fatllf.ads +++ b/gcc/ada/libgnat/s-fatllf.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-fatsfl.ads b/gcc/ada/libgnat/s-fatsfl.ads index ad7a810..45b13e1 100644 --- a/gcc/ada/libgnat/s-fatsfl.ads +++ b/gcc/ada/libgnat/s-fatsfl.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-ficobl.ads b/gcc/ada/libgnat/s-ficobl.ads index 5098d6b..1532cdb 100644 --- a/gcc/ada/libgnat/s-ficobl.ads +++ b/gcc/ada/libgnat/s-ficobl.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-filatt.ads b/gcc/ada/libgnat/s-filatt.ads index 8588458..d969cec 100644 --- a/gcc/ada/libgnat/s-filatt.ads +++ b/gcc/ada/libgnat/s-filatt.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2013-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2013-2020, 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- -- diff --git a/gcc/ada/libgnat/s-fileio.adb b/gcc/ada/libgnat/s-fileio.adb index 6339532..b6377e3 100644 --- a/gcc/ada/libgnat/s-fileio.adb +++ b/gcc/ada/libgnat/s-fileio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-fileio.ads b/gcc/ada/libgnat/s-fileio.ads index f4aa52a..de464d8 100644 --- a/gcc/ada/libgnat/s-fileio.ads +++ b/gcc/ada/libgnat/s-fileio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-finmas.adb b/gcc/ada/libgnat/s-finmas.adb index 9004d76..5a6583a 100644 --- a/gcc/ada/libgnat/s-finmas.adb +++ b/gcc/ada/libgnat/s-finmas.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2015-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2015-2020, 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- -- diff --git a/gcc/ada/libgnat/s-finmas.ads b/gcc/ada/libgnat/s-finmas.ads index 5b2fc39..ae0276f 100644 --- a/gcc/ada/libgnat/s-finmas.ads +++ b/gcc/ada/libgnat/s-finmas.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-finroo.adb b/gcc/ada/libgnat/s-finroo.adb index e4184c1..c56f8fa 100644 --- a/gcc/ada/libgnat/s-finroo.adb +++ b/gcc/ada/libgnat/s-finroo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-finroo.ads b/gcc/ada/libgnat/s-finroo.ads index 0a32ecf..c3b36c0 100644 --- a/gcc/ada/libgnat/s-finroo.ads +++ b/gcc/ada/libgnat/s-finroo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-flocon.adb b/gcc/ada/libgnat/s-flocon.adb index f50359a..9eabefc 100644 --- a/gcc/ada/libgnat/s-flocon.adb +++ b/gcc/ada/libgnat/s-flocon.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, AdaCore -- +-- Copyright (C) 2011-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-flocon.ads b/gcc/ada/libgnat/s-flocon.ads index af4eef5..a5617c0 100644 --- a/gcc/ada/libgnat/s-flocon.ads +++ b/gcc/ada/libgnat/s-flocon.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, AdaCore -- +-- Copyright (C) 2000-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-flocon__none.adb b/gcc/ada/libgnat/s-flocon__none.adb index 435363a..1dc3132 100644 --- a/gcc/ada/libgnat/s-flocon__none.adb +++ b/gcc/ada/libgnat/s-flocon__none.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, AdaCore -- +-- Copyright (C) 2011-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-fore.adb b/gcc/ada/libgnat/s-fore.adb index 43afbef..2a4aa81 100644 --- a/gcc/ada/libgnat/s-fore.adb +++ b/gcc/ada/libgnat/s-fore.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-fore.ads b/gcc/ada/libgnat/s-fore.ads index 7f06b0d..7d78952 100644 --- a/gcc/ada/libgnat/s-fore.ads +++ b/gcc/ada/libgnat/s-fore.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-gearop.adb b/gcc/ada/libgnat/s-gearop.adb index 4064571..3eaeec2 100644 --- a/gcc/ada/libgnat/s-gearop.adb +++ b/gcc/ada/libgnat/s-gearop.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2006-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2006-2020, 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- -- @@ -240,6 +240,8 @@ package body System.Generic_Array_Operations is for J in N'Range (2) loop N (Row - M'First (1) + N'First (1), J) := N (Row - M'First (1) + N'First (1), J) / Scale; + pragma Annotate + (CodePeer, False_Positive, "divide by zero", "Scale /= 0"); end loop; end Divide_Row; @@ -602,6 +604,9 @@ package body System.Generic_Array_Operations is end if; elsif X > Real'Base'Last then + pragma Annotate + (CodePeer, Intentional, + "test always false", "test for infinity"); -- X is infinity, which is its own square root @@ -627,6 +632,8 @@ package body System.Generic_Array_Operations is -- of precision. for J in 1 .. 8 loop + pragma Assert (Root /= 0.0); + Next := (Root + X / Root) / 2.0; exit when Root = Next; Root := Next; diff --git a/gcc/ada/libgnat/s-gearop.ads b/gcc/ada/libgnat/s-gearop.ads index b25d40e..2ee455c 100644 --- a/gcc/ada/libgnat/s-gearop.ads +++ b/gcc/ada/libgnat/s-gearop.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2006-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2006-2020, 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- -- diff --git a/gcc/ada/libgnat/s-genbig.adb b/gcc/ada/libgnat/s-genbig.adb index 0a92dfb..71aff9b 100644 --- a/gcc/ada/libgnat/s-genbig.adb +++ b/gcc/ada/libgnat/s-genbig.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2012-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2012-2020, 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- -- @@ -31,15 +31,13 @@ -- This package provides arbitrary precision signed integer arithmetic. -with System; use System; -with System.Secondary_Stack; use System.Secondary_Stack; -with System.Storage_Elements; use System.Storage_Elements; - package body System.Generic_Bignums is use Interfaces; -- So that operations on Unsigned_32/Unsigned_64 are available + use Shared_Bignums; + type DD is mod Base ** 2; -- Double length digit used for intermediate computations @@ -65,18 +63,13 @@ package body System.Generic_Bignums is function Add (X, Y : Digit_Vector; X_Neg : Boolean; - Y_Neg : Boolean) return Bignum + Y_Neg : Boolean) return Big_Integer 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; - -- Allocate Bignum value of indicated length on secondary stack. On return - -- the Neg and D fields are left uninitialized. - type Compare_Result is (LT, EQ, GT); -- Indicates result of comparison in following call @@ -90,8 +83,8 @@ package body System.Generic_Bignums is procedure Div_Rem (X, Y : Bignum; - Quotient : out Bignum; - Remainder : out Bignum; + Quotient : out Big_Integer; + Remainder : out Big_Integer; Discard_Quotient : Boolean := False; Discard_Remainder : Boolean := False); -- Returns the Quotient and Remainder from dividing abs (X) by abs (Y). The @@ -99,18 +92,16 @@ package body System.Generic_Bignums is -- Quotient is undefined on return, and if Discard_Remainder is True, then -- Remainder is undefined on return. Service routine for Big_Div/Rem/Mod. - procedure Free_Bignum (X : Bignum) is null; - -- Called to free a Bignum value used in intermediate computations. In - -- this implementation using the secondary stack, it does nothing at all, - -- because we rely on Mark/Release, but it may be of use for some - -- alternative implementation. - function Normalize (X : Digit_Vector; - Neg : Boolean := False) return Bignum; - -- Given a digit vector and sign, allocate and construct a Bignum value. - -- Note that X may have leading zeroes which must be removed, and if the - -- result is zero, the sign is forced positive. + Neg : Boolean := False) return Big_Integer; + -- Given a digit vector and sign, allocate and construct a big integer + -- value. Note that X may have leading zeroes which must be removed, and if + -- the result is zero, the sign is forced positive. + -- If X is too big, Storage_Error is raised. + + function "**" (X : Bignum; Y : SD) return Big_Integer; + -- Exponentiation routine where we know right operand is one word --------- -- Add -- @@ -119,7 +110,7 @@ package body System.Generic_Bignums is function Add (X, Y : Digit_Vector; X_Neg : Boolean; - Y_Neg : Boolean) return Bignum + Y_Neg : Boolean) return Big_Integer is begin -- If signs are the same, we are doing an addition, it is convenient to @@ -202,73 +193,11 @@ package body System.Generic_Bignums is end if; end Add; - --------------------- - -- Allocate_Bignum -- - --------------------- - - function Allocate_Bignum (Len : Length) return Bignum is - Addr : Address; - - begin - -- Allocation on the heap - - if not Use_Secondary_Stack then - declare - B : Bignum; - begin - B := new Bignum_Data'(Len, False, (others => 0)); - return B; - end; - - -- Allocation on the secondary stack - - else - -- Note: The approach used here is designed to avoid strict aliasing - -- warnings that appeared previously using unchecked conversion. - - SS_Allocate (Addr, Storage_Offset (4 + 4 * Len)); - - declare - B : Bignum; - for B'Address use Addr'Address; - pragma Import (Ada, B); - - BD : Bignum_Data (Len); - for BD'Address use Addr; - pragma Import (Ada, BD); - - -- Expose a writable view of discriminant BD.Len so that we can - -- initialize it. We need to use the exact layout of the record - -- to ensure that the Length field has 24 bits as expected. - - type Bignum_Data_Header is record - Len : Length; - Neg : Boolean; - end record; - - for Bignum_Data_Header use record - Len at 0 range 0 .. 23; - Neg at 3 range 0 .. 7; - end record; - - BDH : Bignum_Data_Header; - for BDH'Address use BD'Address; - pragma Import (Ada, BDH); - - pragma Assert (BDH.Len'Size = BD.Len'Size); - - begin - BDH.Len := Len; - return B; - end; - end if; - end Allocate_Bignum; - ------------- -- Big_Abs -- ------------- - function Big_Abs (X : Bignum) return Bignum is + function Big_Abs (X : Bignum) return Big_Integer is begin return Normalize (X.D); end Big_Abs; @@ -277,7 +206,7 @@ package body System.Generic_Bignums is -- Big_Add -- ------------- - function Big_Add (X, Y : Bignum) return Bignum is + function Big_Add (X, Y : Bignum) return Big_Integer is begin return Add (X.D, Y.D, X.Neg, Y.Neg); end Big_Add; @@ -305,85 +234,69 @@ package body System.Generic_Bignums is -- 13 -5 -2 -13 -5 2 -- 14 -5 -2 -14 -5 2 - function Big_Div (X, Y : Bignum) return Bignum is - Q, R : Bignum; + function Big_Div (X, Y : Bignum) return Big_Integer is + Q, R : aliased Big_Integer; begin Div_Rem (X, Y, Q, R, Discard_Remainder => True); - Q.Neg := Q.Len > 0 and then (X.Neg xor Y.Neg); + To_Bignum (Q).Neg := To_Bignum (Q).Len > 0 and then (X.Neg xor Y.Neg); return Q; end Big_Div; - ------------- - -- Big_Exp -- - ------------- - - function Big_Exp (X, Y : Bignum) return Bignum is - - function "**" (X : Bignum; Y : SD) return Bignum; - -- Internal routine where we know right operand is one word - - ---------- - -- "**" -- - ---------- - - function "**" (X : Bignum; Y : SD) return Bignum is - begin - case Y is - - -- X ** 0 is 1 - - when 0 => - return Normalize (One_Data); - - -- X ** 1 is X - - when 1 => - return Normalize (X.D); + ---------- + -- "**" -- + ---------- - -- X ** 2 is X * X + function "**" (X : Bignum; Y : SD) return Big_Integer is + begin + case Y is - when 2 => - return Big_Mul (X, X); + -- X ** 0 is 1 - -- For X greater than 2, use the recursion + when 0 => + return Normalize (One_Data); - -- X even, X ** Y = (X ** (Y/2)) ** 2; - -- X odd, X ** Y = (X ** (Y/2)) ** 2 * X; + -- X ** 1 is X - when others => - declare - XY2 : constant Bignum := X ** (Y / 2); - XY2S : constant Bignum := Big_Mul (XY2, XY2); - Res : Bignum; + when 1 => + return Normalize (X.D); - begin - Free_Bignum (XY2); + -- X ** 2 is X * X - -- Raise storage error if intermediate value is getting too - -- large, which we arbitrarily define as 200 words for now. + when 2 => + return Big_Mul (X, X); - if XY2S.Len > 200 then - Free_Bignum (XY2S); - raise Storage_Error with - "exponentiation result is too large"; - end if; + -- For X greater than 2, use the recursion - -- Otherwise take care of even/odd cases + -- X even, X ** Y = (X ** (Y/2)) ** 2; + -- X odd, X ** Y = (X ** (Y/2)) ** 2 * X; - if (Y and 1) = 0 then - return XY2S; + when others => + declare + XY2 : aliased Big_Integer := X ** (Y / 2); + XY2S : aliased Big_Integer := + Big_Mul (To_Bignum (XY2), To_Bignum (XY2)); - else - Res := Big_Mul (XY2S, X); - Free_Bignum (XY2S); - return Res; - end if; - end; - end case; - end "**"; + begin + Free_Big_Integer (XY2); + + if (Y and 1) = 0 then + return XY2S; + else + return Res : constant Big_Integer := + Big_Mul (To_Bignum (XY2S), X) + do + Free_Big_Integer (XY2S); + end return; + end if; + end; + end case; + end "**"; - -- Start of processing for Big_Exp + ------------- + -- Big_Exp -- + ------------- + function Big_Exp (X, Y : Bignum) return Big_Integer is begin -- Error if right operand negative @@ -431,6 +344,127 @@ package body System.Generic_Bignums is end if; end Big_Exp; + ------------- + -- Big_And -- + ------------- + + function Big_And (X, Y : Bignum) return Big_Integer is + begin + if X.Len > Y.Len then + return Big_And (X => Y, Y => X); + end if; + + -- X is the smallest integer + + declare + Result : Digit_Vector (1 .. X.Len); + Diff : constant Length := Y.Len - X.Len; + begin + for J in 1 .. X.Len loop + Result (J) := X.D (J) and Y.D (J + Diff); + end loop; + + return Normalize (Result, X.Neg and Y.Neg); + end; + end Big_And; + + ------------ + -- Big_Or -- + ------------ + + function Big_Or (X, Y : Bignum) return Big_Integer is + begin + if X.Len < Y.Len then + return Big_Or (X => Y, Y => X); + end if; + + -- X is the largest integer + + declare + Result : Digit_Vector (1 .. X.Len); + Index : Length; + Diff : constant Length := X.Len - Y.Len; + + begin + Index := 1; + + while Index <= Diff loop + Result (Index) := X.D (Index); + Index := Index + 1; + end loop; + + for J in 1 .. Y.Len loop + Result (Index) := X.D (Index) or Y.D (J); + Index := Index + 1; + end loop; + + return Normalize (Result, X.Neg or Y.Neg); + end; + end Big_Or; + + -------------------- + -- Big_Shift_Left -- + -------------------- + + function Big_Shift_Left (X : Bignum; Amount : Natural) return Big_Integer is + begin + if X.Neg then + raise Constraint_Error; + elsif Amount = 0 then + return Allocate_Big_Integer (X.D, False); + end if; + + declare + Shift : constant Natural := Amount rem SD'Size; + Result : Digit_Vector (0 .. X.Len + Amount / SD'Size); + Carry : SD := 0; + + begin + for J in X.Len + 1 .. Result'Last loop + Result (J) := 0; + end loop; + + for J in reverse 1 .. X.Len loop + Result (J) := Shift_Left (X.D (J), Shift) or Carry; + Carry := Shift_Right (X.D (J), SD'Size - Shift); + end loop; + + Result (0) := Carry; + return Normalize (Result, False); + end; + end Big_Shift_Left; + + --------------------- + -- Big_Shift_Right -- + --------------------- + + function Big_Shift_Right + (X : Bignum; Amount : Natural) return Big_Integer is + begin + if X.Neg then + raise Constraint_Error; + elsif Amount = 0 then + return Allocate_Big_Integer (X.D, False); + end if; + + declare + Shift : constant Natural := Amount rem SD'Size; + Result : Digit_Vector (1 .. X.Len - Amount / SD'Size); + Carry : SD := 0; + + begin + for J in 1 .. Result'Last - 1 loop + Result (J) := Shift_Right (X.D (J), Shift) or Carry; + Carry := Shift_Left (X.D (J), SD'Size - Shift); + end loop; + + Result (Result'Last) := + Shift_Right (X.D (Result'Last), Shift) or Carry; + + return Normalize (Result, False); + end; + end Big_Shift_Right; + ------------ -- Big_EQ -- ------------ @@ -499,8 +533,8 @@ package body System.Generic_Bignums is -- 13 -5 -2 3 -13 -5 -3 -3 -- 14 -5 -1 4 -14 -5 -4 -4 - function Big_Mod (X, Y : Bignum) return Bignum is - Q, R : Bignum; + function Big_Mod (X, Y : Bignum) return Big_Integer is + Q, R : aliased Big_Integer; begin -- If signs are same, result is same as Rem @@ -517,17 +551,17 @@ package body System.Generic_Bignums is -- Zero result is unchanged - if R.Len = 0 then + if To_Bignum (R).Len = 0 then return R; -- Otherwise adjust result else declare - T1 : constant Bignum := Big_Sub (Y, R); + T1 : aliased Big_Integer := Big_Sub (Y, To_Bignum (R)); begin - T1.Neg := Y.Neg; - Free_Bignum (R); + To_Bignum (T1).Neg := Y.Neg; + Free_Big_Integer (R); return T1; end; end if; @@ -538,7 +572,7 @@ package body System.Generic_Bignums is -- Big_Mul -- ------------- - function Big_Mul (X, Y : Bignum) return Bignum is + function Big_Mul (X, Y : Bignum) return Big_Integer is Result : Digit_Vector (1 .. X.Len + Y.Len) := (others => 0); -- Accumulate result (max length of result is sum of operand lengths) @@ -589,7 +623,7 @@ package body System.Generic_Bignums is -- Big_Neg -- ------------- - function Big_Neg (X : Bignum) return Bignum is + function Big_Neg (X : Bignum) return Big_Integer is begin return Normalize (X.D, not X.Neg); end Big_Neg; @@ -617,11 +651,11 @@ package body System.Generic_Bignums is -- 13 -5 3 -13 -5 -3 -- 14 -5 4 -14 -5 -4 - function Big_Rem (X, Y : Bignum) return Bignum is - Q, R : Bignum; + function Big_Rem (X, Y : Bignum) return Big_Integer is + Q, R : aliased Big_Integer; begin Div_Rem (X, Y, Q, R, Discard_Quotient => True); - R.Neg := R.Len > 0 and then X.Neg; + To_Bignum (R).Neg := To_Bignum (R).Len > 0 and then X.Neg; return R; end Big_Rem; @@ -629,7 +663,7 @@ package body System.Generic_Bignums is -- Big_Sub -- ------------- - function Big_Sub (X, Y : Bignum) return Bignum is + function Big_Sub (X, Y : Bignum) return Big_Integer is begin -- If right operand zero, return left operand (avoiding sharing) @@ -681,11 +715,10 @@ package body System.Generic_Bignums is procedure Div_Rem (X, Y : Bignum; - Quotient : out Bignum; - Remainder : out Bignum; + Quotient : out Big_Integer; + Remainder : out Big_Integer; Discard_Quotient : Boolean := False; - Discard_Remainder : Boolean := False) - is + Discard_Remainder : Boolean := False) is begin -- Error if division by zero @@ -698,8 +731,14 @@ package body System.Generic_Bignums is -- If X < Y then quotient is zero and remainder is X if Compare (X.D, Y.D, False, False) = LT then - Remainder := Normalize (X.D); - Quotient := Normalize (Zero_Data); + if not Discard_Quotient then + Quotient := Normalize (Zero_Data); + end if; + + if not Discard_Remainder then + Remainder := Normalize (X.D); + end if; + return; -- If both X and Y are less than 2**63-1, we can use Long_Long_Integer @@ -714,8 +753,14 @@ package body System.Generic_Bignums is A : constant LLI := abs (From_Bignum (X)); B : constant LLI := abs (From_Bignum (Y)); begin - Quotient := To_Bignum (A / B); - Remainder := To_Bignum (A rem B); + if not Discard_Quotient then + Quotient := To_Bignum (A / B); + end if; + + if not Discard_Remainder then + Remainder := To_Bignum (A rem B); + end if; + return; end; @@ -733,13 +778,20 @@ package body System.Generic_Bignums is ND := 0; for J in 1 .. X.Len loop ND := Base * ND + DD (X.D (J)); + pragma Assert (Div /= 0); Result (J) := SD (ND / Div); ND := ND rem Div; end loop; - Quotient := Normalize (Result); - Remdr (1) := SD (ND); - Remainder := Normalize (Remdr); + if not Discard_Quotient then + Quotient := Normalize (Result); + end if; + + if not Discard_Remainder then + Remdr (1) := SD (ND); + Remainder := Normalize (Remdr); + end if; + return; end; end if; @@ -968,9 +1020,9 @@ package body System.Generic_Bignums is if not Discard_Remainder then declare Remdr : DD; - begin Remdr := 0; + for K in 1 .. n loop Remdr := Base * Remdr + DD (u (m + K)); r (K) := SD (Remdr / d); @@ -1043,11 +1095,12 @@ package body System.Generic_Bignums is -- Normalize -- --------------- + Bignum_Limit : constant := 200; + function Normalize (X : Digit_Vector; - Neg : Boolean := False) return Bignum + Neg : Boolean := False) return Big_Integer is - B : Bignum; J : Length; begin @@ -1056,73 +1109,163 @@ package body System.Generic_Bignums is J := J + 1; end loop; - B := Allocate_Bignum (X'Last - J + 1); - B.Neg := B.Len > 0 and then Neg; - B.D := X (J .. X'Last); - return B; + if X'Last - J > Bignum_Limit then + raise Storage_Error with "big integer limit exceeded"; + end if; + + return Allocate_Big_Integer (X (J .. X'Last), J <= X'Last and then Neg); end Normalize; --------------- -- To_Bignum -- --------------- - function To_Bignum (X : Long_Long_Integer) return Bignum is - R : Bignum; - + function To_Bignum (X : Long_Long_Integer) return Big_Integer is begin if X = 0 then - R := Allocate_Bignum (0); + return Allocate_Big_Integer ((1 .. 0 => <>), False); -- One word result elsif X in -(2 ** 32 - 1) .. +(2 ** 32 - 1) then - R := Allocate_Bignum (1); - R.D (1) := SD (abs (X)); + return Allocate_Big_Integer ((1 => SD (abs X)), X < 0); -- Largest negative number annoyance elsif X = Long_Long_Integer'First then - R := Allocate_Bignum (2); - R.D (1) := 2 ** 31; - R.D (2) := 0; + return Allocate_Big_Integer ((2 ** 31, 0), True); + + -- Other negative numbers - -- Normal two word case + elsif X < 0 then + return Allocate_Big_Integer + ((SD ((-X) / Base), SD ((-X) mod Base)), True); + -- Positive numbers else - R := Allocate_Bignum (2); - R.D (2) := SD (abs (X) mod Base); - R.D (1) := SD (abs (X) / Base); + return Allocate_Big_Integer ((SD (X / Base), SD (X mod Base)), False); end if; - - R.Neg := X < 0; - return R; end To_Bignum; - function To_Bignum (X : Unsigned_64) return Bignum is - R : Bignum; - + function To_Bignum (X : Unsigned_64) return Big_Integer is begin if X = 0 then - R := Allocate_Bignum (0); + return Allocate_Big_Integer ((1 .. 0 => <>), False); -- One word result elsif X < 2 ** 32 then - R := Allocate_Bignum (1); - R.D (1) := SD (X); + return Allocate_Big_Integer ((1 => SD (X)), False); -- Two word result else - R := Allocate_Bignum (2); - R.D (2) := SD (X mod Base); - R.D (1) := SD (X / Base); + return Allocate_Big_Integer ((SD (X / Base), SD (X mod Base)), False); end if; - - R.Neg := False; - return R; end To_Bignum; + --------------- + -- To_String -- + --------------- + + Hex_Chars : constant array (0 .. 15) of Character := "0123456789ABCDEF"; + + function To_String + (X : Bignum; Width : Natural := 0; Base : Positive := 10) return String + is + Big_Base : aliased Bignum_Data := (1, False, (1 => SD (Base))); + + function Add_Base (S : String) return String; + -- Add base information if Base /= 10 + + function Leading_Padding + (Str : String; + Min_Length : Natural; + Char : Character := ' ') return String; + -- Return padding of Char concatenated with Str so that the resulting + -- string is at least Min_Length long. + + function Image (Arg : Bignum) return String; + -- Return image of Arg, assuming Arg is positive. + + function Image (N : Natural) return String; + -- Return image of N, with no leading space. + + -------------- + -- Add_Base -- + -------------- + + function Add_Base (S : String) return String is + begin + if Base = 10 then + return S; + else + return Image (Base) & "#" & S & "#"; + end if; + end Add_Base; + + ----------- + -- Image -- + ----------- + + function Image (N : Natural) return String is + S : constant String := Natural'Image (N); + begin + return S (2 .. S'Last); + end Image; + + function Image (Arg : Bignum) return String is + begin + if Big_LT (Arg, Big_Base'Unchecked_Access) then + return (1 => Hex_Chars (Natural (From_Bignum (Arg)))); + else + declare + Div : aliased Big_Integer; + Remain : aliased Big_Integer; + R : Natural; + + begin + Div_Rem (Arg, Big_Base'Unchecked_Access, Div, Remain); + R := Natural (From_Bignum (To_Bignum (Remain))); + Free_Big_Integer (Remain); + + return S : constant String := + Image (To_Bignum (Div)) & Hex_Chars (R) + do + Free_Big_Integer (Div); + end return; + end; + end if; + end Image; + + --------------------- + -- Leading_Padding -- + --------------------- + + function Leading_Padding + (Str : String; + Min_Length : Natural; + Char : Character := ' ') return String is + begin + return (1 .. Integer'Max (Integer (Min_Length) - Str'Length, 0) + => Char) & Str; + end Leading_Padding; + + Zero : aliased Bignum_Data := (0, False, D => Zero_Data); + + begin + if Big_LT (X, Zero'Unchecked_Access) then + declare + X_Pos : aliased Bignum_Data := (X.Len, not X.Neg, X.D); + begin + return Leading_Padding + ("-" & Add_Base (Image (X_Pos'Unchecked_Access)), Width); + end; + else + return Leading_Padding (" " & Add_Base (Image (X)), Width); + end if; + end To_String; + ------------- -- Is_Zero -- ------------- diff --git a/gcc/ada/libgnat/s-genbig.ads b/gcc/ada/libgnat/s-genbig.ads index d9408af..003a8fd 100644 --- a/gcc/ada/libgnat/s-genbig.ads +++ b/gcc/ada/libgnat/s-genbig.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2012-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2012-2020, 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- -- @@ -33,77 +33,57 @@ -- and can be used either built into the compiler via System.Bignums or to -- implement a default version of Ada.Numerics.Big_Numbers.Big_Integers. --- If Use_Secondary_Stack is True then all Bignum values are allocated on the --- secondary stack. If False, the heap is used and the caller is responsible --- for memory management. - -with Ada.Unchecked_Conversion; with Interfaces; +with System.Shared_Bignums; generic - Use_Secondary_Stack : Boolean; -package System.Generic_Bignums is - pragma Preelaborate; - - pragma Assert (Long_Long_Integer'Size = 64); - -- This package assumes that Long_Long_Integer size is 64 bit (i.e. that it - -- has a range of -2**63 to 2**63-1). The front end ensures that the mode - -- ELIMINATED is not allowed for overflow checking if this is not the case. - - subtype Length is Natural range 0 .. 2 ** 23 - 1; - -- Represent number of words in Digit_Vector - - Base : constant := 2 ** 32; - -- Digit vectors use this base - - subtype SD is Interfaces.Unsigned_32; - -- Single length digit + type Big_Integer is private; - type Digit_Vector is array (Length range <>) of SD; - -- Represent digits of a number (most significant digit first) + with function Allocate_Big_Integer + (D : Shared_Bignums.Digit_Vector; Neg : Boolean) return Big_Integer; + -- Allocate Bignum value with the given contents - type Bignum_Data (Len : Length) is record - Neg : Boolean; - -- Set if value is negative, never set for zero + with procedure Free_Big_Integer (X : in out Big_Integer); + -- Free the memory associated with X - D : Digit_Vector (1 .. Len); - -- Digits of number, most significant first, represented in base - -- 2**Base. No leading zeroes are stored, and the value of zero is - -- represented using an empty vector for D. - end record; + with function To_Bignum + (X : aliased in out Big_Integer) return Shared_Bignums.Bignum; + -- Convert the given Big_Integer to a Bignum - for Bignum_Data use record - Len at 0 range 0 .. 23; - Neg at 3 range 0 .. 7; - end record; +package System.Generic_Bignums is + pragma Preelaborate; - type Bignum is access all Bignum_Data; - -- This is the type that is used externally. Possibly this could be a - -- private type, but we leave the structure exposed for now. For one - -- thing it helps with debugging. Note that this package never shares - -- an allocated Bignum value, so for example for X + 0, a copy of X is - -- returned, not X itself. + subtype Bignum is Shared_Bignums.Bignum; - function To_Bignum is new Ada.Unchecked_Conversion (System.Address, Bignum); - function To_Address is new - Ada.Unchecked_Conversion (Bignum, System.Address); + -- Note that this package never shares an allocated Big_Integer value, so + -- so for example for X + 0, a copy of X is returned, not X itself. -- Note: none of the subprograms in this package modify the Bignum_Data -- records referenced by Bignum arguments of mode IN. - function Big_Add (X, Y : Bignum) return Bignum; -- "+" - function Big_Sub (X, Y : Bignum) return Bignum; -- "-" - function Big_Mul (X, Y : Bignum) return Bignum; -- "*" - function Big_Div (X, Y : Bignum) return Bignum; -- "/" - function Big_Exp (X, Y : Bignum) return Bignum; -- "**" - function Big_Mod (X, Y : Bignum) return Bignum; -- "mod" - function Big_Rem (X, Y : Bignum) return Bignum; -- "rem" - function Big_Neg (X : Bignum) return Bignum; -- "-" - function Big_Abs (X : Bignum) return Bignum; -- "abs" + function Big_Add (X, Y : Bignum) return Big_Integer; -- "+" + function Big_Sub (X, Y : Bignum) return Big_Integer; -- "-" + function Big_Mul (X, Y : Bignum) return Big_Integer; -- "*" + function Big_Div (X, Y : Bignum) return Big_Integer; -- "/" + function Big_Exp (X, Y : Bignum) return Big_Integer; -- "**" + function Big_Mod (X, Y : Bignum) return Big_Integer; -- "mod" + function Big_Rem (X, Y : Bignum) return Big_Integer; -- "rem" + function Big_Neg (X : Bignum) return Big_Integer; -- "-" + function Big_Abs (X : Bignum) return Big_Integer; -- "abs" -- Perform indicated arithmetic operation on bignum values. No exception -- raised except for Div/Mod/Rem by 0 which raises Constraint_Error with -- an appropriate message. + function Big_And (X, Y : Bignum) return Big_Integer; -- "and" + function Big_Or (X, Y : Bignum) return Big_Integer; -- "or" + -- Perform indicated bitwise operation on big num values. + -- The negative flags of X and Y are also combined. + + function Big_Shift_Left (X : Bignum; Amount : Natural) return Big_Integer; + function Big_Shift_Right (X : Bignum; Amount : Natural) return Big_Integer; + -- Perform indicated bitwise operation on big num values. + -- Constraint_Error is raised if X is negative. + function Big_EQ (X, Y : Bignum) return Boolean; -- "=" function Big_NE (X, Y : Bignum) return Boolean; -- "/=" function Big_GE (X, Y : Bignum) return Boolean; -- ">=" @@ -117,18 +97,24 @@ package System.Generic_Bignums is -- Returns True if the Bignum value is in the range of Long_Long_Integer, -- so that a call to From_Bignum is guaranteed not to raise an exception. - function To_Bignum (X : Long_Long_Integer) return Bignum; - -- Convert Long_Long_Integer to Bignum. No exception can be raised for any - -- input argument. + function To_Bignum (X : Long_Long_Integer) return Big_Integer; + -- Convert Long_Long_Integer to a big integer. No exception can be raised + -- for any input argument. - function To_Bignum (X : Interfaces.Unsigned_64) return Bignum; - -- Convert Unsigned_64 to Bignum. No exception can be raised for any + function To_Bignum (X : Interfaces.Unsigned_64) return Big_Integer; + -- Convert Unsigned_64 to a big integer. No exception can be raised for any -- input argument. function From_Bignum (X : Bignum) return Long_Long_Integer; -- Convert Bignum to Long_Long_Integer. Constraint_Error raised with -- appropriate message if value is out of range of Long_Long_Integer. + function To_String + (X : Bignum; Width : Natural := 0; Base : Positive := 10) + return String; + -- Return the image of X, based on the given Width and Base, as defined + -- in the RM for Ada.Text_IO. Base should really be in the range 2 .. 16. + function Is_Zero (X : Bignum) return Boolean; -- Return True if X = 0 diff --git a/gcc/ada/libgnat/s-geveop.adb b/gcc/ada/libgnat/s-geveop.adb index 01f7862..8e59b30 100644 --- a/gcc/ada/libgnat/s-geveop.adb +++ b/gcc/ada/libgnat/s-geveop.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-geveop.ads b/gcc/ada/libgnat/s-geveop.ads index 11952c1..33f4e69 100644 --- a/gcc/ada/libgnat/s-geveop.ads +++ b/gcc/ada/libgnat/s-geveop.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-gloloc.adb b/gcc/ada/libgnat/s-gloloc.adb index a8efd8e..9c859cf 100644 --- a/gcc/ada/libgnat/s-gloloc.adb +++ b/gcc/ada/libgnat/s-gloloc.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, 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- -- diff --git a/gcc/ada/libgnat/s-gloloc.ads b/gcc/ada/libgnat/s-gloloc.ads index 2af8f54..e95884f 100644 --- a/gcc/ada/libgnat/s-gloloc.ads +++ b/gcc/ada/libgnat/s-gloloc.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, 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- -- diff --git a/gcc/ada/libgnat/s-gloloc__mingw.adb b/gcc/ada/libgnat/s-gloloc__mingw.adb index abb97e7..d8c180e 100644 --- a/gcc/ada/libgnat/s-gloloc__mingw.adb +++ b/gcc/ada/libgnat/s-gloloc__mingw.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-htable.adb b/gcc/ada/libgnat/s-htable.adb index 4618981..476f4aa 100644 --- a/gcc/ada/libgnat/s-htable.adb +++ b/gcc/ada/libgnat/s-htable.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-htable.ads b/gcc/ada/libgnat/s-htable.ads index 87834d5..6313ab3 100644 --- a/gcc/ada/libgnat/s-htable.ads +++ b/gcc/ada/libgnat/s-htable.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-imenne.adb b/gcc/ada/libgnat/s-imenne.adb index 30df1a4..605b85b 100644 --- a/gcc/ada/libgnat/s-imenne.adb +++ b/gcc/ada/libgnat/s-imenne.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2000-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2000-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imenne.ads b/gcc/ada/libgnat/s-imenne.ads index 0e661bf..e150891 100644 --- a/gcc/ada/libgnat/s-imenne.ads +++ b/gcc/ada/libgnat/s-imenne.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2000-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgbiu.adb b/gcc/ada/libgnat/s-imgbiu.adb index e1022b9..7b765c0 100644 --- a/gcc/ada/libgnat/s-imgbiu.adb +++ b/gcc/ada/libgnat/s-imgbiu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgbiu.ads b/gcc/ada/libgnat/s-imgbiu.ads index c9adaae..524e582 100644 --- a/gcc/ada/libgnat/s-imgbiu.ads +++ b/gcc/ada/libgnat/s-imgbiu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgboo.adb b/gcc/ada/libgnat/s-imgboo.adb index e4bd5ca..35ae001 100644 --- a/gcc/ada/libgnat/s-imgboo.adb +++ b/gcc/ada/libgnat/s-imgboo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgboo.ads b/gcc/ada/libgnat/s-imgboo.ads index cd422c4..1bf8449 100644 --- a/gcc/ada/libgnat/s-imgboo.ads +++ b/gcc/ada/libgnat/s-imgboo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgcha.adb b/gcc/ada/libgnat/s-imgcha.adb index 69883d3..a2d7c46 100644 --- a/gcc/ada/libgnat/s-imgcha.adb +++ b/gcc/ada/libgnat/s-imgcha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgcha.ads b/gcc/ada/libgnat/s-imgcha.ads index ff067d0..5c9ead8 100644 --- a/gcc/ada/libgnat/s-imgcha.ads +++ b/gcc/ada/libgnat/s-imgcha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgdec.adb b/gcc/ada/libgnat/s-imgdec.adb index 20ef3ce..6000d44 100644 --- a/gcc/ada/libgnat/s-imgdec.adb +++ b/gcc/ada/libgnat/s-imgdec.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgdec.ads b/gcc/ada/libgnat/s-imgdec.ads index 5d03f22..d45a05f 100644 --- a/gcc/ada/libgnat/s-imgdec.ads +++ b/gcc/ada/libgnat/s-imgdec.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgenu.adb b/gcc/ada/libgnat/s-imgenu.adb index 130833a..7eae182 100644 --- a/gcc/ada/libgnat/s-imgenu.adb +++ b/gcc/ada/libgnat/s-imgenu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2000-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2000-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgenu.ads b/gcc/ada/libgnat/s-imgenu.ads index fe5a731..ccb1d07 100644 --- a/gcc/ada/libgnat/s-imgenu.ads +++ b/gcc/ada/libgnat/s-imgenu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2000-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgint.adb b/gcc/ada/libgnat/s-imgint.adb index dd29205..2b94472 100644 --- a/gcc/ada/libgnat/s-imgint.adb +++ b/gcc/ada/libgnat/s-imgint.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgint.ads b/gcc/ada/libgnat/s-imgint.ads index df76d0b..6c2c675 100644 --- a/gcc/ada/libgnat/s-imgint.ads +++ b/gcc/ada/libgnat/s-imgint.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgllb.adb b/gcc/ada/libgnat/s-imgllb.adb index fefa68d..30d6a3c 100644 --- a/gcc/ada/libgnat/s-imgllb.adb +++ b/gcc/ada/libgnat/s-imgllb.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgllb.ads b/gcc/ada/libgnat/s-imgllb.ads index dba0f40..0232315 100644 --- a/gcc/ada/libgnat/s-imgllb.ads +++ b/gcc/ada/libgnat/s-imgllb.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imglld.adb b/gcc/ada/libgnat/s-imglld.adb index 9f2019b1..c70f409 100644 --- a/gcc/ada/libgnat/s-imglld.adb +++ b/gcc/ada/libgnat/s-imglld.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imglld.ads b/gcc/ada/libgnat/s-imglld.ads index 37e9e7d..fdb25b4 100644 --- a/gcc/ada/libgnat/s-imglld.ads +++ b/gcc/ada/libgnat/s-imglld.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imglli.adb b/gcc/ada/libgnat/s-imglli.adb index b4e9604..4d024ee 100644 --- a/gcc/ada/libgnat/s-imglli.adb +++ b/gcc/ada/libgnat/s-imglli.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imglli.ads b/gcc/ada/libgnat/s-imglli.ads index a4eb6ec..b0d3cae 100644 --- a/gcc/ada/libgnat/s-imglli.ads +++ b/gcc/ada/libgnat/s-imglli.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgllu.adb b/gcc/ada/libgnat/s-imgllu.adb index 2220838..f62a25d 100644 --- a/gcc/ada/libgnat/s-imgllu.adb +++ b/gcc/ada/libgnat/s-imgllu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgllu.ads b/gcc/ada/libgnat/s-imgllu.ads index 6c0d43e..d54bb33 100644 --- a/gcc/ada/libgnat/s-imgllu.ads +++ b/gcc/ada/libgnat/s-imgllu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgllw.adb b/gcc/ada/libgnat/s-imgllw.adb index 385e1f1..cfd4fc2 100644 --- a/gcc/ada/libgnat/s-imgllw.adb +++ b/gcc/ada/libgnat/s-imgllw.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgllw.ads b/gcc/ada/libgnat/s-imgllw.ads index 5aaac58..e6e5fb0 100644 --- a/gcc/ada/libgnat/s-imgllw.ads +++ b/gcc/ada/libgnat/s-imgllw.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgrea.adb b/gcc/ada/libgnat/s-imgrea.adb index 467c482..68b1fdc 100644 --- a/gcc/ada/libgnat/s-imgrea.adb +++ b/gcc/ada/libgnat/s-imgrea.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -151,14 +151,9 @@ package body System.Img_Real is Scale : Integer; Expon : Integer; - Field_Max : constant := 255; - -- This should be the same value as Ada.[Wide_]Text_IO.Field'Last. - -- It is not worth dragging in Ada.Text_IO to pick up this value, - -- since it really should never be necessary to change it. - - Digs : String (1 .. 2 * Field_Max + 16); - -- Array used to hold digits of converted integer value. This is a - -- large enough buffer to accommodate ludicrous values of Fore and Aft. + Digs : String (1 .. Max_Real_Image_Length); + -- Array used to hold digits of converted integer value. This is a large + -- enough buffer to accommodate ludicrous Fore/Aft/Exp combinations. Ndigs : Natural; -- Number of digits stored in Digs (and also subscript of last digit) @@ -289,6 +284,8 @@ package body System.Img_Real is -- What we are looking for is a power of ten to divide X by -- so that the result lies within the required range. + pragma Assert (Powten (Maxpow) /= 0.0); + loop XP := X / Powten (Maxpow); exit when XP < Powten (S) or else Scale > Maxscaling; @@ -490,6 +487,9 @@ package body System.Img_Real is -- an infinite value, so we print Inf. if V > Long_Long_Float'Last then + pragma Annotate + (CodePeer, Intentional, "test always true", "test for infinity"); + Set ('+'); Set ('I'); Set ('n'); diff --git a/gcc/ada/libgnat/s-imgrea.ads b/gcc/ada/libgnat/s-imgrea.ads index c17d35c..9711516 100644 --- a/gcc/ada/libgnat/s-imgrea.ads +++ b/gcc/ada/libgnat/s-imgrea.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -73,4 +73,9 @@ package System.Img_Real is -- can be set to any valid values for the case of use from Text_IO. Note -- that no space is stored at the start for non-negative values. + Max_Real_Image_Length : constant := 5200; + -- If Exp is set to zero and Aft is set to Text_IO.Field'Last (i.e., 255) + -- then Long_Long_Float'Last generates an image whose length is + -- slightly less than 5200. + end System.Img_Real; diff --git a/gcc/ada/libgnat/s-imguns.adb b/gcc/ada/libgnat/s-imguns.adb index 779c41c..914121d 100644 --- a/gcc/ada/libgnat/s-imguns.adb +++ b/gcc/ada/libgnat/s-imguns.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imguns.ads b/gcc/ada/libgnat/s-imguns.ads index 84cb609..86e6d99 100644 --- a/gcc/ada/libgnat/s-imguns.ads +++ b/gcc/ada/libgnat/s-imguns.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgwch.adb b/gcc/ada/libgnat/s-imgwch.adb index 3892c77..499a513 100644 --- a/gcc/ada/libgnat/s-imgwch.adb +++ b/gcc/ada/libgnat/s-imgwch.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgwch.ads b/gcc/ada/libgnat/s-imgwch.ads index 349ff1e..efc1463 100644 --- a/gcc/ada/libgnat/s-imgwch.ads +++ b/gcc/ada/libgnat/s-imgwch.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgwiu.adb b/gcc/ada/libgnat/s-imgwiu.adb index 319410c..90a8f41 100644 --- a/gcc/ada/libgnat/s-imgwiu.adb +++ b/gcc/ada/libgnat/s-imgwiu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-imgwiu.ads b/gcc/ada/libgnat/s-imgwiu.ads index ae67de0..6d33599 100644 --- a/gcc/ada/libgnat/s-imgwiu.ads +++ b/gcc/ada/libgnat/s-imgwiu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-io.adb b/gcc/ada/libgnat/s-io.adb index 18edf63..23301e9 100644 --- a/gcc/ada/libgnat/s-io.adb +++ b/gcc/ada/libgnat/s-io.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -65,16 +65,16 @@ package body System.IO is end Put; procedure Put (C : Character) is - procedure Put_Char (C : Character); + procedure Put_Char (C : Integer); pragma Import (C, Put_Char, "put_char"); - procedure Put_Char_Stderr (C : Character); + procedure Put_Char_Stderr (C : Integer); pragma Import (C, Put_Char_Stderr, "put_char_stderr"); begin case Current_Out is - when Stdout => Put_Char (C); - when Stderr => Put_Char_Stderr (C); + when Stdout => Put_Char (Character'Pos (C)); + when Stderr => Put_Char_Stderr (Character'Pos (C)); end case; end Put; diff --git a/gcc/ada/libgnat/s-io.ads b/gcc/ada/libgnat/s-io.ads index 4e515e5..6b733b6 100644 --- a/gcc/ada/libgnat/s-io.ads +++ b/gcc/ada/libgnat/s-io.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-llflex.ads b/gcc/ada/libgnat/s-llflex.ads index 70cd9ce..bbc79a8 100644 --- a/gcc/ada/libgnat/s-llflex.ads +++ b/gcc/ada/libgnat/s-llflex.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-maccod.ads b/gcc/ada/libgnat/s-maccod.ads index 9f0dc46..d2465f6 100644 --- a/gcc/ada/libgnat/s-maccod.ads +++ b/gcc/ada/libgnat/s-maccod.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-mantis.adb b/gcc/ada/libgnat/s-mantis.adb index da4e6ba8..48eb280 100644 --- a/gcc/ada/libgnat/s-mantis.adb +++ b/gcc/ada/libgnat/s-mantis.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1996-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1996-2020, 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- -- diff --git a/gcc/ada/libgnat/s-mantis.ads b/gcc/ada/libgnat/s-mantis.ads index 4204732..7ad511e 100644 --- a/gcc/ada/libgnat/s-mantis.ads +++ b/gcc/ada/libgnat/s-mantis.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1996-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1996-2020, 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- -- diff --git a/gcc/ada/libgnat/s-mastop.adb b/gcc/ada/libgnat/s-mastop.adb index 7848fff..cf87731 100644 --- a/gcc/ada/libgnat/s-mastop.adb +++ b/gcc/ada/libgnat/s-mastop.adb @@ -7,7 +7,7 @@ -- B o d y -- -- (Dummy version) -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, 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- -- diff --git a/gcc/ada/libgnat/s-mastop.ads b/gcc/ada/libgnat/s-mastop.ads index 10e5616..c2c23d3 100644 --- a/gcc/ada/libgnat/s-mastop.ads +++ b/gcc/ada/libgnat/s-mastop.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, 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- -- diff --git a/gcc/ada/libgnat/s-memcop.ads b/gcc/ada/libgnat/s-memcop.ads index 7c6045e..db33a57 100644 --- a/gcc/ada/libgnat/s-memcop.ads +++ b/gcc/ada/libgnat/s-memcop.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2001-2020, 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 -- diff --git a/gcc/ada/libgnat/s-memory.adb b/gcc/ada/libgnat/s-memory.adb index ebc168e..f6ecf47 100644 --- a/gcc/ada/libgnat/s-memory.adb +++ b/gcc/ada/libgnat/s-memory.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2001-2020, 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- -- diff --git a/gcc/ada/libgnat/s-memory.ads b/gcc/ada/libgnat/s-memory.ads index 68b49aa..57e8b24 100644 --- a/gcc/ada/libgnat/s-memory.ads +++ b/gcc/ada/libgnat/s-memory.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2001-2020, 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- -- diff --git a/gcc/ada/libgnat/s-mmap.adb b/gcc/ada/libgnat/s-mmap.adb index 079f021..0e1f4f7 100644 --- a/gcc/ada/libgnat/s-mmap.adb +++ b/gcc/ada/libgnat/s-mmap.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- This library is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- diff --git a/gcc/ada/libgnat/s-mmap.ads b/gcc/ada/libgnat/s-mmap.ads index 7f68cb5..305d1f8 100644 --- a/gcc/ada/libgnat/s-mmap.ads +++ b/gcc/ada/libgnat/s-mmap.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- This library is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- @@ -223,13 +223,11 @@ package System.Mmap is -- (File); such accesses may cause Storage_Error to be raised. function Data (Region : Mapped_Region) return Str_Access; - pragma Inline (Data); -- The data mapped in Region as requested. The result is an unconstrained -- string, so you cannot use the usual 'First and 'Last attributes. -- Instead, these are respectively 1 and Size. function Data (File : Mapped_File) return Str_Access; - pragma Inline (Data); -- Likewise for the region contained in File function Is_Mutable (Region : Mapped_Region) return Boolean; diff --git a/gcc/ada/libgnat/s-mmauni__long.ads b/gcc/ada/libgnat/s-mmauni__long.ads index d12b154..4fbd00a 100644 --- a/gcc/ada/libgnat/s-mmauni__long.ads +++ b/gcc/ada/libgnat/s-mmauni__long.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- This library is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- diff --git a/gcc/ada/libgnat/s-mmosin__mingw.adb b/gcc/ada/libgnat/s-mmosin__mingw.adb index ea993d7..631e0dd 100644 --- a/gcc/ada/libgnat/s-mmosin__mingw.adb +++ b/gcc/ada/libgnat/s-mmosin__mingw.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- This library is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- diff --git a/gcc/ada/libgnat/s-mmosin__mingw.ads b/gcc/ada/libgnat/s-mmosin__mingw.ads index 390709f..8c3a472 100644 --- a/gcc/ada/libgnat/s-mmosin__mingw.ads +++ b/gcc/ada/libgnat/s-mmosin__mingw.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- This library is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- diff --git a/gcc/ada/libgnat/s-mmosin__unix.adb b/gcc/ada/libgnat/s-mmosin__unix.adb index bb68849..e0b369f 100644 --- a/gcc/ada/libgnat/s-mmosin__unix.adb +++ b/gcc/ada/libgnat/s-mmosin__unix.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- This library is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- diff --git a/gcc/ada/libgnat/s-mmosin__unix.ads b/gcc/ada/libgnat/s-mmosin__unix.ads index b0832f0..234ce42 100644 --- a/gcc/ada/libgnat/s-mmosin__unix.ads +++ b/gcc/ada/libgnat/s-mmosin__unix.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, AdaCore -- +-- Copyright (C) 2007-2020, AdaCore -- -- -- -- This library is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- diff --git a/gcc/ada/libgnat/s-multip.adb b/gcc/ada/libgnat/s-multip.adb index 62dc988..e17872c 100644 --- a/gcc/ada/libgnat/s-multip.adb +++ b/gcc/ada/libgnat/s-multip.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2010-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2010-2020, 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- -- diff --git a/gcc/ada/libgnat/s-objrea.adb b/gcc/ada/libgnat/s-objrea.adb index 89b58a6..d64e285 100644 --- a/gcc/ada/libgnat/s-objrea.adb +++ b/gcc/ada/libgnat/s-objrea.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/s-objrea.ads b/gcc/ada/libgnat/s-objrea.ads index 372ad96..bd4fbd5 100644 --- a/gcc/ada/libgnat/s-objrea.ads +++ b/gcc/ada/libgnat/s-objrea.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/s-optide.adb b/gcc/ada/libgnat/s-optide.adb index f0d46f8..c979797 100644 --- a/gcc/ada/libgnat/s-optide.adb +++ b/gcc/ada/libgnat/s-optide.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2012-2019, AdaCore -- +-- Copyright (C) 2012-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-os_lib.adb b/gcc/ada/libgnat/s-os_lib.adb index 258cd64..288325c 100644 --- a/gcc/ada/libgnat/s-os_lib.adb +++ b/gcc/ada/libgnat/s-os_lib.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, AdaCore -- +-- Copyright (C) 1995-2020, AdaCore -- -- -- -- 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- -- @@ -63,6 +63,11 @@ package body System.OS_Lib is -- Mode = 1 - copy time stamps and read/write/execute attributes -- Mode = 2 - copy read/write/execute attributes + function Is_Dirsep (C : Character) return Boolean; + pragma Inline (Is_Dirsep); + -- Returns True if C is a directory separator. On Windows we + -- accept both \ and / as a directory separator. + On_Windows : constant Boolean := Directory_Separator = '\'; -- An indication that we are on Windows. Used in Normalize_Pathname, to -- deal with drive letters in the beginning of absolute paths. @@ -336,22 +341,6 @@ package body System.OS_Lib is ---------------- function Build_Path (Dir : String; File : String) return String is - function Is_Dirsep (C : Character) return Boolean; - pragma Inline (Is_Dirsep); - -- Returns True if C is a directory separator. On Windows we - -- handle both styles of directory separator. - - --------------- - -- Is_Dirsep -- - --------------- - - function Is_Dirsep (C : Character) return Boolean is - begin - return C = Directory_Separator or else C = '/'; - end Is_Dirsep; - - -- Local variables - Base_File_Ptr : Integer; -- The base file name is File (Base_File_Ptr + 1 .. File'Last) @@ -574,14 +563,15 @@ package body System.OS_Lib is -- touch destination file at all. From := Open_Read (Name, Binary); - if From /= Invalid_FD then + + if From = Invalid_FD then + Success := False; + else To := Open_Read_Write (Pathname, Binary); + Lseek (To, 0, Seek_End); + Copy (From, To); end if; - Lseek (To, 0, Seek_End); - - Copy (From, To); - -- Appending to directory, not allowed elsif Is_Directory (Pathname) then @@ -1471,6 +1461,15 @@ package body System.OS_Lib is return Is_Absolute_Path (Name'Address, Name'Length) /= 0; end Is_Absolute_Path; + --------------- + -- Is_Dirsep -- + --------------- + + function Is_Dirsep (C : Character) return Boolean is + begin + return C = Directory_Separator or else C = '/'; + end Is_Dirsep; + ------------------ -- Is_Directory -- ------------------ @@ -1999,6 +1998,8 @@ package body System.OS_Lib is -- If the string ends with \, double it + pragma Annotate (CodePeer, Modified, Res (J - 1)); + if Res (J - 1) = '\' then Res (J) := '\'; J := J + 1; @@ -2082,17 +2083,61 @@ package body System.OS_Lib is Fold_To_Lower_Case : constant Boolean := not Case_Sensitive - and then Get_File_Names_Case_Sensitive = 0; + and then Get_File_Names_Case_Sensitive = 0; + + Cur_Dir_Len : Natural := 0; + End_Path : Natural := Name'Length; + Last : Positive := 1; + Path_Buffer : String (1 .. End_Path + 2 * Max_Path + 4); + -- We need to potentially store in this buffer the following elements: + -- the path itself, the current directory if the path is relative, + -- and additional fragments up to Max_Path in length in case + -- there are any symlinks. function Final_Value (S : String) return String; -- Make final adjustment to the returned string. This function strips -- trailing directory separators, and folds returned string to lower -- case if required. - function Get_Directory (Dir : String) return String; - -- If Dir is not empty, return it, adding a directory separator - -- if not already present, otherwise return current working directory - -- with terminating directory separator. + procedure Fill_Directory (Drive_Only : Boolean := False); + -- Fill Cur_Dir and Cur_Dir_Len with Directory and ending directory + -- separator or with current directory if Directory is not defined. + -- If Drive_Only is True takes only Drive letter with colon and + -- directory separator from Directory parameter or from current + -- directory if Directory parameter is empty. + + function Is_With_Drive (Name : String) return Boolean; + pragma Inline (Is_With_Drive); + -- Returns True only if the Name is including a drive + -- letter at start. + + function Missed_Drive_Letter (Name : String) return Boolean; + -- Missed drive letter at start of the normalized pathname + + ------------------- + -- Is_With_Drive -- + ------------------- + + function Is_With_Drive (Name : String) return Boolean is + begin + return Name'Length > 1 + and then Name (Name'First + 1) = ':' + and then (Name (Name'First) in 'a' .. 'z' + or else Name (Name'First) in 'A' .. 'Z'); + end Is_With_Drive; + + ------------------------- + -- Missed_Drive_Letter -- + ------------------------- + + function Missed_Drive_Letter (Name : String) return Boolean is + begin + return On_Windows + and then not Is_With_Drive (Name) + and then (Name'Length < 2 -- not \\name case + or else Name (Name'First .. Name'First + 1) + /= Directory_Separator & Directory_Separator); + end Missed_Drive_Letter; ----------------- -- Final_Value -- @@ -2113,22 +2158,14 @@ package body System.OS_Lib is Last := S1'Last; - if Last > 1 - and then (S1 (Last) = '/' - or else - S1 (Last) = Directory_Separator) - then - -- Special case for Windows: C:\ - - if Last = 3 + if Last > 1 and then Is_Dirsep (S1 (Last)) + and then not + (On_Windows -- Special case for Windows: C:\ + and then Last = 3 and then S1 (1) /= Directory_Separator - and then S1 (2) = ':' - then - null; - - else - Last := Last - 1; - end if; + and then S1 (2) = ':') + then + Last := Last - 1; end if; -- And ensure that there is a trailing directory separator if the @@ -2145,90 +2182,80 @@ package body System.OS_Lib is end if; end Final_Value; - ------------------- - -- Get_Directory -- - ------------------- + -------------------- + -- Fill_Directory -- + -------------------- - function Get_Directory (Dir : String) return String is + procedure Fill_Directory (Drive_Only : Boolean := False) is begin - -- Directory given, add directory separator if needed + if Drive_Only and then Is_With_Drive (Directory) then + Path_Buffer (1 .. 3) := + Directory (Directory'First .. Directory'First + 2); - if Dir'Length > 0 then - declare - Result : String := - Normalize_Pathname - (Dir, "", Resolve_Links, Case_Sensitive) - & Directory_Separator; - Last : Positive := Result'Last - 1; + elsif Directory = "" + or else not Is_Absolute_Path (Directory) + or else Missed_Drive_Letter (Directory) + then + -- Directory name not given or it is not absolute or without drive + -- letter on Windows, get current directory. - begin - -- On Windows, change all '/' to '\' - - if On_Windows then - for J in Result'First .. Last - 1 loop - if Result (J) = '/' then - Result (J) := Directory_Separator; - end if; - end loop; - end if; + Cur_Dir_Len := Max_Path; - -- Include additional directory separator, if needed + Get_Current_Dir (Path_Buffer'Address, Cur_Dir_Len'Address); - if Result (Last) /= Directory_Separator then - Last := Last + 1; - end if; + if Cur_Dir_Len = 0 then + raise Program_Error; + end if; - return Result (Result'First .. Last); - end; + if not Resolve_Links then + Last := Cur_Dir_Len; + end if; - -- Directory name not given, get current directory + if not Drive_Only and then Directory /= "" then + if On_Windows and then Is_Absolute_Path (Directory) then + -- Drive letter taken from current directory but directory + -- itself taken from Directory parameter. - else - declare - Buffer : String (1 .. Max_Path + 2); - Path_Len : Natural := Max_Path; + Path_Buffer (3 .. Directory'Length + 2) := Directory; + Cur_Dir_Len := Directory'Length + 2; + Last := 3; - begin - Get_Current_Dir (Buffer'Address, Path_Len'Address); + else + -- Append relative Directory to current directory - if Path_Len = 0 then - raise Program_Error; + Path_Buffer + (Cur_Dir_Len + 1 .. Cur_Dir_Len + Directory'Length) := + Directory; + Cur_Dir_Len := Cur_Dir_Len + Directory'Length; end if; + end if; - if Buffer (Path_Len) /= Directory_Separator then - Path_Len := Path_Len + 1; - Buffer (Path_Len) := Directory_Separator; - end if; + elsif Directory'Length >= Path_Buffer'Length then + raise Constraint_Error with "Directory name to big"; - -- By default, the drive letter on Windows is in upper case + else + Path_Buffer (1 .. Directory'Length) := Directory; + Cur_Dir_Len := Directory'Length; + end if; - if On_Windows - and then Path_Len >= 2 - and then Buffer (2) = ':' - then - System.Case_Util.To_Upper (Buffer (1 .. 1)); - end if; + if Drive_Only then + -- When we need only drive letter from current directory on + -- Windows - return Buffer (1 .. Path_Len); - end; + Cur_Dir_Len := 3; + Last := Cur_Dir_Len; + + elsif not Is_Dirsep (Path_Buffer (Cur_Dir_Len)) then + Cur_Dir_Len := Cur_Dir_Len + 1; + Path_Buffer (Cur_Dir_Len) := Directory_Separator; end if; - end Get_Directory; + end Fill_Directory; -- Local variables Max_Iterations : constant := 500; - Cur_Dir : constant String := Get_Directory (Directory); - Cur_Dir_Len : constant Natural := Cur_Dir'Length; - - End_Path : Natural := Name'Length; - Last : Positive := 1; Link_Buffer : String (1 .. Max_Path + 2); - Path_Buffer : String (1 .. End_Path + Cur_Dir_Len + Max_Path + 2); - -- We need to potentially store in this buffer the following elements: - -- the path itself, the current directory if the path is relative, - -- and additional fragments up to Max_Path in length in case - -- there are any symlinks. Finish : Positive; Start : Positive; @@ -2244,14 +2271,23 @@ package body System.OS_Lib is end if; if Is_Absolute_Path (Name) then - Path_Buffer (1 .. End_Path) := Name; + if Missed_Drive_Letter (Name) then + Fill_Directory (Drive_Only => True); + + -- Take only drive letter part with colon + + End_Path := End_Path + 2; + Path_Buffer (3 .. End_Path) := Name; + + else + Path_Buffer (1 .. End_Path) := Name; + end if; else -- If this is a relative pathname, prepend current directory - Path_Buffer (1 .. Cur_Dir_Len) := Cur_Dir; + Fill_Directory; Path_Buffer (Cur_Dir_Len + 1 .. Cur_Dir_Len + End_Path) := Name; End_Path := Cur_Dir_Len + End_Path; - Last := Cur_Dir_Len; end if; -- Special handling for Windows: @@ -2268,30 +2304,11 @@ package body System.OS_Lib is end if; end loop; - -- If we have an absolute path starting with a directory - -- separator (but not a UNC path), we need to have the drive letter - -- in front of the path. Get_Current_Dir returns a path starting - -- with a drive letter. So we take this drive letter and prepend it - -- to the current path. + -- Ensure drive letter is upper-case - if Path_Buffer (1) = Directory_Separator - and then Path_Buffer (2) /= Directory_Separator - then - if Cur_Dir'Length > 2 - and then Cur_Dir (Cur_Dir'First + 1) = ':' - then - Path_Buffer (3 .. End_Path + 2) := - Path_Buffer (1 .. End_Path); - Path_Buffer (1 .. 2) := - Cur_Dir (Cur_Dir'First .. Cur_Dir'First + 1); - End_Path := End_Path + 2; - end if; + pragma Assert (Path_Buffer (2) = ':'); - -- We have a drive letter already, ensure it is upper-case - - elsif Path_Buffer (1) in 'a' .. 'z' - and then Path_Buffer (2) = ':' - then + if Path_Buffer (1) in 'a' .. 'z' then System.Case_Util.To_Upper (Path_Buffer (1 .. 1)); end if; diff --git a/gcc/ada/libgnat/s-os_lib.ads b/gcc/ada/libgnat/s-os_lib.ads index 99406e9..f786cca 100644 --- a/gcc/ada/libgnat/s-os_lib.ads +++ b/gcc/ada/libgnat/s-os_lib.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, 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- -- diff --git a/gcc/ada/libgnat/s-osprim.ads b/gcc/ada/libgnat/s-osprim.ads index 101a573..fce4203 100644 --- a/gcc/ada/libgnat/s-osprim.ads +++ b/gcc/ada/libgnat/s-osprim.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-osprim__darwin.adb b/gcc/ada/libgnat/s-osprim__darwin.adb index dbd4fc7..8e85871 100644 --- a/gcc/ada/libgnat/s-osprim__darwin.adb +++ b/gcc/ada/libgnat/s-osprim__darwin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-osprim__lynxos.ads b/gcc/ada/libgnat/s-osprim__lynxos.ads index 7a717c1..e181f7e 100644 --- a/gcc/ada/libgnat/s-osprim__lynxos.ads +++ b/gcc/ada/libgnat/s-osprim__lynxos.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-osprim__mingw.adb b/gcc/ada/libgnat/s-osprim__mingw.adb index 5c5c796..8e0c425 100644 --- a/gcc/ada/libgnat/s-osprim__mingw.adb +++ b/gcc/ada/libgnat/s-osprim__mingw.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-osprim__posix.adb b/gcc/ada/libgnat/s-osprim__posix.adb index 55008de..4413616 100644 --- a/gcc/ada/libgnat/s-osprim__posix.adb +++ b/gcc/ada/libgnat/s-osprim__posix.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-osprim__posix2008.adb b/gcc/ada/libgnat/s-osprim__posix2008.adb index 650bb2e..87bbdc1 100644 --- a/gcc/ada/libgnat/s-osprim__posix2008.adb +++ b/gcc/ada/libgnat/s-osprim__posix2008.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-osprim__rtems.adb b/gcc/ada/libgnat/s-osprim__rtems.adb index 7efede8..5cdc03d 100644 --- a/gcc/ada/libgnat/s-osprim__rtems.adb +++ b/gcc/ada/libgnat/s-osprim__rtems.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-osprim__solaris.adb b/gcc/ada/libgnat/s-osprim__solaris.adb index 9cc7bc1..7165bc4 100644 --- a/gcc/ada/libgnat/s-osprim__solaris.adb +++ b/gcc/ada/libgnat/s-osprim__solaris.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-osprim__unix.adb b/gcc/ada/libgnat/s-osprim__unix.adb index 5a82d97..9a936c6 100644 --- a/gcc/ada/libgnat/s-osprim__unix.adb +++ b/gcc/ada/libgnat/s-osprim__unix.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-osprim__vxworks.adb b/gcc/ada/libgnat/s-osprim__vxworks.adb index 6f19644..40e7d49 100644 --- a/gcc/ada/libgnat/s-osprim__vxworks.adb +++ b/gcc/ada/libgnat/s-osprim__vxworks.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-osprim__x32.adb b/gcc/ada/libgnat/s-osprim__x32.adb index be86469..4a11379 100644 --- a/gcc/ada/libgnat/s-osprim__x32.adb +++ b/gcc/ada/libgnat/s-osprim__x32.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2013-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2013-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-osvers__vxworks-653.ads b/gcc/ada/libgnat/s-osvers__vxworks-653.ads index bbf9ca5..48b1c2a 100644 --- a/gcc/ada/libgnat/s-osvers__vxworks-653.ads +++ b/gcc/ada/libgnat/s-osvers__vxworks-653.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2010-2019, AdaCore -- +-- Copyright (C) 2010-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-pack03.adb b/gcc/ada/libgnat/s-pack03.adb index 0d60c6c..32e7c0c 100644 --- a/gcc/ada/libgnat/s-pack03.adb +++ b/gcc/ada/libgnat/s-pack03.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack03.ads b/gcc/ada/libgnat/s-pack03.ads index 89bc82f..47d71f0 100644 --- a/gcc/ada/libgnat/s-pack03.ads +++ b/gcc/ada/libgnat/s-pack03.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack05.adb b/gcc/ada/libgnat/s-pack05.adb index 96add00..78a7005 100644 --- a/gcc/ada/libgnat/s-pack05.adb +++ b/gcc/ada/libgnat/s-pack05.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack05.ads b/gcc/ada/libgnat/s-pack05.ads index 529a8e3..cdcacc7 100644 --- a/gcc/ada/libgnat/s-pack05.ads +++ b/gcc/ada/libgnat/s-pack05.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack06.adb b/gcc/ada/libgnat/s-pack06.adb index 756f806..623b955 100644 --- a/gcc/ada/libgnat/s-pack06.adb +++ b/gcc/ada/libgnat/s-pack06.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack06.ads b/gcc/ada/libgnat/s-pack06.ads index 004139d..0c918a0 100644 --- a/gcc/ada/libgnat/s-pack06.ads +++ b/gcc/ada/libgnat/s-pack06.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack07.adb b/gcc/ada/libgnat/s-pack07.adb index 73dfab8..f0a3177 100644 --- a/gcc/ada/libgnat/s-pack07.adb +++ b/gcc/ada/libgnat/s-pack07.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack07.ads b/gcc/ada/libgnat/s-pack07.ads index d306f67..4fa1385 100644 --- a/gcc/ada/libgnat/s-pack07.ads +++ b/gcc/ada/libgnat/s-pack07.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack09.adb b/gcc/ada/libgnat/s-pack09.adb index e879064..8517f4d 100644 --- a/gcc/ada/libgnat/s-pack09.adb +++ b/gcc/ada/libgnat/s-pack09.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack09.ads b/gcc/ada/libgnat/s-pack09.ads index f7becca..cdf62e3 100644 --- a/gcc/ada/libgnat/s-pack09.ads +++ b/gcc/ada/libgnat/s-pack09.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack10.adb b/gcc/ada/libgnat/s-pack10.adb index 4289067..d08751d 100644 --- a/gcc/ada/libgnat/s-pack10.adb +++ b/gcc/ada/libgnat/s-pack10.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack10.ads b/gcc/ada/libgnat/s-pack10.ads index 2efffdb..33ed2dd1 100644 --- a/gcc/ada/libgnat/s-pack10.ads +++ b/gcc/ada/libgnat/s-pack10.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack11.adb b/gcc/ada/libgnat/s-pack11.adb index 05b2e71..ca2b3ad 100644 --- a/gcc/ada/libgnat/s-pack11.adb +++ b/gcc/ada/libgnat/s-pack11.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack11.ads b/gcc/ada/libgnat/s-pack11.ads index ef89843..e565d80 100644 --- a/gcc/ada/libgnat/s-pack11.ads +++ b/gcc/ada/libgnat/s-pack11.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack12.adb b/gcc/ada/libgnat/s-pack12.adb index 2cfc9d4..d53e9a3 100644 --- a/gcc/ada/libgnat/s-pack12.adb +++ b/gcc/ada/libgnat/s-pack12.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack12.ads b/gcc/ada/libgnat/s-pack12.ads index 4b8f29c..84323be 100644 --- a/gcc/ada/libgnat/s-pack12.ads +++ b/gcc/ada/libgnat/s-pack12.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack13.adb b/gcc/ada/libgnat/s-pack13.adb index 0fa4d89..9d9ee0e 100644 --- a/gcc/ada/libgnat/s-pack13.adb +++ b/gcc/ada/libgnat/s-pack13.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack13.ads b/gcc/ada/libgnat/s-pack13.ads index cc6a13d..bb56cfc 100644 --- a/gcc/ada/libgnat/s-pack13.ads +++ b/gcc/ada/libgnat/s-pack13.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack14.adb b/gcc/ada/libgnat/s-pack14.adb index 968e064..cceb09e 100644 --- a/gcc/ada/libgnat/s-pack14.adb +++ b/gcc/ada/libgnat/s-pack14.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack14.ads b/gcc/ada/libgnat/s-pack14.ads index 65fa118..3c1c8e2 100644 --- a/gcc/ada/libgnat/s-pack14.ads +++ b/gcc/ada/libgnat/s-pack14.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack15.adb b/gcc/ada/libgnat/s-pack15.adb index 83ed344..0e91afc 100644 --- a/gcc/ada/libgnat/s-pack15.adb +++ b/gcc/ada/libgnat/s-pack15.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack15.ads b/gcc/ada/libgnat/s-pack15.ads index cd5c2c1..fb73d29 100644 --- a/gcc/ada/libgnat/s-pack15.ads +++ b/gcc/ada/libgnat/s-pack15.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack17.adb b/gcc/ada/libgnat/s-pack17.adb index 577a8db..7ba49ca 100644 --- a/gcc/ada/libgnat/s-pack17.adb +++ b/gcc/ada/libgnat/s-pack17.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack17.ads b/gcc/ada/libgnat/s-pack17.ads index ff60347..f47c7bd 100644 --- a/gcc/ada/libgnat/s-pack17.ads +++ b/gcc/ada/libgnat/s-pack17.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack18.adb b/gcc/ada/libgnat/s-pack18.adb index 2125762..e4b7d9f 100644 --- a/gcc/ada/libgnat/s-pack18.adb +++ b/gcc/ada/libgnat/s-pack18.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack18.ads b/gcc/ada/libgnat/s-pack18.ads index 63f38cb..2e196bf 100644 --- a/gcc/ada/libgnat/s-pack18.ads +++ b/gcc/ada/libgnat/s-pack18.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack19.adb b/gcc/ada/libgnat/s-pack19.adb index 0151348..50336a9 100644 --- a/gcc/ada/libgnat/s-pack19.adb +++ b/gcc/ada/libgnat/s-pack19.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack19.ads b/gcc/ada/libgnat/s-pack19.ads index 56170d0..58d7837 100644 --- a/gcc/ada/libgnat/s-pack19.ads +++ b/gcc/ada/libgnat/s-pack19.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack20.adb b/gcc/ada/libgnat/s-pack20.adb index 573490a..a2a2fda 100644 --- a/gcc/ada/libgnat/s-pack20.adb +++ b/gcc/ada/libgnat/s-pack20.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack20.ads b/gcc/ada/libgnat/s-pack20.ads index ad5da50..10d75e8 100644 --- a/gcc/ada/libgnat/s-pack20.ads +++ b/gcc/ada/libgnat/s-pack20.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack21.adb b/gcc/ada/libgnat/s-pack21.adb index 592c870..a7011ee 100644 --- a/gcc/ada/libgnat/s-pack21.adb +++ b/gcc/ada/libgnat/s-pack21.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack21.ads b/gcc/ada/libgnat/s-pack21.ads index a3bad14..eee9f6d 100644 --- a/gcc/ada/libgnat/s-pack21.ads +++ b/gcc/ada/libgnat/s-pack21.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack22.adb b/gcc/ada/libgnat/s-pack22.adb index 980bac4..d41ed28 100644 --- a/gcc/ada/libgnat/s-pack22.adb +++ b/gcc/ada/libgnat/s-pack22.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack22.ads b/gcc/ada/libgnat/s-pack22.ads index 64651b0..79b92d4 100644 --- a/gcc/ada/libgnat/s-pack22.ads +++ b/gcc/ada/libgnat/s-pack22.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack23.adb b/gcc/ada/libgnat/s-pack23.adb index 4181c7f..b15950d 100644 --- a/gcc/ada/libgnat/s-pack23.adb +++ b/gcc/ada/libgnat/s-pack23.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack23.ads b/gcc/ada/libgnat/s-pack23.ads index 33fe99f..ec08bd9 100644 --- a/gcc/ada/libgnat/s-pack23.ads +++ b/gcc/ada/libgnat/s-pack23.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack24.adb b/gcc/ada/libgnat/s-pack24.adb index 40db7ac..c2a320d 100644 --- a/gcc/ada/libgnat/s-pack24.adb +++ b/gcc/ada/libgnat/s-pack24.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack24.ads b/gcc/ada/libgnat/s-pack24.ads index 24fe7a8..c26a0e6 100644 --- a/gcc/ada/libgnat/s-pack24.ads +++ b/gcc/ada/libgnat/s-pack24.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack25.adb b/gcc/ada/libgnat/s-pack25.adb index ad5aa8a..99f1bb1 100644 --- a/gcc/ada/libgnat/s-pack25.adb +++ b/gcc/ada/libgnat/s-pack25.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack25.ads b/gcc/ada/libgnat/s-pack25.ads index 3111a03..2b6c7e2 100644 --- a/gcc/ada/libgnat/s-pack25.ads +++ b/gcc/ada/libgnat/s-pack25.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack26.adb b/gcc/ada/libgnat/s-pack26.adb index cc6ab4b..6c80c55 100644 --- a/gcc/ada/libgnat/s-pack26.adb +++ b/gcc/ada/libgnat/s-pack26.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack26.ads b/gcc/ada/libgnat/s-pack26.ads index 69374d7..150e331 100644 --- a/gcc/ada/libgnat/s-pack26.ads +++ b/gcc/ada/libgnat/s-pack26.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack27.adb b/gcc/ada/libgnat/s-pack27.adb index 0a99810..f3c51b0 100644 --- a/gcc/ada/libgnat/s-pack27.adb +++ b/gcc/ada/libgnat/s-pack27.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack27.ads b/gcc/ada/libgnat/s-pack27.ads index c7283a8..8ce481b 100644 --- a/gcc/ada/libgnat/s-pack27.ads +++ b/gcc/ada/libgnat/s-pack27.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack28.adb b/gcc/ada/libgnat/s-pack28.adb index 4805e0a..7a11643 100644 --- a/gcc/ada/libgnat/s-pack28.adb +++ b/gcc/ada/libgnat/s-pack28.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack28.ads b/gcc/ada/libgnat/s-pack28.ads index b7851c1..763b1d0 100644 --- a/gcc/ada/libgnat/s-pack28.ads +++ b/gcc/ada/libgnat/s-pack28.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack29.adb b/gcc/ada/libgnat/s-pack29.adb index b30703b..e4209a2 100644 --- a/gcc/ada/libgnat/s-pack29.adb +++ b/gcc/ada/libgnat/s-pack29.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack29.ads b/gcc/ada/libgnat/s-pack29.ads index 43094fc..f977d80 100644 --- a/gcc/ada/libgnat/s-pack29.ads +++ b/gcc/ada/libgnat/s-pack29.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack30.adb b/gcc/ada/libgnat/s-pack30.adb index fb799f0..577012f 100644 --- a/gcc/ada/libgnat/s-pack30.adb +++ b/gcc/ada/libgnat/s-pack30.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack30.ads b/gcc/ada/libgnat/s-pack30.ads index def31e4..fc5965b 100644 --- a/gcc/ada/libgnat/s-pack30.ads +++ b/gcc/ada/libgnat/s-pack30.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack31.adb b/gcc/ada/libgnat/s-pack31.adb index 1035042..debf3db 100644 --- a/gcc/ada/libgnat/s-pack31.adb +++ b/gcc/ada/libgnat/s-pack31.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack31.ads b/gcc/ada/libgnat/s-pack31.ads index 91dfaad..22db441 100644 --- a/gcc/ada/libgnat/s-pack31.ads +++ b/gcc/ada/libgnat/s-pack31.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack33.adb b/gcc/ada/libgnat/s-pack33.adb index cde21bd..f2afef0 100644 --- a/gcc/ada/libgnat/s-pack33.adb +++ b/gcc/ada/libgnat/s-pack33.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack33.ads b/gcc/ada/libgnat/s-pack33.ads index ca12603..5d8cb4d 100644 --- a/gcc/ada/libgnat/s-pack33.ads +++ b/gcc/ada/libgnat/s-pack33.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack34.adb b/gcc/ada/libgnat/s-pack34.adb index ac12ed3..2f9580a 100644 --- a/gcc/ada/libgnat/s-pack34.adb +++ b/gcc/ada/libgnat/s-pack34.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack34.ads b/gcc/ada/libgnat/s-pack34.ads index 489995a..cd5d7fa 100644 --- a/gcc/ada/libgnat/s-pack34.ads +++ b/gcc/ada/libgnat/s-pack34.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack35.adb b/gcc/ada/libgnat/s-pack35.adb index 2e9a79e..49cad6f 100644 --- a/gcc/ada/libgnat/s-pack35.adb +++ b/gcc/ada/libgnat/s-pack35.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack35.ads b/gcc/ada/libgnat/s-pack35.ads index a0dd33e..21ca7d4 100644 --- a/gcc/ada/libgnat/s-pack35.ads +++ b/gcc/ada/libgnat/s-pack35.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack36.adb b/gcc/ada/libgnat/s-pack36.adb index 8585edc..bdb3fe3 100644 --- a/gcc/ada/libgnat/s-pack36.adb +++ b/gcc/ada/libgnat/s-pack36.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack36.ads b/gcc/ada/libgnat/s-pack36.ads index 6b93b89..924268f 100644 --- a/gcc/ada/libgnat/s-pack36.ads +++ b/gcc/ada/libgnat/s-pack36.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack37.adb b/gcc/ada/libgnat/s-pack37.adb index dcad1ef..7f1ead5 100644 --- a/gcc/ada/libgnat/s-pack37.adb +++ b/gcc/ada/libgnat/s-pack37.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack37.ads b/gcc/ada/libgnat/s-pack37.ads index 12246af..089434f 100644 --- a/gcc/ada/libgnat/s-pack37.ads +++ b/gcc/ada/libgnat/s-pack37.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack38.adb b/gcc/ada/libgnat/s-pack38.adb index caee10b..f3feac3 100644 --- a/gcc/ada/libgnat/s-pack38.adb +++ b/gcc/ada/libgnat/s-pack38.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack38.ads b/gcc/ada/libgnat/s-pack38.ads index 0d26b9d..bb1c504 100644 --- a/gcc/ada/libgnat/s-pack38.ads +++ b/gcc/ada/libgnat/s-pack38.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack39.adb b/gcc/ada/libgnat/s-pack39.adb index b41caf6..821d954 100644 --- a/gcc/ada/libgnat/s-pack39.adb +++ b/gcc/ada/libgnat/s-pack39.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack39.ads b/gcc/ada/libgnat/s-pack39.ads index 5ef7f3f8..bac16de 100644 --- a/gcc/ada/libgnat/s-pack39.ads +++ b/gcc/ada/libgnat/s-pack39.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack40.adb b/gcc/ada/libgnat/s-pack40.adb index 96a9053..b7a9e02 100644 --- a/gcc/ada/libgnat/s-pack40.adb +++ b/gcc/ada/libgnat/s-pack40.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack40.ads b/gcc/ada/libgnat/s-pack40.ads index 638e811..bb367d6 100644 --- a/gcc/ada/libgnat/s-pack40.ads +++ b/gcc/ada/libgnat/s-pack40.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack41.adb b/gcc/ada/libgnat/s-pack41.adb index 51b24cb..28a0def 100644 --- a/gcc/ada/libgnat/s-pack41.adb +++ b/gcc/ada/libgnat/s-pack41.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack41.ads b/gcc/ada/libgnat/s-pack41.ads index fa1f780..ce92fd9 100644 --- a/gcc/ada/libgnat/s-pack41.ads +++ b/gcc/ada/libgnat/s-pack41.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack42.adb b/gcc/ada/libgnat/s-pack42.adb index 713ee24..c759f94 100644 --- a/gcc/ada/libgnat/s-pack42.adb +++ b/gcc/ada/libgnat/s-pack42.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack42.ads b/gcc/ada/libgnat/s-pack42.ads index 6934090..a1c58ab 100644 --- a/gcc/ada/libgnat/s-pack42.ads +++ b/gcc/ada/libgnat/s-pack42.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack43.adb b/gcc/ada/libgnat/s-pack43.adb index 9378b4bb..137ce06 100644 --- a/gcc/ada/libgnat/s-pack43.adb +++ b/gcc/ada/libgnat/s-pack43.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack43.ads b/gcc/ada/libgnat/s-pack43.ads index 431d14b..c586e47 100644 --- a/gcc/ada/libgnat/s-pack43.ads +++ b/gcc/ada/libgnat/s-pack43.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack44.adb b/gcc/ada/libgnat/s-pack44.adb index 122dc9c..d8eaaac 100644 --- a/gcc/ada/libgnat/s-pack44.adb +++ b/gcc/ada/libgnat/s-pack44.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack44.ads b/gcc/ada/libgnat/s-pack44.ads index 3c38b50..e3873ee 100644 --- a/gcc/ada/libgnat/s-pack44.ads +++ b/gcc/ada/libgnat/s-pack44.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack45.adb b/gcc/ada/libgnat/s-pack45.adb index 67736a5..3739136 100644 --- a/gcc/ada/libgnat/s-pack45.adb +++ b/gcc/ada/libgnat/s-pack45.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack45.ads b/gcc/ada/libgnat/s-pack45.ads index cc4a7ab..dfdd7a9 100644 --- a/gcc/ada/libgnat/s-pack45.ads +++ b/gcc/ada/libgnat/s-pack45.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack46.adb b/gcc/ada/libgnat/s-pack46.adb index ba63edc..1bae1b9 100644 --- a/gcc/ada/libgnat/s-pack46.adb +++ b/gcc/ada/libgnat/s-pack46.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack46.ads b/gcc/ada/libgnat/s-pack46.ads index dd41cff..81c00df 100644 --- a/gcc/ada/libgnat/s-pack46.ads +++ b/gcc/ada/libgnat/s-pack46.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack47.adb b/gcc/ada/libgnat/s-pack47.adb index e2f38e5..e5ab870 100644 --- a/gcc/ada/libgnat/s-pack47.adb +++ b/gcc/ada/libgnat/s-pack47.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack47.ads b/gcc/ada/libgnat/s-pack47.ads index f15bd51..0de9bc6 100644 --- a/gcc/ada/libgnat/s-pack47.ads +++ b/gcc/ada/libgnat/s-pack47.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack48.adb b/gcc/ada/libgnat/s-pack48.adb index 59b188c..0ca74f5 100644 --- a/gcc/ada/libgnat/s-pack48.adb +++ b/gcc/ada/libgnat/s-pack48.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack48.ads b/gcc/ada/libgnat/s-pack48.ads index 7c29f61..225789a 100644 --- a/gcc/ada/libgnat/s-pack48.ads +++ b/gcc/ada/libgnat/s-pack48.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack49.adb b/gcc/ada/libgnat/s-pack49.adb index d2b9e24..f475e62 100644 --- a/gcc/ada/libgnat/s-pack49.adb +++ b/gcc/ada/libgnat/s-pack49.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack49.ads b/gcc/ada/libgnat/s-pack49.ads index 6269c0d..6ad4144 100644 --- a/gcc/ada/libgnat/s-pack49.ads +++ b/gcc/ada/libgnat/s-pack49.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack50.adb b/gcc/ada/libgnat/s-pack50.adb index 3cad660..2e55724 100644 --- a/gcc/ada/libgnat/s-pack50.adb +++ b/gcc/ada/libgnat/s-pack50.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack50.ads b/gcc/ada/libgnat/s-pack50.ads index 0c85e1b..bb3049a 100644 --- a/gcc/ada/libgnat/s-pack50.ads +++ b/gcc/ada/libgnat/s-pack50.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack51.adb b/gcc/ada/libgnat/s-pack51.adb index 262f003..9af3cb7 100644 --- a/gcc/ada/libgnat/s-pack51.adb +++ b/gcc/ada/libgnat/s-pack51.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack51.ads b/gcc/ada/libgnat/s-pack51.ads index 2d19eb1..70506d2 100644 --- a/gcc/ada/libgnat/s-pack51.ads +++ b/gcc/ada/libgnat/s-pack51.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack52.adb b/gcc/ada/libgnat/s-pack52.adb index 4d62e1e..1d6becb 100644 --- a/gcc/ada/libgnat/s-pack52.adb +++ b/gcc/ada/libgnat/s-pack52.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack52.ads b/gcc/ada/libgnat/s-pack52.ads index 0c0f14c..40d9142 100644 --- a/gcc/ada/libgnat/s-pack52.ads +++ b/gcc/ada/libgnat/s-pack52.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack53.adb b/gcc/ada/libgnat/s-pack53.adb index e5bb1d1..a2771a1 100644 --- a/gcc/ada/libgnat/s-pack53.adb +++ b/gcc/ada/libgnat/s-pack53.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack53.ads b/gcc/ada/libgnat/s-pack53.ads index b7f5de3..5512185 100644 --- a/gcc/ada/libgnat/s-pack53.ads +++ b/gcc/ada/libgnat/s-pack53.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack54.adb b/gcc/ada/libgnat/s-pack54.adb index cf107d9..06d3aeb 100644 --- a/gcc/ada/libgnat/s-pack54.adb +++ b/gcc/ada/libgnat/s-pack54.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack54.ads b/gcc/ada/libgnat/s-pack54.ads index 6db7222..52b29ae 100644 --- a/gcc/ada/libgnat/s-pack54.ads +++ b/gcc/ada/libgnat/s-pack54.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack55.adb b/gcc/ada/libgnat/s-pack55.adb index e23f3dc..6e2b628 100644 --- a/gcc/ada/libgnat/s-pack55.adb +++ b/gcc/ada/libgnat/s-pack55.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack55.ads b/gcc/ada/libgnat/s-pack55.ads index 80bbaf2..97115c6 100644 --- a/gcc/ada/libgnat/s-pack55.ads +++ b/gcc/ada/libgnat/s-pack55.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack56.adb b/gcc/ada/libgnat/s-pack56.adb index 1a94cd3..b8ecc0b 100644 --- a/gcc/ada/libgnat/s-pack56.adb +++ b/gcc/ada/libgnat/s-pack56.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack56.ads b/gcc/ada/libgnat/s-pack56.ads index 8473ef6..510fc35 100644 --- a/gcc/ada/libgnat/s-pack56.ads +++ b/gcc/ada/libgnat/s-pack56.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack57.adb b/gcc/ada/libgnat/s-pack57.adb index b35b707..2402e8b 100644 --- a/gcc/ada/libgnat/s-pack57.adb +++ b/gcc/ada/libgnat/s-pack57.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack57.ads b/gcc/ada/libgnat/s-pack57.ads index 4056a9a..8ac91c7 100644 --- a/gcc/ada/libgnat/s-pack57.ads +++ b/gcc/ada/libgnat/s-pack57.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack58.adb b/gcc/ada/libgnat/s-pack58.adb index d8080ba..75f00a1 100644 --- a/gcc/ada/libgnat/s-pack58.adb +++ b/gcc/ada/libgnat/s-pack58.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack58.ads b/gcc/ada/libgnat/s-pack58.ads index 713818d..d8d6e91 100644 --- a/gcc/ada/libgnat/s-pack58.ads +++ b/gcc/ada/libgnat/s-pack58.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack59.adb b/gcc/ada/libgnat/s-pack59.adb index 74cbb4a..ec001fa 100644 --- a/gcc/ada/libgnat/s-pack59.adb +++ b/gcc/ada/libgnat/s-pack59.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack59.ads b/gcc/ada/libgnat/s-pack59.ads index e9b1fa8..ee00f65 100644 --- a/gcc/ada/libgnat/s-pack59.ads +++ b/gcc/ada/libgnat/s-pack59.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack60.adb b/gcc/ada/libgnat/s-pack60.adb index f4bbec5..35b93f5 100644 --- a/gcc/ada/libgnat/s-pack60.adb +++ b/gcc/ada/libgnat/s-pack60.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack60.ads b/gcc/ada/libgnat/s-pack60.ads index eee3e41..95e0fd2 100644 --- a/gcc/ada/libgnat/s-pack60.ads +++ b/gcc/ada/libgnat/s-pack60.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack61.adb b/gcc/ada/libgnat/s-pack61.adb index dd0ec71..89b94ac 100644 --- a/gcc/ada/libgnat/s-pack61.adb +++ b/gcc/ada/libgnat/s-pack61.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack61.ads b/gcc/ada/libgnat/s-pack61.ads index 0e013b7..5681500 100644 --- a/gcc/ada/libgnat/s-pack61.ads +++ b/gcc/ada/libgnat/s-pack61.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack62.adb b/gcc/ada/libgnat/s-pack62.adb index 1505ecd..da6932a 100644 --- a/gcc/ada/libgnat/s-pack62.adb +++ b/gcc/ada/libgnat/s-pack62.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack62.ads b/gcc/ada/libgnat/s-pack62.ads index b82ade4..121c26f 100644 --- a/gcc/ada/libgnat/s-pack62.ads +++ b/gcc/ada/libgnat/s-pack62.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack63.adb b/gcc/ada/libgnat/s-pack63.adb index 8aada82..37b6767 100644 --- a/gcc/ada/libgnat/s-pack63.adb +++ b/gcc/ada/libgnat/s-pack63.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pack63.ads b/gcc/ada/libgnat/s-pack63.ads index 720edd3..7ca3d03 100644 --- a/gcc/ada/libgnat/s-pack63.ads +++ b/gcc/ada/libgnat/s-pack63.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-parame.adb b/gcc/ada/libgnat/s-parame.adb index 3526109..c555a82 100644 --- a/gcc/ada/libgnat/s-parame.adb +++ b/gcc/ada/libgnat/s-parame.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, 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- -- diff --git a/gcc/ada/libgnat/s-parame.ads b/gcc/ada/libgnat/s-parame.ads index 92ea885..f9bc3d0 100644 --- a/gcc/ada/libgnat/s-parame.ads +++ b/gcc/ada/libgnat/s-parame.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -94,7 +94,7 @@ package System.Parameters is Runtime_Default_Sec_Stack_Size : constant Size_Type := 10 * 1024; -- The run-time chosen default size for secondary stacks that may be - -- overriden by the user with the use of binder -D switch. + -- overridden by the user with the use of binder -D switch. Sec_Stack_Dynamic : constant Boolean := True; -- Indicates if secondary stacks can grow and shrink at run-time. If False, @@ -147,19 +147,6 @@ package System.Parameters is -- allow some optimizations and fine tuning within the tasking run time -- based on restrictions on the tasking features. - ---------------------- - -- Locking Strategy -- - ---------------------- - - Single_Lock : constant Boolean := False; - -- Indicates whether a single lock should be used within the tasking - -- run-time to protect internal structures. If True, a single lock - -- will be used, meaning less locking/unlocking operations, but also - -- more global contention. In general, Single_Lock should be set to - -- True on single processor machines, and to False to multi-processor - -- systems, but this can vary from application to application and also - -- depends on the scheduling policy. - ------------------- -- Task Abortion -- ------------------- diff --git a/gcc/ada/libgnat/s-parame__ae653.ads b/gcc/ada/libgnat/s-parame__ae653.ads index eac44d1..3e73f5e 100644 --- a/gcc/ada/libgnat/s-parame__ae653.ads +++ b/gcc/ada/libgnat/s-parame__ae653.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -94,7 +94,7 @@ package System.Parameters is Runtime_Default_Sec_Stack_Size : constant Size_Type := 10 * 1024; -- The run-time chosen default size for secondary stacks that may be - -- overriden by the user with the use of binder -D switch. + -- overridden by the user with the use of binder -D switch. Sec_Stack_Dynamic : constant Boolean := False; -- Indicates if secondary stacks can grow and shrink at run-time. If False, @@ -147,19 +147,6 @@ package System.Parameters is -- allow some optimizations and fine tuning within the tasking run time -- based on restrictions on the tasking features. - ---------------------- - -- Locking Strategy -- - ---------------------- - - Single_Lock : constant Boolean := False; - -- Indicates whether a single lock should be used within the tasking - -- run-time to protect internal structures. If True, a single lock - -- will be used, meaning less locking/unlocking operations, but also - -- more global contention. In general, Single_Lock should be set to - -- True on single processor machines, and to False to multi-processor - -- systems, but this can vary from application to application and also - -- depends on the scheduling policy. - ------------------- -- Task Abortion -- ------------------- diff --git a/gcc/ada/libgnat/s-parame__hpux.ads b/gcc/ada/libgnat/s-parame__hpux.ads index 48ad97a..e09313f 100644 --- a/gcc/ada/libgnat/s-parame__hpux.ads +++ b/gcc/ada/libgnat/s-parame__hpux.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -92,7 +92,7 @@ package System.Parameters is Runtime_Default_Sec_Stack_Size : constant Size_Type := 10 * 1024; -- The run-time chosen default size for secondary stacks that may be - -- overriden by the user with the use of binder -D switch. + -- overridden by the user with the use of binder -D switch. Sec_Stack_Dynamic : constant Boolean := True; -- Indicates if secondary stacks can grow and shrink at run-time. If False, @@ -145,19 +145,6 @@ package System.Parameters is -- allow some optimizations and fine tuning within the tasking run time -- based on restrictions on the tasking features. - ---------------------- - -- Locking Strategy -- - ---------------------- - - Single_Lock : constant Boolean := False; - -- Indicates whether a single lock should be used within the tasking - -- run-time to protect internal structures. If True, a single lock - -- will be used, meaning less locking/unlocking operations, but also - -- more global contention. In general, Single_Lock should be set to - -- True on single processor machines, and to False to multi-processor - -- systems, but this can vary from application to application and also - -- depends on the scheduling policy. - ------------------- -- Task Abortion -- ------------------- diff --git a/gcc/ada/libgnat/s-parame__rtems.adb b/gcc/ada/libgnat/s-parame__rtems.adb index d900b68..f350343 100644 --- a/gcc/ada/libgnat/s-parame__rtems.adb +++ b/gcc/ada/libgnat/s-parame__rtems.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2020, 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- -- diff --git a/gcc/ada/libgnat/s-parame__vxworks.adb b/gcc/ada/libgnat/s-parame__vxworks.adb index f23ef5a..7d0a206 100644 --- a/gcc/ada/libgnat/s-parame__vxworks.adb +++ b/gcc/ada/libgnat/s-parame__vxworks.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, 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- -- diff --git a/gcc/ada/libgnat/s-parame__vxworks.ads b/gcc/ada/libgnat/s-parame__vxworks.ads index f351ee7..c836444 100644 --- a/gcc/ada/libgnat/s-parame__vxworks.ads +++ b/gcc/ada/libgnat/s-parame__vxworks.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -147,19 +147,6 @@ package System.Parameters is -- allow some optimizations and fine tuning within the tasking run time -- based on restrictions on the tasking features. - ---------------------- - -- Locking Strategy -- - ---------------------- - - Single_Lock : constant Boolean := False; - -- Indicates whether a single lock should be used within the tasking - -- run-time to protect internal structures. If True, a single lock - -- will be used, meaning less locking/unlocking operations, but also - -- more global contention. In general, Single_Lock should be set to - -- True on single processor machines, and to False to multi-processor - -- systems, but this can vary from application to application and also - -- depends on the scheduling policy. - ------------------- -- Task Abortion -- ------------------- diff --git a/gcc/ada/libgnat/s-parint.adb b/gcc/ada/libgnat/s-parint.adb index a83f82c..f984a49 100644 --- a/gcc/ada/libgnat/s-parint.adb +++ b/gcc/ada/libgnat/s-parint.adb @@ -7,7 +7,7 @@ -- B o d y -- -- (Dummy body for non-distributed case) -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-parint.ads b/gcc/ada/libgnat/s-parint.ads index b1debed..b037571 100644 --- a/gcc/ada/libgnat/s-parint.ads +++ b/gcc/ada/libgnat/s-parint.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-pooglo.adb b/gcc/ada/libgnat/s-pooglo.adb index acb4441..d1eaf53 100644 --- a/gcc/ada/libgnat/s-pooglo.adb +++ b/gcc/ada/libgnat/s-pooglo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pooglo.ads b/gcc/ada/libgnat/s-pooglo.ads index f4fa930..8c19837 100644 --- a/gcc/ada/libgnat/s-pooglo.ads +++ b/gcc/ada/libgnat/s-pooglo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pooloc.adb b/gcc/ada/libgnat/s-pooloc.adb index 3e76673..04a0532 100644 --- a/gcc/ada/libgnat/s-pooloc.adb +++ b/gcc/ada/libgnat/s-pooloc.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-pooloc.ads b/gcc/ada/libgnat/s-pooloc.ads index 9ad310f..6ba152a 100644 --- a/gcc/ada/libgnat/s-pooloc.ads +++ b/gcc/ada/libgnat/s-pooloc.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-poosiz.adb b/gcc/ada/libgnat/s-poosiz.adb index 3a6edea..bc6ae24 100644 --- a/gcc/ada/libgnat/s-poosiz.adb +++ b/gcc/ada/libgnat/s-poosiz.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-poosiz.ads b/gcc/ada/libgnat/s-poosiz.ads index 13e2d8b..3921b1c 100644 --- a/gcc/ada/libgnat/s-poosiz.ads +++ b/gcc/ada/libgnat/s-poosiz.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-powtab.ads b/gcc/ada/libgnat/s-powtab.ads index cc288bd..ef8d74a 100644 --- a/gcc/ada/libgnat/s-powtab.ads +++ b/gcc/ada/libgnat/s-powtab.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-purexc.ads b/gcc/ada/libgnat/s-purexc.ads index a101923..4c727d7 100644 --- a/gcc/ada/libgnat/s-purexc.ads +++ b/gcc/ada/libgnat/s-purexc.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2000-2020, 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- -- diff --git a/gcc/ada/libgnat/s-putaim.adb b/gcc/ada/libgnat/s-putaim.adb new file mode 100644 index 0000000..08fa7b7 --- /dev/null +++ b/gcc/ada/libgnat/s-putaim.adb @@ -0,0 +1,51 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- SYSTEM.PUT_TASK_IMAGES -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +with Unchecked_Conversion; +with Ada.Strings.Text_Output.Utils; +use Ada.Strings.Text_Output; +use Ada.Strings.Text_Output.Utils; + +package body System.Put_Task_Images is + + procedure Put_Image_Protected (S : in out Sink'Class) is + begin + Put_UTF_8 (S, "(protected object)"); + end Put_Image_Protected; + + procedure Put_Image_Task + (S : in out Sink'Class; Id : Ada.Task_Identification.Task_Id) + is + begin + Put_UTF_8 (S, "(task " & Ada.Task_Identification.Image (Id) & ")"); + end Put_Image_Task; + +end System.Put_Task_Images; diff --git a/gcc/ada/libgnat/a-numaux__x86.ads b/gcc/ada/libgnat/s-putaim.ads index 8494f89..b4dd8c2 100644 --- a/gcc/ada/libgnat/a-numaux__x86.ads +++ b/gcc/ada/libgnat/s-putaim.ads @@ -2,12 +2,11 @@ -- -- -- GNAT RUN-TIME COMPONENTS -- -- -- --- A D A . N U M E R I C S . A U X -- +-- SYSTEM.PUT_TASK_IMAGES -- -- -- -- S p e c -- --- (Machine Version for x86) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2020, 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- -- @@ -30,47 +29,20 @@ -- -- ------------------------------------------------------------------------------ --- This version is for the x86 using the 80-bit x86 long double format with --- inline asm statements. +with Ada.Strings.Text_Output; +with Ada.Task_Identification; -package Ada.Numerics.Aux is - pragma Pure; +package System.Put_Task_Images is - type Double is new Long_Long_Float; + -- This package contains subprograms that are called by the generated code + -- for the 'Put_Image attribute for protected and task types. This is + -- separate from System.Put_Images to avoid dragging the tasking runtimes + -- into nontasking programs. - function Sin (X : Double) return Double; + subtype Sink is Ada.Strings.Text_Output.Sink; - function Cos (X : Double) return Double; + procedure Put_Image_Protected (S : in out Sink'Class); + procedure Put_Image_Task + (S : in out Sink'Class; Id : Ada.Task_Identification.Task_Id); - function Tan (X : Double) return Double; - - function Exp (X : Double) return Double; - - function Sqrt (X : Double) return Double; - - function Log (X : Double) return Double; - - function Atan (X : Double) return Double; - - function Acos (X : Double) return Double; - - function Asin (X : Double) return Double; - - function Sinh (X : Double) return Double; - - function Cosh (X : Double) return Double; - - function Tanh (X : Double) return Double; - - function Pow (X, Y : Double) return Double; - -private - pragma Inline (Atan); - pragma Inline (Cos); - pragma Inline (Tan); - pragma Inline (Exp); - pragma Inline (Log); - pragma Inline (Sin); - pragma Inline (Sqrt); - -end Ada.Numerics.Aux; +end System.Put_Task_Images; diff --git a/gcc/ada/libgnat/s-putima.adb b/gcc/ada/libgnat/s-putima.adb new file mode 100644 index 0000000..4ae612d --- /dev/null +++ b/gcc/ada/libgnat/s-putima.adb @@ -0,0 +1,260 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- SYSTEM.PUT_IMAGES -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +with Unchecked_Conversion; +with Ada.Strings.Text_Output.Utils; +use Ada.Strings.Text_Output; +use Ada.Strings.Text_Output.Utils; + +package body System.Put_Images is + + generic + type Integer_Type is range <>; + type Unsigned_Type is mod <>; + Base : Unsigned_Type; + package Generic_Integer_Images is + pragma Assert (Integer_Type'Size = Unsigned_Type'Size); + pragma Assert (Base in 2 .. 36); + procedure Put_Image (S : in out Sink'Class; X : Integer_Type); + procedure Put_Image (S : in out Sink'Class; X : Unsigned_Type); + private + subtype Digit is Unsigned_Type range 0 .. Base - 1; + end Generic_Integer_Images; + + package body Generic_Integer_Images is + + A : constant := Character'Pos ('a'); + Z : constant := Character'Pos ('0'); + function Digit_To_Character (X : Digit) return Character is + (Character'Val (if X < 10 then X + Z else X + A - 10)); + + procedure Put_Digits (S : in out Sink'Class; X : Unsigned_Type); + -- Put just the digits of X, without any leading minus sign or space. + + procedure Put_Digits (S : in out Sink'Class; X : Unsigned_Type) is + begin + if X >= Base then + Put_Digits (S, X / Base); -- recurse + Put_7bit (S, Digit_To_Character (X mod Base)); + else + Put_7bit (S, Digit_To_Character (X)); + end if; + end Put_Digits; + + procedure Put_Image (S : in out Sink'Class; X : Integer_Type) is + begin + -- Put the space or the minus sign, then pass the absolute value to + -- Put_Digits. + + if X >= 0 then + Put_7bit (S, ' '); + Put_Digits (S, Unsigned_Type (X)); + else + Put_7bit (S, '-'); + Put_Digits (S, -Unsigned_Type'Mod (X)); + -- Convert to Unsigned_Type before negating, to avoid overflow + -- on Integer_Type'First. + end if; + end Put_Image; + + procedure Put_Image (S : in out Sink'Class; X : Unsigned_Type) is + begin + Put_7bit (S, ' '); + Put_Digits (S, X); + end Put_Image; + + end Generic_Integer_Images; + + package Small is new Generic_Integer_Images (Integer, Unsigned, Base => 10); + package Large is new Generic_Integer_Images + (Long_Long_Integer, Long_Long_Unsigned, Base => 10); + + procedure Put_Image_Integer (S : in out Sink'Class; X : Integer) + renames Small.Put_Image; + procedure Put_Image_Long_Long_Integer + (S : in out Sink'Class; X : Long_Long_Integer) + renames Large.Put_Image; + + procedure Put_Image_Unsigned (S : in out Sink'Class; X : Unsigned) + renames Small.Put_Image; + procedure Put_Image_Long_Long_Unsigned + (S : in out Sink'Class; X : Long_Long_Unsigned) + renames Large.Put_Image; + + type Signed_Address is range + -2**(Standard'Address_Size - 1) .. 2**(Standard'Address_Size - 1) - 1; + type Unsigned_Address is mod 2**Standard'Address_Size; + package Hex is new Generic_Integer_Images + (Signed_Address, Unsigned_Address, Base => 16); + + generic + type Designated (<>) is private; + type Pointer is access all Designated; + procedure Put_Image_Pointer + (S : in out Sink'Class; X : Pointer; Type_Kind : String); + + procedure Put_Image_Pointer + (S : in out Sink'Class; X : Pointer; Type_Kind : String) + is + function Cast is new Unchecked_Conversion + (System.Address, Unsigned_Address); + begin + if X = null then + Put_UTF_8 (S, "null"); + else + Put_UTF_8 (S, "("); + Put_UTF_8 (S, Type_Kind); + Hex.Put_Image (S, Cast (X.all'Address)); + Put_UTF_8 (S, ")"); + end if; + end Put_Image_Pointer; + + procedure Thin_Instance is new Put_Image_Pointer (Byte, Thin_Pointer); + procedure Put_Image_Thin_Pointer + (S : in out Sink'Class; X : Thin_Pointer) + is + begin + Thin_Instance (S, X, "access"); + end Put_Image_Thin_Pointer; + + procedure Fat_Instance is new Put_Image_Pointer (Byte_String, Fat_Pointer); + procedure Put_Image_Fat_Pointer + (S : in out Sink'Class; X : Fat_Pointer) + is + begin + Fat_Instance (S, X, "access"); + end Put_Image_Fat_Pointer; + + procedure Put_Image_Access_Subp (S : in out Sink'Class; X : Thin_Pointer) is + begin + Thin_Instance (S, X, "access subprogram"); + end Put_Image_Access_Subp; + + procedure Put_Image_Access_Prot_Subp + (S : in out Sink'Class; X : Thin_Pointer) + is + begin + Thin_Instance (S, X, "access protected subprogram"); + end Put_Image_Access_Prot_Subp; + + procedure Put_Image_String (S : in out Sink'Class; X : String) is + begin + Put_UTF_8 (S, """"); + for C of X loop + if C = '"' then + Put_UTF_8 (S, """"); + end if; + Put_Character (S, C); + end loop; + Put_UTF_8 (S, """"); + end Put_Image_String; + + procedure Put_Image_Wide_String (S : in out Sink'Class; X : Wide_String) is + begin + Put_UTF_8 (S, """"); + for C of X loop + if C = '"' then + Put_UTF_8 (S, """"); + end if; + Put_Wide_Character (S, C); + end loop; + Put_UTF_8 (S, """"); + end Put_Image_Wide_String; + + procedure Put_Image_Wide_Wide_String + (S : in out Sink'Class; X : Wide_Wide_String) is + begin + Put_UTF_8 (S, """"); + for C of X loop + if C = '"' then + Put_UTF_8 (S, """"); + end if; + Put_Wide_Wide_Character (S, C); + end loop; + Put_UTF_8 (S, """"); + end Put_Image_Wide_Wide_String; + + procedure Array_Before (S : in out Sink'Class) is + begin + New_Line (S); + Put_7bit (S, '['); + Indent (S, 1); + end Array_Before; + + procedure Array_Between (S : in out Sink'Class) is + begin + Put_7bit (S, ','); + New_Line (S); + end Array_Between; + + procedure Array_After (S : in out Sink'Class) is + begin + Outdent (S, 1); + Put_7bit (S, ']'); + end Array_After; + + procedure Simple_Array_Between (S : in out Sink'Class) is + begin + Put_7bit (S, ','); + if Column (S) > 60 then + New_Line (S); + else + Put_7bit (S, ' '); + end if; + end Simple_Array_Between; + + procedure Record_Before (S : in out Sink'Class) is + begin + New_Line (S); + Put_7bit (S, '('); + Indent (S, 1); + end Record_Before; + + procedure Record_Between (S : in out Sink'Class) is + begin + Put_7bit (S, ','); + New_Line (S); + end Record_Between; + + procedure Record_After (S : in out Sink'Class) is + begin + Outdent (S, 1); + Put_7bit (S, ')'); + end Record_After; + + procedure Put_Image_Unknown (S : in out Sink'Class; Type_Name : String) is + begin + Put_UTF_8 (S, "{"); + Put_String (S, Type_Name); + Put_UTF_8 (S, " object}"); + end Put_Image_Unknown; + +end System.Put_Images; diff --git a/gcc/ada/libgnat/s-putima.ads b/gcc/ada/libgnat/s-putima.ads new file mode 100644 index 0000000..17e184a --- /dev/null +++ b/gcc/ada/libgnat/s-putima.ads @@ -0,0 +1,102 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- SYSTEM.PUT_IMAGES -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +with Ada.Strings.Text_Output; +with System.Unsigned_Types; + +package System.Put_Images is + + -- This package contains subprograms that are called by the generated code + -- for the 'Put_Image attribute. + -- + -- For an integer type that fits in Integer, the actual parameter is + -- converted to Integer, and Put_Image_Integer is called. For larger types, + -- Put_Image_Long_Long_Integer is used. Other numeric types are treated + -- similarly. Access values are unchecked-converted to either Thin_Pointer + -- or Fat_Pointer, and Put_Image_Thin_Pointer or Put_Image_Fat_Pointer is + -- called. The Before/Between/After procedures are called before printing + -- the components of a composite type, between pairs of components, and + -- after them. See Exp_Put_Image in the compiler for details of these + -- calls. + + pragma Preelaborate; + + subtype Sink is Ada.Strings.Text_Output.Sink; + + procedure Put_Image_Integer (S : in out Sink'Class; X : Integer); + procedure Put_Image_Long_Long_Integer + (S : in out Sink'Class; X : Long_Long_Integer); + + subtype Unsigned is System.Unsigned_Types.Unsigned; + subtype Long_Long_Unsigned is System.Unsigned_Types.Long_Long_Unsigned; + + procedure Put_Image_Unsigned (S : in out Sink'Class; X : Unsigned); + procedure Put_Image_Long_Long_Unsigned + (S : in out Sink'Class; X : Long_Long_Unsigned); + + type Byte is new Character with Alignment => 1; + type Byte_String is array (Positive range <>) of Byte with Alignment => 1; + type Thin_Pointer is access all Byte; + type Fat_Pointer is access all Byte_String; + procedure Put_Image_Thin_Pointer (S : in out Sink'Class; X : Thin_Pointer); + procedure Put_Image_Fat_Pointer (S : in out Sink'Class; X : Fat_Pointer); + -- Print "null", or the address of the designated object as an unsigned + -- hexadecimal integer. + + procedure Put_Image_Access_Subp (S : in out Sink'Class; X : Thin_Pointer); + -- For access-to-subprogram types + + procedure Put_Image_Access_Prot_Subp + (S : in out Sink'Class; X : Thin_Pointer); + -- For access-to-protected-subprogram types + + procedure Put_Image_String (S : in out Sink'Class; X : String); + procedure Put_Image_Wide_String (S : in out Sink'Class; X : Wide_String); + procedure Put_Image_Wide_Wide_String + (S : in out Sink'Class; X : Wide_Wide_String); + + procedure Array_Before (S : in out Sink'Class); + procedure Array_Between (S : in out Sink'Class); + procedure Array_After (S : in out Sink'Class); + + procedure Simple_Array_Between (S : in out Sink'Class); + -- For "simple" arrays, where we don't want a newline between every + -- component. + + procedure Record_Before (S : in out Sink'Class); + procedure Record_Between (S : in out Sink'Class); + procedure Record_After (S : in out Sink'Class); + + procedure Put_Image_Unknown (S : in out Sink'Class; Type_Name : String); + -- For Put_Image of types that don't have the attribute, such as type + -- Sink. + +end System.Put_Images; diff --git a/gcc/ada/libgnat/s-rannum.adb b/gcc/ada/libgnat/s-rannum.adb index 0590313..01a6e91 100644 --- a/gcc/ada/libgnat/s-rannum.adb +++ b/gcc/ada/libgnat/s-rannum.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2007-2020, 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- -- @@ -86,6 +86,7 @@ -- -- ------------------------------------------------------------------------------ +with Ada.Strings.Text_Output.Utils; with Ada.Unchecked_Conversion; with System.Random_Seed; @@ -295,6 +296,7 @@ is K : Bit_Count; -- Next decrement to exponent begin + K := 0; Mantissa := Random (Gen) / 2**Extra_Bits; R := Unsigned_32 (Mantissa mod 2**Extra_Bits); R_Bits := Extra_Bits; @@ -401,12 +403,12 @@ is elsif Max < Min then raise Constraint_Error; + -- In the 64-bit case, we have to be careful since not all 64-bit + -- unsigned values are representable in GNAT's universal integer. + elsif Result_Subtype'Base'Size > 32 then declare - -- In the 64-bit case, we have to be careful, since not all 64-bit - -- unsigned values are representable in GNAT's root_integer type. - -- Ignore different-size warnings here since GNAT's handling - -- is correct. + -- Ignore unequal-size warnings since GNAT's handling is correct. pragma Warnings ("Z"); function Conv_To_Unsigned is @@ -436,11 +438,14 @@ is end if; end; - elsif Result_Subtype'Pos (Max) - Result_Subtype'Pos (Min) = - 2 ** 32 - 1 + -- In the 32-bit case, we need to handle both integer and enumeration + -- types and, therefore, rely on 'Pos and 'Val in the computation. + + elsif Result_Subtype'Pos (Max) - Result_Subtype'Pos (Min) = 2 ** 32 - 1 then return Result_Subtype'Val (Result_Subtype'Pos (Min) + Unsigned_32'Pos (Random (Gen))); + else declare N : constant Unsigned_32 := @@ -635,6 +640,16 @@ is return Result; end Image; + --------------- + -- Put_Image -- + --------------- + + procedure Put_Image + (S : in out Strings.Text_Output.Sink'Class; V : State) is + begin + Strings.Text_Output.Utils.Put_String (S, Image (V)); + end Put_Image; + ----------- -- Value -- ----------- diff --git a/gcc/ada/libgnat/s-rannum.ads b/gcc/ada/libgnat/s-rannum.ads index 75fdfeb..1851b69 100644 --- a/gcc/ada/libgnat/s-rannum.ads +++ b/gcc/ada/libgnat/s-rannum.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2007-2020, 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- -- @@ -57,6 +57,8 @@ with Interfaces; +private with Ada.Strings.Text_Output; + package System.Random_Numbers with SPARK_Mode => Off is @@ -142,7 +144,10 @@ private -- Feedback distance from the current position subtype State_Val is Interfaces.Unsigned_32; - type State is array (0 .. N - 1) of State_Val; + type State is array (0 .. N - 1) of State_Val with Put_Image => Put_Image; + + procedure Put_Image + (S : in out Ada.Strings.Text_Output.Sink'Class; V : State); type Writable_Access (Self : access Generator) is limited null record; -- Auxiliary type to make Generator a self-referential type diff --git a/gcc/ada/libgnat/s-ransee.adb b/gcc/ada/libgnat/s-ransee.adb index f78279f..0c168df 100644 --- a/gcc/ada/libgnat/s-ransee.adb +++ b/gcc/ada/libgnat/s-ransee.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-ransee.ads b/gcc/ada/libgnat/s-ransee.ads index 3fec97b..559eaa0 100644 --- a/gcc/ada/libgnat/s-ransee.ads +++ b/gcc/ada/libgnat/s-ransee.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-regexp.adb b/gcc/ada/libgnat/s-regexp.adb index 2417498..f8adc4a 100644 --- a/gcc/ada/libgnat/s-regexp.adb +++ b/gcc/ada/libgnat/s-regexp.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-regexp.ads b/gcc/ada/libgnat/s-regexp.ads index 4d9fb5b..243da67 100644 --- a/gcc/ada/libgnat/s-regexp.ads +++ b/gcc/ada/libgnat/s-regexp.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- @@ -83,8 +83,10 @@ package System.Regexp is -- regexp ::= term -- term ::= elmt - -- term ::= elmt elmt ... -- concatenation (elmt then elmt) - -- term ::= {elmt, elmt, ...} -- alternation (matches any of elmt) + -- term ::= seq + -- term ::= {seq, seq, ...} -- alternation (matches any of seq) + + -- seq ::= elmt elmt ... -- concatenation (sequence of elmts) -- elmt ::= * -- any string of 0 or more characters -- elmt ::= ? -- matches any character diff --git a/gcc/ada/libgnat/s-regpat.adb b/gcc/ada/libgnat/s-regpat.adb index ae69f47..2e60ba8 100644 --- a/gcc/ada/libgnat/s-regpat.adb +++ b/gcc/ada/libgnat/s-regpat.adb @@ -7,7 +7,7 @@ -- B o d y -- -- -- -- Copyright (C) 1986 by University of Toronto. -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- @@ -1460,19 +1460,9 @@ package body System.Regpat is and then Expression (Parse_Pos + 1) /= ']' then Parse_Pos := Parse_Pos + 1; - - -- Do we have a range like '\d-a' and '[:space:]-a' - -- which is not a real range - - if Named_Class /= ANYOF_NONE then - Set_In_Class (Bitmap, '-'); - else - In_Range := True; - end if; - + In_Range := True; else Set_In_Class (Bitmap, Value); - end if; -- Else in a character range @@ -3275,13 +3265,13 @@ package body System.Regpat is (IP : Pointer; Max : Natural := Natural'Last) return Natural is - Scan : Natural := Input_Pos; - Last : Natural; - Op : constant Opcode := Opcode'Val (Character'Pos (Program (IP))); - Count : Natural; - C : Character; - Is_First : Boolean := True; - Bitmap : Character_Class; + Scan : Natural := Input_Pos; + Last : Natural; + Op : constant Opcode := + Opcode'Val (Character'Pos (Program (IP))); + Count : Natural; + C : Character; + Bitmap : Character_Class; begin if Max = Natural'Last or else Scan + Max - 1 > Last_In_Data then @@ -3324,10 +3314,7 @@ package body System.Regpat is end loop; when ANYOF => - if Is_First then - Bitmap_Operand (Program, IP, Bitmap); - Is_First := False; - end if; + Bitmap_Operand (Program, IP, Bitmap); while Scan <= Last and then Get_From_Class (Bitmap, Data (Scan)) diff --git a/gcc/ada/libgnat/s-regpat.ads b/gcc/ada/libgnat/s-regpat.ads index 74ecdec..0a591fd 100644 --- a/gcc/ada/libgnat/s-regpat.ads +++ b/gcc/ada/libgnat/s-regpat.ads @@ -7,7 +7,7 @@ -- S p e c -- -- -- -- Copyright (C) 1986 by University of Toronto. -- --- Copyright (C) 1996-2019, AdaCore -- +-- Copyright (C) 1996-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-resfil.adb b/gcc/ada/libgnat/s-resfil.adb index dd07692..145aeb0 100644 --- a/gcc/ada/libgnat/s-resfil.adb +++ b/gcc/ada/libgnat/s-resfil.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2007-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2007-2020, 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- -- diff --git a/gcc/ada/libgnat/s-resfil.ads b/gcc/ada/libgnat/s-resfil.ads index 50bc7ff..369f2f4 100644 --- a/gcc/ada/libgnat/s-resfil.ads +++ b/gcc/ada/libgnat/s-resfil.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2007-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2007-2020, 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- -- diff --git a/gcc/ada/libgnat/s-restri.adb b/gcc/ada/libgnat/s-restri.adb index d63133d..5c91d13 100644 --- a/gcc/ada/libgnat/s-restri.adb +++ b/gcc/ada/libgnat/s-restri.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/s-restri.ads b/gcc/ada/libgnat/s-restri.ads index 604431a..221b83a 100644 --- a/gcc/ada/libgnat/s-restri.ads +++ b/gcc/ada/libgnat/s-restri.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, 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- -- diff --git a/gcc/ada/libgnat/s-rident.ads b/gcc/ada/libgnat/s-rident.ads index 1e70a38..afec9a4 100644 --- a/gcc/ada/libgnat/s-rident.ads +++ b/gcc/ada/libgnat/s-rident.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -62,10 +62,10 @@ -- then the binder could fail to recognize the R (restrictions line) in the -- ali file, leading to bind errors when restrictions were added or removed. --- The latest implementation avoids both this problem by using a named --- scheme for recording restrictions, rather than a positional scheme which --- fails completely if restrictions are added or subtracted. Now the worst --- that happens at bind time in inconsistent builds is that unrecognized +-- The latest implementation avoids this problem by using a named scheme +-- for recording restrictions, rather than a positional scheme that fails +-- completely if restrictions are added or subtracted. Now the worst that +-- happens at bind time in inconsistent builds is that unrecognized -- restrictions are ignored, and the consistency checking for restrictions -- might be incomplete, which is no big deal. @@ -104,6 +104,7 @@ package System.Rident is No_Dispatch, -- (RM H.4(19)) No_Dispatching_Calls, -- GNAT No_Dynamic_Attachment, -- Ada 2012 (RM E.7(10/3)) + No_Dynamic_CPU_Assignment, -- Ada 202x (RM D.7(10/3)) No_Dynamic_Priorities, -- (RM D.9(9)) No_Enumeration_Maps, -- GNAT No_Entry_Calls_In_Elaboration_Code, -- GNAT @@ -147,6 +148,7 @@ package System.Rident is No_Task_At_Interrupt_Priority, -- GNAT No_Task_Hierarchy, -- (RM D.7(3), H.4(3)) No_Task_Termination, -- GNAT (Ravenscar) + No_Tasks_Unassigned_To_CPU, -- Ada 202x (D.7(10.10/4)) No_Tasking, -- GNAT No_Terminate_Alternatives, -- (RM D.7(6)) No_Unchecked_Access, -- (RM H.4(18)) @@ -232,7 +234,6 @@ package System.Rident is No_Dynamic_Interrupts : Restriction_Id renames No_Dynamic_Attachment; No_Requeue : Restriction_Id renames No_Requeue_Statements; No_Task_Attributes : Restriction_Id renames No_Task_Attributes_Package; - SPARK : Restriction_Id renames SPARK_05; subtype All_Restrictions is Restriction_Id range Simple_Barriers .. Max_Storage_At_Blocking; @@ -382,6 +383,7 @@ package System.Rident is Restricted_Tasking, Restricted, Ravenscar, + Jorvik, GNAT_Extended_Ravenscar, GNAT_Ravenscar_EDF); -- Names of recognized profiles. No_Profile is used to indicate that a @@ -438,6 +440,7 @@ package System.Rident is (No_Abort_Statements => True, No_Asynchronous_Control => True, No_Dynamic_Attachment => True, + No_Dynamic_CPU_Assignment => True, No_Dynamic_Priorities => True, No_Local_Protected_Objects => True, No_Protected_Type_Allocators => True, @@ -469,6 +472,7 @@ package System.Rident is (No_Abort_Statements => True, No_Asynchronous_Control => True, No_Dynamic_Attachment => True, + No_Dynamic_CPU_Assignment => True, No_Dynamic_Priorities => True, No_Entry_Queue => True, No_Local_Protected_Objects => True, @@ -511,6 +515,7 @@ package System.Rident is (No_Abort_Statements => True, No_Asynchronous_Control => True, No_Dynamic_Attachment => True, + No_Dynamic_CPU_Assignment => True, No_Dynamic_Priorities => True, No_Entry_Queue => True, No_Local_Protected_Objects => True, @@ -546,6 +551,68 @@ package System.Rident is Max_Task_Entries => 0, others => 0)), + Jorvik => + + -- Restrictions for Jorvik profile .. + + -- Note: the table entries here only represent the + -- required restriction profile for Jorvik. The + -- full Jorvik profile also requires: + + -- pragma Dispatching_Policy (FIFO_Within_Priorities); + -- pragma Locking_Policy (Ceiling_Locking); + -- pragma Detect_Blocking; + + -- The differences between Ravenscar and Jorvik are + -- as follows: + -- 1) Ravenscar includes restriction Simple_Barriers; + -- Jorvik includes Pure_Barriers instead. + -- 2) The following 6 restrictions are included in + -- Ravenscar but not in Jorvik: + -- No_Implicit_Heap_Allocations + -- No_Relative_Delay + -- Max_Entry_Queue_Length => 1 + -- Max_Protected_Entries => 1 + -- No_Dependence => Ada.Calendar + -- No_Dependence => Ada.Synchronous_Barriers + -- + -- The last of those 7 (i.e., No_Dep => Ada.Synch_Bars) + -- is not reflected here (see sem_prag.adb). + + (Set => + (No_Abort_Statements => True, + No_Asynchronous_Control => True, + No_Dynamic_Attachment => True, + No_Dynamic_CPU_Assignment => True, + No_Dynamic_Priorities => True, + No_Local_Protected_Objects => True, + No_Protected_Type_Allocators => True, + No_Requeue_Statements => True, + No_Task_Allocators => True, + No_Task_Attributes_Package => True, + No_Task_Hierarchy => True, + No_Terminate_Alternatives => True, + Max_Asynchronous_Select_Nesting => True, + Max_Select_Alternatives => True, + Max_Task_Entries => True, + + -- plus these additional restrictions: + + No_Local_Timing_Events => True, + No_Select_Statements => True, + No_Specific_Termination_Handlers => True, + No_Task_Termination => True, + Pure_Barriers => True, + others => False), + + -- Value settings for Ravenscar (same as Restricted) + + Value => + (Max_Asynchronous_Select_Nesting => 0, + Max_Select_Alternatives => 0, + Max_Task_Entries => 0, + others => 0)), + GNAT_Extended_Ravenscar => -- Restrictions for GNAT_Extended_Ravenscar = @@ -555,6 +622,7 @@ package System.Rident is (No_Abort_Statements => True, No_Asynchronous_Control => True, No_Dynamic_Attachment => True, + No_Dynamic_CPU_Assignment => True, No_Dynamic_Priorities => True, No_Local_Protected_Objects => True, No_Protected_Type_Allocators => True, @@ -605,6 +673,7 @@ package System.Rident is (No_Abort_Statements => True, No_Asynchronous_Control => True, No_Dynamic_Attachment => True, + No_Dynamic_CPU_Assignment => True, No_Dynamic_Priorities => True, No_Entry_Queue => True, No_Local_Protected_Objects => True, diff --git a/gcc/ada/libgnat/s-rpc.adb b/gcc/ada/libgnat/s-rpc.adb index 36b7eb6..f4c719f 100644 --- a/gcc/ada/libgnat/s-rpc.adb +++ b/gcc/ada/libgnat/s-rpc.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-rpc.ads b/gcc/ada/libgnat/s-rpc.ads index 0eb12f9..7695b8f 100644 --- a/gcc/ada/libgnat/s-rpc.ads +++ b/gcc/ada/libgnat/s-rpc.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/s-scaval.adb b/gcc/ada/libgnat/s-scaval.adb index 2fe66cf..9815fbd 100644 --- a/gcc/ada/libgnat/s-scaval.adb +++ b/gcc/ada/libgnat/s-scaval.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/s-scaval.ads b/gcc/ada/libgnat/s-scaval.ads index 1b24f70..bd9c9c5 100644 --- a/gcc/ada/libgnat/s-scaval.ads +++ b/gcc/ada/libgnat/s-scaval.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2001-2020, 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- -- diff --git a/gcc/ada/libgnat/s-secsta.adb b/gcc/ada/libgnat/s-secsta.adb index 44f2eed..7ec8462 100644 --- a/gcc/ada/libgnat/s-secsta.adb +++ b/gcc/ada/libgnat/s-secsta.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -564,7 +564,7 @@ package body System.Secondary_Stack is -------------- function Round_Up (Size : Storage_Count) return Memory_Size is - Algn_MS : constant Memory_Size := Standard'Maximum_Alignment; + Algn_MS : constant Memory_Size := Memory_Alignment; Size_MS : constant Memory_Size := Memory_Size (Size); begin @@ -573,7 +573,7 @@ package body System.Secondary_Stack is -- Treat this case as secondary-stack depletion. if Memory_Size'Last - Algn_MS < Size_MS then - raise Storage_Error with "secondary stack exhaused"; + raise Storage_Error with "secondary stack exhausted"; end if; return ((Size_MS + Algn_MS - 1) / Algn_MS) * Algn_MS; diff --git a/gcc/ada/libgnat/s-secsta.ads b/gcc/ada/libgnat/s-secsta.ads index d36ecfc..504c891 100644 --- a/gcc/ada/libgnat/s-secsta.ads +++ b/gcc/ada/libgnat/s-secsta.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -261,10 +261,23 @@ private subtype Memory_Index is Memory_Size; -- Index into the memory storage of a single chunk + Memory_Alignment : constant := Standard'Maximum_Alignment * 2; + -- The memory alignment we will want to honor on every allocation. + -- + -- At this stage, gigi assumes we can accommodate any alignment requirement + -- there might be on the data type for which the memory gets allocated (see + -- build_call_alloc_dealloc). + -- + -- The multiplication factor is intended to account for requirements + -- by user code compiled with specific arch/cpu options such as -mavx + -- on X86[_64] targets, which Standard'Maximum_Alignment doesn't convey + -- without such compilation options. * 4 would actually be needed to + -- support -mavx512f on X86, but this would incur more annoying memory + -- consumption overheads. + type Chunk_Memory is array (Memory_Size range <>) of SSE.Storage_Element; - for Chunk_Memory'Alignment use Standard'Maximum_Alignment; - -- The memory storage of a single chunk. It utilizes maximum alignment in - -- order to guarantee efficient operations. + for Chunk_Memory'Alignment use Memory_Alignment; + -- The memory storage of a single chunk -------------- -- SS_Chunk -- diff --git a/gcc/ada/libgnat/s-sequio.adb b/gcc/ada/libgnat/s-sequio.adb index e0b54aa..03610e3 100644 --- a/gcc/ada/libgnat/s-sequio.adb +++ b/gcc/ada/libgnat/s-sequio.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-sequio.ads b/gcc/ada/libgnat/s-sequio.ads index a0b75f5..17ed929 100644 --- a/gcc/ada/libgnat/s-sequio.ads +++ b/gcc/ada/libgnat/s-sequio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-shabig.ads b/gcc/ada/libgnat/s-shabig.ads new file mode 100644 index 0000000..c4f6944 --- /dev/null +++ b/gcc/ada/libgnat/s-shabig.ads @@ -0,0 +1,80 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT COMPILER COMPONENTS -- +-- -- +-- S Y S T E M . S H A R E D _ B I G N U M S -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2012-2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +-- This package provides declarations shared across all instantiations of +-- System.Generic_Bignums. + +with Ada.Unchecked_Conversion; +with Interfaces; + +package System.Shared_Bignums is + pragma Preelaborate; + + pragma Assert (Long_Long_Integer'Size = 64); + -- This package assumes that Long_Long_Integer size is 64 bit (i.e. that it + -- has a range of -2**63 to 2**63-1). The front end ensures that the mode + -- ELIMINATED is not allowed for overflow checking if this is not the case. + + subtype Length is Natural range 0 .. 2 ** 23 - 1; + -- Represent number of words in Digit_Vector + + Base : constant := 2 ** 32; + -- Digit vectors use this base + + subtype SD is Interfaces.Unsigned_32; + -- Single length digit + + type Digit_Vector is array (Length range <>) of SD; + -- Represent digits of a number (most significant digit first) + + type Bignum_Data (Len : Length) is record + Neg : Boolean; + -- Set if value is negative, never set for zero + + D : Digit_Vector (1 .. Len); + -- Digits of number, most significant first, represented in base + -- 2**Base. No leading zeroes are stored, and the value of zero is + -- represented using an empty vector for D. + end record; + + for Bignum_Data use record + Len at 0 range 0 .. 23; + Neg at 3 range 0 .. 7; + end record; + + type Bignum is access all Bignum_Data; + + function To_Bignum is new Ada.Unchecked_Conversion (System.Address, Bignum); + + function To_Address is new + Ada.Unchecked_Conversion (Bignum, System.Address); + +end System.Shared_Bignums; diff --git a/gcc/ada/libgnat/s-shasto.adb b/gcc/ada/libgnat/s-shasto.adb index a9d0a1c..0117344 100644 --- a/gcc/ada/libgnat/s-shasto.adb +++ b/gcc/ada/libgnat/s-shasto.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, 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- -- diff --git a/gcc/ada/libgnat/s-shasto.ads b/gcc/ada/libgnat/s-shasto.ads index fae5727..189b5e1 100644 --- a/gcc/ada/libgnat/s-shasto.ads +++ b/gcc/ada/libgnat/s-shasto.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2020, 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- -- diff --git a/gcc/ada/libgnat/s-soflin.adb b/gcc/ada/libgnat/s-soflin.adb index 63f7161..7e1a557 100644 --- a/gcc/ada/libgnat/s-soflin.adb +++ b/gcc/ada/libgnat/s-soflin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-soflin.ads b/gcc/ada/libgnat/s-soflin.ads index 2125d59..d0caa79 100644 --- a/gcc/ada/libgnat/s-soflin.ads +++ b/gcc/ada/libgnat/s-soflin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-soliin.adb b/gcc/ada/libgnat/s-soliin.adb index dbd9e06..f5e4ba7 100644 --- a/gcc/ada/libgnat/s-soliin.adb +++ b/gcc/ada/libgnat/s-soliin.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2017-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2017-2020, 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- -- diff --git a/gcc/ada/libgnat/s-soliin.ads b/gcc/ada/libgnat/s-soliin.ads index 7e8b559..2726702 100644 --- a/gcc/ada/libgnat/s-soliin.ads +++ b/gcc/ada/libgnat/s-soliin.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2017-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2017-2020, 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- -- diff --git a/gcc/ada/libgnat/s-sopco3.adb b/gcc/ada/libgnat/s-sopco3.adb index 434e496..5953c06 100644 --- a/gcc/ada/libgnat/s-sopco3.adb +++ b/gcc/ada/libgnat/s-sopco3.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-sopco3.ads b/gcc/ada/libgnat/s-sopco3.ads index d0595b8..9743938 100644 --- a/gcc/ada/libgnat/s-sopco3.ads +++ b/gcc/ada/libgnat/s-sopco3.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-sopco4.adb b/gcc/ada/libgnat/s-sopco4.adb index 9e3332b..5dae861 100644 --- a/gcc/ada/libgnat/s-sopco4.adb +++ b/gcc/ada/libgnat/s-sopco4.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-sopco4.ads b/gcc/ada/libgnat/s-sopco4.ads index dcd73c1..0e0f3a3 100644 --- a/gcc/ada/libgnat/s-sopco4.ads +++ b/gcc/ada/libgnat/s-sopco4.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-sopco5.adb b/gcc/ada/libgnat/s-sopco5.adb index 075e84c..0acbf3b 100644 --- a/gcc/ada/libgnat/s-sopco5.adb +++ b/gcc/ada/libgnat/s-sopco5.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-sopco5.ads b/gcc/ada/libgnat/s-sopco5.ads index 1f7cd71..df233fc 100644 --- a/gcc/ada/libgnat/s-sopco5.ads +++ b/gcc/ada/libgnat/s-sopco5.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-spsufi.adb b/gcc/ada/libgnat/s-spsufi.adb index 9aaa389..6702ed1 100644 --- a/gcc/ada/libgnat/s-spsufi.adb +++ b/gcc/ada/libgnat/s-spsufi.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-spsufi.ads b/gcc/ada/libgnat/s-spsufi.ads index 55ee06a..d8143ef 100644 --- a/gcc/ada/libgnat/s-spsufi.ads +++ b/gcc/ada/libgnat/s-spsufi.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- diff --git a/gcc/ada/libgnat/s-stache.adb b/gcc/ada/libgnat/s-stache.adb index 587294d..7f55f17 100644 --- a/gcc/ada/libgnat/s-stache.adb +++ b/gcc/ada/libgnat/s-stache.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-stache.ads b/gcc/ada/libgnat/s-stache.ads index 18b7bea..45d2da0 100644 --- a/gcc/ada/libgnat/s-stache.ads +++ b/gcc/ada/libgnat/s-stache.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-stalib.adb b/gcc/ada/libgnat/s-stalib.adb index cee4397..61636d1 100644 --- a/gcc/ada/libgnat/s-stalib.adb +++ b/gcc/ada/libgnat/s-stalib.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, 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- -- diff --git a/gcc/ada/libgnat/s-stalib.ads b/gcc/ada/libgnat/s-stalib.ads index d1ed160..5fbedae 100644 --- a/gcc/ada/libgnat/s-stalib.ads +++ b/gcc/ada/libgnat/s-stalib.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -81,6 +81,7 @@ package System.Standard_Library is ------------------------------------- type Raise_Action is access procedure; + pragma Favor_Top_Level (Raise_Action); -- A pointer to a procedure used in the Raise_Hook field type Exception_Data; diff --git a/gcc/ada/libgnat/s-stratt__xdr.adb b/gcc/ada/libgnat/s-statxd.adb index 98e21a1..fcefae7 100644 --- a/gcc/ada/libgnat/s-stratt__xdr.adb +++ b/gcc/ada/libgnat/s-statxd.adb @@ -2,11 +2,11 @@ -- -- -- GNAT RUN-TIME COMPONENTS -- -- -- --- S Y S T E M . S T R E A M _ A T T R I B U T E S -- +-- S Y S T E M . S T R E A M _ A T T R I B U T E S . X D R -- -- -- -- B o d y -- -- -- --- Copyright (C) 1996-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1996-2020, Free Software Foundation, Inc. -- -- -- -- GARLIC 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- -- @@ -29,20 +29,11 @@ -- -- ------------------------------------------------------------------------------ --- This file is an alternate version of s-stratt.adb based on the XDR --- standard. It is especially useful for exchanging streams between two --- different systems with different basic type representations and endianness. - -pragma Warnings (Off, "*not allowed in compiler unit"); --- This body is used only when rebuilding the runtime library, not when --- building the compiler, so it's OK to depend on features that would --- otherwise break bootstrap (e.g. IF-expressions). - with Ada.IO_Exceptions; with Ada.Streams; use Ada.Streams; with Ada.Unchecked_Conversion; -package body System.Stream_Attributes is +package body System.Stream_Attributes.XDR is pragma Suppress (Range_Check); pragma Suppress (Overflow_Check); @@ -68,19 +59,16 @@ package body System.Stream_Attributes is subtype SEA is Ada.Streams.Stream_Element_Array; subtype SEO is Ada.Streams.Stream_Element_Offset; - generic function UC renames Ada.Unchecked_Conversion; - - type Field_Type is - record - E_Size : Integer; -- Exponent bit size - E_Bias : Integer; -- Exponent bias - F_Size : Integer; -- Fraction bit size - E_Last : Integer; -- Max exponent value - F_Mask : SE; -- Mask to apply on first fraction byte - E_Bytes : SEO; -- N. of exponent bytes completely used - F_Bytes : SEO; -- N. of fraction bytes completely used - F_Bits : Integer; -- N. of bits used on first fraction word - end record; + type Field_Type is record + E_Size : Integer; -- Exponent bit size + E_Bias : Integer; -- Exponent bias + F_Size : Integer; -- Fraction bit size + E_Last : Integer; -- Max exponent value + F_Mask : SE; -- Mask to apply on first fraction byte + E_Bytes : SEO; -- N. of exponent bytes completely used + F_Bytes : SEO; -- N. of fraction bytes completely used + F_Bits : Integer; -- N. of bits used on first fraction word + end record; type Precision is (Single, Double, Quadruple); @@ -139,40 +127,47 @@ package body System.Stream_Attributes is SSI_L : constant := 1; SI_L : constant := 2; + I24_L : constant := 3; I_L : constant := 4; LI_L : constant := 8; LLI_L : constant := 8; subtype XDR_S_SSI is SEA (1 .. SSI_L); subtype XDR_S_SI is SEA (1 .. SI_L); + subtype XDR_S_I24 is SEA (1 .. I24_L); subtype XDR_S_I is SEA (1 .. I_L); subtype XDR_S_LI is SEA (1 .. LI_L); subtype XDR_S_LLI is SEA (1 .. LLI_L); function Short_Short_Integer_To_XDR_S_SSI is - new Ada.Unchecked_Conversion (Short_Short_Integer, XDR_S_SSI); + new Ada.Unchecked_Conversion (Short_Short_Integer, XDR_S_SSI); function XDR_S_SSI_To_Short_Short_Integer is - new Ada.Unchecked_Conversion (XDR_S_SSI, Short_Short_Integer); + new Ada.Unchecked_Conversion (XDR_S_SSI, Short_Short_Integer); function Short_Integer_To_XDR_S_SI is - new Ada.Unchecked_Conversion (Short_Integer, XDR_S_SI); + new Ada.Unchecked_Conversion (Short_Integer, XDR_S_SI); function XDR_S_SI_To_Short_Integer is - new Ada.Unchecked_Conversion (XDR_S_SI, Short_Integer); + new Ada.Unchecked_Conversion (XDR_S_SI, Short_Integer); + + function Integer_To_XDR_S_I24 is + new Ada.Unchecked_Conversion (Integer_24, XDR_S_I24); + function XDR_S_I24_To_Integer is + new Ada.Unchecked_Conversion (XDR_S_I24, Integer_24); function Integer_To_XDR_S_I is - new Ada.Unchecked_Conversion (Integer, XDR_S_I); + new Ada.Unchecked_Conversion (Integer, XDR_S_I); function XDR_S_I_To_Integer is new Ada.Unchecked_Conversion (XDR_S_I, Integer); function Long_Long_Integer_To_XDR_S_LI is - new Ada.Unchecked_Conversion (Long_Long_Integer, XDR_S_LI); + new Ada.Unchecked_Conversion (Long_Long_Integer, XDR_S_LI); function XDR_S_LI_To_Long_Long_Integer is - new Ada.Unchecked_Conversion (XDR_S_LI, Long_Long_Integer); + new Ada.Unchecked_Conversion (XDR_S_LI, Long_Long_Integer); function Long_Long_Integer_To_XDR_S_LLI is - new Ada.Unchecked_Conversion (Long_Long_Integer, XDR_S_LLI); + new Ada.Unchecked_Conversion (Long_Long_Integer, XDR_S_LLI); function XDR_S_LLI_To_Long_Long_Integer is - new Ada.Unchecked_Conversion (XDR_S_LLI, Long_Long_Integer); + new Ada.Unchecked_Conversion (XDR_S_LLI, Long_Long_Integer); -- An XDR unsigned integer is a 32-bit datum that encodes a nonnegative -- integer in the range [0,4294967295]. It is represented by an unsigned @@ -187,12 +182,14 @@ package body System.Stream_Attributes is SSU_L : constant := 1; SU_L : constant := 2; + U24_L : constant := 3; U_L : constant := 4; LU_L : constant := 8; LLU_L : constant := 8; subtype XDR_S_SSU is SEA (1 .. SSU_L); subtype XDR_S_SU is SEA (1 .. SU_L); + subtype XDR_S_U24 is SEA (1 .. U24_L); subtype XDR_S_U is SEA (1 .. U_L); subtype XDR_S_LU is SEA (1 .. LU_L); subtype XDR_S_LLU is SEA (1 .. LLU_L); @@ -200,26 +197,32 @@ package body System.Stream_Attributes is type XDR_SSU is mod BB ** SSU_L; type XDR_SU is mod BB ** SU_L; type XDR_U is mod BB ** U_L; + type XDR_U24 is mod BB ** U24_L; function Short_Unsigned_To_XDR_S_SU is - new Ada.Unchecked_Conversion (Short_Unsigned, XDR_S_SU); + new Ada.Unchecked_Conversion (Short_Unsigned, XDR_S_SU); function XDR_S_SU_To_Short_Unsigned is - new Ada.Unchecked_Conversion (XDR_S_SU, Short_Unsigned); + new Ada.Unchecked_Conversion (XDR_S_SU, Short_Unsigned); + + function Unsigned_To_XDR_S_U24 is + new Ada.Unchecked_Conversion (Unsigned_24, XDR_S_U24); + function XDR_S_U24_To_Unsigned is + new Ada.Unchecked_Conversion (XDR_S_U24, Unsigned_24); function Unsigned_To_XDR_S_U is - new Ada.Unchecked_Conversion (Unsigned, XDR_S_U); + new Ada.Unchecked_Conversion (Unsigned, XDR_S_U); function XDR_S_U_To_Unsigned is - new Ada.Unchecked_Conversion (XDR_S_U, Unsigned); + new Ada.Unchecked_Conversion (XDR_S_U, Unsigned); function Long_Long_Unsigned_To_XDR_S_LU is - new Ada.Unchecked_Conversion (Long_Long_Unsigned, XDR_S_LU); + new Ada.Unchecked_Conversion (Long_Long_Unsigned, XDR_S_LU); function XDR_S_LU_To_Long_Long_Unsigned is - new Ada.Unchecked_Conversion (XDR_S_LU, Long_Long_Unsigned); + new Ada.Unchecked_Conversion (XDR_S_LU, Long_Long_Unsigned); function Long_Long_Unsigned_To_XDR_S_LLU is - new Ada.Unchecked_Conversion (Long_Long_Unsigned, XDR_S_LLU); + new Ada.Unchecked_Conversion (Long_Long_Unsigned, XDR_S_LLU); function XDR_S_LLU_To_Long_Long_Unsigned is - new Ada.Unchecked_Conversion (XDR_S_LLU, Long_Long_Unsigned); + new Ada.Unchecked_Conversion (XDR_S_LLU, Long_Long_Unsigned); -- The standard defines the floating-point data type "float" (32 bits -- or 4 bytes). The encoding used is the IEEE standard for normalized @@ -240,8 +243,8 @@ package body System.Stream_Attributes is type XDR_TM is mod BB ** TM_L; type XDR_SA is mod 2 ** Standard'Address_Size; - function To_XDR_SA is new UC (System.Address, XDR_SA); - function To_XDR_SA is new UC (XDR_SA, System.Address); + function To_XDR_SA is new Ada.Unchecked_Conversion (System.Address, XDR_SA); + function To_XDR_SA is new Ada.Unchecked_Conversion (XDR_SA, System.Address); -- Enumerations have the same representation as signed integers. -- Enumerations are handy for describing subsets of the integers. @@ -284,19 +287,6 @@ package body System.Stream_Attributes is Optimize_Integers : constant Boolean := Default_Bit_Order = High_Order_First; - ----------------- - -- Block_IO_OK -- - ----------------- - - -- We must inhibit Block_IO, because in XDR mode, each element is output - -- according to XDR requirements, which is not at all the same as writing - -- the whole array in one block. - - function Block_IO_OK return Boolean is - begin - return False; - end Block_IO_OK; - ---------- -- I_AD -- ---------- @@ -484,6 +474,40 @@ package body System.Stream_Attributes is end if; end I_I; + ----------- + -- I_I24 -- + ----------- + + function I_I24 (Stream : not null access RST) return Integer_24 is + S : XDR_S_I24; + L : SEO; + U : XDR_U24 := 0; + + begin + Ada.Streams.Read (Stream.all, S, L); + + if L /= S'Last then + raise Data_Error; + + elsif Optimize_Integers then + return XDR_S_I24_To_Integer (S); + + else + for N in S'Range loop + U := U * BB + XDR_U24 (S (N)); + end loop; + + -- Test sign and apply two complement notation + + if S (1) < BL then + return Integer_24 (U); + + else + return Integer_24 (-((XDR_U24'Last xor U) + 1)); + end if; + end if; + end I_I24; + ---------- -- I_LF -- ---------- @@ -1042,6 +1066,33 @@ package body System.Stream_Attributes is end if; end I_U; + ----------- + -- I_U24 -- + ----------- + + function I_U24 (Stream : not null access RST) return Unsigned_24 is + S : XDR_S_U24; + L : SEO; + U : XDR_U24 := 0; + + begin + Ada.Streams.Read (Stream.all, S, L); + + if L /= S'Last then + raise Data_Error; + + elsif Optimize_Integers then + return XDR_S_U24_To_Unsigned (S); + + else + for N in S'Range loop + U := U * BB + XDR_U24 (S (N)); + end loop; + + return Unsigned_24 (U); + end if; + end I_U24; + ---------- -- I_WC -- ---------- @@ -1289,6 +1340,38 @@ package body System.Stream_Attributes is Ada.Streams.Write (Stream.all, S); end W_I; + ----------- + -- W_I24 -- + ----------- + + procedure W_I24 (Stream : not null access RST; Item : Integer_24) is + S : XDR_S_I24; + U : XDR_U24; + + begin + if Optimize_Integers then + S := Integer_To_XDR_S_I24 (Item); + + else + -- Test sign and apply two complement notation + + U := (if Item < 0 + then XDR_U24'Last xor XDR_U24 (-(Item + 1)) + else XDR_U24 (Item)); + + for N in reverse S'Range loop + S (N) := SE (U mod BB); + U := U / BB; + end loop; + + if U /= 0 then + raise Data_Error; + end if; + end if; + + Ada.Streams.Write (Stream.all, S); + end W_I24; + ---------- -- W_LF -- ---------- @@ -1377,7 +1460,7 @@ package body System.Stream_Attributes is procedure W_LI (Stream : not null access RST; Item : Long_Integer) is S : XDR_S_LI; - U : Unsigned; + U : Unsigned := 0; X : Long_Unsigned; begin @@ -1521,7 +1604,7 @@ package body System.Stream_Attributes is Item : Long_Long_Integer) is S : XDR_S_LLI; - U : Unsigned; + U : Unsigned := 0; X : Long_Long_Unsigned; begin @@ -1569,7 +1652,7 @@ package body System.Stream_Attributes is Item : Long_Long_Unsigned) is S : XDR_S_LLU; - U : Unsigned; + U : Unsigned := 0; X : Long_Long_Unsigned := Item; begin @@ -1606,7 +1689,7 @@ package body System.Stream_Attributes is procedure W_LU (Stream : not null access RST; Item : Long_Unsigned) is S : XDR_S_LU; - U : Unsigned; + U : Unsigned := 0; X : Long_Unsigned := Item; begin @@ -1846,6 +1929,32 @@ package body System.Stream_Attributes is Ada.Streams.Write (Stream.all, S); end W_U; + ----------- + -- W_U24 -- + ----------- + + procedure W_U24 (Stream : not null access RST; Item : Unsigned_24) is + S : XDR_S_U24; + U : XDR_U24 := XDR_U24 (Item); + + begin + if Optimize_Integers then + S := Unsigned_To_XDR_S_U24 (Item); + + else + for N in reverse S'Range loop + S (N) := SE (U mod BB); + U := U / BB; + end loop; + + if U /= 0 then + raise Data_Error; + end if; + end if; + + Ada.Streams.Write (Stream.all, S); + end W_U24; + ---------- -- W_WC -- ---------- @@ -1898,4 +2007,4 @@ package body System.Stream_Attributes is end if; end W_WWC; -end System.Stream_Attributes; +end System.Stream_Attributes.XDR; diff --git a/gcc/ada/libgnat/s-statxd.ads b/gcc/ada/libgnat/s-statxd.ads new file mode 100644 index 0000000..cca5e54 --- /dev/null +++ b/gcc/ada/libgnat/s-statxd.ads @@ -0,0 +1,117 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT RUN-TIME COMPONENTS -- +-- -- +-- S Y S T E M . S T R E A M _ A T T R I B U T E S . X D R -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 1992-2020, 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- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +-- This package contains alternate implementations of the stream attributes +-- for elementary types based on the XDR standard. These are the subprograms +-- that are directly accessed by occurrences of the stream attributes where +-- the type is elementary. + +-- It is especially useful for exchanging streams between two different +-- systems with different basic type representations and endianness. + +-- We only provide the subprograms for the standard base types. For user +-- defined types, the subprogram for the corresponding root type is called +-- with an appropriate conversion. + +package System.Stream_Attributes.XDR is + pragma Preelaborate; + + pragma Suppress (Accessibility_Check, XDR); + -- No need to check accessibility on arguments of subprograms + + --------------------- + -- Input Functions -- + --------------------- + + -- Functions for S'Input attribute. These functions are also used for + -- S'Read, with the obvious transformation, since the input operation + -- is the same for all elementary types (no bounds or discriminants + -- are involved). + + function I_AD (Stream : not null access RST) return Fat_Pointer; + function I_AS (Stream : not null access RST) return Thin_Pointer; + function I_B (Stream : not null access RST) return Boolean; + function I_C (Stream : not null access RST) return Character; + function I_F (Stream : not null access RST) return Float; + function I_I (Stream : not null access RST) return Integer; + function I_I24 (Stream : not null access RST) return Integer_24; + function I_LF (Stream : not null access RST) return Long_Float; + function I_LI (Stream : not null access RST) return Long_Integer; + function I_LLF (Stream : not null access RST) return Long_Long_Float; + function I_LLI (Stream : not null access RST) return Long_Long_Integer; + function I_LLU (Stream : not null access RST) return UST.Long_Long_Unsigned; + function I_LU (Stream : not null access RST) return UST.Long_Unsigned; + function I_SF (Stream : not null access RST) return Short_Float; + function I_SI (Stream : not null access RST) return Short_Integer; + function I_SSI (Stream : not null access RST) return Short_Short_Integer; + function I_SSU (Stream : not null access RST) return + UST.Short_Short_Unsigned; + function I_SU (Stream : not null access RST) return UST.Short_Unsigned; + function I_U (Stream : not null access RST) return UST.Unsigned; + function I_U24 (Stream : not null access RST) return Unsigned_24; + function I_WC (Stream : not null access RST) return Wide_Character; + function I_WWC (Stream : not null access RST) return Wide_Wide_Character; + + ----------------------- + -- Output Procedures -- + ----------------------- + + -- Procedures for S'Write attribute. These procedures are also used for + -- 'Output, since for elementary types there is no difference between + -- 'Write and 'Output because there are no discriminants or bounds to + -- be written. + + procedure W_AD (Stream : not null access RST; Item : Fat_Pointer); + procedure W_AS (Stream : not null access RST; Item : Thin_Pointer); + procedure W_B (Stream : not null access RST; Item : Boolean); + procedure W_C (Stream : not null access RST; Item : Character); + procedure W_F (Stream : not null access RST; Item : Float); + procedure W_I (Stream : not null access RST; Item : Integer); + procedure W_I24 (Stream : not null access RST; Item : Integer_24); + procedure W_LF (Stream : not null access RST; Item : Long_Float); + procedure W_LI (Stream : not null access RST; Item : Long_Integer); + procedure W_LLF (Stream : not null access RST; Item : Long_Long_Float); + procedure W_LLI (Stream : not null access RST; Item : Long_Long_Integer); + procedure W_LLU (Stream : not null access RST; Item : + UST.Long_Long_Unsigned); + procedure W_LU (Stream : not null access RST; Item : UST.Long_Unsigned); + procedure W_SF (Stream : not null access RST; Item : Short_Float); + procedure W_SI (Stream : not null access RST; Item : Short_Integer); + procedure W_SSI (Stream : not null access RST; Item : Short_Short_Integer); + procedure W_SSU (Stream : not null access RST; Item : + UST.Short_Short_Unsigned); + procedure W_SU (Stream : not null access RST; Item : UST.Short_Unsigned); + procedure W_U (Stream : not null access RST; Item : UST.Unsigned); + procedure W_U24 (Stream : not null access RST; Item : Unsigned_24); + procedure W_WC (Stream : not null access RST; Item : Wide_Character); + procedure W_WWC (Stream : not null access RST; Item : Wide_Wide_Character); + +end System.Stream_Attributes.XDR; diff --git a/gcc/ada/libgnat/s-stausa.adb b/gcc/ada/libgnat/s-stausa.adb index 597634a..e96dc7a 100644 --- a/gcc/ada/libgnat/s-stausa.adb +++ b/gcc/ada/libgnat/s-stausa.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-stausa.ads b/gcc/ada/libgnat/s-stausa.ads index 2dfa735..8803237 100644 --- a/gcc/ada/libgnat/s-stausa.ads +++ b/gcc/ada/libgnat/s-stausa.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-stchop.adb b/gcc/ada/libgnat/s-stchop.adb index ecfa5f1..c5c3d35 100644 --- a/gcc/ada/libgnat/s-stchop.adb +++ b/gcc/ada/libgnat/s-stchop.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-stchop.ads b/gcc/ada/libgnat/s-stchop.ads index 11f0e74..d057ddb 100644 --- a/gcc/ada/libgnat/s-stchop.ads +++ b/gcc/ada/libgnat/s-stchop.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-stchop__limit.ads b/gcc/ada/libgnat/s-stchop__limit.ads index 9d70a57..c904606 100644 --- a/gcc/ada/libgnat/s-stchop__limit.ads +++ b/gcc/ada/libgnat/s-stchop__limit.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-stchop__rtems.adb b/gcc/ada/libgnat/s-stchop__rtems.adb index 66b175f..56b1747 100644 --- a/gcc/ada/libgnat/s-stchop__rtems.adb +++ b/gcc/ada/libgnat/s-stchop__rtems.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-stchop__vxworks.adb b/gcc/ada/libgnat/s-stchop__vxworks.adb index 49f02d8..f277426 100644 --- a/gcc/ada/libgnat/s-stchop__vxworks.adb +++ b/gcc/ada/libgnat/s-stchop__vxworks.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, Free Software Foundation, Inc. -- -- -- -- GNARL 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- -- diff --git a/gcc/ada/libgnat/s-stoele.adb b/gcc/ada/libgnat/s-stoele.adb index 8a00f7f..69cb832 100644 --- a/gcc/ada/libgnat/s-stoele.adb +++ b/gcc/ada/libgnat/s-stoele.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-stoele.ads b/gcc/ada/libgnat/s-stoele.ads index cf9a826..4abac8e 100644 --- a/gcc/ada/libgnat/s-stoele.ads +++ b/gcc/ada/libgnat/s-stoele.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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 -- diff --git a/gcc/ada/libgnat/s-stopoo.adb b/gcc/ada/libgnat/s-stopoo.adb index a3eec3b..a9590d4 100644 --- a/gcc/ada/libgnat/s-stopoo.adb +++ b/gcc/ada/libgnat/s-stopoo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/s-stopoo.ads b/gcc/ada/libgnat/s-stopoo.ads index 74dd8bb..b79a038f 100644 --- a/gcc/ada/libgnat/s-stopoo.ads +++ b/gcc/ada/libgnat/s-stopoo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- @@ -36,9 +36,9 @@ with Ada.Finalization; with System.Storage_Elements; -package System.Storage_Pools is - pragma Preelaborate; - +package System.Storage_Pools + with Pure +is type Root_Storage_Pool is abstract new Ada.Finalization.Limited_Controlled with private; pragma Preelaborable_Initialization (Root_Storage_Pool); diff --git a/gcc/ada/libgnat/s-stposu.adb b/gcc/ada/libgnat/s-stposu.adb index 64d8aff..ff61cfb 100644 --- a/gcc/ada/libgnat/s-stposu.adb +++ b/gcc/ada/libgnat/s-stposu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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- -- @@ -117,11 +117,12 @@ package body System.Storage_Pools.Subpools is Is_Subpool_Allocation : constant Boolean := Pool in Root_Storage_Pool_With_Subpools'Class; - Master : Finalization_Master_Ptr := null; - N_Addr : Address; - N_Ptr : FM_Node_Ptr; - N_Size : Storage_Count; - Subpool : Subpool_Handle := null; + Master : Finalization_Master_Ptr := null; + N_Addr : Address; + N_Ptr : FM_Node_Ptr; + N_Size : Storage_Count; + Subpool : Subpool_Handle := null; + Lock_Taken : Boolean := False; Header_And_Padding : Storage_Offset; -- This offset includes the size of a FM_Node plus any additional @@ -205,6 +206,7 @@ package body System.Storage_Pools.Subpools is -- Read - allocation, finalization -- Write - finalization + Lock_Taken := True; Lock_Task.all; -- Do not allow the allocation of controlled objects while the @@ -322,6 +324,7 @@ package body System.Storage_Pools.Subpools is end if; Unlock_Task.all; + Lock_Taken := False; -- Non-controlled allocation @@ -335,7 +338,7 @@ package body System.Storage_Pools.Subpools is -- Unlock the task in case the allocation step failed and reraise the -- exception. - if Is_Controlled then + if Lock_Taken then Unlock_Task.all; end if; diff --git a/gcc/ada/libgnat/s-stposu.ads b/gcc/ada/libgnat/s-stposu.ads index ddb116c..2653f3d 100644 --- a/gcc/ada/libgnat/s-stposu.ads +++ b/gcc/ada/libgnat/s-stposu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2020, 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 -- @@ -42,12 +42,14 @@ package System.Storage_Pools.Subpools is type Root_Storage_Pool_With_Subpools is abstract new Root_Storage_Pool with private; + pragma Preelaborable_Initialization (Root_Storage_Pool_With_Subpools); -- The base for all implementations of Storage_Pool_With_Subpools. This -- type is Limited_Controlled by derivation. To use subpools, an access -- type must be associated with an implementation descending from type -- Root_Storage_Pool_With_Subpools. type Root_Subpool is abstract tagged limited private; + pragma Preelaborable_Initialization (Root_Subpool); -- The base for all implementations of Subpool. Objects of this type are -- managed by the pool_with_subpools. diff --git a/gcc/ada/libgnat/s-stratt.adb b/gcc/ada/libgnat/s-stratt.adb index d4a1516..366dabd 100644 --- a/gcc/ada/libgnat/s-stratt.adb +++ b/gcc/ada/libgnat/s-stratt.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -32,9 +32,20 @@ with Ada.IO_Exceptions; with Ada.Streams; use Ada.Streams; with Ada.Unchecked_Conversion; +with System.Stream_Attributes.XDR; package body System.Stream_Attributes is + XDR_Flag : Integer; + pragma Import (C, XDR_Flag, "__gl_xdr_stream"); + -- This imported value is used to determine whether the build had the + -- binder switch "-xdr" present which enables XDR streaming and sets this + -- flag to 1. + + function XDR_Support return Boolean; + pragma Inline (XDR_Support); + -- Return True if XDR streaming should be used + Err : exception renames Ada.IO_Exceptions.End_Error; -- Exception raised if insufficient data read (note that the RM implies -- that Data_Error might be the appropriate choice, but AI95-00132 @@ -59,6 +70,7 @@ package body System.Stream_Attributes is subtype S_C is SEA (1 .. (Character'Size + SU - 1) / SU); subtype S_F is SEA (1 .. (Float'Size + SU - 1) / SU); subtype S_I is SEA (1 .. (Integer'Size + SU - 1) / SU); + subtype S_I24 is SEA (1 .. (Integer_24'Size + SU - 1) / SU); subtype S_LF is SEA (1 .. (Long_Float'Size + SU - 1) / SU); subtype S_LI is SEA (1 .. (Long_Integer'Size + SU - 1) / SU); subtype S_LLF is SEA (1 .. (Long_Long_Float'Size + SU - 1) / SU); @@ -71,6 +83,7 @@ package body System.Stream_Attributes is subtype S_SSU is SEA (1 .. (UST.Short_Short_Unsigned'Size + SU - 1) / SU); subtype S_SU is SEA (1 .. (UST.Short_Unsigned'Size + SU - 1) / SU); subtype S_U is SEA (1 .. (UST.Unsigned'Size + SU - 1) / SU); + subtype S_U24 is SEA (1 .. (Unsigned_24'Size + SU - 1) / SU); subtype S_WC is SEA (1 .. (Wide_Character'Size + SU - 1) / SU); subtype S_WWC is SEA (1 .. (Wide_Wide_Character'Size + SU - 1) / SU); @@ -80,6 +93,7 @@ package body System.Stream_Attributes is function From_AS is new UC (Thin_Pointer, S_AS); function From_F is new UC (Float, S_F); function From_I is new UC (Integer, S_I); + function From_I24 is new UC (Integer_24, S_I24); function From_LF is new UC (Long_Float, S_LF); function From_LI is new UC (Long_Integer, S_LI); function From_LLF is new UC (Long_Long_Float, S_LLF); @@ -92,6 +106,7 @@ package body System.Stream_Attributes is function From_SSU is new UC (UST.Short_Short_Unsigned, S_SSU); function From_SU is new UC (UST.Short_Unsigned, S_SU); function From_U is new UC (UST.Unsigned, S_U); + function From_U24 is new UC (Unsigned_24, S_U24); function From_WC is new UC (Wide_Character, S_WC); function From_WWC is new UC (Wide_Wide_Character, S_WWC); @@ -101,6 +116,7 @@ package body System.Stream_Attributes is function To_AS is new UC (S_AS, Thin_Pointer); function To_F is new UC (S_F, Float); function To_I is new UC (S_I, Integer); + function To_I24 is new UC (S_I24, Integer_24); function To_LF is new UC (S_LF, Long_Float); function To_LI is new UC (S_LI, Long_Integer); function To_LLF is new UC (S_LLF, Long_Long_Float); @@ -113,16 +129,26 @@ package body System.Stream_Attributes is function To_SSU is new UC (S_SSU, UST.Short_Short_Unsigned); function To_SU is new UC (S_SU, UST.Short_Unsigned); function To_U is new UC (S_U, UST.Unsigned); + function To_U24 is new UC (S_U24, Unsigned_24); function To_WC is new UC (S_WC, Wide_Character); function To_WWC is new UC (S_WWC, Wide_Wide_Character); ----------------- + -- XDR_Support -- + ----------------- + + function XDR_Support return Boolean is + begin + return XDR_Flag = 1; + end XDR_Support; + + ----------------- -- Block_IO_OK -- ----------------- function Block_IO_OK return Boolean is begin - return True; + return not XDR_Support; end Block_IO_OK; ---------- @@ -134,6 +160,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_AD (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -152,6 +182,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_AS (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -170,6 +204,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_B (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -188,6 +226,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_C (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -206,6 +248,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_F (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -224,6 +270,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_I (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -233,6 +283,28 @@ package body System.Stream_Attributes is end if; end I_I; + ----------- + -- I_I24 -- + ----------- + + function I_I24 (Stream : not null access RST) return Integer_24 is + T : S_I24; + L : SEO; + + begin + if XDR_Support then + return XDR.I_I24 (Stream); + end if; + + Ada.Streams.Read (Stream.all, T, L); + + if L < T'Last then + raise Err; + else + return To_I24 (T); + end if; + end I_I24; + ---------- -- I_LF -- ---------- @@ -242,6 +314,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_LF (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -260,6 +336,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_LI (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -278,6 +358,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_LLF (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -296,6 +380,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_LLI (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -316,6 +404,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_LLU (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -334,6 +426,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_LU (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -352,6 +448,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_SF (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -370,6 +470,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_SI (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -388,6 +492,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_SSI (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -408,6 +516,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_SSU (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -426,6 +538,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_SU (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -444,6 +560,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_U (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -453,6 +573,28 @@ package body System.Stream_Attributes is end if; end I_U; + ----------- + -- I_U24 -- + ----------- + + function I_U24 (Stream : not null access RST) return Unsigned_24 is + T : S_U24; + L : SEO; + + begin + if XDR_Support then + return XDR.I_U24 (Stream); + end if; + + Ada.Streams.Read (Stream.all, T, L); + + if L < T'Last then + raise Err; + else + return To_U24 (T); + end if; + end I_U24; + ---------- -- I_WC -- ---------- @@ -462,6 +604,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_WC (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -480,6 +626,10 @@ package body System.Stream_Attributes is L : SEO; begin + if XDR_Support then + return XDR.I_WWC (Stream); + end if; + Ada.Streams.Read (Stream.all, T, L); if L < T'Last then @@ -496,6 +646,11 @@ package body System.Stream_Attributes is procedure W_AD (Stream : not null access RST; Item : Fat_Pointer) is T : constant S_AD := From_AD (Item); begin + if XDR_Support then + XDR.W_AD (Stream, Item); + return; + end if; + Ada.Streams.Write (Stream.all, T); end W_AD; @@ -506,6 +661,11 @@ package body System.Stream_Attributes is procedure W_AS (Stream : not null access RST; Item : Thin_Pointer) is T : constant S_AS := From_AS (Item); begin + if XDR_Support then + XDR.W_AS (Stream, Item); + return; + end if; + Ada.Streams.Write (Stream.all, T); end W_AS; @@ -516,6 +676,11 @@ package body System.Stream_Attributes is procedure W_B (Stream : not null access RST; Item : Boolean) is T : S_B; begin + if XDR_Support then + XDR.W_B (Stream, Item); + return; + end if; + T (1) := Boolean'Pos (Item); Ada.Streams.Write (Stream.all, T); end W_B; @@ -527,6 +692,11 @@ package body System.Stream_Attributes is procedure W_C (Stream : not null access RST; Item : Character) is T : S_C; begin + if XDR_Support then + XDR.W_C (Stream, Item); + return; + end if; + T (1) := Character'Pos (Item); Ada.Streams.Write (Stream.all, T); end W_C; @@ -536,9 +706,13 @@ package body System.Stream_Attributes is --------- procedure W_F (Stream : not null access RST; Item : Float) is - T : constant S_F := From_F (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_F (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_F (Item)); end W_F; --------- @@ -546,19 +720,41 @@ package body System.Stream_Attributes is --------- procedure W_I (Stream : not null access RST; Item : Integer) is - T : constant S_I := From_I (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_I (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_I (Item)); end W_I; + ----------- + -- W_I24 -- + ----------- + + procedure W_I24 (Stream : not null access RST; Item : Integer_24) is + begin + if XDR_Support then + XDR.W_I24 (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_I24 (Item)); + end W_I24; + ---------- -- W_LF -- ---------- procedure W_LF (Stream : not null access RST; Item : Long_Float) is - T : constant S_LF := From_LF (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_LF (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_LF (Item)); end W_LF; ---------- @@ -566,9 +762,13 @@ package body System.Stream_Attributes is ---------- procedure W_LI (Stream : not null access RST; Item : Long_Integer) is - T : constant S_LI := From_LI (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_LI (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_LI (Item)); end W_LI; ----------- @@ -576,21 +776,27 @@ package body System.Stream_Attributes is ----------- procedure W_LLF (Stream : not null access RST; Item : Long_Long_Float) is - T : constant S_LLF := From_LLF (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_LLF (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_LLF (Item)); end W_LLF; ----------- -- W_LLI -- ----------- - procedure W_LLI - (Stream : not null access RST; Item : Long_Long_Integer) - is - T : constant S_LLI := From_LLI (Item); + procedure W_LLI (Stream : not null access RST; Item : Long_Long_Integer) is begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_LLI (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_LLI (Item)); end W_LLI; ----------- @@ -600,21 +806,27 @@ package body System.Stream_Attributes is procedure W_LLU (Stream : not null access RST; Item : UST.Long_Long_Unsigned) is - T : constant S_LLU := From_LLU (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_LLU (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_LLU (Item)); end W_LLU; ---------- -- W_LU -- ---------- - procedure W_LU - (Stream : not null access RST; Item : UST.Long_Unsigned) - is - T : constant S_LU := From_LU (Item); + procedure W_LU (Stream : not null access RST; Item : UST.Long_Unsigned) is begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_LU (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_LU (Item)); end W_LU; ---------- @@ -622,9 +834,13 @@ package body System.Stream_Attributes is ---------- procedure W_SF (Stream : not null access RST; Item : Short_Float) is - T : constant S_SF := From_SF (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_SF (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_SF (Item)); end W_SF; ---------- @@ -632,9 +848,13 @@ package body System.Stream_Attributes is ---------- procedure W_SI (Stream : not null access RST; Item : Short_Integer) is - T : constant S_SI := From_SI (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_SI (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_SI (Item)); end W_SI; ----------- @@ -644,9 +864,13 @@ package body System.Stream_Attributes is procedure W_SSI (Stream : not null access RST; Item : Short_Short_Integer) is - T : constant S_SSI := From_SSI (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_SSI (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_SSI (Item)); end W_SSI; ----------- @@ -656,21 +880,27 @@ package body System.Stream_Attributes is procedure W_SSU (Stream : not null access RST; Item : UST.Short_Short_Unsigned) is - T : constant S_SSU := From_SSU (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_SSU (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_SSU (Item)); end W_SSU; ---------- -- W_SU -- ---------- - procedure W_SU - (Stream : not null access RST; Item : UST.Short_Unsigned) - is - T : constant S_SU := From_SU (Item); + procedure W_SU (Stream : not null access RST; Item : UST.Short_Unsigned) is begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_SU (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_SU (Item)); end W_SU; --------- @@ -678,19 +908,41 @@ package body System.Stream_Attributes is --------- procedure W_U (Stream : not null access RST; Item : UST.Unsigned) is - T : constant S_U := From_U (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_U (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_U (Item)); end W_U; + ----------- + -- W_U24 -- + ----------- + + procedure W_U24 (Stream : not null access RST; Item : Unsigned_24) is + begin + if XDR_Support then + XDR.W_U24 (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_U24 (Item)); + end W_U24; + ---------- -- W_WC -- ---------- procedure W_WC (Stream : not null access RST; Item : Wide_Character) is - T : constant S_WC := From_WC (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_WC (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_WC (Item)); end W_WC; ----------- @@ -700,9 +952,13 @@ package body System.Stream_Attributes is procedure W_WWC (Stream : not null access RST; Item : Wide_Wide_Character) is - T : constant S_WWC := From_WWC (Item); begin - Ada.Streams.Write (Stream.all, T); + if XDR_Support then + XDR.W_WWC (Stream, Item); + return; + end if; + + Ada.Streams.Write (Stream.all, From_WWC (Item)); end W_WWC; end System.Stream_Attributes; diff --git a/gcc/ada/libgnat/s-stratt.ads b/gcc/ada/libgnat/s-stratt.ads index e050bc1..c8c453a 100644 --- a/gcc/ada/libgnat/s-stratt.ads +++ b/gcc/ada/libgnat/s-stratt.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -53,6 +53,12 @@ package System.Stream_Attributes is subtype SEC is Ada.Streams.Stream_Element_Count; + type Integer_24 is range -2 ** 23 .. 2 ** 23 - 1; + for Integer_24'Size use 24; + + type Unsigned_24 is mod 2 ** 24; + for Unsigned_24'Size use 24; + -- Enumeration types are usually transferred using the routine for the -- corresponding integer. The exception is that special routines are -- provided for Boolean and the character types, in case the protocol @@ -104,6 +110,7 @@ package System.Stream_Attributes is function I_C (Stream : not null access RST) return Character; function I_F (Stream : not null access RST) return Float; function I_I (Stream : not null access RST) return Integer; + function I_I24 (Stream : not null access RST) return Integer_24; function I_LF (Stream : not null access RST) return Long_Float; function I_LI (Stream : not null access RST) return Long_Integer; function I_LLF (Stream : not null access RST) return Long_Long_Float; @@ -117,6 +124,7 @@ package System.Stream_Attributes is UST.Short_Short_Unsigned; function I_SU (Stream : not null access RST) return UST.Short_Unsigned; function I_U (Stream : not null access RST) return UST.Unsigned; + function I_U24 (Stream : not null access RST) return Unsigned_24; function I_WC (Stream : not null access RST) return Wide_Character; function I_WWC (Stream : not null access RST) return Wide_Wide_Character; @@ -135,6 +143,7 @@ package System.Stream_Attributes is procedure W_C (Stream : not null access RST; Item : Character); procedure W_F (Stream : not null access RST; Item : Float); procedure W_I (Stream : not null access RST; Item : Integer); + procedure W_I24 (Stream : not null access RST; Item : Integer_24); procedure W_LF (Stream : not null access RST; Item : Long_Float); procedure W_LI (Stream : not null access RST; Item : Long_Integer); procedure W_LLF (Stream : not null access RST; Item : Long_Long_Float); @@ -149,15 +158,13 @@ package System.Stream_Attributes is UST.Short_Short_Unsigned); procedure W_SU (Stream : not null access RST; Item : UST.Short_Unsigned); procedure W_U (Stream : not null access RST; Item : UST.Unsigned); + procedure W_U24 (Stream : not null access RST; Item : Unsigned_24); procedure W_WC (Stream : not null access RST; Item : Wide_Character); procedure W_WWC (Stream : not null access RST; Item : Wide_Wide_Character); function Block_IO_OK return Boolean; - -- Package System.Stream_Attributes has several bodies - the default one - -- distributed with GNAT, and s-stratt__xdr.adb, which is based on the XDR - -- standard. Both bodies share the same spec. The role of this function is - -- to indicate whether the current version of System.Stream_Attributes - -- supports block IO. See System.Strings.Stream_Ops (s-ststop) for details. + -- Indicate whether the current setting supports block IO. See + -- System.Strings.Stream_Ops (s-ststop) for details on block IO. private pragma Inline (I_AD); diff --git a/gcc/ada/libgnat/s-strcom.adb b/gcc/ada/libgnat/s-strcom.adb index b39df66..e3167b4 100644 --- a/gcc/ada/libgnat/s-strcom.adb +++ b/gcc/ada/libgnat/s-strcom.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-strcom.ads b/gcc/ada/libgnat/s-strcom.ads index e6b6ad9..b77d442 100644 --- a/gcc/ada/libgnat/s-strcom.ads +++ b/gcc/ada/libgnat/s-strcom.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-strhas.adb b/gcc/ada/libgnat/s-strhas.adb index 92cdbf3..05c56ae 100644 --- a/gcc/ada/libgnat/s-strhas.adb +++ b/gcc/ada/libgnat/s-strhas.adb @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/s-strhas.ads b/gcc/ada/libgnat/s-strhas.ads index 19cddb5..07a5928 100644 --- a/gcc/ada/libgnat/s-strhas.ads +++ b/gcc/ada/libgnat/s-strhas.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/s-string.adb b/gcc/ada/libgnat/s-string.adb index 010e204..f26f8d6 100644 --- a/gcc/ada/libgnat/s-string.adb +++ b/gcc/ada/libgnat/s-string.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, 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- -- diff --git a/gcc/ada/libgnat/s-string.ads b/gcc/ada/libgnat/s-string.ads index e70dafb..c93e4e62 100644 --- a/gcc/ada/libgnat/s-string.ads +++ b/gcc/ada/libgnat/s-string.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2020, 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- -- diff --git a/gcc/ada/libgnat/s-strops.adb b/gcc/ada/libgnat/s-strops.adb index 75c655c..6458060 100644 --- a/gcc/ada/libgnat/s-strops.adb +++ b/gcc/ada/libgnat/s-strops.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-strops.ads b/gcc/ada/libgnat/s-strops.ads index 46970ab..9b6028a 100644 --- a/gcc/ada/libgnat/s-strops.ads +++ b/gcc/ada/libgnat/s-strops.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-ststop.adb b/gcc/ada/libgnat/s-ststop.adb index cf594b0..cc2a352 100644 --- a/gcc/ada/libgnat/s-ststop.adb +++ b/gcc/ada/libgnat/s-ststop.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- @@ -216,21 +216,25 @@ package body System.Strings.Stream_Ops is declare -- Determine the size in BITS of the block necessary to contain -- the whole string. + -- Since we are dealing with strings indexed by natural, there + -- is no risk of overflow when using a Long_Long_Integer. - Block_Size : constant Natural := - Integer (Item'Last - Item'First + 1) * ET_Size; + Block_Size : constant Long_Long_Integer := + Item'Length * Long_Long_Integer (ET_Size); -- Item can be larger than what the default block can store, - -- determine the number of whole reads necessary to read the + -- determine the number of whole writes necessary to output the -- string. - Blocks : constant Natural := Block_Size / Default_Block_Size; + Blocks : constant Natural := + Natural (Block_Size / Long_Long_Integer (Default_Block_Size)); -- The size of Item may not be a multiple of the default block - -- size, determine the size of the remaining chunk in BITS. + -- size, determine the size of the remaining chunk. Rem_Size : constant Natural := - Block_Size mod Default_Block_Size; + Natural + (Block_Size mod Long_Long_Integer (Default_Block_Size)); -- String indexes @@ -337,20 +341,25 @@ package body System.Strings.Stream_Ops is declare -- Determine the size in BITS of the block necessary to contain -- the whole string. + -- Since we are dealing with strings indexed by natural, there + -- is no risk of overflow when using a Long_Long_Integer. - Block_Size : constant Natural := Item'Length * ET_Size; + Block_Size : constant Long_Long_Integer := + Item'Length * Long_Long_Integer (ET_Size); -- Item can be larger than what the default block can store, -- determine the number of whole writes necessary to output the -- string. - Blocks : constant Natural := Block_Size / Default_Block_Size; + Blocks : constant Natural := + Natural (Block_Size / Long_Long_Integer (Default_Block_Size)); -- The size of Item may not be a multiple of the default block -- size, determine the size of the remaining chunk. Rem_Size : constant Natural := - Block_Size mod Default_Block_Size; + Natural + (Block_Size mod Long_Long_Integer (Default_Block_Size)); -- String indexes diff --git a/gcc/ada/libgnat/s-ststop.ads b/gcc/ada/libgnat/s-ststop.ads index 0e20b84..5f35fed 100644 --- a/gcc/ada/libgnat/s-ststop.ads +++ b/gcc/ada/libgnat/s-ststop.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- @@ -53,15 +53,15 @@ -- or -- String_Output_Blk_IO (Some_Stream, Some_String); --- String_Output form is used if pragma Restrictions (No_String_Optimziations) +-- String_Output form is used if pragma Restrictions (No_String_Optimizations) -- is active, which requires element by element operations. The BLK_IO form -- is used if this restriction is not set, allowing block optimization. -- Note that if System.Stream_Attributes.Block_IO_OK is False, then the BLK_IO -- form is treated as equivalent to the normal case, so that the optimization -- is inhibited anyway, regardless of the setting of the restriction. This --- handles versions of System.Stream_Attributes (in particular the XDR version --- found in s-stratt-xdr) which do not permit block io optimization. +-- handles the XDR implementation of System.Stream_Attributes in particular +-- which does not permit block io optimization. pragma Compiler_Unit_Warning; diff --git a/gcc/ada/libgnat/s-tasloc.adb b/gcc/ada/libgnat/s-tasloc.adb index 1ebb62c..17fc3ce 100644 --- a/gcc/ada/libgnat/s-tasloc.adb +++ b/gcc/ada/libgnat/s-tasloc.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2019, AdaCore -- +-- Copyright (C) 1997-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-tasloc.ads b/gcc/ada/libgnat/s-tasloc.ads index 538c857..1820107 100644 --- a/gcc/ada/libgnat/s-tasloc.ads +++ b/gcc/ada/libgnat/s-tasloc.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2019, AdaCore -- +-- Copyright (C) 1998-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-thread.ads b/gcc/ada/libgnat/s-thread.ads index ace45d7..a13e806 100644 --- a/gcc/ada/libgnat/s-thread.ads +++ b/gcc/ada/libgnat/s-thread.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-thread__ae653.adb b/gcc/ada/libgnat/s-thread__ae653.adb index 240483c..fcf1304 100644 --- a/gcc/ada/libgnat/s-thread__ae653.adb +++ b/gcc/ada/libgnat/s-thread__ae653.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -36,6 +36,7 @@ pragma Restrictions (No_Tasking); -- which do not use Ada tasking. This restriction ensures that this -- will be checked by the binder. +with System.Storage_Elements; use System.Storage_Elements; with System.OS_Versions; use System.OS_Versions; package body System.Threads is @@ -44,14 +45,16 @@ package body System.Threads is package SSL renames System.Soft_Links; - Current_ATSD : aliased System.Address := System.Null_Address; - pragma Export (C, Current_ATSD, "__gnat_current_atsd"); - Main_ATSD : aliased ATSD; -- TSD for environment task - Stack_Limit : Address; + Current_ATSD : aliased System.Address := System.Null_Address; + pragma Thread_Local_Storage (Current_ATSD); + -- pragma TLS needed since TaskVarAdd no longer available + -- Assume guard pages for Helix APEX partitions, but leave + -- checking mechanism in for now, in case of surprises. ??? + Stack_Limit : Address; pragma Import (C, Stack_Limit, "__gnat_stack_limit"); type Set_Stack_Limit_Proc_Acc is access procedure; @@ -62,11 +65,10 @@ package body System.Threads is -- Procedure to be called when a task is created to set stack limit if -- limit checking is used. - -------------------------- - -- VxWorks specific API -- - -------------------------- + -- VxWorks specific API ERROR : constant STATUS := Interfaces.C.int (-1); + OK : constant STATUS := Interfaces.C.int (0); function taskIdVerify (tid : t_id) return STATUS; pragma Import (C, taskIdVerify, "taskIdVerify"); @@ -74,10 +76,6 @@ package body System.Threads is function taskIdSelf return t_id; pragma Import (C, taskIdSelf, "taskIdSelf"); - function taskVarAdd - (tid : t_id; pVar : System.Address) return int; - pragma Import (C, taskVarAdd, "taskVarAdd"); - ----------------------- -- Local Subprograms -- ----------------------- @@ -102,21 +100,18 @@ package body System.Threads is (Sec_Stack_Ptr : SST.SS_Stack_Ptr; Process_ATSD_Address : System.Address) is - -- Current_ATSD must already be a taskVar of taskIdSelf. - -- No assertion because taskVarGet is not available on VxWorks/CERT, - -- which is used on VxWorks 653 3.x as a guest OS. - TSD : constant ATSD_Access := From_Address (Process_ATSD_Address); + ATSD : constant ATSD_Access := From_Address (Process_ATSD_Address); begin - TSD.Sec_Stack_Ptr := Sec_Stack_Ptr; - SST.SS_Init (TSD.Sec_Stack_Ptr); + ATSD.Sec_Stack_Ptr := Sec_Stack_Ptr; + SST.SS_Init (ATSD.Sec_Stack_Ptr); Current_ATSD := Process_ATSD_Address; - Install_Handler; - -- Initialize stack limit if needed + -- Assume guard pages for Helix/Vx7, but leave in for now ??? + -- Initialize stack limit if needed. if Current_ATSD /= Main_ATSD'Address and then Set_Stack_Limit_Hook /= null @@ -184,24 +179,16 @@ package body System.Threads is -------------- function Register (T : Thread_Id) return STATUS is - Result : STATUS; - begin -- It cannot be assumed that the caller of this routine has a ATSD; -- so neither this procedure nor the procedures that it calls should -- raise or handle exceptions, or make use of a secondary stack. - -- This routine is only necessary because taskVarAdd cannot be - -- executed once an VxWorks 653 partition has entered normal mode - -- (depending on configRecord.c, allocation could be disabled). - -- Otherwise, everything could have been done in Thread_Body_Enter. - if taskIdVerify (T) = ERROR then return ERROR; end if; - Result := taskVarAdd (T, Current_ATSD'Address); - pragma Assert (Result /= ERROR); + Current_ATSD := To_Address (Integer_Address (T)); -- The same issue applies to the task variable that contains the stack -- limit when that overflow checking mechanism is used instead of @@ -211,17 +198,15 @@ package body System.Threads is -- System.Stack_Check_Limits = True. pragma Warnings (Off); + -- OS is a constant - if Result /= ERROR - and then OS /= VxWorks_653 - and then Set_Stack_Limit_Hook /= null - then - Result := taskVarAdd (T, Stack_Limit'Address); - pragma Assert (Result /= ERROR); + if OS /= VxWorks_653 and then Set_Stack_Limit_Hook /= null then + -- Check that this is correct if limit checking left in. ??? + Stack_Limit := To_Address (Integer_Address (T)); end if; pragma Warnings (On); - return Result; + return OK; end Register; ------------------- diff --git a/gcc/ada/libgnat/s-traceb.adb b/gcc/ada/libgnat/s-traceb.adb index bba3494..b2cb6d8 100644 --- a/gcc/ada/libgnat/s-traceb.adb +++ b/gcc/ada/libgnat/s-traceb.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, 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- -- diff --git a/gcc/ada/libgnat/s-traceb.ads b/gcc/ada/libgnat/s-traceb.ads index c5fe36a..1c3151c 100644 --- a/gcc/ada/libgnat/s-traceb.ads +++ b/gcc/ada/libgnat/s-traceb.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2020, 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- -- diff --git a/gcc/ada/libgnat/s-traceb__hpux.adb b/gcc/ada/libgnat/s-traceb__hpux.adb index 64ac58d..2d6b715 100644 --- a/gcc/ada/libgnat/s-traceb__hpux.adb +++ b/gcc/ada/libgnat/s-traceb__hpux.adb @@ -7,7 +7,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/s-traceb__mastop.adb b/gcc/ada/libgnat/s-traceb__mastop.adb index 82ba677..e24ec1b 100644 --- a/gcc/ada/libgnat/s-traceb__mastop.adb +++ b/gcc/ada/libgnat/s-traceb__mastop.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-traent.adb b/gcc/ada/libgnat/s-traent.adb index f7b468f..950b0e5 100644 --- a/gcc/ada/libgnat/s-traent.adb +++ b/gcc/ada/libgnat/s-traent.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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- -- diff --git a/gcc/ada/libgnat/s-traent.ads b/gcc/ada/libgnat/s-traent.ads index 9d33be7..fa2db4e 100644 --- a/gcc/ada/libgnat/s-traent.ads +++ b/gcc/ada/libgnat/s-traent.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2003-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2020, 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 -- diff --git a/gcc/ada/libgnat/s-trasym.adb b/gcc/ada/libgnat/s-trasym.adb index b3b1e7c..0d6639f 100644 --- a/gcc/ada/libgnat/s-trasym.adb +++ b/gcc/ada/libgnat/s-trasym.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-trasym.ads b/gcc/ada/libgnat/s-trasym.ads index 5839f23..f0240cd 100644 --- a/gcc/ada/libgnat/s-trasym.ads +++ b/gcc/ada/libgnat/s-trasym.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-trasym__dwarf.adb b/gcc/ada/libgnat/s-trasym__dwarf.adb index b116a10..d8e3956 100644 --- a/gcc/ada/libgnat/s-trasym__dwarf.adb +++ b/gcc/ada/libgnat/s-trasym__dwarf.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2019, AdaCore -- +-- Copyright (C) 1999-2020, AdaCore -- -- -- -- 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- -- @@ -438,7 +438,7 @@ package body System.Traceback.Symbolic is Suppress_Hex : Boolean; Res : in out Bounded_String) is - Success : Boolean := False; + Success : Boolean; begin if Symbolic.Module_Name.Is_Supported then Append (Res, '['); diff --git a/gcc/ada/libgnat/s-tsmona.adb b/gcc/ada/libgnat/s-tsmona.adb index d7271d3..64db59a 100644 --- a/gcc/ada/libgnat/s-tsmona.adb +++ b/gcc/ada/libgnat/s-tsmona.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2012-2019, AdaCore -- +-- Copyright (C) 2012-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-tsmona__linux.adb b/gcc/ada/libgnat/s-tsmona__linux.adb index bc3ee23..98c9992 100644 --- a/gcc/ada/libgnat/s-tsmona__linux.adb +++ b/gcc/ada/libgnat/s-tsmona__linux.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2012-2019, AdaCore -- +-- Copyright (C) 2012-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-tsmona__mingw.adb b/gcc/ada/libgnat/s-tsmona__mingw.adb index c81a01d..b79a3fc 100644 --- a/gcc/ada/libgnat/s-tsmona__mingw.adb +++ b/gcc/ada/libgnat/s-tsmona__mingw.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2012-2019, AdaCore -- +-- Copyright (C) 2012-2020, AdaCore -- -- -- -- 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- -- diff --git a/gcc/ada/libgnat/s-unstyp.ads b/gcc/ada/libgnat/s-unstyp.ads index 08480b4..0f6c73c 100644 --- a/gcc/ada/libgnat/s-unstyp.ads +++ b/gcc/ada/libgnat/s-unstyp.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -51,8 +51,8 @@ package System.Unsigned_Types is -- Used in the implementation of Is_Negative intrinsic (see Exp_Intr) type Packed_Byte is mod 2 ** 8; - pragma Universal_Aliasing (Packed_Byte); for Packed_Byte'Size use 8; + pragma Universal_Aliasing (Packed_Byte); -- Component type for Packed_Bytes1, Packed_Bytes2 and Packed_Byte4 arrays. -- As this type is used by the compiler to implement operations on user -- packed array, it needs to be able to alias any type. @@ -89,6 +89,24 @@ package System.Unsigned_Types is -- cases the clusters can be assumed to be 4-byte aligned if the array -- is aligned (see System.Pack_12 in file s-pack12 as an example). + type Rev_Packed_Bytes1 is new Packed_Bytes1; + pragma Suppress_Initialization (Rev_Packed_Bytes1); + -- This is equivalent to Packed_Bytes1, but for packed arrays with reverse + -- scalar storage order. But the Scalar_Storage_Order attribute cannot be + -- set directly here, see Exp_Pakd for more details. + + type Rev_Packed_Bytes2 is new Packed_Bytes2; + pragma Suppress_Initialization (Rev_Packed_Bytes2); + -- This is equivalent to Packed_Bytes2, but for packed arrays with reverse + -- scalar storage order. But the Scalar_Storage_Order attribute cannot be + -- set directly here, see Exp_Pakd for more details. + + type Rev_Packed_Bytes4 is new Packed_Bytes4; + pragma Suppress_Initialization (Rev_Packed_Bytes4); + -- This is equivalent to Packed_Bytes4, but for packed arrays with reverse + -- scalar storage order. But the Scalar_Storage_Order attribute cannot be + -- set directly here, see Exp_Pakd for more details. + type Bits_1 is mod 2**1; type Bits_2 is mod 2**2; type Bits_4 is mod 2**4; diff --git a/gcc/ada/libgnat/s-utf_32.adb b/gcc/ada/libgnat/s-utf_32.adb index 1c412da..a1346f3 100644 --- a/gcc/ada/libgnat/s-utf_32.adb +++ b/gcc/ada/libgnat/s-utf_32.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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- -- @@ -49,7 +49,7 @@ package body System.UTF_32 is ---------------------- -- Note these tables are derived from those given in AI-285. For details - -- see //www.ada-auth.org/cgi-bin/cvsweb.cgi/AIs/AI-00285.TXT?rev=1.22. + -- see www.ada-auth.org/cgi-bin/cvsweb.cgi/AIs/AI-00285.TXT?rev=1.22. type UTF_32_Range is record Lo : UTF_32; @@ -6071,9 +6071,6 @@ package body System.UTF_32 is 40, -- DESERET CAPITAL LETTER LONG I .. DESERET CAPITAL LETTER EW 32); -- TAG LATIN CAPITAL LETTER A .. TAG LATIN CAPITAL LETTER Z - pragma Warnings (On); - -- Temporary until pragma Warnings at start can be activated ??? - -- The following is a list of the 10646 names for CAPITAL LETTER entries -- that have no matching SMALL LETTER entry and are thus not folded @@ -6117,10 +6114,6161 @@ package body System.UTF_32 is -- GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI -- GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI + -- The following array includes all characters in the Unicode table with + -- the category NFKC_Quick_Check=No, taken from + -- www.unicode.org/Public/UCD/latest/ucd/DerivedNormalizationProps.txt + + UTF_32_NFKC_QC_No : constant UTF_32_Ranges := ( + (16#00A0#, 16#00A0#), -- NO-BREAK SPACE + (16#00A8#, 16#00A8#), -- DIAERESIS + (16#00AA#, 16#00AA#), -- FEMININE ORDINAL INDICATOR + (16#00AF#, 16#00AF#), -- MACRON + (16#00B2#, 16#00B3#), -- SUPERSCRIPT TWO..SUPERSCRIPT THREE + (16#00B4#, 16#00B4#), -- ACUTE ACCENT + (16#00B5#, 16#00B5#), -- MICRO SIGN + (16#00B8#, 16#00B8#), -- CEDILLA + (16#00B9#, 16#00B9#), -- SUPERSCRIPT ONE + (16#00BA#, 16#00BA#), -- MASCULINE ORDINAL INDICATOR + (16#00BC#, 16#00BE#), -- VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS + (16#0132#, 16#0133#), -- LATIN CAPITAL LIGATURE IJ..LATIN SMALL LIGATURE IJ + (16#013F#, 16#0140#), -- LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH MIDDLE DOT + (16#0149#, 16#0149#), -- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE + (16#017F#, 16#017F#), -- LATIN SMALL LETTER LONG S + (16#01C4#, 16#01CC#), -- LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER NJ + (16#01F1#, 16#01F3#), -- LATIN CAPITAL LETTER DZ..LATIN SMALL LETTER DZ + (16#02B0#, 16#02B8#), -- MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y + (16#02D8#, 16#02DD#), -- BREVE..DOUBLE ACUTE ACCENT + (16#02E0#, 16#02E4#), -- MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP + (16#0340#, 16#0341#), -- COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK + (16#0343#, 16#0344#), -- COMBINING GREEK KORONIS..COMBINING GREEK DIALYTIKA TONOS + (16#0374#, 16#0374#), -- GREEK NUMERAL SIGN + (16#037A#, 16#037A#), -- GREEK YPOGEGRAMMENI + (16#037E#, 16#037E#), -- GREEK QUESTION MARK + (16#0384#, 16#0385#), -- GREEK TONOS..GREEK DIALYTIKA TONOS + (16#0387#, 16#0387#), -- GREEK ANO TELEIA + (16#03D0#, 16#03D6#), -- GREEK BETA SYMBOL..GREEK PI SYMBOL + (16#03F0#, 16#03F2#), -- GREEK KAPPA SYMBOL..GREEK LUNATE SIGMA SYMBOL + (16#03F4#, 16#03F5#), -- GREEK CAPITAL THETA SYMBOL..GREEK LUNATE EPSILON SYMBOL + (16#03F9#, 16#03F9#), -- GREEK CAPITAL LUNATE SIGMA SYMBOL + (16#0587#, 16#0587#), -- ARMENIAN SMALL LIGATURE ECH YIWN + (16#0675#, 16#0678#), -- ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER HIGH HAMZA YEH + (16#0958#, 16#095F#), -- DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA + (16#09DC#, 16#09DD#), -- BENGALI LETTER RRA..BENGALI LETTER RHA + (16#09DF#, 16#09DF#), -- BENGALI LETTER YYA + (16#0A33#, 16#0A33#), -- GURMUKHI LETTER LLA + (16#0A36#, 16#0A36#), -- GURMUKHI LETTER SHA + (16#0A59#, 16#0A5B#), -- GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA + (16#0A5E#, 16#0A5E#), -- GURMUKHI LETTER FA + (16#0B5C#, 16#0B5D#), -- ORIYA LETTER RRA..ORIYA LETTER RHA + (16#0E33#, 16#0E33#), -- THAI CHARACTER SARA AM + (16#0EB3#, 16#0EB3#), -- LAO VOWEL SIGN AM + (16#0EDC#, 16#0EDD#), -- LAO HO NO..LAO HO MO + (16#0F0C#, 16#0F0C#), -- TIBETAN MARK DELIMITER TSHEG BSTAR + (16#0F43#, 16#0F43#), -- TIBETAN LETTER GHA + (16#0F4D#, 16#0F4D#), -- TIBETAN LETTER DDHA + (16#0F52#, 16#0F52#), -- TIBETAN LETTER DHA + (16#0F57#, 16#0F57#), -- TIBETAN LETTER BHA + (16#0F5C#, 16#0F5C#), -- TIBETAN LETTER DZHA + (16#0F69#, 16#0F69#), -- TIBETAN LETTER KSSA + (16#0F73#, 16#0F73#), -- TIBETAN VOWEL SIGN II + (16#0F75#, 16#0F79#), -- TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC LL + (16#0F81#, 16#0F81#), -- TIBETAN VOWEL SIGN REVERSED II + (16#0F93#, 16#0F93#), -- TIBETAN SUBJOINED LETTER GHA + (16#0F9D#, 16#0F9D#), -- TIBETAN SUBJOINED LETTER DDHA + (16#0FA2#, 16#0FA2#), -- TIBETAN SUBJOINED LETTER DHA + (16#0FA7#, 16#0FA7#), -- TIBETAN SUBJOINED LETTER BHA + (16#0FAC#, 16#0FAC#), -- TIBETAN SUBJOINED LETTER DZHA + (16#0FB9#, 16#0FB9#), -- TIBETAN SUBJOINED LETTER KSSA + (16#10FC#, 16#10FC#), -- MODIFIER LETTER GEORGIAN NAR + (16#1D2C#, 16#1D2E#), -- MODIFIER LETTER CAPITAL A..MODIFIER LETTER CAPITAL B + (16#1D30#, 16#1D3A#), -- MODIFIER LETTER CAPITAL D..MODIFIER LETTER CAPITAL N + (16#1D3C#, 16#1D4D#), -- MODIFIER LETTER CAPITAL O..MODIFIER LETTER SMALL G + (16#1D4F#, 16#1D6A#), -- MODIFIER LETTER SMALL K..GREEK SUBSCRIPT SMALL LETTER CHI + (16#1D78#, 16#1D78#), -- MODIFIER LETTER CYRILLIC EN + (16#1D9B#, 16#1DBF#), -- MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA + (16#1E9A#, 16#1E9B#), -- LATIN SMALL LETTER A WITH RIGHT HALF RING..LATIN SMALL LETTER LONG S WITH DOT ABOVE + (16#1F71#, 16#1F71#), -- GREEK SMALL LETTER ALPHA WITH OXIA + (16#1F73#, 16#1F73#), -- GREEK SMALL LETTER EPSILON WITH OXIA + (16#1F75#, 16#1F75#), -- GREEK SMALL LETTER ETA WITH OXIA + (16#1F77#, 16#1F77#), -- GREEK SMALL LETTER IOTA WITH OXIA + (16#1F79#, 16#1F79#), -- GREEK SMALL LETTER OMICRON WITH OXIA + (16#1F7B#, 16#1F7B#), -- GREEK SMALL LETTER UPSILON WITH OXIA + (16#1F7D#, 16#1F7D#), -- GREEK SMALL LETTER OMEGA WITH OXIA + (16#1FBB#, 16#1FBB#), -- GREEK CAPITAL LETTER ALPHA WITH OXIA + (16#1FBD#, 16#1FBD#), -- GREEK KORONIS + (16#1FBE#, 16#1FBE#), -- GREEK PROSGEGRAMMENI + (16#1FBF#, 16#1FC1#), -- GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI + (16#1FC9#, 16#1FC9#), -- GREEK CAPITAL LETTER EPSILON WITH OXIA + (16#1FCB#, 16#1FCB#), -- GREEK CAPITAL LETTER ETA WITH OXIA + (16#1FCD#, 16#1FCF#), -- GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI + (16#1FD3#, 16#1FD3#), -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA + (16#1FDB#, 16#1FDB#), -- GREEK CAPITAL LETTER IOTA WITH OXIA + (16#1FDD#, 16#1FDF#), -- GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI + (16#1FE3#, 16#1FE3#), -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA + (16#1FEB#, 16#1FEB#), -- GREEK CAPITAL LETTER UPSILON WITH OXIA + (16#1FED#, 16#1FEF#), -- GREEK DIALYTIKA AND VARIA..GREEK VARIA + (16#1FF9#, 16#1FF9#), -- GREEK CAPITAL LETTER OMICRON WITH OXIA + (16#1FFB#, 16#1FFB#), -- GREEK CAPITAL LETTER OMEGA WITH OXIA + (16#1FFD#, 16#1FFE#), -- GREEK OXIA..GREEK DASIA + (16#2000#, 16#200A#), -- EN QUAD..HAIR SPACE + (16#2011#, 16#2011#), -- NON-BREAKING HYPHEN + (16#2017#, 16#2017#), -- DOUBLE LOW LINE + (16#2024#, 16#2026#), -- ONE DOT LEADER..HORIZONTAL ELLIPSIS + (16#202F#, 16#202F#), -- NARROW NO-BREAK SPACE + (16#2033#, 16#2034#), -- DOUBLE PRIME..TRIPLE PRIME + (16#2036#, 16#2037#), -- REVERSED DOUBLE PRIME..REVERSED TRIPLE PRIME + (16#203C#, 16#203C#), -- DOUBLE EXCLAMATION MARK + (16#203E#, 16#203E#), -- OVERLINE + (16#2047#, 16#2049#), -- DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK + (16#2057#, 16#2057#), -- QUADRUPLE PRIME + (16#205F#, 16#205F#), -- MEDIUM MATHEMATICAL SPACE + (16#2070#, 16#2070#), -- SUPERSCRIPT ZERO + (16#2071#, 16#2071#), -- SUPERSCRIPT LATIN SMALL LETTER I + (16#2074#, 16#2079#), -- SUPERSCRIPT FOUR..SUPERSCRIPT NINE + (16#207A#, 16#207C#), -- SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN + (16#207D#, 16#207D#), -- SUPERSCRIPT LEFT PARENTHESIS + (16#207E#, 16#207E#), -- SUPERSCRIPT RIGHT PARENTHESIS + (16#207F#, 16#207F#), -- SUPERSCRIPT LATIN SMALL LETTER N + (16#2080#, 16#2089#), -- SUBSCRIPT ZERO..SUBSCRIPT NINE + (16#208A#, 16#208C#), -- SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN + (16#208D#, 16#208D#), -- SUBSCRIPT LEFT PARENTHESIS + (16#208E#, 16#208E#), -- SUBSCRIPT RIGHT PARENTHESIS + (16#2090#, 16#209C#), -- LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T + (16#20A8#, 16#20A8#), -- RUPEE SIGN + (16#2100#, 16#2101#), -- ACCOUNT OF..ADDRESSED TO THE SUBJECT + (16#2102#, 16#2102#), -- DOUBLE-STRUCK CAPITAL C + (16#2103#, 16#2103#), -- DEGREE CELSIUS + (16#2105#, 16#2106#), -- CARE OF..CADA UNA + (16#2107#, 16#2107#), -- EULER CONSTANT + (16#2109#, 16#2109#), -- DEGREE FAHRENHEIT + (16#210A#, 16#2113#), -- SCRIPT SMALL G..SCRIPT SMALL L + (16#2115#, 16#2115#), -- DOUBLE-STRUCK CAPITAL N + (16#2116#, 16#2116#), -- NUMERO SIGN + (16#2119#, 16#211D#), -- DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R + (16#2120#, 16#2122#), -- SERVICE MARK..TRADE MARK SIGN + (16#2124#, 16#2124#), -- DOUBLE-STRUCK CAPITAL Z + (16#2126#, 16#2126#), -- OHM SIGN + (16#2128#, 16#2128#), -- BLACK-LETTER CAPITAL Z + (16#212A#, 16#212D#), -- KELVIN SIGN..BLACK-LETTER CAPITAL C + (16#212F#, 16#2131#), -- SCRIPT SMALL E..SCRIPT CAPITAL F + (16#2133#, 16#2134#), -- SCRIPT CAPITAL M..SCRIPT SMALL O + (16#2135#, 16#2138#), -- ALEF SYMBOL..DALET SYMBOL + (16#2139#, 16#2139#), -- INFORMATION SOURCE + (16#213B#, 16#213B#), -- FACSIMILE SIGN + (16#213C#, 16#213F#), -- DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI + (16#2140#, 16#2140#), -- DOUBLE-STRUCK N-ARY SUMMATION + (16#2145#, 16#2149#), -- DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J + (16#2150#, 16#215F#), -- VULGAR FRACTION ONE SEVENTH..FRACTION NUMERATOR ONE + (16#2160#, 16#217F#), -- ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND + (16#2189#, 16#2189#), -- VULGAR FRACTION ZERO THIRDS + (16#222C#, 16#222D#), -- DOUBLE INTEGRAL..TRIPLE INTEGRAL + (16#222F#, 16#2230#), -- SURFACE INTEGRAL..VOLUME INTEGRAL + (16#2329#, 16#2329#), -- LEFT-POINTING ANGLE BRACKET + (16#232A#, 16#232A#), -- RIGHT-POINTING ANGLE BRACKET + (16#2460#, 16#249B#), -- CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP + (16#249C#, 16#24E9#), -- PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z + (16#24EA#, 16#24EA#), -- CIRCLED DIGIT ZERO + (16#2A0C#, 16#2A0C#), -- QUADRUPLE INTEGRAL OPERATOR + (16#2A74#, 16#2A76#), -- DOUBLE COLON EQUAL..THREE CONSECUTIVE EQUALS SIGNS + (16#2ADC#, 16#2ADC#), -- FORKING + (16#2C7C#, 16#2C7D#), -- LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V + (16#2D6F#, 16#2D6F#), -- TIFINAGH MODIFIER LETTER LABIALIZATION MARK + (16#2E9F#, 16#2E9F#), -- CJK RADICAL MOTHER + (16#2EF3#, 16#2EF3#), -- CJK RADICAL C-SIMPLIFIED TURTLE + (16#2F00#, 16#2FD5#), -- KANGXI RADICAL ONE..KANGXI RADICAL FLUTE + (16#3000#, 16#3000#), -- IDEOGRAPHIC SPACE + (16#3036#, 16#3036#), -- CIRCLED POSTAL MARK + (16#3038#, 16#303A#), -- HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY + (16#309B#, 16#309C#), -- KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK + (16#309F#, 16#309F#), -- HIRAGANA DIGRAPH YORI + (16#30FF#, 16#30FF#), -- KATAKANA DIGRAPH KOTO + (16#3131#, 16#318E#), -- HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE + (16#3192#, 16#3195#), -- IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK + (16#3196#, 16#319F#), -- IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK + (16#3200#, 16#321E#), -- PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU + (16#3220#, 16#3229#), -- PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN + (16#322A#, 16#3247#), -- PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO + (16#3250#, 16#3250#), -- PARTNERSHIP SIGN + (16#3251#, 16#325F#), -- CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE + (16#3260#, 16#327E#), -- CIRCLED HANGUL KIYEOK..CIRCLED HANGUL IEUNG U + (16#3280#, 16#3289#), -- CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN + (16#328A#, 16#32B0#), -- CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT + (16#32B1#, 16#32BF#), -- CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY + (16#32C0#, 16#33FF#), -- IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL + (16#A69C#, 16#A69D#), -- MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN + (16#A770#, 16#A770#), -- MODIFIER LETTER US + (16#A7F8#, 16#A7F9#), -- MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE + (16#AB5C#, 16#AB5F#), -- MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK + (16#AB69#, 16#AB69#), -- MODIFIER LETTER SMALL TURNED W + (16#F900#, 16#FA0D#), -- CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D + (16#FA10#, 16#FA10#), -- CJK COMPATIBILITY IDEOGRAPH-FA10 + (16#FA12#, 16#FA12#), -- CJK COMPATIBILITY IDEOGRAPH-FA12 + (16#FA15#, 16#FA1E#), -- CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPATIBILITY IDEOGRAPH-FA1E + (16#FA20#, 16#FA20#), -- CJK COMPATIBILITY IDEOGRAPH-FA20 + (16#FA22#, 16#FA22#), -- CJK COMPATIBILITY IDEOGRAPH-FA22 + (16#FA25#, 16#FA26#), -- CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPATIBILITY IDEOGRAPH-FA26 + (16#FA2A#, 16#FA6D#), -- CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPATIBILITY IDEOGRAPH-FA6D + (16#FA70#, 16#FAD9#), -- CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 + (16#FB00#, 16#FB06#), -- LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST + (16#FB13#, 16#FB17#), -- ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH + (16#FB1D#, 16#FB1D#), -- HEBREW LETTER YOD WITH HIRIQ + (16#FB1F#, 16#FB28#), -- HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV + (16#FB29#, 16#FB29#), -- HEBREW LETTER ALTERNATIVE PLUS SIGN + (16#FB2A#, 16#FB36#), -- HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH + (16#FB38#, 16#FB3C#), -- HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH + (16#FB3E#, 16#FB3E#), -- HEBREW LETTER MEM WITH DAGESH + (16#FB40#, 16#FB41#), -- HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH + (16#FB43#, 16#FB44#), -- HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH + (16#FB46#, 16#FBB1#), -- HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM + (16#FBD3#, 16#FD3D#), -- ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM + (16#FD50#, 16#FD8F#), -- ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM + (16#FD92#, 16#FDC7#), -- ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM + (16#FDF0#, 16#FDFB#), -- ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU + (16#FDFC#, 16#FDFC#), -- RIAL SIGN + (16#FE10#, 16#FE16#), -- PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK + (16#FE17#, 16#FE17#), -- PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET + (16#FE18#, 16#FE18#), -- PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET + (16#FE19#, 16#FE19#), -- PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS + (16#FE30#, 16#FE30#), -- PRESENTATION FORM FOR VERTICAL TWO DOT LEADER + (16#FE31#, 16#FE32#), -- PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH + (16#FE33#, 16#FE34#), -- PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE + (16#FE35#, 16#FE35#), -- PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS + (16#FE36#, 16#FE36#), -- PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS + (16#FE37#, 16#FE37#), -- PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET + (16#FE38#, 16#FE38#), -- PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET + (16#FE39#, 16#FE39#), -- PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET + (16#FE3A#, 16#FE3A#), -- PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET + (16#FE3B#, 16#FE3B#), -- PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET + (16#FE3C#, 16#FE3C#), -- PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET + (16#FE3D#, 16#FE3D#), -- PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET + (16#FE3E#, 16#FE3E#), -- PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET + (16#FE3F#, 16#FE3F#), -- PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET + (16#FE40#, 16#FE40#), -- PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET + (16#FE41#, 16#FE41#), -- PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET + (16#FE42#, 16#FE42#), -- PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET + (16#FE43#, 16#FE43#), -- PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET + (16#FE44#, 16#FE44#), -- PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET + (16#FE47#, 16#FE47#), -- PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET + (16#FE48#, 16#FE48#), -- PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET + (16#FE49#, 16#FE4C#), -- DASHED OVERLINE..DOUBLE WAVY OVERLINE + (16#FE4D#, 16#FE4F#), -- DASHED LOW LINE..WAVY LOW LINE + (16#FE50#, 16#FE52#), -- SMALL COMMA..SMALL FULL STOP + (16#FE54#, 16#FE57#), -- SMALL SEMICOLON..SMALL EXCLAMATION MARK + (16#FE58#, 16#FE58#), -- SMALL EM DASH + (16#FE59#, 16#FE59#), -- SMALL LEFT PARENTHESIS + (16#FE5A#, 16#FE5A#), -- SMALL RIGHT PARENTHESIS + (16#FE5B#, 16#FE5B#), -- SMALL LEFT CURLY BRACKET + (16#FE5C#, 16#FE5C#), -- SMALL RIGHT CURLY BRACKET + (16#FE5D#, 16#FE5D#), -- SMALL LEFT TORTOISE SHELL BRACKET + (16#FE5E#, 16#FE5E#), -- SMALL RIGHT TORTOISE SHELL BRACKET + (16#FE5F#, 16#FE61#), -- SMALL NUMBER SIGN..SMALL ASTERISK + (16#FE62#, 16#FE62#), -- SMALL PLUS SIGN + (16#FE63#, 16#FE63#), -- SMALL HYPHEN-MINUS + (16#FE64#, 16#FE66#), -- SMALL LESS-THAN SIGN..SMALL EQUALS SIGN + (16#FE68#, 16#FE68#), -- SMALL REVERSE SOLIDUS + (16#FE69#, 16#FE69#), -- SMALL DOLLAR SIGN + (16#FE6A#, 16#FE6B#), -- SMALL PERCENT SIGN..SMALL COMMERCIAL AT + (16#FE70#, 16#FE72#), -- ARABIC FATHATAN ISOLATED FORM..ARABIC DAMMATAN ISOLATED FORM + (16#FE74#, 16#FE74#), -- ARABIC KASRATAN ISOLATED FORM + (16#FE76#, 16#FEFC#), -- ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM + (16#FF01#, 16#FF03#), -- FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN + (16#FF04#, 16#FF04#), -- FULLWIDTH DOLLAR SIGN + (16#FF05#, 16#FF07#), -- FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE + (16#FF08#, 16#FF08#), -- FULLWIDTH LEFT PARENTHESIS + (16#FF09#, 16#FF09#), -- FULLWIDTH RIGHT PARENTHESIS + (16#FF0A#, 16#FF0A#), -- FULLWIDTH ASTERISK + (16#FF0B#, 16#FF0B#), -- FULLWIDTH PLUS SIGN + (16#FF0C#, 16#FF0C#), -- FULLWIDTH COMMA + (16#FF0D#, 16#FF0D#), -- FULLWIDTH HYPHEN-MINUS + (16#FF0E#, 16#FF0F#), -- FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS + (16#FF10#, 16#FF19#), -- FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE + (16#FF1A#, 16#FF1B#), -- FULLWIDTH COLON..FULLWIDTH SEMICOLON + (16#FF1C#, 16#FF1E#), -- FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN + (16#FF1F#, 16#FF20#), -- FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT + (16#FF21#, 16#FF3A#), -- FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z + (16#FF3B#, 16#FF3B#), -- FULLWIDTH LEFT SQUARE BRACKET + (16#FF3C#, 16#FF3C#), -- FULLWIDTH REVERSE SOLIDUS + (16#FF3D#, 16#FF3D#), -- FULLWIDTH RIGHT SQUARE BRACKET + (16#FF3E#, 16#FF3E#), -- FULLWIDTH CIRCUMFLEX ACCENT + (16#FF3F#, 16#FF3F#), -- FULLWIDTH LOW LINE + (16#FF40#, 16#FF40#), -- FULLWIDTH GRAVE ACCENT + (16#FF41#, 16#FF5A#), -- FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z + (16#FF5B#, 16#FF5B#), -- FULLWIDTH LEFT CURLY BRACKET + (16#FF5C#, 16#FF5C#), -- FULLWIDTH VERTICAL LINE + (16#FF5D#, 16#FF5D#), -- FULLWIDTH RIGHT CURLY BRACKET + (16#FF5E#, 16#FF5E#), -- FULLWIDTH TILDE + (16#FF5F#, 16#FF5F#), -- FULLWIDTH LEFT WHITE PARENTHESIS + (16#FF60#, 16#FF60#), -- FULLWIDTH RIGHT WHITE PARENTHESIS + (16#FF61#, 16#FF61#), -- HALFWIDTH IDEOGRAPHIC FULL STOP + (16#FF62#, 16#FF62#), -- HALFWIDTH LEFT CORNER BRACKET + (16#FF63#, 16#FF63#), -- HALFWIDTH RIGHT CORNER BRACKET + (16#FF64#, 16#FF65#), -- HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT + (16#FF66#, 16#FF6F#), -- HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU + (16#FF70#, 16#FF70#), -- HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK + (16#FF71#, 16#FF9D#), -- HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N + (16#FF9E#, 16#FF9F#), -- HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK + (16#FFA0#, 16#FFBE#), -- HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH + (16#FFC2#, 16#FFC7#), -- HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E + (16#FFCA#, 16#FFCF#), -- HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE + (16#FFD2#, 16#FFD7#), -- HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU + (16#FFDA#, 16#FFDC#), -- HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I + (16#FFE0#, 16#FFE1#), -- FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN + (16#FFE2#, 16#FFE2#), -- FULLWIDTH NOT SIGN + (16#FFE3#, 16#FFE3#), -- FULLWIDTH MACRON + (16#FFE4#, 16#FFE4#), -- FULLWIDTH BROKEN BAR + (16#FFE5#, 16#FFE6#), -- FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN + (16#FFE8#, 16#FFE8#), -- HALFWIDTH FORMS LIGHT VERTICAL + (16#FFE9#, 16#FFEC#), -- HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW + (16#FFED#, 16#FFEE#), -- HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE + (16#1D15E#, 16#1D164#), -- MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE + (16#1D1BB#, 16#1D1C0#), -- MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK + (16#1D400#, 16#1D454#), -- MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G + (16#1D456#, 16#1D49C#), -- MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A + (16#1D49E#, 16#1D49F#), -- MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D + (16#1D4A2#, 16#1D4A2#), -- MATHEMATICAL SCRIPT CAPITAL G + (16#1D4A5#, 16#1D4A6#), -- MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K + (16#1D4A9#, 16#1D4AC#), -- MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q + (16#1D4AE#, 16#1D4B9#), -- MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D + (16#1D4BB#, 16#1D4BB#), -- MATHEMATICAL SCRIPT SMALL F + (16#1D4BD#, 16#1D4C3#), -- MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N + (16#1D4C5#, 16#1D505#), -- MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B + (16#1D507#, 16#1D50A#), -- MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G + (16#1D50D#, 16#1D514#), -- MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q + (16#1D516#, 16#1D51C#), -- MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y + (16#1D51E#, 16#1D539#), -- MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B + (16#1D53B#, 16#1D53E#), -- MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G + (16#1D540#, 16#1D544#), -- MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M + (16#1D546#, 16#1D546#), -- MATHEMATICAL DOUBLE-STRUCK CAPITAL O + (16#1D54A#, 16#1D550#), -- MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y + (16#1D552#, 16#1D6A5#), -- MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J + (16#1D6A8#, 16#1D6C0#), -- MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA + (16#1D6C1#, 16#1D6C1#), -- MATHEMATICAL BOLD NABLA + (16#1D6C2#, 16#1D6DA#), -- MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA + (16#1D6DB#, 16#1D6DB#), -- MATHEMATICAL BOLD PARTIAL DIFFERENTIAL + (16#1D6DC#, 16#1D6FA#), -- MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA + (16#1D6FB#, 16#1D6FB#), -- MATHEMATICAL ITALIC NABLA + (16#1D6FC#, 16#1D714#), -- MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA + (16#1D715#, 16#1D715#), -- MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL + (16#1D716#, 16#1D734#), -- MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA + (16#1D735#, 16#1D735#), -- MATHEMATICAL BOLD ITALIC NABLA + (16#1D736#, 16#1D74E#), -- MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA + (16#1D74F#, 16#1D74F#), -- MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL + (16#1D750#, 16#1D76E#), -- MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA + (16#1D76F#, 16#1D76F#), -- MATHEMATICAL SANS-SERIF BOLD NABLA + (16#1D770#, 16#1D788#), -- MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA + (16#1D789#, 16#1D789#), -- MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL + (16#1D78A#, 16#1D7A8#), -- MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA + (16#1D7A9#, 16#1D7A9#), -- MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA + (16#1D7AA#, 16#1D7C2#), -- MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA + (16#1D7C3#, 16#1D7C3#), -- MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL + (16#1D7C4#, 16#1D7CB#), -- MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA + (16#1D7CE#, 16#1D7FF#), -- MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE + (16#1EE00#, 16#1EE03#), -- ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL + (16#1EE05#, 16#1EE1F#), -- ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF + (16#1EE21#, 16#1EE22#), -- ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM + (16#1EE24#, 16#1EE24#), -- ARABIC MATHEMATICAL INITIAL HEH + (16#1EE27#, 16#1EE27#), -- ARABIC MATHEMATICAL INITIAL HAH + (16#1EE29#, 16#1EE32#), -- ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF + (16#1EE34#, 16#1EE37#), -- ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH + (16#1EE39#, 16#1EE39#), -- ARABIC MATHEMATICAL INITIAL DAD + (16#1EE3B#, 16#1EE3B#), -- ARABIC MATHEMATICAL INITIAL GHAIN + (16#1EE42#, 16#1EE42#), -- ARABIC MATHEMATICAL TAILED JEEM + (16#1EE47#, 16#1EE47#), -- ARABIC MATHEMATICAL TAILED HAH + (16#1EE49#, 16#1EE49#), -- ARABIC MATHEMATICAL TAILED YEH + (16#1EE4B#, 16#1EE4B#), -- ARABIC MATHEMATICAL TAILED LAM + (16#1EE4D#, 16#1EE4F#), -- ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN + (16#1EE51#, 16#1EE52#), -- ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF + (16#1EE54#, 16#1EE54#), -- ARABIC MATHEMATICAL TAILED SHEEN + (16#1EE57#, 16#1EE57#), -- ARABIC MATHEMATICAL TAILED KHAH + (16#1EE59#, 16#1EE59#), -- ARABIC MATHEMATICAL TAILED DAD + (16#1EE5B#, 16#1EE5B#), -- ARABIC MATHEMATICAL TAILED GHAIN + (16#1EE5D#, 16#1EE5D#), -- ARABIC MATHEMATICAL TAILED DOTLESS NOON + (16#1EE5F#, 16#1EE5F#), -- ARABIC MATHEMATICAL TAILED DOTLESS QAF + (16#1EE61#, 16#1EE62#), -- ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM + (16#1EE64#, 16#1EE64#), -- ARABIC MATHEMATICAL STRETCHED HEH + (16#1EE67#, 16#1EE6A#), -- ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF + (16#1EE6C#, 16#1EE72#), -- ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF + (16#1EE74#, 16#1EE77#), -- ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH + (16#1EE79#, 16#1EE7C#), -- ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH + (16#1EE7E#, 16#1EE7E#), -- ARABIC MATHEMATICAL STRETCHED DOTLESS FEH + (16#1EE80#, 16#1EE89#), -- ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH + (16#1EE8B#, 16#1EE9B#), -- ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN + (16#1EEA1#, 16#1EEA3#), -- ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL + (16#1EEA5#, 16#1EEA9#), -- ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH + (16#1EEAB#, 16#1EEBB#), -- ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN + (16#1F100#, 16#1F10A#), -- DIGIT ZERO FULL STOP..DIGIT NINE COMMA + (16#1F110#, 16#1F12E#), -- PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ + (16#1F130#, 16#1F14F#), -- SQUARED LATIN CAPITAL LETTER A..SQUARED WC + (16#1F16A#, 16#1F16C#), -- RAISED MC SIGN..RAISED MR SIGN + (16#1F190#, 16#1F190#), -- SQUARE DJ + (16#1F200#, 16#1F202#), -- SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA + (16#1F210#, 16#1F23B#), -- SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D + (16#1F240#, 16#1F248#), -- TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557 + (16#1F250#, 16#1F251#), -- CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT + (16#1FBF0#, 16#1FBF9#), -- SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE + (16#2F800#, 16#2FA1D#)); -- CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D + + pragma Warnings (On); + -- Temporary until pragma Warnings at start can be activated ??? + + type Decomposition_Mapping is record + Item : UTF_32; + First_Char_Mapping : UTF_32; + end record; + -- Item is a UTF_32 character with a decomposition mapping. + -- First_Char_Mapping is the first UTF_32 character of the decomposition + -- mapping of Item. + + type Unicode_Decomposition_Array is + array (Positive range <>) of Decomposition_Mapping; + + Unicode_Decomposition : constant Unicode_Decomposition_Array := ( + (16#00A0#, 16#0020#), + (16#00A8#, 16#0020#), + (16#00AA#, 16#0061#), + (16#00AF#, 16#0020#), + (16#00B2#, 16#0032#), + (16#00B3#, 16#0033#), + (16#00B4#, 16#0020#), + (16#00B5#, 16#03BC#), + (16#00B8#, 16#0020#), + (16#00B9#, 16#0031#), + (16#00BA#, 16#006F#), + (16#00BC#, 16#0031#), + (16#00BD#, 16#0031#), + (16#00BE#, 16#0033#), + (16#00C0#, 16#0041#), + (16#00C1#, 16#0041#), + (16#00C2#, 16#0041#), + (16#00C3#, 16#0041#), + (16#00C4#, 16#0041#), + (16#00C5#, 16#0041#), + (16#00C7#, 16#0043#), + (16#00C8#, 16#0045#), + (16#00C9#, 16#0045#), + (16#00CA#, 16#0045#), + (16#00CB#, 16#0045#), + (16#00CC#, 16#0049#), + (16#00CD#, 16#0049#), + (16#00CE#, 16#0049#), + (16#00CF#, 16#0049#), + (16#00D1#, 16#004E#), + (16#00D2#, 16#004F#), + (16#00D3#, 16#004F#), + (16#00D4#, 16#004F#), + (16#00D5#, 16#004F#), + (16#00D6#, 16#004F#), + (16#00D9#, 16#0055#), + (16#00DA#, 16#0055#), + (16#00DB#, 16#0055#), + (16#00DC#, 16#0055#), + (16#00DD#, 16#0059#), + (16#00E0#, 16#0061#), + (16#00E1#, 16#0061#), + (16#00E2#, 16#0061#), + (16#00E3#, 16#0061#), + (16#00E4#, 16#0061#), + (16#00E5#, 16#0061#), + (16#00E7#, 16#0063#), + (16#00E8#, 16#0065#), + (16#00E9#, 16#0065#), + (16#00EA#, 16#0065#), + (16#00EB#, 16#0065#), + (16#00EC#, 16#0069#), + (16#00ED#, 16#0069#), + (16#00EE#, 16#0069#), + (16#00EF#, 16#0069#), + (16#00F1#, 16#006E#), + (16#00F2#, 16#006F#), + (16#00F3#, 16#006F#), + (16#00F4#, 16#006F#), + (16#00F5#, 16#006F#), + (16#00F6#, 16#006F#), + (16#00F9#, 16#0075#), + (16#00FA#, 16#0075#), + (16#00FB#, 16#0075#), + (16#00FC#, 16#0075#), + (16#00FD#, 16#0079#), + (16#00FF#, 16#0079#), + (16#0100#, 16#0041#), + (16#0101#, 16#0061#), + (16#0102#, 16#0041#), + (16#0103#, 16#0061#), + (16#0104#, 16#0041#), + (16#0105#, 16#0061#), + (16#0106#, 16#0043#), + (16#0107#, 16#0063#), + (16#0108#, 16#0043#), + (16#0109#, 16#0063#), + (16#010A#, 16#0043#), + (16#010B#, 16#0063#), + (16#010C#, 16#0043#), + (16#010D#, 16#0063#), + (16#010E#, 16#0044#), + (16#010F#, 16#0064#), + (16#0112#, 16#0045#), + (16#0113#, 16#0065#), + (16#0114#, 16#0045#), + (16#0115#, 16#0065#), + (16#0116#, 16#0045#), + (16#0117#, 16#0065#), + (16#0118#, 16#0045#), + (16#0119#, 16#0065#), + (16#011A#, 16#0045#), + (16#011B#, 16#0065#), + (16#011C#, 16#0047#), + (16#011D#, 16#0067#), + (16#011E#, 16#0047#), + (16#011F#, 16#0067#), + (16#0120#, 16#0047#), + (16#0121#, 16#0067#), + (16#0122#, 16#0047#), + (16#0123#, 16#0067#), + (16#0124#, 16#0048#), + (16#0125#, 16#0068#), + (16#0128#, 16#0049#), + (16#0129#, 16#0069#), + (16#012A#, 16#0049#), + (16#012B#, 16#0069#), + (16#012C#, 16#0049#), + (16#012D#, 16#0069#), + (16#012E#, 16#0049#), + (16#012F#, 16#0069#), + (16#0130#, 16#0049#), + (16#0132#, 16#0049#), + (16#0133#, 16#0069#), + (16#0134#, 16#004A#), + (16#0135#, 16#006A#), + (16#0136#, 16#004B#), + (16#0137#, 16#006B#), + (16#0139#, 16#004C#), + (16#013A#, 16#006C#), + (16#013B#, 16#004C#), + (16#013C#, 16#006C#), + (16#013D#, 16#004C#), + (16#013E#, 16#006C#), + (16#013F#, 16#004C#), + (16#0140#, 16#006C#), + (16#0143#, 16#004E#), + (16#0144#, 16#006E#), + (16#0145#, 16#004E#), + (16#0146#, 16#006E#), + (16#0147#, 16#004E#), + (16#0148#, 16#006E#), + (16#0149#, 16#02BC#), + (16#014C#, 16#004F#), + (16#014D#, 16#006F#), + (16#014E#, 16#004F#), + (16#014F#, 16#006F#), + (16#0150#, 16#004F#), + (16#0151#, 16#006F#), + (16#0154#, 16#0052#), + (16#0155#, 16#0072#), + (16#0156#, 16#0052#), + (16#0157#, 16#0072#), + (16#0158#, 16#0052#), + (16#0159#, 16#0072#), + (16#015A#, 16#0053#), + (16#015B#, 16#0073#), + (16#015C#, 16#0053#), + (16#015D#, 16#0073#), + (16#015E#, 16#0053#), + (16#015F#, 16#0073#), + (16#0160#, 16#0053#), + (16#0161#, 16#0073#), + (16#0162#, 16#0054#), + (16#0163#, 16#0074#), + (16#0164#, 16#0054#), + (16#0165#, 16#0074#), + (16#0168#, 16#0055#), + (16#0169#, 16#0075#), + (16#016A#, 16#0055#), + (16#016B#, 16#0075#), + (16#016C#, 16#0055#), + (16#016D#, 16#0075#), + (16#016E#, 16#0055#), + (16#016F#, 16#0075#), + (16#0170#, 16#0055#), + (16#0171#, 16#0075#), + (16#0172#, 16#0055#), + (16#0173#, 16#0075#), + (16#0174#, 16#0057#), + (16#0175#, 16#0077#), + (16#0176#, 16#0059#), + (16#0177#, 16#0079#), + (16#0178#, 16#0059#), + (16#0179#, 16#005A#), + (16#017A#, 16#007A#), + (16#017B#, 16#005A#), + (16#017C#, 16#007A#), + (16#017D#, 16#005A#), + (16#017E#, 16#007A#), + (16#017F#, 16#0073#), + (16#01A0#, 16#004F#), + (16#01A1#, 16#006F#), + (16#01AF#, 16#0055#), + (16#01B0#, 16#0075#), + (16#01C4#, 16#0044#), + (16#01C5#, 16#0044#), + (16#01C6#, 16#0064#), + (16#01C7#, 16#004C#), + (16#01C8#, 16#004C#), + (16#01C9#, 16#006C#), + (16#01CA#, 16#004E#), + (16#01CB#, 16#004E#), + (16#01CC#, 16#006E#), + (16#01CD#, 16#0041#), + (16#01CE#, 16#0061#), + (16#01CF#, 16#0049#), + (16#01D0#, 16#0069#), + (16#01D1#, 16#004F#), + (16#01D2#, 16#006F#), + (16#01D3#, 16#0055#), + (16#01D4#, 16#0075#), + (16#01D5#, 16#00DC#), + (16#01D6#, 16#00FC#), + (16#01D7#, 16#00DC#), + (16#01D8#, 16#00FC#), + (16#01D9#, 16#00DC#), + (16#01DA#, 16#00FC#), + (16#01DB#, 16#00DC#), + (16#01DC#, 16#00FC#), + (16#01DE#, 16#00C4#), + (16#01DF#, 16#00E4#), + (16#01E0#, 16#0226#), + (16#01E1#, 16#0227#), + (16#01E2#, 16#00C6#), + (16#01E3#, 16#00E6#), + (16#01E6#, 16#0047#), + (16#01E7#, 16#0067#), + (16#01E8#, 16#004B#), + (16#01E9#, 16#006B#), + (16#01EA#, 16#004F#), + (16#01EB#, 16#006F#), + (16#01EC#, 16#01EA#), + (16#01ED#, 16#01EB#), + (16#01EE#, 16#01B7#), + (16#01EF#, 16#0292#), + (16#01F0#, 16#006A#), + (16#01F1#, 16#0044#), + (16#01F2#, 16#0044#), + (16#01F3#, 16#0064#), + (16#01F4#, 16#0047#), + (16#01F5#, 16#0067#), + (16#01F8#, 16#004E#), + (16#01F9#, 16#006E#), + (16#01FA#, 16#00C5#), + (16#01FB#, 16#00E5#), + (16#01FC#, 16#00C6#), + (16#01FD#, 16#00E6#), + (16#01FE#, 16#00D8#), + (16#01FF#, 16#00F8#), + (16#0200#, 16#0041#), + (16#0201#, 16#0061#), + (16#0202#, 16#0041#), + (16#0203#, 16#0061#), + (16#0204#, 16#0045#), + (16#0205#, 16#0065#), + (16#0206#, 16#0045#), + (16#0207#, 16#0065#), + (16#0208#, 16#0049#), + (16#0209#, 16#0069#), + (16#020A#, 16#0049#), + (16#020B#, 16#0069#), + (16#020C#, 16#004F#), + (16#020D#, 16#006F#), + (16#020E#, 16#004F#), + (16#020F#, 16#006F#), + (16#0210#, 16#0052#), + (16#0211#, 16#0072#), + (16#0212#, 16#0052#), + (16#0213#, 16#0072#), + (16#0214#, 16#0055#), + (16#0215#, 16#0075#), + (16#0216#, 16#0055#), + (16#0217#, 16#0075#), + (16#0218#, 16#0053#), + (16#0219#, 16#0073#), + (16#021A#, 16#0054#), + (16#021B#, 16#0074#), + (16#021E#, 16#0048#), + (16#021F#, 16#0068#), + (16#0226#, 16#0041#), + (16#0227#, 16#0061#), + (16#0228#, 16#0045#), + (16#0229#, 16#0065#), + (16#022A#, 16#00D6#), + (16#022B#, 16#00F6#), + (16#022C#, 16#00D5#), + (16#022D#, 16#00F5#), + (16#022E#, 16#004F#), + (16#022F#, 16#006F#), + (16#0230#, 16#022E#), + (16#0231#, 16#022F#), + (16#0232#, 16#0059#), + (16#0233#, 16#0079#), + (16#02B0#, 16#0068#), + (16#02B1#, 16#0266#), + (16#02B2#, 16#006A#), + (16#02B3#, 16#0072#), + (16#02B4#, 16#0279#), + (16#02B5#, 16#027B#), + (16#02B6#, 16#0281#), + (16#02B7#, 16#0077#), + (16#02B8#, 16#0079#), + (16#02D8#, 16#0020#), + (16#02D9#, 16#0020#), + (16#02DA#, 16#0020#), + (16#02DB#, 16#0020#), + (16#02DC#, 16#0020#), + (16#02DD#, 16#0020#), + (16#02E0#, 16#0263#), + (16#02E1#, 16#006C#), + (16#02E2#, 16#0073#), + (16#02E3#, 16#0078#), + (16#02E4#, 16#0295#), + (16#0340#, 16#0300#), + (16#0341#, 16#0301#), + (16#0343#, 16#0313#), + (16#0344#, 16#0308#), + (16#0374#, 16#02B9#), + (16#037A#, 16#0020#), + (16#037E#, 16#003B#), + (16#0384#, 16#0020#), + (16#0385#, 16#00A8#), + (16#0386#, 16#0391#), + (16#0387#, 16#00B7#), + (16#0388#, 16#0395#), + (16#0389#, 16#0397#), + (16#038A#, 16#0399#), + (16#038C#, 16#039F#), + (16#038E#, 16#03A5#), + (16#038F#, 16#03A9#), + (16#0390#, 16#03CA#), + (16#03AA#, 16#0399#), + (16#03AB#, 16#03A5#), + (16#03AC#, 16#03B1#), + (16#03AD#, 16#03B5#), + (16#03AE#, 16#03B7#), + (16#03AF#, 16#03B9#), + (16#03B0#, 16#03CB#), + (16#03CA#, 16#03B9#), + (16#03CB#, 16#03C5#), + (16#03CC#, 16#03BF#), + (16#03CD#, 16#03C5#), + (16#03CE#, 16#03C9#), + (16#03D0#, 16#03B2#), + (16#03D1#, 16#03B8#), + (16#03D2#, 16#03A5#), + (16#03D3#, 16#03D2#), + (16#03D4#, 16#03D2#), + (16#03D5#, 16#03C6#), + (16#03D6#, 16#03C0#), + (16#03F0#, 16#03BA#), + (16#03F1#, 16#03C1#), + (16#03F2#, 16#03C2#), + (16#03F4#, 16#0398#), + (16#03F5#, 16#03B5#), + (16#03F9#, 16#03A3#), + (16#0400#, 16#0415#), + (16#0401#, 16#0415#), + (16#0403#, 16#0413#), + (16#0407#, 16#0406#), + (16#040C#, 16#041A#), + (16#040D#, 16#0418#), + (16#040E#, 16#0423#), + (16#0419#, 16#0418#), + (16#0439#, 16#0438#), + (16#0450#, 16#0435#), + (16#0451#, 16#0435#), + (16#0453#, 16#0433#), + (16#0457#, 16#0456#), + (16#045C#, 16#043A#), + (16#045D#, 16#0438#), + (16#045E#, 16#0443#), + (16#0476#, 16#0474#), + (16#0477#, 16#0475#), + (16#04C1#, 16#0416#), + (16#04C2#, 16#0436#), + (16#04D0#, 16#0410#), + (16#04D1#, 16#0430#), + (16#04D2#, 16#0410#), + (16#04D3#, 16#0430#), + (16#04D6#, 16#0415#), + (16#04D7#, 16#0435#), + (16#04DA#, 16#04D8#), + (16#04DB#, 16#04D9#), + (16#04DC#, 16#0416#), + (16#04DD#, 16#0436#), + (16#04DE#, 16#0417#), + (16#04DF#, 16#0437#), + (16#04E2#, 16#0418#), + (16#04E3#, 16#0438#), + (16#04E4#, 16#0418#), + (16#04E5#, 16#0438#), + (16#04E6#, 16#041E#), + (16#04E7#, 16#043E#), + (16#04EA#, 16#04E8#), + (16#04EB#, 16#04E9#), + (16#04EC#, 16#042D#), + (16#04ED#, 16#044D#), + (16#04EE#, 16#0423#), + (16#04EF#, 16#0443#), + (16#04F0#, 16#0423#), + (16#04F1#, 16#0443#), + (16#04F2#, 16#0423#), + (16#04F3#, 16#0443#), + (16#04F4#, 16#0427#), + (16#04F5#, 16#0447#), + (16#04F8#, 16#042B#), + (16#04F9#, 16#044B#), + (16#0587#, 16#0565#), + (16#0622#, 16#0627#), + (16#0623#, 16#0627#), + (16#0624#, 16#0648#), + (16#0625#, 16#0627#), + (16#0626#, 16#064A#), + (16#0675#, 16#0627#), + (16#0676#, 16#0648#), + (16#0677#, 16#06C7#), + (16#0678#, 16#064A#), + (16#06C0#, 16#06D5#), + (16#06C2#, 16#06C1#), + (16#06D3#, 16#06D2#), + (16#0929#, 16#0928#), + (16#0931#, 16#0930#), + (16#0934#, 16#0933#), + (16#0958#, 16#0915#), + (16#0959#, 16#0916#), + (16#095A#, 16#0917#), + (16#095B#, 16#091C#), + (16#095C#, 16#0921#), + (16#095D#, 16#0922#), + (16#095E#, 16#092B#), + (16#095F#, 16#092F#), + (16#09CB#, 16#09C7#), + (16#09CC#, 16#09C7#), + (16#09DC#, 16#09A1#), + (16#09DD#, 16#09A2#), + (16#09DF#, 16#09AF#), + (16#0A33#, 16#0A32#), + (16#0A36#, 16#0A38#), + (16#0A59#, 16#0A16#), + (16#0A5A#, 16#0A17#), + (16#0A5B#, 16#0A1C#), + (16#0A5E#, 16#0A2B#), + (16#0B48#, 16#0B47#), + (16#0B4B#, 16#0B47#), + (16#0B4C#, 16#0B47#), + (16#0B5C#, 16#0B21#), + (16#0B5D#, 16#0B22#), + (16#0B94#, 16#0B92#), + (16#0BCA#, 16#0BC6#), + (16#0BCB#, 16#0BC7#), + (16#0BCC#, 16#0BC6#), + (16#0C48#, 16#0C46#), + (16#0CC0#, 16#0CBF#), + (16#0CC7#, 16#0CC6#), + (16#0CC8#, 16#0CC6#), + (16#0CCA#, 16#0CC6#), + (16#0CCB#, 16#0CCA#), + (16#0D4A#, 16#0D46#), + (16#0D4B#, 16#0D47#), + (16#0D4C#, 16#0D46#), + (16#0DDA#, 16#0DD9#), + (16#0DDC#, 16#0DD9#), + (16#0DDD#, 16#0DDC#), + (16#0DDE#, 16#0DD9#), + (16#0E33#, 16#0E4D#), + (16#0EB3#, 16#0ECD#), + (16#0EDC#, 16#0EAB#), + (16#0EDD#, 16#0EAB#), + (16#0F0C#, 16#0F0B#), + (16#0F43#, 16#0F42#), + (16#0F4D#, 16#0F4C#), + (16#0F52#, 16#0F51#), + (16#0F57#, 16#0F56#), + (16#0F5C#, 16#0F5B#), + (16#0F69#, 16#0F40#), + (16#0F73#, 16#0F71#), + (16#0F75#, 16#0F71#), + (16#0F76#, 16#0FB2#), + (16#0F77#, 16#0FB2#), + (16#0F78#, 16#0FB3#), + (16#0F79#, 16#0FB3#), + (16#0F81#, 16#0F71#), + (16#0F93#, 16#0F92#), + (16#0F9D#, 16#0F9C#), + (16#0FA2#, 16#0FA1#), + (16#0FA7#, 16#0FA6#), + (16#0FAC#, 16#0FAB#), + (16#0FB9#, 16#0F90#), + (16#1026#, 16#1025#), + (16#10FC#, 16#10DC#), + (16#1B06#, 16#1B05#), + (16#1B08#, 16#1B07#), + (16#1B0A#, 16#1B09#), + (16#1B0C#, 16#1B0B#), + (16#1B0E#, 16#1B0D#), + (16#1B12#, 16#1B11#), + (16#1B3B#, 16#1B3A#), + (16#1B3D#, 16#1B3C#), + (16#1B40#, 16#1B3E#), + (16#1B41#, 16#1B3F#), + (16#1B43#, 16#1B42#), + (16#1D2C#, 16#0041#), + (16#1D2D#, 16#00C6#), + (16#1D2E#, 16#0042#), + (16#1D30#, 16#0044#), + (16#1D31#, 16#0045#), + (16#1D32#, 16#018E#), + (16#1D33#, 16#0047#), + (16#1D34#, 16#0048#), + (16#1D35#, 16#0049#), + (16#1D36#, 16#004A#), + (16#1D37#, 16#004B#), + (16#1D38#, 16#004C#), + (16#1D39#, 16#004D#), + (16#1D3A#, 16#004E#), + (16#1D3C#, 16#004F#), + (16#1D3D#, 16#0222#), + (16#1D3E#, 16#0050#), + (16#1D3F#, 16#0052#), + (16#1D40#, 16#0054#), + (16#1D41#, 16#0055#), + (16#1D42#, 16#0057#), + (16#1D43#, 16#0061#), + (16#1D44#, 16#0250#), + (16#1D45#, 16#0251#), + (16#1D46#, 16#1D02#), + (16#1D47#, 16#0062#), + (16#1D48#, 16#0064#), + (16#1D49#, 16#0065#), + (16#1D4A#, 16#0259#), + (16#1D4B#, 16#025B#), + (16#1D4C#, 16#025C#), + (16#1D4D#, 16#0067#), + (16#1D4F#, 16#006B#), + (16#1D50#, 16#006D#), + (16#1D51#, 16#014B#), + (16#1D52#, 16#006F#), + (16#1D53#, 16#0254#), + (16#1D54#, 16#1D16#), + (16#1D55#, 16#1D17#), + (16#1D56#, 16#0070#), + (16#1D57#, 16#0074#), + (16#1D58#, 16#0075#), + (16#1D59#, 16#1D1D#), + (16#1D5A#, 16#026F#), + (16#1D5B#, 16#0076#), + (16#1D5C#, 16#1D25#), + (16#1D5D#, 16#03B2#), + (16#1D5E#, 16#03B3#), + (16#1D5F#, 16#03B4#), + (16#1D60#, 16#03C6#), + (16#1D61#, 16#03C7#), + (16#1D62#, 16#0069#), + (16#1D63#, 16#0072#), + (16#1D64#, 16#0075#), + (16#1D65#, 16#0076#), + (16#1D66#, 16#03B2#), + (16#1D67#, 16#03B3#), + (16#1D68#, 16#03C1#), + (16#1D69#, 16#03C6#), + (16#1D6A#, 16#03C7#), + (16#1D78#, 16#043D#), + (16#1D9B#, 16#0252#), + (16#1D9C#, 16#0063#), + (16#1D9D#, 16#0255#), + (16#1D9E#, 16#00F0#), + (16#1D9F#, 16#025C#), + (16#1DA0#, 16#0066#), + (16#1DA1#, 16#025F#), + (16#1DA2#, 16#0261#), + (16#1DA3#, 16#0265#), + (16#1DA4#, 16#0268#), + (16#1DA5#, 16#0269#), + (16#1DA6#, 16#026A#), + (16#1DA7#, 16#1D7B#), + (16#1DA8#, 16#029D#), + (16#1DA9#, 16#026D#), + (16#1DAA#, 16#1D85#), + (16#1DAB#, 16#029F#), + (16#1DAC#, 16#0271#), + (16#1DAD#, 16#0270#), + (16#1DAE#, 16#0272#), + (16#1DAF#, 16#0273#), + (16#1DB0#, 16#0274#), + (16#1DB1#, 16#0275#), + (16#1DB2#, 16#0278#), + (16#1DB3#, 16#0282#), + (16#1DB4#, 16#0283#), + (16#1DB5#, 16#01AB#), + (16#1DB6#, 16#0289#), + (16#1DB7#, 16#028A#), + (16#1DB8#, 16#1D1C#), + (16#1DB9#, 16#028B#), + (16#1DBA#, 16#028C#), + (16#1DBB#, 16#007A#), + (16#1DBC#, 16#0290#), + (16#1DBD#, 16#0291#), + (16#1DBE#, 16#0292#), + (16#1DBF#, 16#03B8#), + (16#1E00#, 16#0041#), + (16#1E01#, 16#0061#), + (16#1E02#, 16#0042#), + (16#1E03#, 16#0062#), + (16#1E04#, 16#0042#), + (16#1E05#, 16#0062#), + (16#1E06#, 16#0042#), + (16#1E07#, 16#0062#), + (16#1E08#, 16#00C7#), + (16#1E09#, 16#00E7#), + (16#1E0A#, 16#0044#), + (16#1E0B#, 16#0064#), + (16#1E0C#, 16#0044#), + (16#1E0D#, 16#0064#), + (16#1E0E#, 16#0044#), + (16#1E0F#, 16#0064#), + (16#1E10#, 16#0044#), + (16#1E11#, 16#0064#), + (16#1E12#, 16#0044#), + (16#1E13#, 16#0064#), + (16#1E14#, 16#0112#), + (16#1E15#, 16#0113#), + (16#1E16#, 16#0112#), + (16#1E17#, 16#0113#), + (16#1E18#, 16#0045#), + (16#1E19#, 16#0065#), + (16#1E1A#, 16#0045#), + (16#1E1B#, 16#0065#), + (16#1E1C#, 16#0228#), + (16#1E1D#, 16#0229#), + (16#1E1E#, 16#0046#), + (16#1E1F#, 16#0066#), + (16#1E20#, 16#0047#), + (16#1E21#, 16#0067#), + (16#1E22#, 16#0048#), + (16#1E23#, 16#0068#), + (16#1E24#, 16#0048#), + (16#1E25#, 16#0068#), + (16#1E26#, 16#0048#), + (16#1E27#, 16#0068#), + (16#1E28#, 16#0048#), + (16#1E29#, 16#0068#), + (16#1E2A#, 16#0048#), + (16#1E2B#, 16#0068#), + (16#1E2C#, 16#0049#), + (16#1E2D#, 16#0069#), + (16#1E2E#, 16#00CF#), + (16#1E2F#, 16#00EF#), + (16#1E30#, 16#004B#), + (16#1E31#, 16#006B#), + (16#1E32#, 16#004B#), + (16#1E33#, 16#006B#), + (16#1E34#, 16#004B#), + (16#1E35#, 16#006B#), + (16#1E36#, 16#004C#), + (16#1E37#, 16#006C#), + (16#1E38#, 16#1E36#), + (16#1E39#, 16#1E37#), + (16#1E3A#, 16#004C#), + (16#1E3B#, 16#006C#), + (16#1E3C#, 16#004C#), + (16#1E3D#, 16#006C#), + (16#1E3E#, 16#004D#), + (16#1E3F#, 16#006D#), + (16#1E40#, 16#004D#), + (16#1E41#, 16#006D#), + (16#1E42#, 16#004D#), + (16#1E43#, 16#006D#), + (16#1E44#, 16#004E#), + (16#1E45#, 16#006E#), + (16#1E46#, 16#004E#), + (16#1E47#, 16#006E#), + (16#1E48#, 16#004E#), + (16#1E49#, 16#006E#), + (16#1E4A#, 16#004E#), + (16#1E4B#, 16#006E#), + (16#1E4C#, 16#00D5#), + (16#1E4D#, 16#00F5#), + (16#1E4E#, 16#00D5#), + (16#1E4F#, 16#00F5#), + (16#1E50#, 16#014C#), + (16#1E51#, 16#014D#), + (16#1E52#, 16#014C#), + (16#1E53#, 16#014D#), + (16#1E54#, 16#0050#), + (16#1E55#, 16#0070#), + (16#1E56#, 16#0050#), + (16#1E57#, 16#0070#), + (16#1E58#, 16#0052#), + (16#1E59#, 16#0072#), + (16#1E5A#, 16#0052#), + (16#1E5B#, 16#0072#), + (16#1E5C#, 16#1E5A#), + (16#1E5D#, 16#1E5B#), + (16#1E5E#, 16#0052#), + (16#1E5F#, 16#0072#), + (16#1E60#, 16#0053#), + (16#1E61#, 16#0073#), + (16#1E62#, 16#0053#), + (16#1E63#, 16#0073#), + (16#1E64#, 16#015A#), + (16#1E65#, 16#015B#), + (16#1E66#, 16#0160#), + (16#1E67#, 16#0161#), + (16#1E68#, 16#1E62#), + (16#1E69#, 16#1E63#), + (16#1E6A#, 16#0054#), + (16#1E6B#, 16#0074#), + (16#1E6C#, 16#0054#), + (16#1E6D#, 16#0074#), + (16#1E6E#, 16#0054#), + (16#1E6F#, 16#0074#), + (16#1E70#, 16#0054#), + (16#1E71#, 16#0074#), + (16#1E72#, 16#0055#), + (16#1E73#, 16#0075#), + (16#1E74#, 16#0055#), + (16#1E75#, 16#0075#), + (16#1E76#, 16#0055#), + (16#1E77#, 16#0075#), + (16#1E78#, 16#0168#), + (16#1E79#, 16#0169#), + (16#1E7A#, 16#016A#), + (16#1E7B#, 16#016B#), + (16#1E7C#, 16#0056#), + (16#1E7D#, 16#0076#), + (16#1E7E#, 16#0056#), + (16#1E7F#, 16#0076#), + (16#1E80#, 16#0057#), + (16#1E81#, 16#0077#), + (16#1E82#, 16#0057#), + (16#1E83#, 16#0077#), + (16#1E84#, 16#0057#), + (16#1E85#, 16#0077#), + (16#1E86#, 16#0057#), + (16#1E87#, 16#0077#), + (16#1E88#, 16#0057#), + (16#1E89#, 16#0077#), + (16#1E8A#, 16#0058#), + (16#1E8B#, 16#0078#), + (16#1E8C#, 16#0058#), + (16#1E8D#, 16#0078#), + (16#1E8E#, 16#0059#), + (16#1E8F#, 16#0079#), + (16#1E90#, 16#005A#), + (16#1E91#, 16#007A#), + (16#1E92#, 16#005A#), + (16#1E93#, 16#007A#), + (16#1E94#, 16#005A#), + (16#1E95#, 16#007A#), + (16#1E96#, 16#0068#), + (16#1E97#, 16#0074#), + (16#1E98#, 16#0077#), + (16#1E99#, 16#0079#), + (16#1E9A#, 16#0061#), + (16#1E9B#, 16#017F#), + (16#1EA0#, 16#0041#), + (16#1EA1#, 16#0061#), + (16#1EA2#, 16#0041#), + (16#1EA3#, 16#0061#), + (16#1EA4#, 16#00C2#), + (16#1EA5#, 16#00E2#), + (16#1EA6#, 16#00C2#), + (16#1EA7#, 16#00E2#), + (16#1EA8#, 16#00C2#), + (16#1EA9#, 16#00E2#), + (16#1EAA#, 16#00C2#), + (16#1EAB#, 16#00E2#), + (16#1EAC#, 16#1EA0#), + (16#1EAD#, 16#1EA1#), + (16#1EAE#, 16#0102#), + (16#1EAF#, 16#0103#), + (16#1EB0#, 16#0102#), + (16#1EB1#, 16#0103#), + (16#1EB2#, 16#0102#), + (16#1EB3#, 16#0103#), + (16#1EB4#, 16#0102#), + (16#1EB5#, 16#0103#), + (16#1EB6#, 16#1EA0#), + (16#1EB7#, 16#1EA1#), + (16#1EB8#, 16#0045#), + (16#1EB9#, 16#0065#), + (16#1EBA#, 16#0045#), + (16#1EBB#, 16#0065#), + (16#1EBC#, 16#0045#), + (16#1EBD#, 16#0065#), + (16#1EBE#, 16#00CA#), + (16#1EBF#, 16#00EA#), + (16#1EC0#, 16#00CA#), + (16#1EC1#, 16#00EA#), + (16#1EC2#, 16#00CA#), + (16#1EC3#, 16#00EA#), + (16#1EC4#, 16#00CA#), + (16#1EC5#, 16#00EA#), + (16#1EC6#, 16#1EB8#), + (16#1EC7#, 16#1EB9#), + (16#1EC8#, 16#0049#), + (16#1EC9#, 16#0069#), + (16#1ECA#, 16#0049#), + (16#1ECB#, 16#0069#), + (16#1ECC#, 16#004F#), + (16#1ECD#, 16#006F#), + (16#1ECE#, 16#004F#), + (16#1ECF#, 16#006F#), + (16#1ED0#, 16#00D4#), + (16#1ED1#, 16#00F4#), + (16#1ED2#, 16#00D4#), + (16#1ED3#, 16#00F4#), + (16#1ED4#, 16#00D4#), + (16#1ED5#, 16#00F4#), + (16#1ED6#, 16#00D4#), + (16#1ED7#, 16#00F4#), + (16#1ED8#, 16#1ECC#), + (16#1ED9#, 16#1ECD#), + (16#1EDA#, 16#01A0#), + (16#1EDB#, 16#01A1#), + (16#1EDC#, 16#01A0#), + (16#1EDD#, 16#01A1#), + (16#1EDE#, 16#01A0#), + (16#1EDF#, 16#01A1#), + (16#1EE0#, 16#01A0#), + (16#1EE1#, 16#01A1#), + (16#1EE2#, 16#01A0#), + (16#1EE3#, 16#01A1#), + (16#1EE4#, 16#0055#), + (16#1EE5#, 16#0075#), + (16#1EE6#, 16#0055#), + (16#1EE7#, 16#0075#), + (16#1EE8#, 16#01AF#), + (16#1EE9#, 16#01B0#), + (16#1EEA#, 16#01AF#), + (16#1EEB#, 16#01B0#), + (16#1EEC#, 16#01AF#), + (16#1EED#, 16#01B0#), + (16#1EEE#, 16#01AF#), + (16#1EEF#, 16#01B0#), + (16#1EF0#, 16#01AF#), + (16#1EF1#, 16#01B0#), + (16#1EF2#, 16#0059#), + (16#1EF3#, 16#0079#), + (16#1EF4#, 16#0059#), + (16#1EF5#, 16#0079#), + (16#1EF6#, 16#0059#), + (16#1EF7#, 16#0079#), + (16#1EF8#, 16#0059#), + (16#1EF9#, 16#0079#), + (16#1F00#, 16#03B1#), + (16#1F01#, 16#03B1#), + (16#1F02#, 16#1F00#), + (16#1F03#, 16#1F01#), + (16#1F04#, 16#1F00#), + (16#1F05#, 16#1F01#), + (16#1F06#, 16#1F00#), + (16#1F07#, 16#1F01#), + (16#1F08#, 16#0391#), + (16#1F09#, 16#0391#), + (16#1F0A#, 16#1F08#), + (16#1F0B#, 16#1F09#), + (16#1F0C#, 16#1F08#), + (16#1F0D#, 16#1F09#), + (16#1F0E#, 16#1F08#), + (16#1F0F#, 16#1F09#), + (16#1F10#, 16#03B5#), + (16#1F11#, 16#03B5#), + (16#1F12#, 16#1F10#), + (16#1F13#, 16#1F11#), + (16#1F14#, 16#1F10#), + (16#1F15#, 16#1F11#), + (16#1F18#, 16#0395#), + (16#1F19#, 16#0395#), + (16#1F1A#, 16#1F18#), + (16#1F1B#, 16#1F19#), + (16#1F1C#, 16#1F18#), + (16#1F1D#, 16#1F19#), + (16#1F20#, 16#03B7#), + (16#1F21#, 16#03B7#), + (16#1F22#, 16#1F20#), + (16#1F23#, 16#1F21#), + (16#1F24#, 16#1F20#), + (16#1F25#, 16#1F21#), + (16#1F26#, 16#1F20#), + (16#1F27#, 16#1F21#), + (16#1F28#, 16#0397#), + (16#1F29#, 16#0397#), + (16#1F2A#, 16#1F28#), + (16#1F2B#, 16#1F29#), + (16#1F2C#, 16#1F28#), + (16#1F2D#, 16#1F29#), + (16#1F2E#, 16#1F28#), + (16#1F2F#, 16#1F29#), + (16#1F30#, 16#03B9#), + (16#1F31#, 16#03B9#), + (16#1F32#, 16#1F30#), + (16#1F33#, 16#1F31#), + (16#1F34#, 16#1F30#), + (16#1F35#, 16#1F31#), + (16#1F36#, 16#1F30#), + (16#1F37#, 16#1F31#), + (16#1F38#, 16#0399#), + (16#1F39#, 16#0399#), + (16#1F3A#, 16#1F38#), + (16#1F3B#, 16#1F39#), + (16#1F3C#, 16#1F38#), + (16#1F3D#, 16#1F39#), + (16#1F3E#, 16#1F38#), + (16#1F3F#, 16#1F39#), + (16#1F40#, 16#03BF#), + (16#1F41#, 16#03BF#), + (16#1F42#, 16#1F40#), + (16#1F43#, 16#1F41#), + (16#1F44#, 16#1F40#), + (16#1F45#, 16#1F41#), + (16#1F48#, 16#039F#), + (16#1F49#, 16#039F#), + (16#1F4A#, 16#1F48#), + (16#1F4B#, 16#1F49#), + (16#1F4C#, 16#1F48#), + (16#1F4D#, 16#1F49#), + (16#1F50#, 16#03C5#), + (16#1F51#, 16#03C5#), + (16#1F52#, 16#1F50#), + (16#1F53#, 16#1F51#), + (16#1F54#, 16#1F50#), + (16#1F55#, 16#1F51#), + (16#1F56#, 16#1F50#), + (16#1F57#, 16#1F51#), + (16#1F59#, 16#03A5#), + (16#1F5B#, 16#1F59#), + (16#1F5D#, 16#1F59#), + (16#1F5F#, 16#1F59#), + (16#1F60#, 16#03C9#), + (16#1F61#, 16#03C9#), + (16#1F62#, 16#1F60#), + (16#1F63#, 16#1F61#), + (16#1F64#, 16#1F60#), + (16#1F65#, 16#1F61#), + (16#1F66#, 16#1F60#), + (16#1F67#, 16#1F61#), + (16#1F68#, 16#03A9#), + (16#1F69#, 16#03A9#), + (16#1F6A#, 16#1F68#), + (16#1F6B#, 16#1F69#), + (16#1F6C#, 16#1F68#), + (16#1F6D#, 16#1F69#), + (16#1F6E#, 16#1F68#), + (16#1F6F#, 16#1F69#), + (16#1F70#, 16#03B1#), + (16#1F71#, 16#03AC#), + (16#1F72#, 16#03B5#), + (16#1F73#, 16#03AD#), + (16#1F74#, 16#03B7#), + (16#1F75#, 16#03AE#), + (16#1F76#, 16#03B9#), + (16#1F77#, 16#03AF#), + (16#1F78#, 16#03BF#), + (16#1F79#, 16#03CC#), + (16#1F7A#, 16#03C5#), + (16#1F7B#, 16#03CD#), + (16#1F7C#, 16#03C9#), + (16#1F7D#, 16#03CE#), + (16#1F80#, 16#1F00#), + (16#1F81#, 16#1F01#), + (16#1F82#, 16#1F02#), + (16#1F83#, 16#1F03#), + (16#1F84#, 16#1F04#), + (16#1F85#, 16#1F05#), + (16#1F86#, 16#1F06#), + (16#1F87#, 16#1F07#), + (16#1F88#, 16#1F08#), + (16#1F89#, 16#1F09#), + (16#1F8A#, 16#1F0A#), + (16#1F8B#, 16#1F0B#), + (16#1F8C#, 16#1F0C#), + (16#1F8D#, 16#1F0D#), + (16#1F8E#, 16#1F0E#), + (16#1F8F#, 16#1F0F#), + (16#1F90#, 16#1F20#), + (16#1F91#, 16#1F21#), + (16#1F92#, 16#1F22#), + (16#1F93#, 16#1F23#), + (16#1F94#, 16#1F24#), + (16#1F95#, 16#1F25#), + (16#1F96#, 16#1F26#), + (16#1F97#, 16#1F27#), + (16#1F98#, 16#1F28#), + (16#1F99#, 16#1F29#), + (16#1F9A#, 16#1F2A#), + (16#1F9B#, 16#1F2B#), + (16#1F9C#, 16#1F2C#), + (16#1F9D#, 16#1F2D#), + (16#1F9E#, 16#1F2E#), + (16#1F9F#, 16#1F2F#), + (16#1FA0#, 16#1F60#), + (16#1FA1#, 16#1F61#), + (16#1FA2#, 16#1F62#), + (16#1FA3#, 16#1F63#), + (16#1FA4#, 16#1F64#), + (16#1FA5#, 16#1F65#), + (16#1FA6#, 16#1F66#), + (16#1FA7#, 16#1F67#), + (16#1FA8#, 16#1F68#), + (16#1FA9#, 16#1F69#), + (16#1FAA#, 16#1F6A#), + (16#1FAB#, 16#1F6B#), + (16#1FAC#, 16#1F6C#), + (16#1FAD#, 16#1F6D#), + (16#1FAE#, 16#1F6E#), + (16#1FAF#, 16#1F6F#), + (16#1FB0#, 16#03B1#), + (16#1FB1#, 16#03B1#), + (16#1FB2#, 16#1F70#), + (16#1FB3#, 16#03B1#), + (16#1FB4#, 16#03AC#), + (16#1FB6#, 16#03B1#), + (16#1FB7#, 16#1FB6#), + (16#1FB8#, 16#0391#), + (16#1FB9#, 16#0391#), + (16#1FBA#, 16#0391#), + (16#1FBB#, 16#0386#), + (16#1FBC#, 16#0391#), + (16#1FBD#, 16#0020#), + (16#1FBE#, 16#03B9#), + (16#1FBF#, 16#0020#), + (16#1FC0#, 16#0020#), + (16#1FC1#, 16#00A8#), + (16#1FC2#, 16#1F74#), + (16#1FC3#, 16#03B7#), + (16#1FC4#, 16#03AE#), + (16#1FC6#, 16#03B7#), + (16#1FC7#, 16#1FC6#), + (16#1FC8#, 16#0395#), + (16#1FC9#, 16#0388#), + (16#1FCA#, 16#0397#), + (16#1FCB#, 16#0389#), + (16#1FCC#, 16#0397#), + (16#1FCD#, 16#1FBF#), + (16#1FCE#, 16#1FBF#), + (16#1FCF#, 16#1FBF#), + (16#1FD0#, 16#03B9#), + (16#1FD1#, 16#03B9#), + (16#1FD2#, 16#03CA#), + (16#1FD3#, 16#0390#), + (16#1FD6#, 16#03B9#), + (16#1FD7#, 16#03CA#), + (16#1FD8#, 16#0399#), + (16#1FD9#, 16#0399#), + (16#1FDA#, 16#0399#), + (16#1FDB#, 16#038A#), + (16#1FDD#, 16#1FFE#), + (16#1FDE#, 16#1FFE#), + (16#1FDF#, 16#1FFE#), + (16#1FE0#, 16#03C5#), + (16#1FE1#, 16#03C5#), + (16#1FE2#, 16#03CB#), + (16#1FE3#, 16#03B0#), + (16#1FE4#, 16#03C1#), + (16#1FE5#, 16#03C1#), + (16#1FE6#, 16#03C5#), + (16#1FE7#, 16#03CB#), + (16#1FE8#, 16#03A5#), + (16#1FE9#, 16#03A5#), + (16#1FEA#, 16#03A5#), + (16#1FEB#, 16#038E#), + (16#1FEC#, 16#03A1#), + (16#1FED#, 16#00A8#), + (16#1FEE#, 16#0385#), + (16#1FEF#, 16#0060#), + (16#1FF2#, 16#1F7C#), + (16#1FF3#, 16#03C9#), + (16#1FF4#, 16#03CE#), + (16#1FF6#, 16#03C9#), + (16#1FF7#, 16#1FF6#), + (16#1FF8#, 16#039F#), + (16#1FF9#, 16#038C#), + (16#1FFA#, 16#03A9#), + (16#1FFB#, 16#038F#), + (16#1FFC#, 16#03A9#), + (16#1FFD#, 16#00B4#), + (16#1FFE#, 16#0020#), + (16#2000#, 16#2002#), + (16#2001#, 16#2003#), + (16#2002#, 16#0020#), + (16#2003#, 16#0020#), + (16#2004#, 16#0020#), + (16#2005#, 16#0020#), + (16#2006#, 16#0020#), + (16#2007#, 16#0020#), + (16#2008#, 16#0020#), + (16#2009#, 16#0020#), + (16#200A#, 16#0020#), + (16#2011#, 16#2010#), + (16#2017#, 16#0020#), + (16#2024#, 16#002E#), + (16#2025#, 16#002E#), + (16#2026#, 16#002E#), + (16#202F#, 16#0020#), + (16#2033#, 16#2032#), + (16#2034#, 16#2032#), + (16#2036#, 16#2035#), + (16#2037#, 16#2035#), + (16#203C#, 16#0021#), + (16#203E#, 16#0020#), + (16#2047#, 16#003F#), + (16#2048#, 16#003F#), + (16#2049#, 16#0021#), + (16#2057#, 16#2032#), + (16#205F#, 16#0020#), + (16#2070#, 16#0030#), + (16#2071#, 16#0069#), + (16#2074#, 16#0034#), + (16#2075#, 16#0035#), + (16#2076#, 16#0036#), + (16#2077#, 16#0037#), + (16#2078#, 16#0038#), + (16#2079#, 16#0039#), + (16#207A#, 16#002B#), + (16#207B#, 16#2212#), + (16#207C#, 16#003D#), + (16#207D#, 16#0028#), + (16#207E#, 16#0029#), + (16#207F#, 16#006E#), + (16#2080#, 16#0030#), + (16#2081#, 16#0031#), + (16#2082#, 16#0032#), + (16#2083#, 16#0033#), + (16#2084#, 16#0034#), + (16#2085#, 16#0035#), + (16#2086#, 16#0036#), + (16#2087#, 16#0037#), + (16#2088#, 16#0038#), + (16#2089#, 16#0039#), + (16#208A#, 16#002B#), + (16#208B#, 16#2212#), + (16#208C#, 16#003D#), + (16#208D#, 16#0028#), + (16#208E#, 16#0029#), + (16#2090#, 16#0061#), + (16#2091#, 16#0065#), + (16#2092#, 16#006F#), + (16#2093#, 16#0078#), + (16#2094#, 16#0259#), + (16#2095#, 16#0068#), + (16#2096#, 16#006B#), + (16#2097#, 16#006C#), + (16#2098#, 16#006D#), + (16#2099#, 16#006E#), + (16#209A#, 16#0070#), + (16#209B#, 16#0073#), + (16#209C#, 16#0074#), + (16#20A8#, 16#0052#), + (16#2100#, 16#0061#), + (16#2101#, 16#0061#), + (16#2102#, 16#0043#), + (16#2103#, 16#00B0#), + (16#2105#, 16#0063#), + (16#2106#, 16#0063#), + (16#2107#, 16#0190#), + (16#2109#, 16#00B0#), + (16#210A#, 16#0067#), + (16#210B#, 16#0048#), + (16#210C#, 16#0048#), + (16#210D#, 16#0048#), + (16#210E#, 16#0068#), + (16#210F#, 16#0127#), + (16#2110#, 16#0049#), + (16#2111#, 16#0049#), + (16#2112#, 16#004C#), + (16#2113#, 16#006C#), + (16#2115#, 16#004E#), + (16#2116#, 16#004E#), + (16#2119#, 16#0050#), + (16#211A#, 16#0051#), + (16#211B#, 16#0052#), + (16#211C#, 16#0052#), + (16#211D#, 16#0052#), + (16#2120#, 16#0053#), + (16#2121#, 16#0054#), + (16#2122#, 16#0054#), + (16#2124#, 16#005A#), + (16#2126#, 16#03A9#), + (16#2128#, 16#005A#), + (16#212A#, 16#004B#), + (16#212B#, 16#00C5#), + (16#212C#, 16#0042#), + (16#212D#, 16#0043#), + (16#212F#, 16#0065#), + (16#2130#, 16#0045#), + (16#2131#, 16#0046#), + (16#2133#, 16#004D#), + (16#2134#, 16#006F#), + (16#2135#, 16#05D0#), + (16#2136#, 16#05D1#), + (16#2137#, 16#05D2#), + (16#2138#, 16#05D3#), + (16#2139#, 16#0069#), + (16#213B#, 16#0046#), + (16#213C#, 16#03C0#), + (16#213D#, 16#03B3#), + (16#213E#, 16#0393#), + (16#213F#, 16#03A0#), + (16#2140#, 16#2211#), + (16#2145#, 16#0044#), + (16#2146#, 16#0064#), + (16#2147#, 16#0065#), + (16#2148#, 16#0069#), + (16#2149#, 16#006A#), + (16#2150#, 16#0031#), + (16#2151#, 16#0031#), + (16#2152#, 16#0031#), + (16#2153#, 16#0031#), + (16#2154#, 16#0032#), + (16#2155#, 16#0031#), + (16#2156#, 16#0032#), + (16#2157#, 16#0033#), + (16#2158#, 16#0034#), + (16#2159#, 16#0031#), + (16#215A#, 16#0035#), + (16#215B#, 16#0031#), + (16#215C#, 16#0033#), + (16#215D#, 16#0035#), + (16#215E#, 16#0037#), + (16#215F#, 16#0031#), + (16#2160#, 16#0049#), + (16#2161#, 16#0049#), + (16#2162#, 16#0049#), + (16#2163#, 16#0049#), + (16#2164#, 16#0056#), + (16#2165#, 16#0056#), + (16#2166#, 16#0056#), + (16#2167#, 16#0056#), + (16#2168#, 16#0049#), + (16#2169#, 16#0058#), + (16#216A#, 16#0058#), + (16#216B#, 16#0058#), + (16#216C#, 16#004C#), + (16#216D#, 16#0043#), + (16#216E#, 16#0044#), + (16#216F#, 16#004D#), + (16#2170#, 16#0069#), + (16#2171#, 16#0069#), + (16#2172#, 16#0069#), + (16#2173#, 16#0069#), + (16#2174#, 16#0076#), + (16#2175#, 16#0076#), + (16#2176#, 16#0076#), + (16#2177#, 16#0076#), + (16#2178#, 16#0069#), + (16#2179#, 16#0078#), + (16#217A#, 16#0078#), + (16#217B#, 16#0078#), + (16#217C#, 16#006C#), + (16#217D#, 16#0063#), + (16#217E#, 16#0064#), + (16#217F#, 16#006D#), + (16#2189#, 16#0030#), + (16#219A#, 16#2190#), + (16#219B#, 16#2192#), + (16#21AE#, 16#2194#), + (16#21CD#, 16#21D0#), + (16#21CE#, 16#21D4#), + (16#21CF#, 16#21D2#), + (16#2204#, 16#2203#), + (16#2209#, 16#2208#), + (16#220C#, 16#220B#), + (16#2224#, 16#2223#), + (16#2226#, 16#2225#), + (16#222C#, 16#222B#), + (16#222D#, 16#222B#), + (16#222F#, 16#222E#), + (16#2230#, 16#222E#), + (16#2241#, 16#223C#), + (16#2244#, 16#2243#), + (16#2247#, 16#2245#), + (16#2249#, 16#2248#), + (16#2260#, 16#003D#), + (16#2262#, 16#2261#), + (16#226D#, 16#224D#), + (16#226E#, 16#003C#), + (16#226F#, 16#003E#), + (16#2270#, 16#2264#), + (16#2271#, 16#2265#), + (16#2274#, 16#2272#), + (16#2275#, 16#2273#), + (16#2278#, 16#2276#), + (16#2279#, 16#2277#), + (16#2280#, 16#227A#), + (16#2281#, 16#227B#), + (16#2284#, 16#2282#), + (16#2285#, 16#2283#), + (16#2288#, 16#2286#), + (16#2289#, 16#2287#), + (16#22AC#, 16#22A2#), + (16#22AD#, 16#22A8#), + (16#22AE#, 16#22A9#), + (16#22AF#, 16#22AB#), + (16#22E0#, 16#227C#), + (16#22E1#, 16#227D#), + (16#22E2#, 16#2291#), + (16#22E3#, 16#2292#), + (16#22EA#, 16#22B2#), + (16#22EB#, 16#22B3#), + (16#22EC#, 16#22B4#), + (16#22ED#, 16#22B5#), + (16#2329#, 16#3008#), + (16#232A#, 16#3009#), + (16#2460#, 16#0031#), + (16#2461#, 16#0032#), + (16#2462#, 16#0033#), + (16#2463#, 16#0034#), + (16#2464#, 16#0035#), + (16#2465#, 16#0036#), + (16#2466#, 16#0037#), + (16#2467#, 16#0038#), + (16#2468#, 16#0039#), + (16#2469#, 16#0031#), + (16#246A#, 16#0031#), + (16#246B#, 16#0031#), + (16#246C#, 16#0031#), + (16#246D#, 16#0031#), + (16#246E#, 16#0031#), + (16#246F#, 16#0031#), + (16#2470#, 16#0031#), + (16#2471#, 16#0031#), + (16#2472#, 16#0031#), + (16#2473#, 16#0032#), + (16#2474#, 16#0028#), + (16#2475#, 16#0028#), + (16#2476#, 16#0028#), + (16#2477#, 16#0028#), + (16#2478#, 16#0028#), + (16#2479#, 16#0028#), + (16#247A#, 16#0028#), + (16#247B#, 16#0028#), + (16#247C#, 16#0028#), + (16#247D#, 16#0028#), + (16#247E#, 16#0028#), + (16#247F#, 16#0028#), + (16#2480#, 16#0028#), + (16#2481#, 16#0028#), + (16#2482#, 16#0028#), + (16#2483#, 16#0028#), + (16#2484#, 16#0028#), + (16#2485#, 16#0028#), + (16#2486#, 16#0028#), + (16#2487#, 16#0028#), + (16#2488#, 16#0031#), + (16#2489#, 16#0032#), + (16#248A#, 16#0033#), + (16#248B#, 16#0034#), + (16#248C#, 16#0035#), + (16#248D#, 16#0036#), + (16#248E#, 16#0037#), + (16#248F#, 16#0038#), + (16#2490#, 16#0039#), + (16#2491#, 16#0031#), + (16#2492#, 16#0031#), + (16#2493#, 16#0031#), + (16#2494#, 16#0031#), + (16#2495#, 16#0031#), + (16#2496#, 16#0031#), + (16#2497#, 16#0031#), + (16#2498#, 16#0031#), + (16#2499#, 16#0031#), + (16#249A#, 16#0031#), + (16#249B#, 16#0032#), + (16#249C#, 16#0028#), + (16#249D#, 16#0028#), + (16#249E#, 16#0028#), + (16#249F#, 16#0028#), + (16#24A0#, 16#0028#), + (16#24A1#, 16#0028#), + (16#24A2#, 16#0028#), + (16#24A3#, 16#0028#), + (16#24A4#, 16#0028#), + (16#24A5#, 16#0028#), + (16#24A6#, 16#0028#), + (16#24A7#, 16#0028#), + (16#24A8#, 16#0028#), + (16#24A9#, 16#0028#), + (16#24AA#, 16#0028#), + (16#24AB#, 16#0028#), + (16#24AC#, 16#0028#), + (16#24AD#, 16#0028#), + (16#24AE#, 16#0028#), + (16#24AF#, 16#0028#), + (16#24B0#, 16#0028#), + (16#24B1#, 16#0028#), + (16#24B2#, 16#0028#), + (16#24B3#, 16#0028#), + (16#24B4#, 16#0028#), + (16#24B5#, 16#0028#), + (16#24B6#, 16#0041#), + (16#24B7#, 16#0042#), + (16#24B8#, 16#0043#), + (16#24B9#, 16#0044#), + (16#24BA#, 16#0045#), + (16#24BB#, 16#0046#), + (16#24BC#, 16#0047#), + (16#24BD#, 16#0048#), + (16#24BE#, 16#0049#), + (16#24BF#, 16#004A#), + (16#24C0#, 16#004B#), + (16#24C1#, 16#004C#), + (16#24C2#, 16#004D#), + (16#24C3#, 16#004E#), + (16#24C4#, 16#004F#), + (16#24C5#, 16#0050#), + (16#24C6#, 16#0051#), + (16#24C7#, 16#0052#), + (16#24C8#, 16#0053#), + (16#24C9#, 16#0054#), + (16#24CA#, 16#0055#), + (16#24CB#, 16#0056#), + (16#24CC#, 16#0057#), + (16#24CD#, 16#0058#), + (16#24CE#, 16#0059#), + (16#24CF#, 16#005A#), + (16#24D0#, 16#0061#), + (16#24D1#, 16#0062#), + (16#24D2#, 16#0063#), + (16#24D3#, 16#0064#), + (16#24D4#, 16#0065#), + (16#24D5#, 16#0066#), + (16#24D6#, 16#0067#), + (16#24D7#, 16#0068#), + (16#24D8#, 16#0069#), + (16#24D9#, 16#006A#), + (16#24DA#, 16#006B#), + (16#24DB#, 16#006C#), + (16#24DC#, 16#006D#), + (16#24DD#, 16#006E#), + (16#24DE#, 16#006F#), + (16#24DF#, 16#0070#), + (16#24E0#, 16#0071#), + (16#24E1#, 16#0072#), + (16#24E2#, 16#0073#), + (16#24E3#, 16#0074#), + (16#24E4#, 16#0075#), + (16#24E5#, 16#0076#), + (16#24E6#, 16#0077#), + (16#24E7#, 16#0078#), + (16#24E8#, 16#0079#), + (16#24E9#, 16#007A#), + (16#24EA#, 16#0030#), + (16#2A0C#, 16#222B#), + (16#2A74#, 16#003A#), + (16#2A75#, 16#003D#), + (16#2A76#, 16#003D#), + (16#2ADC#, 16#2ADD#), + (16#2C7C#, 16#006A#), + (16#2C7D#, 16#0056#), + (16#2D6F#, 16#2D61#), + (16#2E9F#, 16#6BCD#), + (16#2EF3#, 16#9F9F#), + (16#2F00#, 16#4E00#), + (16#2F01#, 16#4E28#), + (16#2F02#, 16#4E36#), + (16#2F03#, 16#4E3F#), + (16#2F04#, 16#4E59#), + (16#2F05#, 16#4E85#), + (16#2F06#, 16#4E8C#), + (16#2F07#, 16#4EA0#), + (16#2F08#, 16#4EBA#), + (16#2F09#, 16#513F#), + (16#2F0A#, 16#5165#), + (16#2F0B#, 16#516B#), + (16#2F0C#, 16#5182#), + (16#2F0D#, 16#5196#), + (16#2F0E#, 16#51AB#), + (16#2F0F#, 16#51E0#), + (16#2F10#, 16#51F5#), + (16#2F11#, 16#5200#), + (16#2F12#, 16#529B#), + (16#2F13#, 16#52F9#), + (16#2F14#, 16#5315#), + (16#2F15#, 16#531A#), + (16#2F16#, 16#5338#), + (16#2F17#, 16#5341#), + (16#2F18#, 16#535C#), + (16#2F19#, 16#5369#), + (16#2F1A#, 16#5382#), + (16#2F1B#, 16#53B6#), + (16#2F1C#, 16#53C8#), + (16#2F1D#, 16#53E3#), + (16#2F1E#, 16#56D7#), + (16#2F1F#, 16#571F#), + (16#2F20#, 16#58EB#), + (16#2F21#, 16#5902#), + (16#2F22#, 16#590A#), + (16#2F23#, 16#5915#), + (16#2F24#, 16#5927#), + (16#2F25#, 16#5973#), + (16#2F26#, 16#5B50#), + (16#2F27#, 16#5B80#), + (16#2F28#, 16#5BF8#), + (16#2F29#, 16#5C0F#), + (16#2F2A#, 16#5C22#), + (16#2F2B#, 16#5C38#), + (16#2F2C#, 16#5C6E#), + (16#2F2D#, 16#5C71#), + (16#2F2E#, 16#5DDB#), + (16#2F2F#, 16#5DE5#), + (16#2F30#, 16#5DF1#), + (16#2F31#, 16#5DFE#), + (16#2F32#, 16#5E72#), + (16#2F33#, 16#5E7A#), + (16#2F34#, 16#5E7F#), + (16#2F35#, 16#5EF4#), + (16#2F36#, 16#5EFE#), + (16#2F37#, 16#5F0B#), + (16#2F38#, 16#5F13#), + (16#2F39#, 16#5F50#), + (16#2F3A#, 16#5F61#), + (16#2F3B#, 16#5F73#), + (16#2F3C#, 16#5FC3#), + (16#2F3D#, 16#6208#), + (16#2F3E#, 16#6236#), + (16#2F3F#, 16#624B#), + (16#2F40#, 16#652F#), + (16#2F41#, 16#6534#), + (16#2F42#, 16#6587#), + (16#2F43#, 16#6597#), + (16#2F44#, 16#65A4#), + (16#2F45#, 16#65B9#), + (16#2F46#, 16#65E0#), + (16#2F47#, 16#65E5#), + (16#2F48#, 16#66F0#), + (16#2F49#, 16#6708#), + (16#2F4A#, 16#6728#), + (16#2F4B#, 16#6B20#), + (16#2F4C#, 16#6B62#), + (16#2F4D#, 16#6B79#), + (16#2F4E#, 16#6BB3#), + (16#2F4F#, 16#6BCB#), + (16#2F50#, 16#6BD4#), + (16#2F51#, 16#6BDB#), + (16#2F52#, 16#6C0F#), + (16#2F53#, 16#6C14#), + (16#2F54#, 16#6C34#), + (16#2F55#, 16#706B#), + (16#2F56#, 16#722A#), + (16#2F57#, 16#7236#), + (16#2F58#, 16#723B#), + (16#2F59#, 16#723F#), + (16#2F5A#, 16#7247#), + (16#2F5B#, 16#7259#), + (16#2F5C#, 16#725B#), + (16#2F5D#, 16#72AC#), + (16#2F5E#, 16#7384#), + (16#2F5F#, 16#7389#), + (16#2F60#, 16#74DC#), + (16#2F61#, 16#74E6#), + (16#2F62#, 16#7518#), + (16#2F63#, 16#751F#), + (16#2F64#, 16#7528#), + (16#2F65#, 16#7530#), + (16#2F66#, 16#758B#), + (16#2F67#, 16#7592#), + (16#2F68#, 16#7676#), + (16#2F69#, 16#767D#), + (16#2F6A#, 16#76AE#), + (16#2F6B#, 16#76BF#), + (16#2F6C#, 16#76EE#), + (16#2F6D#, 16#77DB#), + (16#2F6E#, 16#77E2#), + (16#2F6F#, 16#77F3#), + (16#2F70#, 16#793A#), + (16#2F71#, 16#79B8#), + (16#2F72#, 16#79BE#), + (16#2F73#, 16#7A74#), + (16#2F74#, 16#7ACB#), + (16#2F75#, 16#7AF9#), + (16#2F76#, 16#7C73#), + (16#2F77#, 16#7CF8#), + (16#2F78#, 16#7F36#), + (16#2F79#, 16#7F51#), + (16#2F7A#, 16#7F8A#), + (16#2F7B#, 16#7FBD#), + (16#2F7C#, 16#8001#), + (16#2F7D#, 16#800C#), + (16#2F7E#, 16#8012#), + (16#2F7F#, 16#8033#), + (16#2F80#, 16#807F#), + (16#2F81#, 16#8089#), + (16#2F82#, 16#81E3#), + (16#2F83#, 16#81EA#), + (16#2F84#, 16#81F3#), + (16#2F85#, 16#81FC#), + (16#2F86#, 16#820C#), + (16#2F87#, 16#821B#), + (16#2F88#, 16#821F#), + (16#2F89#, 16#826E#), + (16#2F8A#, 16#8272#), + (16#2F8B#, 16#8278#), + (16#2F8C#, 16#864D#), + (16#2F8D#, 16#866B#), + (16#2F8E#, 16#8840#), + (16#2F8F#, 16#884C#), + (16#2F90#, 16#8863#), + (16#2F91#, 16#897E#), + (16#2F92#, 16#898B#), + (16#2F93#, 16#89D2#), + (16#2F94#, 16#8A00#), + (16#2F95#, 16#8C37#), + (16#2F96#, 16#8C46#), + (16#2F97#, 16#8C55#), + (16#2F98#, 16#8C78#), + (16#2F99#, 16#8C9D#), + (16#2F9A#, 16#8D64#), + (16#2F9B#, 16#8D70#), + (16#2F9C#, 16#8DB3#), + (16#2F9D#, 16#8EAB#), + (16#2F9E#, 16#8ECA#), + (16#2F9F#, 16#8F9B#), + (16#2FA0#, 16#8FB0#), + (16#2FA1#, 16#8FB5#), + (16#2FA2#, 16#9091#), + (16#2FA3#, 16#9149#), + (16#2FA4#, 16#91C6#), + (16#2FA5#, 16#91CC#), + (16#2FA6#, 16#91D1#), + (16#2FA7#, 16#9577#), + (16#2FA8#, 16#9580#), + (16#2FA9#, 16#961C#), + (16#2FAA#, 16#96B6#), + (16#2FAB#, 16#96B9#), + (16#2FAC#, 16#96E8#), + (16#2FAD#, 16#9751#), + (16#2FAE#, 16#975E#), + (16#2FAF#, 16#9762#), + (16#2FB0#, 16#9769#), + (16#2FB1#, 16#97CB#), + (16#2FB2#, 16#97ED#), + (16#2FB3#, 16#97F3#), + (16#2FB4#, 16#9801#), + (16#2FB5#, 16#98A8#), + (16#2FB6#, 16#98DB#), + (16#2FB7#, 16#98DF#), + (16#2FB8#, 16#9996#), + (16#2FB9#, 16#9999#), + (16#2FBA#, 16#99AC#), + (16#2FBB#, 16#9AA8#), + (16#2FBC#, 16#9AD8#), + (16#2FBD#, 16#9ADF#), + (16#2FBE#, 16#9B25#), + (16#2FBF#, 16#9B2F#), + (16#2FC0#, 16#9B32#), + (16#2FC1#, 16#9B3C#), + (16#2FC2#, 16#9B5A#), + (16#2FC3#, 16#9CE5#), + (16#2FC4#, 16#9E75#), + (16#2FC5#, 16#9E7F#), + (16#2FC6#, 16#9EA5#), + (16#2FC7#, 16#9EBB#), + (16#2FC8#, 16#9EC3#), + (16#2FC9#, 16#9ECD#), + (16#2FCA#, 16#9ED1#), + (16#2FCB#, 16#9EF9#), + (16#2FCC#, 16#9EFD#), + (16#2FCD#, 16#9F0E#), + (16#2FCE#, 16#9F13#), + (16#2FCF#, 16#9F20#), + (16#2FD0#, 16#9F3B#), + (16#2FD1#, 16#9F4A#), + (16#2FD2#, 16#9F52#), + (16#2FD3#, 16#9F8D#), + (16#2FD4#, 16#9F9C#), + (16#2FD5#, 16#9FA0#), + (16#3000#, 16#0020#), + (16#3036#, 16#3012#), + (16#3038#, 16#5341#), + (16#3039#, 16#5344#), + (16#303A#, 16#5345#), + (16#304C#, 16#304B#), + (16#304E#, 16#304D#), + (16#3050#, 16#304F#), + (16#3052#, 16#3051#), + (16#3054#, 16#3053#), + (16#3056#, 16#3055#), + (16#3058#, 16#3057#), + (16#305A#, 16#3059#), + (16#305C#, 16#305B#), + (16#305E#, 16#305D#), + (16#3060#, 16#305F#), + (16#3062#, 16#3061#), + (16#3065#, 16#3064#), + (16#3067#, 16#3066#), + (16#3069#, 16#3068#), + (16#3070#, 16#306F#), + (16#3071#, 16#306F#), + (16#3073#, 16#3072#), + (16#3074#, 16#3072#), + (16#3076#, 16#3075#), + (16#3077#, 16#3075#), + (16#3079#, 16#3078#), + (16#307A#, 16#3078#), + (16#307C#, 16#307B#), + (16#307D#, 16#307B#), + (16#3094#, 16#3046#), + (16#309B#, 16#0020#), + (16#309C#, 16#0020#), + (16#309E#, 16#309D#), + (16#309F#, 16#3088#), + (16#30AC#, 16#30AB#), + (16#30AE#, 16#30AD#), + (16#30B0#, 16#30AF#), + (16#30B2#, 16#30B1#), + (16#30B4#, 16#30B3#), + (16#30B6#, 16#30B5#), + (16#30B8#, 16#30B7#), + (16#30BA#, 16#30B9#), + (16#30BC#, 16#30BB#), + (16#30BE#, 16#30BD#), + (16#30C0#, 16#30BF#), + (16#30C2#, 16#30C1#), + (16#30C5#, 16#30C4#), + (16#30C7#, 16#30C6#), + (16#30C9#, 16#30C8#), + (16#30D0#, 16#30CF#), + (16#30D1#, 16#30CF#), + (16#30D3#, 16#30D2#), + (16#30D4#, 16#30D2#), + (16#30D6#, 16#30D5#), + (16#30D7#, 16#30D5#), + (16#30D9#, 16#30D8#), + (16#30DA#, 16#30D8#), + (16#30DC#, 16#30DB#), + (16#30DD#, 16#30DB#), + (16#30F4#, 16#30A6#), + (16#30F7#, 16#30EF#), + (16#30F8#, 16#30F0#), + (16#30F9#, 16#30F1#), + (16#30FA#, 16#30F2#), + (16#30FE#, 16#30FD#), + (16#30FF#, 16#30B3#), + (16#3131#, 16#1100#), + (16#3132#, 16#1101#), + (16#3133#, 16#11AA#), + (16#3134#, 16#1102#), + (16#3135#, 16#11AC#), + (16#3136#, 16#11AD#), + (16#3137#, 16#1103#), + (16#3138#, 16#1104#), + (16#3139#, 16#1105#), + (16#313A#, 16#11B0#), + (16#313B#, 16#11B1#), + (16#313C#, 16#11B2#), + (16#313D#, 16#11B3#), + (16#313E#, 16#11B4#), + (16#313F#, 16#11B5#), + (16#3140#, 16#111A#), + (16#3141#, 16#1106#), + (16#3142#, 16#1107#), + (16#3143#, 16#1108#), + (16#3144#, 16#1121#), + (16#3145#, 16#1109#), + (16#3146#, 16#110A#), + (16#3147#, 16#110B#), + (16#3148#, 16#110C#), + (16#3149#, 16#110D#), + (16#314A#, 16#110E#), + (16#314B#, 16#110F#), + (16#314C#, 16#1110#), + (16#314D#, 16#1111#), + (16#314E#, 16#1112#), + (16#314F#, 16#1161#), + (16#3150#, 16#1162#), + (16#3151#, 16#1163#), + (16#3152#, 16#1164#), + (16#3153#, 16#1165#), + (16#3154#, 16#1166#), + (16#3155#, 16#1167#), + (16#3156#, 16#1168#), + (16#3157#, 16#1169#), + (16#3158#, 16#116A#), + (16#3159#, 16#116B#), + (16#315A#, 16#116C#), + (16#315B#, 16#116D#), + (16#315C#, 16#116E#), + (16#315D#, 16#116F#), + (16#315E#, 16#1170#), + (16#315F#, 16#1171#), + (16#3160#, 16#1172#), + (16#3161#, 16#1173#), + (16#3162#, 16#1174#), + (16#3163#, 16#1175#), + (16#3164#, 16#1160#), + (16#3165#, 16#1114#), + (16#3166#, 16#1115#), + (16#3167#, 16#11C7#), + (16#3168#, 16#11C8#), + (16#3169#, 16#11CC#), + (16#316A#, 16#11CE#), + (16#316B#, 16#11D3#), + (16#316C#, 16#11D7#), + (16#316D#, 16#11D9#), + (16#316E#, 16#111C#), + (16#316F#, 16#11DD#), + (16#3170#, 16#11DF#), + (16#3171#, 16#111D#), + (16#3172#, 16#111E#), + (16#3173#, 16#1120#), + (16#3174#, 16#1122#), + (16#3175#, 16#1123#), + (16#3176#, 16#1127#), + (16#3177#, 16#1129#), + (16#3178#, 16#112B#), + (16#3179#, 16#112C#), + (16#317A#, 16#112D#), + (16#317B#, 16#112E#), + (16#317C#, 16#112F#), + (16#317D#, 16#1132#), + (16#317E#, 16#1136#), + (16#317F#, 16#1140#), + (16#3180#, 16#1147#), + (16#3181#, 16#114C#), + (16#3182#, 16#11F1#), + (16#3183#, 16#11F2#), + (16#3184#, 16#1157#), + (16#3185#, 16#1158#), + (16#3186#, 16#1159#), + (16#3187#, 16#1184#), + (16#3188#, 16#1185#), + (16#3189#, 16#1188#), + (16#318A#, 16#1191#), + (16#318B#, 16#1192#), + (16#318C#, 16#1194#), + (16#318D#, 16#119E#), + (16#318E#, 16#11A1#), + (16#3192#, 16#4E00#), + (16#3193#, 16#4E8C#), + (16#3194#, 16#4E09#), + (16#3195#, 16#56DB#), + (16#3196#, 16#4E0A#), + (16#3197#, 16#4E2D#), + (16#3198#, 16#4E0B#), + (16#3199#, 16#7532#), + (16#319A#, 16#4E59#), + (16#319B#, 16#4E19#), + (16#319C#, 16#4E01#), + (16#319D#, 16#5929#), + (16#319E#, 16#5730#), + (16#319F#, 16#4EBA#), + (16#3200#, 16#0028#), + (16#3201#, 16#0028#), + (16#3202#, 16#0028#), + (16#3203#, 16#0028#), + (16#3204#, 16#0028#), + (16#3205#, 16#0028#), + (16#3206#, 16#0028#), + (16#3207#, 16#0028#), + (16#3208#, 16#0028#), + (16#3209#, 16#0028#), + (16#320A#, 16#0028#), + (16#320B#, 16#0028#), + (16#320C#, 16#0028#), + (16#320D#, 16#0028#), + (16#320E#, 16#0028#), + (16#320F#, 16#0028#), + (16#3210#, 16#0028#), + (16#3211#, 16#0028#), + (16#3212#, 16#0028#), + (16#3213#, 16#0028#), + (16#3214#, 16#0028#), + (16#3215#, 16#0028#), + (16#3216#, 16#0028#), + (16#3217#, 16#0028#), + (16#3218#, 16#0028#), + (16#3219#, 16#0028#), + (16#321A#, 16#0028#), + (16#321B#, 16#0028#), + (16#321C#, 16#0028#), + (16#321D#, 16#0028#), + (16#321E#, 16#0028#), + (16#3220#, 16#0028#), + (16#3221#, 16#0028#), + (16#3222#, 16#0028#), + (16#3223#, 16#0028#), + (16#3224#, 16#0028#), + (16#3225#, 16#0028#), + (16#3226#, 16#0028#), + (16#3227#, 16#0028#), + (16#3228#, 16#0028#), + (16#3229#, 16#0028#), + (16#322A#, 16#0028#), + (16#322B#, 16#0028#), + (16#322C#, 16#0028#), + (16#322D#, 16#0028#), + (16#322E#, 16#0028#), + (16#322F#, 16#0028#), + (16#3230#, 16#0028#), + (16#3231#, 16#0028#), + (16#3232#, 16#0028#), + (16#3233#, 16#0028#), + (16#3234#, 16#0028#), + (16#3235#, 16#0028#), + (16#3236#, 16#0028#), + (16#3237#, 16#0028#), + (16#3238#, 16#0028#), + (16#3239#, 16#0028#), + (16#323A#, 16#0028#), + (16#323B#, 16#0028#), + (16#323C#, 16#0028#), + (16#323D#, 16#0028#), + (16#323E#, 16#0028#), + (16#323F#, 16#0028#), + (16#3240#, 16#0028#), + (16#3241#, 16#0028#), + (16#3242#, 16#0028#), + (16#3243#, 16#0028#), + (16#3244#, 16#554F#), + (16#3245#, 16#5E7C#), + (16#3246#, 16#6587#), + (16#3247#, 16#7B8F#), + (16#3250#, 16#0050#), + (16#3251#, 16#0032#), + (16#3252#, 16#0032#), + (16#3253#, 16#0032#), + (16#3254#, 16#0032#), + (16#3255#, 16#0032#), + (16#3256#, 16#0032#), + (16#3257#, 16#0032#), + (16#3258#, 16#0032#), + (16#3259#, 16#0032#), + (16#325A#, 16#0033#), + (16#325B#, 16#0033#), + (16#325C#, 16#0033#), + (16#325D#, 16#0033#), + (16#325E#, 16#0033#), + (16#325F#, 16#0033#), + (16#3260#, 16#1100#), + (16#3261#, 16#1102#), + (16#3262#, 16#1103#), + (16#3263#, 16#1105#), + (16#3264#, 16#1106#), + (16#3265#, 16#1107#), + (16#3266#, 16#1109#), + (16#3267#, 16#110B#), + (16#3268#, 16#110C#), + (16#3269#, 16#110E#), + (16#326A#, 16#110F#), + (16#326B#, 16#1110#), + (16#326C#, 16#1111#), + (16#326D#, 16#1112#), + (16#326E#, 16#1100#), + (16#326F#, 16#1102#), + (16#3270#, 16#1103#), + (16#3271#, 16#1105#), + (16#3272#, 16#1106#), + (16#3273#, 16#1107#), + (16#3274#, 16#1109#), + (16#3275#, 16#110B#), + (16#3276#, 16#110C#), + (16#3277#, 16#110E#), + (16#3278#, 16#110F#), + (16#3279#, 16#1110#), + (16#327A#, 16#1111#), + (16#327B#, 16#1112#), + (16#327C#, 16#110E#), + (16#327D#, 16#110C#), + (16#327E#, 16#110B#), + (16#3280#, 16#4E00#), + (16#3281#, 16#4E8C#), + (16#3282#, 16#4E09#), + (16#3283#, 16#56DB#), + (16#3284#, 16#4E94#), + (16#3285#, 16#516D#), + (16#3286#, 16#4E03#), + (16#3287#, 16#516B#), + (16#3288#, 16#4E5D#), + (16#3289#, 16#5341#), + (16#328A#, 16#6708#), + (16#328B#, 16#706B#), + (16#328C#, 16#6C34#), + (16#328D#, 16#6728#), + (16#328E#, 16#91D1#), + (16#328F#, 16#571F#), + (16#3290#, 16#65E5#), + (16#3291#, 16#682A#), + (16#3292#, 16#6709#), + (16#3293#, 16#793E#), + (16#3294#, 16#540D#), + (16#3295#, 16#7279#), + (16#3296#, 16#8CA1#), + (16#3297#, 16#795D#), + (16#3298#, 16#52B4#), + (16#3299#, 16#79D8#), + (16#329A#, 16#7537#), + (16#329B#, 16#5973#), + (16#329C#, 16#9069#), + (16#329D#, 16#512A#), + (16#329E#, 16#5370#), + (16#329F#, 16#6CE8#), + (16#32A0#, 16#9805#), + (16#32A1#, 16#4F11#), + (16#32A2#, 16#5199#), + (16#32A3#, 16#6B63#), + (16#32A4#, 16#4E0A#), + (16#32A5#, 16#4E2D#), + (16#32A6#, 16#4E0B#), + (16#32A7#, 16#5DE6#), + (16#32A8#, 16#53F3#), + (16#32A9#, 16#533B#), + (16#32AA#, 16#5B97#), + (16#32AB#, 16#5B66#), + (16#32AC#, 16#76E3#), + (16#32AD#, 16#4F01#), + (16#32AE#, 16#8CC7#), + (16#32AF#, 16#5354#), + (16#32B0#, 16#591C#), + (16#32B1#, 16#0033#), + (16#32B2#, 16#0033#), + (16#32B3#, 16#0033#), + (16#32B4#, 16#0033#), + (16#32B5#, 16#0034#), + (16#32B6#, 16#0034#), + (16#32B7#, 16#0034#), + (16#32B8#, 16#0034#), + (16#32B9#, 16#0034#), + (16#32BA#, 16#0034#), + (16#32BB#, 16#0034#), + (16#32BC#, 16#0034#), + (16#32BD#, 16#0034#), + (16#32BE#, 16#0034#), + (16#32BF#, 16#0035#), + (16#32C0#, 16#0031#), + (16#32C1#, 16#0032#), + (16#32C2#, 16#0033#), + (16#32C3#, 16#0034#), + (16#32C4#, 16#0035#), + (16#32C5#, 16#0036#), + (16#32C6#, 16#0037#), + (16#32C7#, 16#0038#), + (16#32C8#, 16#0039#), + (16#32C9#, 16#0031#), + (16#32CA#, 16#0031#), + (16#32CB#, 16#0031#), + (16#32CC#, 16#0048#), + (16#32CD#, 16#0065#), + (16#32CE#, 16#0065#), + (16#32CF#, 16#004C#), + (16#32D0#, 16#30A2#), + (16#32D1#, 16#30A4#), + (16#32D2#, 16#30A6#), + (16#32D3#, 16#30A8#), + (16#32D4#, 16#30AA#), + (16#32D5#, 16#30AB#), + (16#32D6#, 16#30AD#), + (16#32D7#, 16#30AF#), + (16#32D8#, 16#30B1#), + (16#32D9#, 16#30B3#), + (16#32DA#, 16#30B5#), + (16#32DB#, 16#30B7#), + (16#32DC#, 16#30B9#), + (16#32DD#, 16#30BB#), + (16#32DE#, 16#30BD#), + (16#32DF#, 16#30BF#), + (16#32E0#, 16#30C1#), + (16#32E1#, 16#30C4#), + (16#32E2#, 16#30C6#), + (16#32E3#, 16#30C8#), + (16#32E4#, 16#30CA#), + (16#32E5#, 16#30CB#), + (16#32E6#, 16#30CC#), + (16#32E7#, 16#30CD#), + (16#32E8#, 16#30CE#), + (16#32E9#, 16#30CF#), + (16#32EA#, 16#30D2#), + (16#32EB#, 16#30D5#), + (16#32EC#, 16#30D8#), + (16#32ED#, 16#30DB#), + (16#32EE#, 16#30DE#), + (16#32EF#, 16#30DF#), + (16#32F0#, 16#30E0#), + (16#32F1#, 16#30E1#), + (16#32F2#, 16#30E2#), + (16#32F3#, 16#30E4#), + (16#32F4#, 16#30E6#), + (16#32F5#, 16#30E8#), + (16#32F6#, 16#30E9#), + (16#32F7#, 16#30EA#), + (16#32F8#, 16#30EB#), + (16#32F9#, 16#30EC#), + (16#32FA#, 16#30ED#), + (16#32FB#, 16#30EF#), + (16#32FC#, 16#30F0#), + (16#32FD#, 16#30F1#), + (16#32FE#, 16#30F2#), + (16#32FF#, 16#4EE4#), + (16#3300#, 16#30A2#), + (16#3301#, 16#30A2#), + (16#3302#, 16#30A2#), + (16#3303#, 16#30A2#), + (16#3304#, 16#30A4#), + (16#3305#, 16#30A4#), + (16#3306#, 16#30A6#), + (16#3307#, 16#30A8#), + (16#3308#, 16#30A8#), + (16#3309#, 16#30AA#), + (16#330A#, 16#30AA#), + (16#330B#, 16#30AB#), + (16#330C#, 16#30AB#), + (16#330D#, 16#30AB#), + (16#330E#, 16#30AC#), + (16#330F#, 16#30AC#), + (16#3310#, 16#30AE#), + (16#3311#, 16#30AE#), + (16#3312#, 16#30AD#), + (16#3313#, 16#30AE#), + (16#3314#, 16#30AD#), + (16#3315#, 16#30AD#), + (16#3316#, 16#30AD#), + (16#3317#, 16#30AD#), + (16#3318#, 16#30B0#), + (16#3319#, 16#30B0#), + (16#331A#, 16#30AF#), + (16#331B#, 16#30AF#), + (16#331C#, 16#30B1#), + (16#331D#, 16#30B3#), + (16#331E#, 16#30B3#), + (16#331F#, 16#30B5#), + (16#3320#, 16#30B5#), + (16#3321#, 16#30B7#), + (16#3322#, 16#30BB#), + (16#3323#, 16#30BB#), + (16#3324#, 16#30C0#), + (16#3325#, 16#30C7#), + (16#3326#, 16#30C9#), + (16#3327#, 16#30C8#), + (16#3328#, 16#30CA#), + (16#3329#, 16#30CE#), + (16#332A#, 16#30CF#), + (16#332B#, 16#30D1#), + (16#332C#, 16#30D1#), + (16#332D#, 16#30D0#), + (16#332E#, 16#30D4#), + (16#332F#, 16#30D4#), + (16#3330#, 16#30D4#), + (16#3331#, 16#30D3#), + (16#3332#, 16#30D5#), + (16#3333#, 16#30D5#), + (16#3334#, 16#30D6#), + (16#3335#, 16#30D5#), + (16#3336#, 16#30D8#), + (16#3337#, 16#30DA#), + (16#3338#, 16#30DA#), + (16#3339#, 16#30D8#), + (16#333A#, 16#30DA#), + (16#333B#, 16#30DA#), + (16#333C#, 16#30D9#), + (16#333D#, 16#30DD#), + (16#333E#, 16#30DC#), + (16#333F#, 16#30DB#), + (16#3340#, 16#30DD#), + (16#3341#, 16#30DB#), + (16#3342#, 16#30DB#), + (16#3343#, 16#30DE#), + (16#3344#, 16#30DE#), + (16#3345#, 16#30DE#), + (16#3346#, 16#30DE#), + (16#3347#, 16#30DE#), + (16#3348#, 16#30DF#), + (16#3349#, 16#30DF#), + (16#334A#, 16#30DF#), + (16#334B#, 16#30E1#), + (16#334C#, 16#30E1#), + (16#334D#, 16#30E1#), + (16#334E#, 16#30E4#), + (16#334F#, 16#30E4#), + (16#3350#, 16#30E6#), + (16#3351#, 16#30EA#), + (16#3352#, 16#30EA#), + (16#3353#, 16#30EB#), + (16#3354#, 16#30EB#), + (16#3355#, 16#30EC#), + (16#3356#, 16#30EC#), + (16#3357#, 16#30EF#), + (16#3358#, 16#0030#), + (16#3359#, 16#0031#), + (16#335A#, 16#0032#), + (16#335B#, 16#0033#), + (16#335C#, 16#0034#), + (16#335D#, 16#0035#), + (16#335E#, 16#0036#), + (16#335F#, 16#0037#), + (16#3360#, 16#0038#), + (16#3361#, 16#0039#), + (16#3362#, 16#0031#), + (16#3363#, 16#0031#), + (16#3364#, 16#0031#), + (16#3365#, 16#0031#), + (16#3366#, 16#0031#), + (16#3367#, 16#0031#), + (16#3368#, 16#0031#), + (16#3369#, 16#0031#), + (16#336A#, 16#0031#), + (16#336B#, 16#0031#), + (16#336C#, 16#0032#), + (16#336D#, 16#0032#), + (16#336E#, 16#0032#), + (16#336F#, 16#0032#), + (16#3370#, 16#0032#), + (16#3371#, 16#0068#), + (16#3372#, 16#0064#), + (16#3373#, 16#0041#), + (16#3374#, 16#0062#), + (16#3375#, 16#006F#), + (16#3376#, 16#0070#), + (16#3377#, 16#0064#), + (16#3378#, 16#0064#), + (16#3379#, 16#0064#), + (16#337A#, 16#0049#), + (16#337B#, 16#5E73#), + (16#337C#, 16#662D#), + (16#337D#, 16#5927#), + (16#337E#, 16#660E#), + (16#337F#, 16#682A#), + (16#3380#, 16#0070#), + (16#3381#, 16#006E#), + (16#3382#, 16#03BC#), + (16#3383#, 16#006D#), + (16#3384#, 16#006B#), + (16#3385#, 16#004B#), + (16#3386#, 16#004D#), + (16#3387#, 16#0047#), + (16#3388#, 16#0063#), + (16#3389#, 16#006B#), + (16#338A#, 16#0070#), + (16#338B#, 16#006E#), + (16#338C#, 16#03BC#), + (16#338D#, 16#03BC#), + (16#338E#, 16#006D#), + (16#338F#, 16#006B#), + (16#3390#, 16#0048#), + (16#3391#, 16#006B#), + (16#3392#, 16#004D#), + (16#3393#, 16#0047#), + (16#3394#, 16#0054#), + (16#3395#, 16#03BC#), + (16#3396#, 16#006D#), + (16#3397#, 16#0064#), + (16#3398#, 16#006B#), + (16#3399#, 16#0066#), + (16#339A#, 16#006E#), + (16#339B#, 16#03BC#), + (16#339C#, 16#006D#), + (16#339D#, 16#0063#), + (16#339E#, 16#006B#), + (16#339F#, 16#006D#), + (16#33A0#, 16#0063#), + (16#33A1#, 16#006D#), + (16#33A2#, 16#006B#), + (16#33A3#, 16#006D#), + (16#33A4#, 16#0063#), + (16#33A5#, 16#006D#), + (16#33A6#, 16#006B#), + (16#33A7#, 16#006D#), + (16#33A8#, 16#006D#), + (16#33A9#, 16#0050#), + (16#33AA#, 16#006B#), + (16#33AB#, 16#004D#), + (16#33AC#, 16#0047#), + (16#33AD#, 16#0072#), + (16#33AE#, 16#0072#), + (16#33AF#, 16#0072#), + (16#33B0#, 16#0070#), + (16#33B1#, 16#006E#), + (16#33B2#, 16#03BC#), + (16#33B3#, 16#006D#), + (16#33B4#, 16#0070#), + (16#33B5#, 16#006E#), + (16#33B6#, 16#03BC#), + (16#33B7#, 16#006D#), + (16#33B8#, 16#006B#), + (16#33B9#, 16#004D#), + (16#33BA#, 16#0070#), + (16#33BB#, 16#006E#), + (16#33BC#, 16#03BC#), + (16#33BD#, 16#006D#), + (16#33BE#, 16#006B#), + (16#33BF#, 16#004D#), + (16#33C0#, 16#006B#), + (16#33C1#, 16#004D#), + (16#33C2#, 16#0061#), + (16#33C3#, 16#0042#), + (16#33C4#, 16#0063#), + (16#33C5#, 16#0063#), + (16#33C6#, 16#0043#), + (16#33C7#, 16#0043#), + (16#33C8#, 16#0064#), + (16#33C9#, 16#0047#), + (16#33CA#, 16#0068#), + (16#33CB#, 16#0048#), + (16#33CC#, 16#0069#), + (16#33CD#, 16#004B#), + (16#33CE#, 16#004B#), + (16#33CF#, 16#006B#), + (16#33D0#, 16#006C#), + (16#33D1#, 16#006C#), + (16#33D2#, 16#006C#), + (16#33D3#, 16#006C#), + (16#33D4#, 16#006D#), + (16#33D5#, 16#006D#), + (16#33D6#, 16#006D#), + (16#33D7#, 16#0050#), + (16#33D8#, 16#0070#), + (16#33D9#, 16#0050#), + (16#33DA#, 16#0050#), + (16#33DB#, 16#0073#), + (16#33DC#, 16#0053#), + (16#33DD#, 16#0057#), + (16#33DE#, 16#0056#), + (16#33DF#, 16#0041#), + (16#33E0#, 16#0031#), + (16#33E1#, 16#0032#), + (16#33E2#, 16#0033#), + (16#33E3#, 16#0034#), + (16#33E4#, 16#0035#), + (16#33E5#, 16#0036#), + (16#33E6#, 16#0037#), + (16#33E7#, 16#0038#), + (16#33E8#, 16#0039#), + (16#33E9#, 16#0031#), + (16#33EA#, 16#0031#), + (16#33EB#, 16#0031#), + (16#33EC#, 16#0031#), + (16#33ED#, 16#0031#), + (16#33EE#, 16#0031#), + (16#33EF#, 16#0031#), + (16#33F0#, 16#0031#), + (16#33F1#, 16#0031#), + (16#33F2#, 16#0031#), + (16#33F3#, 16#0032#), + (16#33F4#, 16#0032#), + (16#33F5#, 16#0032#), + (16#33F6#, 16#0032#), + (16#33F7#, 16#0032#), + (16#33F8#, 16#0032#), + (16#33F9#, 16#0032#), + (16#33FA#, 16#0032#), + (16#33FB#, 16#0032#), + (16#33FC#, 16#0032#), + (16#33FD#, 16#0033#), + (16#33FE#, 16#0033#), + (16#33FF#, 16#0067#), + (16#A69C#, 16#044A#), + (16#A69D#, 16#044C#), + (16#A770#, 16#A76F#), + (16#A7F8#, 16#0126#), + (16#A7F9#, 16#0153#), + (16#AB5C#, 16#A727#), + (16#AB5D#, 16#AB37#), + (16#AB5E#, 16#026B#), + (16#AB5F#, 16#AB52#), + (16#AB69#, 16#028D#), + (16#F900#, 16#8C48#), + (16#F901#, 16#66F4#), + (16#F902#, 16#8ECA#), + (16#F903#, 16#8CC8#), + (16#F904#, 16#6ED1#), + (16#F905#, 16#4E32#), + (16#F906#, 16#53E5#), + (16#F907#, 16#9F9C#), + (16#F908#, 16#9F9C#), + (16#F909#, 16#5951#), + (16#F90A#, 16#91D1#), + (16#F90B#, 16#5587#), + (16#F90C#, 16#5948#), + (16#F90D#, 16#61F6#), + (16#F90E#, 16#7669#), + (16#F90F#, 16#7F85#), + (16#F910#, 16#863F#), + (16#F911#, 16#87BA#), + (16#F912#, 16#88F8#), + (16#F913#, 16#908F#), + (16#F914#, 16#6A02#), + (16#F915#, 16#6D1B#), + (16#F916#, 16#70D9#), + (16#F917#, 16#73DE#), + (16#F918#, 16#843D#), + (16#F919#, 16#916A#), + (16#F91A#, 16#99F1#), + (16#F91B#, 16#4E82#), + (16#F91C#, 16#5375#), + (16#F91D#, 16#6B04#), + (16#F91E#, 16#721B#), + (16#F91F#, 16#862D#), + (16#F920#, 16#9E1E#), + (16#F921#, 16#5D50#), + (16#F922#, 16#6FEB#), + (16#F923#, 16#85CD#), + (16#F924#, 16#8964#), + (16#F925#, 16#62C9#), + (16#F926#, 16#81D8#), + (16#F927#, 16#881F#), + (16#F928#, 16#5ECA#), + (16#F929#, 16#6717#), + (16#F92A#, 16#6D6A#), + (16#F92B#, 16#72FC#), + (16#F92C#, 16#90CE#), + (16#F92D#, 16#4F86#), + (16#F92E#, 16#51B7#), + (16#F92F#, 16#52DE#), + (16#F930#, 16#64C4#), + (16#F931#, 16#6AD3#), + (16#F932#, 16#7210#), + (16#F933#, 16#76E7#), + (16#F934#, 16#8001#), + (16#F935#, 16#8606#), + (16#F936#, 16#865C#), + (16#F937#, 16#8DEF#), + (16#F938#, 16#9732#), + (16#F939#, 16#9B6F#), + (16#F93A#, 16#9DFA#), + (16#F93B#, 16#788C#), + (16#F93C#, 16#797F#), + (16#F93D#, 16#7DA0#), + (16#F93E#, 16#83C9#), + (16#F93F#, 16#9304#), + (16#F940#, 16#9E7F#), + (16#F941#, 16#8AD6#), + (16#F942#, 16#58DF#), + (16#F943#, 16#5F04#), + (16#F944#, 16#7C60#), + (16#F945#, 16#807E#), + (16#F946#, 16#7262#), + (16#F947#, 16#78CA#), + (16#F948#, 16#8CC2#), + (16#F949#, 16#96F7#), + (16#F94A#, 16#58D8#), + (16#F94B#, 16#5C62#), + (16#F94C#, 16#6A13#), + (16#F94D#, 16#6DDA#), + (16#F94E#, 16#6F0F#), + (16#F94F#, 16#7D2F#), + (16#F950#, 16#7E37#), + (16#F951#, 16#964B#), + (16#F952#, 16#52D2#), + (16#F953#, 16#808B#), + (16#F954#, 16#51DC#), + (16#F955#, 16#51CC#), + (16#F956#, 16#7A1C#), + (16#F957#, 16#7DBE#), + (16#F958#, 16#83F1#), + (16#F959#, 16#9675#), + (16#F95A#, 16#8B80#), + (16#F95B#, 16#62CF#), + (16#F95C#, 16#6A02#), + (16#F95D#, 16#8AFE#), + (16#F95E#, 16#4E39#), + (16#F95F#, 16#5BE7#), + (16#F960#, 16#6012#), + (16#F961#, 16#7387#), + (16#F962#, 16#7570#), + (16#F963#, 16#5317#), + (16#F964#, 16#78FB#), + (16#F965#, 16#4FBF#), + (16#F966#, 16#5FA9#), + (16#F967#, 16#4E0D#), + (16#F968#, 16#6CCC#), + (16#F969#, 16#6578#), + (16#F96A#, 16#7D22#), + (16#F96B#, 16#53C3#), + (16#F96C#, 16#585E#), + (16#F96D#, 16#7701#), + (16#F96E#, 16#8449#), + (16#F96F#, 16#8AAA#), + (16#F970#, 16#6BBA#), + (16#F971#, 16#8FB0#), + (16#F972#, 16#6C88#), + (16#F973#, 16#62FE#), + (16#F974#, 16#82E5#), + (16#F975#, 16#63A0#), + (16#F976#, 16#7565#), + (16#F977#, 16#4EAE#), + (16#F978#, 16#5169#), + (16#F979#, 16#51C9#), + (16#F97A#, 16#6881#), + (16#F97B#, 16#7CE7#), + (16#F97C#, 16#826F#), + (16#F97D#, 16#8AD2#), + (16#F97E#, 16#91CF#), + (16#F97F#, 16#52F5#), + (16#F980#, 16#5442#), + (16#F981#, 16#5973#), + (16#F982#, 16#5EEC#), + (16#F983#, 16#65C5#), + (16#F984#, 16#6FFE#), + (16#F985#, 16#792A#), + (16#F986#, 16#95AD#), + (16#F987#, 16#9A6A#), + (16#F988#, 16#9E97#), + (16#F989#, 16#9ECE#), + (16#F98A#, 16#529B#), + (16#F98B#, 16#66C6#), + (16#F98C#, 16#6B77#), + (16#F98D#, 16#8F62#), + (16#F98E#, 16#5E74#), + (16#F98F#, 16#6190#), + (16#F990#, 16#6200#), + (16#F991#, 16#649A#), + (16#F992#, 16#6F23#), + (16#F993#, 16#7149#), + (16#F994#, 16#7489#), + (16#F995#, 16#79CA#), + (16#F996#, 16#7DF4#), + (16#F997#, 16#806F#), + (16#F998#, 16#8F26#), + (16#F999#, 16#84EE#), + (16#F99A#, 16#9023#), + (16#F99B#, 16#934A#), + (16#F99C#, 16#5217#), + (16#F99D#, 16#52A3#), + (16#F99E#, 16#54BD#), + (16#F99F#, 16#70C8#), + (16#F9A0#, 16#88C2#), + (16#F9A1#, 16#8AAA#), + (16#F9A2#, 16#5EC9#), + (16#F9A3#, 16#5FF5#), + (16#F9A4#, 16#637B#), + (16#F9A5#, 16#6BAE#), + (16#F9A6#, 16#7C3E#), + (16#F9A7#, 16#7375#), + (16#F9A8#, 16#4EE4#), + (16#F9A9#, 16#56F9#), + (16#F9AA#, 16#5BE7#), + (16#F9AB#, 16#5DBA#), + (16#F9AC#, 16#601C#), + (16#F9AD#, 16#73B2#), + (16#F9AE#, 16#7469#), + (16#F9AF#, 16#7F9A#), + (16#F9B0#, 16#8046#), + (16#F9B1#, 16#9234#), + (16#F9B2#, 16#96F6#), + (16#F9B3#, 16#9748#), + (16#F9B4#, 16#9818#), + (16#F9B5#, 16#4F8B#), + (16#F9B6#, 16#79AE#), + (16#F9B7#, 16#91B4#), + (16#F9B8#, 16#96B8#), + (16#F9B9#, 16#60E1#), + (16#F9BA#, 16#4E86#), + (16#F9BB#, 16#50DA#), + (16#F9BC#, 16#5BEE#), + (16#F9BD#, 16#5C3F#), + (16#F9BE#, 16#6599#), + (16#F9BF#, 16#6A02#), + (16#F9C0#, 16#71CE#), + (16#F9C1#, 16#7642#), + (16#F9C2#, 16#84FC#), + (16#F9C3#, 16#907C#), + (16#F9C4#, 16#9F8D#), + (16#F9C5#, 16#6688#), + (16#F9C6#, 16#962E#), + (16#F9C7#, 16#5289#), + (16#F9C8#, 16#677B#), + (16#F9C9#, 16#67F3#), + (16#F9CA#, 16#6D41#), + (16#F9CB#, 16#6E9C#), + (16#F9CC#, 16#7409#), + (16#F9CD#, 16#7559#), + (16#F9CE#, 16#786B#), + (16#F9CF#, 16#7D10#), + (16#F9D0#, 16#985E#), + (16#F9D1#, 16#516D#), + (16#F9D2#, 16#622E#), + (16#F9D3#, 16#9678#), + (16#F9D4#, 16#502B#), + (16#F9D5#, 16#5D19#), + (16#F9D6#, 16#6DEA#), + (16#F9D7#, 16#8F2A#), + (16#F9D8#, 16#5F8B#), + (16#F9D9#, 16#6144#), + (16#F9DA#, 16#6817#), + (16#F9DB#, 16#7387#), + (16#F9DC#, 16#9686#), + (16#F9DD#, 16#5229#), + (16#F9DE#, 16#540F#), + (16#F9DF#, 16#5C65#), + (16#F9E0#, 16#6613#), + (16#F9E1#, 16#674E#), + (16#F9E2#, 16#68A8#), + (16#F9E3#, 16#6CE5#), + (16#F9E4#, 16#7406#), + (16#F9E5#, 16#75E2#), + (16#F9E6#, 16#7F79#), + (16#F9E7#, 16#88CF#), + (16#F9E8#, 16#88E1#), + (16#F9E9#, 16#91CC#), + (16#F9EA#, 16#96E2#), + (16#F9EB#, 16#533F#), + (16#F9EC#, 16#6EBA#), + (16#F9ED#, 16#541D#), + (16#F9EE#, 16#71D0#), + (16#F9EF#, 16#7498#), + (16#F9F0#, 16#85FA#), + (16#F9F1#, 16#96A3#), + (16#F9F2#, 16#9C57#), + (16#F9F3#, 16#9E9F#), + (16#F9F4#, 16#6797#), + (16#F9F5#, 16#6DCB#), + (16#F9F6#, 16#81E8#), + (16#F9F7#, 16#7ACB#), + (16#F9F8#, 16#7B20#), + (16#F9F9#, 16#7C92#), + (16#F9FA#, 16#72C0#), + (16#F9FB#, 16#7099#), + (16#F9FC#, 16#8B58#), + (16#F9FD#, 16#4EC0#), + (16#F9FE#, 16#8336#), + (16#F9FF#, 16#523A#), + (16#FA00#, 16#5207#), + (16#FA01#, 16#5EA6#), + (16#FA02#, 16#62D3#), + (16#FA03#, 16#7CD6#), + (16#FA04#, 16#5B85#), + (16#FA05#, 16#6D1E#), + (16#FA06#, 16#66B4#), + (16#FA07#, 16#8F3B#), + (16#FA08#, 16#884C#), + (16#FA09#, 16#964D#), + (16#FA0A#, 16#898B#), + (16#FA0B#, 16#5ED3#), + (16#FA0C#, 16#5140#), + (16#FA0D#, 16#55C0#), + (16#FA10#, 16#585A#), + (16#FA12#, 16#6674#), + (16#FA15#, 16#51DE#), + (16#FA16#, 16#732A#), + (16#FA17#, 16#76CA#), + (16#FA18#, 16#793C#), + (16#FA19#, 16#795E#), + (16#FA1A#, 16#7965#), + (16#FA1B#, 16#798F#), + (16#FA1C#, 16#9756#), + (16#FA1D#, 16#7CBE#), + (16#FA1E#, 16#7FBD#), + (16#FA20#, 16#8612#), + (16#FA22#, 16#8AF8#), + (16#FA25#, 16#9038#), + (16#FA26#, 16#90FD#), + (16#FA2A#, 16#98EF#), + (16#FA2B#, 16#98FC#), + (16#FA2C#, 16#9928#), + (16#FA2D#, 16#9DB4#), + (16#FA2E#, 16#90DE#), + (16#FA2F#, 16#96B7#), + (16#FA30#, 16#4FAE#), + (16#FA31#, 16#50E7#), + (16#FA32#, 16#514D#), + (16#FA33#, 16#52C9#), + (16#FA34#, 16#52E4#), + (16#FA35#, 16#5351#), + (16#FA36#, 16#559D#), + (16#FA37#, 16#5606#), + (16#FA38#, 16#5668#), + (16#FA39#, 16#5840#), + (16#FA3A#, 16#58A8#), + (16#FA3B#, 16#5C64#), + (16#FA3C#, 16#5C6E#), + (16#FA3D#, 16#6094#), + (16#FA3E#, 16#6168#), + (16#FA3F#, 16#618E#), + (16#FA40#, 16#61F2#), + (16#FA41#, 16#654F#), + (16#FA42#, 16#65E2#), + (16#FA43#, 16#6691#), + (16#FA44#, 16#6885#), + (16#FA45#, 16#6D77#), + (16#FA46#, 16#6E1A#), + (16#FA47#, 16#6F22#), + (16#FA48#, 16#716E#), + (16#FA49#, 16#722B#), + (16#FA4A#, 16#7422#), + (16#FA4B#, 16#7891#), + (16#FA4C#, 16#793E#), + (16#FA4D#, 16#7949#), + (16#FA4E#, 16#7948#), + (16#FA4F#, 16#7950#), + (16#FA50#, 16#7956#), + (16#FA51#, 16#795D#), + (16#FA52#, 16#798D#), + (16#FA53#, 16#798E#), + (16#FA54#, 16#7A40#), + (16#FA55#, 16#7A81#), + (16#FA56#, 16#7BC0#), + (16#FA57#, 16#7DF4#), + (16#FA58#, 16#7E09#), + (16#FA59#, 16#7E41#), + (16#FA5A#, 16#7F72#), + (16#FA5B#, 16#8005#), + (16#FA5C#, 16#81ED#), + (16#FA5D#, 16#8279#), + (16#FA5E#, 16#8279#), + (16#FA5F#, 16#8457#), + (16#FA60#, 16#8910#), + (16#FA61#, 16#8996#), + (16#FA62#, 16#8B01#), + (16#FA63#, 16#8B39#), + (16#FA64#, 16#8CD3#), + (16#FA65#, 16#8D08#), + (16#FA66#, 16#8FB6#), + (16#FA67#, 16#9038#), + (16#FA68#, 16#96E3#), + (16#FA69#, 16#97FF#), + (16#FA6A#, 16#983B#), + (16#FA6B#, 16#6075#), + (16#FA6C#, 16#242EE#), + (16#FA6D#, 16#8218#), + (16#FA70#, 16#4E26#), + (16#FA71#, 16#51B5#), + (16#FA72#, 16#5168#), + (16#FA73#, 16#4F80#), + (16#FA74#, 16#5145#), + (16#FA75#, 16#5180#), + (16#FA76#, 16#52C7#), + (16#FA77#, 16#52FA#), + (16#FA78#, 16#559D#), + (16#FA79#, 16#5555#), + (16#FA7A#, 16#5599#), + (16#FA7B#, 16#55E2#), + (16#FA7C#, 16#585A#), + (16#FA7D#, 16#58B3#), + (16#FA7E#, 16#5944#), + (16#FA7F#, 16#5954#), + (16#FA80#, 16#5A62#), + (16#FA81#, 16#5B28#), + (16#FA82#, 16#5ED2#), + (16#FA83#, 16#5ED9#), + (16#FA84#, 16#5F69#), + (16#FA85#, 16#5FAD#), + (16#FA86#, 16#60D8#), + (16#FA87#, 16#614E#), + (16#FA88#, 16#6108#), + (16#FA89#, 16#618E#), + (16#FA8A#, 16#6160#), + (16#FA8B#, 16#61F2#), + (16#FA8C#, 16#6234#), + (16#FA8D#, 16#63C4#), + (16#FA8E#, 16#641C#), + (16#FA8F#, 16#6452#), + (16#FA90#, 16#6556#), + (16#FA91#, 16#6674#), + (16#FA92#, 16#6717#), + (16#FA93#, 16#671B#), + (16#FA94#, 16#6756#), + (16#FA95#, 16#6B79#), + (16#FA96#, 16#6BBA#), + (16#FA97#, 16#6D41#), + (16#FA98#, 16#6EDB#), + (16#FA99#, 16#6ECB#), + (16#FA9A#, 16#6F22#), + (16#FA9B#, 16#701E#), + (16#FA9C#, 16#716E#), + (16#FA9D#, 16#77A7#), + (16#FA9E#, 16#7235#), + (16#FA9F#, 16#72AF#), + (16#FAA0#, 16#732A#), + (16#FAA1#, 16#7471#), + (16#FAA2#, 16#7506#), + (16#FAA3#, 16#753B#), + (16#FAA4#, 16#761D#), + (16#FAA5#, 16#761F#), + (16#FAA6#, 16#76CA#), + (16#FAA7#, 16#76DB#), + (16#FAA8#, 16#76F4#), + (16#FAA9#, 16#774A#), + (16#FAAA#, 16#7740#), + (16#FAAB#, 16#78CC#), + (16#FAAC#, 16#7AB1#), + (16#FAAD#, 16#7BC0#), + (16#FAAE#, 16#7C7B#), + (16#FAAF#, 16#7D5B#), + (16#FAB0#, 16#7DF4#), + (16#FAB1#, 16#7F3E#), + (16#FAB2#, 16#8005#), + (16#FAB3#, 16#8352#), + (16#FAB4#, 16#83EF#), + (16#FAB5#, 16#8779#), + (16#FAB6#, 16#8941#), + (16#FAB7#, 16#8986#), + (16#FAB8#, 16#8996#), + (16#FAB9#, 16#8ABF#), + (16#FABA#, 16#8AF8#), + (16#FABB#, 16#8ACB#), + (16#FABC#, 16#8B01#), + (16#FABD#, 16#8AFE#), + (16#FABE#, 16#8AED#), + (16#FABF#, 16#8B39#), + (16#FAC0#, 16#8B8A#), + (16#FAC1#, 16#8D08#), + (16#FAC2#, 16#8F38#), + (16#FAC3#, 16#9072#), + (16#FAC4#, 16#9199#), + (16#FAC5#, 16#9276#), + (16#FAC6#, 16#967C#), + (16#FAC7#, 16#96E3#), + (16#FAC8#, 16#9756#), + (16#FAC9#, 16#97DB#), + (16#FACA#, 16#97FF#), + (16#FACB#, 16#980B#), + (16#FACC#, 16#983B#), + (16#FACD#, 16#9B12#), + (16#FACE#, 16#9F9C#), + (16#FACF#, 16#2284A#), + (16#FAD0#, 16#22844#), + (16#FAD1#, 16#233D5#), + (16#FAD2#, 16#3B9D#), + (16#FAD3#, 16#4018#), + (16#FAD4#, 16#4039#), + (16#FAD5#, 16#25249#), + (16#FAD6#, 16#25CD0#), + (16#FAD7#, 16#27ED3#), + (16#FAD8#, 16#9F43#), + (16#FAD9#, 16#9F8E#), + (16#FB00#, 16#0066#), + (16#FB01#, 16#0066#), + (16#FB02#, 16#0066#), + (16#FB03#, 16#0066#), + (16#FB04#, 16#0066#), + (16#FB05#, 16#017F#), + (16#FB06#, 16#0073#), + (16#FB13#, 16#0574#), + (16#FB14#, 16#0574#), + (16#FB15#, 16#0574#), + (16#FB16#, 16#057E#), + (16#FB17#, 16#0574#), + (16#FB1D#, 16#05D9#), + (16#FB1F#, 16#05F2#), + (16#FB20#, 16#05E2#), + (16#FB21#, 16#05D0#), + (16#FB22#, 16#05D3#), + (16#FB23#, 16#05D4#), + (16#FB24#, 16#05DB#), + (16#FB25#, 16#05DC#), + (16#FB26#, 16#05DD#), + (16#FB27#, 16#05E8#), + (16#FB28#, 16#05EA#), + (16#FB29#, 16#002B#), + (16#FB2A#, 16#05E9#), + (16#FB2B#, 16#05E9#), + (16#FB2C#, 16#FB49#), + (16#FB2D#, 16#FB49#), + (16#FB2E#, 16#05D0#), + (16#FB2F#, 16#05D0#), + (16#FB30#, 16#05D0#), + (16#FB31#, 16#05D1#), + (16#FB32#, 16#05D2#), + (16#FB33#, 16#05D3#), + (16#FB34#, 16#05D4#), + (16#FB35#, 16#05D5#), + (16#FB36#, 16#05D6#), + (16#FB38#, 16#05D8#), + (16#FB39#, 16#05D9#), + (16#FB3A#, 16#05DA#), + (16#FB3B#, 16#05DB#), + (16#FB3C#, 16#05DC#), + (16#FB3E#, 16#05DE#), + (16#FB40#, 16#05E0#), + (16#FB41#, 16#05E1#), + (16#FB43#, 16#05E3#), + (16#FB44#, 16#05E4#), + (16#FB46#, 16#05E6#), + (16#FB47#, 16#05E7#), + (16#FB48#, 16#05E8#), + (16#FB49#, 16#05E9#), + (16#FB4A#, 16#05EA#), + (16#FB4B#, 16#05D5#), + (16#FB4C#, 16#05D1#), + (16#FB4D#, 16#05DB#), + (16#FB4E#, 16#05E4#), + (16#FB4F#, 16#05D0#), + (16#FB50#, 16#0671#), + (16#FB51#, 16#0671#), + (16#FB52#, 16#067B#), + (16#FB53#, 16#067B#), + (16#FB54#, 16#067B#), + (16#FB55#, 16#067B#), + (16#FB56#, 16#067E#), + (16#FB57#, 16#067E#), + (16#FB58#, 16#067E#), + (16#FB59#, 16#067E#), + (16#FB5A#, 16#0680#), + (16#FB5B#, 16#0680#), + (16#FB5C#, 16#0680#), + (16#FB5D#, 16#0680#), + (16#FB5E#, 16#067A#), + (16#FB5F#, 16#067A#), + (16#FB60#, 16#067A#), + (16#FB61#, 16#067A#), + (16#FB62#, 16#067F#), + (16#FB63#, 16#067F#), + (16#FB64#, 16#067F#), + (16#FB65#, 16#067F#), + (16#FB66#, 16#0679#), + (16#FB67#, 16#0679#), + (16#FB68#, 16#0679#), + (16#FB69#, 16#0679#), + (16#FB6A#, 16#06A4#), + (16#FB6B#, 16#06A4#), + (16#FB6C#, 16#06A4#), + (16#FB6D#, 16#06A4#), + (16#FB6E#, 16#06A6#), + (16#FB6F#, 16#06A6#), + (16#FB70#, 16#06A6#), + (16#FB71#, 16#06A6#), + (16#FB72#, 16#0684#), + (16#FB73#, 16#0684#), + (16#FB74#, 16#0684#), + (16#FB75#, 16#0684#), + (16#FB76#, 16#0683#), + (16#FB77#, 16#0683#), + (16#FB78#, 16#0683#), + (16#FB79#, 16#0683#), + (16#FB7A#, 16#0686#), + (16#FB7B#, 16#0686#), + (16#FB7C#, 16#0686#), + (16#FB7D#, 16#0686#), + (16#FB7E#, 16#0687#), + (16#FB7F#, 16#0687#), + (16#FB80#, 16#0687#), + (16#FB81#, 16#0687#), + (16#FB82#, 16#068D#), + (16#FB83#, 16#068D#), + (16#FB84#, 16#068C#), + (16#FB85#, 16#068C#), + (16#FB86#, 16#068E#), + (16#FB87#, 16#068E#), + (16#FB88#, 16#0688#), + (16#FB89#, 16#0688#), + (16#FB8A#, 16#0698#), + (16#FB8B#, 16#0698#), + (16#FB8C#, 16#0691#), + (16#FB8D#, 16#0691#), + (16#FB8E#, 16#06A9#), + (16#FB8F#, 16#06A9#), + (16#FB90#, 16#06A9#), + (16#FB91#, 16#06A9#), + (16#FB92#, 16#06AF#), + (16#FB93#, 16#06AF#), + (16#FB94#, 16#06AF#), + (16#FB95#, 16#06AF#), + (16#FB96#, 16#06B3#), + (16#FB97#, 16#06B3#), + (16#FB98#, 16#06B3#), + (16#FB99#, 16#06B3#), + (16#FB9A#, 16#06B1#), + (16#FB9B#, 16#06B1#), + (16#FB9C#, 16#06B1#), + (16#FB9D#, 16#06B1#), + (16#FB9E#, 16#06BA#), + (16#FB9F#, 16#06BA#), + (16#FBA0#, 16#06BB#), + (16#FBA1#, 16#06BB#), + (16#FBA2#, 16#06BB#), + (16#FBA3#, 16#06BB#), + (16#FBA4#, 16#06C0#), + (16#FBA5#, 16#06C0#), + (16#FBA6#, 16#06C1#), + (16#FBA7#, 16#06C1#), + (16#FBA8#, 16#06C1#), + (16#FBA9#, 16#06C1#), + (16#FBAA#, 16#06BE#), + (16#FBAB#, 16#06BE#), + (16#FBAC#, 16#06BE#), + (16#FBAD#, 16#06BE#), + (16#FBAE#, 16#06D2#), + (16#FBAF#, 16#06D2#), + (16#FBB0#, 16#06D3#), + (16#FBB1#, 16#06D3#), + (16#FBD3#, 16#06AD#), + (16#FBD4#, 16#06AD#), + (16#FBD5#, 16#06AD#), + (16#FBD6#, 16#06AD#), + (16#FBD7#, 16#06C7#), + (16#FBD8#, 16#06C7#), + (16#FBD9#, 16#06C6#), + (16#FBDA#, 16#06C6#), + (16#FBDB#, 16#06C8#), + (16#FBDC#, 16#06C8#), + (16#FBDD#, 16#0677#), + (16#FBDE#, 16#06CB#), + (16#FBDF#, 16#06CB#), + (16#FBE0#, 16#06C5#), + (16#FBE1#, 16#06C5#), + (16#FBE2#, 16#06C9#), + (16#FBE3#, 16#06C9#), + (16#FBE4#, 16#06D0#), + (16#FBE5#, 16#06D0#), + (16#FBE6#, 16#06D0#), + (16#FBE7#, 16#06D0#), + (16#FBE8#, 16#0649#), + (16#FBE9#, 16#0649#), + (16#FBEA#, 16#0626#), + (16#FBEB#, 16#0626#), + (16#FBEC#, 16#0626#), + (16#FBED#, 16#0626#), + (16#FBEE#, 16#0626#), + (16#FBEF#, 16#0626#), + (16#FBF0#, 16#0626#), + (16#FBF1#, 16#0626#), + (16#FBF2#, 16#0626#), + (16#FBF3#, 16#0626#), + (16#FBF4#, 16#0626#), + (16#FBF5#, 16#0626#), + (16#FBF6#, 16#0626#), + (16#FBF7#, 16#0626#), + (16#FBF8#, 16#0626#), + (16#FBF9#, 16#0626#), + (16#FBFA#, 16#0626#), + (16#FBFB#, 16#0626#), + (16#FBFC#, 16#06CC#), + (16#FBFD#, 16#06CC#), + (16#FBFE#, 16#06CC#), + (16#FBFF#, 16#06CC#), + (16#FC00#, 16#0626#), + (16#FC01#, 16#0626#), + (16#FC02#, 16#0626#), + (16#FC03#, 16#0626#), + (16#FC04#, 16#0626#), + (16#FC05#, 16#0628#), + (16#FC06#, 16#0628#), + (16#FC07#, 16#0628#), + (16#FC08#, 16#0628#), + (16#FC09#, 16#0628#), + (16#FC0A#, 16#0628#), + (16#FC0B#, 16#062A#), + (16#FC0C#, 16#062A#), + (16#FC0D#, 16#062A#), + (16#FC0E#, 16#062A#), + (16#FC0F#, 16#062A#), + (16#FC10#, 16#062A#), + (16#FC11#, 16#062B#), + (16#FC12#, 16#062B#), + (16#FC13#, 16#062B#), + (16#FC14#, 16#062B#), + (16#FC15#, 16#062C#), + (16#FC16#, 16#062C#), + (16#FC17#, 16#062D#), + (16#FC18#, 16#062D#), + (16#FC19#, 16#062E#), + (16#FC1A#, 16#062E#), + (16#FC1B#, 16#062E#), + (16#FC1C#, 16#0633#), + (16#FC1D#, 16#0633#), + (16#FC1E#, 16#0633#), + (16#FC1F#, 16#0633#), + (16#FC20#, 16#0635#), + (16#FC21#, 16#0635#), + (16#FC22#, 16#0636#), + (16#FC23#, 16#0636#), + (16#FC24#, 16#0636#), + (16#FC25#, 16#0636#), + (16#FC26#, 16#0637#), + (16#FC27#, 16#0637#), + (16#FC28#, 16#0638#), + (16#FC29#, 16#0639#), + (16#FC2A#, 16#0639#), + (16#FC2B#, 16#063A#), + (16#FC2C#, 16#063A#), + (16#FC2D#, 16#0641#), + (16#FC2E#, 16#0641#), + (16#FC2F#, 16#0641#), + (16#FC30#, 16#0641#), + (16#FC31#, 16#0641#), + (16#FC32#, 16#0641#), + (16#FC33#, 16#0642#), + (16#FC34#, 16#0642#), + (16#FC35#, 16#0642#), + (16#FC36#, 16#0642#), + (16#FC37#, 16#0643#), + (16#FC38#, 16#0643#), + (16#FC39#, 16#0643#), + (16#FC3A#, 16#0643#), + (16#FC3B#, 16#0643#), + (16#FC3C#, 16#0643#), + (16#FC3D#, 16#0643#), + (16#FC3E#, 16#0643#), + (16#FC3F#, 16#0644#), + (16#FC40#, 16#0644#), + (16#FC41#, 16#0644#), + (16#FC42#, 16#0644#), + (16#FC43#, 16#0644#), + (16#FC44#, 16#0644#), + (16#FC45#, 16#0645#), + (16#FC46#, 16#0645#), + (16#FC47#, 16#0645#), + (16#FC48#, 16#0645#), + (16#FC49#, 16#0645#), + (16#FC4A#, 16#0645#), + (16#FC4B#, 16#0646#), + (16#FC4C#, 16#0646#), + (16#FC4D#, 16#0646#), + (16#FC4E#, 16#0646#), + (16#FC4F#, 16#0646#), + (16#FC50#, 16#0646#), + (16#FC51#, 16#0647#), + (16#FC52#, 16#0647#), + (16#FC53#, 16#0647#), + (16#FC54#, 16#0647#), + (16#FC55#, 16#064A#), + (16#FC56#, 16#064A#), + (16#FC57#, 16#064A#), + (16#FC58#, 16#064A#), + (16#FC59#, 16#064A#), + (16#FC5A#, 16#064A#), + (16#FC5B#, 16#0630#), + (16#FC5C#, 16#0631#), + (16#FC5D#, 16#0649#), + (16#FC5E#, 16#0020#), + (16#FC5F#, 16#0020#), + (16#FC60#, 16#0020#), + (16#FC61#, 16#0020#), + (16#FC62#, 16#0020#), + (16#FC63#, 16#0020#), + (16#FC64#, 16#0626#), + (16#FC65#, 16#0626#), + (16#FC66#, 16#0626#), + (16#FC67#, 16#0626#), + (16#FC68#, 16#0626#), + (16#FC69#, 16#0626#), + (16#FC6A#, 16#0628#), + (16#FC6B#, 16#0628#), + (16#FC6C#, 16#0628#), + (16#FC6D#, 16#0628#), + (16#FC6E#, 16#0628#), + (16#FC6F#, 16#0628#), + (16#FC70#, 16#062A#), + (16#FC71#, 16#062A#), + (16#FC72#, 16#062A#), + (16#FC73#, 16#062A#), + (16#FC74#, 16#062A#), + (16#FC75#, 16#062A#), + (16#FC76#, 16#062B#), + (16#FC77#, 16#062B#), + (16#FC78#, 16#062B#), + (16#FC79#, 16#062B#), + (16#FC7A#, 16#062B#), + (16#FC7B#, 16#062B#), + (16#FC7C#, 16#0641#), + (16#FC7D#, 16#0641#), + (16#FC7E#, 16#0642#), + (16#FC7F#, 16#0642#), + (16#FC80#, 16#0643#), + (16#FC81#, 16#0643#), + (16#FC82#, 16#0643#), + (16#FC83#, 16#0643#), + (16#FC84#, 16#0643#), + (16#FC85#, 16#0644#), + (16#FC86#, 16#0644#), + (16#FC87#, 16#0644#), + (16#FC88#, 16#0645#), + (16#FC89#, 16#0645#), + (16#FC8A#, 16#0646#), + (16#FC8B#, 16#0646#), + (16#FC8C#, 16#0646#), + (16#FC8D#, 16#0646#), + (16#FC8E#, 16#0646#), + (16#FC8F#, 16#0646#), + (16#FC90#, 16#0649#), + (16#FC91#, 16#064A#), + (16#FC92#, 16#064A#), + (16#FC93#, 16#064A#), + (16#FC94#, 16#064A#), + (16#FC95#, 16#064A#), + (16#FC96#, 16#064A#), + (16#FC97#, 16#0626#), + (16#FC98#, 16#0626#), + (16#FC99#, 16#0626#), + (16#FC9A#, 16#0626#), + (16#FC9B#, 16#0626#), + (16#FC9C#, 16#0628#), + (16#FC9D#, 16#0628#), + (16#FC9E#, 16#0628#), + (16#FC9F#, 16#0628#), + (16#FCA0#, 16#0628#), + (16#FCA1#, 16#062A#), + (16#FCA2#, 16#062A#), + (16#FCA3#, 16#062A#), + (16#FCA4#, 16#062A#), + (16#FCA5#, 16#062A#), + (16#FCA6#, 16#062B#), + (16#FCA7#, 16#062C#), + (16#FCA8#, 16#062C#), + (16#FCA9#, 16#062D#), + (16#FCAA#, 16#062D#), + (16#FCAB#, 16#062E#), + (16#FCAC#, 16#062E#), + (16#FCAD#, 16#0633#), + (16#FCAE#, 16#0633#), + (16#FCAF#, 16#0633#), + (16#FCB0#, 16#0633#), + (16#FCB1#, 16#0635#), + (16#FCB2#, 16#0635#), + (16#FCB3#, 16#0635#), + (16#FCB4#, 16#0636#), + (16#FCB5#, 16#0636#), + (16#FCB6#, 16#0636#), + (16#FCB7#, 16#0636#), + (16#FCB8#, 16#0637#), + (16#FCB9#, 16#0638#), + (16#FCBA#, 16#0639#), + (16#FCBB#, 16#0639#), + (16#FCBC#, 16#063A#), + (16#FCBD#, 16#063A#), + (16#FCBE#, 16#0641#), + (16#FCBF#, 16#0641#), + (16#FCC0#, 16#0641#), + (16#FCC1#, 16#0641#), + (16#FCC2#, 16#0642#), + (16#FCC3#, 16#0642#), + (16#FCC4#, 16#0643#), + (16#FCC5#, 16#0643#), + (16#FCC6#, 16#0643#), + (16#FCC7#, 16#0643#), + (16#FCC8#, 16#0643#), + (16#FCC9#, 16#0644#), + (16#FCCA#, 16#0644#), + (16#FCCB#, 16#0644#), + (16#FCCC#, 16#0644#), + (16#FCCD#, 16#0644#), + (16#FCCE#, 16#0645#), + (16#FCCF#, 16#0645#), + (16#FCD0#, 16#0645#), + (16#FCD1#, 16#0645#), + (16#FCD2#, 16#0646#), + (16#FCD3#, 16#0646#), + (16#FCD4#, 16#0646#), + (16#FCD5#, 16#0646#), + (16#FCD6#, 16#0646#), + (16#FCD7#, 16#0647#), + (16#FCD8#, 16#0647#), + (16#FCD9#, 16#0647#), + (16#FCDA#, 16#064A#), + (16#FCDB#, 16#064A#), + (16#FCDC#, 16#064A#), + (16#FCDD#, 16#064A#), + (16#FCDE#, 16#064A#), + (16#FCDF#, 16#0626#), + (16#FCE0#, 16#0626#), + (16#FCE1#, 16#0628#), + (16#FCE2#, 16#0628#), + (16#FCE3#, 16#062A#), + (16#FCE4#, 16#062A#), + (16#FCE5#, 16#062B#), + (16#FCE6#, 16#062B#), + (16#FCE7#, 16#0633#), + (16#FCE8#, 16#0633#), + (16#FCE9#, 16#0634#), + (16#FCEA#, 16#0634#), + (16#FCEB#, 16#0643#), + (16#FCEC#, 16#0643#), + (16#FCED#, 16#0644#), + (16#FCEE#, 16#0646#), + (16#FCEF#, 16#0646#), + (16#FCF0#, 16#064A#), + (16#FCF1#, 16#064A#), + (16#FCF2#, 16#0640#), + (16#FCF3#, 16#0640#), + (16#FCF4#, 16#0640#), + (16#FCF5#, 16#0637#), + (16#FCF6#, 16#0637#), + (16#FCF7#, 16#0639#), + (16#FCF8#, 16#0639#), + (16#FCF9#, 16#063A#), + (16#FCFA#, 16#063A#), + (16#FCFB#, 16#0633#), + (16#FCFC#, 16#0633#), + (16#FCFD#, 16#0634#), + (16#FCFE#, 16#0634#), + (16#FCFF#, 16#062D#), + (16#FD00#, 16#062D#), + (16#FD01#, 16#062C#), + (16#FD02#, 16#062C#), + (16#FD03#, 16#062E#), + (16#FD04#, 16#062E#), + (16#FD05#, 16#0635#), + (16#FD06#, 16#0635#), + (16#FD07#, 16#0636#), + (16#FD08#, 16#0636#), + (16#FD09#, 16#0634#), + (16#FD0A#, 16#0634#), + (16#FD0B#, 16#0634#), + (16#FD0C#, 16#0634#), + (16#FD0D#, 16#0634#), + (16#FD0E#, 16#0633#), + (16#FD0F#, 16#0635#), + (16#FD10#, 16#0636#), + (16#FD11#, 16#0637#), + (16#FD12#, 16#0637#), + (16#FD13#, 16#0639#), + (16#FD14#, 16#0639#), + (16#FD15#, 16#063A#), + (16#FD16#, 16#063A#), + (16#FD17#, 16#0633#), + (16#FD18#, 16#0633#), + (16#FD19#, 16#0634#), + (16#FD1A#, 16#0634#), + (16#FD1B#, 16#062D#), + (16#FD1C#, 16#062D#), + (16#FD1D#, 16#062C#), + (16#FD1E#, 16#062C#), + (16#FD1F#, 16#062E#), + (16#FD20#, 16#062E#), + (16#FD21#, 16#0635#), + (16#FD22#, 16#0635#), + (16#FD23#, 16#0636#), + (16#FD24#, 16#0636#), + (16#FD25#, 16#0634#), + (16#FD26#, 16#0634#), + (16#FD27#, 16#0634#), + (16#FD28#, 16#0634#), + (16#FD29#, 16#0634#), + (16#FD2A#, 16#0633#), + (16#FD2B#, 16#0635#), + (16#FD2C#, 16#0636#), + (16#FD2D#, 16#0634#), + (16#FD2E#, 16#0634#), + (16#FD2F#, 16#0634#), + (16#FD30#, 16#0634#), + (16#FD31#, 16#0633#), + (16#FD32#, 16#0634#), + (16#FD33#, 16#0637#), + (16#FD34#, 16#0633#), + (16#FD35#, 16#0633#), + (16#FD36#, 16#0633#), + (16#FD37#, 16#0634#), + (16#FD38#, 16#0634#), + (16#FD39#, 16#0634#), + (16#FD3A#, 16#0637#), + (16#FD3B#, 16#0638#), + (16#FD3C#, 16#0627#), + (16#FD3D#, 16#0627#), + (16#FD50#, 16#062A#), + (16#FD51#, 16#062A#), + (16#FD52#, 16#062A#), + (16#FD53#, 16#062A#), + (16#FD54#, 16#062A#), + (16#FD55#, 16#062A#), + (16#FD56#, 16#062A#), + (16#FD57#, 16#062A#), + (16#FD58#, 16#062C#), + (16#FD59#, 16#062C#), + (16#FD5A#, 16#062D#), + (16#FD5B#, 16#062D#), + (16#FD5C#, 16#0633#), + (16#FD5D#, 16#0633#), + (16#FD5E#, 16#0633#), + (16#FD5F#, 16#0633#), + (16#FD60#, 16#0633#), + (16#FD61#, 16#0633#), + (16#FD62#, 16#0633#), + (16#FD63#, 16#0633#), + (16#FD64#, 16#0635#), + (16#FD65#, 16#0635#), + (16#FD66#, 16#0635#), + (16#FD67#, 16#0634#), + (16#FD68#, 16#0634#), + (16#FD69#, 16#0634#), + (16#FD6A#, 16#0634#), + (16#FD6B#, 16#0634#), + (16#FD6C#, 16#0634#), + (16#FD6D#, 16#0634#), + (16#FD6E#, 16#0636#), + (16#FD6F#, 16#0636#), + (16#FD70#, 16#0636#), + (16#FD71#, 16#0637#), + (16#FD72#, 16#0637#), + (16#FD73#, 16#0637#), + (16#FD74#, 16#0637#), + (16#FD75#, 16#0639#), + (16#FD76#, 16#0639#), + (16#FD77#, 16#0639#), + (16#FD78#, 16#0639#), + (16#FD79#, 16#063A#), + (16#FD7A#, 16#063A#), + (16#FD7B#, 16#063A#), + (16#FD7C#, 16#0641#), + (16#FD7D#, 16#0641#), + (16#FD7E#, 16#0642#), + (16#FD7F#, 16#0642#), + (16#FD80#, 16#0644#), + (16#FD81#, 16#0644#), + (16#FD82#, 16#0644#), + (16#FD83#, 16#0644#), + (16#FD84#, 16#0644#), + (16#FD85#, 16#0644#), + (16#FD86#, 16#0644#), + (16#FD87#, 16#0644#), + (16#FD88#, 16#0644#), + (16#FD89#, 16#0645#), + (16#FD8A#, 16#0645#), + (16#FD8B#, 16#0645#), + (16#FD8C#, 16#0645#), + (16#FD8D#, 16#0645#), + (16#FD8E#, 16#0645#), + (16#FD8F#, 16#0645#), + (16#FD92#, 16#0645#), + (16#FD93#, 16#0647#), + (16#FD94#, 16#0647#), + (16#FD95#, 16#0646#), + (16#FD96#, 16#0646#), + (16#FD97#, 16#0646#), + (16#FD98#, 16#0646#), + (16#FD99#, 16#0646#), + (16#FD9A#, 16#0646#), + (16#FD9B#, 16#0646#), + (16#FD9C#, 16#064A#), + (16#FD9D#, 16#064A#), + (16#FD9E#, 16#0628#), + (16#FD9F#, 16#062A#), + (16#FDA0#, 16#062A#), + (16#FDA1#, 16#062A#), + (16#FDA2#, 16#062A#), + (16#FDA3#, 16#062A#), + (16#FDA4#, 16#062A#), + (16#FDA5#, 16#062C#), + (16#FDA6#, 16#062C#), + (16#FDA7#, 16#062C#), + (16#FDA8#, 16#0633#), + (16#FDA9#, 16#0635#), + (16#FDAA#, 16#0634#), + (16#FDAB#, 16#0636#), + (16#FDAC#, 16#0644#), + (16#FDAD#, 16#0644#), + (16#FDAE#, 16#064A#), + (16#FDAF#, 16#064A#), + (16#FDB0#, 16#064A#), + (16#FDB1#, 16#0645#), + (16#FDB2#, 16#0642#), + (16#FDB3#, 16#0646#), + (16#FDB4#, 16#0642#), + (16#FDB5#, 16#0644#), + (16#FDB6#, 16#0639#), + (16#FDB7#, 16#0643#), + (16#FDB8#, 16#0646#), + (16#FDB9#, 16#0645#), + (16#FDBA#, 16#0644#), + (16#FDBB#, 16#0643#), + (16#FDBC#, 16#0644#), + (16#FDBD#, 16#0646#), + (16#FDBE#, 16#062C#), + (16#FDBF#, 16#062D#), + (16#FDC0#, 16#0645#), + (16#FDC1#, 16#0641#), + (16#FDC2#, 16#0628#), + (16#FDC3#, 16#0643#), + (16#FDC4#, 16#0639#), + (16#FDC5#, 16#0635#), + (16#FDC6#, 16#0633#), + (16#FDC7#, 16#0646#), + (16#FDF0#, 16#0635#), + (16#FDF1#, 16#0642#), + (16#FDF2#, 16#0627#), + (16#FDF3#, 16#0627#), + (16#FDF4#, 16#0645#), + (16#FDF5#, 16#0635#), + (16#FDF6#, 16#0631#), + (16#FDF7#, 16#0639#), + (16#FDF8#, 16#0648#), + (16#FDF9#, 16#0635#), + (16#FDFA#, 16#0635#), + (16#FDFB#, 16#062C#), + (16#FDFC#, 16#0631#), + (16#FE10#, 16#002C#), + (16#FE11#, 16#3001#), + (16#FE12#, 16#3002#), + (16#FE13#, 16#003A#), + (16#FE14#, 16#003B#), + (16#FE15#, 16#0021#), + (16#FE16#, 16#003F#), + (16#FE17#, 16#3016#), + (16#FE18#, 16#3017#), + (16#FE19#, 16#2026#), + (16#FE30#, 16#2025#), + (16#FE31#, 16#2014#), + (16#FE32#, 16#2013#), + (16#FE33#, 16#005F#), + (16#FE34#, 16#005F#), + (16#FE35#, 16#0028#), + (16#FE36#, 16#0029#), + (16#FE37#, 16#007B#), + (16#FE38#, 16#007D#), + (16#FE39#, 16#3014#), + (16#FE3A#, 16#3015#), + (16#FE3B#, 16#3010#), + (16#FE3C#, 16#3011#), + (16#FE3D#, 16#300A#), + (16#FE3E#, 16#300B#), + (16#FE3F#, 16#3008#), + (16#FE40#, 16#3009#), + (16#FE41#, 16#300C#), + (16#FE42#, 16#300D#), + (16#FE43#, 16#300E#), + (16#FE44#, 16#300F#), + (16#FE47#, 16#005B#), + (16#FE48#, 16#005D#), + (16#FE49#, 16#203E#), + (16#FE4A#, 16#203E#), + (16#FE4B#, 16#203E#), + (16#FE4C#, 16#203E#), + (16#FE4D#, 16#005F#), + (16#FE4E#, 16#005F#), + (16#FE4F#, 16#005F#), + (16#FE50#, 16#002C#), + (16#FE51#, 16#3001#), + (16#FE52#, 16#002E#), + (16#FE54#, 16#003B#), + (16#FE55#, 16#003A#), + (16#FE56#, 16#003F#), + (16#FE57#, 16#0021#), + (16#FE58#, 16#2014#), + (16#FE59#, 16#0028#), + (16#FE5A#, 16#0029#), + (16#FE5B#, 16#007B#), + (16#FE5C#, 16#007D#), + (16#FE5D#, 16#3014#), + (16#FE5E#, 16#3015#), + (16#FE5F#, 16#0023#), + (16#FE60#, 16#0026#), + (16#FE61#, 16#002A#), + (16#FE62#, 16#002B#), + (16#FE63#, 16#002D#), + (16#FE64#, 16#003C#), + (16#FE65#, 16#003E#), + (16#FE66#, 16#003D#), + (16#FE68#, 16#005C#), + (16#FE69#, 16#0024#), + (16#FE6A#, 16#0025#), + (16#FE6B#, 16#0040#), + (16#FE70#, 16#0020#), + (16#FE71#, 16#0640#), + (16#FE72#, 16#0020#), + (16#FE74#, 16#0020#), + (16#FE76#, 16#0020#), + (16#FE77#, 16#0640#), + (16#FE78#, 16#0020#), + (16#FE79#, 16#0640#), + (16#FE7A#, 16#0020#), + (16#FE7B#, 16#0640#), + (16#FE7C#, 16#0020#), + (16#FE7D#, 16#0640#), + (16#FE7E#, 16#0020#), + (16#FE7F#, 16#0640#), + (16#FE80#, 16#0621#), + (16#FE81#, 16#0622#), + (16#FE82#, 16#0622#), + (16#FE83#, 16#0623#), + (16#FE84#, 16#0623#), + (16#FE85#, 16#0624#), + (16#FE86#, 16#0624#), + (16#FE87#, 16#0625#), + (16#FE88#, 16#0625#), + (16#FE89#, 16#0626#), + (16#FE8A#, 16#0626#), + (16#FE8B#, 16#0626#), + (16#FE8C#, 16#0626#), + (16#FE8D#, 16#0627#), + (16#FE8E#, 16#0627#), + (16#FE8F#, 16#0628#), + (16#FE90#, 16#0628#), + (16#FE91#, 16#0628#), + (16#FE92#, 16#0628#), + (16#FE93#, 16#0629#), + (16#FE94#, 16#0629#), + (16#FE95#, 16#062A#), + (16#FE96#, 16#062A#), + (16#FE97#, 16#062A#), + (16#FE98#, 16#062A#), + (16#FE99#, 16#062B#), + (16#FE9A#, 16#062B#), + (16#FE9B#, 16#062B#), + (16#FE9C#, 16#062B#), + (16#FE9D#, 16#062C#), + (16#FE9E#, 16#062C#), + (16#FE9F#, 16#062C#), + (16#FEA0#, 16#062C#), + (16#FEA1#, 16#062D#), + (16#FEA2#, 16#062D#), + (16#FEA3#, 16#062D#), + (16#FEA4#, 16#062D#), + (16#FEA5#, 16#062E#), + (16#FEA6#, 16#062E#), + (16#FEA7#, 16#062E#), + (16#FEA8#, 16#062E#), + (16#FEA9#, 16#062F#), + (16#FEAA#, 16#062F#), + (16#FEAB#, 16#0630#), + (16#FEAC#, 16#0630#), + (16#FEAD#, 16#0631#), + (16#FEAE#, 16#0631#), + (16#FEAF#, 16#0632#), + (16#FEB0#, 16#0632#), + (16#FEB1#, 16#0633#), + (16#FEB2#, 16#0633#), + (16#FEB3#, 16#0633#), + (16#FEB4#, 16#0633#), + (16#FEB5#, 16#0634#), + (16#FEB6#, 16#0634#), + (16#FEB7#, 16#0634#), + (16#FEB8#, 16#0634#), + (16#FEB9#, 16#0635#), + (16#FEBA#, 16#0635#), + (16#FEBB#, 16#0635#), + (16#FEBC#, 16#0635#), + (16#FEBD#, 16#0636#), + (16#FEBE#, 16#0636#), + (16#FEBF#, 16#0636#), + (16#FEC0#, 16#0636#), + (16#FEC1#, 16#0637#), + (16#FEC2#, 16#0637#), + (16#FEC3#, 16#0637#), + (16#FEC4#, 16#0637#), + (16#FEC5#, 16#0638#), + (16#FEC6#, 16#0638#), + (16#FEC7#, 16#0638#), + (16#FEC8#, 16#0638#), + (16#FEC9#, 16#0639#), + (16#FECA#, 16#0639#), + (16#FECB#, 16#0639#), + (16#FECC#, 16#0639#), + (16#FECD#, 16#063A#), + (16#FECE#, 16#063A#), + (16#FECF#, 16#063A#), + (16#FED0#, 16#063A#), + (16#FED1#, 16#0641#), + (16#FED2#, 16#0641#), + (16#FED3#, 16#0641#), + (16#FED4#, 16#0641#), + (16#FED5#, 16#0642#), + (16#FED6#, 16#0642#), + (16#FED7#, 16#0642#), + (16#FED8#, 16#0642#), + (16#FED9#, 16#0643#), + (16#FEDA#, 16#0643#), + (16#FEDB#, 16#0643#), + (16#FEDC#, 16#0643#), + (16#FEDD#, 16#0644#), + (16#FEDE#, 16#0644#), + (16#FEDF#, 16#0644#), + (16#FEE0#, 16#0644#), + (16#FEE1#, 16#0645#), + (16#FEE2#, 16#0645#), + (16#FEE3#, 16#0645#), + (16#FEE4#, 16#0645#), + (16#FEE5#, 16#0646#), + (16#FEE6#, 16#0646#), + (16#FEE7#, 16#0646#), + (16#FEE8#, 16#0646#), + (16#FEE9#, 16#0647#), + (16#FEEA#, 16#0647#), + (16#FEEB#, 16#0647#), + (16#FEEC#, 16#0647#), + (16#FEED#, 16#0648#), + (16#FEEE#, 16#0648#), + (16#FEEF#, 16#0649#), + (16#FEF0#, 16#0649#), + (16#FEF1#, 16#064A#), + (16#FEF2#, 16#064A#), + (16#FEF3#, 16#064A#), + (16#FEF4#, 16#064A#), + (16#FEF5#, 16#0644#), + (16#FEF6#, 16#0644#), + (16#FEF7#, 16#0644#), + (16#FEF8#, 16#0644#), + (16#FEF9#, 16#0644#), + (16#FEFA#, 16#0644#), + (16#FEFB#, 16#0644#), + (16#FEFC#, 16#0644#), + (16#FF01#, 16#0021#), + (16#FF02#, 16#0022#), + (16#FF03#, 16#0023#), + (16#FF04#, 16#0024#), + (16#FF05#, 16#0025#), + (16#FF06#, 16#0026#), + (16#FF07#, 16#0027#), + (16#FF08#, 16#0028#), + (16#FF09#, 16#0029#), + (16#FF0A#, 16#002A#), + (16#FF0B#, 16#002B#), + (16#FF0C#, 16#002C#), + (16#FF0D#, 16#002D#), + (16#FF0E#, 16#002E#), + (16#FF0F#, 16#002F#), + (16#FF10#, 16#0030#), + (16#FF11#, 16#0031#), + (16#FF12#, 16#0032#), + (16#FF13#, 16#0033#), + (16#FF14#, 16#0034#), + (16#FF15#, 16#0035#), + (16#FF16#, 16#0036#), + (16#FF17#, 16#0037#), + (16#FF18#, 16#0038#), + (16#FF19#, 16#0039#), + (16#FF1A#, 16#003A#), + (16#FF1B#, 16#003B#), + (16#FF1C#, 16#003C#), + (16#FF1D#, 16#003D#), + (16#FF1E#, 16#003E#), + (16#FF1F#, 16#003F#), + (16#FF20#, 16#0040#), + (16#FF21#, 16#0041#), + (16#FF22#, 16#0042#), + (16#FF23#, 16#0043#), + (16#FF24#, 16#0044#), + (16#FF25#, 16#0045#), + (16#FF26#, 16#0046#), + (16#FF27#, 16#0047#), + (16#FF28#, 16#0048#), + (16#FF29#, 16#0049#), + (16#FF2A#, 16#004A#), + (16#FF2B#, 16#004B#), + (16#FF2C#, 16#004C#), + (16#FF2D#, 16#004D#), + (16#FF2E#, 16#004E#), + (16#FF2F#, 16#004F#), + (16#FF30#, 16#0050#), + (16#FF31#, 16#0051#), + (16#FF32#, 16#0052#), + (16#FF33#, 16#0053#), + (16#FF34#, 16#0054#), + (16#FF35#, 16#0055#), + (16#FF36#, 16#0056#), + (16#FF37#, 16#0057#), + (16#FF38#, 16#0058#), + (16#FF39#, 16#0059#), + (16#FF3A#, 16#005A#), + (16#FF3B#, 16#005B#), + (16#FF3C#, 16#005C#), + (16#FF3D#, 16#005D#), + (16#FF3E#, 16#005E#), + (16#FF3F#, 16#005F#), + (16#FF40#, 16#0060#), + (16#FF41#, 16#0061#), + (16#FF42#, 16#0062#), + (16#FF43#, 16#0063#), + (16#FF44#, 16#0064#), + (16#FF45#, 16#0065#), + (16#FF46#, 16#0066#), + (16#FF47#, 16#0067#), + (16#FF48#, 16#0068#), + (16#FF49#, 16#0069#), + (16#FF4A#, 16#006A#), + (16#FF4B#, 16#006B#), + (16#FF4C#, 16#006C#), + (16#FF4D#, 16#006D#), + (16#FF4E#, 16#006E#), + (16#FF4F#, 16#006F#), + (16#FF50#, 16#0070#), + (16#FF51#, 16#0071#), + (16#FF52#, 16#0072#), + (16#FF53#, 16#0073#), + (16#FF54#, 16#0074#), + (16#FF55#, 16#0075#), + (16#FF56#, 16#0076#), + (16#FF57#, 16#0077#), + (16#FF58#, 16#0078#), + (16#FF59#, 16#0079#), + (16#FF5A#, 16#007A#), + (16#FF5B#, 16#007B#), + (16#FF5C#, 16#007C#), + (16#FF5D#, 16#007D#), + (16#FF5E#, 16#007E#), + (16#FF5F#, 16#2985#), + (16#FF60#, 16#2986#), + (16#FF61#, 16#3002#), + (16#FF62#, 16#300C#), + (16#FF63#, 16#300D#), + (16#FF64#, 16#3001#), + (16#FF65#, 16#30FB#), + (16#FF66#, 16#30F2#), + (16#FF67#, 16#30A1#), + (16#FF68#, 16#30A3#), + (16#FF69#, 16#30A5#), + (16#FF6A#, 16#30A7#), + (16#FF6B#, 16#30A9#), + (16#FF6C#, 16#30E3#), + (16#FF6D#, 16#30E5#), + (16#FF6E#, 16#30E7#), + (16#FF6F#, 16#30C3#), + (16#FF70#, 16#30FC#), + (16#FF71#, 16#30A2#), + (16#FF72#, 16#30A4#), + (16#FF73#, 16#30A6#), + (16#FF74#, 16#30A8#), + (16#FF75#, 16#30AA#), + (16#FF76#, 16#30AB#), + (16#FF77#, 16#30AD#), + (16#FF78#, 16#30AF#), + (16#FF79#, 16#30B1#), + (16#FF7A#, 16#30B3#), + (16#FF7B#, 16#30B5#), + (16#FF7C#, 16#30B7#), + (16#FF7D#, 16#30B9#), + (16#FF7E#, 16#30BB#), + (16#FF7F#, 16#30BD#), + (16#FF80#, 16#30BF#), + (16#FF81#, 16#30C1#), + (16#FF82#, 16#30C4#), + (16#FF83#, 16#30C6#), + (16#FF84#, 16#30C8#), + (16#FF85#, 16#30CA#), + (16#FF86#, 16#30CB#), + (16#FF87#, 16#30CC#), + (16#FF88#, 16#30CD#), + (16#FF89#, 16#30CE#), + (16#FF8A#, 16#30CF#), + (16#FF8B#, 16#30D2#), + (16#FF8C#, 16#30D5#), + (16#FF8D#, 16#30D8#), + (16#FF8E#, 16#30DB#), + (16#FF8F#, 16#30DE#), + (16#FF90#, 16#30DF#), + (16#FF91#, 16#30E0#), + (16#FF92#, 16#30E1#), + (16#FF93#, 16#30E2#), + (16#FF94#, 16#30E4#), + (16#FF95#, 16#30E6#), + (16#FF96#, 16#30E8#), + (16#FF97#, 16#30E9#), + (16#FF98#, 16#30EA#), + (16#FF99#, 16#30EB#), + (16#FF9A#, 16#30EC#), + (16#FF9B#, 16#30ED#), + (16#FF9C#, 16#30EF#), + (16#FF9D#, 16#30F3#), + (16#FF9E#, 16#3099#), + (16#FF9F#, 16#309A#), + (16#FFA0#, 16#3164#), + (16#FFA1#, 16#3131#), + (16#FFA2#, 16#3132#), + (16#FFA3#, 16#3133#), + (16#FFA4#, 16#3134#), + (16#FFA5#, 16#3135#), + (16#FFA6#, 16#3136#), + (16#FFA7#, 16#3137#), + (16#FFA8#, 16#3138#), + (16#FFA9#, 16#3139#), + (16#FFAA#, 16#313A#), + (16#FFAB#, 16#313B#), + (16#FFAC#, 16#313C#), + (16#FFAD#, 16#313D#), + (16#FFAE#, 16#313E#), + (16#FFAF#, 16#313F#), + (16#FFB0#, 16#3140#), + (16#FFB1#, 16#3141#), + (16#FFB2#, 16#3142#), + (16#FFB3#, 16#3143#), + (16#FFB4#, 16#3144#), + (16#FFB5#, 16#3145#), + (16#FFB6#, 16#3146#), + (16#FFB7#, 16#3147#), + (16#FFB8#, 16#3148#), + (16#FFB9#, 16#3149#), + (16#FFBA#, 16#314A#), + (16#FFBB#, 16#314B#), + (16#FFBC#, 16#314C#), + (16#FFBD#, 16#314D#), + (16#FFBE#, 16#314E#), + (16#FFC2#, 16#314F#), + (16#FFC3#, 16#3150#), + (16#FFC4#, 16#3151#), + (16#FFC5#, 16#3152#), + (16#FFC6#, 16#3153#), + (16#FFC7#, 16#3154#), + (16#FFCA#, 16#3155#), + (16#FFCB#, 16#3156#), + (16#FFCC#, 16#3157#), + (16#FFCD#, 16#3158#), + (16#FFCE#, 16#3159#), + (16#FFCF#, 16#315A#), + (16#FFD2#, 16#315B#), + (16#FFD3#, 16#315C#), + (16#FFD4#, 16#315D#), + (16#FFD5#, 16#315E#), + (16#FFD6#, 16#315F#), + (16#FFD7#, 16#3160#), + (16#FFDA#, 16#3161#), + (16#FFDB#, 16#3162#), + (16#FFDC#, 16#3163#), + (16#FFE0#, 16#00A2#), + (16#FFE1#, 16#00A3#), + (16#FFE2#, 16#00AC#), + (16#FFE3#, 16#00AF#), + (16#FFE4#, 16#00A6#), + (16#FFE5#, 16#00A5#), + (16#FFE6#, 16#20A9#), + (16#FFE8#, 16#2502#), + (16#FFE9#, 16#2190#), + (16#FFEA#, 16#2191#), + (16#FFEB#, 16#2192#), + (16#FFEC#, 16#2193#), + (16#FFED#, 16#25A0#), + (16#FFEE#, 16#25CB#), + (16#1109A#, 16#11099#), + (16#1109C#, 16#1109B#), + (16#110AB#, 16#110A5#), + (16#1112E#, 16#11131#), + (16#1112F#, 16#11132#), + (16#1134B#, 16#11347#), + (16#1134C#, 16#11347#), + (16#114BB#, 16#114B9#), + (16#114BC#, 16#114B9#), + (16#114BE#, 16#114B9#), + (16#115BA#, 16#115B8#), + (16#115BB#, 16#115B9#), + (16#11938#, 16#11935#), + (16#1D15E#, 16#1D157#), + (16#1D15F#, 16#1D158#), + (16#1D160#, 16#1D15F#), + (16#1D161#, 16#1D15F#), + (16#1D162#, 16#1D15F#), + (16#1D163#, 16#1D15F#), + (16#1D164#, 16#1D15F#), + (16#1D1BB#, 16#1D1B9#), + (16#1D1BC#, 16#1D1BA#), + (16#1D1BD#, 16#1D1BB#), + (16#1D1BE#, 16#1D1BC#), + (16#1D1BF#, 16#1D1BB#), + (16#1D1C0#, 16#1D1BC#), + (16#1D400#, 16#0041#), + (16#1D401#, 16#0042#), + (16#1D402#, 16#0043#), + (16#1D403#, 16#0044#), + (16#1D404#, 16#0045#), + (16#1D405#, 16#0046#), + (16#1D406#, 16#0047#), + (16#1D407#, 16#0048#), + (16#1D408#, 16#0049#), + (16#1D409#, 16#004A#), + (16#1D40A#, 16#004B#), + (16#1D40B#, 16#004C#), + (16#1D40C#, 16#004D#), + (16#1D40D#, 16#004E#), + (16#1D40E#, 16#004F#), + (16#1D40F#, 16#0050#), + (16#1D410#, 16#0051#), + (16#1D411#, 16#0052#), + (16#1D412#, 16#0053#), + (16#1D413#, 16#0054#), + (16#1D414#, 16#0055#), + (16#1D415#, 16#0056#), + (16#1D416#, 16#0057#), + (16#1D417#, 16#0058#), + (16#1D418#, 16#0059#), + (16#1D419#, 16#005A#), + (16#1D41A#, 16#0061#), + (16#1D41B#, 16#0062#), + (16#1D41C#, 16#0063#), + (16#1D41D#, 16#0064#), + (16#1D41E#, 16#0065#), + (16#1D41F#, 16#0066#), + (16#1D420#, 16#0067#), + (16#1D421#, 16#0068#), + (16#1D422#, 16#0069#), + (16#1D423#, 16#006A#), + (16#1D424#, 16#006B#), + (16#1D425#, 16#006C#), + (16#1D426#, 16#006D#), + (16#1D427#, 16#006E#), + (16#1D428#, 16#006F#), + (16#1D429#, 16#0070#), + (16#1D42A#, 16#0071#), + (16#1D42B#, 16#0072#), + (16#1D42C#, 16#0073#), + (16#1D42D#, 16#0074#), + (16#1D42E#, 16#0075#), + (16#1D42F#, 16#0076#), + (16#1D430#, 16#0077#), + (16#1D431#, 16#0078#), + (16#1D432#, 16#0079#), + (16#1D433#, 16#007A#), + (16#1D434#, 16#0041#), + (16#1D435#, 16#0042#), + (16#1D436#, 16#0043#), + (16#1D437#, 16#0044#), + (16#1D438#, 16#0045#), + (16#1D439#, 16#0046#), + (16#1D43A#, 16#0047#), + (16#1D43B#, 16#0048#), + (16#1D43C#, 16#0049#), + (16#1D43D#, 16#004A#), + (16#1D43E#, 16#004B#), + (16#1D43F#, 16#004C#), + (16#1D440#, 16#004D#), + (16#1D441#, 16#004E#), + (16#1D442#, 16#004F#), + (16#1D443#, 16#0050#), + (16#1D444#, 16#0051#), + (16#1D445#, 16#0052#), + (16#1D446#, 16#0053#), + (16#1D447#, 16#0054#), + (16#1D448#, 16#0055#), + (16#1D449#, 16#0056#), + (16#1D44A#, 16#0057#), + (16#1D44B#, 16#0058#), + (16#1D44C#, 16#0059#), + (16#1D44D#, 16#005A#), + (16#1D44E#, 16#0061#), + (16#1D44F#, 16#0062#), + (16#1D450#, 16#0063#), + (16#1D451#, 16#0064#), + (16#1D452#, 16#0065#), + (16#1D453#, 16#0066#), + (16#1D454#, 16#0067#), + (16#1D456#, 16#0069#), + (16#1D457#, 16#006A#), + (16#1D458#, 16#006B#), + (16#1D459#, 16#006C#), + (16#1D45A#, 16#006D#), + (16#1D45B#, 16#006E#), + (16#1D45C#, 16#006F#), + (16#1D45D#, 16#0070#), + (16#1D45E#, 16#0071#), + (16#1D45F#, 16#0072#), + (16#1D460#, 16#0073#), + (16#1D461#, 16#0074#), + (16#1D462#, 16#0075#), + (16#1D463#, 16#0076#), + (16#1D464#, 16#0077#), + (16#1D465#, 16#0078#), + (16#1D466#, 16#0079#), + (16#1D467#, 16#007A#), + (16#1D468#, 16#0041#), + (16#1D469#, 16#0042#), + (16#1D46A#, 16#0043#), + (16#1D46B#, 16#0044#), + (16#1D46C#, 16#0045#), + (16#1D46D#, 16#0046#), + (16#1D46E#, 16#0047#), + (16#1D46F#, 16#0048#), + (16#1D470#, 16#0049#), + (16#1D471#, 16#004A#), + (16#1D472#, 16#004B#), + (16#1D473#, 16#004C#), + (16#1D474#, 16#004D#), + (16#1D475#, 16#004E#), + (16#1D476#, 16#004F#), + (16#1D477#, 16#0050#), + (16#1D478#, 16#0051#), + (16#1D479#, 16#0052#), + (16#1D47A#, 16#0053#), + (16#1D47B#, 16#0054#), + (16#1D47C#, 16#0055#), + (16#1D47D#, 16#0056#), + (16#1D47E#, 16#0057#), + (16#1D47F#, 16#0058#), + (16#1D480#, 16#0059#), + (16#1D481#, 16#005A#), + (16#1D482#, 16#0061#), + (16#1D483#, 16#0062#), + (16#1D484#, 16#0063#), + (16#1D485#, 16#0064#), + (16#1D486#, 16#0065#), + (16#1D487#, 16#0066#), + (16#1D488#, 16#0067#), + (16#1D489#, 16#0068#), + (16#1D48A#, 16#0069#), + (16#1D48B#, 16#006A#), + (16#1D48C#, 16#006B#), + (16#1D48D#, 16#006C#), + (16#1D48E#, 16#006D#), + (16#1D48F#, 16#006E#), + (16#1D490#, 16#006F#), + (16#1D491#, 16#0070#), + (16#1D492#, 16#0071#), + (16#1D493#, 16#0072#), + (16#1D494#, 16#0073#), + (16#1D495#, 16#0074#), + (16#1D496#, 16#0075#), + (16#1D497#, 16#0076#), + (16#1D498#, 16#0077#), + (16#1D499#, 16#0078#), + (16#1D49A#, 16#0079#), + (16#1D49B#, 16#007A#), + (16#1D49C#, 16#0041#), + (16#1D49E#, 16#0043#), + (16#1D49F#, 16#0044#), + (16#1D4A2#, 16#0047#), + (16#1D4A5#, 16#004A#), + (16#1D4A6#, 16#004B#), + (16#1D4A9#, 16#004E#), + (16#1D4AA#, 16#004F#), + (16#1D4AB#, 16#0050#), + (16#1D4AC#, 16#0051#), + (16#1D4AE#, 16#0053#), + (16#1D4AF#, 16#0054#), + (16#1D4B0#, 16#0055#), + (16#1D4B1#, 16#0056#), + (16#1D4B2#, 16#0057#), + (16#1D4B3#, 16#0058#), + (16#1D4B4#, 16#0059#), + (16#1D4B5#, 16#005A#), + (16#1D4B6#, 16#0061#), + (16#1D4B7#, 16#0062#), + (16#1D4B8#, 16#0063#), + (16#1D4B9#, 16#0064#), + (16#1D4BB#, 16#0066#), + (16#1D4BD#, 16#0068#), + (16#1D4BE#, 16#0069#), + (16#1D4BF#, 16#006A#), + (16#1D4C0#, 16#006B#), + (16#1D4C1#, 16#006C#), + (16#1D4C2#, 16#006D#), + (16#1D4C3#, 16#006E#), + (16#1D4C5#, 16#0070#), + (16#1D4C6#, 16#0071#), + (16#1D4C7#, 16#0072#), + (16#1D4C8#, 16#0073#), + (16#1D4C9#, 16#0074#), + (16#1D4CA#, 16#0075#), + (16#1D4CB#, 16#0076#), + (16#1D4CC#, 16#0077#), + (16#1D4CD#, 16#0078#), + (16#1D4CE#, 16#0079#), + (16#1D4CF#, 16#007A#), + (16#1D4D0#, 16#0041#), + (16#1D4D1#, 16#0042#), + (16#1D4D2#, 16#0043#), + (16#1D4D3#, 16#0044#), + (16#1D4D4#, 16#0045#), + (16#1D4D5#, 16#0046#), + (16#1D4D6#, 16#0047#), + (16#1D4D7#, 16#0048#), + (16#1D4D8#, 16#0049#), + (16#1D4D9#, 16#004A#), + (16#1D4DA#, 16#004B#), + (16#1D4DB#, 16#004C#), + (16#1D4DC#, 16#004D#), + (16#1D4DD#, 16#004E#), + (16#1D4DE#, 16#004F#), + (16#1D4DF#, 16#0050#), + (16#1D4E0#, 16#0051#), + (16#1D4E1#, 16#0052#), + (16#1D4E2#, 16#0053#), + (16#1D4E3#, 16#0054#), + (16#1D4E4#, 16#0055#), + (16#1D4E5#, 16#0056#), + (16#1D4E6#, 16#0057#), + (16#1D4E7#, 16#0058#), + (16#1D4E8#, 16#0059#), + (16#1D4E9#, 16#005A#), + (16#1D4EA#, 16#0061#), + (16#1D4EB#, 16#0062#), + (16#1D4EC#, 16#0063#), + (16#1D4ED#, 16#0064#), + (16#1D4EE#, 16#0065#), + (16#1D4EF#, 16#0066#), + (16#1D4F0#, 16#0067#), + (16#1D4F1#, 16#0068#), + (16#1D4F2#, 16#0069#), + (16#1D4F3#, 16#006A#), + (16#1D4F4#, 16#006B#), + (16#1D4F5#, 16#006C#), + (16#1D4F6#, 16#006D#), + (16#1D4F7#, 16#006E#), + (16#1D4F8#, 16#006F#), + (16#1D4F9#, 16#0070#), + (16#1D4FA#, 16#0071#), + (16#1D4FB#, 16#0072#), + (16#1D4FC#, 16#0073#), + (16#1D4FD#, 16#0074#), + (16#1D4FE#, 16#0075#), + (16#1D4FF#, 16#0076#), + (16#1D500#, 16#0077#), + (16#1D501#, 16#0078#), + (16#1D502#, 16#0079#), + (16#1D503#, 16#007A#), + (16#1D504#, 16#0041#), + (16#1D505#, 16#0042#), + (16#1D507#, 16#0044#), + (16#1D508#, 16#0045#), + (16#1D509#, 16#0046#), + (16#1D50A#, 16#0047#), + (16#1D50D#, 16#004A#), + (16#1D50E#, 16#004B#), + (16#1D50F#, 16#004C#), + (16#1D510#, 16#004D#), + (16#1D511#, 16#004E#), + (16#1D512#, 16#004F#), + (16#1D513#, 16#0050#), + (16#1D514#, 16#0051#), + (16#1D516#, 16#0053#), + (16#1D517#, 16#0054#), + (16#1D518#, 16#0055#), + (16#1D519#, 16#0056#), + (16#1D51A#, 16#0057#), + (16#1D51B#, 16#0058#), + (16#1D51C#, 16#0059#), + (16#1D51E#, 16#0061#), + (16#1D51F#, 16#0062#), + (16#1D520#, 16#0063#), + (16#1D521#, 16#0064#), + (16#1D522#, 16#0065#), + (16#1D523#, 16#0066#), + (16#1D524#, 16#0067#), + (16#1D525#, 16#0068#), + (16#1D526#, 16#0069#), + (16#1D527#, 16#006A#), + (16#1D528#, 16#006B#), + (16#1D529#, 16#006C#), + (16#1D52A#, 16#006D#), + (16#1D52B#, 16#006E#), + (16#1D52C#, 16#006F#), + (16#1D52D#, 16#0070#), + (16#1D52E#, 16#0071#), + (16#1D52F#, 16#0072#), + (16#1D530#, 16#0073#), + (16#1D531#, 16#0074#), + (16#1D532#, 16#0075#), + (16#1D533#, 16#0076#), + (16#1D534#, 16#0077#), + (16#1D535#, 16#0078#), + (16#1D536#, 16#0079#), + (16#1D537#, 16#007A#), + (16#1D538#, 16#0041#), + (16#1D539#, 16#0042#), + (16#1D53B#, 16#0044#), + (16#1D53C#, 16#0045#), + (16#1D53D#, 16#0046#), + (16#1D53E#, 16#0047#), + (16#1D540#, 16#0049#), + (16#1D541#, 16#004A#), + (16#1D542#, 16#004B#), + (16#1D543#, 16#004C#), + (16#1D544#, 16#004D#), + (16#1D546#, 16#004F#), + (16#1D54A#, 16#0053#), + (16#1D54B#, 16#0054#), + (16#1D54C#, 16#0055#), + (16#1D54D#, 16#0056#), + (16#1D54E#, 16#0057#), + (16#1D54F#, 16#0058#), + (16#1D550#, 16#0059#), + (16#1D552#, 16#0061#), + (16#1D553#, 16#0062#), + (16#1D554#, 16#0063#), + (16#1D555#, 16#0064#), + (16#1D556#, 16#0065#), + (16#1D557#, 16#0066#), + (16#1D558#, 16#0067#), + (16#1D559#, 16#0068#), + (16#1D55A#, 16#0069#), + (16#1D55B#, 16#006A#), + (16#1D55C#, 16#006B#), + (16#1D55D#, 16#006C#), + (16#1D55E#, 16#006D#), + (16#1D55F#, 16#006E#), + (16#1D560#, 16#006F#), + (16#1D561#, 16#0070#), + (16#1D562#, 16#0071#), + (16#1D563#, 16#0072#), + (16#1D564#, 16#0073#), + (16#1D565#, 16#0074#), + (16#1D566#, 16#0075#), + (16#1D567#, 16#0076#), + (16#1D568#, 16#0077#), + (16#1D569#, 16#0078#), + (16#1D56A#, 16#0079#), + (16#1D56B#, 16#007A#), + (16#1D56C#, 16#0041#), + (16#1D56D#, 16#0042#), + (16#1D56E#, 16#0043#), + (16#1D56F#, 16#0044#), + (16#1D570#, 16#0045#), + (16#1D571#, 16#0046#), + (16#1D572#, 16#0047#), + (16#1D573#, 16#0048#), + (16#1D574#, 16#0049#), + (16#1D575#, 16#004A#), + (16#1D576#, 16#004B#), + (16#1D577#, 16#004C#), + (16#1D578#, 16#004D#), + (16#1D579#, 16#004E#), + (16#1D57A#, 16#004F#), + (16#1D57B#, 16#0050#), + (16#1D57C#, 16#0051#), + (16#1D57D#, 16#0052#), + (16#1D57E#, 16#0053#), + (16#1D57F#, 16#0054#), + (16#1D580#, 16#0055#), + (16#1D581#, 16#0056#), + (16#1D582#, 16#0057#), + (16#1D583#, 16#0058#), + (16#1D584#, 16#0059#), + (16#1D585#, 16#005A#), + (16#1D586#, 16#0061#), + (16#1D587#, 16#0062#), + (16#1D588#, 16#0063#), + (16#1D589#, 16#0064#), + (16#1D58A#, 16#0065#), + (16#1D58B#, 16#0066#), + (16#1D58C#, 16#0067#), + (16#1D58D#, 16#0068#), + (16#1D58E#, 16#0069#), + (16#1D58F#, 16#006A#), + (16#1D590#, 16#006B#), + (16#1D591#, 16#006C#), + (16#1D592#, 16#006D#), + (16#1D593#, 16#006E#), + (16#1D594#, 16#006F#), + (16#1D595#, 16#0070#), + (16#1D596#, 16#0071#), + (16#1D597#, 16#0072#), + (16#1D598#, 16#0073#), + (16#1D599#, 16#0074#), + (16#1D59A#, 16#0075#), + (16#1D59B#, 16#0076#), + (16#1D59C#, 16#0077#), + (16#1D59D#, 16#0078#), + (16#1D59E#, 16#0079#), + (16#1D59F#, 16#007A#), + (16#1D5A0#, 16#0041#), + (16#1D5A1#, 16#0042#), + (16#1D5A2#, 16#0043#), + (16#1D5A3#, 16#0044#), + (16#1D5A4#, 16#0045#), + (16#1D5A5#, 16#0046#), + (16#1D5A6#, 16#0047#), + (16#1D5A7#, 16#0048#), + (16#1D5A8#, 16#0049#), + (16#1D5A9#, 16#004A#), + (16#1D5AA#, 16#004B#), + (16#1D5AB#, 16#004C#), + (16#1D5AC#, 16#004D#), + (16#1D5AD#, 16#004E#), + (16#1D5AE#, 16#004F#), + (16#1D5AF#, 16#0050#), + (16#1D5B0#, 16#0051#), + (16#1D5B1#, 16#0052#), + (16#1D5B2#, 16#0053#), + (16#1D5B3#, 16#0054#), + (16#1D5B4#, 16#0055#), + (16#1D5B5#, 16#0056#), + (16#1D5B6#, 16#0057#), + (16#1D5B7#, 16#0058#), + (16#1D5B8#, 16#0059#), + (16#1D5B9#, 16#005A#), + (16#1D5BA#, 16#0061#), + (16#1D5BB#, 16#0062#), + (16#1D5BC#, 16#0063#), + (16#1D5BD#, 16#0064#), + (16#1D5BE#, 16#0065#), + (16#1D5BF#, 16#0066#), + (16#1D5C0#, 16#0067#), + (16#1D5C1#, 16#0068#), + (16#1D5C2#, 16#0069#), + (16#1D5C3#, 16#006A#), + (16#1D5C4#, 16#006B#), + (16#1D5C5#, 16#006C#), + (16#1D5C6#, 16#006D#), + (16#1D5C7#, 16#006E#), + (16#1D5C8#, 16#006F#), + (16#1D5C9#, 16#0070#), + (16#1D5CA#, 16#0071#), + (16#1D5CB#, 16#0072#), + (16#1D5CC#, 16#0073#), + (16#1D5CD#, 16#0074#), + (16#1D5CE#, 16#0075#), + (16#1D5CF#, 16#0076#), + (16#1D5D0#, 16#0077#), + (16#1D5D1#, 16#0078#), + (16#1D5D2#, 16#0079#), + (16#1D5D3#, 16#007A#), + (16#1D5D4#, 16#0041#), + (16#1D5D5#, 16#0042#), + (16#1D5D6#, 16#0043#), + (16#1D5D7#, 16#0044#), + (16#1D5D8#, 16#0045#), + (16#1D5D9#, 16#0046#), + (16#1D5DA#, 16#0047#), + (16#1D5DB#, 16#0048#), + (16#1D5DC#, 16#0049#), + (16#1D5DD#, 16#004A#), + (16#1D5DE#, 16#004B#), + (16#1D5DF#, 16#004C#), + (16#1D5E0#, 16#004D#), + (16#1D5E1#, 16#004E#), + (16#1D5E2#, 16#004F#), + (16#1D5E3#, 16#0050#), + (16#1D5E4#, 16#0051#), + (16#1D5E5#, 16#0052#), + (16#1D5E6#, 16#0053#), + (16#1D5E7#, 16#0054#), + (16#1D5E8#, 16#0055#), + (16#1D5E9#, 16#0056#), + (16#1D5EA#, 16#0057#), + (16#1D5EB#, 16#0058#), + (16#1D5EC#, 16#0059#), + (16#1D5ED#, 16#005A#), + (16#1D5EE#, 16#0061#), + (16#1D5EF#, 16#0062#), + (16#1D5F0#, 16#0063#), + (16#1D5F1#, 16#0064#), + (16#1D5F2#, 16#0065#), + (16#1D5F3#, 16#0066#), + (16#1D5F4#, 16#0067#), + (16#1D5F5#, 16#0068#), + (16#1D5F6#, 16#0069#), + (16#1D5F7#, 16#006A#), + (16#1D5F8#, 16#006B#), + (16#1D5F9#, 16#006C#), + (16#1D5FA#, 16#006D#), + (16#1D5FB#, 16#006E#), + (16#1D5FC#, 16#006F#), + (16#1D5FD#, 16#0070#), + (16#1D5FE#, 16#0071#), + (16#1D5FF#, 16#0072#), + (16#1D600#, 16#0073#), + (16#1D601#, 16#0074#), + (16#1D602#, 16#0075#), + (16#1D603#, 16#0076#), + (16#1D604#, 16#0077#), + (16#1D605#, 16#0078#), + (16#1D606#, 16#0079#), + (16#1D607#, 16#007A#), + (16#1D608#, 16#0041#), + (16#1D609#, 16#0042#), + (16#1D60A#, 16#0043#), + (16#1D60B#, 16#0044#), + (16#1D60C#, 16#0045#), + (16#1D60D#, 16#0046#), + (16#1D60E#, 16#0047#), + (16#1D60F#, 16#0048#), + (16#1D610#, 16#0049#), + (16#1D611#, 16#004A#), + (16#1D612#, 16#004B#), + (16#1D613#, 16#004C#), + (16#1D614#, 16#004D#), + (16#1D615#, 16#004E#), + (16#1D616#, 16#004F#), + (16#1D617#, 16#0050#), + (16#1D618#, 16#0051#), + (16#1D619#, 16#0052#), + (16#1D61A#, 16#0053#), + (16#1D61B#, 16#0054#), + (16#1D61C#, 16#0055#), + (16#1D61D#, 16#0056#), + (16#1D61E#, 16#0057#), + (16#1D61F#, 16#0058#), + (16#1D620#, 16#0059#), + (16#1D621#, 16#005A#), + (16#1D622#, 16#0061#), + (16#1D623#, 16#0062#), + (16#1D624#, 16#0063#), + (16#1D625#, 16#0064#), + (16#1D626#, 16#0065#), + (16#1D627#, 16#0066#), + (16#1D628#, 16#0067#), + (16#1D629#, 16#0068#), + (16#1D62A#, 16#0069#), + (16#1D62B#, 16#006A#), + (16#1D62C#, 16#006B#), + (16#1D62D#, 16#006C#), + (16#1D62E#, 16#006D#), + (16#1D62F#, 16#006E#), + (16#1D630#, 16#006F#), + (16#1D631#, 16#0070#), + (16#1D632#, 16#0071#), + (16#1D633#, 16#0072#), + (16#1D634#, 16#0073#), + (16#1D635#, 16#0074#), + (16#1D636#, 16#0075#), + (16#1D637#, 16#0076#), + (16#1D638#, 16#0077#), + (16#1D639#, 16#0078#), + (16#1D63A#, 16#0079#), + (16#1D63B#, 16#007A#), + (16#1D63C#, 16#0041#), + (16#1D63D#, 16#0042#), + (16#1D63E#, 16#0043#), + (16#1D63F#, 16#0044#), + (16#1D640#, 16#0045#), + (16#1D641#, 16#0046#), + (16#1D642#, 16#0047#), + (16#1D643#, 16#0048#), + (16#1D644#, 16#0049#), + (16#1D645#, 16#004A#), + (16#1D646#, 16#004B#), + (16#1D647#, 16#004C#), + (16#1D648#, 16#004D#), + (16#1D649#, 16#004E#), + (16#1D64A#, 16#004F#), + (16#1D64B#, 16#0050#), + (16#1D64C#, 16#0051#), + (16#1D64D#, 16#0052#), + (16#1D64E#, 16#0053#), + (16#1D64F#, 16#0054#), + (16#1D650#, 16#0055#), + (16#1D651#, 16#0056#), + (16#1D652#, 16#0057#), + (16#1D653#, 16#0058#), + (16#1D654#, 16#0059#), + (16#1D655#, 16#005A#), + (16#1D656#, 16#0061#), + (16#1D657#, 16#0062#), + (16#1D658#, 16#0063#), + (16#1D659#, 16#0064#), + (16#1D65A#, 16#0065#), + (16#1D65B#, 16#0066#), + (16#1D65C#, 16#0067#), + (16#1D65D#, 16#0068#), + (16#1D65E#, 16#0069#), + (16#1D65F#, 16#006A#), + (16#1D660#, 16#006B#), + (16#1D661#, 16#006C#), + (16#1D662#, 16#006D#), + (16#1D663#, 16#006E#), + (16#1D664#, 16#006F#), + (16#1D665#, 16#0070#), + (16#1D666#, 16#0071#), + (16#1D667#, 16#0072#), + (16#1D668#, 16#0073#), + (16#1D669#, 16#0074#), + (16#1D66A#, 16#0075#), + (16#1D66B#, 16#0076#), + (16#1D66C#, 16#0077#), + (16#1D66D#, 16#0078#), + (16#1D66E#, 16#0079#), + (16#1D66F#, 16#007A#), + (16#1D670#, 16#0041#), + (16#1D671#, 16#0042#), + (16#1D672#, 16#0043#), + (16#1D673#, 16#0044#), + (16#1D674#, 16#0045#), + (16#1D675#, 16#0046#), + (16#1D676#, 16#0047#), + (16#1D677#, 16#0048#), + (16#1D678#, 16#0049#), + (16#1D679#, 16#004A#), + (16#1D67A#, 16#004B#), + (16#1D67B#, 16#004C#), + (16#1D67C#, 16#004D#), + (16#1D67D#, 16#004E#), + (16#1D67E#, 16#004F#), + (16#1D67F#, 16#0050#), + (16#1D680#, 16#0051#), + (16#1D681#, 16#0052#), + (16#1D682#, 16#0053#), + (16#1D683#, 16#0054#), + (16#1D684#, 16#0055#), + (16#1D685#, 16#0056#), + (16#1D686#, 16#0057#), + (16#1D687#, 16#0058#), + (16#1D688#, 16#0059#), + (16#1D689#, 16#005A#), + (16#1D68A#, 16#0061#), + (16#1D68B#, 16#0062#), + (16#1D68C#, 16#0063#), + (16#1D68D#, 16#0064#), + (16#1D68E#, 16#0065#), + (16#1D68F#, 16#0066#), + (16#1D690#, 16#0067#), + (16#1D691#, 16#0068#), + (16#1D692#, 16#0069#), + (16#1D693#, 16#006A#), + (16#1D694#, 16#006B#), + (16#1D695#, 16#006C#), + (16#1D696#, 16#006D#), + (16#1D697#, 16#006E#), + (16#1D698#, 16#006F#), + (16#1D699#, 16#0070#), + (16#1D69A#, 16#0071#), + (16#1D69B#, 16#0072#), + (16#1D69C#, 16#0073#), + (16#1D69D#, 16#0074#), + (16#1D69E#, 16#0075#), + (16#1D69F#, 16#0076#), + (16#1D6A0#, 16#0077#), + (16#1D6A1#, 16#0078#), + (16#1D6A2#, 16#0079#), + (16#1D6A3#, 16#007A#), + (16#1D6A4#, 16#0131#), + (16#1D6A5#, 16#0237#), + (16#1D6A8#, 16#0391#), + (16#1D6A9#, 16#0392#), + (16#1D6AA#, 16#0393#), + (16#1D6AB#, 16#0394#), + (16#1D6AC#, 16#0395#), + (16#1D6AD#, 16#0396#), + (16#1D6AE#, 16#0397#), + (16#1D6AF#, 16#0398#), + (16#1D6B0#, 16#0399#), + (16#1D6B1#, 16#039A#), + (16#1D6B2#, 16#039B#), + (16#1D6B3#, 16#039C#), + (16#1D6B4#, 16#039D#), + (16#1D6B5#, 16#039E#), + (16#1D6B6#, 16#039F#), + (16#1D6B7#, 16#03A0#), + (16#1D6B8#, 16#03A1#), + (16#1D6B9#, 16#03F4#), + (16#1D6BA#, 16#03A3#), + (16#1D6BB#, 16#03A4#), + (16#1D6BC#, 16#03A5#), + (16#1D6BD#, 16#03A6#), + (16#1D6BE#, 16#03A7#), + (16#1D6BF#, 16#03A8#), + (16#1D6C0#, 16#03A9#), + (16#1D6C1#, 16#2207#), + (16#1D6C2#, 16#03B1#), + (16#1D6C3#, 16#03B2#), + (16#1D6C4#, 16#03B3#), + (16#1D6C5#, 16#03B4#), + (16#1D6C6#, 16#03B5#), + (16#1D6C7#, 16#03B6#), + (16#1D6C8#, 16#03B7#), + (16#1D6C9#, 16#03B8#), + (16#1D6CA#, 16#03B9#), + (16#1D6CB#, 16#03BA#), + (16#1D6CC#, 16#03BB#), + (16#1D6CD#, 16#03BC#), + (16#1D6CE#, 16#03BD#), + (16#1D6CF#, 16#03BE#), + (16#1D6D0#, 16#03BF#), + (16#1D6D1#, 16#03C0#), + (16#1D6D2#, 16#03C1#), + (16#1D6D3#, 16#03C2#), + (16#1D6D4#, 16#03C3#), + (16#1D6D5#, 16#03C4#), + (16#1D6D6#, 16#03C5#), + (16#1D6D7#, 16#03C6#), + (16#1D6D8#, 16#03C7#), + (16#1D6D9#, 16#03C8#), + (16#1D6DA#, 16#03C9#), + (16#1D6DB#, 16#2202#), + (16#1D6DC#, 16#03F5#), + (16#1D6DD#, 16#03D1#), + (16#1D6DE#, 16#03F0#), + (16#1D6DF#, 16#03D5#), + (16#1D6E0#, 16#03F1#), + (16#1D6E1#, 16#03D6#), + (16#1D6E2#, 16#0391#), + (16#1D6E3#, 16#0392#), + (16#1D6E4#, 16#0393#), + (16#1D6E5#, 16#0394#), + (16#1D6E6#, 16#0395#), + (16#1D6E7#, 16#0396#), + (16#1D6E8#, 16#0397#), + (16#1D6E9#, 16#0398#), + (16#1D6EA#, 16#0399#), + (16#1D6EB#, 16#039A#), + (16#1D6EC#, 16#039B#), + (16#1D6ED#, 16#039C#), + (16#1D6EE#, 16#039D#), + (16#1D6EF#, 16#039E#), + (16#1D6F0#, 16#039F#), + (16#1D6F1#, 16#03A0#), + (16#1D6F2#, 16#03A1#), + (16#1D6F3#, 16#03F4#), + (16#1D6F4#, 16#03A3#), + (16#1D6F5#, 16#03A4#), + (16#1D6F6#, 16#03A5#), + (16#1D6F7#, 16#03A6#), + (16#1D6F8#, 16#03A7#), + (16#1D6F9#, 16#03A8#), + (16#1D6FA#, 16#03A9#), + (16#1D6FB#, 16#2207#), + (16#1D6FC#, 16#03B1#), + (16#1D6FD#, 16#03B2#), + (16#1D6FE#, 16#03B3#), + (16#1D6FF#, 16#03B4#), + (16#1D700#, 16#03B5#), + (16#1D701#, 16#03B6#), + (16#1D702#, 16#03B7#), + (16#1D703#, 16#03B8#), + (16#1D704#, 16#03B9#), + (16#1D705#, 16#03BA#), + (16#1D706#, 16#03BB#), + (16#1D707#, 16#03BC#), + (16#1D708#, 16#03BD#), + (16#1D709#, 16#03BE#), + (16#1D70A#, 16#03BF#), + (16#1D70B#, 16#03C0#), + (16#1D70C#, 16#03C1#), + (16#1D70D#, 16#03C2#), + (16#1D70E#, 16#03C3#), + (16#1D70F#, 16#03C4#), + (16#1D710#, 16#03C5#), + (16#1D711#, 16#03C6#), + (16#1D712#, 16#03C7#), + (16#1D713#, 16#03C8#), + (16#1D714#, 16#03C9#), + (16#1D715#, 16#2202#), + (16#1D716#, 16#03F5#), + (16#1D717#, 16#03D1#), + (16#1D718#, 16#03F0#), + (16#1D719#, 16#03D5#), + (16#1D71A#, 16#03F1#), + (16#1D71B#, 16#03D6#), + (16#1D71C#, 16#0391#), + (16#1D71D#, 16#0392#), + (16#1D71E#, 16#0393#), + (16#1D71F#, 16#0394#), + (16#1D720#, 16#0395#), + (16#1D721#, 16#0396#), + (16#1D722#, 16#0397#), + (16#1D723#, 16#0398#), + (16#1D724#, 16#0399#), + (16#1D725#, 16#039A#), + (16#1D726#, 16#039B#), + (16#1D727#, 16#039C#), + (16#1D728#, 16#039D#), + (16#1D729#, 16#039E#), + (16#1D72A#, 16#039F#), + (16#1D72B#, 16#03A0#), + (16#1D72C#, 16#03A1#), + (16#1D72D#, 16#03F4#), + (16#1D72E#, 16#03A3#), + (16#1D72F#, 16#03A4#), + (16#1D730#, 16#03A5#), + (16#1D731#, 16#03A6#), + (16#1D732#, 16#03A7#), + (16#1D733#, 16#03A8#), + (16#1D734#, 16#03A9#), + (16#1D735#, 16#2207#), + (16#1D736#, 16#03B1#), + (16#1D737#, 16#03B2#), + (16#1D738#, 16#03B3#), + (16#1D739#, 16#03B4#), + (16#1D73A#, 16#03B5#), + (16#1D73B#, 16#03B6#), + (16#1D73C#, 16#03B7#), + (16#1D73D#, 16#03B8#), + (16#1D73E#, 16#03B9#), + (16#1D73F#, 16#03BA#), + (16#1D740#, 16#03BB#), + (16#1D741#, 16#03BC#), + (16#1D742#, 16#03BD#), + (16#1D743#, 16#03BE#), + (16#1D744#, 16#03BF#), + (16#1D745#, 16#03C0#), + (16#1D746#, 16#03C1#), + (16#1D747#, 16#03C2#), + (16#1D748#, 16#03C3#), + (16#1D749#, 16#03C4#), + (16#1D74A#, 16#03C5#), + (16#1D74B#, 16#03C6#), + (16#1D74C#, 16#03C7#), + (16#1D74D#, 16#03C8#), + (16#1D74E#, 16#03C9#), + (16#1D74F#, 16#2202#), + (16#1D750#, 16#03F5#), + (16#1D751#, 16#03D1#), + (16#1D752#, 16#03F0#), + (16#1D753#, 16#03D5#), + (16#1D754#, 16#03F1#), + (16#1D755#, 16#03D6#), + (16#1D756#, 16#0391#), + (16#1D757#, 16#0392#), + (16#1D758#, 16#0393#), + (16#1D759#, 16#0394#), + (16#1D75A#, 16#0395#), + (16#1D75B#, 16#0396#), + (16#1D75C#, 16#0397#), + (16#1D75D#, 16#0398#), + (16#1D75E#, 16#0399#), + (16#1D75F#, 16#039A#), + (16#1D760#, 16#039B#), + (16#1D761#, 16#039C#), + (16#1D762#, 16#039D#), + (16#1D763#, 16#039E#), + (16#1D764#, 16#039F#), + (16#1D765#, 16#03A0#), + (16#1D766#, 16#03A1#), + (16#1D767#, 16#03F4#), + (16#1D768#, 16#03A3#), + (16#1D769#, 16#03A4#), + (16#1D76A#, 16#03A5#), + (16#1D76B#, 16#03A6#), + (16#1D76C#, 16#03A7#), + (16#1D76D#, 16#03A8#), + (16#1D76E#, 16#03A9#), + (16#1D76F#, 16#2207#), + (16#1D770#, 16#03B1#), + (16#1D771#, 16#03B2#), + (16#1D772#, 16#03B3#), + (16#1D773#, 16#03B4#), + (16#1D774#, 16#03B5#), + (16#1D775#, 16#03B6#), + (16#1D776#, 16#03B7#), + (16#1D777#, 16#03B8#), + (16#1D778#, 16#03B9#), + (16#1D779#, 16#03BA#), + (16#1D77A#, 16#03BB#), + (16#1D77B#, 16#03BC#), + (16#1D77C#, 16#03BD#), + (16#1D77D#, 16#03BE#), + (16#1D77E#, 16#03BF#), + (16#1D77F#, 16#03C0#), + (16#1D780#, 16#03C1#), + (16#1D781#, 16#03C2#), + (16#1D782#, 16#03C3#), + (16#1D783#, 16#03C4#), + (16#1D784#, 16#03C5#), + (16#1D785#, 16#03C6#), + (16#1D786#, 16#03C7#), + (16#1D787#, 16#03C8#), + (16#1D788#, 16#03C9#), + (16#1D789#, 16#2202#), + (16#1D78A#, 16#03F5#), + (16#1D78B#, 16#03D1#), + (16#1D78C#, 16#03F0#), + (16#1D78D#, 16#03D5#), + (16#1D78E#, 16#03F1#), + (16#1D78F#, 16#03D6#), + (16#1D790#, 16#0391#), + (16#1D791#, 16#0392#), + (16#1D792#, 16#0393#), + (16#1D793#, 16#0394#), + (16#1D794#, 16#0395#), + (16#1D795#, 16#0396#), + (16#1D796#, 16#0397#), + (16#1D797#, 16#0398#), + (16#1D798#, 16#0399#), + (16#1D799#, 16#039A#), + (16#1D79A#, 16#039B#), + (16#1D79B#, 16#039C#), + (16#1D79C#, 16#039D#), + (16#1D79D#, 16#039E#), + (16#1D79E#, 16#039F#), + (16#1D79F#, 16#03A0#), + (16#1D7A0#, 16#03A1#), + (16#1D7A1#, 16#03F4#), + (16#1D7A2#, 16#03A3#), + (16#1D7A3#, 16#03A4#), + (16#1D7A4#, 16#03A5#), + (16#1D7A5#, 16#03A6#), + (16#1D7A6#, 16#03A7#), + (16#1D7A7#, 16#03A8#), + (16#1D7A8#, 16#03A9#), + (16#1D7A9#, 16#2207#), + (16#1D7AA#, 16#03B1#), + (16#1D7AB#, 16#03B2#), + (16#1D7AC#, 16#03B3#), + (16#1D7AD#, 16#03B4#), + (16#1D7AE#, 16#03B5#), + (16#1D7AF#, 16#03B6#), + (16#1D7B0#, 16#03B7#), + (16#1D7B1#, 16#03B8#), + (16#1D7B2#, 16#03B9#), + (16#1D7B3#, 16#03BA#), + (16#1D7B4#, 16#03BB#), + (16#1D7B5#, 16#03BC#), + (16#1D7B6#, 16#03BD#), + (16#1D7B7#, 16#03BE#), + (16#1D7B8#, 16#03BF#), + (16#1D7B9#, 16#03C0#), + (16#1D7BA#, 16#03C1#), + (16#1D7BB#, 16#03C2#), + (16#1D7BC#, 16#03C3#), + (16#1D7BD#, 16#03C4#), + (16#1D7BE#, 16#03C5#), + (16#1D7BF#, 16#03C6#), + (16#1D7C0#, 16#03C7#), + (16#1D7C1#, 16#03C8#), + (16#1D7C2#, 16#03C9#), + (16#1D7C3#, 16#2202#), + (16#1D7C4#, 16#03F5#), + (16#1D7C5#, 16#03D1#), + (16#1D7C6#, 16#03F0#), + (16#1D7C7#, 16#03D5#), + (16#1D7C8#, 16#03F1#), + (16#1D7C9#, 16#03D6#), + (16#1D7CA#, 16#03DC#), + (16#1D7CB#, 16#03DD#), + (16#1D7CE#, 16#0030#), + (16#1D7CF#, 16#0031#), + (16#1D7D0#, 16#0032#), + (16#1D7D1#, 16#0033#), + (16#1D7D2#, 16#0034#), + (16#1D7D3#, 16#0035#), + (16#1D7D4#, 16#0036#), + (16#1D7D5#, 16#0037#), + (16#1D7D6#, 16#0038#), + (16#1D7D7#, 16#0039#), + (16#1D7D8#, 16#0030#), + (16#1D7D9#, 16#0031#), + (16#1D7DA#, 16#0032#), + (16#1D7DB#, 16#0033#), + (16#1D7DC#, 16#0034#), + (16#1D7DD#, 16#0035#), + (16#1D7DE#, 16#0036#), + (16#1D7DF#, 16#0037#), + (16#1D7E0#, 16#0038#), + (16#1D7E1#, 16#0039#), + (16#1D7E2#, 16#0030#), + (16#1D7E3#, 16#0031#), + (16#1D7E4#, 16#0032#), + (16#1D7E5#, 16#0033#), + (16#1D7E6#, 16#0034#), + (16#1D7E7#, 16#0035#), + (16#1D7E8#, 16#0036#), + (16#1D7E9#, 16#0037#), + (16#1D7EA#, 16#0038#), + (16#1D7EB#, 16#0039#), + (16#1D7EC#, 16#0030#), + (16#1D7ED#, 16#0031#), + (16#1D7EE#, 16#0032#), + (16#1D7EF#, 16#0033#), + (16#1D7F0#, 16#0034#), + (16#1D7F1#, 16#0035#), + (16#1D7F2#, 16#0036#), + (16#1D7F3#, 16#0037#), + (16#1D7F4#, 16#0038#), + (16#1D7F5#, 16#0039#), + (16#1D7F6#, 16#0030#), + (16#1D7F7#, 16#0031#), + (16#1D7F8#, 16#0032#), + (16#1D7F9#, 16#0033#), + (16#1D7FA#, 16#0034#), + (16#1D7FB#, 16#0035#), + (16#1D7FC#, 16#0036#), + (16#1D7FD#, 16#0037#), + (16#1D7FE#, 16#0038#), + (16#1D7FF#, 16#0039#), + (16#1EE00#, 16#0627#), + (16#1EE01#, 16#0628#), + (16#1EE02#, 16#062C#), + (16#1EE03#, 16#062F#), + (16#1EE05#, 16#0648#), + (16#1EE06#, 16#0632#), + (16#1EE07#, 16#062D#), + (16#1EE08#, 16#0637#), + (16#1EE09#, 16#064A#), + (16#1EE0A#, 16#0643#), + (16#1EE0B#, 16#0644#), + (16#1EE0C#, 16#0645#), + (16#1EE0D#, 16#0646#), + (16#1EE0E#, 16#0633#), + (16#1EE0F#, 16#0639#), + (16#1EE10#, 16#0641#), + (16#1EE11#, 16#0635#), + (16#1EE12#, 16#0642#), + (16#1EE13#, 16#0631#), + (16#1EE14#, 16#0634#), + (16#1EE15#, 16#062A#), + (16#1EE16#, 16#062B#), + (16#1EE17#, 16#062E#), + (16#1EE18#, 16#0630#), + (16#1EE19#, 16#0636#), + (16#1EE1A#, 16#0638#), + (16#1EE1B#, 16#063A#), + (16#1EE1C#, 16#066E#), + (16#1EE1D#, 16#06BA#), + (16#1EE1E#, 16#06A1#), + (16#1EE1F#, 16#066F#), + (16#1EE21#, 16#0628#), + (16#1EE22#, 16#062C#), + (16#1EE24#, 16#0647#), + (16#1EE27#, 16#062D#), + (16#1EE29#, 16#064A#), + (16#1EE2A#, 16#0643#), + (16#1EE2B#, 16#0644#), + (16#1EE2C#, 16#0645#), + (16#1EE2D#, 16#0646#), + (16#1EE2E#, 16#0633#), + (16#1EE2F#, 16#0639#), + (16#1EE30#, 16#0641#), + (16#1EE31#, 16#0635#), + (16#1EE32#, 16#0642#), + (16#1EE34#, 16#0634#), + (16#1EE35#, 16#062A#), + (16#1EE36#, 16#062B#), + (16#1EE37#, 16#062E#), + (16#1EE39#, 16#0636#), + (16#1EE3B#, 16#063A#), + (16#1EE42#, 16#062C#), + (16#1EE47#, 16#062D#), + (16#1EE49#, 16#064A#), + (16#1EE4B#, 16#0644#), + (16#1EE4D#, 16#0646#), + (16#1EE4E#, 16#0633#), + (16#1EE4F#, 16#0639#), + (16#1EE51#, 16#0635#), + (16#1EE52#, 16#0642#), + (16#1EE54#, 16#0634#), + (16#1EE57#, 16#062E#), + (16#1EE59#, 16#0636#), + (16#1EE5B#, 16#063A#), + (16#1EE5D#, 16#06BA#), + (16#1EE5F#, 16#066F#), + (16#1EE61#, 16#0628#), + (16#1EE62#, 16#062C#), + (16#1EE64#, 16#0647#), + (16#1EE67#, 16#062D#), + (16#1EE68#, 16#0637#), + (16#1EE69#, 16#064A#), + (16#1EE6A#, 16#0643#), + (16#1EE6C#, 16#0645#), + (16#1EE6D#, 16#0646#), + (16#1EE6E#, 16#0633#), + (16#1EE6F#, 16#0639#), + (16#1EE70#, 16#0641#), + (16#1EE71#, 16#0635#), + (16#1EE72#, 16#0642#), + (16#1EE74#, 16#0634#), + (16#1EE75#, 16#062A#), + (16#1EE76#, 16#062B#), + (16#1EE77#, 16#062E#), + (16#1EE79#, 16#0636#), + (16#1EE7A#, 16#0638#), + (16#1EE7B#, 16#063A#), + (16#1EE7C#, 16#066E#), + (16#1EE7E#, 16#06A1#), + (16#1EE80#, 16#0627#), + (16#1EE81#, 16#0628#), + (16#1EE82#, 16#062C#), + (16#1EE83#, 16#062F#), + (16#1EE84#, 16#0647#), + (16#1EE85#, 16#0648#), + (16#1EE86#, 16#0632#), + (16#1EE87#, 16#062D#), + (16#1EE88#, 16#0637#), + (16#1EE89#, 16#064A#), + (16#1EE8B#, 16#0644#), + (16#1EE8C#, 16#0645#), + (16#1EE8D#, 16#0646#), + (16#1EE8E#, 16#0633#), + (16#1EE8F#, 16#0639#), + (16#1EE90#, 16#0641#), + (16#1EE91#, 16#0635#), + (16#1EE92#, 16#0642#), + (16#1EE93#, 16#0631#), + (16#1EE94#, 16#0634#), + (16#1EE95#, 16#062A#), + (16#1EE96#, 16#062B#), + (16#1EE97#, 16#062E#), + (16#1EE98#, 16#0630#), + (16#1EE99#, 16#0636#), + (16#1EE9A#, 16#0638#), + (16#1EE9B#, 16#063A#), + (16#1EEA1#, 16#0628#), + (16#1EEA2#, 16#062C#), + (16#1EEA3#, 16#062F#), + (16#1EEA5#, 16#0648#), + (16#1EEA6#, 16#0632#), + (16#1EEA7#, 16#062D#), + (16#1EEA8#, 16#0637#), + (16#1EEA9#, 16#064A#), + (16#1EEAB#, 16#0644#), + (16#1EEAC#, 16#0645#), + (16#1EEAD#, 16#0646#), + (16#1EEAE#, 16#0633#), + (16#1EEAF#, 16#0639#), + (16#1EEB0#, 16#0641#), + (16#1EEB1#, 16#0635#), + (16#1EEB2#, 16#0642#), + (16#1EEB3#, 16#0631#), + (16#1EEB4#, 16#0634#), + (16#1EEB5#, 16#062A#), + (16#1EEB6#, 16#062B#), + (16#1EEB7#, 16#062E#), + (16#1EEB8#, 16#0630#), + (16#1EEB9#, 16#0636#), + (16#1EEBA#, 16#0638#), + (16#1EEBB#, 16#063A#), + (16#1F100#, 16#0030#), + (16#1F101#, 16#0030#), + (16#1F102#, 16#0031#), + (16#1F103#, 16#0032#), + (16#1F104#, 16#0033#), + (16#1F105#, 16#0034#), + (16#1F106#, 16#0035#), + (16#1F107#, 16#0036#), + (16#1F108#, 16#0037#), + (16#1F109#, 16#0038#), + (16#1F10A#, 16#0039#), + (16#1F110#, 16#0028#), + (16#1F111#, 16#0028#), + (16#1F112#, 16#0028#), + (16#1F113#, 16#0028#), + (16#1F114#, 16#0028#), + (16#1F115#, 16#0028#), + (16#1F116#, 16#0028#), + (16#1F117#, 16#0028#), + (16#1F118#, 16#0028#), + (16#1F119#, 16#0028#), + (16#1F11A#, 16#0028#), + (16#1F11B#, 16#0028#), + (16#1F11C#, 16#0028#), + (16#1F11D#, 16#0028#), + (16#1F11E#, 16#0028#), + (16#1F11F#, 16#0028#), + (16#1F120#, 16#0028#), + (16#1F121#, 16#0028#), + (16#1F122#, 16#0028#), + (16#1F123#, 16#0028#), + (16#1F124#, 16#0028#), + (16#1F125#, 16#0028#), + (16#1F126#, 16#0028#), + (16#1F127#, 16#0028#), + (16#1F128#, 16#0028#), + (16#1F129#, 16#0028#), + (16#1F12A#, 16#3014#), + (16#1F12B#, 16#0043#), + (16#1F12C#, 16#0052#), + (16#1F12D#, 16#0043#), + (16#1F12E#, 16#0057#), + (16#1F130#, 16#0041#), + (16#1F131#, 16#0042#), + (16#1F132#, 16#0043#), + (16#1F133#, 16#0044#), + (16#1F134#, 16#0045#), + (16#1F135#, 16#0046#), + (16#1F136#, 16#0047#), + (16#1F137#, 16#0048#), + (16#1F138#, 16#0049#), + (16#1F139#, 16#004A#), + (16#1F13A#, 16#004B#), + (16#1F13B#, 16#004C#), + (16#1F13C#, 16#004D#), + (16#1F13D#, 16#004E#), + (16#1F13E#, 16#004F#), + (16#1F13F#, 16#0050#), + (16#1F140#, 16#0051#), + (16#1F141#, 16#0052#), + (16#1F142#, 16#0053#), + (16#1F143#, 16#0054#), + (16#1F144#, 16#0055#), + (16#1F145#, 16#0056#), + (16#1F146#, 16#0057#), + (16#1F147#, 16#0058#), + (16#1F148#, 16#0059#), + (16#1F149#, 16#005A#), + (16#1F14A#, 16#0048#), + (16#1F14B#, 16#004D#), + (16#1F14C#, 16#0053#), + (16#1F14D#, 16#0053#), + (16#1F14E#, 16#0050#), + (16#1F14F#, 16#0057#), + (16#1F16A#, 16#004D#), + (16#1F16B#, 16#004D#), + (16#1F16C#, 16#004D#), + (16#1F190#, 16#0044#), + (16#1F200#, 16#307B#), + (16#1F201#, 16#30B3#), + (16#1F202#, 16#30B5#), + (16#1F210#, 16#624B#), + (16#1F211#, 16#5B57#), + (16#1F212#, 16#53CC#), + (16#1F213#, 16#30C7#), + (16#1F214#, 16#4E8C#), + (16#1F215#, 16#591A#), + (16#1F216#, 16#89E3#), + (16#1F217#, 16#5929#), + (16#1F218#, 16#4EA4#), + (16#1F219#, 16#6620#), + (16#1F21A#, 16#7121#), + (16#1F21B#, 16#6599#), + (16#1F21C#, 16#524D#), + (16#1F21D#, 16#5F8C#), + (16#1F21E#, 16#518D#), + (16#1F21F#, 16#65B0#), + (16#1F220#, 16#521D#), + (16#1F221#, 16#7D42#), + (16#1F222#, 16#751F#), + (16#1F223#, 16#8CA9#), + (16#1F224#, 16#58F0#), + (16#1F225#, 16#5439#), + (16#1F226#, 16#6F14#), + (16#1F227#, 16#6295#), + (16#1F228#, 16#6355#), + (16#1F229#, 16#4E00#), + (16#1F22A#, 16#4E09#), + (16#1F22B#, 16#904A#), + (16#1F22C#, 16#5DE6#), + (16#1F22D#, 16#4E2D#), + (16#1F22E#, 16#53F3#), + (16#1F22F#, 16#6307#), + (16#1F230#, 16#8D70#), + (16#1F231#, 16#6253#), + (16#1F232#, 16#7981#), + (16#1F233#, 16#7A7A#), + (16#1F234#, 16#5408#), + (16#1F235#, 16#6E80#), + (16#1F236#, 16#6709#), + (16#1F237#, 16#6708#), + (16#1F238#, 16#7533#), + (16#1F239#, 16#5272#), + (16#1F23A#, 16#55B6#), + (16#1F23B#, 16#914D#), + (16#1F240#, 16#3014#), + (16#1F241#, 16#3014#), + (16#1F242#, 16#3014#), + (16#1F243#, 16#3014#), + (16#1F244#, 16#3014#), + (16#1F245#, 16#3014#), + (16#1F246#, 16#3014#), + (16#1F247#, 16#3014#), + (16#1F248#, 16#3014#), + (16#1F250#, 16#5F97#), + (16#1F251#, 16#53EF#), + (16#1FBF0#, 16#0030#), + (16#1FBF1#, 16#0031#), + (16#1FBF2#, 16#0032#), + (16#1FBF3#, 16#0033#), + (16#1FBF4#, 16#0034#), + (16#1FBF5#, 16#0035#), + (16#1FBF6#, 16#0036#), + (16#1FBF7#, 16#0037#), + (16#1FBF8#, 16#0038#), + (16#1FBF9#, 16#0039#), + (16#2F800#, 16#4E3D#), + (16#2F801#, 16#4E38#), + (16#2F802#, 16#4E41#), + (16#2F803#, 16#20122#), + (16#2F804#, 16#4F60#), + (16#2F805#, 16#4FAE#), + (16#2F806#, 16#4FBB#), + (16#2F807#, 16#5002#), + (16#2F808#, 16#507A#), + (16#2F809#, 16#5099#), + (16#2F80A#, 16#50E7#), + (16#2F80B#, 16#50CF#), + (16#2F80C#, 16#349E#), + (16#2F80D#, 16#2063A#), + (16#2F80E#, 16#514D#), + (16#2F80F#, 16#5154#), + (16#2F810#, 16#5164#), + (16#2F811#, 16#5177#), + (16#2F812#, 16#2051C#), + (16#2F813#, 16#34B9#), + (16#2F814#, 16#5167#), + (16#2F815#, 16#518D#), + (16#2F816#, 16#2054B#), + (16#2F817#, 16#5197#), + (16#2F818#, 16#51A4#), + (16#2F819#, 16#4ECC#), + (16#2F81A#, 16#51AC#), + (16#2F81B#, 16#51B5#), + (16#2F81C#, 16#291DF#), + (16#2F81D#, 16#51F5#), + (16#2F81E#, 16#5203#), + (16#2F81F#, 16#34DF#), + (16#2F820#, 16#523B#), + (16#2F821#, 16#5246#), + (16#2F822#, 16#5272#), + (16#2F823#, 16#5277#), + (16#2F824#, 16#3515#), + (16#2F825#, 16#52C7#), + (16#2F826#, 16#52C9#), + (16#2F827#, 16#52E4#), + (16#2F828#, 16#52FA#), + (16#2F829#, 16#5305#), + (16#2F82A#, 16#5306#), + (16#2F82B#, 16#5317#), + (16#2F82C#, 16#5349#), + (16#2F82D#, 16#5351#), + (16#2F82E#, 16#535A#), + (16#2F82F#, 16#5373#), + (16#2F830#, 16#537D#), + (16#2F831#, 16#537F#), + (16#2F832#, 16#537F#), + (16#2F833#, 16#537F#), + (16#2F834#, 16#20A2C#), + (16#2F835#, 16#7070#), + (16#2F836#, 16#53CA#), + (16#2F837#, 16#53DF#), + (16#2F838#, 16#20B63#), + (16#2F839#, 16#53EB#), + (16#2F83A#, 16#53F1#), + (16#2F83B#, 16#5406#), + (16#2F83C#, 16#549E#), + (16#2F83D#, 16#5438#), + (16#2F83E#, 16#5448#), + (16#2F83F#, 16#5468#), + (16#2F840#, 16#54A2#), + (16#2F841#, 16#54F6#), + (16#2F842#, 16#5510#), + (16#2F843#, 16#5553#), + (16#2F844#, 16#5563#), + (16#2F845#, 16#5584#), + (16#2F846#, 16#5584#), + (16#2F847#, 16#5599#), + (16#2F848#, 16#55AB#), + (16#2F849#, 16#55B3#), + (16#2F84A#, 16#55C2#), + (16#2F84B#, 16#5716#), + (16#2F84C#, 16#5606#), + (16#2F84D#, 16#5717#), + (16#2F84E#, 16#5651#), + (16#2F84F#, 16#5674#), + (16#2F850#, 16#5207#), + (16#2F851#, 16#58EE#), + (16#2F852#, 16#57CE#), + (16#2F853#, 16#57F4#), + (16#2F854#, 16#580D#), + (16#2F855#, 16#578B#), + (16#2F856#, 16#5832#), + (16#2F857#, 16#5831#), + (16#2F858#, 16#58AC#), + (16#2F859#, 16#214E4#), + (16#2F85A#, 16#58F2#), + (16#2F85B#, 16#58F7#), + (16#2F85C#, 16#5906#), + (16#2F85D#, 16#591A#), + (16#2F85E#, 16#5922#), + (16#2F85F#, 16#5962#), + (16#2F860#, 16#216A8#), + (16#2F861#, 16#216EA#), + (16#2F862#, 16#59EC#), + (16#2F863#, 16#5A1B#), + (16#2F864#, 16#5A27#), + (16#2F865#, 16#59D8#), + (16#2F866#, 16#5A66#), + (16#2F867#, 16#36EE#), + (16#2F868#, 16#36FC#), + (16#2F869#, 16#5B08#), + (16#2F86A#, 16#5B3E#), + (16#2F86B#, 16#5B3E#), + (16#2F86C#, 16#219C8#), + (16#2F86D#, 16#5BC3#), + (16#2F86E#, 16#5BD8#), + (16#2F86F#, 16#5BE7#), + (16#2F870#, 16#5BF3#), + (16#2F871#, 16#21B18#), + (16#2F872#, 16#5BFF#), + (16#2F873#, 16#5C06#), + (16#2F874#, 16#5F53#), + (16#2F875#, 16#5C22#), + (16#2F876#, 16#3781#), + (16#2F877#, 16#5C60#), + (16#2F878#, 16#5C6E#), + (16#2F879#, 16#5CC0#), + (16#2F87A#, 16#5C8D#), + (16#2F87B#, 16#21DE4#), + (16#2F87C#, 16#5D43#), + (16#2F87D#, 16#21DE6#), + (16#2F87E#, 16#5D6E#), + (16#2F87F#, 16#5D6B#), + (16#2F880#, 16#5D7C#), + (16#2F881#, 16#5DE1#), + (16#2F882#, 16#5DE2#), + (16#2F883#, 16#382F#), + (16#2F884#, 16#5DFD#), + (16#2F885#, 16#5E28#), + (16#2F886#, 16#5E3D#), + (16#2F887#, 16#5E69#), + (16#2F888#, 16#3862#), + (16#2F889#, 16#22183#), + (16#2F88A#, 16#387C#), + (16#2F88B#, 16#5EB0#), + (16#2F88C#, 16#5EB3#), + (16#2F88D#, 16#5EB6#), + (16#2F88E#, 16#5ECA#), + (16#2F88F#, 16#2A392#), + (16#2F890#, 16#5EFE#), + (16#2F891#, 16#22331#), + (16#2F892#, 16#22331#), + (16#2F893#, 16#8201#), + (16#2F894#, 16#5F22#), + (16#2F895#, 16#5F22#), + (16#2F896#, 16#38C7#), + (16#2F897#, 16#232B8#), + (16#2F898#, 16#261DA#), + (16#2F899#, 16#5F62#), + (16#2F89A#, 16#5F6B#), + (16#2F89B#, 16#38E3#), + (16#2F89C#, 16#5F9A#), + (16#2F89D#, 16#5FCD#), + (16#2F89E#, 16#5FD7#), + (16#2F89F#, 16#5FF9#), + (16#2F8A0#, 16#6081#), + (16#2F8A1#, 16#393A#), + (16#2F8A2#, 16#391C#), + (16#2F8A3#, 16#6094#), + (16#2F8A4#, 16#226D4#), + (16#2F8A5#, 16#60C7#), + (16#2F8A6#, 16#6148#), + (16#2F8A7#, 16#614C#), + (16#2F8A8#, 16#614E#), + (16#2F8A9#, 16#614C#), + (16#2F8AA#, 16#617A#), + (16#2F8AB#, 16#618E#), + (16#2F8AC#, 16#61B2#), + (16#2F8AD#, 16#61A4#), + (16#2F8AE#, 16#61AF#), + (16#2F8AF#, 16#61DE#), + (16#2F8B0#, 16#61F2#), + (16#2F8B1#, 16#61F6#), + (16#2F8B2#, 16#6210#), + (16#2F8B3#, 16#621B#), + (16#2F8B4#, 16#625D#), + (16#2F8B5#, 16#62B1#), + (16#2F8B6#, 16#62D4#), + (16#2F8B7#, 16#6350#), + (16#2F8B8#, 16#22B0C#), + (16#2F8B9#, 16#633D#), + (16#2F8BA#, 16#62FC#), + (16#2F8BB#, 16#6368#), + (16#2F8BC#, 16#6383#), + (16#2F8BD#, 16#63E4#), + (16#2F8BE#, 16#22BF1#), + (16#2F8BF#, 16#6422#), + (16#2F8C0#, 16#63C5#), + (16#2F8C1#, 16#63A9#), + (16#2F8C2#, 16#3A2E#), + (16#2F8C3#, 16#6469#), + (16#2F8C4#, 16#647E#), + (16#2F8C5#, 16#649D#), + (16#2F8C6#, 16#6477#), + (16#2F8C7#, 16#3A6C#), + (16#2F8C8#, 16#654F#), + (16#2F8C9#, 16#656C#), + (16#2F8CA#, 16#2300A#), + (16#2F8CB#, 16#65E3#), + (16#2F8CC#, 16#66F8#), + (16#2F8CD#, 16#6649#), + (16#2F8CE#, 16#3B19#), + (16#2F8CF#, 16#6691#), + (16#2F8D0#, 16#3B08#), + (16#2F8D1#, 16#3AE4#), + (16#2F8D2#, 16#5192#), + (16#2F8D3#, 16#5195#), + (16#2F8D4#, 16#6700#), + (16#2F8D5#, 16#669C#), + (16#2F8D6#, 16#80AD#), + (16#2F8D7#, 16#43D9#), + (16#2F8D8#, 16#6717#), + (16#2F8D9#, 16#671B#), + (16#2F8DA#, 16#6721#), + (16#2F8DB#, 16#675E#), + (16#2F8DC#, 16#6753#), + (16#2F8DD#, 16#233C3#), + (16#2F8DE#, 16#3B49#), + (16#2F8DF#, 16#67FA#), + (16#2F8E0#, 16#6785#), + (16#2F8E1#, 16#6852#), + (16#2F8E2#, 16#6885#), + (16#2F8E3#, 16#2346D#), + (16#2F8E4#, 16#688E#), + (16#2F8E5#, 16#681F#), + (16#2F8E6#, 16#6914#), + (16#2F8E7#, 16#3B9D#), + (16#2F8E8#, 16#6942#), + (16#2F8E9#, 16#69A3#), + (16#2F8EA#, 16#69EA#), + (16#2F8EB#, 16#6AA8#), + (16#2F8EC#, 16#236A3#), + (16#2F8ED#, 16#6ADB#), + (16#2F8EE#, 16#3C18#), + (16#2F8EF#, 16#6B21#), + (16#2F8F0#, 16#238A7#), + (16#2F8F1#, 16#6B54#), + (16#2F8F2#, 16#3C4E#), + (16#2F8F3#, 16#6B72#), + (16#2F8F4#, 16#6B9F#), + (16#2F8F5#, 16#6BBA#), + (16#2F8F6#, 16#6BBB#), + (16#2F8F7#, 16#23A8D#), + (16#2F8F8#, 16#21D0B#), + (16#2F8F9#, 16#23AFA#), + (16#2F8FA#, 16#6C4E#), + (16#2F8FB#, 16#23CBC#), + (16#2F8FC#, 16#6CBF#), + (16#2F8FD#, 16#6CCD#), + (16#2F8FE#, 16#6C67#), + (16#2F8FF#, 16#6D16#), + (16#2F900#, 16#6D3E#), + (16#2F901#, 16#6D77#), + (16#2F902#, 16#6D41#), + (16#2F903#, 16#6D69#), + (16#2F904#, 16#6D78#), + (16#2F905#, 16#6D85#), + (16#2F906#, 16#23D1E#), + (16#2F907#, 16#6D34#), + (16#2F908#, 16#6E2F#), + (16#2F909#, 16#6E6E#), + (16#2F90A#, 16#3D33#), + (16#2F90B#, 16#6ECB#), + (16#2F90C#, 16#6EC7#), + (16#2F90D#, 16#23ED1#), + (16#2F90E#, 16#6DF9#), + (16#2F90F#, 16#6F6E#), + (16#2F910#, 16#23F5E#), + (16#2F911#, 16#23F8E#), + (16#2F912#, 16#6FC6#), + (16#2F913#, 16#7039#), + (16#2F914#, 16#701E#), + (16#2F915#, 16#701B#), + (16#2F916#, 16#3D96#), + (16#2F917#, 16#704A#), + (16#2F918#, 16#707D#), + (16#2F919#, 16#7077#), + (16#2F91A#, 16#70AD#), + (16#2F91B#, 16#20525#), + (16#2F91C#, 16#7145#), + (16#2F91D#, 16#24263#), + (16#2F91E#, 16#719C#), + (16#2F91F#, 16#243AB#), + (16#2F920#, 16#7228#), + (16#2F921#, 16#7235#), + (16#2F922#, 16#7250#), + (16#2F923#, 16#24608#), + (16#2F924#, 16#7280#), + (16#2F925#, 16#7295#), + (16#2F926#, 16#24735#), + (16#2F927#, 16#24814#), + (16#2F928#, 16#737A#), + (16#2F929#, 16#738B#), + (16#2F92A#, 16#3EAC#), + (16#2F92B#, 16#73A5#), + (16#2F92C#, 16#3EB8#), + (16#2F92D#, 16#3EB8#), + (16#2F92E#, 16#7447#), + (16#2F92F#, 16#745C#), + (16#2F930#, 16#7471#), + (16#2F931#, 16#7485#), + (16#2F932#, 16#74CA#), + (16#2F933#, 16#3F1B#), + (16#2F934#, 16#7524#), + (16#2F935#, 16#24C36#), + (16#2F936#, 16#753E#), + (16#2F937#, 16#24C92#), + (16#2F938#, 16#7570#), + (16#2F939#, 16#2219F#), + (16#2F93A#, 16#7610#), + (16#2F93B#, 16#24FA1#), + (16#2F93C#, 16#24FB8#), + (16#2F93D#, 16#25044#), + (16#2F93E#, 16#3FFC#), + (16#2F93F#, 16#4008#), + (16#2F940#, 16#76F4#), + (16#2F941#, 16#250F3#), + (16#2F942#, 16#250F2#), + (16#2F943#, 16#25119#), + (16#2F944#, 16#25133#), + (16#2F945#, 16#771E#), + (16#2F946#, 16#771F#), + (16#2F947#, 16#771F#), + (16#2F948#, 16#774A#), + (16#2F949#, 16#4039#), + (16#2F94A#, 16#778B#), + (16#2F94B#, 16#4046#), + (16#2F94C#, 16#4096#), + (16#2F94D#, 16#2541D#), + (16#2F94E#, 16#784E#), + (16#2F94F#, 16#788C#), + (16#2F950#, 16#78CC#), + (16#2F951#, 16#40E3#), + (16#2F952#, 16#25626#), + (16#2F953#, 16#7956#), + (16#2F954#, 16#2569A#), + (16#2F955#, 16#256C5#), + (16#2F956#, 16#798F#), + (16#2F957#, 16#79EB#), + (16#2F958#, 16#412F#), + (16#2F959#, 16#7A40#), + (16#2F95A#, 16#7A4A#), + (16#2F95B#, 16#7A4F#), + (16#2F95C#, 16#2597C#), + (16#2F95D#, 16#25AA7#), + (16#2F95E#, 16#25AA7#), + (16#2F95F#, 16#7AEE#), + (16#2F960#, 16#4202#), + (16#2F961#, 16#25BAB#), + (16#2F962#, 16#7BC6#), + (16#2F963#, 16#7BC9#), + (16#2F964#, 16#4227#), + (16#2F965#, 16#25C80#), + (16#2F966#, 16#7CD2#), + (16#2F967#, 16#42A0#), + (16#2F968#, 16#7CE8#), + (16#2F969#, 16#7CE3#), + (16#2F96A#, 16#7D00#), + (16#2F96B#, 16#25F86#), + (16#2F96C#, 16#7D63#), + (16#2F96D#, 16#4301#), + (16#2F96E#, 16#7DC7#), + (16#2F96F#, 16#7E02#), + (16#2F970#, 16#7E45#), + (16#2F971#, 16#4334#), + (16#2F972#, 16#26228#), + (16#2F973#, 16#26247#), + (16#2F974#, 16#4359#), + (16#2F975#, 16#262D9#), + (16#2F976#, 16#7F7A#), + (16#2F977#, 16#2633E#), + (16#2F978#, 16#7F95#), + (16#2F979#, 16#7FFA#), + (16#2F97A#, 16#8005#), + (16#2F97B#, 16#264DA#), + (16#2F97C#, 16#26523#), + (16#2F97D#, 16#8060#), + (16#2F97E#, 16#265A8#), + (16#2F97F#, 16#8070#), + (16#2F980#, 16#2335F#), + (16#2F981#, 16#43D5#), + (16#2F982#, 16#80B2#), + (16#2F983#, 16#8103#), + (16#2F984#, 16#440B#), + (16#2F985#, 16#813E#), + (16#2F986#, 16#5AB5#), + (16#2F987#, 16#267A7#), + (16#2F988#, 16#267B5#), + (16#2F989#, 16#23393#), + (16#2F98A#, 16#2339C#), + (16#2F98B#, 16#8201#), + (16#2F98C#, 16#8204#), + (16#2F98D#, 16#8F9E#), + (16#2F98E#, 16#446B#), + (16#2F98F#, 16#8291#), + (16#2F990#, 16#828B#), + (16#2F991#, 16#829D#), + (16#2F992#, 16#52B3#), + (16#2F993#, 16#82B1#), + (16#2F994#, 16#82B3#), + (16#2F995#, 16#82BD#), + (16#2F996#, 16#82E6#), + (16#2F997#, 16#26B3C#), + (16#2F998#, 16#82E5#), + (16#2F999#, 16#831D#), + (16#2F99A#, 16#8363#), + (16#2F99B#, 16#83AD#), + (16#2F99C#, 16#8323#), + (16#2F99D#, 16#83BD#), + (16#2F99E#, 16#83E7#), + (16#2F99F#, 16#8457#), + (16#2F9A0#, 16#8353#), + (16#2F9A1#, 16#83CA#), + (16#2F9A2#, 16#83CC#), + (16#2F9A3#, 16#83DC#), + (16#2F9A4#, 16#26C36#), + (16#2F9A5#, 16#26D6B#), + (16#2F9A6#, 16#26CD5#), + (16#2F9A7#, 16#452B#), + (16#2F9A8#, 16#84F1#), + (16#2F9A9#, 16#84F3#), + (16#2F9AA#, 16#8516#), + (16#2F9AB#, 16#273CA#), + (16#2F9AC#, 16#8564#), + (16#2F9AD#, 16#26F2C#), + (16#2F9AE#, 16#455D#), + (16#2F9AF#, 16#4561#), + (16#2F9B0#, 16#26FB1#), + (16#2F9B1#, 16#270D2#), + (16#2F9B2#, 16#456B#), + (16#2F9B3#, 16#8650#), + (16#2F9B4#, 16#865C#), + (16#2F9B5#, 16#8667#), + (16#2F9B6#, 16#8669#), + (16#2F9B7#, 16#86A9#), + (16#2F9B8#, 16#8688#), + (16#2F9B9#, 16#870E#), + (16#2F9BA#, 16#86E2#), + (16#2F9BB#, 16#8779#), + (16#2F9BC#, 16#8728#), + (16#2F9BD#, 16#876B#), + (16#2F9BE#, 16#8786#), + (16#2F9BF#, 16#45D7#), + (16#2F9C0#, 16#87E1#), + (16#2F9C1#, 16#8801#), + (16#2F9C2#, 16#45F9#), + (16#2F9C3#, 16#8860#), + (16#2F9C4#, 16#8863#), + (16#2F9C5#, 16#27667#), + (16#2F9C6#, 16#88D7#), + (16#2F9C7#, 16#88DE#), + (16#2F9C8#, 16#4635#), + (16#2F9C9#, 16#88FA#), + (16#2F9CA#, 16#34BB#), + (16#2F9CB#, 16#278AE#), + (16#2F9CC#, 16#27966#), + (16#2F9CD#, 16#46BE#), + (16#2F9CE#, 16#46C7#), + (16#2F9CF#, 16#8AA0#), + (16#2F9D0#, 16#8AED#), + (16#2F9D1#, 16#8B8A#), + (16#2F9D2#, 16#8C55#), + (16#2F9D3#, 16#27CA8#), + (16#2F9D4#, 16#8CAB#), + (16#2F9D5#, 16#8CC1#), + (16#2F9D6#, 16#8D1B#), + (16#2F9D7#, 16#8D77#), + (16#2F9D8#, 16#27F2F#), + (16#2F9D9#, 16#20804#), + (16#2F9DA#, 16#8DCB#), + (16#2F9DB#, 16#8DBC#), + (16#2F9DC#, 16#8DF0#), + (16#2F9DD#, 16#208DE#), + (16#2F9DE#, 16#8ED4#), + (16#2F9DF#, 16#8F38#), + (16#2F9E0#, 16#285D2#), + (16#2F9E1#, 16#285ED#), + (16#2F9E2#, 16#9094#), + (16#2F9E3#, 16#90F1#), + (16#2F9E4#, 16#9111#), + (16#2F9E5#, 16#2872E#), + (16#2F9E6#, 16#911B#), + (16#2F9E7#, 16#9238#), + (16#2F9E8#, 16#92D7#), + (16#2F9E9#, 16#92D8#), + (16#2F9EA#, 16#927C#), + (16#2F9EB#, 16#93F9#), + (16#2F9EC#, 16#9415#), + (16#2F9ED#, 16#28BFA#), + (16#2F9EE#, 16#958B#), + (16#2F9EF#, 16#4995#), + (16#2F9F0#, 16#95B7#), + (16#2F9F1#, 16#28D77#), + (16#2F9F2#, 16#49E6#), + (16#2F9F3#, 16#96C3#), + (16#2F9F4#, 16#5DB2#), + (16#2F9F5#, 16#9723#), + (16#2F9F6#, 16#29145#), + (16#2F9F7#, 16#2921A#), + (16#2F9F8#, 16#4A6E#), + (16#2F9F9#, 16#4A76#), + (16#2F9FA#, 16#97E0#), + (16#2F9FB#, 16#2940A#), + (16#2F9FC#, 16#4AB2#), + (16#2F9FD#, 16#29496#), + (16#2F9FE#, 16#980B#), + (16#2F9FF#, 16#980B#), + (16#2FA00#, 16#9829#), + (16#2FA01#, 16#295B6#), + (16#2FA02#, 16#98E2#), + (16#2FA03#, 16#4B33#), + (16#2FA04#, 16#9929#), + (16#2FA05#, 16#99A7#), + (16#2FA06#, 16#99C2#), + (16#2FA07#, 16#99FE#), + (16#2FA08#, 16#4BCE#), + (16#2FA09#, 16#29B30#), + (16#2FA0A#, 16#9B12#), + (16#2FA0B#, 16#9C40#), + (16#2FA0C#, 16#9CFD#), + (16#2FA0D#, 16#4CCE#), + (16#2FA0E#, 16#4CED#), + (16#2FA0F#, 16#9D67#), + (16#2FA10#, 16#2A0CE#), + (16#2FA11#, 16#4CF8#), + (16#2FA12#, 16#2A105#), + (16#2FA13#, 16#2A20E#), + (16#2FA14#, 16#2A291#), + (16#2FA15#, 16#9EBB#), + (16#2FA16#, 16#4D56#), + (16#2FA17#, 16#9EF9#), + (16#2FA18#, 16#9EFE#), + (16#2FA19#, 16#9F05#), + (16#2FA1A#, 16#9F0F#), + (16#2FA1B#, 16#9F16#), + (16#2FA1C#, 16#9F3B#), + (16#2FA1D#, 16#2A600#)); + ----------------------- -- Local Subprograms -- ----------------------- + function Decomposition_Search + (U : UTF_32; R : Unicode_Decomposition_Array) return Natural; + -- Searches the given decomposition array and returns the index of the + -- matching character U if found, zero otherwise. + function Range_Search (U : UTF_32; R : UTF_32_Ranges) return Natural; -- Searches the given ranges (which must be in ascending order by Lo value) -- and returns the index of the matching range in R if U matches one of the @@ -6247,6 +12395,15 @@ package body System.UTF_32 is return Non_Graphic (C); end Is_UTF_32_Non_Graphic; + -------------------- + -- Is_UTF_32_NFKC -- + -------------------- + + function Is_UTF_32_NFKC (U : UTF_32) return Boolean is + begin + return U < 160 or else Range_Search (U, UTF_32_NFKC_QC_No) = 0; + end Is_UTF_32_NFKC; + --------------------- -- Is_UTF_32_Other -- --------------------- @@ -6289,6 +12446,53 @@ package body System.UTF_32 is return C = Zs; end Is_UTF_32_Space; + --------------------- + -- Is_UTF_32_Basic -- + --------------------- + + function Is_UTF_32_Basic (U : UTF_32) return Boolean is + begin + return Decomposition_Search (U, Unicode_Decomposition) = 0; + end Is_UTF_32_Basic; + + -------------------------- + -- Decomposition_Search -- + -------------------------- + + function Decomposition_Search + (U : UTF_32; R : Unicode_Decomposition_Array) return Natural + is + Lo : Integer; + Hi : Integer; + Mid : Integer; + + begin + Lo := R'First; + Hi := R'Last; + + loop + Mid := (Lo + Hi) / 2; + + if U < R (Mid).Item then + Hi := Mid - 1; + + if Hi < Lo then + return 0; + end if; + + elsif R (Mid).Item < U then + Lo := Mid + 1; + + if Hi < Lo then + return 0; + end if; + + else + return Mid; + end if; + end loop; + end Decomposition_Search; + ------------------ -- Range_Search -- ------------------ @@ -6325,6 +12529,21 @@ package body System.UTF_32 is end loop; end Range_Search; + --------------------- + -- UTF_32_To_Basic -- + --------------------- + + function UTF_32_To_Basic (U : UTF_32) return UTF_32 is + Index : constant Integer := + Decomposition_Search (U, Unicode_Decomposition); + begin + if Index = 0 then + return U; + else + return Unicode_Decomposition (Index).First_Char_Mapping; + end if; + end UTF_32_To_Basic; + -------------------------- -- UTF_32_To_Lower_Case -- -------------------------- diff --git a/gcc/ada/libgnat/s-utf_32.ads b/gcc/ada/libgnat/s-utf_32.ads index 8e75e48..e3f0e00 100644 --- a/gcc/ada/libgnat/s-utf_32.ads +++ b/gcc/ada/libgnat/s-utf_32.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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- -- @@ -189,6 +189,17 @@ package System.UTF_32 is -- letters to upper case using this routine. A corresponding routine to -- fold to lower case is also provided. + function Is_UTF_32_NFKC (U : UTF_32) return Boolean; + pragma Inline (Is_UTF_32_NFKC); + -- Return True if U could be present in a string normalized to + -- Normalization Form KC (as defined by Clause 21 of ISO/IEC 10646:2017), + -- otherwise returns False. + + function Is_UTF_32_Basic (U : UTF_32) return Boolean; + pragma Inline (Is_UTF_32_Basic); + -- Return True if U has no Decomposition Mapping in the code charts of + -- ISO/IEC 10646:2017. + function UTF_32_To_Lower_Case (U : UTF_32) return UTF_32; pragma Inline (UTF_32_To_Lower_Case); -- If U represents an upper case letter, returns the corresponding lower @@ -209,4 +220,10 @@ package System.UTF_32 is -- code is folded to this CAPITAL LETTER code. Otherwise the input code is -- returned unchanged. + function UTF_32_To_Basic (U : UTF_32) return UTF_32; + pragma Inline (UTF_32_To_Basic); + -- Returns the UTF_32 character whose code point is given by the first + -- value of its Decomposition Mapping in the code charts of ISO/IEC + -- 10646:2017 if any; returns Item otherwise. + end System.UTF_32; diff --git a/gcc/ada/libgnat/s-valboo.adb b/gcc/ada/libgnat/s-valboo.adb index 65dd3a3..e31d2bf 100644 --- a/gcc/ada/libgnat/s-valboo.adb +++ b/gcc/ada/libgnat/s-valboo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valboo.ads b/gcc/ada/libgnat/s-valboo.ads index f900621..94b81f9 100644 --- a/gcc/ada/libgnat/s-valboo.ads +++ b/gcc/ada/libgnat/s-valboo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valcha.adb b/gcc/ada/libgnat/s-valcha.adb index 5011b4d..70deb33 100644 --- a/gcc/ada/libgnat/s-valcha.adb +++ b/gcc/ada/libgnat/s-valcha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valcha.ads b/gcc/ada/libgnat/s-valcha.ads index b9d5373..a33c032 100644 --- a/gcc/ada/libgnat/s-valcha.ads +++ b/gcc/ada/libgnat/s-valcha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valdec.adb b/gcc/ada/libgnat/s-valdec.adb index 22a3333..99fffaf 100644 --- a/gcc/ada/libgnat/s-valdec.adb +++ b/gcc/ada/libgnat/s-valdec.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valdec.ads b/gcc/ada/libgnat/s-valdec.ads index ec10490..05fab98 100644 --- a/gcc/ada/libgnat/s-valdec.ads +++ b/gcc/ada/libgnat/s-valdec.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valenu.adb b/gcc/ada/libgnat/s-valenu.adb index 4693462..daa9b43 100644 --- a/gcc/ada/libgnat/s-valenu.adb +++ b/gcc/ada/libgnat/s-valenu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valenu.ads b/gcc/ada/libgnat/s-valenu.ads index e2a3a15..97c197f 100644 --- a/gcc/ada/libgnat/s-valenu.ads +++ b/gcc/ada/libgnat/s-valenu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valint.adb b/gcc/ada/libgnat/s-valint.adb index 9d7d60d..c40d558 100644 --- a/gcc/ada/libgnat/s-valint.adb +++ b/gcc/ada/libgnat/s-valint.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valint.ads b/gcc/ada/libgnat/s-valint.ads index d9f15ed..79571da 100644 --- a/gcc/ada/libgnat/s-valint.ads +++ b/gcc/ada/libgnat/s-valint.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-vallld.adb b/gcc/ada/libgnat/s-vallld.adb index 45bb2c9..4efa969 100644 --- a/gcc/ada/libgnat/s-vallld.adb +++ b/gcc/ada/libgnat/s-vallld.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-vallld.ads b/gcc/ada/libgnat/s-vallld.ads index 17db078..652362d 100644 --- a/gcc/ada/libgnat/s-vallld.ads +++ b/gcc/ada/libgnat/s-vallld.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-vallli.adb b/gcc/ada/libgnat/s-vallli.adb index 37de032..43bb0a7 100644 --- a/gcc/ada/libgnat/s-vallli.adb +++ b/gcc/ada/libgnat/s-vallli.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-vallli.ads b/gcc/ada/libgnat/s-vallli.ads index ee75bdc..0a51bbe 100644 --- a/gcc/ada/libgnat/s-vallli.ads +++ b/gcc/ada/libgnat/s-vallli.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valllu.adb b/gcc/ada/libgnat/s-valllu.adb index a01764f..dca0aac 100644 --- a/gcc/ada/libgnat/s-valllu.adb +++ b/gcc/ada/libgnat/s-valllu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valllu.ads b/gcc/ada/libgnat/s-valllu.ads index ddb8414..51a31dd 100644 --- a/gcc/ada/libgnat/s-valllu.ads +++ b/gcc/ada/libgnat/s-valllu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valrea.adb b/gcc/ada/libgnat/s-valrea.adb index 424ccd0..1a47dc2 100644 --- a/gcc/ada/libgnat/s-valrea.adb +++ b/gcc/ada/libgnat/s-valrea.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- @@ -92,8 +92,7 @@ package body System.Val_Real is -- As_Digit -- -------------- - function As_Digit (C : Character) return Char_As_Digit - is + function As_Digit (C : Character) return Char_As_Digit is begin case C is when '0' .. '9' => @@ -133,7 +132,9 @@ package body System.Val_Real is Trailing_Zeros : Natural := 0; -- Number of trailing zeros at a given point. + begin + pragma Assert (Base in 2 .. 16); -- If initial Scale is not 0 then it means that Precision_Limit was -- reached during integral part scanning. @@ -217,7 +218,6 @@ package body System.Val_Real is end if; end if; end loop; - end Scan_Decimal_Digits; -------------------------- @@ -268,6 +268,8 @@ package body System.Val_Real is -- Precision limit has been reached so just update the exponent Scale := Scale + 1; else + pragma Assert (Base /= 0); + if Value > (Precision_Limit - Digit) / Base then -- Updating Value will overflow so ignore this digit and any -- following ones. Only update the scale @@ -369,6 +371,10 @@ package body System.Val_Real is -- First character can be either a decimal digit or a dot. if Str (Index) in '0' .. '9' then + pragma Annotate + (CodePeer, Intentional, + "test always true", "defensive code below"); + -- If this is a digit it can indicates either the float decimal -- part or the base to use Scan_Integral_Digits diff --git a/gcc/ada/libgnat/s-valrea.ads b/gcc/ada/libgnat/s-valrea.ads index b59f345..cb5374c 100644 --- a/gcc/ada/libgnat/s-valrea.ads +++ b/gcc/ada/libgnat/s-valrea.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valuns.adb b/gcc/ada/libgnat/s-valuns.adb index a9fbd58..9f9e81e 100644 --- a/gcc/ada/libgnat/s-valuns.adb +++ b/gcc/ada/libgnat/s-valuns.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valuns.ads b/gcc/ada/libgnat/s-valuns.ads index 7d261b1..b965ba5 100644 --- a/gcc/ada/libgnat/s-valuns.ads +++ b/gcc/ada/libgnat/s-valuns.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valuti.adb b/gcc/ada/libgnat/s-valuti.adb index 6c63282..29042f7 100644 --- a/gcc/ada/libgnat/s-valuti.adb +++ b/gcc/ada/libgnat/s-valuti.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valuti.ads b/gcc/ada/libgnat/s-valuti.ads index 4035a68..a453272 100644 --- a/gcc/ada/libgnat/s-valuti.ads +++ b/gcc/ada/libgnat/s-valuti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valwch.adb b/gcc/ada/libgnat/s-valwch.adb index cf61bf9..791171a 100644 --- a/gcc/ada/libgnat/s-valwch.adb +++ b/gcc/ada/libgnat/s-valwch.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-valwch.ads b/gcc/ada/libgnat/s-valwch.ads index 5179517..a98d048 100644 --- a/gcc/ada/libgnat/s-valwch.ads +++ b/gcc/ada/libgnat/s-valwch.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-veboop.adb b/gcc/ada/libgnat/s-veboop.adb index 1ce61c8..ed43ef2 100644 --- a/gcc/ada/libgnat/s-veboop.adb +++ b/gcc/ada/libgnat/s-veboop.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-veboop.ads b/gcc/ada/libgnat/s-veboop.ads index 5c1fc0f..3570b65 100644 --- a/gcc/ada/libgnat/s-veboop.ads +++ b/gcc/ada/libgnat/s-veboop.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-vector.ads b/gcc/ada/libgnat/s-vector.ads index 6942570..2fb1004 100644 --- a/gcc/ada/libgnat/s-vector.ads +++ b/gcc/ada/libgnat/s-vector.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2002-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2020, 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- -- diff --git a/gcc/ada/libgnat/s-vercon.adb b/gcc/ada/libgnat/s-vercon.adb index 6d0289d..ab22726 100644 --- a/gcc/ada/libgnat/s-vercon.adb +++ b/gcc/ada/libgnat/s-vercon.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-vercon.ads b/gcc/ada/libgnat/s-vercon.ads index 58976d7..b3ea028 100644 --- a/gcc/ada/libgnat/s-vercon.ads +++ b/gcc/ada/libgnat/s-vercon.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wchcnv.adb b/gcc/ada/libgnat/s-wchcnv.adb index 7afbc20..4cc1ff9 100644 --- a/gcc/ada/libgnat/s-wchcnv.adb +++ b/gcc/ada/libgnat/s-wchcnv.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wchcnv.ads b/gcc/ada/libgnat/s-wchcnv.ads index 385c344..a99eef8 100644 --- a/gcc/ada/libgnat/s-wchcnv.ads +++ b/gcc/ada/libgnat/s-wchcnv.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wchcon.adb b/gcc/ada/libgnat/s-wchcon.adb index a13ee66..228aa45 100644 --- a/gcc/ada/libgnat/s-wchcon.adb +++ b/gcc/ada/libgnat/s-wchcon.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2005-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2005-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wchcon.ads b/gcc/ada/libgnat/s-wchcon.ads index eb358c3..897ab4e 100644 --- a/gcc/ada/libgnat/s-wchcon.ads +++ b/gcc/ada/libgnat/s-wchcon.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wchjis.adb b/gcc/ada/libgnat/s-wchjis.adb index 0e92c18..977e3042 100644 --- a/gcc/ada/libgnat/s-wchjis.adb +++ b/gcc/ada/libgnat/s-wchjis.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wchjis.ads b/gcc/ada/libgnat/s-wchjis.ads index 90445e4..ba904d8 100644 --- a/gcc/ada/libgnat/s-wchjis.ads +++ b/gcc/ada/libgnat/s-wchjis.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wchstw.adb b/gcc/ada/libgnat/s-wchstw.adb index 85d99c0..9803b35 100644 --- a/gcc/ada/libgnat/s-wchstw.adb +++ b/gcc/ada/libgnat/s-wchstw.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wchstw.ads b/gcc/ada/libgnat/s-wchstw.ads index 8fb37c3..4ec34ce 100644 --- a/gcc/ada/libgnat/s-wchstw.ads +++ b/gcc/ada/libgnat/s-wchstw.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wchwts.adb b/gcc/ada/libgnat/s-wchwts.adb index 21fa657..9bb9979 100644 --- a/gcc/ada/libgnat/s-wchwts.adb +++ b/gcc/ada/libgnat/s-wchwts.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wchwts.ads b/gcc/ada/libgnat/s-wchwts.ads index 083b9ef..2b6b8c1 100644 --- a/gcc/ada/libgnat/s-wchwts.ads +++ b/gcc/ada/libgnat/s-wchwts.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-widboo.adb b/gcc/ada/libgnat/s-widboo.adb index bbef0e9..0c549f9 100644 --- a/gcc/ada/libgnat/s-widboo.adb +++ b/gcc/ada/libgnat/s-widboo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-widboo.ads b/gcc/ada/libgnat/s-widboo.ads index 006301b..4bef902 100644 --- a/gcc/ada/libgnat/s-widboo.ads +++ b/gcc/ada/libgnat/s-widboo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-widcha.adb b/gcc/ada/libgnat/s-widcha.adb index f801365..710e60b 100644 --- a/gcc/ada/libgnat/s-widcha.adb +++ b/gcc/ada/libgnat/s-widcha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-widcha.ads b/gcc/ada/libgnat/s-widcha.ads index 2eaa427..eda2451 100644 --- a/gcc/ada/libgnat/s-widcha.ads +++ b/gcc/ada/libgnat/s-widcha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-widenu.adb b/gcc/ada/libgnat/s-widenu.adb index 340affd..20b7596 100644 --- a/gcc/ada/libgnat/s-widenu.adb +++ b/gcc/ada/libgnat/s-widenu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-widenu.ads b/gcc/ada/libgnat/s-widenu.ads index bc0f326..487485c 100644 --- a/gcc/ada/libgnat/s-widenu.ads +++ b/gcc/ada/libgnat/s-widenu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-widlli.adb b/gcc/ada/libgnat/s-widlli.adb index 8b92889..ff62186e 100644 --- a/gcc/ada/libgnat/s-widlli.adb +++ b/gcc/ada/libgnat/s-widlli.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-widlli.ads b/gcc/ada/libgnat/s-widlli.ads index b048af6..73e95bc 100644 --- a/gcc/ada/libgnat/s-widlli.ads +++ b/gcc/ada/libgnat/s-widlli.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-widllu.adb b/gcc/ada/libgnat/s-widllu.adb index 294f407..49ac43f 100644 --- a/gcc/ada/libgnat/s-widllu.adb +++ b/gcc/ada/libgnat/s-widllu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-widllu.ads b/gcc/ada/libgnat/s-widllu.ads index 29bfb6c..fad814c 100644 --- a/gcc/ada/libgnat/s-widllu.ads +++ b/gcc/ada/libgnat/s-widllu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-widwch.adb b/gcc/ada/libgnat/s-widwch.adb index 56ff4eb..ed633d9 100644 --- a/gcc/ada/libgnat/s-widwch.adb +++ b/gcc/ada/libgnat/s-widwch.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-widwch.ads b/gcc/ada/libgnat/s-widwch.ads index 91f8ee5..2ea340f 100644 --- a/gcc/ada/libgnat/s-widwch.ads +++ b/gcc/ada/libgnat/s-widwch.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-win32.ads b/gcc/ada/libgnat/s-win32.ads index 853cef0..0fcc6d6 100644 --- a/gcc/ada/libgnat/s-win32.ads +++ b/gcc/ada/libgnat/s-win32.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2008-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2020, 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- -- diff --git a/gcc/ada/libgnat/s-winext.ads b/gcc/ada/libgnat/s-winext.ads index b29e1cd..3eff109 100644 --- a/gcc/ada/libgnat/s-winext.ads +++ b/gcc/ada/libgnat/s-winext.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wwdcha.adb b/gcc/ada/libgnat/s-wwdcha.adb index 6b1f1a7..fde2280 100644 --- a/gcc/ada/libgnat/s-wwdcha.adb +++ b/gcc/ada/libgnat/s-wwdcha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wwdcha.ads b/gcc/ada/libgnat/s-wwdcha.ads index 9bfa43db..4d8668d 100644 --- a/gcc/ada/libgnat/s-wwdcha.ads +++ b/gcc/ada/libgnat/s-wwdcha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wwdenu.adb b/gcc/ada/libgnat/s-wwdenu.adb index 8a648d1..49c3101 100644 --- a/gcc/ada/libgnat/s-wwdenu.adb +++ b/gcc/ada/libgnat/s-wwdenu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wwdenu.ads b/gcc/ada/libgnat/s-wwdenu.ads index bd8ce64..ecc6389 100644 --- a/gcc/ada/libgnat/s-wwdenu.ads +++ b/gcc/ada/libgnat/s-wwdenu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wwdwch.adb b/gcc/ada/libgnat/s-wwdwch.adb index 4ad41d9..34f9133 100644 --- a/gcc/ada/libgnat/s-wwdwch.adb +++ b/gcc/ada/libgnat/s-wwdwch.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/s-wwdwch.ads b/gcc/ada/libgnat/s-wwdwch.ads index 83e3ce7..e2af399 100644 --- a/gcc/ada/libgnat/s-wwdwch.ads +++ b/gcc/ada/libgnat/s-wwdwch.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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- -- diff --git a/gcc/ada/libgnat/system-aix.ads b/gcc/ada/libgnat/system-aix.ads index ecb9298..6ffa0f5 100644 --- a/gcc/ada/libgnat/system-aix.ads +++ b/gcc/ada/libgnat/system-aix.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (AIX/PPC Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-darwin-arm.ads b/gcc/ada/libgnat/system-darwin-arm.ads index 3d51980..4206b04 100644 --- a/gcc/ada/libgnat/system-darwin-arm.ads +++ b/gcc/ada/libgnat/system-darwin-arm.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (Darwin/ARM Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-darwin-ppc.ads b/gcc/ada/libgnat/system-darwin-ppc.ads index 9adc2de..b543f63 100644 --- a/gcc/ada/libgnat/system-darwin-ppc.ads +++ b/gcc/ada/libgnat/system-darwin-ppc.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (Darwin/PPC Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-darwin-x86.ads b/gcc/ada/libgnat/system-darwin-x86.ads index 4fac373..3ceacff 100644 --- a/gcc/ada/libgnat/system-darwin-x86.ads +++ b/gcc/ada/libgnat/system-darwin-x86.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (Darwin/x86 Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-djgpp.ads b/gcc/ada/libgnat/system-djgpp.ads index e9ac14e..82b496e 100644 --- a/gcc/ada/libgnat/system-djgpp.ads +++ b/gcc/ada/libgnat/system-djgpp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (DJGPP Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-dragonfly-x86_64.ads b/gcc/ada/libgnat/system-dragonfly-x86_64.ads index ae5daf3..a77ebd6 100644 --- a/gcc/ada/libgnat/system-dragonfly-x86_64.ads +++ b/gcc/ada/libgnat/system-dragonfly-x86_64.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (DragonFly BSD/x86_64 Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-freebsd.ads b/gcc/ada/libgnat/system-freebsd.ads index 1587046..c2afb79 100644 --- a/gcc/ada/libgnat/system-freebsd.ads +++ b/gcc/ada/libgnat/system-freebsd.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (FreeBSD Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-hpux-ia64.ads b/gcc/ada/libgnat/system-hpux-ia64.ads index 0ea68ea..c0d5515 100644 --- a/gcc/ada/libgnat/system-hpux-ia64.ads +++ b/gcc/ada/libgnat/system-hpux-ia64.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (HP-UX/ia64 Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-hpux.ads b/gcc/ada/libgnat/system-hpux.ads index 0cfa8bf..7acd350 100644 --- a/gcc/ada/libgnat/system-hpux.ads +++ b/gcc/ada/libgnat/system-hpux.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (HP-UX Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-linux-alpha.ads b/gcc/ada/libgnat/system-linux-alpha.ads index 073e843..1d1411e 100644 --- a/gcc/ada/libgnat/system-linux-alpha.ads +++ b/gcc/ada/libgnat/system-linux-alpha.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU-Linux/alpha Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-linux-arm.ads b/gcc/ada/libgnat/system-linux-arm.ads index c41d5d4..e3ee506 100644 --- a/gcc/ada/libgnat/system-linux-arm.ads +++ b/gcc/ada/libgnat/system-linux-arm.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU-Linux/ARM Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-linux-hppa.ads b/gcc/ada/libgnat/system-linux-hppa.ads index af18b41..59aab83 100644 --- a/gcc/ada/libgnat/system-linux-hppa.ads +++ b/gcc/ada/libgnat/system-linux-hppa.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU/Linux-HPPA Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-linux-ia64.ads b/gcc/ada/libgnat/system-linux-ia64.ads index 847ea5c..bf36c77 100644 --- a/gcc/ada/libgnat/system-linux-ia64.ads +++ b/gcc/ada/libgnat/system-linux-ia64.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU-Linux/ia64 Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-linux-m68k.ads b/gcc/ada/libgnat/system-linux-m68k.ads index 12ea636..571c629 100644 --- a/gcc/ada/libgnat/system-linux-m68k.ads +++ b/gcc/ada/libgnat/system-linux-m68k.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU/Linux/m68k Version) -- -- -- --- Copyright (C) 2014-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2014-2020, 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 -- diff --git a/gcc/ada/libgnat/system-linux-mips.ads b/gcc/ada/libgnat/system-linux-mips.ads index aebfac8..c381496 100644 --- a/gcc/ada/libgnat/system-linux-mips.ads +++ b/gcc/ada/libgnat/system-linux-mips.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU-Linux/MIPS Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-linux-ppc.ads b/gcc/ada/libgnat/system-linux-ppc.ads index 5722f1e..f3d3712 100644 --- a/gcc/ada/libgnat/system-linux-ppc.ads +++ b/gcc/ada/libgnat/system-linux-ppc.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU-Linux/PPC Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-linux-riscv.ads b/gcc/ada/libgnat/system-linux-riscv.ads index 68de015..676394a 100644 --- a/gcc/ada/libgnat/system-linux-riscv.ads +++ b/gcc/ada/libgnat/system-linux-riscv.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU-Linux/RISC-V Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-linux-s390.ads b/gcc/ada/libgnat/system-linux-s390.ads index 3a41a1c..916f68d 100644 --- a/gcc/ada/libgnat/system-linux-s390.ads +++ b/gcc/ada/libgnat/system-linux-s390.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU-Linux/s390 Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-linux-sh4.ads b/gcc/ada/libgnat/system-linux-sh4.ads index dcdc04c..8940ab0 100644 --- a/gcc/ada/libgnat/system-linux-sh4.ads +++ b/gcc/ada/libgnat/system-linux-sh4.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU-Linux/sh4 Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-linux-sparc.ads b/gcc/ada/libgnat/system-linux-sparc.ads index d76b5db..5d93b76 100644 --- a/gcc/ada/libgnat/system-linux-sparc.ads +++ b/gcc/ada/libgnat/system-linux-sparc.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU/Linux-SPARC Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-linux-x86.ads b/gcc/ada/libgnat/system-linux-x86.ads index 82cc48f..7e30fee 100644 --- a/gcc/ada/libgnat/system-linux-x86.ads +++ b/gcc/ada/libgnat/system-linux-x86.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU-Linux/x86 Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-lynxos178-ppc.ads b/gcc/ada/libgnat/system-lynxos178-ppc.ads index b118fb7..8882034 100644 --- a/gcc/ada/libgnat/system-lynxos178-ppc.ads +++ b/gcc/ada/libgnat/system-lynxos178-ppc.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (LynxOS-178 PPC Version) -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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 -- diff --git a/gcc/ada/libgnat/system-lynxos178-x86.ads b/gcc/ada/libgnat/system-lynxos178-x86.ads index e05746f..3a5f297 100644 --- a/gcc/ada/libgnat/system-lynxos178-x86.ads +++ b/gcc/ada/libgnat/system-lynxos178-x86.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (LynxOS-178 X86 Version) -- -- -- --- Copyright (C) 2009-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2020, 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 -- diff --git a/gcc/ada/libgnat/system-mingw.ads b/gcc/ada/libgnat/system-mingw.ads index 42719e4..990c5f5 100644 --- a/gcc/ada/libgnat/system-mingw.ads +++ b/gcc/ada/libgnat/system-mingw.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (Windows Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- @@ -185,11 +185,6 @@ private -- model, but maps them using compression onto the 7 priority levels -- available in NT and on the 16 priority levels available in 2000/XP. - -- To replace the default values of the Underlying_Priorities mapping, - -- copy this source file into your build directory, edit the file to - -- reflect your desired behavior, and recompile using Makefile.adalib - -- which can be found under the adalib directory of your gnat installation - pragma Linker_Options ("-Wl,--stack=0x2000000"); -- This is used to change the default stack (32 MB) size for non tasking -- programs. We change this value for GNAT on Windows here because the diff --git a/gcc/ada/libgnat/system-qnx-aarch64.ads b/gcc/ada/libgnat/system-qnx-aarch64.ads index 291211e..a04f7b2 100644 --- a/gcc/ada/libgnat/system-qnx-aarch64.ads +++ b/gcc/ada/libgnat/system-qnx-aarch64.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (QNX/Aarch64 Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-rtems.ads b/gcc/ada/libgnat/system-rtems.ads index a884ea9..50a96a3 100644 --- a/gcc/ada/libgnat/system-rtems.ads +++ b/gcc/ada/libgnat/system-rtems.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (Compiler Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-solaris-sparc.ads b/gcc/ada/libgnat/system-solaris-sparc.ads index 16e3d23d..244042c 100644 --- a/gcc/ada/libgnat/system-solaris-sparc.ads +++ b/gcc/ada/libgnat/system-solaris-sparc.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (SUN Solaris Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-solaris-x86.ads b/gcc/ada/libgnat/system-solaris-x86.ads index 2200187..c77c916 100644 --- a/gcc/ada/libgnat/system-solaris-x86.ads +++ b/gcc/ada/libgnat/system-solaris-x86.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (x86 Solaris Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-arm-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks-arm-rtp-smp.ads index 5c51a9e..1186d8b 100644 --- a/gcc/ada/libgnat/system-vxworks-arm-rtp-smp.ads +++ b/gcc/ada/libgnat/system-vxworks-arm-rtp-smp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 6.x ARM RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-arm-rtp.ads b/gcc/ada/libgnat/system-vxworks-arm-rtp.ads index f5d6da1..ce52c07 100644 --- a/gcc/ada/libgnat/system-vxworks-arm-rtp.ads +++ b/gcc/ada/libgnat/system-vxworks-arm-rtp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 6.x ARM RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-arm.ads b/gcc/ada/libgnat/system-vxworks-arm.ads index 34567c8..4dc6be8 100644 --- a/gcc/ada/libgnat/system-vxworks-arm.ads +++ b/gcc/ada/libgnat/system-vxworks-arm.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks Version ARM) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-e500-kernel.ads b/gcc/ada/libgnat/system-vxworks-e500-kernel.ads index c1a997b..44b713a 100644 --- a/gcc/ada/libgnat/system-vxworks-e500-kernel.ads +++ b/gcc/ada/libgnat/system-vxworks-e500-kernel.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 6 Kernel Version E500) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-e500-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks-e500-rtp-smp.ads index eb9880d..a3e8f41 100644 --- a/gcc/ada/libgnat/system-vxworks-e500-rtp-smp.ads +++ b/gcc/ada/libgnat/system-vxworks-e500-rtp-smp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 6.x SMP E500 RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-e500-rtp.ads b/gcc/ada/libgnat/system-vxworks-e500-rtp.ads index 9f53444..5a26eed 100644 --- a/gcc/ada/libgnat/system-vxworks-e500-rtp.ads +++ b/gcc/ada/libgnat/system-vxworks-e500-rtp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 6.x E500 RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-e500-vthread.ads b/gcc/ada/libgnat/system-vxworks-e500-vthread.ads index 55e7b97..df96432 100644 --- a/gcc/ada/libgnat/system-vxworks-e500-vthread.ads +++ b/gcc/ada/libgnat/system-vxworks-e500-vthread.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks e500 AE653 vThreads) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads b/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads index c927fd1..76ec6eb 100644 --- a/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads +++ b/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 6 Kernel Version PPC) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-ppc-ravenscar.ads b/gcc/ada/libgnat/system-vxworks-ppc-ravenscar.ads index 7a8b8fe..8485e74 100644 --- a/gcc/ada/libgnat/system-vxworks-ppc-ravenscar.ads +++ b/gcc/ada/libgnat/system-vxworks-ppc-ravenscar.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks/HIE Ravenscar Version PPC) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads index 8a5cf0e..17b7f2c 100644 --- a/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads +++ b/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 6.x SMP PPC RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads b/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads index 6dcbd54..a57563d 100644 --- a/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads +++ b/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 6.x PPC RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-ppc-vthread.ads b/gcc/ada/libgnat/system-vxworks-ppc-vthread.ads index 6253f7c..9d2c379 100644 --- a/gcc/ada/libgnat/system-vxworks-ppc-vthread.ads +++ b/gcc/ada/libgnat/system-vxworks-ppc-vthread.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks PPC AE653 vThreads) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-ppc.ads b/gcc/ada/libgnat/system-vxworks-ppc.ads index 39f1eda..20b8674 100644 --- a/gcc/ada/libgnat/system-vxworks-ppc.ads +++ b/gcc/ada/libgnat/system-vxworks-ppc.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 5 Version PPC) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-x86-kernel.ads b/gcc/ada/libgnat/system-vxworks-x86-kernel.ads index 51db6ed..42d8769 100644 --- a/gcc/ada/libgnat/system-vxworks-x86-kernel.ads +++ b/gcc/ada/libgnat/system-vxworks-x86-kernel.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 6 Kernel Version x86) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-x86-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks-x86-rtp-smp.ads index 3ede658..8bed920 100644 --- a/gcc/ada/libgnat/system-vxworks-x86-rtp-smp.ads +++ b/gcc/ada/libgnat/system-vxworks-x86-rtp-smp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks Version x86 for SMP RTPs) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-x86-rtp.ads b/gcc/ada/libgnat/system-vxworks-x86-rtp.ads index f07dcfa..fd20986 100644 --- a/gcc/ada/libgnat/system-vxworks-x86-rtp.ads +++ b/gcc/ada/libgnat/system-vxworks-x86-rtp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks Version x86 for RTPs) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-x86-vthread.ads b/gcc/ada/libgnat/system-vxworks-x86-vthread.ads index 7ef29eb..418e52b 100644 --- a/gcc/ada/libgnat/system-vxworks-x86-vthread.ads +++ b/gcc/ada/libgnat/system-vxworks-x86-vthread.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 653 x86 vThreads) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks-x86.ads b/gcc/ada/libgnat/system-vxworks-x86.ads index 1415752..6059202 100644 --- a/gcc/ada/libgnat/system-vxworks-x86.ads +++ b/gcc/ada/libgnat/system-vxworks-x86.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 5 Version x86) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads index 35a19e0..524f967 100644 --- a/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads +++ b/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7.x AARCH64 RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-aarch64.ads b/gcc/ada/libgnat/system-vxworks7-aarch64.ads index 51004ff..f1e11ba 100644 --- a/gcc/ada/libgnat/system-vxworks7-aarch64.ads +++ b/gcc/ada/libgnat/system-vxworks7-aarch64.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7.x AARCH64 Kernel) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads index 405334f..032620d 100644 --- a/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads +++ b/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7 ARM RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-arm.ads b/gcc/ada/libgnat/system-vxworks7-arm.ads index 34567c8..4dc6be8 100644 --- a/gcc/ada/libgnat/system-vxworks7-arm.ads +++ b/gcc/ada/libgnat/system-vxworks7-arm.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks Version ARM) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-e500-kernel.ads b/gcc/ada/libgnat/system-vxworks7-e500-kernel.ads index af3243a..495cfed 100644 --- a/gcc/ada/libgnat/system-vxworks7-e500-kernel.ads +++ b/gcc/ada/libgnat/system-vxworks7-e500-kernel.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7 Kernel Version E500) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-e500-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-e500-rtp-smp.ads index c21a2f4..2633156 100644 --- a/gcc/ada/libgnat/system-vxworks7-e500-rtp-smp.ads +++ b/gcc/ada/libgnat/system-vxworks7-e500-rtp-smp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7.x E500 RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-e500-rtp.ads b/gcc/ada/libgnat/system-vxworks7-e500-rtp.ads index e26e3c6..a521d25 100644 --- a/gcc/ada/libgnat/system-vxworks7-e500-rtp.ads +++ b/gcc/ada/libgnat/system-vxworks7-e500-rtp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7.x E500 RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads b/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads index 6a188e0..a054aa2 100644 --- a/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads +++ b/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7 Kernel Version PPC) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads index f3646b7..7e3e16db 100644 --- a/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads +++ b/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7.x PPC RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-ppc-rtp.ads b/gcc/ada/libgnat/system-vxworks7-ppc-rtp.ads index 95390ef..87ac8f0 100644 --- a/gcc/ada/libgnat/system-vxworks7-ppc-rtp.ads +++ b/gcc/ada/libgnat/system-vxworks7-ppc-rtp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7.x PPC RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads b/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads index e1c5311..c631a85 100644 --- a/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads +++ b/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7.x PPC64 Kernel) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads index 5a1670b..9f27913 100644 --- a/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads +++ b/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7.x PPC64 RTP) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads b/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads index 85c166b..5bfe0b3 100644 --- a/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads +++ b/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7 Kernel Version x86) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads index f87cf90..5e66142 100644 --- a/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads +++ b/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7 Version x86 for RTPs) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-x86-rtp.ads b/gcc/ada/libgnat/system-vxworks7-x86-rtp.ads index 29031a4..47ca3e8 100644 --- a/gcc/ada/libgnat/system-vxworks7-x86-rtp.ads +++ b/gcc/ada/libgnat/system-vxworks7-x86-rtp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7 Version x86 for RTPs) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads b/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads index 8b2da4d..ac90238 100644 --- a/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads +++ b/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7 Kernel Version x86_64) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads index 0d18c68..c3e4a9c 100644 --- a/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads +++ b/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (VxWorks 7 Version x86_64 for RTPs) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- diff --git a/gcc/ada/libgnat/system.ads b/gcc/ada/libgnat/system.ads index aed4577..f54c43f 100644 --- a/gcc/ada/libgnat/system.ads +++ b/gcc/ada/libgnat/system.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (Compiler Version) -- -- -- --- Copyright (C) 1992-2019, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2020, 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 -- |