@@ -1009,7 +1009,7 @@ struct Node {
10091009 next_sats.push_back (sats[sats.size () - 1 ] + sub->ops .sat );
10101010 sats = std::move (next_sats);
10111011 }
1012- assert (k <= sats.size ());
1012+ assert (k < sats.size ());
10131013 return {count, sats[k], sats[0 ]};
10141014 }
10151015 }
@@ -1177,7 +1177,7 @@ struct Node {
11771177 next_sats.push_back (sats[sats.size () - 1 ] + sub->ws .sat );
11781178 sats = std::move (next_sats);
11791179 }
1180- assert (k <= sats.size ());
1180+ assert (k < sats.size ());
11811181 return {sats[k], sats[0 ]};
11821182 }
11831183 }
@@ -1227,7 +1227,7 @@ struct Node {
12271227 // satisfying 0 keys.
12281228 auto & nsat{sats[0 ]};
12291229 CHECK_NONFATAL (node.k != 0 );
1230- assert (node.k <= sats.size ());
1230+ assert (node.k < sats.size ());
12311231 return {std::move (nsat), std::move (sats[node.k ])};
12321232 }
12331233 case Fragment::MULTI: {
@@ -1253,7 +1253,7 @@ struct Node {
12531253 // The dissatisfaction consists of k+1 stack elements all equal to 0.
12541254 InputStack nsat = ZERO;
12551255 for (size_t i = 0 ; i < node.k ; ++i) nsat = std::move (nsat) + ZERO;
1256- assert (node.k <= sats.size ());
1256+ assert (node.k < sats.size ());
12571257 return {std::move (nsat), std::move (sats[node.k ])};
12581258 }
12591259 case Fragment::THRESH: {
@@ -1288,7 +1288,7 @@ struct Node {
12881288 // Include all dissatisfactions (even these non-canonical ones) in nsat.
12891289 if (i != node.k ) nsat = std::move (nsat) | std::move (sats[i]);
12901290 }
1291- assert (node.k <= sats.size ());
1291+ assert (node.k < sats.size ());
12921292 return {std::move (nsat), std::move (sats[node.k ])};
12931293 }
12941294 case Fragment::OLDER: {
0 commit comments