1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2026-10-24 00:48:56 +03:00
Commit Graph

21 Commits

Author SHA1 Message Date
Collin Funk
a8482ceecf maint: run 'make update-copyright' 2026-01-01 10:37:05 -08:00
Pádraig Brady
7b08932179 maint: run 'make update-copyright' 2025-01-01 09:25:10 +00:00
Paul Eggert
41be6842b5 malloc etc. tests: use volatile more consistently
Typically it’s ineffective to use ‘void *volatile p’
when testing malloc and similar functions, as the compiler
can optimize the call to malloc before assigning the result
to the volatile pointer variable.  Instead, be more systematic
about calling malloc through a volatile function pointer
so that the compiler cannot infer that it is a malloc call.
This fix can’t be done for alloca-like functions which may not
have a function address, so continue to trust to luck there.
* tests/test-aligned-malloc.c (aligned4_malloc, aligned4_free)
(aligned8_malloc, aligned8_free, aligned16_malloc)
(aligned16_free, aligned32_malloc, aligned32_free):
* tests/test-aligned_alloc.c (aligned_alloc):
* tests/test-calloc-gnu.c (calloc):
* tests/test-free.c (free):
* tests/test-malloc-gnu.c (malloc):
* tests/test-reallocarray.c (reallocarray):
Test indirectly, by calling through a volatile pointer.
* tests/test-aligned-malloc.c, tests/test-aligned_alloc.c:
* tests/test-calloc-gnu.c, tests/test-calloc-posix.c:
* tests/test-free.c, tests/test-malloc-gnu.c:
* tests/test-malloc-posix.c, tests/test-realloc-posix.c:
* tests/test-reallocarray.c:
(main) Don’t bother making data pointers olatile, as it’s ineffective.
* tests/test-calloc-gnu.c (identity):
* tests/test-free.c (get_errno, get_errno_func):
Remove; all uses removed.
2024-11-04 09:40:29 -08:00
Bruno Haible
3a5f51783b tests: Support showing all assertion failures, not just the first one.
* tests/macros.h (CONTINUE_AFTER_ASSERT): New macro.
(test_exit_status): New variable.
(ASSERT, ASSERT_NO_STDIO): If CONTINUE_AFTER_ASSERT is 1, set
test_exit_status instead of aborting.
* tests/**/test-*.{c,h,cc} (main): Instead of exiting with exit code 0,
exit with exit code test_exit_status.
* tests/test-spawn-pipe-child.c: Undefine CONTINUE_AFTER_ASSERT.
* tests/uninorm/test-nf*.c: Include macros.h.
* tests/uninorm/test-u32-nf*-big.c: Likewise.
* tests/random*.c: Define NO_MAIN_HERE.
2024-05-18 23:33:58 +02:00
Simon Josefsson
5b92dd0a45 maint: run 'make update-copyright' 2024-01-01 10:31:48 +01:00
Simon Josefsson
32a72f4537 maint: run 'make update-copyright' 2023-01-01 01:14:21 +01:00
Bernhard Voelker
87e6634b28 license: fix GPLv3 texts to use a comma instead of semicolon.
See: https://www.gnu.org/licenses/gpl-3.0.html#howto
Run:
  $ git grep -l 'Foundation; either version 3' \
      | xargs sed -i '/Foundation; either version 3/ s/n; e/n, e/'

