]> granicus.if.org Git - gc/commitdiff
Consistently use outermost parentheses for DATASTART/END, STACKBOTTOM
authorIvan Maidanski <ivmai@mail.ru>
Thu, 15 Oct 2015 20:49:06 +0000 (23:49 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Thu, 15 Oct 2015 20:49:06 +0000 (23:49 +0300)
(code refactoring)

* include/private/gcconfig.h (DATASTART, DATAEND, STACKBOTTOM,
DATAEND2): Add outermost parentheses where missing; remove space in
cast.

include/private/gcconfig.h

index e2dcc864efb17ecff4dd11e1f840685e02a8ac3d..758a3348b5c89e20803381865e937be99ac94946 100644 (file)
@@ -62,8 +62,8 @@
 #    define SA_RESTART 0
 #    define HEURISTIC1
      extern char etext[];
-#    define DATASTART ((ptr_t)(etext))
      extern int _end[];
+#    define DATASTART ((ptr_t)(etext))
 #    define DATAEND (_end)
 #    define mach_type_known
 # endif
                              /* that we'd rather not scan.             */
 #            endif /* !GLIBC2 */
              extern int _end[];
-#            define DATAEND (ptr_t)(_end)
+#            define DATAEND ((ptr_t)(_end))
 #       else
              extern int etext[];
-#            define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
+#            define DATASTART ((ptr_t)((((word)(etext)) + 0xfff) & ~0xfff))
 #       endif
 #   endif
 #   ifdef AMIGA
 #     endif
 #     define OS_TYPE "MACOS"
                 /* see os_dep.c for details of global data segments. */
-#     define STACKBOTTOM ((ptr_t) LMGetCurStackBase())
+#     define STACKBOTTOM ((ptr_t)LMGetCurStackBase())
 #     define DATAEND    /* not needed */
 #     define GETPAGESIZE() 4096
 #   endif
 #   ifdef NEXT
 #       define OS_TYPE "NEXT"
-#       define DATASTART ((ptr_t) get_etext())
+#       define DATASTART ((ptr_t)get_etext())
 #       define DATASTART_IS_FUNC
-#       define STACKBOTTOM ((ptr_t) 0x4000000)
+#       define STACKBOTTOM ((ptr_t)0x4000000)
 #       define DATAEND  /* not needed */
 #   endif
 # endif
 #     endif
 #     define OS_TYPE "MACOS"
                         /* see os_dep.c for details of global data segments. */
-#     define STACKBOTTOM ((ptr_t) LMGetCurStackBase())
+#     define STACKBOTTOM ((ptr_t)LMGetCurStackBase())
 #     define DATAEND  /* not needed */
 #   endif
 #   ifdef LINUX
 #     define DYNAMIC_LOADING
 #     define SEARCH_FOR_DATA_START
       extern int _end[];
-#     define DATAEND (ptr_t)(_end)
+#     define DATAEND ((ptr_t)(_end))
 #   endif
 #   ifdef DARWIN
 #     define OS_TYPE "DARWIN"
 #     if defined(__ppc64__)
 #       define ALIGNMENT 8
 #       define CPP_WORDSZ 64
-#       define STACKBOTTOM ((ptr_t) 0x7fff5fc00000)
+#       define STACKBOTTOM ((ptr_t)0x7fff5fc00000)
 #       define CACHE_LINE_SIZE 64
 #       ifndef HBLKSIZE
 #         define HBLKSIZE 4096
 #       endif
 #     else
 #       define ALIGNMENT 4
-#       define STACKBOTTOM ((ptr_t) 0xc0000000)
+#       define STACKBOTTOM ((ptr_t)0xc0000000)
 #     endif
       /* XXX: see get_end(3), get_etext() and get_end() should not be used. */
       /* These aren't used when dyld support is enabled (it is by default). */
-#     define DATASTART ((ptr_t) get_etext())
-#     define DATAEND   ((ptr_t) get_end())
+#     define DATASTART ((ptr_t)get_etext())
+#     define DATAEND   ((ptr_t)get_end())
 #     ifndef USE_MMAP
 #       define USE_MMAP
 #     endif
 #     ifndef GC_OPENBSD_THREADS
 #       include <sys/param.h>
 #       include <uvm/uvm_extern.h>
-#       define STACKBOTTOM ((ptr_t) USRSTACK)
+#       define STACKBOTTOM ((ptr_t)USRSTACK)
 #     endif
       extern int __data_start[];
 #     define DATASTART ((ptr_t)__data_start)
 #     define ALIGNMENT 4
       extern int _end[];
       extern int __bss_start;
-#     define DATAEND (ptr_t)(_end)
-#     define DATASTART (ptr_t)(__bss_start)
+#     define DATASTART ((ptr_t)(__bss_start))
+#     define DATAEND ((ptr_t)(_end))
 #     define STACKBOTTOM ((ptr_t)ps3_get_stack_bottom())
 #     define NO_PTHREAD_TRYLOCK
                 /* Current GC LOCK() implementation for PS3 explicitly  */
 #     define OS_TYPE "NOSYS"
       extern void __end[], __dso_handle[];
 #     define DATASTART (__dso_handle)  /* OK, that's ugly.  */
-#     define DATAEND (ptr_t)(__end)
+#     define DATAEND ((ptr_t)(__end))
         /* Stack starts at 0xE0000000 for the simulator.  */
 #     undef STACK_GRAN
 #     define STACK_GRAN 0x10000000
 #   endif
 #   ifdef ULTRIX
 #       define OS_TYPE "ULTRIX"
-#       define STACKBOTTOM ((ptr_t) 0x7fffc800)
+#       define STACKBOTTOM ((ptr_t)0x7fffc800)
 #   endif
 # endif
 
         ptr_t GC_SysVGetDataStart(size_t, ptr_t);
 #       define DATASTART GC_SysVGetDataStart(0x10000, (ptr_t)_etext)
 #       define DATASTART_IS_FUNC
-#       define DATAEND (ptr_t)(_end)
+#       define DATAEND ((ptr_t)(_end))
 #       if !defined(USE_MMAP) && defined(REDIRECT_MALLOC)
 #         define USE_MMAP
             /* Otherwise we now use calloc.  Mmap may result in the     */
 #       include <sys/vmparam.h>
 #       ifdef USERLIMIT
           /* This should work everywhere, but doesn't.  */
-#         define STACKBOTTOM ((ptr_t) USRSTACK)
+#         define STACKBOTTOM ((ptr_t)USRSTACK)
 #       else
 #         define HEURISTIC2
 #       endif
 #   endif
 #   ifdef DRSNX
 #       define OS_TYPE "DRSNX"
-        ptr_t GC_SysVGetDataStart(size_t, ptr_t);
         extern int etext[];
+        ptr_t GC_SysVGetDataStart(size_t, ptr_t);
 #       define DATASTART GC_SysVGetDataStart(0x10000, (ptr_t)etext)
 #       define DATASTART_IS_FUNC
 #       define MPROTECT_VDB
-#       define STACKBOTTOM ((ptr_t) 0xdfff0000)
+#       define STACKBOTTOM ((ptr_t)0xdfff0000)
 #       define DYNAMIC_LOADING
 #   endif
 #   ifdef LINUX
 #     endif
       extern int _end[];
       extern int _etext[];
-#     define DATAEND (ptr_t)(_end)
+#     define DATAEND ((ptr_t)(_end))
 #     define SVR4
       ptr_t GC_SysVGetDataStart(size_t, ptr_t);
 #     ifdef __arch64__
 #     ifndef GC_OPENBSD_THREADS
 #       include <sys/param.h>
 #       include <uvm/uvm_extern.h>
-#       define STACKBOTTOM ((ptr_t) USRSTACK)
+#       define STACKBOTTOM ((ptr_t)USRSTACK)
 #     endif
       extern int __data_start[];
 #     define DATASTART ((ptr_t)__data_start)
 #       define NEED_FIND_LIMIT
 #       define DATASTART ((ptr_t)(&etext))
         ptr_t GC_find_limit(ptr_t, GC_bool);
-#       define DATAEND (GC_find_limit (DATASTART, TRUE))
+#       define DATAEND GC_find_limit(DATASTART, TRUE)
 #       define DATAEND_IS_FUNC
 #       define DATASTART2 ((ptr_t)(&edata))
 #       define DATAEND2 ((ptr_t)(&end))
 #   ifdef SEQUENT
 #       define OS_TYPE "SEQUENT"
         extern int etext[];
-#       define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
-#       define STACKBOTTOM ((ptr_t) 0x3ffff000)
+#       define DATASTART ((ptr_t)((((word)(etext)) + 0xfff) & ~0xfff))
+#       define STACKBOTTOM ((ptr_t)0x3ffff000)
 #   endif
 #   ifdef BEOS
 #     define OS_TYPE "BEOS"
 #     include <OS.h>
 #     define GETPAGESIZE() B_PAGE_SIZE
       extern int etext[];
-#     define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
+#     define DATASTART ((ptr_t)((((word)(etext)) + 0xfff) & ~0xfff))
 #   endif
 #   ifdef SOLARIS
 #       define OS_TYPE "SOLARIS"
         ptr_t GC_SysVGetDataStart(size_t, ptr_t);
 #       define DATASTART GC_SysVGetDataStart(0x1000, (ptr_t)_etext)
 #       define DATASTART_IS_FUNC
-#       define DATAEND (ptr_t)(_end)
+#       define DATAEND ((ptr_t)(_end))
 /*      # define STACKBOTTOM ((ptr_t)(_start)) worked through 2.7,      */
 /*      but reportedly breaks under 2.8.  It appears that the stack     */
 /*      base is a property of the executable, so this should not break  */
 /*      old executables.                                                */
 /*      HEURISTIC2 probably works, but this appears to be preferable.   */
 #       include <sys/vm.h>
-#       define STACKBOTTOM ((ptr_t) USRSTACK)
+#       define STACKBOTTOM ((ptr_t)USRSTACK)
 /* At least in Solaris 2.5, PROC_VDB gives wrong values for dirty bits. */
 /* It appears to be fixed in 2.8 and 2.9.                               */
 #       ifdef SOLARIS25_PROC_VDB_BUG_FIXED
 #   ifdef SCO
 #       define OS_TYPE "SCO"
         extern int etext[];
-#       define DATASTART ((ptr_t)((((word) (etext)) + 0x3fffff) \
-                                  & ~0x3fffff) \
-                                 +((word)etext & 0xfff))
-#       define STACKBOTTOM ((ptr_t) 0x7ffffffc)
+#       define DATASTART ((ptr_t)((((word)(etext)) + 0x3fffff) & ~0x3fffff) \
+                                 + ((word)(etext) & 0xfff))
+#       define STACKBOTTOM ((ptr_t)0x7ffffffc)
 #   endif
 #   ifdef SCO_ELF
 #       define OS_TYPE "SCO_ELF"
         extern int etext[];
 #       define DATASTART ((ptr_t)(etext))
