Groups | Search | Server Info | Login | Register
Groups > comp.lang.c > #392923
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Bart's Language |
| Date | 2025-04-27 11:53 -0700 |
| Organization | A noiseless patient Spider |
| Message-ID | <86wmb58mi6.fsf@linuxsc.com> (permalink) |
| References | (2 earlier) <vrbtve$2irc9$1@dont-email.me> <vrc2d5$1jjrf$1@paganini.bofh.team> <vrc4eb$2p28t$1@dont-email.me> <vri6co$26v8m$2@paganini.bofh.team> <87a59fs2xm.fsf@nosuchdomain.example.com> |
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
> antispam@fricas.org (Waldek Hebisch) writes:
> [...]
>
>> Well, it is rather easy to see if variable is used within its
>> own initialization, so practically it is minor gap. Of course,
>> there is problem with C standard: IIUC depending on rest of
>> the code declarations as above are merely undefined behaviour
>> or even produce unspecified value. So C compiler is
>> forbidden to stop compilation are report compile time error.
>
> Valid responses to undefined behavior include "terminating a translation
> or execution (with the issuance of a diagnostic message)".
That's true, but doing so is allowed only if the circumstances
of undefined behavior have occurred. In the case of compiling
a declaration such as
int a = a;
no undefined behavior has as yet occurred.
> In other
> words, if a compiler is able to prove that a program has undefined
> behavior (that will occur on each execution), it can reject it at
> compile time.
The program can be rejected, but not because of the rule about
terminating a translation. The program can be rejected because
the program is not strictly conforming, and implementations are
not required to accept programs that are not strictly conforming.
Back to comp.lang.c | Previous | Next — Next in thread | Find similar
Re: Bart's Language Tim Rentsch <tr.17687@z991.linuxsc.com> - 2025-04-27 11:53 -0700 Re: Bart's Language Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2025-04-27 14:29 -0700
csiph-web