8256046: Shenandoah: Mix-in NULL_PTR in non-strong ShLRBNode's type

Reviewed-by: roland, shade
diff --git a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp
index 5ea607c..ed9c9b5 100644
--- a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp
+++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp
@@ -2945,7 +2945,12 @@
   if (t == TypePtr::NULL_PTR) {
     return t;
   }
-  return t->is_oopptr();
+
+  if (kind() == ShenandoahBarrierSet::AccessKind::NORMAL) {
+    return t;
+  }
+
+  return t->meet(TypePtr::NULL_PTR);
 }
 
 const Type* ShenandoahLoadReferenceBarrierNode::Value(PhaseGVN* phase) const {
@@ -2957,8 +2962,11 @@
     return t2;
   }
 
-  const Type* type = t2->is_oopptr();
-  return type;
+  if (kind() == ShenandoahBarrierSet::AccessKind::NORMAL) {
+    return t2;
+  }
+
+  return t2->meet(TypePtr::NULL_PTR);
 }
 
 Node* ShenandoahLoadReferenceBarrierNode::Identity(PhaseGVN* phase) {