]> granicus.if.org Git - libevent/commitdiff
test: ignore -Walloc-size-larger-than error for calloc() returns ENOMEM
authorAzat Khuzhin <azat@libevent.org>
Sat, 9 Jul 2022 14:14:12 +0000 (17:14 +0300)
committerAzat Khuzhin <azat@libevent.org>
Sat, 9 Jul 2022 14:36:13 +0000 (17:36 +0300)
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

test/regress_util.c

index 1f919fe88951a9bfd521a398611d26f9ff4f8225..9523418036b018728c59415bf4406c1ef4b217a1 100644 (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);