Integrated: 8345580: Remove const from Node::_idx which is modified
Yagmur Eren
duke at openjdk.org
Wed Jan 8 15:17:58 UTC 2025
On Mon, 9 Dec 2024 15:16:32 GMT, Yagmur Eren <duke at openjdk.org> wrote:
> `Node::_idx` is declared as `const`, however, it is modified by `Node::set_idx`. Please see: https://github.com/openjdk/jdk/blob/166c12771d9d8c466e73a9490c4eb1fc9a5f6c24/src/hotspot/share/opto/node.hpp#L588
>
> As already stated in [JDK-8345580](https://bugs.openjdk.org/browse/JDK-8345580) issue, this behavior is counterintuitive because a const variable is expected to remain unmodified throughout its lifetime. Additionally, C++ International Standard states that "_...any attempt to modify a `const` object during its lifetime results in undefined behavior._ ".
> To address this, `const` should be removed from the declaration of `Node::_idx` to align with its intended use and avoid violating the C++ standard. Tested with tier1,2,3,4,5.
This pull request has now been integrated.
Changeset: ae3fc464
Author: Yagmur Eren <yagmur.eren at oracle.com>
Committer: Emanuel Peter <epeter at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/ae3fc464563ad1ba59883ccf60d235b42f5ad7fa
Stats: 3 lines in 1 file changed: 0 ins; 1 del; 2 mod
8345580: Remove const from Node::_idx which is modified
Reviewed-by: epeter, qamai
-------------
PR: https://git.openjdk.org/jdk/pull/22646
More information about the hotspot-compiler-dev
mailing list