summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortholo <tholo@openbsd.org>1996-03-05 08:48:15 +0000
committertholo <tholo@openbsd.org>1996-03-05 08:48:15 +0000
commit1a804ada46b192c110b3ecf2a361f37b5f08611e (patch)
treed648f2183748751ec280e37b1de39514ec73800c
parentFrom NetBSD: merge with 960217 (diff)
downloadwireguard-openbsd-1a804ada46b192c110b3ecf2a361f37b5f08611e.tar.xz
wireguard-openbsd-1a804ada46b192c110b3ecf2a361f37b5f08611e.zip
Work around a GCC code generation bug if XXX_BROKEN_GCC; fixed NetBSD
PR 2097
-rw-r--r--usr.bin/xlint/lint1/cgram.y13
1 files changed, 12 insertions, 1 deletions
diff --git a/usr.bin/xlint/lint1/cgram.y b/usr.bin/xlint/lint1/cgram.y
index e65584ac998..502994decc0 100644
--- a/usr.bin/xlint/lint1/cgram.y
+++ b/usr.bin/xlint/lint1/cgram.y
@@ -1607,15 +1607,26 @@ toicon(tn)
} else {
i = (int)v->v_quad;
if (isutyp(t)) {
- if ((u_quad_t)v->v_quad > INT_MAX) {
+ if ((u_quad_t)v->v_quad > UINT_MAX) {
/* integral constant too large */
warning(56);
}
} else {
+#ifdef XXX_BROKEN_GCC
+ if (v->v_quad > INT_MAX) {
+ /* integral constant too large */
+ warning(56);
+ }
+ 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);