summaryrefslogtreecommitdiff
path: root/src/cmd/gc/subr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/gc/subr.c')
-rw-r--r--src/cmd/gc/subr.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c
index 71217d8af..cf0811901 100644
--- a/src/cmd/gc/subr.c
+++ b/src/cmd/gc/subr.c
@@ -582,11 +582,6 @@ dodump(Node *n, int dep)
print("%O-ntype\n", n->op);
dodump(n->ntype, dep+1);
}
- if(n->defn != nil && n->defn->op != OAS && n->defn->op != OAS2) {
- indent(dep);
- print("%O-defn\n", n->op);
- dodump(n->defn, dep+1);
- }
if(n->list != nil) {
indent(dep);
print("%O-list\n", n->op);
@@ -597,6 +592,11 @@ dodump(Node *n, int dep)
print("%O-rlist\n", n->op);
dodumplist(n->rlist, dep+1);
}
+ if(n->nbody != nil) {
+ indent(dep);
+ print("%O-nbody\n", n->op);
+ dodumplist(n->nbody, dep+1);
+ }
}
void
@@ -2466,10 +2466,8 @@ out:
yyerror("ambiguous DOT reference %T.%S", t, s);
// rebuild elided dots
- for(c=d-1; c>=0; c--) {
- n = nod(ODOT, n, n->right);
- n->left->right = newname(dotlist[c].field->sym);
- }
+ for(c=d-1; c>=0; c--)
+ n->left = nod(ODOT, n->left, newname(dotlist[c].field->sym));
ret:
return n;
}
@@ -2705,7 +2703,7 @@ genwrapper(Type *rcvr, Type *method, Sym *newnam)
args = list(args, l->n->left);
// generate call
- call = nod(OCALL, adddot(nod(ODOT, this->left, newname(method->sym))), N);
+ call = nod(OCALL, adddot(nod(OXDOT, this->left, newname(method->sym))), N);
call->list = args;
fn->nbody = list1(call);
if(method->type->outtuple > 0) {