RFR: 8374582: [REDO] Move input validation checks to Java for java.lang.StringCoding intrinsics
Christian Hagedorn
chagedorn at openjdk.org
Tue Jan 27 09:33:03 UTC 2026
On Tue, 20 Jan 2026 09:06:27 GMT, Volkan Yazici <vyazici at openjdk.org> wrote:
>> It is true that they do pretty much the same thing ("avoid" C2 optimisations for checks) but I'd argue they are semantically slightly different: one prevents optimisations where we know the value cannot be null, the other where we know the value is in range. We could actually have only one class (e.g. with a `positive` flag like before) but I'm not sure it would be a cleaner/nicer solution. 🤔
>
> Fair enough — I was just curious.
I was about to ask the same question. It seems like both `OpaqueNotNullNode` and `OpaqueGuardNode` behave the same apart from eventually folding to a false or true constant. They might have slightly different reasons for adding them but AFAIU, they are both intended to keep control and data in sync. Apart from duplicating most of the logic and comments, an additional challenge with having both nodes is that we need to special case both nodes at various points in the code which makes it more complex and raises the question if we could really observe them both or not (would not be a problem when only having one node type).
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29164#discussion_r2731057975
More information about the security-dev
mailing list