fund = LONG;
else fund = UNSIGNED;
} else if((val & full_mask[(int)long_size]) == val) {
- if (val > 0) fund = LONG;
+ if (val >= 0) fund = LONG;
else fund = ULONG;
} else { /* sizeof(arith) is greater than long_size */
ASSERT(arith_size > long_size);
else {
arith dim = tp->tp_size / tp->tp_up->tp_size;
- if (length > dim) {
- expr_warning(ex, "too many initialisers");
+#ifdef LINT
+ if (length == dim + 1) {
+ expr_warning(ex, "array is not null-terminated");
+ } else
+#else
+ if (length > dim + 1) {
+#endif
+ expr_strict(ex, "too many initialisers");
}
length = dim;
}