aboutsummaryrefslogtreecommitdiffstats
path: root/compile.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-13 00:11:25 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-13 00:11:25 +0000
commitc279ac36155ccc5015066ae5ca47d7746801aae0 (patch)
treea1414f6e38f5f945280f14351ba48b33471fff5c /compile.c
parentdae32a40d904b88a92d574ee1b3a4b746a7e3260 (diff)
downloadruby-c279ac36155ccc5015066ae5ca47d7746801aae0.tar.gz
compile.c: compile flip-flop
* compile.c (iseq_compile_each0): compile flip-flop directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'compile.c')
-rw-r--r--compile.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/compile.c b/compile.c
index 118055954b..f6d8964fbb 100644
--- a/compile.c
+++ b/compile.c
@@ -6103,7 +6103,8 @@ iseq_compile_each0(rb_iseq_t *iseq, LINK_ANCHOR *const ret, NODE *node, int popp
LABEL *lend = NEW_LABEL(line);
LABEL *ltrue = NEW_LABEL(line);
LABEL *lfalse = NEW_LABEL(line);
- compile_branch_condition(iseq, ret, node, ltrue, lfalse);
+ CHECK(compile_flip_flop(iseq, ret, node, type == NODE_FLIP2,
+ ltrue, lfalse));
ADD_INSNL(ret, line, jump, lend);
ADD_LABEL(ret, ltrue);
ADD_INSN1(ret, line, putobject, Qtrue);