aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/xlint
diff options
context:
space:
mode:
authorTor Egge <tegge@FreeBSD.org>1997-06-12 18:10:08 +0000
committerTor Egge <tegge@FreeBSD.org>1997-06-12 18:10:08 +0000
commit18d5819376635f6f7466a0474dc34669e1de580d (patch)
tree93d5da0c9fe9b0003345e5a2da9d1621a058521e /usr.bin/xlint
parentd49f28633597c479da134194e11a8250f1528445 (diff)
downloadsrc-18d5819376635f6f7466a0474dc34669e1de580d.tar.gz
src-18d5819376635f6f7466a0474dc34669e1de580d.zip
Work around a gcc bug (causing false warnings about integral constant being too large, even when the integral constant was e.g. 1).
Notes
Notes: svn path=/head/; revision=26582
Diffstat (limited to 'usr.bin/xlint')
-rw-r--r--usr.bin/xlint/lint1/cgram.y11
1 files changed, 11 insertions, 0 deletions
diff --git a/usr.bin/xlint/lint1/cgram.y b/usr.bin/xlint/lint1/cgram.y
index e65584ac998b..6be2089ee40a 100644
--- a/usr.bin/xlint/lint1/cgram.y
+++ b/usr.bin/xlint/lint1/cgram.y
@@ -1612,10 +1612,21 @@ toicon(tn)
warning(56);
}
} else {
+#ifdef XXX_BROKEN_GCC
+ if (v->v_quad > INT_MAX) {
+ /* integral constant too large */
+ warning(56);
+ }
+ else if (v->v_quad < INT_MIN) {
+ /* integral constant too large */
+ warning(56);
+ }
+#else
if (v->v_quad > INT_MAX || v->v_quad < INT_MIN) {
/* integral constant too large */
warning(56);
}
+#endif
}
}
free(v);