--- old/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-12-16 11:05:44.736839785 +0100 +++ new/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-12-16 11:05:44.670837868 +0100 @@ -2763,7 +2763,7 @@ default: ShouldNotReachHere(); } - return false; // Keep some compilers happy + return false; // keep some compilers happy } HeapWord* G1CollectedHeap::top_at_mark_start(HeapRegion* hr, VerifyOption vo) { --- old/src/share/vm/gc_implementation/g1/g1InCSetState.hpp 2014-12-16 11:05:45.137851429 +0100 +++ new/src/share/vm/gc_implementation/g1/g1InCSetState.hpp 2014-12-16 11:05:45.079849745 +0100 @@ -30,6 +30,7 @@ // Per-region state during garbage collection. struct InCSetState { + private: // We use different types to represent the state value. Particularly SPARC puts // values in structs from "left to right", i.e. MSB to LSB. This results in many // unnecessary shift operations when loading and storing values of this type. @@ -75,7 +76,7 @@ #ifdef ASSERT bool is_default() const { return is_not_in_cset(); } - bool is_valid() const { return _value < Num; } + bool is_valid() const { return (_value >= Humongous) && (_value < Num); } bool is_valid_gen() const { return (_value >= Young && _value <= Old); } #endif }; --- old/src/share/vm/gc_implementation/g1/g1ParScanThreadState.hpp 2014-12-16 11:05:45.484861505 +0100 +++ new/src/share/vm/gc_implementation/g1/g1ParScanThreadState.hpp 2014-12-16 11:05:45.425859792 +0100 @@ -49,7 +49,7 @@ G1ParGCAllocator* _g1_par_allocator; ageTable _age_table; - InCSetState _dest[InCSetState::Num]; + InCSetState _dest[InCSetState::Num]; // Local tenuring threshold. uint _tenuring_threshold; G1ParScanClosure _scanner;