-#       define STACKBOTTOM ((ptr_t) 0x08048000)
+#       define STACKBOTTOM ((ptr_t)0x08048000)
 #       define DYNAMIC_LOADING
 #       define ELF_CLASS ELFCLASS32
 #   endif
         ptr_t GC_SysVGetDataStart(size_t, ptr_t);
 #       define DATASTART GC_SysVGetDataStart(0x1000, (ptr_t)(&_etext))
 #       define DATASTART_IS_FUNC
-#       define DATAEND (ptr_t)(&_end)
+#       define DATAEND ((ptr_t)(&_end))
 #       define STACK_GROWS_DOWN
 #       define HEURISTIC2
 #       include <unistd.h>
 #            define DYNAMIC_LOADING
 #            ifdef UNDEFINED    /* includes ro data */
                extern int _etext[];
-#              define DATASTART ((ptr_t)((((word) (_etext)) + 0xfff) & ~0xfff))
+#              define DATASTART ((ptr_t)((((word)(_etext)) + 0xfff) & ~0xfff))
 #            endif
 #            include <features.h>
 #            if defined(__GLIBC__) && __GLIBC__ >= 2 \
                               /* that we'd rather not scan.             */
 #            endif
              extern int _end[];
-#            define DATAEND (ptr_t)(_end)
+#            define DATAEND ((ptr_t)(_end))
 #            if defined(PLATFORM_ANDROID) && !defined(GC_NO_SIGSETJMP) \
                 && !(__ANDROID_API__ >= 18 || __GNUC__ > 4 \
                      || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) \
 #            endif
 #       else
              extern int etext[];
