Summary: | [compiler] java.lang.VerifyError: Looks similar to 60040 but is happening on current release | ||||||
---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Gary Hewett <Gary.Hewett> | ||||
Component: | Core | Assignee: | Philipe Mulet <philippe_mulet> | ||||
Status: | VERIFIED FIXED | QA Contact: | |||||
Severity: | blocker | ||||||
Priority: | P3 | CC: | Darin_Swanson | ||||
Version: | 3.0.2 | ||||||
Target Milestone: | 3.1 M7 | ||||||
Hardware: | PC | ||||||
OS: | Windows XP | ||||||
Whiteboard: | |||||||
Attachments: |
|
Description
Gary Hewett
2005-05-03 16:17:58 EDT
Created attachment 20653 [details]
Sample code which exhibits problem behaviour
Problem is also occuring identically on Mac Powerbook G4 Confirmed - I changed this line in my "real" code and things now run under Eclipse. Old: Thread.sleep(interval = interval + 100); New: interval = interval + 100; Thread.sleep(interval); Yet the "old" code both compiles and runs under the "same" jar in Windows and Mac when I run from the command line. Moving to JDT Core... Reproduced in 3.1 stream as well. Also note that: Thread.sleep(interval += 100); would work fine. Somehow one bytecode generation is losing the conversion from int to long, when optimizing "interval = interval + 100" into "interval += 100". Optimized code gen was missing extra implicit conversion on SingleNameReference. Also fixed eval side. Added AssignmentTest#test037. Fixed Verified in I20050510-0010 + JDT/Core from HEAD. |