compiler: write barrier check nil-check policy tweak

Tweak the recipe for generating writeBarrier loads to insure that the
dereference expr is marked as not requiring a nil check (not needed
for gccgo, but needed for gollvm).

Fixes https://gcc.gnu.org/PR89368

Change-Id: If057f1359c3e3e78612abc33d605d9e6908ec21c
Reviewed-on: https://go-review.googlesource.com/c/162904
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/go/wb.cc b/go/wb.cc
index 04619d3..1d12269 100644
--- a/go/wb.cc
+++ b/go/wb.cc
@@ -904,7 +904,8 @@
   ref = Expression::make_unary(OPERATOR_AND, ref, loc);
   ref = Expression::make_cast(unsafe_pointer_type, ref, loc);
   ref = Expression::make_cast(puint32_type, ref, loc);
-  ref = Expression::make_unary(OPERATOR_MULT, ref, loc);
+  ref = Expression::make_dereference(ref,
+                                     Expression::NIL_CHECK_NOT_NEEDED, loc);
   Expression* zero = Expression::make_integer_ul(0, ref->type(), loc);
   Expression* cond = Expression::make_binary(OPERATOR_EQEQ, ref, zero, loc);