8078436: java/util/stream/boottest/java/util/stream/UnorderedTest.java crashed with an assert in ifnode.cpp
Summary: bad assert in fold_compares code
Reviewed-by: kvn, vlivanov
--- a/hotspot/src/share/vm/opto/ifnode.cpp Tue May 12 10:27:50 2015 +0200
+++ b/hotspot/src/share/vm/opto/ifnode.cpp Tue May 12 09:41:12 2015 +0200
@@ -834,10 +834,10 @@
swap(lo_type, hi_type);
swap(lo_test, hi_test);
- assert((this_bool->_test.is_less() && proj->_con) ||
- (this_bool->_test.is_greater() && !proj->_con), "incorrect test");
+ assert((dom_bool->_test.is_less() && proj->_con) ||
+ (dom_bool->_test.is_greater() && !proj->_con), "incorrect test");
// this test was canonicalized
- assert(dom_bool->_test.is_less() && !fail->_con, "incorrect test");
+ assert(this_bool->_test.is_less() && !fail->_con, "incorrect test");
cond = (hi_test == BoolTest::le || hi_test == BoolTest::gt) ? BoolTest::gt : BoolTest::ge;