作者dostaevsky (轩)
看板EE_DSnP
标题[问题] buildBdd中fanin的Bdd建不出来
时间Thu Jun 25 15:24:25 2009
在建C17时,碰到cirb -all就crash
用gdb看,发现是在CirOrGate::buildBdd()中
faninBdd为空
code如下
BddNode resultBdd = bddMgr->getSupport(0);
for (size_t i = 0; i < _faninList.size(); i++) {
CirGate* fanin = _faninList[i];
unsigned faninId = fanin->getId();
BddNode faninBdd = bddMgr->getBddNode(faninId);
if ((faninBdd() & (~1)) == 0) {
BddNode faninBdd = fanin->buildBdd();
bddMgr->addBddNode(fanin->getName(), faninBdd());
bddMgr->addBddNode(faninId, faninBdd());
}
resultBdd &= faninBdd; // crash: faninBdd为空
}
我不确定if 的条件这样写对不对,因为没办法用private的getBddNodeInt()去判断
或者有没有可能是我的&=写得不好?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.27.248