RFR: 8360281: VMError::error_string has incorrect format usage

Stefan Karlsson stefank at openjdk.org
Mon Jun 23 18:22:32 UTC 2025


On Mon, 23 Jun 2025 12:55:24 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:

> Please review this trivial change to VMError::error_string, applying the `p2i`
> helper function to a pointer being used as the value for a PTR_FORMAT directive.
> 
> Testing: mach5 tier1
> Locally tested with gcc printf warnings enabled for jio_snprintf, and verified
> the warning for the changed call is no longer present.

But why didn't the compiler complain about this? If we send this format string and args through UL we do get an error:

    log_info(gc)("%s (0x%x) at pc=" PTR_FORMAT ", pid=%d, tid=%zu",
                 signame, _id, _pc,
                 os::current_process_id(), os::current_thread_id());


/Users/stefank/git/jdk/open/src/hotspot/share/utilities/vmError.cpp:268:32: error: format specifies type 'unsigned long' but the argument has type 'address' (aka 'unsigned char *') [-Werror,-Wformat]
                 signame, _id, _pc,

-------------

PR Comment: https://git.openjdk.org/jdk/pull/25935#issuecomment-2997462691


More information about the hotspot-dev mailing list