RFR: 8166651: OrderAccess::load_acquire &etc should have const parameters
Kim Barrett
kim.barrett at oracle.com
Thu May 25 19:51:32 UTC 2017
> On May 25, 2017, at 7:43 AM, coleen.phillimore at oracle.com wrote:
>
> Looks good.
> Coleen
Thanks.
>
> On 5/25/17 4:44 AM, David Holmes wrote:
>> Hi Kim,
>>
>> On 25/05/2017 9:42 AM, Kim Barrett wrote:
>>> Please review this change to Atomic::load and OrderAccess::load_acquire
>>> overloads to make their source const qualified, e.g. instead of
>>> "volatile T*" make them "const volatile T*". This eliminates the need
>>> for casting away const when, for example, applying one of these
>>> operations to a member variable when in a const-qualified method.
>>
>> This looks quite reasonable - thanks - provided ...
>>
>>> There are probably places that previously required casting away const
>>> but now do not. Similarly, there are probably places where values
>>
>> ... our compilers do not complain about unnecessary casts :)
>>
>> Cheers,
>> David
>>
>>
>>> couldn't be const or member functions couldn't be const qualified, but
>>> now can be. I did a little searching and found a few candidates, but
>>> none that were otherwise trivial to add to this change, so haven't
>>> included any.
>>>
>>> This change touches platform-specific code for non-Oracle supported
>>> platforms that I can't test, so I'd like reviews from the respective
>>> platform owners.
>>>
>>> Aside regarding aarch64: I don't know why gcc's __atomic_load doesn't
>>> const-qualify the source argument; that seems like a bug. Or maybe
>>> they are, but not documented that way. And I wonder why the aarch64
>>> port uses __atomic_load rather than __atomic_load_n.
>>>
>>> CR:
>>> https://bugs.openjdk.java.net/browse/JDK-8166651
>>>
>>> Webrev:
>>> http://cr.openjdk.java.net/~kbarrett/8166651/hotspot.00
>>>
>>> Testing:
>>> JPRT
More information about the hotspot-dev
mailing list