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: Marking of functions with attributes like __wur


On Friday, April 20, 2012 20:56:48 Paul Eggert wrote:
> On 04/20/2012 02:47 AM, Andreas Jaeger wrote:
> > On 04/11/2012 11:09 PM, Paul Eggert wrote:
> >> I just now filed a bug report for this
> >> <http://sourceware.org/bugzilla/show_bug.cgi?id=13970>.
> > 
> > Paul, could you send your patch on the list for review, please?
> 
> Sure, here it is (I fixed one incorrect word in the proposed ChangeLog):

Thanks, the patch looks fine. Shall I commit it on your behalf or do you 
want to get git access working and then commit yourself?

Andreas

> ---
>  ChangeLog       |   10 ++++++++++
>  stdlib/stdlib.h |   32 ++++++++++++++++----------------
>  2 files changed, 26 insertions(+), 16 deletions(-)
> 
> diff --git a/ChangeLog b/ChangeLog
> index 41e6190..e43eb02 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,13 @@
> +2012-04-11  Paul Eggert  <eggert@cs.ucla.edu>
> +
> +	* stdlib/stdlib.h: Remove warn_unused_result attribute from strtol
> etc. +	(strtod, strtof, strtold, strtol, strtoul, strtoq)
> +	(strtouq, strtoll, strtoull, strtol_l, strtoul_l, strtoll_l,
> strtoull_l) +	(strtod_l, strtof_l, strtold_l): Remove __wur.
> +	It is not necessarily an error to ignore strtol's return value.
> +	One can reliably look at the stored endptr to decide whether
> +	the number had valid syntax.
> +
>  2012-04-11  David S. Miller  <davem@davemloft.net>
> 
>  	* sysdeps/sparc/fpu/libm-test-ulps: Update.
> diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
> index 4da4678..cdc9e02 100644
> --- a/stdlib/stdlib.h
> +++ b/stdlib/stdlib.h
> @@ -163,18 +163,18 @@ __BEGIN_NAMESPACE_STD
>  /* Convert a string to a floating-point number.  */
>  extern double strtod (const char *__restrict __nptr,
>  		      char **__restrict __endptr)
> -     __THROW __nonnull ((1)) __wur;
> +     __THROW __nonnull ((1));
>  __END_NAMESPACE_STD
> 
>  #ifdef	__USE_ISOC99
>  __BEGIN_NAMESPACE_C99
>  /* Likewise for `float' and `long double' sizes of floating-point
> numbers.  */ extern float strtof (const char *__restrict __nptr,
> -		     char **__restrict __endptr) __THROW __nonnull ((1)) __wur;
> +		     char **__restrict __endptr) __THROW __nonnull ((1));
> 
>  extern long double strtold (const char *__restrict __nptr,
>  			    char **__restrict __endptr)
> -     __THROW __nonnull ((1)) __wur;
> +     __THROW __nonnull ((1));
>  __END_NAMESPACE_C99
>  #endif
> 
> @@ -182,11 +182,11 @@ __BEGIN_NAMESPACE_STD
>  /* Convert a string to a long integer.  */
>  extern long int strtol (const char *__restrict __nptr,
>  			char **__restrict __endptr, int __base)
> -     __THROW __nonnull ((1)) __wur;
> +     __THROW __nonnull ((1));
>  /* Convert a string to an unsigned long integer.  */
>  extern unsigned long int strtoul (const char *__restrict __nptr,
>  				  char **__restrict __endptr, int __base)
> -     __THROW __nonnull ((1)) __wur;
> +     __THROW __nonnull ((1));
>  __END_NAMESPACE_STD
> 
>  #if defined __GLIBC_HAVE_LONG_LONG && defined __USE_BSD
> @@ -194,12 +194,12 @@ __END_NAMESPACE_STD
>  __extension__
>  extern long long int strtoq (const char *__restrict __nptr,
>  			     char **__restrict __endptr, int __base)
> -     __THROW __nonnull ((1)) __wur;
> +     __THROW __nonnull ((1));
>  /* Convert a string to an unsigned quadword integer.  */
>  __extension__
>  extern unsigned long long int strtouq (const char *__restrict __nptr,
>  				       char **__restrict __endptr, int __base)
> -     __THROW __nonnull ((1)) __wur;
> +     __THROW __nonnull ((1));
>  #endif /* GCC and use BSD.  */
> 
>  #if defined __USE_ISOC99 || (defined __GLIBC_HAVE_LONG_LONG && defined
> __USE_MISC) @@ -208,12 +208,12 @@ __BEGIN_NAMESPACE_C99
>  __extension__
>  extern long long int strtoll (const char *__restrict __nptr,
>  			      char **__restrict __endptr, int __base)
> -     __THROW __nonnull ((1)) __wur;
> +     __THROW __nonnull ((1));
>  /* Convert a string to an unsigned quadword integer.  */
>  __extension__
>  extern unsigned long long int strtoull (const char *__restrict __nptr,
>  					char **__restrict __endptr, int __base)
> -     __THROW __nonnull ((1)) __wur;
> +     __THROW __nonnull ((1));
>  __END_NAMESPACE_C99
>  #endif /* ISO C99 or GCC and use MISC.  */
> 
> @@ -238,37 +238,37 @@ __END_NAMESPACE_C99
>     use as an additional parameter.  */
>  extern long int strtol_l (const char *__restrict __nptr,
>  			  char **__restrict __endptr, int __base,
> -			  __locale_t __loc) __THROW __nonnull ((1, 4)) __wur;
> +			  __locale_t __loc) __THROW __nonnull ((1, 4));
> 
>  extern unsigned long int strtoul_l (const char *__restrict __nptr,
>  				    char **__restrict __endptr,
>  				    int __base, __locale_t __loc)
> -     __THROW __nonnull ((1, 4)) __wur;
> +     __THROW __nonnull ((1, 4));
> 
>  __extension__
>  extern long long int strtoll_l (const char *__restrict __nptr,
>  				char **__restrict __endptr, int __base,
>  				__locale_t __loc)
> -     __THROW __nonnull ((1, 4)) __wur;
> +     __THROW __nonnull ((1, 4));
> 
>  __extension__
>  extern unsigned long long int strtoull_l (const char *__restrict
> __nptr, char **__restrict __endptr,
>  					  int __base, __locale_t __loc)
> -     __THROW __nonnull ((1, 4)) __wur;
> +     __THROW __nonnull ((1, 4));
> 
>  extern double strtod_l (const char *__restrict __nptr,
>  			char **__restrict __endptr, __locale_t __loc)
> -     __THROW __nonnull ((1, 3)) __wur;
> +     __THROW __nonnull ((1, 3));
> 
>  extern float strtof_l (const char *__restrict __nptr,
>  		       char **__restrict __endptr, __locale_t __loc)
> -     __THROW __nonnull ((1, 3)) __wur;
> +     __THROW __nonnull ((1, 3));
> 
>  extern long double strtold_l (const char *__restrict __nptr,
>  			      char **__restrict __endptr,
>  			      __locale_t __loc)
> -     __THROW __nonnull ((1, 3)) __wur;
> +     __THROW __nonnull ((1, 3));
>  #endif /* GNU */

-- 
 Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
  SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
   GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg)
    GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126


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