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;
|
fund = LONG;
|
||||||
else fund = UNSIGNED;
|
else fund = UNSIGNED;
|
||||||
} else if((val & full_mask[(int)long_size]) == val) {
|
} else if((val & full_mask[(int)long_size]) == val) {
|
||||||
if (val > 0) fund = LONG;
|
if (val >= 0) fund = LONG;
|
||||||
else fund = ULONG;
|
else fund = ULONG;
|
||||||
} else { /* sizeof(arith) is greater than long_size */
|
} else { /* sizeof(arith) is greater than long_size */
|
||||||
ASSERT(arith_size > long_size);
|
ASSERT(arith_size > long_size);
|
||||||
|
|
|
@ -582,8 +582,14 @@ ch_array(tpp, ex)
|
||||||
else {
|
else {
|
||||||
arith dim = tp->tp_size / tp->tp_up->tp_size;
|
arith dim = tp->tp_size / tp->tp_up->tp_size;
|
||||||
|
|
||||||
if (length > dim) {
|
#ifdef LINT
|
||||||
expr_warning(ex, "too many initialisers");
|
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;
|
length = dim;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue