-
Bug
-
Resolution: Fixed
-
P4
-
15.0.8
The 15u backport of JDK-8281866 uses vmIntrinsicID::_invokeBasic which is not available in 15u, and causes following error for the fastdebug configuration:
```
/ws/openjdk/jdk15u-dev/src/hotspot/share/interpreter/linkResolver.cpp:1729:21: error: use of undeclared identifier 'vmIntrinsicID'; did you mean 'vmIntrinsics'?
assert(iid == vmIntrinsicID::_invokeBasic, "%s", vmIntrinsics::name_at(iid));
^~~~~~~~~~~~~
vmIntrinsics
/ws/openjdk/jdk15u-dev/src/hotspot/share/utilities/debug.hpp:65:33: note: expanded from macro 'assert'
#define assert(p, ...) vmassert(p, __VA_ARGS__)
^
/ws/openjdk/jdk15u-dev/src/hotspot/share/utilities/debug.hpp:56:9: note: expanded from macro 'vmassert'
if (!(p)) { \
^
/ws/openjdk/jdk15u-dev/src/hotspot/share/classfile/vmSymbols.hpp:1594:7: note: 'vmIntrinsics' declared here
class vmIntrinsics: AllStatic {
^
1 error generated.
```
Suggested fix:
```
diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
index c5114b7e833..842ee1dad3d 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -1726,7 +1726,7 @@ void LinkResolver::resolve_handle_call(CallInfo& result,
if (MethodHandles::is_signature_polymorphic_intrinsic(iid)) {
// Check if method can be accessed by the referring class.
// MH.linkTo* invocations are not rewritten to invokehandle.
- assert(iid == vmIntrinsicID::_invokeBasic, "%s", vmIntrinsics::name_at(iid));
+ assert(iid == vmIntrinsics::_invokeBasic, "%s", vmIntrinsics::name_at(iid));
Klass* current_klass = link_info.current_klass();
assert(current_klass != NULL , "current_klass should not be null");
```
```
/ws/openjdk/jdk15u-dev/src/hotspot/share/interpreter/linkResolver.cpp:1729:21: error: use of undeclared identifier 'vmIntrinsicID'; did you mean 'vmIntrinsics'?
assert(iid == vmIntrinsicID::_invokeBasic, "%s", vmIntrinsics::name_at(iid));
^~~~~~~~~~~~~
vmIntrinsics
/ws/openjdk/jdk15u-dev/src/hotspot/share/utilities/debug.hpp:65:33: note: expanded from macro 'assert'
#define assert(p, ...) vmassert(p, __VA_ARGS__)
^
/ws/openjdk/jdk15u-dev/src/hotspot/share/utilities/debug.hpp:56:9: note: expanded from macro 'vmassert'
if (!(p)) { \
^
/ws/openjdk/jdk15u-dev/src/hotspot/share/classfile/vmSymbols.hpp:1594:7: note: 'vmIntrinsics' declared here
class vmIntrinsics: AllStatic {
^
1 error generated.
```
Suggested fix:
```
diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
index c5114b7e833..842ee1dad3d 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -1726,7 +1726,7 @@ void LinkResolver::resolve_handle_call(CallInfo& result,
if (MethodHandles::is_signature_polymorphic_intrinsic(iid)) {
// Check if method can be accessed by the referring class.
// MH.linkTo* invocations are not rewritten to invokehandle.
- assert(iid == vmIntrinsicID::_invokeBasic, "%s", vmIntrinsics::name_at(iid));
+ assert(iid == vmIntrinsics::_invokeBasic, "%s", vmIntrinsics::name_at(iid));
Klass* current_klass = link_info.current_klass();
assert(current_klass != NULL , "current_klass should not be null");
```