diff src/share/vm/c1/c1_Optimizer.cpp @ 3792:15559220ce79

6478991: C1 NullCheckEliminator yields incorrect exceptions Reviewed-by: twisti, iveresov
author never
date Tue, 05 Jul 2011 16:07:54 -0700
parents d4c1fbc3de95
children 7bca37d28f32
line wrap: on
line diff
--- a/src/share/vm/c1/c1_Optimizer.cpp	Fri Jul 01 10:37:37 2011 -0700
+++ b/src/share/vm/c1/c1_Optimizer.cpp	Tue Jul 05 16:07:54 2011 -0700
@@ -642,7 +642,7 @@
 void NullCheckVisitor::do_NewTypeArray   (NewTypeArray*    x) { nce()->handle_NewArray(x); }
 void NullCheckVisitor::do_NewObjectArray (NewObjectArray*  x) { nce()->handle_NewArray(x); }
 void NullCheckVisitor::do_NewMultiArray  (NewMultiArray*   x) { nce()->handle_NewArray(x); }
-void NullCheckVisitor::do_CheckCast      (CheckCast*       x) {}
+void NullCheckVisitor::do_CheckCast      (CheckCast*       x) { nce()->clear_last_explicit_null_check(); }
 void NullCheckVisitor::do_InstanceOf     (InstanceOf*      x) {}
 void NullCheckVisitor::do_MonitorEnter   (MonitorEnter*    x) { nce()->handle_AccessMonitor(x); }
 void NullCheckVisitor::do_MonitorExit    (MonitorExit*     x) { nce()->handle_AccessMonitor(x); }