comparison src/share/vm/memory/cardTableModRefBS.cpp @ 17937:78bbf4d43a14

8037816: Fix for 8036122 breaks build with Xcode5/clang 8043029: Change 8037816 breaks HS build with older GCC versions which don't support diagnostic pragmas 8043164: Format warning in traceStream.hpp Summary: Backport of main fix + two corrections, enables clang compilation, turns on format attributes, corrects/mutes warnings Reviewed-by: kvn, coleenp, iveresov, twisti
author drchase
date Thu, 22 May 2014 15:52:41 -0400
parents 3205e78d8193
children 52b4284cb496 2c6ef90f030a
comparison
equal deleted inserted replaced
17935:7384f6a12fc1 17937:78bbf4d43a14
1 /* 1 /*
2 * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
136 if (TraceCardTableModRefBS) { 136 if (TraceCardTableModRefBS) {
137 gclog_or_tty->print_cr("CardTableModRefBS::CardTableModRefBS: "); 137 gclog_or_tty->print_cr("CardTableModRefBS::CardTableModRefBS: ");
138 gclog_or_tty->print_cr(" " 138 gclog_or_tty->print_cr(" "
139 " &_byte_map[0]: " INTPTR_FORMAT 139 " &_byte_map[0]: " INTPTR_FORMAT
140 " &_byte_map[_last_valid_index]: " INTPTR_FORMAT, 140 " &_byte_map[_last_valid_index]: " INTPTR_FORMAT,
141 &_byte_map[0], 141 p2i(&_byte_map[0]),
142 &_byte_map[_last_valid_index]); 142 p2i(&_byte_map[_last_valid_index]));
143 gclog_or_tty->print_cr(" " 143 gclog_or_tty->print_cr(" "
144 " byte_map_base: " INTPTR_FORMAT, 144 " byte_map_base: " INTPTR_FORMAT,
145 byte_map_base); 145 p2i(byte_map_base));
146 } 146 }
147 } 147 }
148 148
149 CardTableModRefBS::~CardTableModRefBS() { 149 CardTableModRefBS::~CardTableModRefBS() {
150 if (_covered) { 150 if (_covered) {
390 if (TraceCardTableModRefBS) { 390 if (TraceCardTableModRefBS) {
391 gclog_or_tty->print_cr("CardTableModRefBS::resize_covered_region: "); 391 gclog_or_tty->print_cr("CardTableModRefBS::resize_covered_region: ");
392 gclog_or_tty->print_cr(" " 392 gclog_or_tty->print_cr(" "
393 " _covered[%d].start(): " INTPTR_FORMAT 393 " _covered[%d].start(): " INTPTR_FORMAT
394 " _covered[%d].last(): " INTPTR_FORMAT, 394 " _covered[%d].last(): " INTPTR_FORMAT,
395 ind, _covered[ind].start(), 395 ind, p2i(_covered[ind].start()),
396 ind, _covered[ind].last()); 396 ind, p2i(_covered[ind].last()));
397 gclog_or_tty->print_cr(" " 397 gclog_or_tty->print_cr(" "
398 " _committed[%d].start(): " INTPTR_FORMAT 398 " _committed[%d].start(): " INTPTR_FORMAT
399 " _committed[%d].last(): " INTPTR_FORMAT, 399 " _committed[%d].last(): " INTPTR_FORMAT,
400 ind, _committed[ind].start(), 400 ind, p2i(_committed[ind].start()),
401 ind, _committed[ind].last()); 401 ind, p2i(_committed[ind].last()));
402 gclog_or_tty->print_cr(" " 402 gclog_or_tty->print_cr(" "
403 " byte_for(start): " INTPTR_FORMAT 403 " byte_for(start): " INTPTR_FORMAT
404 " byte_for(last): " INTPTR_FORMAT, 404 " byte_for(last): " INTPTR_FORMAT,
405 byte_for(_covered[ind].start()), 405 p2i(byte_for(_covered[ind].start())),
406 byte_for(_covered[ind].last())); 406 p2i(byte_for(_covered[ind].last())));
407 gclog_or_tty->print_cr(" " 407 gclog_or_tty->print_cr(" "
408 " addr_for(start): " INTPTR_FORMAT 408 " addr_for(start): " INTPTR_FORMAT
409 " addr_for(last): " INTPTR_FORMAT, 409 " addr_for(last): " INTPTR_FORMAT,
410 addr_for((jbyte*) _committed[ind].start()), 410 p2i(addr_for((jbyte*) _committed[ind].start())),
411 addr_for((jbyte*) _committed[ind].last())); 411 p2i(addr_for((jbyte*) _committed[ind].last())));
412 } 412 }
413 // Touch the last card of the covered region to show that it 413 // Touch the last card of the covered region to show that it
414 // is committed (or SEGV). 414 // is committed (or SEGV).
415 debug_only((void) (*byte_for(_covered[ind].last()));) 415 debug_only((void) (*byte_for(_covered[ind].last()));)
416 debug_only(verify_guard();) 416 debug_only(verify_guard();)
655 jbyte curr_val = *curr; 655 jbyte curr_val = *curr;
656 bool failed = (val_equals) ? (curr_val != val) : (curr_val == val); 656 bool failed = (val_equals) ? (curr_val != val) : (curr_val == val);
657 if (failed) { 657 if (failed) {
658 if (!failures) { 658 if (!failures) {
659 tty->cr(); 659 tty->cr();
660 tty->print_cr("== CT verification failed: ["PTR_FORMAT","PTR_FORMAT"]", start, end); 660 tty->print_cr("== CT verification failed: [" INTPTR_FORMAT "," INTPTR_FORMAT "]", p2i(start), p2i(end));
661 tty->print_cr("== %sexpecting value: %d", 661 tty->print_cr("== %sexpecting value: %d",
662 (val_equals) ? "" : "not ", val); 662 (val_equals) ? "" : "not ", val);
663 failures = true; 663 failures = true;
664 } 664 }
665 tty->print_cr("== card "PTR_FORMAT" ["PTR_FORMAT","PTR_FORMAT"], " 665 tty->print_cr("== card "PTR_FORMAT" ["PTR_FORMAT","PTR_FORMAT"], "
666 "val: %d", curr, addr_for(curr), 666 "val: %d", p2i(curr), p2i(addr_for(curr)),
667 (HeapWord*) (((size_t) addr_for(curr)) + card_size), 667 p2i((HeapWord*) (((size_t) addr_for(curr)) + card_size)),
668 (int) curr_val); 668 (int) curr_val);
669 } 669 }
670 } 670 }
671 guarantee(!failures, "there should not have been any failures"); 671 guarantee(!failures, "there should not have been any failures");
672 } 672 }
680 } 680 }
681 #endif 681 #endif
682 682
683 void CardTableModRefBS::print_on(outputStream* st) const { 683 void CardTableModRefBS::print_on(outputStream* st) const {
684 st->print_cr("Card table byte_map: [" INTPTR_FORMAT "," INTPTR_FORMAT "] byte_map_base: " INTPTR_FORMAT, 684 st->print_cr("Card table byte_map: [" INTPTR_FORMAT "," INTPTR_FORMAT "] byte_map_base: " INTPTR_FORMAT,
685 _byte_map, _byte_map + _byte_map_size, byte_map_base); 685 p2i(_byte_map), p2i(_byte_map + _byte_map_size), p2i(byte_map_base));
686 } 686 }
687 687
688 bool CardTableModRefBSForCTRS::card_will_be_scanned(jbyte cv) { 688 bool CardTableModRefBSForCTRS::card_will_be_scanned(jbyte cv) {
689 return 689 return
690 CardTableModRefBS::card_will_be_scanned(cv) || 690 CardTableModRefBS::card_will_be_scanned(cv) ||