commit 273930569896197f1823f4912af4537c9c693cc0
Author:     [email protected] <[email protected]>
AuthorDate: Fri May 6 19:42:07 2016 +0100
Commit:     Roberto E. Vargas Caballero <Roberto E. Vargas Caballero>
CommitDate: Sat May 7 18:31:26 2016 +0200

    [cc1] namespacing the flags. move bitfields in node to a flag.

diff --git a/cc1/cc1.h b/cc1/cc1.h
index a9fcfe2..f1e1750 100644
--- a/cc1/cc1.h
+++ b/cc1/cc1.h
@@ -82,8 +82,7 @@ struct node {
        unsigned char op;
        Type *type;
        Symbol *sym;
-       bool lvalue : 1;
-       bool constant : 1;
+       char flags;
        struct node *left, *right;
 };
 
@@ -163,22 +162,29 @@ enum {
 
 /* symbol flags */
 enum {
-       ISAUTO     =       1,
-       ISREGISTER =       2,
-       ISDECLARED =       4,
-       ISFIELD    =       8,
-       ISEXTERN   =      16,
-       ISUSED     =      32,
-       ISCONSTANT =      64,
-       ISGLOBAL   =     128,
-       ISPRIVATE  =     256,
-       ISLOCAL    =     512,
-       ISEMITTED  =    1024,
-       ISDEFINED  =    2048,
-       ISSTRING   =    4096,
-       ISTYPEDEF  =    8192,
-       ISINITLST  =   16384,
-       HASINIT    =   32768
+       SAUTO     =       1,
+       SREGISTER =       2,
+       SDECLARED =       4,
+       SFIELD    =       8,
+       SEXTERN   =      16,
+       SUSED     =      32,
+       SCONSTANT =      64,
+       SGLOBAL   =     128,
+       SPRIVATE  =     256,
+       SLOCAL    =     512,
+       SEMITTED  =    1024,
+       SDEFINED  =    2048,
+       SSTRING   =    4096,
+       STYPEDEF  =    8192,
+       SINITLST  =   16384,
+       SHASINIT  =   32768
+};
+
+/* node flags */
+enum {
+       NLVAL   = 1,
+       NCONST  = 2,
+       NEFFECT = 4
 };
 
 /* lexer mode, compiler or preprocessor directive */
diff --git a/cc1/code.c b/cc1/code.c
index fd0fe91..5e54a4b 100644
--- a/cc1/code.c
+++ b/cc1/code.c
@@ -168,17 +168,17 @@ emitvar(Symbol *sym)
        char c;
        short flags = sym->flags;
 
-       if (flags & ISLOCAL)
+       if (flags & SLOCAL)
                c = 'T';
-       else if (flags & ISPRIVATE)
+       else if (flags & SPRIVATE)
                c =  'Y';
-       else if (flags & ISGLOBAL)
+       else if (flags & SGLOBAL)
                c = 'G';
-       else if (flags & ISREGISTER)
+       else if (flags & SREGISTER)
                c = 'R';
-       else if (flags & ISFIELD)
+       else if (flags & SFIELD)
                c = 'M';
-       else if (flags & ISEXTERN)
+       else if (flags & SEXTERN)
                c = 'X';
        else
                c = 'A';
@@ -213,7 +213,7 @@ emitsym(unsigned op, void *arg)
 {
        Node *np = arg;
 
-       if ((np->sym->flags & ISINITLST) == 0) {
+       if ((np->sym->flags & SINITLST) == 0) {
                /*
                 * When we have a compound literal we are going
                 * to call to emitnode for every element of it,
@@ -222,7 +222,7 @@ emitsym(unsigned op, void *arg)
                 */
                putchar('\t');
        }
-       (np->constant) ? emitconst(np) : emitvar(np->sym);
+       (np->flags & NCONST) ? emitconst(np) : emitvar(np->sym);
 }
 
 static void
@@ -324,11 +324,11 @@ emitdesig(Node *np, Type *tp)
                if (!np->sym)
                        goto emit_expression;
                sym = np->sym;
-               if (sym->flags & ISSTRING) {
+               if (sym->flags & SSTRING) {
                        emitstring(sym, tp);
                        return;
                }
-               if ((sym->flags & ISINITLST) == 0)
+               if ((sym->flags & SINITLST) == 0)
                        goto emit_expression;
        }
 
@@ -378,7 +378,7 @@ emitdcl(unsigned op, void *arg)
 {
        Symbol *sym = arg;
 
-       if (sym->flags & ISEMITTED)
+       if (sym->flags & SEMITTED)
                return;
        emittype(sym->type);
        emitvar(sym);
@@ -389,10 +389,10 @@ emitdcl(unsigned op, void *arg)
        }
        emitletter(sym->type);
        printf("\t\"%s", (sym->name) ? sym->name : "");
-       if (sym->flags & ISFIELD)
+       if (sym->flags & SFIELD)
                printf("\t#%c%llX", sizettype->letter, sym->u.i);
-       sym->flags |= ISEMITTED;
-       if ((sym->flags & HASINIT) == 0)
+       sym->flags |= SEMITTED;
+       if ((sym->flags & SHASINIT) == 0)
                putchar('\n');
 }
 
@@ -467,7 +467,7 @@ node(unsigned op, Type *tp, Node *lp, Node *rp)
        np->op = op;
        np->type = tp;
        np->sym = NULL;
-       np->constant = np->lvalue = 0;
+       np->flags = 0;
        np->left = lp;
        np->right = rp;
 
@@ -482,8 +482,7 @@ varnode(Symbol *sym)
 
        np = node(OSYM, sym->type, NULL, NULL);
        np->type = sym->type;
-       np->lvalue = tp->op != FTN && tp->op != ARY;
-       np->constant = 0;
+       np->flags = (tp->op != FTN && tp->op != ARY) ? NLVAL : 0;
        np->sym = sym;
        return np;
 }
