RFR: 8318811: Compiler directives parser swallows a character after line comments

Volker Simonis simonis at openjdk.org
Wed Oct 25 11:53:45 UTC 2023


Currently, the following valid compiler directive file:

[{
  match: "*::*",
  c2: { Exclude: true } // c1 only for startup
}]

will be rejected by the parser:

Syntax error on line 4 byte 2: Expected value separator or object end (one of ',}').
  At ']'.
}]

Parsing of compiler directives failed


This is because `JSON::skip_line_comment()`, in contradiction to its specification, does **not** "*return the first token after the line comment without consuming it*" but does consumes it.

The fix is trivial:

--- a/src/hotspot/share/utilities/json.cpp
+++ b/src/hotspot/share/utilities/json.cpp
@@ -580,7 +580,7 @@ u_char JSON::skip_line_comment() {
     return 0;
   }
   next();
-  return next();
+  return peek();
 }

-------------

Commit messages:
 - 8318811: Compiler directives parser swallows a character after line comments

Changes: https://git.openjdk.org/jdk/pull/16359/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16359&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8318811
  Stats: 21 lines in 2 files changed: 20 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/16359.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16359/head:pull/16359

PR: https://git.openjdk.org/jdk/pull/16359


More information about the hotspot-dev mailing list