diff options
| author | tma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2005-10-04 01:21:34 +0000 | 
|---|---|---|
| committer | tma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2005-10-04 01:21:34 +0000 | 
| commit | 45d6a88841f0db650d615522b1f6594ea72ceb7e (patch) | |
| tree | dec4fac8ff8638b6a0d8749d52e66d0207eb161b /lcc/src/enode.c | |
| parent | 6d9be1722b2221cae39b389ce218e93d73d99335 (diff) | |
| download | ioquake3-aero-45d6a88841f0db650d615522b1f6594ea72ceb7e.tar.gz ioquake3-aero-45d6a88841f0db650d615522b1f6594ea72ceb7e.zip | |
* Dewarninged the lcc and q3asm source
* Removed traditional target platforms from the lcc build. This might break
  building lcc on Windows using nmake. Submit patches or be quiet :p
* Default target for lcc is now bytecode, so -Wf-target=bytecode is no longer
  needed on the lcc command line
git-svn-id: svn://svn.icculus.org/quake3/trunk@132 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'lcc/src/enode.c')
| -rw-r--r-- | lcc/src/enode.c | 62 | 
1 files changed, 32 insertions, 30 deletions
| diff --git a/lcc/src/enode.c b/lcc/src/enode.c index 0503cc3..0f2adbd 100644 --- a/lcc/src/enode.c +++ b/lcc/src/enode.c @@ -64,7 +64,7 @@ Tree call(Tree f, Type fty, Coordinate src) {  					else  						q = cast(q, promote(q->type));  				} -			if (!IR->wants_argb && isstruct(q->type)) +			if (!IR->wants_argb && isstruct(q->type)) {  				if (iscallb(q))  					q = addrof(q);  				else { @@ -73,6 +73,7 @@ Tree call(Tree f, Type fty, Coordinate src) {  					q = tree(RIGHT, ptr(t1->type),  						root(q), lvalue(idtree(t1)));  				} +			}  			if (q->type->size == 0)  				q->type = inttype;  			if (hascall(q)) @@ -223,15 +224,15 @@ static int isnullptr(Tree e) {  	Type ty = unqual(e->type);  	return generic(e->op) == CNST -	    && (ty->op == INT      && e->u.v.i == 0 -	     || ty->op == UNSIGNED && e->u.v.u == 0 -	     || isvoidptr(ty)      && e->u.v.p == NULL); +	    && ((ty->op == INT      && e->u.v.i == 0) +	     || (ty->op == UNSIGNED && e->u.v.u == 0) +	     || (isvoidptr(ty)      && e->u.v.p == NULL));  }  Tree eqtree(int op, Tree l, Tree r) {  	Type xty = l->type, yty = r->type; -	if (isptr(xty) && isnullptr(r) -	||  isptr(xty) && !isfunc(xty->type) && isvoidptr(yty) +	if ((isptr(xty) && isnullptr(r)) +	||  (isptr(xty) && !isfunc(xty->type) && isvoidptr(yty))  	||  (isptr(xty) && isptr(yty)  	    && eqtype(unqual(xty->type), unqual(yty->type), 1))) {  		Type ty = unsignedptr; @@ -239,8 +240,8 @@ Tree eqtree(int op, Tree l, Tree r) {  		r = cast(r, ty);  		return simplify(mkop(op,ty), inttype, l, r);  	} -	if (isptr(yty) && isnullptr(l) -	||  isptr(yty) && !isfunc(yty->type) && isvoidptr(xty)) +	if ((isptr(yty) && isnullptr(l)) +	||  (isptr(yty) && !isfunc(yty->type) && isvoidptr(xty)))  		return eqtree(op, r, l);  	return cmptree(op, l, r);  } @@ -253,13 +254,13 @@ Type assign(Type xty, Tree e) {  		xty = xty->type;  	if (xty->size == 0 || yty->size == 0)  		return NULL; -	if ( isarith(xty) && isarith(yty) -	||  isstruct(xty) && xty == yty) +	if ( (isarith(xty) && isarith(yty)) +	||  (isstruct(xty) && xty == yty))  		return xty;  	if (isptr(xty) && isnullptr(e))  		return xty; -	if ((isvoidptr(xty) && isptr(yty) -	  || isptr(xty)     && isvoidptr(yty)) +	if (((isvoidptr(xty) && isptr(yty)) +	  || (isptr(xty)     && isvoidptr(yty)))  	&& (  (isconst(xty->type)    || !isconst(yty->type))  	   && (isvolatile(xty->type) || !isvolatile(yty->type))))  		return xty; @@ -273,8 +274,8 @@ Type assign(Type xty, Tree e) {  	&& (  (isconst(xty->type)    || !isconst(yty->type))  	   && (isvolatile(xty->type) || !isvolatile(yty->type)))) {  		Type lty = unqual(xty->type), rty = unqual(yty->type); -		if (isenum(lty) && rty == inttype -		||  isenum(rty) && lty == inttype) { +		if ((isenum(lty) && rty == inttype) +		||  (isenum(rty) && lty == inttype)) {  			if (Aflag >= 1)  				warning("assignment between `%t' and `%t' is compiler-dependent\n",  					xty, yty); @@ -302,13 +303,14 @@ Tree asgntree(int op, Tree l, Tree r) {  	if (isptr(aty))  		aty = unqual(aty)->type;  	if ( isconst(aty) -	||  isstruct(aty) && unqual(aty)->u.sym->u.s.cfields) +	||  (isstruct(aty) && unqual(aty)->u.sym->u.s.cfields)) {  		if (isaddrop(l->op)  		&& !l->u.sym->computed && !l->u.sym->generated)  			error("assignment to const identifier `%s'\n",  				l->u.sym->name);  		else  			error("assignment to const location\n"); +	}  	if (l->op == FIELD) {  		long n = 8*l->u.field->type->size - fieldsize(l->u.field);  		if (n > 0 && isunsigned(l->u.field->type)) @@ -345,8 +347,8 @@ Tree condtree(Tree e, Tree l, Tree r) {  		ty = xty;  	else if (isnullptr(l) && isptr(yty))  		ty = yty; -	else if (isptr(xty) && !isfunc(xty->type) && isvoidptr(yty) -	||       isptr(yty) && !isfunc(yty->type) && isvoidptr(xty)) +	else if ((isptr(xty) && !isfunc(xty->type) && isvoidptr(yty)) +	||       (isptr(yty) && !isfunc(yty->type) && isvoidptr(xty)))  		ty = voidptype;  	else if ((isptr(xty) && isptr(yty)  		 && eqtype(unqual(xty->type), unqual(yty->type), 1))) @@ -357,11 +359,11 @@ Tree condtree(Tree e, Tree l, Tree r) {  	}  	if (isptr(ty)) {  		ty = unqual(unqual(ty)->type); -		if (isptr(xty) && isconst(unqual(xty)->type) -		||  isptr(yty) && isconst(unqual(yty)->type)) +		if ((isptr(xty) && isconst(unqual(xty)->type)) +		||  (isptr(yty) && isconst(unqual(yty)->type)))  			ty = qual(CONST, ty); -		if (isptr(xty) && isvolatile(unqual(xty)->type) -		||  isptr(yty) && isvolatile(unqual(yty)->type)) +		if ((isptr(xty) && isvolatile(unqual(xty)->type)) +		||  (isptr(yty) && isvolatile(unqual(yty)->type)))  			ty = qual(VOLATILE, ty);  		ty = ptr(ty);  	} @@ -518,15 +520,15 @@ static Tree subtree(int op, Tree l, Tree r) {  void typeerror(int op, Tree l, Tree r) {  	int i;  	static struct { int op; char *name; } ops[] = { -		ASGN, "=",	INDIR, "*",	NEG,  "-", -		ADD,  "+",	SUB,   "-",	LSH,  "<<", -		MOD,  "%",	RSH,   ">>",	BAND, "&", -		BCOM, "~",	BOR,   "|",	BXOR, "^", -		DIV,  "/",	MUL,   "*",	EQ,   "==", -		GE,   ">=",	GT,    ">",	LE,   "<=", -		LT,   "<",	NE,    "!=",	AND,  "&&", -		NOT,  "!",	OR,    "||",	COND, "?:", -		0, 0 +		{ASGN, "="},	{INDIR, "*"},	{NEG,  "-"}, +		{ADD,  "+"},	{SUB,   "-"},	{LSH,  "<<"}, +		{MOD,  "%"},	{RSH,   ">>"},	{BAND, "&"}, +		{BCOM, "~"},	{BOR,   "|"},	{BXOR, "^"}, +		{DIV,  "/"},	{MUL,   "*"},	{EQ,   "=="}, +		{GE,   ">="},	{GT,    ">"},	{LE,   "<="}, +		{LT,   "<"},	{NE,    "!="},	{AND,  "&&"}, +		{NOT,  "!"},	{OR,    "||"},	{COND, "?:"}, +		{0, 0}  	};  	op = generic(op); | 
