This repository was archived by the owner on Sep 19, 2023. It is now read-only.
8278834: Error "Cannot read field "sym" because "this.lvar[od]" is null" when compiling #110
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For code like:
javac
crashes with:The cause is in
TransPatterns
- it tracks the current class and method, so that it can define correct owners for temporary variables. But if there's a class nested in a method, the current method field is not cleared, and consequently the temporary variables get a wrong owner (the method enclosing the class, not a method inside the current class), which then crashes subsequent phases, like Gen.The proposed fix is to clear
currentMethod
when entering a class AST node.Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk18 pull/110/head:pull/110
$ git checkout pull/110
Update a local copy of the PR:
$ git checkout pull/110
$ git pull https://git.openjdk.java.net/jdk18 pull/110/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 110
View PR using the GUI difftool:
$ git pr show -t 110
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jdk18/pull/110.diff