3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-19 12:23:38 +00:00
This commit is contained in:
Nikolaj Bjorner 2016-11-12 08:58:09 -08:00
commit fc7a217cd0
2 changed files with 27 additions and 15 deletions

View file

@ -909,6 +909,10 @@ extern "C" {
Z3_TRY; Z3_TRY;
LOG_Z3_fpa_get_numeral_sign(c, t, sgn); LOG_Z3_fpa_get_numeral_sign(c, t, sgn);
RESET_ERROR_CODE(); RESET_ERROR_CODE();
if (sgn == 0) {
SET_ERROR_CODE(Z3_INVALID_ARG);
return 0;
}
ast_manager & m = mk_c(c)->m(); ast_manager & m = mk_c(c)->m();
mpf_manager & mpfm = mk_c(c)->fpautil().fm(); mpf_manager & mpfm = mk_c(c)->fpautil().fm();
fpa_decl_plugin * plugin = (fpa_decl_plugin*)m.get_plugin(mk_c(c)->get_fpa_fid()); fpa_decl_plugin * plugin = (fpa_decl_plugin*)m.get_plugin(mk_c(c)->get_fpa_fid());
@ -968,6 +972,10 @@ extern "C" {
Z3_TRY; Z3_TRY;
LOG_Z3_fpa_get_numeral_significand_uint64(c, t, n); LOG_Z3_fpa_get_numeral_significand_uint64(c, t, n);
RESET_ERROR_CODE(); RESET_ERROR_CODE();
if (n == 0) {
SET_ERROR_CODE(Z3_INVALID_ARG);
return 0;
}
ast_manager & m = mk_c(c)->m(); ast_manager & m = mk_c(c)->m();
mpf_manager & mpfm = mk_c(c)->fpautil().fm(); mpf_manager & mpfm = mk_c(c)->fpautil().fm();
unsynch_mpz_manager & mpzm = mpfm.mpz_manager(); unsynch_mpz_manager & mpzm = mpfm.mpz_manager();
@ -1028,6 +1036,10 @@ extern "C" {
Z3_TRY; Z3_TRY;
LOG_Z3_fpa_get_numeral_exponent_int64(c, t, n); LOG_Z3_fpa_get_numeral_exponent_int64(c, t, n);
RESET_ERROR_CODE(); RESET_ERROR_CODE();
if (n == 0) {
SET_ERROR_CODE(Z3_INVALID_ARG);
return 0;
}
ast_manager & m = mk_c(c)->m(); ast_manager & m = mk_c(c)->m();
mpf_manager & mpfm = mk_c(c)->fpautil().fm(); mpf_manager & mpfm = mk_c(c)->fpautil().fm();
family_id fid = mk_c(c)->get_fpa_fid(); family_id fid = mk_c(c)->get_fpa_fid();

View file

@ -30,7 +30,7 @@ void register_z3_replayer_cmds(z3_replayer & in);
void throw_invalid_reference() { void throw_invalid_reference() {
TRACE("z3_replayer", tout << "invalid argument reference\n";); TRACE("z3_replayer", tout << "invalid argument reference\n";);
throw z3_replayer_exception("invalid argument reference1"); throw z3_replayer_exception("invalid argument reference");
} }
struct z3_replayer::imp { struct z3_replayer::imp {
@ -72,7 +72,7 @@ struct z3_replayer::imp {
void check_arg(unsigned pos, value_kind k) const { void check_arg(unsigned pos, value_kind k) const {
if (pos >= m_args.size()) { if (pos >= m_args.size()) {
TRACE("z3_replayer", tout << "too few arguments " << m_args.size() << " expecting " << kind2string(k) << "\n";); TRACE("z3_replayer", tout << "too few arguments " << m_args.size() << " expecting " << kind2string(k) << "\n";);
throw z3_replayer_exception("invalid argument reference2"); throw z3_replayer_exception("invalid argument reference");
} }
if (m_args[pos].m_kind != k) { if (m_args[pos].m_kind != k) {
std::stringstream strm; std::stringstream strm;