diff -r 1c21c60f51bf -r 6a0c42c40cd1 src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp --- a/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp Mon Oct 16 20:22:41 2017 +0000 +++ b/src/hotspot/share/gc/g1/g1PageBasedVirtualSpace.cpp Mon Oct 16 22:36:06 2017 -0400 @@ -251,7 +251,7 @@ virtual void work(uint worker_id) { size_t const actual_chunk_size = MAX2(chunk_size(), _page_size); while (true) { - char* touch_addr = (char*)Atomic::add_ptr((intptr_t)actual_chunk_size, (volatile void*) &_cur_addr) - actual_chunk_size; + char* touch_addr = Atomic::add(actual_chunk_size, &_cur_addr) - actual_chunk_size; if (touch_addr < _start_addr || touch_addr >= _end_addr) { break; }