Status: Assigned
Owner: [email protected]
Labels: Type-Bug Priority-High CodeGenerator

New issue 241 by [email protected]: Crash regression in switch  
statements
http://code.google.com/p/v8/issues/detail?id=241

This affects the experimental code generator branch.

A crash was revealed by disabling fast-case switch statements.

1. When a switch is on a compile-time constant, and a case matches it, we
do not compile the tests for any following cases (they would fail).  We
continue to compile bodies as long as we have fall-through.

2. We always skip the default case and compile it at the end if needed.

3. If there is a case after the default, we bind an "default exit" label to
handle possible fall-through from the default.  This fails in the case
where we are only compiling bodies (because we do not know any virtual
frame states entering the case after the default at the point we compile  
it).

It can be fixed by handling the default in-place in the case where we are
only compiling bodies for fall-through (and leaving it at the end  
otherwise).

We should also consider eliminating the jump to the next fall-through in
the case where it is the very next statement.


--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to