glibc/malloc
Sam James 879f0ee122 malloc: add indirection for malloc(-like) functions in tests [BZ #32366]
GCC 15 introduces allocation dead code removal (DCE) for PR117370 in
r15-5255-g7828dc070510f8. This breaks various glibc tests which want
to assert various properties of the allocator without doing anything
obviously useful with the allocated memory.

Alexander Monakov rightly pointed out that we can and should do better
than passing -fno-malloc-dce to paper over the problem. Not least because
GCC 14 already does such DCE where there's no testing of malloc's return
value against NULL, and LLVM has such optimisations too.

Handle this by providing malloc (and friends) wrappers with a volatile
function pointer to obscure that we're calling malloc (et. al) from the
compiler.

Reviewed-by: Paul Eggert <eggert@cs.ucla.edu>
(cherry picked from commit a9944a52c9)
2025-07-11 13:57:07 -04:00
..
Depend
Makefile malloc: Decrease resource usage for malloc tests 2023-06-12 14:45:24 -03:00
Versions Remove unused scratch_buffer_dupfree 2022-10-28 18:43:58 +01:00
alloc_buffer_alloc_array.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
alloc_buffer_allocate.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
alloc_buffer_copy_bytes.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
alloc_buffer_copy_string.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
alloc_buffer_create_failure.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
arena.c malloc: Use __get_nprocs on arena_get2 (BZ 30945) 2024-02-12 09:53:27 -03:00
dynarray-skeleton.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dynarray.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dynarray_at_failure.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dynarray_emplace_enlarge.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dynarray_finalize.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dynarray_resize.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dynarray_resize_clear.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
hooks.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
malloc-check.c Remove --enable-tunables configure option 2023-03-29 14:33:06 -03:00
malloc-debug.c Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
malloc-internal.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
malloc.c malloc: Remove bin scanning from memalign (bug 30723) 2023-08-22 16:33:35 +02:00
malloc.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mallocbug.c
mcheck-impl.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mcheck-init.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mcheck.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mcheck.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
memusage.c Move {read,write}_all functions to a dedicated header 2023-06-06 08:23:53 -04:00
memusage.sh Update copyright dates not handled by scripts/update-copyrights 2023-01-06 21:45:36 +00:00
memusagestat.c Move {read,write}_all functions to a dedicated header 2023-06-06 08:23:53 -04:00
morecore.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mtrace-impl.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mtrace.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mtrace.pl Update copyright dates not handled by scripts/update-copyrights 2023-01-06 21:45:36 +00:00
obstack.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
obstack.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
reallocarray.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
scratch_buffer_grow.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
scratch_buffer_grow_preserve.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
scratch_buffer_set_array_size.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
set-freeres.c malloc: Fix set-freeres.c with gcc 6 2023-07-26 09:45:22 -03:00
thread-freeres.c Move libc_freeres_ptrs and libc_subfreeres to hidden/weak functions 2023-03-27 13:57:55 -03:00
tst-aligned-alloc-static.c aligned_alloc: conform to C17 2023-05-08 16:40:10 -04:00
tst-aligned-alloc.c malloc: add indirection for malloc(-like) functions in tests [BZ #32366] 2025-07-11 13:57:07 -04:00
tst-alloc_buffer.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-calloc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-compathooks-off.c malloc: add indirection for malloc(-like) functions in tests [BZ #32366] 2025-07-11 13:57:07 -04:00
tst-compathooks-on.c Move malloc hooks into a compat DSO 2021-07-22 18:37:59 +05:30
tst-dynarray-at-fail.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-dynarray-fail.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-dynarray-shared.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-dynarray.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-free-errno.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-aux-nothread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-aux-thread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-aux.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-aux.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-nothread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-skeleton.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-static-nothread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-static-thread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-interpose-thread.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mallinfo2.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-aux.h malloc: add indirection for malloc(-like) functions in tests [BZ #32366] 2025-07-11 13:57:07 -04:00
tst-malloc-backtrace.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-check.c malloc: add indirection for malloc(-like) functions in tests [BZ #32366] 2025-07-11 13:57:07 -04:00
tst-malloc-fork-deadlock.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-stats-cancellation.c
tst-malloc-tcache-leak.c Fix a few more typos I missed in previous round -- BZ 25337 2023-06-02 23:46:32 +00:00
tst-malloc-thread-exit.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-thread-fail.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc-too-large.c malloc: add indirection for malloc(-like) functions in tests [BZ #32366] 2025-07-11 13:57:07 -04:00
tst-malloc-usable-tunables.c
tst-malloc-usable.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-malloc.c malloc: add indirection for malloc(-like) functions in tests [BZ #32366] 2025-07-11 13:57:07 -04:00
tst-malloc_info.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mallocalign1.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mallocfork.c
tst-mallocfork2.c Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
tst-mallocfork3.c Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
tst-mallocstate.c Fix all the remaining misspellings -- BZ 25337 2023-06-02 01:39:48 +00:00
tst-mallopt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-memalign-2.c malloc: Remove bin scanning from memalign (bug 30723) 2023-08-22 16:33:35 +02:00
tst-memalign-3.c malloc: set NON_MAIN_ARENA flag for reclaimed memalign chunk (BZ #30101) 2023-04-18 10:58:42 -04:00
tst-memalign.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mtrace.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mtrace.sh Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-mxfast.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-obstack.c Avoid -Wuse-after-free in tests [BZ #26779]. 2022-01-26 10:38:23 -07:00
tst-posix_memalign.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-pvalloc-fortify.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-pvalloc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-realloc.c malloc: add indirection for malloc(-like) functions in tests [BZ #32366] 2025-07-11 13:57:07 -04:00
tst-reallocarray.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-safe-linking.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-scratch_buffer.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-tcfree1.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-tcfree2.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-tcfree3.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
tst-trim1.c
tst-valloc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00