aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEliseo Martínez <eliseomarmol@gmail.com>2014-11-17 10:41:05 +0100
committerEliseo Martínez <eliseomarmol@gmail.com>2014-11-18 22:00:02 +0100
commit97be8d45f4e52aa33d37a831c26e24235ec55220 (patch)
treebe107a84bcaf17c04435e4821cf8a9da9b264914 /src
parent3bf32fe43f86a2c966c77b130f7ea7c71b6ac099 (diff)
downloadrneovim-97be8d45f4e52aa33d37a831c26e24235ec55220.tar.gz
rneovim-97be8d45f4e52aa33d37a831c26e24235ec55220.tar.bz2
rneovim-97be8d45f4e52aa33d37a831c26e24235ec55220.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/nvim/eval.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index d2ab8aa6ee..b4eb6053a7 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -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;