diff options
author | Janne Blomqvist <jb@gcc.gnu.org> | 2012-05-23 21:52:47 +0300 |
---|---|---|
committer | Janne Blomqvist <jb@gcc.gnu.org> | 2012-05-23 21:52:47 +0300 |
commit | c5a6cbd4bacd65046a1ee50e858737e1f5784fe8 (patch) | |
tree | 939c29b65fb6d8f9a04479fb71b2535c9f8b2927 | |
parent | e8257960f082cebe7ae514a11e13d9ea4c47233f (diff) | |
download | gcc-c5a6cbd4bacd65046a1ee50e858737e1f5784fe8.zip gcc-c5a6cbd4bacd65046a1ee50e858737e1f5784fe8.tar.gz gcc-c5a6cbd4bacd65046a1ee50e858737e1f5784fe8.tar.bz2 |
PR 53456 clock_gettime fallback for gf_gettime
2012-05-23 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/53456
* intrinsics/time_1.h (gf_gettime): Fallback for clock_gettime.
From-SVN: r187806
-rw-r--r-- | libgfortran/ChangeLog | 5 | ||||
-rw-r--r-- | libgfortran/intrinsics/time_1.h | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index e5f79e0..3dfde05 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2012-05-23 Janne Blomqvist <jb@gcc.gnu.org> + + PR fortran/53456 + * intrinsics/time_1.h (gf_gettime): Fallback for clock_gettime. + 2012-05-23 Robert Mason <rbmj@verizon.net> Tobias Burnus <burnus@net-b.de> diff --git a/libgfortran/intrinsics/time_1.h b/libgfortran/intrinsics/time_1.h index aaca56a..ca5b26b 100644 --- a/libgfortran/intrinsics/time_1.h +++ b/libgfortran/intrinsics/time_1.h @@ -181,8 +181,8 @@ gf_cputime (long *user_sec, long *user_usec, long *system_sec, long *system_usec #endif -/* Realtime clock with microsecond resolution, falling back to less - precise functions if the target does not support gettimeofday(). +/* Realtime clock with microsecond resolution, falling back to other + functions if the target does not support gettimeofday(). Arguments: secs - OUTPUT, seconds @@ -204,6 +204,12 @@ gf_gettime (time_t * secs, long * usecs) *secs = tv.tv_sec; *usecs = tv.tv_usec; return err; +#elif defined(HAVE_CLOCK_GETTIME) + struct timespec ts; + int err = clock_gettime (CLOCK_REALTIME, &ts); + *secs = ts.tv_sec; + *usecs = ts.tv_nsec / 1000; + return err; #else time_t t = time (NULL); *secs = t; |