87 Commits

Author SHA1 Message Date
Coleen Phillimore
5179fc3488 8139163: InstanceKlass::cast passes through NULL
Reduce raw (InstanceKlass*) casts and InstanceKlass::cast, which no long allows null

Reviewed-by: twisti, kbarrett
2015-10-26 13:11:36 -04:00
Coleen Phillimore
f1e89ea4cc 8140274: methodHandles and constantPoolHandles should be passed as const references
Modified code to use const reference parameters

Reviewed-by: sspitsyn, twisti
2015-10-23 16:48:38 -04:00
Harold Seigel
df9b5759f7 8139069: JVM should throw ClassFormatError for <init> methods in interfaces
If method being parsed is in an interface, throw ClassFormatError if its name is "<init>"

Reviewed-by: acorn, lfoltan
2015-10-14 13:30:47 -04:00
Harold Seigel
d01e8e3c74 8135265: VM fails on 'empty' interface public <init>()V method with VerifyError
Don't check for calls to super() or this() fro <init>()V methods if they are in interfaces.  Because, they are not ctors.

Reviewed-by: acorn, gtriantafill
2015-09-22 14:24:31 -04:00
Harold Seigel
9d7677a83f 8130669: VM prohibits <clinit> methods with return values
Ignore <clinit> methods with return values instead of throwing ClassFormatError exceptions

Reviewed-by: acorn, iklam
2015-07-09 15:39:05 -04:00
Harold Seigel
6a5fa52c18 8076319: jstat verified class fix
Move verify perf data so that it only counts classes that actually get verified.

Reviewed-by: acorn, coleenp, gtriantafill
2015-05-29 15:23:41 -04:00
Harold Seigel
e5e17a62d1 8076318: split verifier needs to add TraceClassResolution
Add print statements to verifier when TraceClassResolution is specified

Reviewed-by: coleenp, acorn
2015-05-08 16:24:46 -04:00
Harold Seigel
257436004b 7127066: Class verifier accepts an invalid class file
For *store bytecodes, compare incoming, not outgoing, type state with exception handlers' stack maps.

Reviewed-by: acorn, dholmes
2015-03-25 08:16:48 -04:00
Harold Seigel
bbd0191aea 8075118: JVM stuck in infinite loop during verification
Keep a list of handlers to prevent the same handler from being scanned repeatedly.

Reviewed-by: dlong, dholmes
2015-03-19 08:55:50 -04:00
Yumin Qi
3bbda04f98 Merge 2015-01-27 20:02:35 -08:00
Alejandro Murillo
bbd13b5561 Merge 2015-01-22 22:42:31 -08:00
Lois Foltan
5f8b5ceaee 8067480: Crash in klassItable::initialize_itable_for_interface when running vm.runtime.defmeth.StaticMethodsTest
A static method should be skipped in entirety by find_instance_method(), searching should continue to find an overpass method of the same name and signature if present.

Reviewed-by: acorn, hseigel
2015-01-23 09:54:33 -05:00
Harold Seigel
4e980350ca 8055146: Split Verifier incorrectly throws VerifyError for getstatic of an array field
Allow fieldClass for getstatic and putstatic to be an array

Reviewed-by: dholmes, acorn
2015-01-14 08:14:23 -05:00
Harold Seigel
5b8ee4c102 8064335: Null pointer dereference in hotspot/src/share/vm/classfile/verifier.cpp
Use correct CHECK macro in call to load_class()

Reviewed-by: coleenp, lfoltan, gziemski
2014-12-30 12:59:20 -05:00
Stefan Karlsson
95704b233c 8064811: Use THREAD instead of CHECK_NULL in return statements
Reviewed-by: coleenp, simonis, dholmes
2014-11-14 09:47:09 +01:00
Harold Seigel
616b927160 8058982: Better verification of an exceptional invokespecial
Throw VerifyError for illegal accesses

Reviewed-by: acorn, ahgross, coleenp
2014-10-20 14:43:11 -04:00
Alejandro Murillo
c3b487d84f Merge 2014-10-17 07:58:54 -07:00
Aleksey Shipilev
fe03f41db8 8059924: com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java: assert(Universe::verify_in_progress() || !SafepointSynchronize::is_at_safepoint()) failed: invariant
Revive the hashcode installation in Verifier