-#            define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
+#            define DATASTART ((ptr_t)((((word)(etext)) + 0xfff) & ~0xfff))
 #       endif
 #       ifdef USE_I686_PREFETCH
 #         define PREFETCH(x) \
         extern int etext[];
         extern int _stklen;
         extern int __djgpp_stack_limit;
-#       define DATASTART ((ptr_t)((((word) (etext)) + 0x1ff) & ~0x1ff))
+#       define DATASTART ((ptr_t)((((word)(etext)) + 0x1ff) & ~0x1ff))
 /* #define STACKBOTTOM ((ptr_t)((word)_stubinfo+_stubinfo->size+_stklen)) */
-#       define STACKBOTTOM ((ptr_t)((word) __djgpp_stack_limit + _stklen))
+#       define STACKBOTTOM ((ptr_t)((word)__djgpp_stack_limit + _stklen))
                 /* This may not be right.  */
 #   endif
 #   ifdef OPENBSD
 #       ifndef GC_OPENBSD_THREADS
 #         include <sys/param.h>
 #         include <uvm/uvm_extern.h>
-#         define STACKBOTTOM ((ptr_t) USRSTACK)
+#         define STACKBOTTOM ((ptr_t)USRSTACK)
 #       endif
         extern int __data_start[];
 #       define DATASTART ((ptr_t)__data_start)
 #           define SIG_SUSPEND          (32+6)
 #           define SIG_THR_RESTART      (32+5)
             extern int _end[];
-#           define DATAEND (ptr_t)(_end)
+#           define DATAEND ((ptr_t)(_end))
 #       else
 #           define SIG_SUSPEND SIGUSR1
 #           define SIG_THR_RESTART SIGUSR2
 #   endif
 #   ifdef NEXT
 #       define OS_TYPE "NEXT"
-#       define DATASTART ((ptr_t) get_etext())
+#       define DATASTART ((ptr_t)get_etext())
 #       define DATASTART_IS_FUNC
 #       define STACKBOTTOM ((ptr_t)0xc0000000)
 #       define DATAEND  /* not needed */
       /* Make sure startup code variables always have the same names.   */
       #pragma aux __nullarea "*";
       #pragma aux _end "*";
-#     define STACKBOTTOM ((ptr_t) _STACKTOP)
+#     define STACKBOTTOM ((ptr_t)_STACKTOP)
                          /* confused? me too. */
-#     define DATASTART ((ptr_t) &__nullarea)
-#     define DATAEND ((ptr_t) &_end)
+#     define DATASTART ((ptr_t)(&__nullarea))
+#     define DATAEND ((ptr_t)(&_end))
 #   endif
 #   ifdef HURD
 #     define OS_TYPE "HURD"
 #     define SIG_THR_RESTART SIGUSR2
 #     define SEARCH_FOR_DATA_START
       extern int _end[];
-#     define DATAEND ((ptr_t) (_end))
+#     define DATAEND ((ptr_t)(_end))
 /* #     define MPROTECT_VDB  Not quite working yet? */
 #     define DYNAMIC_LOADING
 #   endif
 #     endif
       /* XXX: see get_end(3), get_etext() and get_end() should not be used. */
       /* These aren't used when dyld support is enabled (it is by default). */
-#     define DATASTART ((ptr_t) get_etext())
-#     define DATAEND   ((ptr_t) get_end())
-#     define STACKBOTTOM ((ptr_t) 0xc0000000)
+#     define DATASTART ((ptr_t)get_etext())
+#     define DATAEND   ((ptr_t)get_end())
+#     define STACKBOTTOM ((ptr_t)0xc0000000)
 #     ifndef USE_MMAP
 #       define USE_MMAP
 #     endif
                               /* word in crt0.o, and delimits the start */
                               /* of the data segment, no matter which   */
                               /* ld options were passed through.        */
