Commit 25feb37f by Piotr Trojanek Committed by Pierre-Marie de Rodat

[Ada] Revert "Global => null" on calendar routines that use timezones

Some routines from the Ada.Calendar package, i.e. Year, Month, Day,
Split and Time_Off, rely on OS-specific timezone databases that are kept
in files (e.g. /etc/localtime on Linux). In SPARK we want to model this
as a potential side-effect, so those routines can't have "Global =>
null".

2019-07-01  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* libgnat/a-calend.ads: Revert "Global => null" contracts on
	non-pure routines.

From-SVN: r272865
parent b108c2ed
2019-07-01 Piotr Trojanek <trojanek@adacore.com> 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
* libgnat/a-calend.ads: Revert "Global => null" contracts on
non-pure routines.
2019-07-01 Piotr Trojanek <trojanek@adacore.com>
* exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments: * exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments:
componant -> component. componant -> component.
......
...@@ -61,19 +61,20 @@ is ...@@ -61,19 +61,20 @@ is
-- the result will contain all elapsed leap seconds since the start of -- the result will contain all elapsed leap seconds since the start of
-- Ada time until now. -- Ada time until now.
function Year (Date : Time) return Year_Number with Global => null; function Year (Date : Time) return Year_Number;
function Month (Date : Time) return Month_Number with Global => null; function Month (Date : Time) return Month_Number;
function Day (Date : Time) return Day_Number with Global => null; function Day (Date : Time) return Day_Number;
function Seconds (Date : Time) return Day_Duration with Global => null; function Seconds (Date : Time) return Day_Duration;
-- SPARK Note: These routines, just like Split and Time_Of below, might use
-- the OS-specific timezone database that is typically stored in a file.
-- This side effect needs to be modeled, so there is no Global => null.
procedure Split procedure Split
(Date : Time; (Date : Time;
Year : out Year_Number; Year : out Year_Number;
Month : out Month_Number; Month : out Month_Number;
Day : out Day_Number; Day : out Day_Number;
Seconds : out Day_Duration) Seconds : out Day_Duration);
with
Global => null;
-- Break down a time value into its date components set in the current -- Break down a time value into its date components set in the current
-- time zone. If Split is called on a time value created using Ada 2005 -- time zone. If Split is called on a time value created using Ada 2005
-- Time_Of in some arbitrary time zone, the input value will always be -- Time_Of in some arbitrary time zone, the input value will always be
...@@ -83,9 +84,7 @@ is ...@@ -83,9 +84,7 @@ is
(Year : Year_Number; (Year : Year_Number;
Month : Month_Number; Month : Month_Number;
Day : Day_Number; Day : Day_Number;
Seconds : Day_Duration := 0.0) return Time Seconds : Day_Duration := 0.0) return Time;
with
Global => null;
-- GNAT Note: Normally when procedure Split is called on a Time value -- GNAT Note: Normally when procedure Split is called on a Time value
-- result of a call to function Time_Of, the out parameters of procedure -- result of a call to function Time_Of, the out parameters of procedure
-- Split are identical to the in parameters of function Time_Of. However, -- Split are identical to the in parameters of function Time_Of. However,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment