< prev index next >
src/hotspot/share/classfile/verifier.cpp
Print this page
@@ -1628,10 +1628,16 @@
// pass FALSE, operand can't be an array type for getfield/putfield.
verify_field_instructions(
&bcs, ¤t_frame, cp, false, CHECK_VERIFY(this));
no_control_flow = false; break;
case Bytecodes::_withfield :
+ if (!EnableValhalla) {
+ verify_error(ErrorContext::bad_code(bci),
+ "The withfield instruction in class %s requires option -XX:+EnableValhalla",
+ _klass->external_name());
+ return;
+ }
if (_klass->major_version() < VALUETYPE_MAJOR_VERSION) {
class_format_error(
"withfield not supported by this class file version (%d.%d), class %s",
_klass->major_version(), _klass->minor_version(), _klass->external_name());
return;
@@ -1674,10 +1680,16 @@
current_frame.push_stack(type, CHECK_VERIFY(this));
no_control_flow = false; break;
}
case Bytecodes::_defaultvalue :
{
+ if (!EnableValhalla) {
+ verify_error(ErrorContext::bad_code(bci),
+ "The defaultvalue instruction in class %s requires option -XX:+EnableValhalla",
+ _klass->external_name());
+ return;
+ }
if (_klass->major_version() < VALUETYPE_MAJOR_VERSION) {
class_format_error(
"defaultvalue not supported by this class file version (%d.%d), class %s",
_klass->major_version(), _klass->minor_version(), _klass->external_name());
return;
< prev index next >