@@ -495,7 +494,7 @@ constnode(Symbol *sym)
 
        np = node(OSYM, sym->type, NULL, NULL);
        np->type = sym->type;
-       np->constant = 1;
+       np->flags = NCONST;
        np->sym = sym;
        return np;
 }
diff --git a/cc1/cpp.c b/cc1/cpp.c
index 117c366..3707a46 100644
--- a/cc1/cpp.c
+++ b/cc1/cpp.c
@@ -93,7 +93,7 @@ nextcpp(void)
                error("argument overflow invoking macro \"%s\"",
                      macroname);
        if (yytoken == IDEN)
-               yylval.sym->flags |= ISUSED;
+               yylval.sym->flags |= SUSED;
        memcpy(argp, yytext, yylen);
        argp += yylen;
        *argp++ = ' ';
@@ -235,7 +235,7 @@ expand(char *begin, Symbol *sym)
        char *arglist[NR_MACROARG], arguments[INPUTSIZ], buffer[BUFSIZE];
 
        macroname = sym->name;
-       if ((sym->flags & ISDECLARED) == 0) {
+       if ((sym->flags & SDECLARED) == 0) {
                if (namespace == NS_CPP && !strcmp(sym->name, "defined"))
                        return 0;  /* we found a 'defined in an #if */
                /*
@@ -283,7 +283,7 @@ substitute:
 
        input->p = input->begin = begin;
 
-       if (!(sym->flags & ISDECLARED))
+       if (!(sym->flags & SDECLARED))
                killsym(sym);
 
        return 1;
@@ -312,7 +312,7 @@ getpars(Symbol *args[NR_MACROARG])
                        return NR_MACROARG;
                }
                sym = install(NS_IDEN, yylval.sym);
-               sym->flags |= ISUSED;
+               sym->flags |= SUSED;
                args[n++] = sym;
                next();
        } while (accept(','));
@@ -390,12 +390,12 @@ define(void)
                return;
        }
        sym = yylval.sym;
-       if (sym->flags & ISDECLARED) {
+       if (sym->flags & SDECLARED) {
                warn("'%s' redefined", yytext);
                free(sym->u.s);
        } else {
                sym = install(NS_CPP, sym);
-               sym->flags |= ISDECLARED|ISSTRING;
+               sym->flags |= SDECLARED|SSTRING;
        }
 
        namespace = NS_IDEN;       /* Avoid polution in NS_CPP */
@@ -583,7 +583,7 @@ ifclause(int negate, int isifdef)
                }
                sym = yylval.sym;
                next();
-               status = (sym->flags & ISDECLARED) != 0;
+               status = (sym->flags & SDECLARED) != 0;
                if (!status)
                        killsym(sym);
        } else {
diff --git a/cc1/decl.c b/cc1/decl.c
index f82e996..3ee3cf4 100644
--- a/cc1/decl.c
+++ b/cc1/decl.c
@@ -151,10 +151,10 @@ parameter(struct decl *dcl)
                errorp("bad storage class in function parameter");
                break;
        case REGISTER:
-               flags |= ISREGISTER;
+               flags |= SREGISTER;
                break;
        case NOSCLASS:
-               flags |= ISAUTO;
+               flags |= SAUTO;
                break;
        }
 
