#include "window.h"
#include "puresize.h"
-/* Work around GCC bug 54561. */
-#if GNUC_PREREQ (4, 3, 0)
-# pragma GCC diagnostic ignored "-Wclobbered"
-#endif
-
/* Define BYTE_CODE_SAFE true to enable some minor sanity checking,
useful for debugging the byte compiler. It defaults to false. */
for (ptrdiff_t i = nargs - rest; i < nonrest; i++)
PUSH (Qnil);
+ unsigned char volatile saved_quitcounter;
+#if GCC_LINT && __GNUC__ && !__clang__
+ Lisp_Object *volatile saved_vectorp;
+ unsigned char const *volatile saved_bytestr_data;
+#endif
+
while (true)
{
int op;
if (sys_setjmp (c->jmp))
{
+ quitcounter = saved_quitcounter;
struct handler *c = handlerlist;
handlerlist = c->next;
top = c->bytecode_top;
op = c->bytecode_dest;
+ bc = ¤t_thread->bc;
struct bc_frame *fp = bc->fp;
Lisp_Object fun = fp->fun;
Lisp_Object bytestr = AREF (fun, CLOSURE_CODE);
Lisp_Object vector = AREF (fun, CLOSURE_CONSTANTS);
+#if GCC_LINT && __GNUC__ && !__clang__
+ /* These useless assignments pacify GCC 14.2.1 x86-64
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21161>. */
+ bytestr_data = saved_bytestr_data;
+ vectorp = saved_vectorp;
+#endif
bytestr_data = SDATA (bytestr);
vectorp = XVECTOR (vector)->contents;
if (BYTE_CODE_SAFE)
goto op_branch;
}
+ saved_quitcounter = quitcounter;
+#if GCC_LINT && __GNUC__ && !__clang__
+ saved_vectorp = vectorp;
+ saved_bytestr_data = bytestr_data;
+#endif
NEXT;
}