Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix emitter crash from a goto inside a try-finally
Summary: If there was a goto inside the try block of a try-finally, with no other region (such as a loop) around it, the emitter would crash. We didn't need to check for m_parent's goto labels, because the loop header already starts the search at the current region's parent. Note that this still behaves incorrectly for a goto out of two nested try-finally regions, e.g.: ``` try { try { goto bluh; } finally { // one } } finally { // two } bluh: ... ``` In this case, `one` will get executed and then jump straight to `bluh`. None of our active test cases test this yet (some of the zend/bad ones do, though). I think this may require a deeper fix. Reviewed By: @jdelong Differential Revision: D1555786
- Loading branch information