Summary: | Finally handling inconsistent when compiling to class/executable | ||
---|---|---|---|
Product: | gcc | Reporter: | Jonathan Hogg <jdh41> |
Component: | java | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gcc-bugs, java-prs |
Priority: | P2 | ||
Version: | 4.0.0 | ||
Target Milestone: | 4.3.0 | ||
Host: | i486-linux | Target: | i486-linux |
Build: | i486-linux | Known to work: | |
Known to fail: | Last reconfirmed: | 2005-05-22 14:07:15 | |
Bug Depends on: | 28067 | ||
Bug Blocks: |
Description
Jonathan Hogg
2005-02-07 19:15:51 UTC
This also affects 3.3. The code for the wtf() method forgets to call the finally handler: 0: iload_0 1: ifeq 7 4: iconst_1 5: ireturn 6: pop 7: iconst_0 8: ireturn I investigated this some more. The code generator for "return" looks at the finally stack to decide whether to call any finally handlers. But, the code generator for "try" has a special case when the finally clause cannot complete normally. This confuses the "return" handler. One fix would be to turn off this optimization. All gcj front end bugs have been fixed by the gcj-eclipse branch merge. I'm mass-closing the affected PRs. If you believe one of these was closed in error, please reopen it with a note explaining why. Thanks. |