This avoids generating a write barrier for code that appears in the
Go1.14beta1 runtime package in (*pageAlloc).sysGrow:
s.summary[l] = s.summary[l][:needIdxLimit]
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/213558
From-SVN: r279962
-d0a102eea2262e3fca89b1eb342fd03328c4aa16
+86d223eaccecff72b44cd23a014bc028b658055e
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
bu->operand()));
}
+ Array_index_expression* aie = a->array_index_expression();
+ if (aie != NULL)
+ {
+ Array_index_expression* bie = b->array_index_expression();
+ return (aie->end() == NULL
+ && bie->end() == NULL
+ && Expression::is_same_variable(aie->array(), bie->array())
+ && Expression::is_same_variable(aie->start(), bie->start()));
+ }
+
+ Numeric_constant aval;
+ if (a->numeric_constant_value(&aval))
+ {
+ Numeric_constant bval;
+ if (b->numeric_constant_value(&bval))
+ return aval.equals(bval);
+ }
+
return false;
}