-#   define STACKBOTTOM ((ptr_t) 0xfffff000) /* for Encore */
+#   define STACKBOTTOM ((ptr_t)0xfffff000) /* for Encore */
 # endif
 
 # ifdef MIPS
 #     define OS_TYPE "LINUX"
 #     define DYNAMIC_LOADING
       extern int _end[];
-#     define DATAEND (ptr_t)(_end)
 #     pragma weak __data_start
       extern int __data_start[];
 #     define DATASTART ((ptr_t)(__data_start))
+#     define DATAEND ((ptr_t)(_end))
 #     ifdef _MIPS_SZPTR
 #       define CPP_WORDSZ _MIPS_SZPTR
 #       define ALIGNMENT (_MIPS_SZPTR/8)
 #      else
          extern int etext[], edata[], end[];
          extern int _DYNAMIC_LINKING[], _gp[];
-#        define DATASTART ((ptr_t)((((word)etext + 0x3ffff) & ~0x3ffff) \
-               + ((word)etext & 0xffff)))
-#        define DATAEND (ptr_t)(edata)
+#        define DATASTART ((ptr_t)((((word)(etext) + 0x3ffff) & ~0x3ffff) \
+                                   + ((word)(etext) & 0xffff)))
+#        define DATAEND ((ptr_t)(edata))
 #        define DATASTART2 (_DYNAMIC_LINKING \
                ? (ptr_t)(((word)_gp + 0x8000 + 0x3ffff) & ~0x3ffff) \
                : (ptr_t)edata)
-#        define DATAEND2 (ptr_t)(end)
+#        define DATAEND2 ((ptr_t)(end))
 #        define ALIGNMENT 4
 #      endif
 #      define OS_TYPE "EWS4800"
 #   endif
 #   ifdef ULTRIX
 #       define HEURISTIC2
-#       define DATASTART (ptr_t)0x10000000
+#       define DATASTART ((ptr_t)0x10000000)
                               /* Could probably be slightly higher since */
                               /* startup code allocates lots of stuff.   */
 #       define OS_TYPE "ULTRIX"
 #       define NEED_FIND_LIMIT
 #       define DYNAMIC_LOADING
 #     else
-#       define DATASTART ((ptr_t) 0x10000000)
-#       define STACKBOTTOM ((ptr_t) 0x7ffff000)
+#       define DATASTART ((ptr_t)0x10000000)
+#       define STACKBOTTOM ((ptr_t)0x7ffff000)
 #     endif /* _ELF_ */
 #  endif
 #  ifdef OPENBSD
 #     ifndef GC_OPENBSD_THREADS
 #      include <sys/param.h>
 #      include <uvm/uvm_extern.h>
-#      define STACKBOTTOM ((ptr_t) USRSTACK)
+#      define STACKBOTTOM ((ptr_t)USRSTACK)
 #    endif
      extern int _fdata[];
 #    define DATASTART ((ptr_t)_fdata)
 #    define CPP_WORDSZ 32
 #    define OS_TYPE "NONSTOP"
 #    define ALIGNMENT 4
-#    define DATASTART ((ptr_t) 0x08000000)
+#    define DATASTART ((ptr_t)0x08000000)
      extern char **environ;
 #    define DATAEND ((ptr_t)(environ - 0x10))
-#    define STACKBOTTOM ((ptr_t) 0x4fffffff)
+#    define STACKBOTTOM ((ptr_t)0x4fffffff)
 #   endif
 # endif
 
 #     define OS_TYPE "LINUX"
 #     define DYNAMIC_LOADING
       extern int _end[];
-#     define DATAEND (ptr_t)(_end)
       extern int __data_start[];
 #     define DATASTART ((ptr_t)(__data_start))
+#     define DATAEND ((ptr_t)(_end))
 #     define ALIGNMENT 4
 #     ifndef HBLKSIZE
 #       define HBLKSIZE 4096
         /* default, since it may not work on older machine/OS           */
         /* combinations. (Thanks to Raymond X.T. Nijssen for uncovering */
         /* this.)                                                       */
