aboutsummaryrefslogtreecommitdiffstats
path: root/erts
diff options
context:
space:
mode:
authorJohn Högberg <[email protected]>2019-04-08 06:15:23 +0200
committerJohn Högberg <[email protected]>2019-04-08 07:23:32 +0200
commit0b6006dc4d2c9818c8d91ee364ed7d6aa660ed76 (patch)
treee5d4f2fcd254b4913a29bceaf381a54df837617d /erts
parent3a61226f801441a51e44a8e9703b92984fc48938 (diff)
downloadotp-0b6006dc4d2c9818c8d91ee364ed7d6aa660ed76.tar.gz
otp-0b6006dc4d2c9818c8d91ee364ed7d6aa660ed76.tar.bz2
otp-0b6006dc4d2c9818c8d91ee364ed7d6aa660ed76.zip
erts: Skip ERTS_NOINLINE on non-GCC-compatible compilers
__declspec(noinline) works fine on MSVC but requires us to place the macro before a function rather than after, which in turn causes early versions of GCC to puke since they only accept __attribute__ at the end of a function declaration. Since this is a new macro that previously only saw use in beam_emu, I figured it's easiest to leave it disabled on MSVC.
Diffstat (limited to 'erts')
-rw-r--r--erts/emulator/beam/sys.h2
-rw-r--r--erts/include/internal/ethread_inline.h2
2 files changed, 1 insertions, 3 deletions
diff --git a/erts/emulator/beam/sys.h b/erts/emulator/beam/sys.h
index 24b6738e08..c261c8e117 100644
--- a/erts/emulator/beam/sys.h
+++ b/erts/emulator/beam/sys.h
@@ -66,8 +66,6 @@
#ifndef ERTS_NOINLINE
# if ERTS_AT_LEAST_GCC_VSN__(3,1,1)
# define ERTS_NOINLINE __attribute__((__noinline__))
-# elif defined(__WIN32__)
-# define ERTS_NOINLINE __declspec(noinline)
# else
# define ERTS_NOINLINE
# endif
diff --git a/erts/include/internal/ethread_inline.h b/erts/include/internal/ethread_inline.h
index f25ba4ae72..791d7fa0ff 100644
--- a/erts/include/internal/ethread_inline.h
+++ b/erts/include/internal/ethread_inline.h
@@ -70,7 +70,7 @@
#elif defined(__WIN32__)
# define ETHR_INLINE __forceinline
# define ETHR_FORCE_INLINE __forceinline
-# define ETHR_NOINLINE __declspec(noinline)
+# define ETHR_NOINLINE
#endif
#endif /* #ifndef ETHREAD_INLINE_H__ */