vppinfra: make coverity happy with vec_set_len 36/22936/2
authorBenoît Ganne <bganne@cisco.com>
Tue, 22 Oct 2019 16:19:00 +0000 (18:19 +0200)
committerFlorin Coras <florin.coras@gmail.com>
Tue, 22 Oct 2019 18:17:27 +0000 (18:17 +0000)
Coverity gets confused by ASSERT((l) <= vec_max_len(v)) when l is 0.

Type: fix

Change-Id: I247d7015b148233d8f195bcf41e9a047b7a21309
Signed-off-by: Benoît Ganne <bganne@cisco.com>
src/vppinfra/vec_bootstrap.h

index 7fb016f..5c42e5e 100644 (file)
@@ -160,16 +160,21 @@ vec_aligned_header_end (void *v, uword header_bytes, uword align)
 #define vec_max_len(v) (vec_capacity(v,0) / sizeof (v[0]))
 
 /** \brief Set vector length to a user-defined value */
+#ifndef __COVERITY__           /* Coverity gets confused by ASSERT() */
 #define vec_set_len(v, l) do {     \
     ASSERT(v);                     \
     ASSERT((l) <= vec_max_len(v)); \
     _vec_len(v) = (l);             \
 } while (0)
+#else /* __COVERITY__ */
+#define vec_set_len(v, l) do {     \
+    _vec_len(v) = (l);             \
+} while (0)
+#endif /* __COVERITY__ */
 
 /** \brief Reset vector length to zero
     NULL-pointer tolerant
 */
-
 #define vec_reset_length(v) do { if (v) vec_set_len (v, 0); } while (0)
 
 /** \brief End (last data address) of vector. */