X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/4ba72d329525332798b3b222eaec0efc8a23ac75..3e71e4379ce7b53afe51ead4c94e6bb016bc6e7a:/src/bytecode.c diff --git a/src/bytecode.c b/src/bytecode.c index a551eca244..1b02c60c61 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -32,6 +32,11 @@ along with GNU Emacs. If not, see . */ #include "xterm.h" #endif +/* Work around GCC bug 54561. */ +#if GNUC_PREREQ (4, 3, 0) +# pragma GCC diagnostic ignored "-Wclobbered" +#endif + /* * define BYTE_CODE_SAFE to enable some minor sanity checking (useful for * debugging the byte compiler...) @@ -338,12 +343,10 @@ relocate_byte_stack (void) #define FETCH2 (op = FETCH, op + (FETCH << 8)) -/* Push x onto the execution stack. This used to be #define PUSH(x) - (*++stackp = (x)) This oddity is necessary because Alliant can't be - bothered to compile the preincrement operator properly, as of 4/91. - -JimB */ +/* Push X onto the execution stack. The expression X should not + contain TOP, to avoid competing side effects. */ -#define PUSH(x) (top++, *top = (x)) +#define PUSH(x) (*++top = (x)) /* Pop a value off the execution stack. */