cmd/gc: fix racewalk after writebarrierfat was renamed to typedmemmove
Renaming the function broke the race detector since it looked for the
name, didn't find it anymore and didn't insert the necessary
instrumentation.
Change-Id: I11fed6e807cc35be5724d26af12ceff33ebf4f7b
Reviewed-on: https://go-review.googlesource.com/2661
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
diff --git a/src/cmd/gc/racewalk.c b/src/cmd/gc/racewalk.c
index c9e27fe..de9e32b 100644
--- a/src/cmd/gc/racewalk.c
+++ b/src/cmd/gc/racewalk.c
@@ -210,11 +210,12 @@
case OCALLFUNC:
// Instrument dst argument of runtime.writebarrier* calls
// as we do not instrument runtime code.
- if(n->left->sym != S && n->left->sym->pkg == runtimepkg && strncmp(n->left->sym->name, "writebarrier", 12) == 0) {
+ if(n->left->sym != S && n->left->sym->pkg == runtimepkg &&
+ (strncmp(n->left->sym->name, "writebarrier", 12) == 0 || strcmp(n->left->sym->name, "typedmemmove") == 0)) {
// Find the dst argument.
// The list can be reordered, so it's not necessary just the first or the second element.
for(l = n->list; l; l = l->next) {
- if(strcmp(n->left->sym->name, "writebarrierfat") == 0) {
+ if(strcmp(n->left->sym->name, "typedmemmove") == 0) {
if(l->n->left->xoffset == widthptr)
break;
} else {