[lworld] Suspicious FlatArrayKlass creations

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: P3
    • repo-valhalla
    • Affects Version/s: repo-valhalla
    • Component/s: hotspot

      I am just throwing out issues right now, it is very possible that a fix can address multiple of these at once.

      If I add these to lworld, running compiler tests will crash the VM:

      diff --git a/src/hotspot/share/oops/flatArrayKlass.cpp b/src/hotspot/share/oops/flatArrayKlass.cpp
      index dc91a0156c2..47c6d19923e 100644
      --- a/src/hotspot/share/oops/flatArrayKlass.cpp
      +++ b/src/hotspot/share/oops/flatArrayKlass.cpp
      @@ -34,6 +34,7 @@
       #include "memory/oopFactory.hpp"
       #include "memory/resourceArea.hpp"
       #include "memory/universe.hpp"
      +#include "oops/arrayKlass.hpp"
       #include "oops/arrayKlass.inline.hpp"
       #include "oops/arrayOop.hpp"
       #include "oops/flatArrayKlass.hpp"
      @@ -102,6 +103,16 @@ FlatArrayKlass* FlatArrayKlass::allocate_klass(Klass* eklass, ArrayProperties pr

         InlineKlass* element_klass = InlineKlass::cast(eklass);
         assert(element_klass->must_be_atomic() || (!AlwaysAtomicAccesses), "Atomic by-default");
      + if (ArrayKlass::is_null_restricted(props)) {
      + if (ArrayKlass::is_non_atomic(props)) {
      + assert(element_klass->has_non_atomic_layout(), "no layout");
      + } else {
      + assert(element_klass->has_atomic_layout(), "no layout");
      + }
      + } else {
      + assert(!ArrayKlass::is_non_atomic(props), "nullable arrays must be atomic");
      + assert(element_klass->has_nullable_atomic_layout(), "no layout");
      + }

         // Eagerly allocate the direct array supertype.
         Klass* super_klass = nullptr;

            Assignee:
            Quan Anh Mai
            Reporter:
            Quan Anh Mai
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: