- changed status to resolved
Broken bytecode when using preincrement expression via accessor
Issue #277
resolved
ExtendJ 8.1.0-27-gcd7effa Java SE 5
The following test generates bad bytecode:
public class Test { public static void main(String[] args) { Loop loop = new Test().new Loop(); System.out.println(loop.run(100)); } private int count = 1; class Loop { public int run(int num) { int sum = 0; while (count < num) { sum += count * count; ++count; } return sum; } } }
Expected result: should print 328350
.
Actual result: fails to run due to a verification error:
[junit] [FAIL] runTest[run/while_04](tests.extendj.TestJava7) [junit] Error output files differ expected:<[]> but was:<[Exception in thread "main" java.lang.VerifyError: (class: Test$Loop, method: run signature: (I)I) Inconsistent stack height 1 != 0 [junit] at Test.main(Test.java:3)]>
Comments (1)
-
reporter - Log in to comment
Fix missing pop after preincrement/predecrement
fixes
#277(bitbucket)→ <<cset 99d73bf85658>>