RFR: 8262295: C2: Out-of-Bounds Array Load from Clone Source [v2]
Richard Reingruber
rrich at openjdk.java.net
Thu Mar 18 09:59:42 UTC 2021
On Wed, 17 Mar 2021 16:43:30 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
>> Richard Reingruber has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Changes based on feedback from Vladimir K.
>
> src/hotspot/share/opto/memnode.cpp line 536:
>
>> 534: ArrayCopyNode* ac = find_array_copy_clone(phase, ld_alloc, mem);
>> 535: if (ac != NULL) {
>> 536: Node* ld_addp = in(MemNode::Address);
>
> I think you need to check (ld_addp->is_AddP()) as at line #560.
Ok, I've added the check.
> src/hotspot/share/opto/memnode.cpp line 541:
>
>> 539: const TypeAryPtr* ary_t = phase->type(src)->isa_aryptr();
>> 540:
>> 541: if (ary_t != NULL) {
>
> Needs Comment explaining what code does.
Ok, I've added a few lines of comment. Let me know if you think something's still missing.
> test/hotspot/jtreg/compiler/arraycopy/TestOutOfBoundsArrayLoad.java line 39:
>
>> 37: * @build sun.hotspot.WhiteBox
>> 38: * @run driver jdk.test.lib.helpers.ClassFileInstaller sun.hotspot.WhiteBox
>> 39: * @run main/othervm -XX:+UseSerialGC -Xmx128m
>
> Add `* @requires vm.gc.Serial` to avoid conflict when testing env specifies different GC.
Done. Good you spotted this.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2708
More information about the hotspot-compiler-dev
mailing list