Reviewed-by: kamg, lfoltan
2014-10-09 16:41:28 +04:00
Aleksey Shipilev
0ba4969549 8059595: Verifier::verify is wasting time before is_eligible_for_verification check
Do the check earlier.

Reviewed-by: hseigel, kamg
2014-10-02 17:13:31 +04:00
Harold Seigel
1bae14de54 8057845: ClassVerifier::verify_exception_handler_targets reconstructs the ExceptionTable in a loop
Construct the ExceptionTable only once, before the loop

Reviewed-by: acorn, jiangli, coleenp, lfoltan
2014-09-19 08:19:04 -04:00
Harold Seigel
1436d4b821 8050485: super() in a try block in a ctor causes VerifyError
Parse catch clause paths to ensure they end in throws

Reviewed-by: dlong, acorn, kamg, ctornqvi, lfoltan
2014-08-12 20:29:25 -04:00
Harold Seigel
f588cd1325 8051012: Regression in verifier for <init> method call from inside of a branch
Fix stackmap matching for branches.

Reviewed-by: coleenp, lfoltan, acorn
2014-08-02 16:28:59 -04:00
Serguei Spitsyn
b0367c3bea Merge 2014-07-18 23:53:59 -07:00
Coleen Phillimore
e051932425 Merge 2014-07-18 11:22:49 -04:00
Coleen Phillimore
3f0a945468 8004128: NPG: remove stackwalking in Threads::gc_prologue and gc_epilogue code
Remove bcx and mdx handling.  We no longer have to convert bytecode pointers to indices for GC since Methods aren't moved.

Reviewed-by: mgerdin, kvn
2014-07-17 15:45:46 -04:00
Harold Seigel
0cc38ff4d5 8043454: Test case for 8037157 should not throw a VerifyError
Don't throw VerifyError if method is NULL.

Reviewed-by: acorn, lfoltan, mschoene
2014-07-14 13:31:03 +04:00
Goetz Lindenmaier
25f33c005d 8049325: Introduce and clean up umbrella headers for the files in the cpu subdirectories
Introduce and clean up umbrella headers for the files in the cpu subdirectories.

Reviewed-by: lfoltan, coleenp, dholmes
2014-07-04 11:46:01 +02:00
Harold Seigel
f203dcbfbf 8036533: Method for correct defaults
8036156: Limit default method hierarchy

Fix protected access checks

Reviewed-by: coleenp, lfoltan, acorn, ahgross
2014-07-22 16:16:51 +04:00
Yuri Gaevsky
4f2c88d8cd 8043925: Fix typo in verifier.cpp
Fix lookupswitch

Reviewed-by: sla, coleenp
2014-05-23 16:54:01 -04:00
Yuri Gaevsky
cc3c656cf1 8025580: Temporary flags: UseNewReflection and ReflectionWrapResolutionErrors
The fix removes all UseNewReflection/ReflectionWrapResolutionErrors occurrences/logic and adds them into the list of obsolete_jvm_flags in arguments.cpp.

Reviewed-by: coleenp, hseigel
2014-05-15 17:38:50 -04:00
David Chase
305ec3bd3f 8037816: Fix for 8036122 breaks build with Xcode5/clang
Repaired or selectively disabled offending formats; future-proofed with additional checking

Reviewed-by: kvn, jrose, stefank
2014-05-09 16:50:54 -04:00
Harold Seigel
2216f41ed6 8037157: Verify <init> call
Check for null method

Reviewed-by: coleenp, acorn, mschoene
2014-05-07 19:34:48 +04:00
Harold Seigel
13d9244b49 8035119: Fix exceptions to bytecode verification
Prevent ctor calls to super() and this() from avoidable code (try blocks, if stmts, etc.)

Reviewed-by: coleenp, acorn, mschoene
2014-07-14 12:45:14 +04:00
Goetz Lindenmaier
6e6f0720a9 8042195: Introduce umbrella header orderAccess.inline.hpp
Reviewed-by: dholmes, kvn, stefank, twisti
2014-04-29 15:17:27 +02:00
Tobias Hartmann
06c26b6f97 8036956: remove EnableInvokeDynamic flag
The EnableInvokeDynamic flag and all support code is removed because it is not longer used in JDK 9.

