aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-08-09 07:52:23 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-08-09 07:52:23 +0000
commitb533d13bfaa3f0c92fd0e6ff2835f7370489bd9c (patch)
treee75979109c0d2667f99d0150e81eff8b3a4be30c
parentbd080214b7fac93ed61ea3005fa6361f9de4ae3d (diff)
downloadruby-b533d13bfaa3f0c92fd0e6ff2835f7370489bd9c.tar.gz
* vm_insnhelper.c (vm_getivar): use always_inline because
gcc7 doesn't inline this without always_inline. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--vm_insnhelper.c10
2 files changed, 7 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 70afcafcd9..214274ecdd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Aug 9 16:09:03 2016 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * vm_insnhelper.c (vm_getivar): use always_inline because
+ gcc7 doesn't inline this without always_inline.
+
Tue Aug 9 15:41:24 2016 NARUSE, Yui <naruse@ruby-lang.org>
* ext/tk: Tk is removed from stdlib. [Feature #8539]
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 9c230e018a..7ee39c736b 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -15,16 +15,10 @@
#include "internal.h"
#include "probes.h"
#include "probes_helper.h"
+#include "ruby/config.h"
/* control stack frame */
-#undef INLINE
-#if defined __GNUC__ && !defined __NO_INLINE__ && !defined __clang__
-#define INLINE inline
-#else
-#define INLINE static inline
-#endif
-
static rb_control_frame_t *vm_get_ruby_level_caller_cfp(const rb_thread_t *th, const rb_control_frame_t *cfp);
VALUE
@@ -867,7 +861,7 @@ vm_search_const_defined_class(const VALUE cbase, ID id)
#define USE_IC_FOR_IVAR 1
#endif
-INLINE VALUE
+ALWAYS_INLINE() inline VALUE
vm_getivar(VALUE obj, ID id, IC ic, struct rb_call_cache *cc, int is_attr)
{
#if USE_IC_FOR_IVAR