RFR: JDK-8211073 Remove -Wno-extra from Hotspot
David Holmes
david.holmes at oracle.com
Thu Sep 27 14:31:39 UTC 2018
Hi Magnus,
On 27/09/2018 8:47 AM, Magnus Ihse Bursie wrote:
> Anyone from Hotspot who can review the code changes?
I had looked at this but it is unclear whether the casts are the right
fix or whether we have a poor type selection in the first place. For
example,
./share/opto/node.hpp: enum { NO_HASH = 0 };
defines NO_HASH which is implicitly treated as int but then it's used
everywhere as uint - which just seems odd.
So I'm unclear whether this needs more indepth examination by the
various code owners.
Thanks,
David
> /Magnus
>
> On 2018-09-24 22:31, Magnus Ihse Bursie wrote:
>> The -Wextra option to gcc enables a bunch of useful warnings.[1] Some
>> of them, but not all, can be individually enabled or disabled. All
>> other libraries in OpenJDK are compiled with -Wextra, but not Hotspot.
>> Enabling -Wextra on Hotspot triggers a couple of warnings for zero
>> that can be individually disabled.
>>
>> However, -Wextra also includes some check that cannot be disabled
>> individually, so to be able to add this, we must at the same time fix
>> those warnings.
>>
>> The warnings that cannot be disabled and which have been triggered in
>> Hotspot is "enumeral and non-enumeral type in conditional expression"
>> and "base class should be explicitly initialized in the copy
>> constructor". The former complains about mixing enums and integers in
>> the tertiary operator (x ? enum_val : int_val). If you think that gcc
>> is a bit too picky here, I agree. It's not obvious per se that the
>> added casts improve the code. However, this is the price we need to
>> pay to be able to enable -Wextra, and *that* is something that is
>> likely to improve the code.
>>
>> The second warning about the copy constructor is, for what I can tell,
>> a highly valid warning and the code it warned on was indeed broken. As
>> far as I can tell, in a derived copy constructor you should always
>> explicitly initialize the base class.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8211073
>> WebRev:
>> http://cr.openjdk.java.net/~ihse/JDK-8211073-remove-Wno-extra-from-hotspot/webrev.01
>>
>>
>> /Magnus
>>
>> [1] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
>>
>
More information about the hotspot-dev
mailing list