[PATCH] Revert "libio: Add __nonnull for FILE * arguments of fclose and freopen"

Siddhesh Poyarekar siddhesh@gotplt.org
Mon Jul 10 22:34:13 GMT 2023



On 2023-07-10 18:07, Xi Ruoyao wrote:
> This reverts commit 71d9e0fe766a3c22a730995b9d024960970670af.
> 
> Apparantly the maintainers do not like __nonnull.  And I'm too pissed
> off to work on this anymore.  Anyway I don't care about the analyzer so
> they can just add these as ugly special analyzer patterns.  And I'm not
> so stupid to pass NULL to these things myself, so lacking a warning is
> not a problem to me.

Sorry you feel this way, but this is still unresolved as we don't have a 
consensus yet.  However I understand if you're frustrated and don't want 
to work on this for now; I do hope you return though.

In any case, if the consensus does steer towards never using 
__nonnull__, it'll likely be better to do it by hacking cdefs.h to 
expand __nonnull to nothing.

Thanks,
Sid

> 
> Signed-off-by: Xi Ruoyao <xry111@xry111.site>
> ---
>   libio/stdio.h | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/libio/stdio.h b/libio/stdio.h
> index 4cf9f1c012..2387590d6a 100644
> --- a/libio/stdio.h
> +++ b/libio/stdio.h
> @@ -180,7 +180,7 @@ extern int renameat2 (int __oldfd, const char *__old, int __newfd,
>   
>      This function is a possible cancellation point and therefore not
>      marked with __THROW.  */
> -extern int fclose (FILE *__stream) __nonnull ((1));
> +extern int fclose (FILE *__stream);
>   
>   #undef __attr_dealloc_fclose
>   #define __attr_dealloc_fclose __attr_dealloc (fclose, 1)
> @@ -269,7 +269,7 @@ extern FILE *fopen (const char *__restrict __filename,
>      marked with __THROW.  */
>   extern FILE *freopen (const char *__restrict __filename,
>   		      const char *__restrict __modes,
> -		      FILE *__restrict __stream) __wur __nonnull ((3));
> +		      FILE *__restrict __stream) __wur;
>   #else
>   # ifdef __REDIRECT
>   extern FILE *__REDIRECT (fopen, (const char *__restrict __filename,
> @@ -290,7 +290,7 @@ extern FILE *fopen64 (const char *__restrict __filename,
>     __attribute_malloc__ __attr_dealloc_fclose __wur;
>   extern FILE *freopen64 (const char *__restrict __filename,
>   			const char *__restrict __modes,
> -			FILE *__restrict __stream) __wur __nonnull ((3));
> +			FILE *__restrict __stream) __wur;
>   #endif
>   
>   #ifdef	__USE_POSIX


More information about the Libc-alpha mailing list