From: eck Date: Fri, 9 Feb 1990 10:35:44 +0000 (+0000) Subject: fixed bug with 0L; don't give warning on char x[3] = "abc" X-Git-Tag: release-5-5~1836 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=d7d56d2cbb54bb4711b4ef1d7c0b671398f680c0;p=ack.git fixed bug with 0L; don't give warning on char x[3] = "abc" --- diff --git a/lang/cem/cemcom.ansi/LLlex.c b/lang/cem/cemcom.ansi/LLlex.c index 0ea8aa9d6..9f6dfb8eb 100644 --- a/lang/cem/cemcom.ansi/LLlex.c +++ b/lang/cem/cemcom.ansi/LLlex.c @@ -806,7 +806,7 @@ struct token *ptok; 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); diff --git a/lang/cem/cemcom.ansi/ival.g b/lang/cem/cemcom.ansi/ival.g index e6c185b0a..9b2760545 100644 --- a/lang/cem/cemcom.ansi/ival.g +++ b/lang/cem/cemcom.ansi/ival.g @@ -582,8 +582,14 @@ ch_array(tpp, ex) 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; }