Skip to content

8336080: Fix -Wzero-as-null-pointer-constant warnings in ClassLoaderStats ctor #20109

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

kimbarrett
Copy link

@kimbarrett kimbarrett commented Jul 10, 2024

Please review this change to member initializers in the ClassLoaderStats
constructor.

The initial value for members of pointer type are changed from 0 to nullptr.

The initializers for members of oop type are changed from a value of 0 to
using value initialization. In debug builds this calls the provided default
ctor for the (debug-only) oop class, which initialized the underlying value to
nullptr. In release builds (where oop is a type alias for oopDesc*) this is a
zero initialization of the pointer-typed member, but without triggering
-Wzero-as-null-pointer-constant warnings.

Testing: mach5 tier1


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issue

  • JDK-8336080: Fix -Wzero-as-null-pointer-constant warnings in ClassLoaderStats ctor (Enhancement - P4)

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/20109/head:pull/20109
$ git checkout pull/20109

Update a local copy of the PR:
$ git checkout pull/20109
$ git pull https://git.openjdk.org/jdk.git pull/20109/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 20109

View PR using the GUI difftool:
$ git pr show -t 20109

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/20109.diff

Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented Jul 10, 2024

👋 Welcome back kbarrett! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented Jul 10, 2024

@kimbarrett This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8336080: Fix -Wzero-as-null-pointer-constant warnings in ClassLoaderStats ctor

Reviewed-by: dholmes, iwalulya

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 63 new commits pushed to the master branch:

  • 88eff4c: 8336421: ciMethod() constructor should use ConditionalMutexLocker(Compile_lock)
  • c99be35: 8336474: Problemlist compiler/interpreter/Test6833129 on x86_32
  • 419cc46: 8335533: OutOfMemoryError: Metaspace observed again on AIX in test RedefineLeakThrowable.java after JDK-8294960
  • 8feabc8: 8334057: JLinkReproducibleTest.java support receive test.tool.vm.opts
  • bc7cd42: 8314498: [macos] Transferring File objects to Finder fails
  • c8a95a7: 8072701: resume001 failed due to ERROR: timeout for waiting for a BreakpintEvent
  • 388fcf0: 8336349: Fix more simple -Wzero-as-null-pointer-constant warnings in C2 code
  • ab27aca: 8336297: C2: Fix -Wzero-as-null-pointer-constant warnings in derived Node ctors
  • 9dfcd75: 8334121: Anonymous class capturing two enclosing instances fails to compile
  • 000de30: 8335269: [Graal] occasional timeout in java/lang/StringBuffer/TestSynchronization.java with loom
  • ... and 53 more: https://git.openjdk.org/jdk/compare/a44b60c8c14ad998e51239f48e64779304aaac50...master

As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the rfr Pull request is ready for review label Jul 10, 2024
@openjdk
Copy link

openjdk bot commented Jul 10, 2024

@kimbarrett The following label will be automatically applied to this pull request:

  • hotspot-runtime

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added the hotspot-runtime hotspot-runtime-dev@openjdk.org label Jul 10, 2024
@mlbridge
Copy link

mlbridge bot commented Jul 10, 2024

Webrevs

Comment on lines +86 to +87
_class_loader(),
_parent(),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are these not initialized with nullptr given we have code like:

(cls._class_loader == nullptr ? ...)

?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would work to do so, though I kind of wish otherwise.

I wish one wrote

(cls._class_loader == oop() ? ...)

and

_class_loader = oop();

instead of

_class_loader = nullptr;

but I think that ship sailed a long time ago. Instead we have some really questionable conversions
available in the (debug-only) oop class. Maybe we can trim those down a bit now that we consistently
use nullptr and can use std::nullptr_t as an overload type. Maybe I'll take a look at that sometime.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry missed this update. Thanks for explanation. I'm okay with things as they stand here.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Jul 16, 2024
@kimbarrett
Copy link
Author

Thanks for reviews @dholmes-ora and @walulyai

@kimbarrett
Copy link
Author

/integrate

@openjdk
Copy link

openjdk bot commented Jul 16, 2024

Going to push as commit 59bf3d7.
Since your change was applied there have been 63 commits pushed to the master branch:

  • 88eff4c: 8336421: ciMethod() constructor should use ConditionalMutexLocker(Compile_lock)
  • c99be35: 8336474: Problemlist compiler/interpreter/Test6833129 on x86_32
  • 419cc46: 8335533: OutOfMemoryError: Metaspace observed again on AIX in test RedefineLeakThrowable.java after JDK-8294960
  • 8feabc8: 8334057: JLinkReproducibleTest.java support receive test.tool.vm.opts
  • bc7cd42: 8314498: [macos] Transferring File objects to Finder fails
  • c8a95a7: 8072701: resume001 failed due to ERROR: timeout for waiting for a BreakpintEvent
  • 388fcf0: 8336349: Fix more simple -Wzero-as-null-pointer-constant warnings in C2 code
  • ab27aca: 8336297: C2: Fix -Wzero-as-null-pointer-constant warnings in derived Node ctors
  • 9dfcd75: 8334121: Anonymous class capturing two enclosing instances fails to compile
  • 000de30: 8335269: [Graal] occasional timeout in java/lang/StringBuffer/TestSynchronization.java with loom
  • ... and 53 more: https://git.openjdk.org/jdk/compare/a44b60c8c14ad998e51239f48e64779304aaac50...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label Jul 16, 2024
@openjdk openjdk bot closed this Jul 16, 2024
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Jul 16, 2024
@openjdk
Copy link

openjdk bot commented Jul 16, 2024

@kimbarrett Pushed as commit 59bf3d7.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

@kimbarrett kimbarrett deleted the ClassLoaderStats branch July 16, 2024 17:53
@mlbridge
Copy link

mlbridge bot commented Jul 16, 2024

Mailing list message from Flauber on hotspot-runtime-dev:

how to unsubscribe? Please help!

On Tue, Jul 16, 2024 at 2:56?PM Kim Barrett <kbarrett at openjdk.org> wrote:

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-runtime-dev/attachments/20240716/4f854b82/attachment.htm>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hotspot-runtime hotspot-runtime-dev@openjdk.org integrated Pull request has been integrated
Development

Successfully merging this pull request may close these issues.

3 participants