-#       define STACKBOTTOM ((ptr_t) 0x7b033000)  /* from /etc/conf/h/param.h */
+#       define STACKBOTTOM ((ptr_t)0x7b033000) /* from /etc/conf/h/param.h */
 #     else
         /* Gustavo Rodriguez-Rivera suggested changing HEURISTIC2       */
         /* to this.  Note that the GC must be initialized before the    */
 #     define DYNAMIC_LOADING
 #     define SEARCH_FOR_DATA_START
       extern int _end[];
-#     define DATAEND (ptr_t)(&_end)
+#     define DATAEND ((ptr_t)(&_end))
 #   endif /* LINUX */
 #  ifdef OPENBSD
 #     define OS_TYPE "OPENBSD"
 #     ifndef GC_OPENBSD_THREADS
 #       include <sys/param.h>
 #       include <uvm/uvm_extern.h>
-#       define STACKBOTTOM ((ptr_t) USRSTACK)
+#       define STACKBOTTOM ((ptr_t)USRSTACK)
 #     endif
       extern int __data_start[];
 #     define DATASTART ((ptr_t)__data_start)
 #       ifndef GC_OPENBSD_THREADS
 #         include <sys/param.h>
 #         include <uvm/uvm_extern.h>
-#         define STACKBOTTOM ((ptr_t) USRSTACK)
+#         define STACKBOTTOM ((ptr_t)USRSTACK)
 #       endif
         extern int __data_start[];
 #       define DATASTART ((ptr_t)__data_start)
 #       define NEED_FIND_LIMIT
 #       define DATASTART ((ptr_t)(&etext))
         ptr_t GC_find_limit(ptr_t, GC_bool);
-#       define DATAEND (GC_find_limit (DATASTART, TRUE))
+#       define DATAEND GC_find_limit(DATASTART, TRUE)
 #       define DATAEND_IS_FUNC
 #       define DATASTART2 ((ptr_t)(&edata))
 #       define DATAEND2 ((ptr_t)(&end))
 #   endif
 #   ifdef OSF1
 #       define OS_TYPE "OSF1"
-#       define DATASTART ((ptr_t) 0x140000000)
+#       define DATASTART ((ptr_t)0x140000000)
         extern int _end[];
-#       define DATAEND ((ptr_t) &_end)
+#       define DATAEND ((ptr_t)(&_end))
         extern char ** environ;
         /* round up from the value of environ to the nearest page boundary */
         /* Probably breaks if putenv is called before collector            */
 #         define SEARCH_FOR_DATA_START
 #         define DYNAMIC_LOADING
 #       else
-#           define DATASTART ((ptr_t) 0x140000000)
+#           define DATASTART ((ptr_t)0x140000000)
 #       endif
         extern int _end[];
-#       define DATAEND (ptr_t)(_end)
+#       define DATAEND ((ptr_t)(_end))
 #       define MPROTECT_VDB
                 /* Has only been superficially tested.  May not */
                 /* work on all versions.                        */
 #       define MPROTECT_VDB
                 /* Requires Linux 2.3.47 or later.      */
         extern int _end[];
-#       define DATAEND (ptr_t)(_end)
+#       define DATAEND ((ptr_t)(_end))
 #       ifdef __GNUC__
 #         ifndef __INTEL_COMPILER
 #           define PREFETCH(x) \
         ptr_t GC_SysVGetDataStart(size_t, ptr_t);
 #       define DATASTART GC_SysVGetDataStart(0x10000, (ptr_t)_etext)
 #       define DATASTART_IS_FUNC
-#       define DATAEND (ptr_t)(_end)
+#       define DATAEND ((ptr_t)(_end))
 #       define HEURISTIC2
 #   endif
 # endif
         extern int __data_start[] __attribute__((__weak__));
 #       define DATASTART ((ptr_t)(__data_start))
         extern int _end[] __attribute__((__weak__));
