diff options
Diffstat (limited to 'src/cmd/gc/subr.c')
| -rw-r--r-- | src/cmd/gc/subr.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c index 681c023a0..bd53520df 100644 --- a/src/cmd/gc/subr.c +++ b/src/cmd/gc/subr.c @@ -1945,6 +1945,12 @@ safeexpr(Node *n, NodeList **init) if(n == N) return N; + if(n->ninit) { + walkstmtlist(n->ninit); + *init = concat(*init, n->ninit); + n->ninit = nil; + } + switch(n->op) { case ONAME: case OLITERAL: @@ -2673,7 +2679,7 @@ genhash(Sym *sym, Type *t) first = T; for(t1=t->type;; t1=t1->down) { if(t1 != T && (isblanksym(t1->sym) || algtype1(t1->type, nil) == AMEM)) { - if(first == T) + if(first == T && !isblanksym(t1->sym)) first = t1; continue; } @@ -2890,7 +2896,7 @@ geneq(Sym *sym, Type *t) first = T; for(t1=t->type;; t1=t1->down) { if(t1 != T && (isblanksym(t1->sym) || algtype1(t1->type, nil) == AMEM)) { - if(first == T) + if(first == T && !isblanksym(t1->sym)) first = t1; continue; } |
