Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Feb 2018 14:15:04 -0500
From:      Garrett Wollman <wollman@csail.mit.edu>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        freebsd-standards@freebsd.org
Subject:   Re: Marking select(2) as restrict
Message-ID:  <23181.50488.186767.579361@khavrinen.csail.mit.edu>
In-Reply-To: <20180221185920.GA94212@kib.kiev.ua>
References:  <CAF6rxg=h_oMiUu7P=GAOQf_OySQM2w31hg6Kas%2B3jeEM3qq_Cg@mail.gmail.com> <CAF6rxgnt9c0n8i-nHQwoKGbZKF2hM5AZqEJnz0CLo26XOO4_sg@mail.gmail.com> <20180221032247.GA81670@ns.kevlo.org> <CAF6rxg=WwqeBnmJzfOZgtwrYesXPfvJFeaVmQwtTa_89_sxaJg@mail.gmail.com> <CANCZdfo46bhfaRpbqOmJjk4%2B=1R2c5kvmrJPENaxNgK==5M4kg@mail.gmail.com> <CAF6rxg=wNVgDUF9o744ngmzPNeHB3hqdrLufy=yS3D4osczxFQ@mail.gmail.com> <20180221104400.GU94212@kib.kiev.ua> <23181.46427.671514.319710@khavrinen.csail.mit.edu> <20180221185920.GA94212@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
<<On Wed, 21 Feb 2018 20:59:20 +0200, Konstantin Belousov <kostikbel@gmail.com> said:

>> [I wrote:]
>> Compliance with the 2001 POSIX standard (and subsequent versions).
>> 
>> After C99, all POSIX interfaces that use pointers were updated to
>> include the restrict qualifier where applicable.

> Restrict barely puts any requirements on the implementation, but does on
> the consumers.  Which is the cause of this discussion.

I can't speak to this particular case, but my understanding is that
"restrict" qualifier was only added to arguments if the behavior was
already unspecified or undefined when the pointers in question were
aliases (so the consumer was already broken if it did so).  Certainly
such code has been broken for the better part of two decades.

> Also, what incompliance consequences are ?  I am not even sure that the
> prototype mismatch can be detected by means other than parsing the headers.

It is permissible for an application to explicitly declare any
function defined in the standard, so long as it uses the prototype set
out in the standard.  Also, any vendor wanting POSIX or UNIX
certification for a derivative system would have to fix it anyway.

-GAWollman




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?23181.50488.186767.579361>