RFR: JDK-8202319: Fix compilation warnings in Solaris debug builds for DevStudio 12.6

David Holmes david.holmes at oracle.com
Fri Apr 27 23:25:51 UTC 2018


We discussed this offline and Gary pointed out that, at least in the 
VMError case the attempt to SEGV by dereferencing zero is one of a 
specific number of crash inducing cases, others of which include trying 
to trigger SEGV at non-zero address and explicit signal raising. So 
changing the code to raise the signal directly is not really appropriate 
- and the code in VMError knows the attempt may not result in a crash.

So I am okay with just disabling the compilation warnings for these two 
cases.

Thanks,
David

On 27/04/2018 6:59 PM, David Holmes wrote:
> On 27/04/2018 4:48 PM, Kim Barrett wrote:
>>> On Apr 27, 2018, at 2:11 AM, David Holmes <david.holmes at oracle.com> 
>>> wrote:
>>>
>>> On 27/04/2018 3:32 PM, Kim Barrett wrote:
>>>>> On Apr 26, 2018, at 6:49 PM, gary.adams at oracle.com wrote:
>>>>>
>>>>> Adding build-dev and hotspot-runtime-dev aliases.
>>>>>
>>>>> -------- Forwarded Message --------
>>>>> Subject:     RFR: JDK-8202319: Fix compilation warnings in Solaris 
>>>>> debug builds for DevStudio 12.6
>>>>> Date:     Thu, 26 Apr 2018 12:35:28 -0400
>>>>> From:     Gary Adams <gary.adams at oracle.com>
>>>>> Reply-To:     gary.adams at oracle.com
>>>>> To:     OpenJDK Serviceability <serviceability-dev at openjdk.java.net>
>>>>>
>>>>>
>>>>>
>>>>> Getting the sources ready for the next Solaris developer studio 
>>>>> toolchain.
>>>>> Some additional warnings were found in the debug build.
>>>>>
>>>>>    Issue:https://bugs.openjdk.java.net/browse/JDK-8202319
>>>>>    Webrev:http://cr.openjdk.java.net/~gadams/8202319/webrev.00/
>>>>>
>>>>> This update conditionally disables some new error checks, if the
>>>>> new toolchain is used.
>>>> I looked at these, and the warnings are correct, so just disabling 
>>>> them is a bit troubling.
>>>> The thing is, the code in both cases is attempting to intentionally 
>>>> provoke a crash.
>>>> But because the code is invoking undefined behavior, executing it 
>>>> might actually do
>>>> anything, or nothing at all.  So while suppressing the warning might 
>>>> permit compilation,
>>>> it’s not at all obvious that the compilation will produce anything 
>>>> like the desired code.
>>>> And that’s also true for platforms that aren’t warning…
>>>
>>> True. Perhaps we should just raise a SEGV directly?
>>>
>>> David
>>
>> I like that idea.
> 
> Hopefully this should work:
> 
> os::signal_raise(os::get_signal_number("SEGV"));
> 
> Cheers,
> David


More information about the build-dev mailing list