Hi here, I encountered a reproducible crash (assertion failure) in ABC when running a specific sequence of synthesis and mapping commands (&if). The issue seems to be triggered by the interaction between dch (which introduces choices) and &if (which utilizes them).
Error Log:
abc: src/aig/gia/giaIf.c:836: Gia_ManChoiceLevel: Assertion `Gia_ObjLevel(p, pObj) > 0' failed.
Aborted (core dumped)
Steps to Reproduce
Load the attached design file: input.blif.
Run the following command sequence:
Bash
./abc -c "read_blif input.blif; strash; refactor; rewrite -z; dch -f; &get; &if -K 4; &put; refactor; print_stats"
Observation The crash occurs specifically during the &if -K 4 step (or immediately following it within the GIA manager operations).
It appears that Gia_ManChoiceLevel encounters a node (pObj) with an invalid level (likely 0) when processing choice nodes. This might be a state consistency issue resulting from the preceding dch -f command, which adds choice nodes to the network.
Environment
OS: Linux
ABC Version: Master branch (latest)
Attachments
input.blif.zip