@@ -191,7 +191,7 @@ parameter(struct decl *dcl)
        }
 
        sym->type = tp;
-       sym->flags &= ~(ISAUTO|ISREGISTER);
+       sym->flags &= ~(SAUTO|SREGISTER);
        sym->flags |= flags;
        return sym;
 }
@@ -213,7 +213,7 @@ krfun(Type *tp, Type *types[], Symbol *syms[], int *ntypes, 
int *nsyms)
                        sym = yylval.sym;
                        expect(IDEN);
                        sym->type = inttype;
-                       sym->flags |= ISAUTO;
+                       sym->flags |= SAUTO;
                        if ((sym = install(NS_IDEN, sym)) == NULL) {
                                errorp("redefinition of parameter '%s'",
                                       yylval.sym->name);
@@ -470,7 +470,7 @@ newtag(void)
        case IDEN:
        case TYPEIDEN:
                sym = yylval.sym;
-               if ((sym->flags & ISDECLARED) == 0)
+               if ((sym->flags & SDECLARED) == 0)
                        install(NS_TAG, yylval.sym);
                namespace = NS_IDEN;
                next();
@@ -581,7 +581,7 @@ enumdcl(void)
                               yytext);
                } else {
                        sym->u.i = val;
-                       sym->flags |= ISCONSTANT;
+                       sym->flags |= SCONSTANT;
                        sym->type = inttype;
                }
                if (!accept(','))
@@ -638,7 +638,7 @@ field(struct decl *dcl)
                error("duplicated member '%s'", name);
        sym->type = tp;
 
-       sym->flags |= ISFIELD;
+       sym->flags |= SFIELD;
        if (n == NR_FIELDS)
                error("too much fields in struct/union");
        DBG("New field '%s' in namespace %d\n", name, structp->ns);
@@ -675,7 +675,7 @@ redcl(Symbol *sym, Type *tp, Symbol **pars, int sclass)
        }
        if (curctx != GLOBALCTX && tp->op != FTN) {
                /* is it the redeclaration of a local variable? */
-               if ((sym->flags & ISEXTERN) && sclass == EXTERN)
+               if ((sym->flags & SEXTERN) && sclass == EXTERN)
                        return sym;
                goto redeclaration;
        }
@@ -689,9 +689,9 @@ redcl(Symbol *sym, Type *tp, Symbol **pars, int sclass)
                bad_storage(tp, name);
                break;
        case NOSCLASS:
