Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #108218
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: How to fix warning: [-Wdate-time] |
| Date | 2017-04-17 09:25 -0700 |
| Organization | None to speak of |
| Message-ID | <lnvaq3rogs.fsf@kst-u.example.com> (permalink) |
| References | (2 earlier) <b31df4fa-3791-4093-8d89-5d502e38503d@googlegroups.com> <8e289215-369a-43c5-aa46-9428ad81a224@googlegroups.com> <lnpogdtjmy.fsf@kst-u.example.com> <195fbe3a-b69c-45e4-ac6e-a45a1913a834@googlegroups.com> <od2p00$v2c$1@dont-email.me> |
Ken Brody <kenbrody@spamcop.net> writes:
> On 4/16/2017 2:44 PM, supercat@casperkitty.com wrote:
>> On Saturday, April 15, 2017 at 5:02:05 PM UTC-5, Keith Thompson wrote:
>>> The problem would be that the expansions of __DATE__ and __TIME__ would
>>> be whatever was passed on the compiler command line and not, as the
>>> standard specifies and a reader will assume, the date and time of
>>> translation.
>>
>> The Standard does not require any particular degree of precision, nor does
>> it specify the means via which an implementation would determine the time.
>> There is no requirement that platforms which host C compilers need to have
>> any kind of real-time clock functionality. If a compiler included a
>> command-line option to say "Don't trust the system clock--the time is
>> actually 1989-06-05 04:32:10, I don't think the Standard would require that
>> the compiler not believe the command line.
>
> NB: I am in no way a "language lawyer".
>
> Looking at N1256 (yes, I know it's not the latest, but it's the latest I
> have on this computer), section 6.10.8 says this about __DATE__:
>
> "If the date of translation is not available, an implementation-defined
> valid date shall be supplied."
>
> A similar statement is made about __TIME__.
>
> Without a detailed explanation of what "is not available" means, you could
> easily say that "using compiler flag X will cause the compiler to behave as
> if the date and time are not available" is still conforming.
IMHO, the requirement that the date "is not available" is not satisfied
by an option that tells the compiler to *pretend* the date is not
available.
I'd say that a compiler with that option specified is non-conforming,
simply because it violates the standard's reasonably clear requirements
for __DATE__ and __TIME__.
[...]
> Also, what happens if the computer/compiler isn't that fast, and the file
> takes more than a second to preprocess? Can __TIME__ at the top of the file
> be different than at the bottom of the file?
The standard is less than crystal clear on this point, but I'd say that
a conforming implementation could have __TIME__ and __DATE__ have
different values within a source file.
For that matter, suppose a source file refers to __DATE__ and __TIME__
on the same line:
printf("%s %s\n", __DATE__, __TIME__);
It's possible that the expansion of __DATE__ could be determined just
before midnight, and the expansion of __TIME__ just after midnight (or
vice versa) resulting in a printed date and time that appear to be off
by 24 hours.
> Finally, can the time be available at the top of the file, but not at the
> bottom? (Consider, for example, a hardware clock that for some reason fails
> during the compile. Or maybe your internet connection to nist.gov goes down.)
Possibly.
> I would expect that any non-DS9K compiler would simply get the date/time at
> the start of the compile, and keep using that throughout the compile. But
> that doesn't mean the Standard requires it.
GNU cpp (used by gcc) appears to compute the expansion of __DATE__
and __TIME__ once per translation unit, when one of the macros is
encountered for the first time.
I just took a look at the GNU cpp manual. For __DATE__, it says:
If GCC cannot determine the current date, it will emit a warning
message (once per compilation) and '__DATE__' will expand to
'"??? ?? ????"'.
This contradicts the standard, which says:
If the date of translation is not available, an
implementation-defined valid date shall be supplied.
Likewise for __TIME__.
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
How to fix warning: [-Wdate-time] MehdiAmini <atorrses@gmail.com> - 2017-04-13 14:44 +0430
Re: How to fix warning: [-Wdate-time] Barry Schwarz <schwarzb@dqel.com> - 2017-04-13 05:28 -0700
Re: How to fix warning: [-Wdate-time] MehdiAmini <atorrses@gmail.com> - 2017-04-14 12:55 +0430
Re: How to fix warning: [-Wdate-time] Keith Thompson <kst-u@mib.org> - 2017-04-14 08:50 -0700
Re: How to fix warning: [-Wdate-time] Ken Brody <kenbrody@spamcop.net> - 2017-04-14 13:42 -0400
Re: How to fix warning: [-Wdate-time] James Kuyper <jameskuyper@verizon.net> - 2017-04-14 14:26 -0400
Re: How to fix warning: [-Wdate-time] David Brown <david.brown@hesbynett.no> - 2017-04-17 16:26 +0200
Re: How to fix warning: [-Wdate-time] "James R. Kuyper" <jameskuyper@verizon.net> - 2017-04-17 10:52 -0400
Re: How to fix warning: [-Wdate-time] David Brown <david.brown@hesbynett.no> - 2017-04-17 20:00 +0200
Re: How to fix warning: [-Wdate-time] Keith Thompson <kst-u@mib.org> - 2017-04-17 08:08 -0700
Re: How to fix warning: [-Wdate-time] David Brown <david.brown@hesbynett.no> - 2017-04-17 20:04 +0200
Re: How to fix warning: [-Wdate-time] Mehdi Amini <atorrses@gmail.com> - 2017-04-15 07:50 +0430
Re: How to fix warning: [-Wdate-time] Keith Thompson <kst-u@mib.org> - 2017-04-15 15:05 -0700
Re: How to fix warning: [-Wdate-time] Ken Brody <kenbrody@spamcop.net> - 2017-04-17 11:42 -0400
Re: How to fix warning: [-Wdate-time] supercat@casperkitty.com - 2017-04-17 08:55 -0700
Re: How to fix warning: [-Wdate-time] "James R. Kuyper" <jameskuyper@verizon.net> - 2017-04-17 11:57 -0400
Re: How to fix warning: [-Wdate-time] gazelle@shell.xmission.com (Kenny McCormack) - 2017-04-13 13:09 +0000
Re: How to fix warning: [-Wdate-time] jadill33@gmail.com - 2017-04-13 06:27 -0700
Re: How to fix warning: [-Wdate-time] supercat@casperkitty.com - 2017-04-15 08:56 -0700
Re: How to fix warning: [-Wdate-time] Keith Thompson <kst-u@mib.org> - 2017-04-15 15:01 -0700
Re: How to fix warning: [-Wdate-time] supercat@casperkitty.com - 2017-04-16 11:44 -0700
Re: How to fix warning: [-Wdate-time] Keith Thompson <kst-u@mib.org> - 2017-04-16 13:45 -0700
Re: How to fix warning: [-Wdate-time] Ken Brody <kenbrody@spamcop.net> - 2017-04-17 12:14 -0400
Re: How to fix warning: [-Wdate-time] Ken Brody <kenbrody@spamcop.net> - 2017-04-17 12:06 -0400
Re: How to fix warning: [-Wdate-time] Keith Thompson <kst-u@mib.org> - 2017-04-17 09:25 -0700
Re: How to fix warning: [-Wdate-time] "James R. Kuyper" <jameskuyper@verizon.net> - 2017-04-17 12:45 -0400
Re: How to fix warning: [-Wdate-time] Keith Thompson <kst-u@mib.org> - 2017-04-17 12:02 -0700
Re: How to fix warning: [-Wdate-time] "James R. Kuyper" <jameskuyper@verizon.net> - 2017-04-17 15:23 -0400
Re: How to fix warning: [-Wdate-time] Lowell Gilbert <lgusenet@be-well.ilk.org> - 2017-04-18 13:27 -0400
Re: How to fix warning: [-Wdate-time] Ken Brody <kenbrody@spamcop.net> - 2017-04-18 14:23 -0400
Re: How to fix warning: [-Wdate-time] Keith Thompson <kst-u@mib.org> - 2017-04-18 12:10 -0700
Re: How to fix warning: [-Wdate-time] raltbos@xs4all.nl (Richard Bos) - 2017-04-22 21:20 +0000
Re: How to fix warning: [-Wdate-time] James Kuyper <jameskuyper@verizon.net> - 2017-04-22 22:45 -0400
Re: How to fix warning: [-Wdate-time] Tim Rentsch <txr@alumni.caltech.edu> - 2017-04-17 11:30 -0700
Re: How to fix warning: [-Wdate-time] Keith Thompson <kst-u@mib.org> - 2017-04-17 12:30 -0700
Re: How to fix warning: [-Wdate-time] raltbos@xs4all.nl (Richard Bos) - 2017-04-22 21:24 +0000
Re: How to fix warning: [-Wdate-time] Tim Rentsch <txr@alumni.caltech.edu> - 2017-04-27 13:33 -0700
Re: How to fix warning: [-Wdate-time] Tim Rentsch <txr@alumni.caltech.edu> - 2017-04-27 13:26 -0700
Re: How to fix warning: [-Wdate-time] gordonb.5zr1e@burditt.org (Gordon Burditt) - 2017-04-14 13:35 -0500
Re: How to fix warning: [-Wdate-time] supercat@casperkitty.com - 2017-04-14 12:17 -0700
Re: How to fix warning: [-Wdate-time] gordonb.k4gmo@burditt.org (Gordon Burditt) - 2017-04-16 00:04 -0500
Re: How to fix warning: [-Wdate-time] Noob <root@127.0.0.1> - 2017-04-16 11:04 +0200
Re: How to fix warning: [-Wdate-time] supercat@casperkitty.com - 2017-04-16 11:52 -0700
Re: How to fix warning: [-Wdate-time] raltbos@xs4all.nl (Richard Bos) - 2017-04-22 21:28 +0000
Re: How to fix warning: [-Wdate-time] Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2017-04-18 21:34 -0600
Re: How to fix warning: [-Wdate-time] Keith Thompson <kst-u@mib.org> - 2017-04-17 08:09 -0700
csiph-web