comparison src/share/vm/classfile/verifier.cpp @ 8817:b8deb3205b51

8009552: test/vm/verifier/TestStaticIF.java failing with hs25.0-b Summary: Remove support for verification of class files with version 52 and above from type inference verifier. Reviewed-by: acorn, hseigel
author bharadwaj
date Mon, 25 Mar 2013 09:36:15 -0700
parents 729be16a470b
children 36376b540a98
comparison
equal deleted inserted replaced
8816:729be16a470b 8817:b8deb3205b51
61 # include "bytes_ppc.hpp" 61 # include "bytes_ppc.hpp"
62 #endif 62 #endif
63 63
64 #define NOFAILOVER_MAJOR_VERSION 51 64 #define NOFAILOVER_MAJOR_VERSION 51
65 #define NONZERO_PADDING_BYTES_IN_SWITCH_MAJOR_VERSION 51 65 #define NONZERO_PADDING_BYTES_IN_SWITCH_MAJOR_VERSION 51
66 #define STATIC_METHOD_IN_INTERFACE_MAJOR_VERSION 52
67 66
68 // Access to external entry for VerifyClassCodes - old byte code verifier 67 // Access to external entry for VerifyClassCodes - old byte code verifier
69 68
70 extern "C" { 69 extern "C" {
71 typedef jboolean (*verify_byte_codes_fn_t)(JNIEnv *, jclass, char *, jint); 70 typedef jboolean (*verify_byte_codes_fn_t)(JNIEnv *, jclass, char *, jint);
2319 types = 1 << JVM_CONSTANT_InvokeDynamic; 2318 types = 1 << JVM_CONSTANT_InvokeDynamic;
2320 break; 2319 break;
2321 case Bytecodes::_invokespecial: 2320 case Bytecodes::_invokespecial:
2322 types = (1 << JVM_CONSTANT_InterfaceMethodref) | 2321 types = (1 << JVM_CONSTANT_InterfaceMethodref) |
2323 (1 << JVM_CONSTANT_Methodref); 2322 (1 << JVM_CONSTANT_Methodref);
2324 break;
2325 case Bytecodes::_invokestatic:
2326 types = (_klass->major_version() < STATIC_METHOD_IN_INTERFACE_MAJOR_VERSION) ?
2327 (1 << JVM_CONSTANT_Methodref) :
2328 ((1 << JVM_CONSTANT_InterfaceMethodref) | (1 << JVM_CONSTANT_Methodref));
2329 break; 2323 break;
2330 default: 2324 default:
2331 types = 1 << JVM_CONSTANT_Methodref; 2325 types = 1 << JVM_CONSTANT_Methodref;
2332 } 2326 }
2333 verify_cp_type(bcs->bci(), index, cp, types, CHECK_VERIFY(this)); 2327 verify_cp_type(bcs->bci(), index, cp, types, CHECK_VERIFY(this));