-               if ((flags & ISPRIVATE) == 0) {
-                       flags &= ~ISEXTERN;
-                       flags |= ISGLOBAL;
+               if ((flags & SPRIVATE) == 0) {
+                       flags &= ~SEXTERN;
+                       flags |= SGLOBAL;
                        break;
                }
                errorp("non-static declaration of '%s' follows static 
declaration",
@@ -701,8 +701,8 @@ redcl(Symbol *sym, Type *tp, Symbol **pars, int sclass)
        case EXTERN:
                break;
        case STATIC:
-               if ((flags & (ISGLOBAL|ISEXTERN)) == 0) {
-                       flags |= ISPRIVATE;
+               if ((flags & (SGLOBAL|SEXTERN)) == 0) {
+                       flags |= SPRIVATE;
                        break;
                }
                errorp("static declaration of '%s' follows non-static 
declaration",
@@ -766,24 +766,24 @@ identifier(struct decl *dcl)
                case REGISTER:
                case AUTO:
                        if (curctx != GLOBALCTX && tp->op != FTN) {
-                               flags |= (sclass == REGISTER) ? ISREGISTER : 
ISAUTO;
+                               flags |= (sclass == REGISTER) ? SREGISTER : 
SAUTO;
                                break;
                        }
                        bad_storage(tp, name);
                case NOSCLASS:
                        if (tp->op == FTN)
-                               flags |= ISEXTERN;
+                               flags |= SEXTERN;
                        else
-                               flags |= (curctx == GLOBALCTX) ? ISGLOBAL : 
ISAUTO;
+                               flags |= (curctx == GLOBALCTX) ? SGLOBAL : 
SAUTO;
                        break;
                case EXTERN:
-                       flags |= ISEXTERN;
+                       flags |= SEXTERN;
                        break;
                case STATIC:
-                       flags |= (curctx == GLOBALCTX) ? ISPRIVATE : ISLOCAL;
+                       flags |= (curctx == GLOBALCTX) ? SPRIVATE : SLOCAL;
                        break;
                case TYPEDEF:
-                       flags |= ISTYPEDEF;
+                       flags |= STYPEDEF;
                        sym->u.token = sym->token = TYPEIDEN;
                        break;
                }
@@ -792,8 +792,8 @@ identifier(struct decl *dcl)
 
        if (accept('='))
                initializer(sym, sym->type);
-       if (!(sym->flags & (ISGLOBAL|ISEXTERN)) && tp->op != FTN)
-               sym->flags |= ISDEFINED;
+       if (!(sym->flags & (SGLOBAL|SEXTERN)) && tp->op != FTN)
+               sym->flags |= SDEFINED;
        if (sym->token == IDEN && sym->type->op != FTN)
                emit(ODECL, sym);
        return sym;
@@ -852,7 +852,7 @@ decl(void)
                 * avoid non used warnings in prototypes
                 */
                for (p = sym->u.pars;  p && *p; ++p)
-                       (*p)->flags |= ISUSED;
+                       (*p)->flags |= SUSED;
                popctx();
                expect(';');
                free(sym->u.pars);
@@ -867,17 +867,17 @@ decl(void)
                }
        }
 
-       if (sym->flags & ISTYPEDEF)
+       if (sym->flags & STYPEDEF)
                errorp("function definition declared 'typedef'");
-       if (sym->flags & ISDEFINED)
+       if (sym->flags & SDEFINED)
                errorp("redefinition of '%s'", sym->name);
-       if (sym->flags & ISEXTERN) {
-               sym->flags &= ~ISEXTERN;
-               sym->flags |= ISGLOBAL;
+       if (sym->flags & SEXTERN) {
+               sym->flags &= ~SEXTERN;
+               sym->flags |= SGLOBAL;
        }
 
-       sym->flags |= ISDEFINED;
-       sym->flags &= ~ISEMITTED;
+       sym->flags |= SDEFINED;
+       sym->flags &= ~SEMITTED;
        emit(OFUN, sym);
        compound(NULL, NULL, NULL);
        emit(OEFUN, NULL);
diff --git a/cc1/expr.c b/cc1/expr.c
index 6983591..bbd3385 100644
--- a/cc1/expr.c
+++ b/cc1/expr.c
@@ -18,7 +18,7 @@ cmpnode(Node *np, TUINT val)
        Type *tp;
        TUINT mask, nodeval;
 
-       if (!np || !np->constant || !np->sym)
+       if (!np || !(np->flags & NCONST) || !np->sym)
                return 0;
        sym = np->sym;
        tp = sym->type;
@@ -130,7 +130,7 @@ set_p1_p2:
 static int
 null(Node *np)
 {
-       if (!np->constant || np->type != pvoidtype)
+       if (!np->flags & NCONST || np->type != pvoidtype)
                return 0;
        return cmpnode(np, 0);
 }
@@ -191,7 +191,7 @@ wrong_type:
 static void
 chklvalue(Node *np)
 {
-       if (!np->lvalue)
+       if (!(np->flags & NLVAL))
                errorp("lvalue required in operation");
        if (np->type == voidtype)
                errorp("invalid use of void expression");
@@ -214,8 +214,8 @@ decay(Node *np)
                }
        case FTN:
                new = node(OADDR, mktype(tp, PTR, 0, NULL), np, NULL);
-               if (np->sym && np->sym->flags & (ISGLOBAL|ISLOCAL|ISPRIVATE))
-                       new->constant = 1;
+               if (np->sym && np->sym->flags & (SGLOBAL|SLOCAL|SPRIVATE))
+                       new->flags |= NCONST;
                return new;
        default:
                return np;
@@ -462,12 +462,12 @@ field(Node *np)
                      yylval.sym->name);
                goto free_np;
        }
