Bug fix when &vta returns empty absraction.

This commit is contained in:
Alan Mishchenko 2012-06-29 12:38:36 -07:00
parent 5d5ff3b99e
commit 2f3a9f91e5
2 changed files with 24 additions and 18 deletions

View File

@ -854,6 +854,7 @@ int Gia_GlaPerform( Gia_Man_t * pAig, Gia_ParVta_t * pPars )
pPars->fDumpVabs = nDumpOld; pPars->fDumpVabs = nDumpOld;
// create gate classes // create gate classes
Vec_IntFreeP( &pAig->vGateClasses ); Vec_IntFreeP( &pAig->vGateClasses );
if ( pAig->vObjClasses )
pAig->vGateClasses = Gia_VtaConvertToGla( pAig, pAig->vObjClasses ); pAig->vGateClasses = Gia_VtaConvertToGla( pAig, pAig->vObjClasses );
Vec_IntFreeP( &pAig->vObjClasses ); Vec_IntFreeP( &pAig->vObjClasses );
} }

View File

@ -1629,6 +1629,10 @@ int Gia_VtaPerformInt( Gia_Man_t * pAig, Gia_ParVta_t * pPars )
finish: finish:
// analize the results // analize the results
if ( pCex == NULL ) if ( pCex == NULL )
{
if ( Vec_PtrSize(p->vCores) == 0 )
Abc_Print( 1, "Abstraction is not produced because first frame is not solved. " );
else
{ {
assert( Vec_PtrSize(p->vCores) > 0 ); assert( Vec_PtrSize(p->vCores) > 0 );
if ( pAig->vObjClasses != NULL ) if ( pAig->vObjClasses != NULL )
@ -1649,6 +1653,7 @@ finish:
else else
Abc_Print( 1, "SAT solver completed %d frames and produced an abstraction. ", f ); Abc_Print( 1, "SAT solver completed %d frames and produced an abstraction. ", f );
} }
}
else else
{ {
ABC_FREE( p->pGia->pCexSeq ); ABC_FREE( p->pGia->pCexSeq );