]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Nest: Several assumptions to tame the static analyzer
authorMaria Matejka <mq@ucw.cz>
Sat, 17 Aug 2019 08:20:46 +0000 (10:20 +0200)
committerMaria Matejka <mq@ucw.cz>
Sat, 17 Aug 2019 11:53:50 +0000 (13:53 +0200)
nest/rt-attr.c

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