diff options
author | 1996-03-05 08:48:15 +0000 | |
---|---|---|
committer | 1996-03-05 08:48:15 +0000 | |
commit | 1a804ada46b192c110b3ecf2a361f37b5f08611e (patch) | |
tree | d648f2183748751ec280e37b1de39514ec73800c | |
parent | From NetBSD: merge with 960217 (diff) | |
download | wireguard-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.y | 13 |
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); |