test: ignore -Walloc-size-larger-than error for calloc() returns ENOMEM

Compiler report:

    /home/runner/work/libevent/libevent/test/regress_util.c: In function ‘test_event_calloc’:
    /home/runner/work/libevent/libevent/test/regress_util.c:1318:4: error: argument 2 value ‘9223372036854775815’ exceeds maximum object size 9223372036854775807 [-Werror=alloc-size-larger-than=]
      p = mm_calloc(EV_SIZE_MAX/2, EV_SIZE_MAX/2 + 8);
    In file included from /home/runner/work/libevent/libevent/test/../util-internal.h:37:0,
                     from /home/runner/work/libevent/libevent/test/regress_util.c:30:
    /usr/include/stdlib.h:541:14: note: in a call to allocation function ‘calloc’ declared here
     extern void *calloc (size_t __nmemb, size_t __size)

v2: clang on CI does not have this option
This commit is contained in:
Azat Khuzhin 2022-07-09 17:14:12 +03:00
parent 648af99afa
commit 8933217698

View File

@ -1315,7 +1315,16 @@ test_event_calloc(void *arg)
/* mm_calloc() should set errno = ENOMEM and return NULL
* in case of potential overflow. */
errno = 0;
p = mm_calloc(EV_SIZE_MAX/2, EV_SIZE_MAX/2 + 8);
#if defined(__clang__)
#elif defined(__GNUC__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Walloc-size-larger-than="
#endif
p = mm_calloc(EV_SIZE_MAX, EV_SIZE_MAX);
#if defined(__clang__)
#elif defined(__GNUC__)
#pragma GCC diagnostic pop
#endif
tt_assert(p == NULL);
tt_int_op(errno, ==, ENOMEM);