summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-06-14 05:10:30 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-06-14 05:10:30 +0000
commite6d9e4c8c61d507f6cde4ea1379c3586a3c3a2ef (patch)
treee4b5f26222a614f29a451cccbe46d16c91e5ca56
parent70d6d8ac811b2bb6d796469c5a4eb1020d41b43a (diff)
compile.c: dump and error before allocation
* compile.c (iseq_set_sequence): separate instruction dump and error, before allocation of sequence. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--compile.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/compile.c b/compile.c
index 80cc06a..aad9ac9 100644
--- a/compile.c
+++ b/compile.c
@@ -1577,10 +1577,10 @@ get_ivar_ic_value(rb_iseq_t *iseq,ID id)
static int
iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
{
- struct iseq_line_info_entry *line_info_table = NULL;
+ struct iseq_line_info_entry *line_info_table;
unsigned int last_line = 0;
LINK_ELEMENT *list;
- VALUE *generated_iseq = NULL;
+ VALUE *generated_iseq;
int insn_num, code_index, line_info_index, sp, stack_max = 0, line = 0;
@@ -1619,7 +1619,8 @@ iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *const anchor)
break;
}
default:
- BADINSN_ERROR(iseq, line, "unknown list type: %d", list->type);
+ BADINSN_DUMP(anchor, list, NULL);
+ COMPILE_ERROR(iseq, line, "unknown list type: %d", list->type);
return COMPILE_NG;
}
list = list->next;