aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/eval.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index b45428e7e7..0e0ccc67de 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -7102,8 +7102,15 @@ static inline int get_float_arg(typval_T *argvars, float_T *f)
}
// Apply a floating point C function on a typval with one float_T.
-static inline void float_op_wrapper(typval_T *argvars, typval_T *rettv,
- float_T (*function)(float_T))
+//
+// Some versions of glibc on i386 have an optimization that makes it harder to
+// call math functions indirectly from inside an inlined function, causing
+// compile-time errors. Avoid `inline` in that case. #3072
+#ifndef ARCH_32
+inline
+#endif
+static void float_op_wrapper(typval_T *argvars, typval_T *rettv,
+ float_T (*function)(float_T))
{
float_T f;