aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/libgnat/a-calcon.adb
diff options
context:
space:
mode:
authorDoug Rupp <rupp@adacore.com>2018-05-29 09:38:17 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-05-29 09:38:17 +0000
commit35f5e2c14ae1b0959292312ef6c0eb23554e025d (patch)
tree7190e555afe38348cd300ce84d057a2ae51a67ba /gcc/ada/libgnat/a-calcon.adb
parent0f9ca0303ed932c4c2df9b3439aac6b6566a6728 (diff)
downloadgcc-35f5e2c14ae1b0959292312ef6c0eb23554e025d.zip
gcc-35f5e2c14ae1b0959292312ef6c0eb23554e025d.tar.gz
gcc-35f5e2c14ae1b0959292312ef6c0eb23554e025d.tar.bz2
[Ada] New function to return nanoseconds from Unix Epoch
2018-05-29 Doug Rupp <rupp@adacore.com> gcc/ada/ * libgnat/a-calend.adb (Epoch_Offset): Move from body to ... * libgnat/a-calend.ads (Epoch_Offset): to private part of spec * libgnat/a-calcon.ads (To_Unix_Nano_Time): New function spec. * libgnat/a-calcon.adb (To_Unix_Nano_Time): New function body. From-SVN: r260870
Diffstat (limited to 'gcc/ada/libgnat/a-calcon.adb')
-rw-r--r--gcc/ada/libgnat/a-calcon.adb15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ada/libgnat/a-calcon.adb b/gcc/ada/libgnat/a-calcon.adb
index 82ed24d..1c8e8cc 100644
--- a/gcc/ada/libgnat/a-calcon.adb
+++ b/gcc/ada/libgnat/a-calcon.adb
@@ -30,6 +30,7 @@
------------------------------------------------------------------------------
with Interfaces.C; use Interfaces.C;
+with Interfaces.C.Extensions; use Interfaces.C.Extensions;
package body Ada.Calendar.Conversions is
@@ -145,4 +146,18 @@ package body Ada.Calendar.Conversions is
return long (Val);
end To_Unix_Time;
+ -----------------------
+ -- To_Unix_Nano_Time --
+ -----------------------
+
+ function To_Unix_Nano_Time (Ada_Time : Time) return long_long is
+ pragma Unsuppress (Overflow_Check);
+ Ada_Rep : constant Time_Rep := Time_Rep (Ada_Time);
+ begin
+ return long_long (Ada_Rep + Epoch_Offset);
+ exception
+ when Constraint_Error =>
+ raise Time_Error;
+ end To_Unix_Nano_Time;
+
end Ada.Calendar.Conversions;