mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-19 18:44:38 +02:00
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:
parent
47f7c2e668
commit
12e8fccd6c
2 changed files with 13 additions and 1 deletions
|
@ -1004,7 +1004,7 @@ public class Types {
|
||||||
List<Type> argtypes = msym.type.getParameterTypes();
|
List<Type> argtypes = msym.type.getParameterTypes();
|
||||||
return (msym.flags_field & NATIVE) != 0 &&
|
return (msym.flags_field & NATIVE) != 0 &&
|
||||||
(msym.owner == syms.methodHandleType.tsym || msym.owner == syms.varHandleType.tsym) &&
|
(msym.owner == syms.methodHandleType.tsym || msym.owner == syms.varHandleType.tsym) &&
|
||||||
argtypes.tail.tail == null &&
|
argtypes.length() == 1 &&
|
||||||
argtypes.head.hasTag(TypeTag.ARRAY) &&
|
argtypes.head.hasTag(TypeTag.ARRAY) &&
|
||||||
((ArrayType)argtypes.head).elemtype.tsym == syms.objectType.tsym;
|
((ArrayType)argtypes.head).elemtype.tsym == syms.objectType.tsym;
|
||||||
}
|
}
|
||||||
|
|
12
langtools/test/tools/javac/meth/BadPolySig.java
Normal file
12
langtools/test/tools/javac/meth/BadPolySig.java
Normal 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();
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue