Mercurial > hg > truffle
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) || |