[PATCH 1/2] Mark internal argz functions with attribute_hidden [BZ #18822]

H.J. Lu hjl.tools@gmail.com
Fri Aug 18 15:46:00 GMT 2017


On Fri, Aug 18, 2017 at 7:01 AM, Joseph Myers <joseph@codesourcery.com> wrote:
> On Fri, 18 Aug 2017, H.J. Lu wrote:
>
>> diff --git a/include/argz.h b/include/argz.h
>> index 0388c23277..bddebfa221 100644
>> --- a/include/argz.h
>> +++ b/include/argz.h
>> @@ -4,6 +4,11 @@
>>
>>  # ifndef _ISOMAC
>>
>> +extern __typeof (__argz_add) __argz_add attribute_hidden;
>> +extern __typeof (__argz_add_sep) __argz_add_sep attribute_hidden;
>> +extern __typeof (__argz_append) __argz_append attribute_hidden;
>> +extern __typeof (__argz_create_sep) __argz_create_sep attribute_hidden;
>
> This sort of use of typeof is suspect for an internal function.  For
> declaring an internal alias to a public function, sure, but why redeclare
> an internal function using typeof rather than just getting the original
> declaration of the internal function right?
>
> In this case, the problem presumably is that the internal declarations are
> in the installed argz.h header.  So move them from the installed header to
> the include/ one.  At that point, using typeof *does* make sense to copy
> the type from the public function, e.g.
>
> extern __typeof (argz_add) __argz_add __THROW attribute_hidden;
>
> (argz.h is shared with gnulib, but in gnulib it doesn't have those
> internal declarations anyway.  So moving them to the include/ header helps
> bring the public one closer to the gnulib version.)
>

Done.

Here is the updated patch.  OK for master?

Thanks.


-- 
H.J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Mark-internal-argz-functions-with-attribute_hidden-B.patch
Type: text/x-patch
Size: 6328 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20170818/3723f2a2/attachment.bin>


More information about the Libc-alpha mailing list