-       if ((sym->flags & ISDECLARED) == 0) {
+       if ((sym->flags & SDECLARED) == 0) {
                errorp("incorrect field in struct/union");
                goto free_np;
        }
        np = node(OFIELD, sym->type, np, varnode(sym));
-       np->lvalue = 1;
+       np->flags |= NLVAL;
        return np;
 
 free_np:
@@ -491,7 +491,7 @@ content(char op, Node *np)
                } else {
                        np = node(op, np->type->type, np, NULL);
                }
-               np->lvalue = 1;
+               np->flags |= NLVAL;
                return np;
        default:
                error("invalid argument of memory indirection");
@@ -553,7 +553,7 @@ address(char op, Node *np)
 
        if (BTYPE(np) != FTN) {
                chklvalue(np);
-               if (np->sym && (np->sym->flags & ISREGISTER))
+               if (np->sym && (np->sym->flags & SREGISTER))
                        errorp("address of register variable '%s' requested", 
yytext);
                if (np->op == OPTR) {
                        Node *new = np->left;
@@ -563,8 +563,8 @@ address(char op, Node *np)
        }
        new = node(op, mktype(np->type, PTR, 0, NULL), np, NULL);
 
-       if (np->sym && np->sym->flags & (ISGLOBAL|ISLOCAL|ISPRIVATE))
-               new->constant = 1;
+       if (np->sym && np->sym->flags & (SGLOBAL|SLOCAL|SPRIVATE))
+               new->flags |= NCONST;
        return new;
 }
 
@@ -593,10 +593,10 @@ notdefined(Symbol *sym)
                expect(IDEN);
                expect(')');
 
-               isdef = (sym->flags & ISDECLARED) != 0;
+               isdef = (sym->flags & SDECLARED) != 0;
                sym = newsym(NS_IDEN);
                sym->type = inttype;
-               sym->flags |= ISCONSTANT;
+               sym->flags |= SCONSTANT;
                sym->u.i = isdef;
                disexpand = 0;
                return sym;
