8168774: Polymorhic signature method check crashes javac

Check for polysig method assumes arity is greater than zero

Reviewed-by: vromero
This commit is contained in:
Maurizio Cimadamore 2016-10-26 15:41:25 +01:00
parent 47f7c2e668
commit 12e8fccd6c
2 changed files with 13 additions and 1 deletions

View file

@ -1004,7 +1004,7 @@ public class Types {
List<Type> argtypes = msym.type.getParameterTypes();
return (msym.flags_field & NATIVE) != 0 &&
(msym.owner == syms.methodHandleType.tsym || msym.owner == syms.varHandleType.tsym) &&
argtypes.tail.tail == null &&
argtypes.length() == 1 &&
argtypes.head.hasTag(TypeTag.ARRAY) &&
((ArrayType)argtypes.head).elemtype.tsym == syms.objectType.tsym;
}

View file

@ -0,0 +1,12 @@
/*
* @test
* @bug 8168774
* @summary Polymorhic signature method check crashes javac
* @compile -Xmodule:java.base BadPolySig.java
*/
package java.lang.invoke;
class MethodHandle {
native Object m();
}