malloc: obscure calloc use in tst-calloc

Similar to a9944a52c9 and
f9493a15ea, we need to hide calloc use from
the compiler to accommodate GCC's r15-6566-g804e9d55d9e54c change.

First, include tst-malloc-aux.h, but then use `volatile` variables
for size.

The test passes without the tst-malloc-aux.h change but IMO we want
it there for consistency and to avoid future problems (possibly silent).

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
(cherry picked from commit c3d1dac96b)
This commit is contained in:
Sam James 2025-01-10 03:03:47 +00:00
parent aef8f8d6a9
commit be48b8f6ad
No known key found for this signature in database
GPG Key ID: 738409F520DF9190
1 changed files with 8 additions and 4 deletions

View File

@ -23,6 +23,7 @@
#include <stdio.h> #include <stdio.h>
#include <libc-diag.h> #include <libc-diag.h>
#include "tst-malloc-aux.h"
/* Number of samples per size. */ /* Number of samples per size. */
#define N 50000 #define N 50000
@ -94,16 +95,19 @@ random_test (void)
static void static void
null_test (void) null_test (void)
{ {
/* Obscure allocation size from the compiler. */
volatile size_t max_size = UINT_MAX;
volatile size_t zero_size = 0;
/* If the size is 0 the result is implementation defined. Just make /* If the size is 0 the result is implementation defined. Just make
sure the program doesn't crash. The result of calloc is sure the program doesn't crash. The result of calloc is
deliberately ignored, so do not warn about that. */ deliberately ignored, so do not warn about that. */
DIAG_PUSH_NEEDS_COMMENT; DIAG_PUSH_NEEDS_COMMENT;
DIAG_IGNORE_NEEDS_COMMENT (10, "-Wunused-result"); DIAG_IGNORE_NEEDS_COMMENT (10, "-Wunused-result");
calloc (0, 0); calloc (0, 0);
calloc (0, UINT_MAX); calloc (0, max_size);
calloc (UINT_MAX, 0); calloc (max_size, 0);
calloc (0, ~((size_t) 0)); calloc (0, ~((size_t) zero_size));
calloc (~((size_t) 0), 0); calloc (~((size_t) zero_size), 0);
DIAG_POP_NEEDS_COMMENT; DIAG_POP_NEEDS_COMMENT;
} }