changeset 21409:da314a015aac

Bugfix: Join of alwaysNull and nonNull is the empty stamp.
author Roland Schatz <roland.schatz@oracle.com>
date Mon, 18 May 2015 10:34:10 +0200
parents 32ca2353accf
children 84b3d688ea83
files graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/AbstractPointerStamp.java
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/AbstractPointerStamp.java	Sun May 17 20:47:04 2015 -0700
+++ b/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/AbstractPointerStamp.java	Mon May 18 10:34:10 2015 +0200
@@ -61,7 +61,11 @@
         AbstractPointerStamp other = (AbstractPointerStamp) stamp;
         boolean joinNonNull = this.nonNull || other.nonNull;
         boolean joinAlwaysNull = this.alwaysNull || other.alwaysNull;
-        return copyWith(joinNonNull, joinAlwaysNull);
+        if (joinNonNull && joinAlwaysNull) {
+            return empty();
+        } else {
+            return copyWith(joinNonNull, joinAlwaysNull);
+        }
     }
 
     @Override