RFR: 8224851: AArch64: fix warnings and errors with Clang and GCC 8.3
Kim Barrett
kim.barrett at oracle.com
Fri May 31 21:02:10 UTC 2019
> On May 31, 2019, at 4:46 PM, Kim Barrett <kim.barrett at oracle.com> wrote:
>
>> On May 31, 2019, at 12:11 AM, Nick Gasson <Nick.Gasson at arm.com> wrote:
>>
>> /home/nicgas01/jdk/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp:259:34: note: in instantiation of function template specialization 'Atomic::add<unsigned long, char *>' requested here
>> char* touch_addr = Atomic::add(actual_chunk_size, &_cur_addr) - actual_chunk_size;
>> ^
> […]
> If I'm reading the gcc documentation for __sync_add_and_fetch
> correctly, I think the following (completely untested) should work,
> and won't cause Andrew to (I think rightly) complain about
> type-punning reinterpret_casts.
>
> Though I wonder if this is a clang bug. (See below.)
>
> […]
> The bug description says this warning only arises with clang. It
> seems like clang is overdoing that as-if, and treating it literally as
> uintptr_t all the way through to the result type.
Or don’t change the code at all here, and say that clang is not (currently) a supported
compiler for this platform.
More information about the build-dev
mailing list