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;
"/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;
- relates to
-
JDK-8017578 Hotspot compilation error with latest Studio compiler
-
- Resolved
-