diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2015-04-27 13:56:17 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2015-04-27 13:56:17 -0700 |
commit | b3e6cb30bb9e37e688ac11f6f69156646676c11c (patch) | |
tree | 9048fcfa7d53a7fefe9ef2b0581ff097a2a289f0 | |
parent | c0f0e145c46291db88fea7ae1251637b97f48e29 (diff) | |
download | abc-b3e6cb30bb9e37e688ac11f6f69156646676c11c.tar.gz abc-b3e6cb30bb9e37e688ac11f6f69156646676c11c.tar.bz2 abc-b3e6cb30bb9e37e688ac11f6f69156646676c11c.zip |
Bug fix in %read_smt and prevent crash of &cec if there is no current AIG.
-rw-r--r-- | src/base/abci/abc.c | 5 | ||||
-rw-r--r-- | src/base/wlc/wlcReadSmt.c | 18 |
2 files changed, 19 insertions, 4 deletions
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index e9df4ec2..4de17f26 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -31034,6 +31034,11 @@ int Abc_CommandAbc9Cec( Abc_Frame_t * pAbc, int argc, char ** argv ) goto usage; } } + if ( pAbc->pGia == NULL ) + { + Abc_Print( -1, "Abc_CommandAbc9Cec(): There is no AIG.\n" ); + return 1; + } if ( fMiter ) { if ( fDualOutput ) diff --git a/src/base/wlc/wlcReadSmt.c b/src/base/wlc/wlcReadSmt.c index 4e09306c..0e8e1e06 100644 --- a/src/base/wlc/wlcReadSmt.c +++ b/src/base/wlc/wlcReadSmt.c @@ -290,10 +290,20 @@ static inline int Smt_PrsBuildConstant( Wlc_Ntk_t * pNtk, char * pStr, int nBits Vec_Int_t * vFanins = Vec_IntAlloc( 10 ); if ( pStr[0] != '#' ) // decimal { - int Number = atoi( pStr ); - nBits = Abc_Base2Log( Number+1 ); - assert( nBits < 32 ); - Vec_IntPush( vFanins, Number ); + if ( pStr[0] >= 0 && pStr[0] <= 9 ) + { + int Number = atoi( pStr ); + nBits = Abc_Base2Log( Number+1 ); + assert( nBits < 32 ); + Vec_IntPush( vFanins, Number ); + } + else + { + int fFound, iObj = Abc_NamStrFindOrAdd( pNtk->pManName, pStr, &fFound ); + assert( fFound ); + Vec_IntFree( vFanins ); + return iObj; + } } else if ( pStr[1] == 'b' ) // binary { |