# [hackers] [scc] Convert integerop(), numericaluop() and integeruop() to new type fields || Roberto E. Vargas Caballero

From: <git_AT_suckless.org>
Date: Fri, 8 Jan 2016 13:13:58 +0100 (CET)

Author: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
AuthorDate: Thu Jan 7 19:20:17 2016 +0100
Commit: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
CommitDate: Fri Jan 8 10:49:29 2016 +0100

Convert integerop(), numericaluop() and integeruop() to new type fields

diff --git a/cc1/expr.c b/cc1/expr.c
index a46d535..211d98a 100644
--- a/cc1/expr.c
+++ b/cc1/expr.c
_AT_@ -204,7 +204,7 @@ decay(Node *np)
static Node *
integerop(char op, Node *lp, Node *rp)
{
- if (BTYPE(lp) != INT || BTYPE(rp) != INT)
+ if (!lp->type->integer || !rp->type->integer)
error("operator requires integer operands");
arithconv(&lp, &rp);
return simplify(op, lp->type, lp, rp);
_AT_@ -213,24 +213,20 @@ integerop(char op, Node *lp, Node *rp)
static Node *
numericaluop(char op, Node *np)
{
- switch (BTYPE(np)) {
- case INT:
- np = promote(np);
- case FLOAT:
- if (op == ONEG && np->op == ONEG)
- return np->left;
- return np;
- return simplify(op, np->type, np, NULL);
- default:
+ if (!np->type->arith)
error("unary operator requires numerical operand");
- }
+ np = promote(np);
+ if (op == ONEG && np->op == ONEG)
+ return np->left;
+ return np;
+ return simplify(op, np->type, np, NULL);
}

static Node *
integeruop(char op, Node *np)
{
- if (BTYPE(np) != INT)
+ if (!np->type->integer)
error("unary operator requires integer operand");
np = promote(np);
if (op == OCPL && np->op == OCPL)
Received on Fri Jan 08 2016 - 13:13:58 CET

This archive was generated by hypermail 2.3.0 : Fri Jan 08 2016 - 13:24:31 CET