--- old/src/share/vm/gc/g1/g1RemSet.cpp 2016-04-06 17:17:22.478383644 +0200 +++ new/src/share/vm/gc/g1/g1RemSet.cpp 2016-04-06 17:17:22.342383643 +0200 @@ -223,7 +223,7 @@ _g1rs(g1h->g1_rem_set()), _into_cset_dcq(into_cset_dcq) {} - bool do_card_ptr(jbyte* card_ptr, uint worker_i) { + bool do_card_ptr(volatile jbyte* card_ptr, uint worker_i) { // The only time we care about recording cards that // contain references that point into the collection set // is during RSet updating within an evacuation pause. @@ -366,11 +366,11 @@ // into the collection set, if we're checking for such references; // false otherwise. -bool G1RemSet::refine_card(jbyte* card_ptr, uint worker_i, +bool G1RemSet::refine_card(volatile jbyte* card_ptr, uint worker_i, bool check_for_refs_into_cset) { assert(_g1->is_in_exact(_ct_bs->addr_for(card_ptr)), "Card at " PTR_FORMAT " index " SIZE_FORMAT " representing heap at " PTR_FORMAT " (%u) must be in committed heap", - p2i(card_ptr), + p2i((jbyte*)card_ptr), _ct_bs->index_for(_ct_bs->addr_for(card_ptr)), p2i(_ct_bs->addr_for(card_ptr)), _g1->addr_to_region(_ct_bs->addr_for(card_ptr)));