summaryrefslogtreecommitdiff
path: root/src/cmd/5c
diff options
context:
space:
mode:
authorR?my Oudompheng <oudomphe@phare.normalesup.org>2013-01-12 09:16:50 +0100
committerR?my Oudompheng <oudomphe@phare.normalesup.org>2013-01-12 09:16:50 +0100
commit882798490507b1e2b3a010b841cca1fb50278ffe (patch)
tree9024673fcdb4f5bddaf7da2f03ce5fce466188dc /src/cmd/5c
parente0521776264d97fee7f06e1e49fb1209893d0b0c (diff)
downloadgo-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.c4
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);