diff options
author | R?my Oudompheng <oudomphe@phare.normalesup.org> | 2013-01-12 09:16:50 +0100 |
---|---|---|
committer | R?my Oudompheng <oudomphe@phare.normalesup.org> | 2013-01-12 09:16:50 +0100 |
commit | 882798490507b1e2b3a010b841cca1fb50278ffe (patch) | |
tree | 9024673fcdb4f5bddaf7da2f03ce5fce466188dc /src/cmd/5c | |
parent | e0521776264d97fee7f06e1e49fb1209893d0b0c (diff) | |
download | go-882798490507b1e2b3a010b841cca1fb50278ffe.tar.gz |
cmd/5c: fix handling of side effects when assigning a struct literal.
Also undo revision a5b96b602690 used to workaround the bug.
Fixes issue 4643.
R=rsc, golang-dev, dave, minux.ma, lucio.dere, bradfitz
CC=golang-dev
https://codereview.appspot.com/7090043
Diffstat (limited to 'src/cmd/5c')
-rw-r--r-- | src/cmd/5c/cgen.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cmd/5c/cgen.c b/src/cmd/5c/cgen.c index 9e74f515b..5ff4f633d 100644 --- a/src/cmd/5c/cgen.c +++ b/src/cmd/5c/cgen.c @@ -950,9 +950,9 @@ sugen(Node *n, Node *nn, int32 w) case OSTRUCT: /* - * rewrite so lhs has no fn call + * rewrite so lhs has no side effect. */ - if(nn != Z && nn->complex >= FNX) { + if(nn != Z && side(nn)) { nod1 = *n; nod1.type = typ(TIND, n->type); regret(&nod2, &nod1); |