RFR: 8174050: Compilation errors with clang-4.0
Martin Buchholz
martinrb at google.com
Thu Aug 24 02:33:54 UTC 2017
during ad hoc testing I saw the crash below, so this assert needs more work
(but great job on the error reporting here!)
[2017-08-23 19:29:22,374] Agent[0]: stdout: # To suppress the following
error report, specify this argument
[2017-08-23 19:29:22,390] Agent[0]: stdout: # after -XX: or in .hotspotrc:
SuppressErrorAt=/loopPredicate.cpp:915
[2017-08-23 19:29:22,391] Agent[0]: stdout: #
[2017-08-23 19:29:22,392] Agent[0]: stdout: # A fatal error has been
detected by the Java Runtime Environment:
[2017-08-23 19:29:22,399] Agent[0]: stdout: #
[2017-08-23 19:29:22,400] Agent[0]: stdout: # Internal Error
(/home/martin/ws/jdk10-clang-4.0/hotspot/src/share/vm/opto/loopPredicate.cpp:915),
pid=31347, tid=31367
[2017-08-23 19:29:22,400] Agent[0]: stdout: # assert(rng->Opcode() ==
Op_LoadRange || _igvn.type(rng)->is_int()->_lo >= 0) failed: must be
On Wed, Aug 23, 2017 at 5:48 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com
> wrote:
> I submitted pre-integration testing.
>
> Vladimir
>
>
> On 8/23/17 5:02 PM, Martin Buchholz wrote:
>
>> I assume I need a sponsor; if so, please import
>> http://cr.openjdk.java.net/~martin/webrevs/openjdk10/pointer
>> -sign-comparison/pointer-sign-comparison.patch
>>
>> On Wed, Aug 23, 2017 at 4:46 PM, Vladimir Kozlov <
>> vladimir.kozlov at oracle.com
>>
>>> wrote:
>>>
>>
>> Looks good to me.
>>>
>>> Thanks,
>>> Vladimir
>>>
>>> On 8/23/17 4:37 PM, Martin Buchholz wrote:
>>>
>>> Thanks, Vladimir.
>>>> Webrev regenerated.
>>>>
>>>> I blindly coded
>>>>
>>>> - assert(rng->Opcode() == Op_LoadRange || _igvn.type(rng)->is_int() >=
>>>> 0,
>>>> "must be");
>>>> + assert(rng->Opcode() == Op_LoadRange || _igvn.type(rng)->is_int()->_lo
>>>>
>>>>> = 0, "must be");
>>>>>
>>>>
>>>>
>>>>
>>>> On Wed, Aug 23, 2017 at 3:39 PM, Vladimir Kozlov <
>>>> vladimir.kozlov at oracle.com <mailto:vladimir.kozlov at oracle.com>> wrote:
>>>>
>>>> Thank you, Martin
>>>>
>>>> Yes, sign compare is bad for pointers.
>>>>
>>>> Note, for pointers compare with use NULL instead of 0. Please, use
>>>> NULL.
>>>>
>>>> The assert check in loopPredicate.cpp is simple missing reference
>>>> to
>>>> field _lo (low bound of values range):
>>>>
>>>> _igvn.type(rng)->is_int()->_lo >= 0
>>>>
>>>> Please, fix it this way.
>>>>
>>>> Thanks,
>>>> Vladimir
>>>>
>>>>
>>>> On 8/23/17 2:25 PM, Martin Buchholz wrote:
>>>>
>>>> https://bugs.openjdk.java.net/browse/JDK-8174050
>>>> <https://bugs.openjdk.java.net/browse/JDK-8174050>
>>>> http://cr.openjdk.java.net/~martin/webrevs/openjdk10/pointer
>>>> -sign-comparison/
>>>> <http://cr.openjdk.java.net/~martin/webrevs/openjdk10/pointe
>>>> r-sign-comparison/>
>>>>
>>>> My webrev could go in as is, but better would be for someone to
>>>> figure out
>>>> the intent of the nonsensical assert in
>>>>
>>>> src/share/vm/opto/loopPredicate.cpp
>>>>
>>>> (There is more to be done to support clang, but this is enough
>>>> to build
>>>> openjdk without patching source)
>>>>
>>>>
>>>>
>>>>
More information about the hotspot-dev
mailing list