RFR: 8336103: Sharper checks for <init> and <clinit> initializers
Aleksey Shipilev
shade at openjdk.org
Thu Jul 11 08:49:12 UTC 2024
All around Hotspot, we have calls to `method->is_initializer()`. That method test for both instance and static initializers. In many cases, the uses imply we actually want to test for constructor (instance initializer), not static initializer. Sometimes we filter explicitly for `!m->is_static()`, sometimes we don't. Often we get lucky by never being exposed to static initializers on particular paths.
I would like to sharpen this. I went back and forth, and ultimately decided to remove `is_initializer` completely to avoid future confusion, and rewrite the uses appropriately.
Additional testing:
- [x] Linux AArch64 server fastdebug, `all` (includes Fuzzer and CTW tests)
-------------
Commit messages:
- Minor touchups
- Relax MemberName, accept clinit as Method
- Fix
Changes: https://git.openjdk.org/jdk/pull/20120/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20120&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8336103
Stats: 46 lines in 15 files changed: 10 ins; 17 del; 19 mod
Patch: https://git.openjdk.org/jdk/pull/20120.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/20120/head:pull/20120
PR: https://git.openjdk.org/jdk/pull/20120
More information about the graal-dev
mailing list