]> Cypherpunks repositories - gostls13.git/commitdiff
gc: fix build on Plan 9
authorLucio De Re <lucio.dere@gmail.com>
Mon, 29 Aug 2011 13:35:04 +0000 (09:35 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 29 Aug 2011 13:35:04 +0000 (09:35 -0400)
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
https://golang.org/cl/4964046

16 files changed:
src/cmd/gc/bits.c
src/cmd/gc/closure.c
src/cmd/gc/dcl.c
src/cmd/gc/gen.c
src/cmd/gc/go.h
src/cmd/gc/lex.c
src/cmd/gc/mparith2.c
src/cmd/gc/obj.c
src/cmd/gc/pgen.c
src/cmd/gc/range.c
src/cmd/gc/reflect.c
src/cmd/gc/sinit.c
src/cmd/gc/subr.c
src/cmd/gc/swt.c
src/cmd/gc/typecheck.c
src/cmd/gc/walk.c

index ed695e9087e3ea83cb2390034c3eab122519f0fd..2d102adbfc328523c515445abdcdcdd05ccc38cc 100644 (file)
@@ -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));
        }
index af42685564331d740a1cc07bb7c600603540b744..d29e8cbc287ab17344dd754ebe736ff04617a805 100644 (file)
@@ -59,7 +59,6 @@ closurebody(NodeList *body)
                body = list1(nod(OEMPTY, N, N));
 
        func = curfn;
-       l = func->dcl;
        func->nbody = body;
        funcbody(func);
 
index 315f291a637333c8cd95d47a9f65343aef0eab3d..0ad696f46bb7d358a23f2e37b65bc8c8e9bf478c 100644 (file)
@@ -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");
index bc2ea33d7aa203a3e30d322c66ccde0fe751817d..7dbe2c4cb8524e07e7a37826f3dff9b447828b14 100644 (file)
@@ -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) {
index ecd48ea6bbf2b60afab0717302473abd1f6554e8..2459e538ec4be64afddbc2dfde7a8a1bb227f525 100644 (file)
@@ -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*
index 3fba453839e1b1f3ab8eae866eb878d789f1d546..c0aea9095a1a988553e9f1e94a4b374ae1de5000 100644 (file)
@@ -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') {
index 16eb4abaa27927150ef7d4f3f41edf6e21d173c6..71cc29c99a1c256789ef06d4a3fdf188bd21a89e 100644 (file)
@@ -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);
index 23b5e03b0d0b4110916a35ffe7f2883019a223fc..ef5c3214d459e8ec18d76ddda63571a55dbcae7a 100644 (file)
@@ -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);
index 78288e2223f4b640551602747c1691acb9c7103a..53aa83b149c2b05b5c0b4cdfcd685d09c7b3abb7 100644 (file)
@@ -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);
 
index 26edf8c3a7cd9251f6f48c3e184bae6852686747..bb22d234c5d2e2bcec9058980bc1eb5661f8ad80 100644 (file)
@@ -113,8 +113,6 @@ walkrange(Node *n)
        }
 
        v1 = n->list->n;
-       hv1 = N;
-
        v2 = N;
        if(n->list->next)
                v2 = n->list->next->n;
index 4daa1499b8dc7cf174ee1b22c17a7dc3cd167877..045a2aa275e90a3d018174bf96573d903f1d31ff 100644 (file)
@@ -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
index 58fa5b9ec4c2c5410e932f9fe15c5b88f2a23684..1b92781b5276012a1f565d77614bdb9b0776053c 100644 (file)
@@ -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;
index 8699b0d222f374fc8730528e76cc2ca72154d272..795c1281094b76d810c5c936b1b829c3f2811f20 100644 (file)
@@ -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++;
index 6f2028c7fca3212f4ea44d7e3ed2d0ca3ba5c695..163cdb84e262b96dcc09227f03645ce4628ef088 100644 (file)
@@ -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;
index 0f164078597217774a685f9e1def76cef7371ed1..08a69d17ccdb17b27c2f0f422608ab839056040c 100644 (file)
@@ -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;
 
index 794d65205a8997c9d6c73fc086447b3f7aabbb37..7ca7257179b40c5c400e4edc502e34e50f5a6b11 100644 (file)
@@ -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;