Substrings can't have length of less than zero (i.e. negative length). For example, "foo"(:-1) is the same as "foo"(:0) and "foo"(2:1); all are zero-length strings. The patch for PR 48876 fixed part of an issue of substring simplification, making sure the endpoint of the substring is never less than zero. But, the actual condition should be: never less than the starting point.
So, the attached patch corrects the fix for PR 48876 and fixes PR 50409. It expands the original testcase to include the code triggering the new PR. Regtested on x86_64-apple-darwin11, OK to commit to trunk? FX
substring.ChangeLog
Description: Binary data
substring.diff
Description: Binary data