RFR: 8257420: Zero VM build broken with clang after JDK-8256726 due to strlen() is not a constexpr [v2]

Aleksey Shipilev shade at openjdk.java.net
Mon Nov 30 15:13:57 UTC 2020


On Mon, 30 Nov 2020 15:04:10 GMT, Jie Fu <jiefu at openjdk.org> wrote:

>> Hi all,
>> 
>> The newly added STATIC_ASSERT [1] breaks the build of Zero VM with clang.
>> It complains that 'non-type template argument is not a constant expression' since strlen() [2] is not a constexpr.
>> 
>> Any comments?
>> 
>> Thanks.
>> Best regards,
>> Jie
>> 
>> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/interpreter/zero/bytecodeInterpreter.cpp#L1374
>> [2] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/runtime/flags/jvmFlagLookup.hpp#L42
>
> Jie Fu has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - Remove STATIC_ASSERT
>  - Revert changes

src/hotspot/share/interpreter/zero/bytecodeInterpreter.cpp line 1375:

> 1373:       const int add_len = 32;                                                  \
> 1374:       /* Two integers, the additional message, and the null-terminator */      \
> 1375:       char message[2 * jintAsStringSize + add_len + 1];                        \

Sorry for another nit. Since `STATIC_ASSERT` is gone, we can inline `add_len`, and make the whole thing `+ 33`.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1518


More information about the hotspot-runtime-dev mailing list