summaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2006-09-02 13:40:16 +0000
committerEli Zaretskii <eliz@gnu.org>2006-09-02 13:40:16 +0000
commiteaa1e5ed0fb421b09e41568318e85a7e582490eb (patch)
tree046acbe87f7af1e459c40639a28387c18899dfe0 /src/eval.c
parentaf91f644f4f857ddffcf3744987e89e2dc31dc19 (diff)
downloademacs-eaa1e5ed0fb421b09e41568318e85a7e582490eb.tar.gz
(apply1, call2) [__GNUC__]: Declare with `__attribute__((noinline))'.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c
index 0d7a6a31038..5f3bd46c4dc 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -199,6 +199,14 @@ extern Lisp_Object Qrisky_local_variable;
static Lisp_Object funcall_lambda P_ ((Lisp_Object, int, Lisp_Object*));
static void unwind_to_catch P_ ((struct catchtag *, Lisp_Object)) NO_RETURN;
+
+#if __GNUC__
+/* "gcc -O3" enables automatic function inlining, which optimizes out
+ the arguments for the invocations of these functions, whereas they
+ expect these values on the stack. */
+Lisp_Object apply1 () __attribute__((noinline));
+Lisp_Object call2 () __attribute__((noinline));
+#endif
void
init_eval_once ()