--- old/src/share/vm/gc/cms/concurrentMarkSweepGeneration.hpp 2016-09-20 11:59:16.082110760 +0200 +++ new/src/share/vm/gc/cms/concurrentMarkSweepGeneration.hpp 2016-09-20 11:59:15.978110756 +0200 @@ -540,7 +540,7 @@ // Overflow list of grey objects, threaded through mark-word // Manipulated with CAS in the parallel/multi-threaded case. - oop _overflow_list; + oopDesc* volatile _overflow_list; // The following array-pair keeps track of mark words // displaced for accommodating overflow list above. // This code will likely be revisited under RFE#4922830. --- old/src/share/vm/gc/cms/parNewGeneration.hpp 2016-09-20 11:59:16.742110790 +0200 +++ new/src/share/vm/gc/cms/parNewGeneration.hpp 2016-09-20 11:59:16.642110785 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -323,7 +323,7 @@ // A list of from-space images of to-be-scanned objects, threaded through // klass-pointers (klass information already copied to the forwarded // image.) Manipulated with CAS. - oop _overflow_list; + oopDesc* volatile _overflow_list; NOT_PRODUCT(ssize_t _num_par_pushes;) // This closure is used by the reference processor to filter out @@ -383,7 +383,7 @@ NOT_PRODUCT(bool should_simulate_overflow();) // Accessor for overflow list - oop overflow_list() { return _overflow_list; } + oop overflow_list() { return oop(_overflow_list); } // Push the given (from-space) object on the global overflow list. void push_on_overflow_list(oop from_space_obj, ParScanThreadState* par_scan_state);