]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
malloc: obscure calloc use in tst-calloc
authorSam James <sam@gentoo.org>
Fri, 10 Jan 2025 03:03:47 +0000 (03:03 +0000)
committerCarlos O'Donell <carlos@redhat.com>
Fri, 11 Jul 2025 17:57:07 +0000 (13:57 -0400)
Similar to a9944a52c967ce76a5894c30d0274b824df43c7a and
f9493a15ea9cfb63a815c00c23142369ec09d8ce, 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 c3d1dac96bdd10250aa37bb367d5ef8334a093a1)

malloc/tst-calloc.c

index 50b1d7d6032eaef8b4bb7a2162c2f4e73b7cfd5c..d708a0fbeb0653342cf7333263f0f3150efcafac 100644 (file)
@@ -23,6 +23,7 @@
 #include <stdio.h>
 #include <libc-diag.h>
 
+#include "tst-malloc-aux.h"
 
 /* Number of samples per size.  */
 #define N 50000
@@ -94,16 +95,19 @@ random_test (void)
 static 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
      sure the program doesn't crash.  The result of calloc is
      deliberately ignored, so do not warn about that.  */
   DIAG_PUSH_NEEDS_COMMENT;
   DIAG_IGNORE_NEEDS_COMMENT (10, "-Wunused-result");
   calloc (0, 0);
-  calloc (0, UINT_MAX);
-  calloc (UINT_MAX, 0);
-  calloc (0, ~((size_t) 0));
-  calloc (~((size_t) 0), 0);
+  calloc (0, max_size);
+  calloc (max_size, 0);
+  calloc (0, ~((size_t) zero_size));
+  calloc (~((size_t) zero_size), 0);
   DIAG_POP_NEEDS_COMMENT;
 }