Fix warnings: eval.c: add_nr_var(): Out of bounds: FP.

Problem    : Out-of-bound array access @ 18737.
Diagnostic : False positive.
Rationale  : Situation is intentional. `dictitem_T` is a prefix all dict
             items whill share, but actual size of each item will be
             different depending on its key length. `di_key` array field
             is declared of size 1 just to have a field name, but real
             size will vary for each item.
Resolution : Make analyzer ignore it.
             This could be refactored to use C99-allowed variable length
             arrays, but eval.c is bound to dissappear, so no effort is
             done in that sense.
This commit is contained in:
Eliseo Martínez
2014-11-17 10:41:05 +01:00
parent 3bf32fe43f
commit 97be8d45f4

View File

@@ -18809,7 +18809,9 @@ free_funccal (
*/
static void add_nr_var(dict_T *dp, dictitem_T *v, char *name, varnumber_T nr)
{
#ifndef __clang_analyzer__
STRCPY(v->di_key, name);
#endif
v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX;
hash_add(&dp->dv_hashtab, DI2HIKEY(v));
v->di_tv.v_type = VAR_NUMBER;