< prev index next >

src/hotspot/share/opto/subnode.cpp

Print this page

        

@@ -901,10 +901,18 @@
           return TypeInt::CC_GT;
         }
       }
     }
   }
+  const TypeKlassPtr* k0 = r0->isa_klassptr();
+  const TypeKlassPtr* k1 = r1->isa_klassptr();
+  if (k0 && k1) {
+    if ((k0->flatten_array() && (!k1->can_be_value_type() || !k1->klass()->flatten_array())) ||
+        (k1->flatten_array() && (!k0->can_be_value_type() || !k0->klass()->flatten_array()))) {
+      return TypeInt::CC_GT;
+    }
+  }
 
   // Known constants can be compared exactly
   // Null can be distinguished from any NotNull pointers
   // Unknown inputs makes an unknown result
   if( r0->singleton() ) {
< prev index next >