mirror of
https://github.com/Z3Prover/z3
synced 2025-04-06 17:44:08 +00:00
add redirect for warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
fbf9e3004f
commit
2f8b13368d
|
@ -242,6 +242,7 @@ extern "C" {
|
|||
std::istringstream is(s);
|
||||
ctx->set_regular_stream(ous);
|
||||
ctx->set_diagnostic_stream(ous);
|
||||
cmd_context::scoped_redirect _redirect(*ctx);
|
||||
try {
|
||||
if (!parse_smt2_commands(*ctx.get(), is)) {
|
||||
SET_ERROR_CODE(Z3_PARSER_ERROR, ous.str());
|
||||
|
|
|
@ -191,6 +191,22 @@ public:
|
|||
~scoped_watch() { m_ctx.m_watch.stop(); }
|
||||
};
|
||||
|
||||
struct scoped_redirect {
|
||||
cmd_context& m_ctx;
|
||||
std::ostream& m_verbose;
|
||||
std::ostream* m_warning;
|
||||
|
||||
scoped_redirect(cmd_context& ctx): m_ctx(ctx), m_verbose(verbose_stream()), m_warning(warning_stream()) {
|
||||
set_warning_stream(&(*m_ctx.m_diagnostic));
|
||||
set_verbose_stream(m_ctx.diagnostic_stream());
|
||||
}
|
||||
|
||||
~scoped_redirect() {
|
||||
set_verbose_stream(m_verbose);
|
||||
set_warning_stream(m_warning);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
|
|
@ -83,6 +83,10 @@ void set_warning_stream(std::ostream* strm) {
|
|||
g_warning_stream = strm;
|
||||
}
|
||||
|
||||
std::ostream* warning_stream() {
|
||||
return g_warning_stream;
|
||||
}
|
||||
|
||||
void format2ostream(std::ostream & out, char const* msg, va_list args) {
|
||||
svector<char> buff;
|
||||
BEGIN_ERR_HANDLER();
|
||||
|
|
|
@ -28,6 +28,8 @@ void set_error_stream(std::ostream* strm);
|
|||
|
||||
void set_warning_stream(std::ostream* strm);
|
||||
|
||||
std::ostream* warning_stream();
|
||||
|
||||
void warning_msg(const char * msg, ...);
|
||||
|
||||
void format2ostream(std::ostream& out, char const* fmt, va_list args);
|
||||
|
|
Loading…
Reference in a new issue