This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
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