Use typedef for EMACS_INT, EMACS_UINT.
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 25 Jul 2012 22:47:42 +0000 (15:47 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 25 Jul 2012 22:47:42 +0000 (15:47 -0700)
* lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
than macros.  This simplifies debugging in the usual case, since
it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
and it allows expressions involving EMACS_INT casts.
* .gdbinit (xreload): Simplify by using EMACS_INT cast.

src/.gdbinit
src/ChangeLog
src/lisp.h
src/s/ms-w32.h

index 1db2532..379a14b 100644 (file)
@@ -1190,9 +1190,7 @@ end
 
 define xreload
   set $tagmask = ((1 << gdb_gctypebits) - 1)
-  # The consing_since_gc business widens the 1 to EMACS_INT,
-  # a symbol not directly visible to GDB.
-  set $valmask = gdb_use_lsb ? ~($tagmask) : ((consing_since_gc - consing_since_gc + 1) << gdb_valbits) - 1
+  set $valmask = gdb_use_lsb ? ~($tagmask) : ((EMACS_INT) 1 << gdb_valbits) - 1
 end
 document xreload
   When starting Emacs a second time in the same gdb session under
index 700ff29..88c90dd 100644 (file)
@@ -1,3 +1,12 @@
+2012-07-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use typedef for EMACS_INT, EMACS_UINT.
+       * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
+       than macros.  This simplifies debugging in the usual case, since
+       it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
+       and it allows expressions involving EMACS_INT casts.
+       * .gdbinit (xreload): Simplify by using EMACS_INT cast.
+
 2012-07-25  Jan Djärv  <jan.h.d@swipnet.se>
 
        * nsterm.m (ns_read_socket): Return early if there is a modal
index 7f6a2d7..e4eb8ce 100644 (file)
@@ -45,22 +45,24 @@ extern void check_cons_list (void);
    EMACS_INT_MAX - maximum value of EMACS_INT; can be used in #if
    pI - printf length modifier for EMACS_INT
    EMACS_UINT - unsigned variant of EMACS_INT */
-#ifndef EMACS_INT
+#ifndef EMACS_INT_MAX
 # if LONG_MAX < LLONG_MAX && defined WIDE_EMACS_INT
-#  define EMACS_INT long long
+typedef long long int EMACS_INT;
+typedef unsigned long long int EMACS_UINT;
 #  define EMACS_INT_MAX LLONG_MAX
 #  define pI "ll"
 # elif INT_MAX < LONG_MAX
-#  define EMACS_INT long
+typedef long int EMACS_INT;
+typedef unsigned long int EMACS_UINT;
 #  define EMACS_INT_MAX LONG_MAX
 #  define pI "l"
 # else
-#  define EMACS_INT int
+typedef int EMACS_INT;
+typedef unsigned int EMACS_UINT;
 #  define EMACS_INT_MAX INT_MAX
 #  define pI ""
 # endif
 #endif
-#define EMACS_UINT unsigned EMACS_INT
 
 /* Number of bits in some machine integer types.  */
 enum
index 7128d8a..bcc4c42 100644 (file)
@@ -388,7 +388,8 @@ extern int getloadavg (double *, int);
 # ifdef WIDE_EMACS_INT
 
 /* Use pre-C99-style 64-bit integers.  */
-# define EMACS_INT __int64
+typedef __int64 EMACS_INT;
+typedef unsigned __int64 EMACS_UINT;
 # define EMACS_INT_MAX _I64_MAX
 # define pI "I64"