8374446: Fix -Wzero-as-null-pointer-constant warnings in test_compressedKlass.cpp #29016
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Please review this simple change to a recently added gtest to avoid triggering
-Wzero-as-null-pointer-constant warnings when that warning is enabled.
There are two parts to the change. One is just an obvious replacement of 0
with nullptr.
The other is the removal of a gtest assertion. That assertion's predicate is
attempting to verify the CompressedKlassPointers state has been initialized.
But the test being used (null pointer <= base pointer) is technically invalid;
ordered comparisons between a pointer and null are UB. And even ignoring that,
the compiler may decide the comparison is tautologially true, or it may always
be true at runtime, because pointer comparison is treated as unsigned by at
least some compilers. It would be better done via an is_initialized() function
in CompressedKlassPointers, or use == with the initial "uninitialized" value
of -1. But we're already asserting initialization in the implementation of the
base() function, so at least in debug builds we've already verified
initialization. It doesn't seem worthwhile adding is_initialized() or breaking
through the abstraction and using -1.
Testing: mach5 tier1
Progress
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/29016/head:pull/29016$ git checkout pull/29016Update a local copy of the PR:
$ git checkout pull/29016$ git pull https://git.openjdk.org/jdk.git pull/29016/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 29016View PR using the GUI difftool:
$ git pr show -t 29016Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/29016.diff
Using Webrev
Link to Webrev Comment