From: Paul Eggert Date: Wed, 25 Jul 2012 22:47:42 +0000 (-0700) Subject: Use typedef for EMACS_INT, EMACS_UINT. X-Git-Tag: emacs-24.2.90~1080 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=71f88e00a23bc38dc6a15bd65bc1e64981546313;p=emacs.git 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. --- diff --git a/src/.gdbinit b/src/.gdbinit index 1db25324ea0..379a14b2ea5 100644 --- a/src/.gdbinit +++ b/src/.gdbinit @@ -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 diff --git a/src/ChangeLog b/src/ChangeLog index 700ff294c83..88c90dd84d8 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2012-07-25 Paul Eggert + + 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 * nsterm.m (ns_read_socket): Return early if there is a modal diff --git a/src/lisp.h b/src/lisp.h index 7f6a2d72c89..e4eb8ce5084 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -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 diff --git a/src/s/ms-w32.h b/src/s/ms-w32.h index 7128d8a069d..bcc4c4235ee 100644 --- a/src/s/ms-w32.h +++ b/src/s/ms-w32.h @@ -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"