-#       define DATAEND (ptr_t)(_end)
+#       define DATAEND ((ptr_t)(_end))
 #       define CACHE_LINE_SIZE 256
 #       define GETPAGESIZE() 4096
 #   endif
 #     define LINUX_STACKBOTTOM
 #     define DYNAMIC_LOADING
       extern int __data_start[];
-#     define DATASTART ((ptr_t)__data_start)
       extern int _end[];
+#     define DATASTART ((ptr_t)__data_start)
 #     define DATAEND ((ptr_t)(&_end))
 #   endif
 #   ifdef DARWIN
 #     ifndef GC_DONT_REGISTER_MAIN_STATIC_DATA
 #       define DYNAMIC_LOADING
 #     endif
-#     define DATASTART ((ptr_t) get_etext())
-#     define DATAEND   ((ptr_t) get_end())
-#     define STACKBOTTOM ((ptr_t) 0x16fdfffff)
+#     define DATASTART ((ptr_t)get_etext())
+#     define DATAEND   ((ptr_t)get_end())
+#     define STACKBOTTOM ((ptr_t)0x16fdfffff)
 #     ifndef USE_MMAP
 #       define USE_MMAP
 #     endif
                               /* that we'd rather not scan.             */
 #            endif
              extern int _end[];
-#            define DATAEND (ptr_t)(_end)
+#            define DATAEND ((ptr_t)(_end))
 #       else
              extern int etext[];
-#            define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
+#            define DATASTART ((ptr_t)((((word)(etext)) + 0xfff) & ~0xfff))
 #       endif
 #   endif
 #   ifdef MSWINCE
 #     ifndef GC_DONT_REGISTER_MAIN_STATIC_DATA
 #       define DYNAMIC_LOADING
 #     endif
-#     define DATASTART ((ptr_t) get_etext())
-#     define DATAEND   ((ptr_t) get_end())
-#     define STACKBOTTOM ((ptr_t) 0x30000000)
+#     define DATASTART ((ptr_t)get_etext())
+#     define DATAEND   ((ptr_t)get_end())
+#     define STACKBOTTOM ((ptr_t)0x30000000)
 #     ifndef USE_MMAP
 #       define USE_MMAP
 #     endif
 #     ifndef GC_OPENBSD_THREADS
 #       include <sys/param.h>
 #       include <uvm/uvm_extern.h>
-#       define STACKBOTTOM ((ptr_t) USRSTACK)
+#       define STACKBOTTOM ((ptr_t)USRSTACK)
 #     endif
       extern int __data_start[];
 #     define DATASTART ((ptr_t)__data_start)
 #   ifdef NOSYS
       /* __data_start is usually defined in the target linker script.  */
       extern int __data_start[];
-#     define DATASTART (ptr_t)(__data_start)
+#     define DATASTART ((ptr_t)(__data_start))
       /* __stack_base__ is set in newlib/libc/sys/arm/crt0.S  */
       extern void *__stack_base__;
-#     define STACKBOTTOM ((ptr_t) (__stack_base__))
+#     define STACKBOTTOM ((ptr_t)(__stack_base__))
 #   endif
 #endif
 
 #   define LINUX_STACKBOTTOM
 #   define SEARCH_FOR_DATA_START
       extern int _end[];
-#   define DATAEND (ptr_t)(_end)
+#   define DATAEND ((ptr_t)(_end))
 # endif
 
 # if defined(SH) && !defined(SH4)
 #     define DYNAMIC_LOADING
 #     define SEARCH_FOR_DATA_START
       extern int _end[];
-#     define DATAEND (ptr_t)(_end)
+#     define DATAEND ((ptr_t)(_end))
 #   endif
 #   ifdef NETBSD
 #      define OS_TYPE "NETBSD"
 #      ifndef GC_OPENBSD_THREADS
 #        include <sys/param.h>
 #        include <uvm/uvm_extern.h>
-#        define STACKBOTTOM ((ptr_t) USRSTACK)
+#        define STACKBOTTOM ((ptr_t)USRSTACK)
 #      endif
        extern int __data_start[];
 #      define DATASTART ((ptr_t)__data_start)
 #     define DYNAMIC_LOADING
 #     define SEARCH_FOR_DATA_START
       extern int _end[];
