]> granicus.if.org Git - gc/commitdiff
Workaround 'condition *flh==0 is always true' cppcheck false positive
authorIvan Maidanski <ivmai@mail.ru>
Fri, 4 Oct 2019 20:25:19 +0000 (23:25 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 4 Oct 2019 20:25:19 +0000 (23:25 +0300)
* alloc.c [CPPCHECK] (GC_allocobj): Call GC_noop1(flh) between *flh==0
checks.

alloc.c

diff --git a/alloc.c b/alloc.c
index 75e71cfbbbdba27faeb273c05dcf6a61f5bb3714..0a221c4660c0bd1d5307d7c8d6252189e2f3b1cd 100644 (file)
--- a/alloc.c
+++ b/alloc.c
@@ -1604,9 +1604,15 @@ GC_INNER ptr_t GC_allocobj(size_t gran, int kind)
                   || NULL == GC_obj_kinds[kind].ok_reclaim_list[gran]);
         GC_continue_reclaim(gran, kind);
       EXIT_GC();
-      if (*flh == 0) {
+#     if defined(CPPCHECK)
+        GC_noop1((word)flh);
+#     endif
+      if (NULL == *flh) {
         GC_new_hblk(gran, kind);
-        if (*flh == 0) {
+#       if defined(CPPCHECK)
+          GC_noop1((word)flh);
+#       endif
+        if (NULL == *flh) {
           ENTER_GC();
           if (GC_incremental && GC_time_limit == GC_TIME_UNLIMITED
               && !tried_minor) {