RFR: 8314275: Incorrect stepping in switch
Aggelos Biboudis
abimpoudis at openjdk.org
Thu Feb 8 14:35:32 UTC 2024
In code like the one below, the observable effect was that if the user debugs the following method, `multiply` called with `1`, the debugger steps from line 4 to line 6 (instead of 7) giving the impression that line 6 is going to be executed. The reason is that the `LineNumberTable` did not include an entry at the end of the `switch` mapping the statement that follows, to bytecode.
1 private static double multiply(Integer i) {
2 double cr = 15;
3 cr = switch (i) {
4 case 1 -> cr * 1;
5 case 2 -> cr * 2;
6 default -> cr * 4;
7 };
8 return cr;
9 }
-------------
Commit messages:
- 8314275: Incorrect stepping in switch
Changes: https://git.openjdk.org/jdk/pull/17772/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17772&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8314275
Stats: 67 lines in 2 files changed: 67 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/17772.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/17772/head:pull/17772
PR: https://git.openjdk.org/jdk/pull/17772
More information about the compiler-dev
mailing list