Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8020307

Hotspot compilation error with latest Studio compiler (def of "oop")

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • None
    • 8
    • hotspot
    • None

      After 8017578 is fixed, come errors of the form:

      "/export/drchase/jdk8tl-full/hotspot/src/share/vm/oops/klass.hpp", line 452: Error: Initializing const volatile oop& requires an lvalue.
      "/export/drchase/jdk8tl-full/hotspot/src/share/vm/oops/klass.hpp", line 452: Error: Formal argument o of type const volatile oop& in call to oop::oop(const volatile oop&) is being passed oop.
      "/export/drchase/jdk8tl-full/hotspot/src/share/vm/runtime/handles.hpp", line 69: Error: Initializing const volatile oop& requires an lvalue.
      "/export/drchase/jdk8tl-full/hotspot/src/share/vm/runtime/handles.hpp", line 69: Error: Formal argument o of type const volatile oop& in call to oop::oop(const volatile oop&) is being passed oop.
      ...
      Compilation aborted, too many Error messages.

      This is caused by:
      ...
      #define CHECK_UNHANDLED_OOPS
      ...
      in oopsHierarchy.hpp:
      class oop {
      ...
       oop(const volatile oop& o) { set_obj(o.obj()); }
       oop(const void* p) { set_obj(p); }

      and in klass.hpp:
       virtual oop klass_holder() const { return class_loader(); }

      or in handles.hpp:
      class Handle VALUE_OBJ_CLASS_SPEC {
      private:
       oop* _handle;

      protected:
       oop obj() const { return _handle == NULL ? (oop)NULL : *_handle; }

      Note that this code is all supposed to work when an oop is merely

      typedef class oopDesc* oop;

            Unassigned Unassigned
            drchase David Chase (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: