diff options
Diffstat (limited to 'libcpp/macro.c')
-rw-r--r-- | libcpp/macro.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libcpp/macro.c b/libcpp/macro.c index c2a8376..a3b8348 100644 --- a/libcpp/macro.c +++ b/libcpp/macro.c @@ -358,9 +358,13 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node, struct tm *tb = NULL; /* Set a reproducible timestamp for __DATE__ and __TIME__ macro - usage if SOURCE_DATE_EPOCH is defined. */ - if (pfile->source_date_epoch != (time_t) -1) - tb = gmtime (&pfile->source_date_epoch); + if SOURCE_DATE_EPOCH is defined. */ + if (pfile->source_date_epoch == (time_t) -2 + && pfile->cb.get_source_date_epoch != NULL) + pfile->source_date_epoch = pfile->cb.get_source_date_epoch (pfile); + + if (pfile->source_date_epoch >= (time_t) 0) + tb = gmtime (&pfile->source_date_epoch); else { /* (time_t) -1 is a legitimate value for "number of seconds |