* All files using GPLv3: Adjust via the above command.
2022-01-05 11:56:23 +01:00
Paul Eggert
eec12c00cf maint: run 'make update-copyright' 2022-01-01 09:44:11 -08:00
Paul Eggert
c45faf7f48 reallocarray-tests: port to weird platforms
* tests/test-reallocarray.c (main): Don’t assume that
PTRDIFF_MAX / 2 + 1 <= SIZE_MAX.  POSIX allows platforms
where this isn’t true, though I don’t know of any examples.
2021-05-30 10:04:47 -07:00
Bruno Haible
f6b9c58618 *alloc-gnu tests: Use ASSERT macro.
* tests/test-malloc-gnu.c: Include "macros.h".
(main): Use ASSERT.
* tests/test-calloc-gnu.c: Include "macros.h".
(main): Use ASSERT.
* tests/test-realloc-gnu.c: Include "macros.h".
(main): Use ASSERT.
* tests/test-reallocarray.c: Include "macros.h".
(main): Use ASSERT.
* modules/malloc-gnu-tests (Files): Add tests/macros.h.
* modules/calloc-gnu-tests (Files): Likewise.
* modules/realloc-gnu-tests (Files): Likewise.
* modules/reallocarray-tests (Files): Likewise.
2021-05-14 15:53:31 +02:00
Bruno Haible
3b4cd76a8e reallocarray tests: Avoid test failure on NetBSD.
* tests/test-reallocarray.c (main): Accept EOVERFLOW error code.
2021-05-13 12:11:04 +02:00
Paul Eggert
974ddbe54c reallocarray: don’t crash if item size is 0
This problem affects only platforms where xalloc_oversized
divides a number by the size arg.  Fix this by defining
xalloc_oversized (n, s) to work even if s == 0.
* lib/malloca.h, lib/xalloc-oversized.h: Document new behavior.
* lib/xalloc-oversized.h (__xalloc_oversized): Do not crash if S==0.
* tests/test-reallocarray.c (main): Test for the bug.
2021-04-25 18:25:31 -07:00
Paul Eggert
a7477abe29 reallocarray: check for ptrdiff_t overflow
* doc/glibc-functions/reallocarray.texi (reallocarray):
Mention ptrdiff_t overflow.
* lib/reallocarray.c (reallocarray): Reindent as per usual GNU.
* lib/stdlib.in.h (reallocarray): Allow reallocarray to be replaced.
* m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY):
Check for ptrdiff_t overflow.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Set up REPLACE_REALLOCARRAY.
* modules/reallocarray (Files): Add malloc.m4.
(configure.ac): Also test REPLACE_REALLOCARRAY.
* modules/reallocarray-tests (Depends-on): Add stdint.
* modules/stdlib (stdlib.h): Substitute REPLACE_REALLOCARRAY.
* tests/test-reallocarray.c: Include stdint.h.
(main): Check for ptrdiff_t overflow.
2021-04-24 10:47:40 -07:00
Paul Eggert
591f006664 malloc-gnu-tests, etc.: use volatile for clang
In some more test locations, store the result of malloc etc. into
a volatile pointer so that clang doesn’t optimize away the malloc
and thus bypass the test.  This fixes a malloc-gnu test failure on
macOS 11.2.3 with clang 12.0.0 on ARM.
* tests/test-alloca-opt.c (do_allocation):
* tests/test-malloc-gnu.c (main):
* tests/test-malloca.c (do_allocation):
* tests/test-realloc-gnu.c (main):
* tests/test-reallocarray.c (main):
* tests/test-aligned-malloc.c (main):
* tests/test-aligned_alloc.c (main):
Store malloc etc. results into a volatile pointer.
2021-04-20 17:12:51 -07:00
Paul Eggert
4b94832196 maint: run 'make update-copyright' 2020-12-31 23:30:01 -08:00
Paul Eggert
2cdc1bafb2 maint: Run 'make update-copyright' 2019-12-31 16:02:16 -08:00
Paul Eggert
e6633650a2 maint: Run 'make update-copyright' 2019-01-01 00:30:05 +01:00
Paul Eggert
281b825eba maint: Run 'make update-copyright' 2018-01-01 00:58:38 +00:00
Paul Eggert
ca35d46812 all: prefer https: URLs 2017-09-13 00:48:57 -07:00
Paul Eggert
aa459ef443 reallocarray: minor fixes
* doc/glibc-functions/reallocarray.texi: Update version numbers.
* m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY): Don't trust _cv_ contents.
* modules/reallocarray (License): Change from GPL to LGPL.
* tests/test-reallocarray.c (main): Fix ENOMEM typo.
Indent properly and don't use tabs.
2017-08-13 11:02:40 -07:00
Darshit Shah
98756762a3 reallocarray: New module
reallocarray is a new function in glibc 2.26 to safely allocate an array
of memory locations with integer overflow protection.
* MODULES.html.sh: Add reallocarray.
* doc/glibc-functions/reallocarray.texi: Documentation for reallocarray.
* lib/reallocarray.c: New file to implement module reallocarray.
* lib/stdlib.in.h: Add function declarations for reallocarray.
* m4/reallocarray.m4: New file.
* m4/stdlib_h.m4: Declare reallocarray.
* modules/reallocarray: New file.
* modules/reallocarray-test: New file.
* modules/stdlib: Coerce stdlib.h to export reallocarray.
* tests/test-reallocarray.c: New test.
2017-08-13 11:02:40 -07:00