Avoid some GCC 10.X warnings in HotSpot

Ioi Lam ioi.lam at oracle.com
Wed Jul 8 18:32:18 UTC 2020



On 7/8/20 11:04 AM, Kim Barrett wrote:
>> On Jul 8, 2020, at 8:35 AM, Koichi Sakata <sakatakui at oss.nttdata.com> wrote:
>>
>> I fixed my patch because it had unnecessary code that was pointed before.
>> I would appreciate if anyone could sponsor this patch.

I can sponsor the patch. I un-edited the line that assigns _body[0] to 
minimize the delta.

diff -r c29c9012c0ed src/hotspot/share/oops/symbol.cpp
--- a/src/hotspot/share/oops/symbol.cpp    Tue Jul 07 23:11:13 2020 -0700
+++ b/src/hotspot/share/oops/symbol.cpp    Wed Jul 08 11:25:48 2020 -0700
@@ -52,9 +52,7 @@
    _hash_and_refcount =  pack_hash_and_refcount((short)os::random(), 
refcount);
    _length = length;
    _body[0] = 0;  // in case length == 0
-  for (int i = 0; i < length; i++) {
-    byte_at_put(i, name[i]);
-  }
+  memcpy(_body, name, length);
  }


> What about this unaddressed comment?
>
>> On Jul 7, 2020, at 10:36 AM, Kim Barrett <kim.barrett at oracle.com> wrote:
>> However, the first two elements of _body are used by identity_hash().
>> That seems like a possible reason to force initialization of both
>> elements, which currently isn't done for length == 1.  But maybe it
>> doesn't matter that identity_hash isn't consistent between processes,
>> in which case forcing the initialization of _body[0] also shouldn't
>> be needed.
> I think it’s a waste to initialize _body[0] or a bug to not initialize _body[1].
> I’ve no idea which.
>
I think this should be done in a separate RFE. I filed
https://bugs.openjdk.java.net/browse/JDK-8249087
Symbol constructor unnecessarily initializes _body[0]

Thanks
- Ioi


More information about the hotspot-runtime-dev mailing list