aboutsummaryrefslogtreecommitdiffstats
path: root/erts/include
diff options
context:
space:
mode:
authorJohn Högberg <[email protected]>2019-04-05 09:40:25 +0200
committerJohn Högberg <[email protected]>2019-04-05 09:47:39 +0200
commit3a61226f801441a51e44a8e9703b92984fc48938 (patch)
treefb34901c43964632523b40d274662bcc93079ff8 /erts/include
parent6385d434ffb882840ab0326ec892d9aa6ff25f50 (diff)
parent212465761f0e07f69515df78c6a7da74c579e875 (diff)
downloadotp-3a61226f801441a51e44a8e9703b92984fc48938.tar.gz
otp-3a61226f801441a51e44a8e9703b92984fc48938.tar.bz2
otp-3a61226f801441a51e44a8e9703b92984fc48938.zip
Merge remote-tracking branch 'trofi/master' into john/merge-re-replace-fix
PR 2194, stdlib: fix re:replace on LTO builds * trofi/master: cleanup: beam_emu.c: use ERTS_NOINLINE instead of NOINLINE stdlib: fix re:replace on LTO builds
Diffstat (limited to 'erts/include')
-rw-r--r--erts/include/internal/ethr_internal.h2
-rw-r--r--erts/include/internal/ethread_inline.h3
2 files changed, 4 insertions, 1 deletions
diff --git a/erts/include/internal/ethr_internal.h b/erts/include/internal/ethr_internal.h
index ac27ff2ed0..17ec84c52b 100644
--- a/erts/include/internal/ethr_internal.h
+++ b/erts/include/internal/ethr_internal.h
@@ -90,7 +90,7 @@ int ethr_init_common__(ethr_init_data *id);
int ethr_late_init_common__(ethr_late_init_data *lid);
void ethr_run_exit_handlers__(void);
void ethr_ts_event_destructor__(void *vtsep);
-void ethr_set_stacklimit__(char *prev_c, size_t stacksize);
+void ethr_set_stacklimit__(char *prev_c, size_t stacksize) ETHR_NOINLINE;
#if defined(ETHR_X86_RUNTIME_CONF__)
void ethr_x86_cpuid__(int *eax, int *ebx, int *ecx, int *edx);
diff --git a/erts/include/internal/ethread_inline.h b/erts/include/internal/ethread_inline.h
index 8e6bcfc4a8..f25ba4ae72 100644
--- a/erts/include/internal/ethread_inline.h
+++ b/erts/include/internal/ethread_inline.h
@@ -62,12 +62,15 @@
# define ETHR_INLINE __inline__
# if ETHR_AT_LEAST_GCC_VSN__(3, 1, 1)
# define ETHR_FORCE_INLINE __inline__ __attribute__((__always_inline__))
+# define ETHR_NOINLINE __attribute__((__noinline__))
# else
# define ETHR_FORCE_INLINE __inline__
+# define ETHR_NOINLINE
# endif
#elif defined(__WIN32__)
# define ETHR_INLINE __forceinline
# define ETHR_FORCE_INLINE __forceinline
+# define ETHR_NOINLINE __declspec(noinline)
#endif
#endif /* #ifndef ETHREAD_INLINE_H__ */