From: Bruno Haible Date: Sun, 5 Mar 2017 01:17:00 +0000 (+0100) Subject: test-calloc-gnu: Reenable test also for GCC 7. X-Git-Tag: v1.0~6340 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=8250f4c6d0375f4eeb053cbd2245cd83666b2e0e;p=gnulib.git 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. --- diff --git a/ChangeLog b/ChangeLog index e856f85f44..355f5c8c07 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2017-03-04 Bruno Haible + + 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 test-calloc-gnu: port to GCC7 diff --git a/tests/test-calloc-gnu.c b/tests/test-calloc-gnu.c index 3f964c38ed..9dcd56d5e1 100644 --- a/tests/test-calloc-gnu.c +++ b/tests/test-calloc-gnu.c @@ -18,6 +18,20 @@ #include +/* 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; }