This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] <sys/cdefs.h>: Inhibit macro expansion for __glibc_has_include


On 6/14/19 10:09 AM, Florian Weimer wrote:
> * Florian Weimer:
> 
>> This is currently ineffective with GCC because of GC PR 80005, but
>> it makes sense to anticipate a fix for this defect.
>>
>> Suggested by Zack Weinberg.
>>
>> 2019-06-12  Florian Weimer  <fweimer@redhat.com>
>>
>> 	* misc/sys/cdefs.h (__glibc_has_include): Do not use a
>> 	function-like macro, so that __has_include can inhibit expansion
>> 	of its argument.
>>
>> diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
>> index 638872b87b..ed146ce20b 100644
>> --- a/misc/sys/cdefs.h
>> +++ b/misc/sys/cdefs.h
>> @@ -413,7 +413,7 @@
>>  #endif
>>  
>>  #ifdef __has_include
>> -# define __glibc_has_include(header)	__has_include (header)
>> +# define __glibc_has_include __has_include
>>  #else
>>  # define __glibc_has_include(header)	0
>>  #endif
> 
> This is what I plan to commit shortly.
> 
> I don't want to mention the GCC PR in the public header because it will
> be outdated soon (I hope).
> 
> Thanks,
> Florian
> 
> <sys/cdefs.h>: Inhibit macro expansion for __glibc_has_include
> 
> This is currently ineffective with GCC because of GCC PR 80005, but
> it makes sense to anticipate a fix for this defect.
> 
> Suggested by Zack Weinberg.
> 
> 2019-06-14  Florian Weimer  <fweimer@redhat.com>
> 
> 	* misc/sys/cdefs.h (__glibc_has_include): Do not use a
> 	function-like macro, so that __has_include can inhibit expansion
> 	of its argument.
> 

LGTM.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>


> diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
> index 638872b87b..f1bd994a10 100644
> --- a/misc/sys/cdefs.h
> +++ b/misc/sys/cdefs.h
> @@ -413,7 +413,9 @@
>  #endif
>  
>  #ifdef __has_include
> -# define __glibc_has_include(header)	__has_include (header)
> +/* Do not use a function-like macro, so that __has_include can inhibit
> +   macro expansion.  */
> +# define __glibc_has_include __has_include
>  #else
>  # define __glibc_has_include(header)	0
>  #endif
> 


-- 
Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]