diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cmd/6g/Makefile | 6 | ||||
-rw-r--r-- | src/cmd/6g/galign.c (renamed from src/cmd/6g/align.c) | 0 | ||||
-rw-r--r-- | src/cmd/6g/ggen.c (renamed from src/cmd/6g/gen.c) | 0 | ||||
-rw-r--r-- | src/cmd/6g/gobj.c (renamed from src/cmd/6g/obj.c) | 0 | ||||
-rw-r--r-- | src/cmd/gc/walk.c | 9 |
5 files changed, 9 insertions, 6 deletions
diff --git a/src/cmd/6g/Makefile b/src/cmd/6g/Makefile index 4d2b6ab97..d4bb7c4b4 100644 --- a/src/cmd/6g/Makefile +++ b/src/cmd/6g/Makefile @@ -15,9 +15,9 @@ HFILES=\ OFILES=\ list.$O\ - obj.$O\ - align.$O\ - gen.$O\ + gobj.$O\ + galign.$O\ + ggen.$O\ cgen.$O\ gsubr.$O\ peep.$O\ diff --git a/src/cmd/6g/align.c b/src/cmd/6g/galign.c index fa7315057..fa7315057 100644 --- a/src/cmd/6g/align.c +++ b/src/cmd/6g/galign.c diff --git a/src/cmd/6g/gen.c b/src/cmd/6g/ggen.c index 1b7505e61..1b7505e61 100644 --- a/src/cmd/6g/gen.c +++ b/src/cmd/6g/ggen.c diff --git a/src/cmd/6g/obj.c b/src/cmd/6g/gobj.c index e990d661d..e990d661d 100644 --- a/src/cmd/6g/obj.c +++ b/src/cmd/6g/gobj.c diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c index 8b4fc40f2..e20f0c75c 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c @@ -3970,9 +3970,11 @@ structlit(Node *n, Node *var) r = listfirst(&saver, &n->left); if(r != N && r->op == OEMPTY) r = N; + if(r == N) + return var; mixflag = 0; - if(r != N && r->op == OKEY) { + if(r->op == OKEY) { a = nod(OAS, var, N); addtop = list(addtop, a); goto loop2; @@ -4050,11 +4052,11 @@ arraylit(Node *n, Node *var) r = N; while(r != N) { - b++; if(r->op == OKEY) { evconst(r->left); b = nonnegconst(r->left); } + b++; if(b > ninit) ninit = b; r = listnext(&saver); @@ -4064,7 +4066,8 @@ arraylit(Node *n, Node *var) if(b == -100) { // flag for [...] b = ninit; - t = shallow(t); + if(var == N) + t = shallow(t); t->bound = b; } |