diff options
author | Lucio De Re <lucio.dere@gmail.com> | 2011-08-29 09:35:04 -0400 |
---|---|---|
committer | Lucio De Re <lucio.dere@gmail.com> | 2011-08-29 09:35:04 -0400 |
commit | ee28a0b914be1bc69733723bc775166474e87445 (patch) | |
tree | 0201e65f83dab662f36007df26230fa73dd33538 | |
parent | 34dce78a18c03737ee761626d153a018c09ce505 (diff) | |
download | go-ee28a0b914be1bc69733723bc775166474e87445.tar.gz |
gc: fix build on Plan 9
gc/bits.c
. improved format with associated cast;
gc/closure.c
gc/dcl.c
gc/range.c
gc/reflect.c
gc/sinit.c
. dropped unnecessary assignments;
gc/gen.c
. dropped unnecessary assignment;
. added static qualifier to local function definition;
gc/go.h
. added varargck pragmas;
gc/lex.c
. used {} instead of ; in if statement to suppress warning;
. replaced exit(0) with exits(0);
. added compilation conditions for SIGBUS/SIGSEGV;
. dropped unnecessary assignment;
gc/mparith2.c
. dropped four unnecessary assignments/initialisations;
gc/obj.c
. added type cast to local pointer;
gc/pgen.c
. added cast and related print format;
gc/subr.c
. replaced exit(1) with exits("error");
. replaced unlink() with remove();
. renamed local cistrmp() as ucistrmp() to remove conflict with
Plan 9 function by the same name;
gc/swt.c
. added braces instead of ; as empty statment;
gc/typecheck.c
. added static qualifier to local function definition;
. dropped unnecessary assignments;
gc/walk.c
. dropped unnecessary assignments;
. added static qualifier to local function definitions;
R=rsc
CC=golang-dev
http://codereview.appspot.com/4964046
Committer: Russ Cox <rsc@golang.org>
-rw-r--r-- | src/cmd/gc/bits.c | 2 | ||||
-rw-r--r-- | src/cmd/gc/closure.c | 1 | ||||
-rw-r--r-- | src/cmd/gc/dcl.c | 3 | ||||
-rw-r--r-- | src/cmd/gc/gen.c | 3 | ||||
-rw-r--r-- | src/cmd/gc/go.h | 20 | ||||
-rw-r--r-- | src/cmd/gc/lex.c | 14 | ||||
-rw-r--r-- | src/cmd/gc/mparith2.c | 4 | ||||
-rw-r--r-- | src/cmd/gc/obj.c | 2 | ||||
-rw-r--r-- | src/cmd/gc/pgen.c | 2 | ||||
-rw-r--r-- | src/cmd/gc/range.c | 2 | ||||
-rw-r--r-- | src/cmd/gc/reflect.c | 1 | ||||
-rw-r--r-- | src/cmd/gc/sinit.c | 2 | ||||
-rw-r--r-- | src/cmd/gc/subr.c | 14 | ||||
-rw-r--r-- | src/cmd/gc/swt.c | 4 | ||||
-rw-r--r-- | src/cmd/gc/typecheck.c | 8 | ||||
-rw-r--r-- | src/cmd/gc/walk.c | 10 |
16 files changed, 53 insertions, 39 deletions
diff --git a/src/cmd/gc/bits.c b/src/cmd/gc/bits.c index ed695e908..2d102adbf 100644 --- a/src/cmd/gc/bits.c +++ b/src/cmd/gc/bits.c @@ -155,7 +155,7 @@ Qconv(Fmt *fp) else { fmtprint(fp, var[i].sym->name); if(var[i].offset != 0) - fmtprint(fp, "%+d", var[i].offset); + fmtprint(fp, "%+lld", (vlong)var[i].offset); } bits.b[i/32] &= ~(1L << (i%32)); } diff --git a/src/cmd/gc/closure.c b/src/cmd/gc/closure.c index af4268556..d29e8cbc2 100644 --- a/src/cmd/gc/closure.c +++ b/src/cmd/gc/closure.c @@ -59,7 +59,6 @@ closurebody(NodeList *body) body = list1(nod(OEMPTY, N, N)); func = curfn; - l = func->dcl; func->nbody = body; funcbody(func); diff --git a/src/cmd/gc/dcl.c b/src/cmd/gc/dcl.c index 315f291a6..0ad696f46 100644 --- a/src/cmd/gc/dcl.c +++ b/src/cmd/gc/dcl.c @@ -730,7 +730,6 @@ stotype(NodeList *l, int et, Type **t, int funarg) for(; l; l=l->next) { n = l->n; lineno = n->lineno; - note = nil; if(n->op != ODCLFIELD) fatal("stotype: oops %N\n", n); @@ -1141,8 +1140,6 @@ addmethod(Sym *sf, Type *t, int local) Type *f, *d, *pa; Node *n; - pa = nil; - // get field sym if(sf == S) fatal("no method symbol"); diff --git a/src/cmd/gc/gen.c b/src/cmd/gc/gen.c index bc2ea33d7..7dbe2c4cb 100644 --- a/src/cmd/gc/gen.c +++ b/src/cmd/gc/gen.c @@ -317,7 +317,6 @@ gen(Node *n) if(n == N) goto ret; - p3 = pc; // save pc for loop labels if(n->ninit) genlist(n->ninit); @@ -576,7 +575,7 @@ cgen_callmeth(Node *n, int proc) /* * generate code to start new proc running call n. */ -void +static void cgen_proc(Node *n, int proc) { switch(n->left->op) { diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h index ecd48ea6b..2459e538e 100644 --- a/src/cmd/gc/go.h +++ b/src/cmd/gc/go.h @@ -1308,3 +1308,23 @@ void zname(Biobuf *b, Sym *s, int t); void data(void); void text(void); +#pragma varargck type "A" int +#pragma varargck type "B" Mpint* +#pragma varargck type "D" Addr* +#pragma varargck type "lD" Addr* +#pragma varargck type "E" int +#pragma varargck type "F" Mpflt* +#pragma varargck type "J" Node* +#pragma varargck type "L" int +#pragma varargck type "L" uint +#pragma varargck type "N" Node* +#pragma varargck type "O" uint +#pragma varargck type "P" Prog* +#pragma varargck type "Q" Bits +#pragma varargck type "R" int +#pragma varargck type "S" Sym* +#pragma varargck type "lS" Sym* +#pragma varargck type "T" Type* +#pragma varargck type "lT" Type* +#pragma varargck type "Y" char* +#pragma varargck type "Z" Strlit* diff --git a/src/cmd/gc/lex.c b/src/cmd/gc/lex.c index 3fba45383..c0aea9095 100644 --- a/src/cmd/gc/lex.c +++ b/src/cmd/gc/lex.c @@ -65,7 +65,7 @@ yy_isalnum(int c) #define isalpha use_yy_isalpha_instead_of_isalpha #define isalnum use_yy_isalnum_instead_of_isalnum -#define DBG if(!debug['x']);else print +#define DBG if(!debug['x']){}else print enum { EOF = -1, @@ -92,7 +92,7 @@ usage(void) print(" -u disable package unsafe\n"); print(" -w print the parse tree after typing\n"); print(" -x print lex tokens\n"); - exit(0); + exits(0); } void @@ -115,9 +115,11 @@ main(int argc, char *argv[]) int i, c; NodeList *l; char *p; - + +#ifdef SIGBUS signal(SIGBUS, fault); signal(SIGSEGV, fault); +#endif localpkg = mkpkg(strlit("")); localpkg->prefix = "\"\""; @@ -163,7 +165,7 @@ main(int argc, char *argv[]) case 'V': print("%cg version %s\n", thechar, getgoversion()); - exit(0); + exits(0); } ARGEND if(argc < 1) @@ -311,7 +313,7 @@ main(int argc, char *argv[]) errorexit(); flusherrors(); - exit(0); + exits(0); return 0; } @@ -681,7 +683,6 @@ l0: ep = lexbuf+sizeof lexbuf; *cp++ = c; c = c1; - c1 = 0; goto casedot; } if(c1 == '.') { @@ -1072,7 +1073,6 @@ talph: return s->lexical; tnum: - c1 = 0; cp = lexbuf; ep = lexbuf+sizeof lexbuf; if(c != '0') { diff --git a/src/cmd/gc/mparith2.c b/src/cmd/gc/mparith2.c index 16eb4abaa..71cc29c99 100644 --- a/src/cmd/gc/mparith2.c +++ b/src/cmd/gc/mparith2.c @@ -351,6 +351,7 @@ mporfixfix(Mpint *a, Mpint *b) int i; long x, *a1, *b1; + x = 0; if(a->ovf || b->ovf) { yyerror("ovf in mporfixfix"); mpmovecfix(a, 0); @@ -385,6 +386,7 @@ mpandfixfix(Mpint *a, Mpint *b) int i; long x, *a1, *b1; + x = 0; if(a->ovf || b->ovf) { yyerror("ovf in mpandfixfix"); mpmovecfix(a, 0); @@ -419,6 +421,7 @@ mpandnotfixfix(Mpint *a, Mpint *b) int i; long x, *a1, *b1; + x = 0; if(a->ovf || b->ovf) { yyerror("ovf in mpandnotfixfix"); mpmovecfix(a, 0); @@ -453,6 +456,7 @@ mpxorfixfix(Mpint *a, Mpint *b) int i; long x, *a1, *b1; + x = 0; if(a->ovf || b->ovf) { yyerror("ovf in mporfixfix"); mpmovecfix(a, 0); diff --git a/src/cmd/gc/obj.c b/src/cmd/gc/obj.c index 23b5e03b0..ef5c3214d 100644 --- a/src/cmd/gc/obj.c +++ b/src/cmd/gc/obj.c @@ -270,7 +270,7 @@ stringsym(char *s, int len) tmp.lit.len = len; memmove(tmp.lit.s, s, len); tmp.lit.s[len] = '\0'; - snprint(namebuf, sizeof(namebuf), "\"%Z\"", &tmp); + snprint(namebuf, sizeof(namebuf), "\"%Z\"", &tmp.lit); pkg = gostringpkg; } sym = pkglookup(namebuf, pkg); diff --git a/src/cmd/gc/pgen.c b/src/cmd/gc/pgen.c index 78288e222..53aa83b14 100644 --- a/src/cmd/gc/pgen.c +++ b/src/cmd/gc/pgen.c @@ -117,7 +117,7 @@ compile(Node *fn) oldstksize = stksize; compactframe(ptxt); if(0) - print("compactframe: %ld to %ld\n", oldstksize, stksize); + print("compactframe: %lld to %lld\n", oldstksize, (vlong)stksize); defframe(ptxt); diff --git a/src/cmd/gc/range.c b/src/cmd/gc/range.c index 26edf8c3a..bb22d234c 100644 --- a/src/cmd/gc/range.c +++ b/src/cmd/gc/range.c @@ -113,8 +113,6 @@ walkrange(Node *n) } v1 = n->list->n; - hv1 = N; - v2 = N; if(n->list->next) v2 = n->list->next->n; diff --git a/src/cmd/gc/reflect.c b/src/cmd/gc/reflect.c index 4daa1499b..045a2aa27 100644 --- a/src/cmd/gc/reflect.c +++ b/src/cmd/gc/reflect.c @@ -586,7 +586,6 @@ dcommontype(Sym *s, int ot, Type *t) dowidth(t); - sptr = nil; if(t->sym != nil && !isptr[t->etype]) sptr = dtypesym(ptrto(t)); else diff --git a/src/cmd/gc/sinit.c b/src/cmd/gc/sinit.c index 58fa5b9ec..1b92781b5 100644 --- a/src/cmd/gc/sinit.c +++ b/src/cmd/gc/sinit.c @@ -529,6 +529,7 @@ maplit(int ctxt, Node *n, Node *var, NodeList **init) Node *vstat, *index, *value; Sym *syma, *symb; +USED(ctxt); ctxt = 0; // make the map var @@ -552,7 +553,6 @@ ctxt = 0; b++; } - t = T; if(b != 0) { // build type [count]struct { a Tindex, b Tvalue } t = n->type; diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c index 8699b0d22..795c12810 100644 --- a/src/cmd/gc/subr.c +++ b/src/cmd/gc/subr.c @@ -29,7 +29,7 @@ errorexit(void) flusherrors(); if(outfile) remove(outfile); - exit(1); + exits("error"); } extern int yychar; @@ -108,7 +108,7 @@ hcrash(void) if(debug['h']) { flusherrors(); if(outfile) - unlink(outfile); + remove(outfile); *(volatile int*)0 = 0; } } @@ -2840,10 +2840,12 @@ setmaxarg(Type *t) maxarg = w; } -/* unicode-aware case-insensitive strcmp */ +/* + * unicode-aware case-insensitive strcmp + */ static int -cistrcmp(char *p, char *q) +ucistrcmp(char *p, char *q) { Rune rp, rq; @@ -2885,7 +2887,7 @@ lookdot0(Sym *s, Type *t, Type **save, int ignorecase) c = 0; if(u->etype == TSTRUCT || u->etype == TINTER) { for(f=u->type; f!=T; f=f->down) - if(f->sym == s || (ignorecase && cistrcmp(f->sym->name, s->name) == 0)) { + if(f->sym == s || (ignorecase && ucistrcmp(f->sym->name, s->name) == 0)) { if(save) *save = f; c++; @@ -2894,7 +2896,7 @@ lookdot0(Sym *s, Type *t, Type **save, int ignorecase) u = methtype(t); if(u != T) { for(f=u->method; f!=T; f=f->down) - if(f->embedded == 0 && (f->sym == s || (ignorecase && cistrcmp(f->sym->name, s->name) == 0))) { + if(f->embedded == 0 && (f->sym == s || (ignorecase && ucistrcmp(f->sym->name, s->name) == 0))) { if(save) *save = f; c++; diff --git a/src/cmd/gc/swt.c b/src/cmd/gc/swt.c index 6f2028c7f..163cdb84e 100644 --- a/src/cmd/gc/swt.c +++ b/src/cmd/gc/swt.c @@ -867,9 +867,9 @@ typecheckswitch(Node *n) yyerror("case %+N in %T switch", ll->n, t); break; case Etype: // type switch - if(ll->n->op == OLITERAL && istype(ll->n->type, TNIL)) + if(ll->n->op == OLITERAL && istype(ll->n->type, TNIL)) { ; - else if(ll->n->op != OTYPE && ll->n->type != T) { + } else if(ll->n->op != OTYPE && ll->n->type != T) { yyerror("%#N is not a type", ll->n); // reset to original type ll->n = n->ntest->right; diff --git a/src/cmd/gc/typecheck.c b/src/cmd/gc/typecheck.c index 0f1640785..08a69d17c 100644 --- a/src/cmd/gc/typecheck.c +++ b/src/cmd/gc/typecheck.c @@ -38,7 +38,7 @@ static NodeList* typecheckdefstack; /* * resolve ONONAME to definition, if any. */ -Node* +static Node* resolve(Node *n) { Node *r; @@ -724,7 +724,7 @@ reswitch: } defaultlit(&n->right, t->type); r = n->right; - if((t = r->type) == T) + if(r->type == T) goto error; r = assignconv(r, l->type->type, "send"); // TODO: more aggressive @@ -1073,7 +1073,7 @@ reswitch: goto error; if((n->op = convertop(t, n->type, &why)) == 0) { yyerror("cannot convert %+N to type %T%s", n->left, n->type, why); - op = OCONV; + n->op = OCONV; } switch(n->op) { case OCONVNOP: @@ -2443,7 +2443,7 @@ getforwtype(Node *n) { Node *f1, *f2; - for(f1=f2=n; ; n=n->ntype) { + for(f2=n; ; n=n->ntype) { if((n = resolve(n)) == N || n->op != OTYPE) return T; diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c index 794d65205..7ca725717 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c @@ -380,14 +380,11 @@ walkexpr(Node **np, NodeList **init) fatal("missed typecheck"); } - t = T; - et = Txxx; - switch(n->op) { default: dump("walk", n); fatal("walkexpr: switch 1 unknown op %N", n); - goto ret; + break; case OTYPE: case ONONAME: @@ -1364,7 +1361,6 @@ dumptypes(Type **nl, char *what) fmtstrinit(&fmt); fmtprint(&fmt, "\t"); - l = structfirst(&savel, nl); first = 1; for(l = structfirst(&savel, nl); l != T; l = structnext(&savel)) { if(first) @@ -1745,7 +1741,7 @@ out: * then it is done first. otherwise must * make temp variables */ -NodeList* +static NodeList* reorder1(NodeList *all) { Node *f, *a, *n; @@ -1871,7 +1867,7 @@ vmatch1(Node *l, Node *r) return 0; } -NodeList* +static NodeList* reorder3(NodeList *all) { Node *n1, *n2, *q; |