diff options
author | Doug Rupp <rupp@adacore.com> | 2018-05-29 09:38:17 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2018-05-29 09:38:17 +0000 |
commit | 35f5e2c14ae1b0959292312ef6c0eb23554e025d (patch) | |
tree | 7190e555afe38348cd300ce84d057a2ae51a67ba /gcc/ada/libgnat/a-calcon.adb | |
parent | 0f9ca0303ed932c4c2df9b3439aac6b6566a6728 (diff) | |
download | gcc-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.adb | 15 |
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; |