* compile.c (get_destination_insn, get_next_insn, get_prev_insn):
peephole optimization should not ignore ISEQ_ELEMENT_ADJUST. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
2b791b2ddd
commit
846ea1727f
@ -1,3 +1,8 @@
|
|||||||
|
Thu May 22 23:45:17 2008 Yusuke Endoh <mame@tsg.ne.jp>
|
||||||
|
|
||||||
|
* compile.c (get_destination_insn, get_next_insn, get_prev_insn):
|
||||||
|
peephole optimization should not ignore ISEQ_ELEMENT_ADJUST.
|
||||||
|
|
||||||
Thu May 22 20:20:54 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Thu May 22 20:20:54 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* marshal.c (check_dump_arg, check_load_arg): check if reentered.
|
* marshal.c (check_dump_arg, check_load_arg): check if reentered.
|
||||||
|
@ -248,3 +248,14 @@ assert_equal "1", %q{
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
}, "[ruby-dev:31698]"
|
}, "[ruby-dev:31698]"
|
||||||
|
|
||||||
|
assert_normal_exit %q{
|
||||||
|
f = 0
|
||||||
|
1.times do
|
||||||
|
begin
|
||||||
|
f += 1
|
||||||
|
ensure
|
||||||
|
redo unless f > 2
|
||||||
|
end
|
||||||
|
end
|
||||||
|
}
|
||||||
|
@ -1362,7 +1362,7 @@ get_destination_insn(INSN *iobj)
|
|||||||
|
|
||||||
list = lobj->link.next;
|
list = lobj->link.next;
|
||||||
while (list) {
|
while (list) {
|
||||||
if (list->type == ISEQ_ELEMENT_INSN) {
|
if (list->type == ISEQ_ELEMENT_INSN || list->type == ISEQ_ELEMENT_ADJUST) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
list = list->next;
|
list = list->next;
|
||||||
@ -1376,7 +1376,7 @@ get_next_insn(INSN *iobj)
|
|||||||
LINK_ELEMENT *list = iobj->link.next;
|
LINK_ELEMENT *list = iobj->link.next;
|
||||||
|
|
||||||
while (list) {
|
while (list) {
|
||||||
if (list->type == ISEQ_ELEMENT_INSN) {
|
if (list->type == ISEQ_ELEMENT_INSN || list->type == ISEQ_ELEMENT_ADJUST) {
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
list = list->next;
|
list = list->next;
|
||||||
@ -1390,7 +1390,7 @@ get_prev_insn(INSN *iobj)
|
|||||||
LINK_ELEMENT *list = iobj->link.prev;
|
LINK_ELEMENT *list = iobj->link.prev;
|
||||||
|
|
||||||
while (list) {
|
while (list) {
|
||||||
if (list->type == ISEQ_ELEMENT_INSN) {
|
if (list->type == ISEQ_ELEMENT_INSN || list->type == ISEQ_ELEMENT_ADJUST) {
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
list = list->prev;
|
list = list->prev;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user