Eliminate 'value of DATASTART2 unknown' cppcheck info messages
authorIvan Maidanski <ivmai@mail.ru>
Sat, 22 Oct 2016 06:48:29 +0000 (09:48 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Sat, 22 Oct 2016 06:48:29 +0000 (09:48 +0300)
* dyn_load.c [HAVE_DL_ITERATE_PHDR]
(GC_register_dynamic_libraries_dl_iterate_phdr): Replace
defined(DATASTART2) with defined(GC_HAVE_DATAREGION2).
* os_dep.c [!OS2 && !MSWIN32 && !OPENBSD] (GC_register_data_segments):
Likewise.
* include/private/gcconfig.h [DATASTART2] (GC_HAVE_DATAREGION2): New
macro.

dyn_load.c
include/private/gcconfig.h
os_dep.c

index 1174396..679211d 100644 (file)
@@ -628,7 +628,7 @@ STATIC GC_bool GC_register_dynamic_libraries_dl_iterate_phdr(void)
       /* dl_iterate_phdr may forget the static data segment in  */
       /* statically linked executables.                         */
       GC_add_roots_inner(datastart, dataend, TRUE);
-#     if defined(DATASTART2)
+#     ifdef GC_HAVE_DATAREGION2
         if ((word)DATASTART2 - 1U >= (word)DATAEND2) {
                         /* Subtract one to check also for NULL  */
                         /* without a compiler warning.          */
index c977b89..c8a25ec 100644 (file)
         ptr_t GC_find_limit(ptr_t, GC_bool);
 #       define DATAEND GC_find_limit(DATASTART, TRUE)
 #       define DATAEND_IS_FUNC
+#       define GC_HAVE_DATAREGION2
 #       define DATASTART2 ((ptr_t)(&edata))
 #       define DATAEND2 ((ptr_t)(&end))
 #   endif
 #        define DATASTART ((ptr_t)((((word)(etext) + 0x3ffff) & ~0x3ffff) \
                                    + ((word)(etext) & 0xffff)))
 #        define DATAEND ((ptr_t)(edata))
+#        define GC_HAVE_DATAREGION2
 #        define DATASTART2 (_DYNAMIC_LINKING \
                ? (ptr_t)(((word)_gp + 0x8000 + 0x3ffff) & ~0x3ffff) \
                : (ptr_t)edata)
         ptr_t GC_find_limit(ptr_t, GC_bool);
 #       define DATAEND GC_find_limit(DATASTART, TRUE)
 #       define DATAEND_IS_FUNC
+#       define GC_HAVE_DATAREGION2
 #       define DATASTART2 ((ptr_t)(&edata))
 #       define DATAEND2 ((ptr_t)(&end))
 #   endif
index 73b49a8..f1606be 100644 (file)
--- a/os_dep.c
+++ b/os_dep.c
@@ -1957,7 +1957,7 @@ void GC_register_data_segments(void)
                      ": %p .. %p", (void *)DATASTART, (void *)DATAEND);
         }
         GC_add_roots_inner(DATASTART, DATAEND, FALSE);
-#       if defined(DATASTART2)
+#       ifdef GC_HAVE_DATAREGION2
           if ((word)DATASTART2 - 1U >= (word)DATAEND2)
             ABORT_ARG2("Wrong DATASTART/END2 pair",
                        ": %p .. %p", (void *)DATASTART2, (void *)DATAEND2);