aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/osint.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2019-09-26 14:10:46 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2019-09-26 16:10:46 +0200
commit25a0f9cfaeca20baeaaa0c76911821949aadcb40 (patch)
tree0f81577711a776e2cdd26161e714581240572907 /gcc/ada/osint.adb
parent9593e8e5e391e77bb065d4689b7511bed6a640a3 (diff)
downloadgcc-25a0f9cfaeca20baeaaa0c76911821949aadcb40.zip
gcc-25a0f9cfaeca20baeaaa0c76911821949aadcb40.tar.gz
gcc-25a0f9cfaeca20baeaaa0c76911821949aadcb40.tar.bz2
* osint.adb (OS_Time_To_GNAT_Time): Remove dependency on To_C/To_Ada
From-SVN: r276151
Diffstat (limited to 'gcc/ada/osint.adb')
-rw-r--r--gcc/ada/osint.adb16
1 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ada/osint.adb b/gcc/ada/osint.adb
index 973f463..ac89187 100644
--- a/gcc/ada/osint.adb
+++ b/gcc/ada/osint.adb
@@ -2183,7 +2183,19 @@ package body Osint is
function OS_Time_To_GNAT_Time (T : OS_Time) return Time_Stamp_Type is
GNAT_Time : Time_Stamp_Type;
- TI : Long_Integer := To_C (T);
+ type Underlying_OS_Time is
+ range -(2 ** (Standard'Address_Size - Integer'(1))) ..
+ +(2 ** (Standard'Address_Size - Integer'(1)) - 1);
+ -- Underlying_OS_Time is a redeclaration of OS_Time to allow integer
+ -- manipulation. Remove this in favor of To_Ada/To_C once newer
+ -- GNAT releases are available with these functions.
+
+ function To_Int is
+ new Unchecked_Conversion (OS_Time, Underlying_OS_Time);
+ function From_Int is
+ new Unchecked_Conversion (Underlying_OS_Time, OS_Time);
+
+ TI : Underlying_OS_Time := To_Int (T);
Y : Year_Type;
Mo : Month_Type;
D : Day_Type;
@@ -2205,7 +2217,7 @@ package body Osint is
TI := TI + 1;
end if;
- GM_Split (To_Ada (TI), Y, Mo, D, H, Mn, S);
+ GM_Split (From_Int (TI), Y, Mo, D, H, Mn, S);
Make_Time_Stamp
(Year => Nat (Y),