-#     define DATAEND (ptr_t)(_end)
+#     define DATAEND ((ptr_t)(_end))
 #   endif
 # endif
 
 #       ifndef GC_OPENBSD_THREADS
 #         include <sys/param.h>
 #         include <uvm/uvm_extern.h>
-#         define STACKBOTTOM ((ptr_t) USRSTACK)
+#         define STACKBOTTOM ((ptr_t)USRSTACK)
 #       endif
         extern int __data_start[];
-#       define DATASTART ((ptr_t)__data_start)
         extern int _end[];
+#       define DATASTART ((ptr_t)__data_start)
 #       define DATAEND ((ptr_t)(&_end))
 #       define DYNAMIC_LOADING
 #   endif
 #            define DYNAMIC_LOADING
 #            ifdef UNDEFINED    /* includes ro data */
                extern int _etext[];
-#              define DATASTART ((ptr_t)((((word) (_etext)) + 0xfff) & ~0xfff))
+#              define DATASTART ((ptr_t)((((word)(_etext)) + 0xfff) & ~0xfff))
 #            endif
 #            include <features.h>
 #            define SEARCH_FOR_DATA_START
              extern int _end[];
-#            define DATAEND (ptr_t)(_end)
+#            define DATAEND ((ptr_t)(_end))
 #       else
              extern int etext[];
-#            define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
+#            define DATASTART ((ptr_t)((((word)(etext)) + 0xfff) & ~0xfff))
 #       endif
 #       if defined(__GLIBC__) && !defined(__UCLIBC__)
           /* At present, there's a bug in GLibc getcontext() on         */
 #     endif
       /* XXX: see get_end(3), get_etext() and get_end() should not be used. */
       /* These aren't used when dyld support is enabled (it is by default)  */
-#     define DATASTART ((ptr_t) get_etext())
-#     define DATAEND   ((ptr_t) get_end())
-#     define STACKBOTTOM ((ptr_t) 0x7fff5fc00000)
+#     define DATASTART ((ptr_t)get_etext())
+#     define DATAEND   ((ptr_t)get_end())
+#     define STACKBOTTOM ((ptr_t)0x7fff5fc00000)
 #     ifndef USE_MMAP
 #       define USE_MMAP
 #     endif
 #           define SIG_SUSPEND          (32+6)
 #           define SIG_THR_RESTART      (32+5)
             extern int _end[];
-#           define DATAEND (ptr_t)(_end)
+#           define DATAEND ((ptr_t)(_end))
 #       else
 #           define SIG_SUSPEND SIGUSR1
 #           define SIG_THR_RESTART SIGUSR2
         ptr_t GC_SysVGetDataStart(size_t, ptr_t);
 #       define DATASTART GC_SysVGetDataStart(0x1000, (ptr_t)_etext)
 #       define DATASTART_IS_FUNC
-#       define DATAEND (ptr_t)(_end)
+#       define DATAEND ((ptr_t)(_end))
 /*      # define STACKBOTTOM ((ptr_t)(_start)) worked through 2.7,      */
 /*      but reportedly breaks under 2.8.  It appears that the stack     */
 /*      base is a property of the executable, so this should not break  */
 #       include <sys/vmparam.h>
 #       ifdef USERLIMIT
           /* This should work everywhere, but doesn't.  */
-#         define STACKBOTTOM ((ptr_t) USRSTACK)
+#         define STACKBOTTOM ((ptr_t)USRSTACK)
 #       else
 #         define HEURISTIC2
 #       endif
 #                error --> unknown Hexagon libc configuration
 #            endif
              extern int _end[];
-#            define DATAEND (ptr_t)(_end)
+#            define DATAEND ((ptr_t)(_end))
 #       else
 #            error --> bad Hexagon Linux configuration
 #       endif
 
 #ifndef DATAEND
   extern int end[];
-# define DATAEND (ptr_t)(end)
+# define DATAEND ((ptr_t)(end))
 #endif
 
 #if defined(PLATFORM_ANDROID) && !defined(THREADS) \