]> granicus.if.org Git - gc/commitdiff
Eliminate 'Condition 0==datastart always false' cppcheck warning (dyn_load)
authorIvan Maidanski <ivmai@mail.ru>
Tue, 25 Oct 2016 21:14:20 +0000 (00:14 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 1 Nov 2016 22:42:58 +0000 (01:42 +0300)
* dyn_load.c [HAVE_DL_ITERATE_PHDR]
(GC_register_dynamic_libraries_dl_iterate_phdr): Cast datastart to
char*volatile* before dereferencing and checking against NULL.

dyn_load.c

index 659779602280e848108a9d692eec587f7f2fcb18..831e5e2324f753b268fcc54aab633f290e15f1f7 100644 (file)
@@ -618,7 +618,8 @@ STATIC GC_bool GC_register_dynamic_libraries_dl_iterate_phdr(void)
 #     else
         dataend = DATAEND;
 #     endif
-      if (NULL == datastart || (word)datastart > (word)dataend)
+      if (NULL == *(char * volatile *)&datastart
+          || (word)datastart > (word)dataend)
         ABORT_ARG2("Wrong DATASTART/END pair",
                    ": %p .. %p", datastart, dataend);