Nest: Several assumptions to tame the static analyzer

This commit is contained in:
Maria Matejka 2019-08-17 10:20:46 +02:00
parent bbe49ae569
commit 0fa8bf91cd

View file

@ -202,7 +202,7 @@ nexthop__same(struct nexthop *x, struct nexthop *y)
} }
static int static int
nexthop_compare_node(const struct nexthop *x, const struct nexthop *y) nexthop_compare_node(const struct nexthop *x, const struct nexthop *y)
{ {
int r; int r;
@ -278,18 +278,22 @@ nexthop_merge(struct nexthop *x, struct nexthop *y, int rx, int ry, int max, lin
while ((x || y) && max--) while ((x || y) && max--)
{ {
int cmp = nexthop_compare_node(x, y); int cmp = nexthop_compare_node(x, y);
if (cmp < 0) if (cmp < 0)
{ {
ASSUME(x);
*n = rx ? x : nexthop_copy_node(x, lp); *n = rx ? x : nexthop_copy_node(x, lp);
x = x->next; x = x->next;
} }
else if (cmp > 0) else if (cmp > 0)
{ {
ASSUME(y);
*n = ry ? y : nexthop_copy_node(y, lp); *n = ry ? y : nexthop_copy_node(y, lp);
y = y->next; y = y->next;
} }
else else
{ {
ASSUME(x && y);
*n = rx ? x : (ry ? y : nexthop_copy_node(x, lp)); *n = rx ? x : (ry ? y : nexthop_copy_node(x, lp));
x = x->next; x = x->next;
y = y->next; y = y->next;