RFR: 8308780: Fix the Java Integer types on Windows [v6]
Daniel Jeliński
djelinski at openjdk.org
Thu Jun 22 14:08:08 UTC 2023
On Thu, 22 Jun 2023 13:48:53 GMT, Julian Waters <jwaters at openjdk.org> wrote:
>> src/jdk.accessibility/windows/native/jaccesswalker/jaccesswalker.cpp line 547:
>>
>>> 545: snprintf( s, sizeof(s),
>>> 546: "ERROR calling GetAccessibleContextInfo; vmID = %lX, context = %p",
>>> 547: reinterpret_cast<unsigned long>(vmID), (void*)context );
>>
>> do you need this cast? I checked a few compilers and passing a signed long to "%lX" was fine with them.
>
> gcc will crash with a warning about a mismatched format specifier between signed and unsigned if this isn't done, unfortunately
Which gcc? This code compiles without warnings:
#include <stdio.h>
int main() {
unsigned long i = 1;
long j = 2;
printf("%ld %ld %lx %lx %lu %lu\n", i, j, i, j, i, j);
return 0;
}
# gcc -Wall -Wextra -Wformat=2 test.c
# gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14125#discussion_r1238581381
More information about the core-libs-dev
mailing list