aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman <[email protected]>2005-02-03 07:36:15 +0000
committerRichard M. Stallman <[email protected]>2005-02-03 07:36:15 +0000
commit799775ff761dae4cc360b2bc273949ef76c29395 (patch)
treeb39890e2b26ee3f3ea91e288ccbbd1b4911c8888
parent85424dea001dd2518ffa7367cae3e9d51f3f7810 (diff)
(x_error_quitter): On GCC 3 and up, specify noinline.
-rw-r--r--src/xterm.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 2db3379a26..f047c255c6 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -7770,10 +7770,18 @@ x_error_handler (display, error)
It kills all frames on the display that we got the error for.
If that was the only one, it prints an error message and kills Emacs. */
-/* It is after x_error_handler so that it won't get inlined in
- x_error_handler. */
+/* .gdbinit puts a breakpoint here, so make sure it is not inlined. */
-static void
+#if __GNUC__ >= 3 /* On GCC 3.0 we might get a warning. */
+#define NO_INLINE __attribute__((noinline))
+#else
+#define NO_INLINE
+#endif
+
+/* On older GCC versions, just putting x_error_quitter
+ after x_error_handler prevents inlining into the former. */
+
+static void NO_INLINE
x_error_quitter (display, error)
Display *display;
XErrorEvent *error;