summaryrefslogtreecommitdiff
path: root/compile.c
diff options
context:
space:
mode:
authorKazuhiro NISHIYAMA <zn@mbf.nifty.com>2020-08-17 09:26:30 +0900
committerKazuhiro NISHIYAMA <zn@mbf.nifty.com>2020-08-17 09:28:15 +0900
commit5849309c5a3754c3a9b0d1e42a34e82b94a5104b (patch)
tree4e7bac58d6d50c064d948459e764175baf4a19f9 /compile.c
parenta73b5cc556bd131fe924ed6bb02b3c5bdf1593e8 (diff)
Revert "Refactor to reduce "swap" instruction of pattern matching"
This reverts commit 3a4be429b50062122d1616256de38649464d3146. To fix following warning: ``` compiling ../compile.c ../compile.c:6336:20: warning: variable 'line' is uninitialized when used here [-Wuninitialized] ADD_INSN(head, line, putnil); /* allocate stack for cached #deconstruct value */ ^~~~ ../compile.c:220:57: note: expanded from macro 'ADD_INSN' ADD_ELEM((seq), (LINK_ELEMENT *) new_insn_body(iseq, (line), BIN(insn), 0)) ^~~~ ../compile.c:6327:13: note: initialize the variable 'line' to silence this warning int line; ^ = 0 1 warning generated. ```
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 519e12f1ca..f2ab7c3113 100644
--- a/compile.c
+++ b/compile.c
@@ -6333,7 +6333,6 @@ compile_case3(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_no
INIT_ANCHOR(body_seq);
INIT_ANCHOR(cond_seq);
- ADD_INSN(head, line, putnil); /* allocate stack for cached #deconstruct value */
CHECK(COMPILE(head, "case base", node->nd_head));
branches = decl_branch_base(iseq, node, "case");
@@ -6346,6 +6345,8 @@ compile_case3(rb_iseq_t *iseq, LINK_ANCHOR *const ret, const NODE *const orig_no
endlabel = NEW_LABEL(line);
elselabel = NEW_LABEL(line);
+ ADD_INSN(head, line, putnil); /* allocate stack for cached #deconstruct value */
+ ADD_INSN(head, line, swap);
ADD_SEQ(ret, head); /* case VAL */
while (type == NODE_IN) {