summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);