changeset 22465:bc0f6b7a2b0e

Bugfix: checkcast must not be eliminated when profiling information contains a single type that fails the type check
author Christian Wimmer <christian.wimmer@oracle.com>
date Fri, 14 Aug 2015 17:30:40 -0700
parents 453c458c711e
children e56b1fd502d8
files graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java	Fri Aug 14 17:29:40 2015 -0700
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java	Fri Aug 14 17:30:40 2015 -0700
@@ -2975,7 +2975,7 @@
             } else if (profile.getNullSeen().isFalse()) {
                 object = appendNullCheck(object);
                 ResolvedJavaType singleType = profile.asSingleType();
-                if (singleType != null) {
+                if (singleType != null && resolvedType.isAssignableFrom(singleType)) {
                     LogicNode typeCheck = append(TypeCheckNode.create(singleType, object));
                     if (typeCheck.isTautology()) {
                         checkCastNode = object;