re PR go/89368 (ICE in go/gofrontend/expressions.cc:4669 after r268923)
PR go/89368 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 Reviewed-on: https://go-review.googlesource.com/c/162904 From-SVN: r268948
This commit is contained in:
parent
879f9d0b2f
commit
dd66d9d71d
2 changed files with 3 additions and 2 deletions
|
@ -1,4 +1,4 @@
|
|||
0563f2d018cdb2cd685c254bac5ceb38396d0a27
|
||||
1a74b8a22b2ff7f430729aa87ecb8cea7b5cdd70
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
|
|
@ -904,7 +904,8 @@ Gogo::check_write_barrier(Block* enclosing, Statement* without,
|
|||
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);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue