summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnders Magnusson <ragge@cvs.openbsd.org>2007-12-09 18:40:30 +0000
committerAnders Magnusson <ragge@cvs.openbsd.org>2007-12-09 18:40:30 +0000
commit035b85093302a8482e85b98e102c4360f871d7ce (patch)
tree71fa309ec2e5f0be27fcb9cdd135270017e7f893
parent8373c6a0f9262c1718d088e9c8e07db680774d69 (diff)
Updates from master repo:
- Only check for flags already set if BITYPE.
-rw-r--r--usr.bin/pcc/mip/reader.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/usr.bin/pcc/mip/reader.c b/usr.bin/pcc/mip/reader.c
index 29c4d5f0bbd..9629b297a03 100644
--- a/usr.bin/pcc/mip/reader.c
+++ b/usr.bin/pcc/mip/reader.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: reader.c,v 1.10 2007/11/17 12:00:37 ragge Exp $ */
+/* $OpenBSD: reader.c,v 1.11 2007/12/09 18:40:29 ragge Exp $ */
/*
* Copyright (c) 2003 Anders Magnusson (ragge@ludd.luth.se).
* All rights reserved.
@@ -402,7 +402,8 @@ again: switch (o = p->n_op) {
case UGT:
p1 = p->n_left;
p2 = p->n_right;
- if (p2->n_op == ICON && p2->n_lval == 0) {
+ if (p2->n_op == ICON && p2->n_lval == 0 &&
+ optype(p1->n_op) == BITYPE) {
if (findops(p1, FORCC) == 0)
break;
}
@@ -632,6 +633,10 @@ gencode(NODE *p, int cookie)
int lr = rspecial(q, NLEFT);
if (rr >= 0) {
+#ifdef PCC_DEBUG
+ if (optype(p->n_op) != BITYPE)
+ comperr("gencode: rspecial borked");
+#endif
if (r->n_op != REG)
comperr("gencode: rop != REG");
if (rr != r->n_rval)