Community
Participate
Working Groups
I'm using the ecj from cvs head. For the attached java source code, the compiler generated invalid bytecode. The v_671 tagged compiler is correct here. The bytecode for the method 'm' is not properly terminated: ... 56: iload_1 57: bipush 7 59: if_icmple 62 62: iinc 1 1 [that's it :-]
Created attachment 46779 [details] test program
Consequence of fix for bug 114894. Philippe, Please check the patch. Ideally we would like to set the lastAbruptPosition to the lastAbruptPosiiton before the optimized goto, but we lost it. I chose to reset it to -1 to prevent the side effect like this VerifyError. If this is not the right value, we will have to keep a stack of abrupt positions. I will release this patch meanwhile to prevent that kind of code to fail. In the worse case we would not optimize dead code anymore.
Created attachment 47851 [details] Proposed patch
Added org.eclipse.jdt.core.tests.compiler.regression.ForStatementTest#test001
+1 for 3.2.2
Previous comment hit the wrong bug
Fixed and released in HEAD. Released for 3.3M2. Need to be backported to 3.2.2 once 3.2.1 is shipped. I leave the bug open to fix it for 3.2.2.
Clear the milestone tag till 3.2.2 is added.
Should be released in 3.2.2 only if bug 114894 is released.
Released for 3.3M3 even if it was released earlier. This is for verification purpose.
(In reply to comment #10) > Released for 3.3M3 even if it was released earlier. > This is for verification purpose. > Verify it with 3.3 M2 build is enough instead of adding this comment which is not really accurate (no change has been released for 3.3 M3) and so may be confusing... Verified for 3.3 M2 using build I20060922-0010.