mirror of
https://https.git.savannah.gnu.org/git/gnulib.git
synced 2026-09-01 02:34:55 +00:00
test-calloc-gnu: Reenable test also for GCC 7.
* tests/test-calloc-gnu.c (eight): New function. (main): Don't skip test; use eight() instead.
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
2017-03-04 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
test-calloc-gnu: Reenable test also for GCC 7.
|
||||
* tests/test-calloc-gnu.c (eight): New function.
|
||||
(main): Don't skip test; use eight() instead.
|
||||
|
||||
2017-03-04 Jim Meyering <meyering@fb.com>
|
||||
|
||||
test-calloc-gnu: port to GCC7
|
||||
|
||||
+17
-7
@@ -18,6 +18,20 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
/* Return 8.
|
||||
Usual compilers are not able to infer something about the return value. */
|
||||
static unsigned int
|
||||
eight (void)
|
||||
{
|
||||
unsigned int x = rand ();
|
||||
unsigned int y = x * x * x * x;
|
||||
x++; y |= x * x * x * x;
|
||||
x++; y |= x * x * x * x;
|
||||
x++; y |= x * x * x * x;
|
||||
y = y >> 1;
|
||||
return y & -y;
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
@@ -27,19 +41,15 @@ main ()
|
||||
return 1;
|
||||
free (p);
|
||||
|
||||
#if __GNUC__ < 7
|
||||
/* GCC7's -Werror=alloc-size-larger-than= would cause the following error
|
||||
to be detected at compile time, so skip the test for GCC7 and newer. */
|
||||
|
||||
/* Check that calloc fails when requested to allocate a block of memory
|
||||
larger than SIZE_MAX bytes. */
|
||||
p = calloc ((size_t) -1 / 8 + 1, 8);
|
||||
larger than SIZE_MAX bytes.
|
||||
We use eight (), not 8, to avoid a compiler warning from GCC 7. */
|
||||
p = calloc ((size_t) -1 / 8 + 1, eight ());
|
||||
if (p != NULL)
|
||||
{
|
||||
free (p);
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user