[PATCH 19/21] sysdeps/ieee754/ldbl-128ibm-compat: Fix warn unused result
Siddhesh Poyarekar
siddhesh@gotplt.org
Wed Jun 21 11:56:36 GMT 2023
On 2023-06-20 14:19, Frédéric Bérat wrote:
> Return value from *scanf and *asprintf routines are now properly checked
> in test-scanf-ldbl-compat-template.c and test-printf-ldbl-compat.c.
> ---
> .../test-printf-ldbl-compat.c | 10 +++++----
> .../test-scanf-ldbl-compat-template.c | 21 ++++++++++---------
> 2 files changed, 17 insertions(+), 14 deletions(-)
>
> diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c
> index 3c759e1427..95c1a28522 100644
> --- a/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c
> +++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c
> @@ -30,12 +30,13 @@ do_test_call_varg (FILE *stream, const char *format, ...)
> char *buffer = NULL;
> char string[128];
> va_list args;
> + int ret;
>
> printf ("%15s", "vasprintf: ");
> va_start (args, format);
> - vasprintf (&buffer, format, args);
> + ret = vasprintf (&buffer, format, args);
> va_end (args);
> - if (buffer == NULL)
> + if (ret < 22 || buffer == NULL)
ret == -1 is a sufficient test here I think.
> printf ("Error using vasprintf\n");
> else
> {
> @@ -82,10 +83,11 @@ do_test_call_rarg (FILE *stream, const char *format, long double ld, double d)
> {
> char *buffer = NULL;
> char string[128];
> + int ret;
>
> printf ("%15s", "asprintf: ");
> - asprintf (&buffer, format, ld, d);
> - if (buffer == NULL)
> + ret = asprintf (&buffer, format, ld, d);
> + if (ret < 22 || buffer == NULL)
> printf ("Error using asprintf\n");
> else
> {
> diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c
> index e8da3a67f0..776c12dd16 100644
> --- a/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c
> +++ b/sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c
> @@ -37,10 +37,10 @@
> ldptr = va_arg (args, long double *); \
> fptr = va_arg (args, float *); \
> va_end (args); \
> - if (*ldptr == -1 && *fptr == -2) \
> + if (*ldptr == -1 && *fptr == -2 && ret == 2) \
> printf ("OK"); \
> else \
> - printf ("ERROR (%Lf %f)", *ldptr, *fptr); \
> + printf ("ERROR (%Lf %f %d)", *ldptr, *fptr, ret); \
> printf ("\n");
>
> #define CLEAR_VALUE \
> @@ -48,10 +48,10 @@
> f = 0;
>
> #define CHECK_VALUE \
> - if (ld == -1 && f == -2) \
> + if (ld == -1 && f == -2 && ret == 2) \
> printf ("OK"); \
> else \
> - printf ("ERROR (%Lf %f)", ld, f); \
> + printf ("ERROR (%Lf %f %d)", ld, f, ret); \
> printf ("\n");
>
> static void
> @@ -62,40 +62,41 @@ do_test_call (FILE *stream, CHAR *string, const CHAR *format, ...)
> float *fptr;
> long double *ldptr;
> va_list args;
> + int ret;
>
> CLEAR_VALUE
> printf ("fscanf: ");
> - FSCANF (stream, format, &ld, &f);
> + ret = FSCANF (stream, format, &ld, &f);
> CHECK_VALUE
>
> CLEAR_VALUE
> printf ("scanf: ");
> - SCANF (format, &ld, &f);
> + ret = SCANF (format, &ld, &f);
> CHECK_VALUE
>
> CLEAR_VALUE
> printf ("sscanf: ");
> - SSCANF (string, format, &ld, &f);
> + ret = SSCANF (string, format, &ld, &f);
> CHECK_VALUE
>
> CLEAR_VARGS
> printf ("vfscanf: ");
> va_start (args, format);
> - VFSCANF (stream, format, args);
> + ret = VFSCANF (stream, format, args);
> va_end (args);
> CHECK_VARGS
>
> CLEAR_VARGS
> printf ("vscanf: ");
> va_start (args, format);
> - VSCANF (format, args);
> + ret = VSCANF (format, args);
> va_end (args);
> CHECK_VARGS
>
> CLEAR_VARGS
> printf ("vsscanf: ");
> va_start (args, format);
> - VSSCANF (string, format, args);
> + ret = VSSCANF (string, format, args);
> va_end (args);
> CHECK_VARGS
> }
More information about the Libc-alpha
mailing list