fixed bug with 0L; don't give warning on char x[3] = "abc"
This commit is contained in:
parent
ba6c223113
commit
d7d56d2cbb
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue