RFR: JDK-8211073 Remove -Wno-extra from Hotspot
erik.joelsson at oracle.com
Mon Sep 24 21:07:09 UTC 2018
Build change looks ok. I will leave it for someone better versed in C++
for the code changes.
On 2018-09-24 13:31, Magnus Ihse Bursie wrote:
> The -Wextra option to gcc enables a bunch of useful warnings. 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
>  https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
More information about the hotspot-dev