@@ -619,7 +619,7 @@ primary(void)
        switch (yytoken) {
        case STRING:
                np = constnode(sym);
-               sym->flags |= HASINIT;
+               sym->flags |= SHASINIT;
                emit(ODECL, sym);
                emit(OINIT, np);
                np = decay(varnode(sym));
@@ -630,13 +630,13 @@ primary(void)
                next();
                break;
        case IDEN:
-               if ((sym->flags & ISDECLARED) == 0)
+               if ((sym->flags & SDECLARED) == 0)
                        sym = notdefined(sym);
-               if (sym->flags & ISCONSTANT) {
+               if (sym->flags & SCONSTANT) {
                        np = constnode(sym);
                        break;
                }
-               sym->flags |= ISUSED;
+               sym->flags |= SUSED;
                np = varnode(sym);
                next();
                break;
@@ -840,7 +840,8 @@ cast(void)
                        lp = cast();
                        if ((rp = convert(lp,  tp, 1)) == NULL)
                                error("bad type convertion requested");
-                       rp->lvalue = lp->lvalue;
+                       rp->flags &= ~NLVAL;
+                       rp->flags |= lp->flags & NLVAL;
                }
                break;
        default:
@@ -1058,7 +1059,7 @@ constexpr(void)
        Node *np;
 
        np = ternary();
-       if (!np->constant) {
+       if (!(np->flags & NCONST)) {
                freetree(np);
                return NULL;
        }
@@ -1101,7 +1102,7 @@ condexpr(void)
        Node *np;
 
        np = exp2cond(expr(), 0);
-       if (np->constant)
+       if (np->flags & NCONST)
                warn("conditional expression is constant");
        return np;
 }
diff --git a/cc1/fold.c b/cc1/fold.c
index 429e5e5..dfcfa05 100644
--- a/cc1/fold.c
+++ b/cc1/fold.c
@@ -324,8 +324,8 @@ fold(int op, Type *tp, Node *lp, Node *rp)
         * (when we don't know the physical address so
         * we cannot fold it)
         */
-       if (!lp->constant || !lp->sym ||
-           rp && (!rp->constant || !rp->sym)) {
+       if (!(lp->flags & NCONST) || !lp->sym ||
+           rp && (!(rp->flags & NCONST) || !rp->sym)) {
                return NULL;
        }
        optype = lp->type;
@@ -355,7 +355,7 @@ commutative(int *op, Node **lp, Node **rp)
 {
        Node *l = *lp, *r = *rp, *aux;
 
-       if (r == NULL || r->constant || !l->constant)
+       if (r == NULL || r->flags & NCONST || !(l->flags & NCONST))
                return;
 
        switch (*op) {
@@ -391,10 +391,10 @@ identity(int *op, Node *lp, Node *rp)
 
        iszeror = cmpnode(rp, 0);
        isoner = cmpnode(rp, 1),
-       istruer = !iszeror && rp->constant;
+       istruer = !iszeror && rp->flags & NCONST;
        iszerol = cmpnode(lp, 0);
        isonel = cmpnode(lp, 1),
-       istruel = !iszerol && lp->constant;
+       istruel = !iszerol && lp->flags & NCONST;
 
        switch (*op) {
        case OOR:
@@ -495,7 +495,7 @@ foldternary(int op, Type *tp, Node *cond, Node *body)
 {
        Node *np;
 
-       if (!cond->constant)
+       if (!(cond->flags & NCONST))
                return node(op, tp, cond, body);
        if (cmpnode(cond, 0)) {
                np = body->right;
@@ -538,7 +538,7 @@ castcode(Node *np, Type *newtp)
        Type *oldtp = np->type;
        Symbol aux, *sym, *osym = np->sym;
 
-       if (!np->constant)
+       if (!(np->flags & NCONST))
                goto noconstant;
 
        switch (newtp->op) {
diff --git a/cc1/init.c b/cc1/init.c
index 2464bbd..9245ec8 100644
--- a/cc1/init.c
+++ b/cc1/init.c
@@ -65,7 +65,7 @@ fielddesig(Init *ip)
        if (yytoken != IDEN)
                unexpected();
        sym = yylval.sym;
-       if ((sym->flags & ISDECLARED) == 0) {
+       if ((sym->flags & SDECLARED) == 0) {
                errorp(" unknown field '%s' specified in initializer",
                      sym->name);
                return 0;
@@ -175,7 +175,7 @@ mkcompound(Init *ip)
        sym = newsym(NS_IDEN);
        sym->u.init = v;
        sym->type = ip->type;
-       sym->flags |= ISINITLST;
+       sym->flags |= SINITLST;
 
        return constnode(sym);
 }
@@ -300,21 +300,21 @@ initializer(Symbol *sym, Type *tp)
        }
        np = initialize(tp);
 
-       if (flags & ISDEFINED) {
+       if (flags & SDEFINED) {
                errorp("redeclaration of '%s'", sym->name);
-       } else if ((flags & (ISGLOBAL|ISLOCAL|ISPRIVATE)) != 0) {
-               if (!np->constant) {
+       } else if ((flags & (SGLOBAL|SLOCAL|SPRIVATE)) != 0) {
+               if (!(np->flags & NCONST)) {
                        errorp("initializer element is not constant");
                        return;
                }
-               sym->flags |= HASINIT;
-               sym->flags &= ~ISEMITTED;
+               sym->flags |= SHASINIT;
+               sym->flags &= ~SEMITTED;
                emit(ODECL, sym);
                emit(OINIT, np);
-               sym->flags |= ISDEFINED;
-       } else if ((flags & (ISEXTERN|ISTYPEDEF)) != 0) {
+               sym->flags |= SDEFINED;
+       } else if ((flags & (SEXTERN|STYPEDEF)) != 0) {
                errorp("'%s' has both '%s' and initializer",
-                      sym->name, (flags&ISEXTERN) ? "extern" : "typedef");
+                      sym->name, (flags&SEXTERN) ? "extern" : "typedef");
        } else {
                emit(ODECL, sym);
                np = node(OASSIGN, tp, varnode(sym), np);
diff --git a/cc1/lex.c b/cc1/lex.c
index 935cb40..d21640a 100644
--- a/cc1/lex.c
+++ b/cc1/lex.c
@@ -341,7 +341,7 @@ convert:
        tp = ctype(INT, sign, size);
        sym = newsym(NS_IDEN);
        sym->type = tp;
-       sym->flags |= ISCONSTANT;
+       sym->flags |= SCONSTANT;
        yylval.sym = readint(s, base, sign, sym);
        return CONSTANT;
 }
@@ -513,7 +513,7 @@ iden(void)
                        sym = nextsym(sym, namespace);
        }
        yylval.sym = sym;
-       if (sym->flags & ISCONSTANT)
+       if (sym->flags & SCONSTANT)
                return CONSTANT;
        if (sym->token != IDEN)
                yylval.token = sym->u.token;
diff --git a/cc1/stmt.c b/cc1/stmt.c
index e9f4b7f..71f11bb 100644
--- a/cc1/stmt.c
+++ b/cc1/stmt.c
@@ -21,11 +21,11 @@ label(void)
        case IDEN:
        case TYPEIDEN:
                sym = lookup(NS_LABEL, yytext);
-               if (sym->flags & ISDEFINED)
+               if (sym->flags & SDEFINED)
                        error("label '%s' already defined", yytext);
-               if ((sym->flags & ISDECLARED) == 0)
+               if ((sym->flags & SDECLARED) == 0)
                        sym = install(NS_LABEL, sym);
-               sym->flags |= ISDEFINED;
+               sym->flags |= SDEFINED;
                emit(OLABEL, sym);
                next();
                expect(':');
@@ -195,9 +195,9 @@ Goto(Symbol *lbreak, Symbol *lcont, Switch *lswitch)
        if (yytoken != IDEN)
                unexpected();
        sym = yylval.sym;
-       if ((sym->flags & ISDECLARED) == 0)
+       if ((sym->flags & SDECLARED) == 0)
                sym = install(NS_LABEL, sym);
-       sym->flags |= ISUSED;
+       sym->flags |= SUSED;
        emit(OJUMP, sym);
        next();
        expect(';');
diff --git a/cc1/symbol.c b/cc1/symbol.c
index a1695c8..8d540a4 100644
--- a/cc1/symbol.c
+++ b/cc1/symbol.c
@@ -58,7 +58,7 @@ unlinkhash(Symbol *sym)
 {
        Symbol **h, *p, *prev;
 
-       if ((sym->flags & ISDECLARED) == 0)
+       if ((sym->flags & SDECLARED) == 0)
                return;
        h = &htab[hash(sym->name)];
        for (prev = p = *h; p != sym; prev = p, p = p->hash)
@@ -83,15 +83,15 @@ killsym(Symbol *sym)
        char *name;
 
        f = sym->flags;
-       if (f & ISSTRING)
+       if (f & SSTRING)
                free(sym->u.s);
        if (sym->ns == NS_TAG)
                sym->type->defined = 0;
        unlinkhash(sym);
        if ((name = sym->name) != NULL && sym->ns != NS_CPP) {
-               if ((f & (ISUSED|ISGLOBAL|ISDECLARED)) == ISDECLARED)
+               if ((f & (SUSED|SGLOBAL|SDECLARED)) == SDECLARED)
                        warn("'%s' defined but not used", name);
-               if ((f & ISDEFINED) == 0 && sym->ns == NS_LABEL)
+               if ((f & SDEFINED) == 0 && sym->ns == NS_LABEL)
                        errorp("label '%s' is not defined", name);
        }
        free(name);
@@ -216,7 +216,7 @@ linkhash(Symbol *sym)
 
        if (sym->ns != NS_CPP)
                sym->id = newid();
-       sym->flags |= ISDECLARED;
+       sym->flags |= SDECLARED;
        return linksym(sym);
 }
 
@@ -232,7 +232,7 @@ newstring(char *s, size_t len)
        Symbol *sym = newsym(NS_IDEN);
 
        sym->id = newid();
-       sym->flags |= ISSTRING | ISCONSTANT | ISPRIVATE;
+       sym->flags |= SSTRING | SCONSTANT | SPRIVATE;
        sym->u.s = xmalloc(len);
        if (s)
                memcpy(sym->u.s, s, len);
@@ -276,7 +276,7 @@ lookup(int ns, char *name)
                if (ns == NS_CPP)
                        continue;
                if (sns == NS_KEYWORD ||
-                   (sym->flags & ISTYPEDEF) && ns >= NS_STRUCTS) {
+                   (sym->flags & STYPEDEF) && ns >= NS_STRUCTS) {
                        return sym;
                }
        }
@@ -308,7 +308,7 @@ nextsym(Symbol *sym, int ns)
 Symbol *
 install(int ns, Symbol *sym)
 {
-       if (sym->flags & ISDECLARED) {
+       if (sym->flags & SDECLARED) {
                if (sym->ctx == curctx && ns == sym->ns)
                        return NULL;
                sym = allocsym(ns, sym->name);

Reply via email to