/*-------------------------------------------------------------------
*
- * analyze_unsolvable
+ * analyze_unsolvable (called from setpropagatelearn)
*
* We know that the problem is not solvable. Record all involved
* rules (i.e. the "proof") into solv->learnt_pool.
if (!r)
break;
if (level == 1)
- return analyze_unsolvable(solv, r, disablerules);
+ {
+ if (!analyze_unsolvable(solv, r, disablerules))
+ return 0;
+ continue; /* propagate initial decisions */
+ }
POOL_DEBUG(SOLV_DEBUG_ANALYZE, "conflict with rule #%d\n", (int)(r - solv->rules));
l = analyze(solv, level, r, &p, &d, &why); /* learnt rule in p and d */
assert(l > 0 && l < level);
return old;
}
-int
+static int
cleandeps_check_mistakes(Solver *solv, int level)
{
Pool *pool = solv->pool;