Reviewed-by: kvn, twisti
2014-04-29 08:08:44 +02:00
Lois Foltan
8c36d0cd2b 8033150: invokestatic: IncompatibleClassChangeError trying to invoke static method from a parent in presence of conflicting defaults
A static method should be preferred during method resolution over an overpass, search the current class as well as its superclasses.

Reviewed-by: acorn, coleenp, kamg
2014-04-14 14:27:45 -04:00
Lois Foltan
28557bc30e 8026065: InterfaceMethodref for invokespecial must name a direct superinterface
Add verification to check that invokespecial of an InterfaceMethodref names a method in a direct superinterface of the current class or interface in accordance with JSR 335, JVMS 4.9.2 Structural Constraints.

Reviewed-by: acorn, hseigel, coleenp
2013-11-26 09:52:22 -05:00
Yumin Qi
7496b461e3 8025632: Remove all references to MagicLambdaImpl from Hotspot
MagicLambdaImpl was removed from jdk side, this should be done in vm side too

Reviewed-by: coleenp, hseigel, rdurbin
2013-11-13 16:24:33 -08:00
Karen Kinnear
4f064cafe6 8026365: NoClassDefinitionFound for anonymous class invokespecial
Reviewed-by: dcubed, kamg
2013-10-17 23:30:17 -04:00
Karen Kinnear
920880a243 8026022: Verifier: allow anon classes to invokespecial host class/intf methods
Reviewed-by: coleenp, bharadwaj
2013-10-08 16:58:23 -04:00
Karen Kinnear
fdf2c975ed 8023872: Verification error in generated lambda classes
Skip verification for generated lambda classes

Reviewed-by: kamg, dholmes
2013-08-30 15:15:56 -04:00
Harold Seigel
1ff22f2ed9 8016764: JVM does not prohibit invokespecial in c.f.v 51.0 that invokes default interface method in c.f.v 52.0
Check cfv before allowing invokespecial call to default method.

Reviewed-by: kamg, acorn, dholmes
2013-08-29 10:33:13 -04:00
Yumin Qi
c6aa9c656f 8003557: NPG: Klass* const k should be const Klass* k
With NPG, const KlassOop klass which is in fact a definition converted to Klass* const, which is not the original intention. The right usage is converting them to const Klass*.

Reviewed-by: coleenp, kvn
2013-05-10 08:27:30 -07:00
Bharadwaj Yadavalli
be10521e31 8011671: JCK tests on static interface methods fail under b84: Illegal type at constant pool entry 5
Restore incorrect removal of support for static interface method verification in Java 8

Reviewed-by: kvn, coleenp
2013-04-09 08:52:32 -07:00
Harold Seigel
feec2af7b4 8009595: The UseSplitVerifier option needs to be deprecated
Put UseSplitVerifier option on the deprecated list.

Reviewed-by: dcubed, kmo, acorn
2013-03-26 09:06:16 -04:00
Bharadwaj Yadavalli
0e9d409036 8009552: test/vm/verifier/TestStaticIF.java failing with hs25.0-b
Remove support for verification of class files with version 52 and above from type inference verifier.

Reviewed-by: acorn, hseigel
2013-03-25 09:36:15 -07:00
Harold Seigel
41f0004e4f 8010667: Non-zero padding is not allowed in splitverifier for tableswitch/lookupswitch instructions
Don't check the padding bits if class file version is >= 51.

Reviewed-by: kvn, dholmes, coleenp
2013-03-25 08:37:28 -04:00
Bharadwaj Yadavalli
ff4bbcd501 8007736: VerifyError for static method in interface
Reviewed-by: dholmes, acorn
2013-02-14 14:33:35 -05:00
Harold Seigel
7fee66f152 8000725: NPG: method_holder() and pool_holder() and pool_holder field should be InstanceKlass
Change types of above methods and field to InstanceKlass and remove unneeded casts from the source files.

Reviewed-by: dholmes, coleenp, zgu
2012-11-06 15:09:37 -05:00
Keith McGuigan
6563cda42b 7200776: Implement default methods in interfaces
Add generic type analysis and default method selection algorithms

Reviewed-by: coleenp, acorn
2012-10-11 12:25:42 -04:00