|
Message-ID: <20190629214944.GO1506@brightrain.aerifal.cx> Date: Sat, 29 Jun 2019 17:49:44 -0400 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: [PATCH 2/2] use the correct attributes for ___errno_location On Sat, Jun 29, 2019 at 04:22:44PM -0500, Samuel Holland wrote: > In the public header, __errno_location is declared with the "const" > attribute, conditional on __GNUC__. Ensure that its internal alias has > the same attributes. > --- > src/errno/__errno_location.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/src/errno/__errno_location.c b/src/errno/__errno_location.c > index 7f9d6027..b59919c3 100644 > --- a/src/errno/__errno_location.c > +++ b/src/errno/__errno_location.c > @@ -6,4 +6,8 @@ int *__errno_location(void) > return &__pthread_self()->errno_val; > } > > -weak_alias(__errno_location, ___errno_location); > +weak_alias(__errno_location, ___errno_location) > +#ifdef __GNUC__ > +__attribute__((const)) > +#endif > +; > -- > 2.21.0 Thanks for catching this. It's probably a significant regression in codegen. I think the attribute should be on the declaration in src/include/errno.h though, not on the weak_alias definition. Most importantly this is needed for it to affect codegen in the callers. But it's also for consistency with the approach of having attributes on the declarations rather than the definitions (to ensure everyone gets a consistent view of them), and to avoid assumptions about what the weak_alias macro expands to. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.