Re: incorrect use of 'pure' attribute

Arsen Arsenović <[email protected]>
Newsgroups gmane.comp.lib.gnulib.bugs
Organization BayLibre
Message-ID <[email protected]>
Paul Eggert <[email protected]> writes:

> On 8/8/26 05:38, Sam James wrote:
>> The comment simply isn't right and it makes an assertion that doesn't
>> reflect reality. It is not validly const if it uses global memory to
>> affect what it returns, even if later calls are OK.
>
> But __eloop_threshold doesn't use global memory to affect what it returns. It
> always returns the same value, every time. So, even though __eloop_threshold
> uses static storage (I assume that's what you mean by "global memory"), its use
> of that static storage doesn't affect what it returns.
>
> In this sense I guess __eloop_threshold differs from a common C++ idiom, in
> which even though the function always returns the same value, that value is
> affected by what's already in memory. __eloop_threshold does not have that
> property.
>
> If my understanding is incorrect I'd appreciate a clarification, e.g., an
> example of an optimization that GCC might apply that would be invalid for
> __eloop_threshold.

I'm not certain that [[gnu::const]] is correct (FWIW, I can't think of
how it'd go wrong, but anyway), but I am certain this is a race
condition in linkat etc due to this condition.  ;)

Those should be atomic accesses.
-- 
Arsen Arsenović
signature.asc (application/pgp-signature, 300 B)
-----BEGIN PGP SIGNATURE-----

iKoEARYKAFIWIQT+4rPRE/wAoxYtYGFSwpQwHqLEkwUCanelwRsUgAAAAAAEAA5t
YW51MiwyLjUrMS4xMiwyLDIYHGFhcnNlbm92aWNAYmF5bGlicmUuY29tAAoJEFLC
lDAeosSTWnMA+gNoyLlYu527fvCgFVMRBWtIftfxNuCpdajERH7zJNg0AQCvw24j
rEkpVt3LX6MMbc176IH+xnj1dqKll1mpR+/QBw==
=JiN4
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.