Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Tim Rentsch Newsgroups: comp.lang.c Subject: Re: Loops (was Re: do { quit; } else { }) Date: Mon, 12 May 2025 00:16:34 -0700 Organization: A noiseless patient Spider Lines: 55 Message-ID: <86selaxprh.fsf@linuxsc.com> References: <20250413072027.219@kylheku.com> <20250415153419.00004cf7@yahoo.com> <86h62078i8.fsf@linuxsc.com> <20250504180833.00000906@yahoo.com> <86plggzilx.fsf@linuxsc.com> <86ldr4yx0x.fsf@linuxsc.com> <87wmam4xa5.fsf@nosuchdomain.example.com> <868qn2zl1m.fsf@linuxsc.com> <87jz6m4m2o.fsf@nosuchdomain.example.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Date: Mon, 12 May 2025 09:16:34 +0200 (CEST) Injection-Info: dont-email.me; posting-host="74b4e5895be58ca73eb02e8f9ff401e1"; logging-data="1024033"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19tyY7X2KcNFZ9QsAYonE6nKpqJ4fwz9ew=" User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) Cancel-Lock: sha1:yKs1SJdXLJmhu9NQfOPAKCW0bQg= sha1:/h1egRWhCq0Ljnxbytpt7Q0TxgU= Bytes: 3742 Keith Thompson writes: > Tim Rentsch writes: > >> Keith Thompson writes: >> >>> James Kuyper writes: >>> [...] >>> >>>> It's main potential usefulness is not in the definition of the >>>> function, but in calls to the function. If the calls occur in >>>> a different translation unit from the definition, the compiler >>>> does not have the needed information. >>> >>> It does if the visible declaration has the same information. >> >> Like 'restrict', parameter array length information, specified by >> way of 'static', is ignored outside of function definitions. As >> was intended (with 'restrict' also). > > I think that by "is ignored", you mean that compilers are not > required to pay attention to it. [...] I mean it has no effect on program semantics. >> Furthermore, and also like 'restrict', there is no general >> way to verify at compile time that the stipulated condition >> holds. > > Right, but that doesn't prevent implementations from issuing > useful warnings when it can determine that the stipulated > condition does not hold. True, but in many cases they can't, because that information is not part of the function's type and so often it is not present. >> Considering the above, it's better to observe the status quo, and >> leave any diagnostics up to the discretion of the implementation, >> rather than try to retrofit an incompatible change that would >> make an infringement be a constraint violation that can't be >> checked anyway. > > Observing the status quo is better than what, exactly? Better than than trying to retrofit an incompatible change that would make an infringement be a constraint violation that can't be checked anyway. > The status quo is that the "[static N]" syntax has been in the > language since C99, and programmers and implementations are free > to take advantage of it. I don't recall anyone in this thread > proposing a change to that. Neither do I, nor did I mean to imply that anyone had.