mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 12:08:18 +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);
|
std::istringstream is(s);
|
||||||
ctx->set_regular_stream(ous);
|
ctx->set_regular_stream(ous);
|
||||||
ctx->set_diagnostic_stream(ous);
|
ctx->set_diagnostic_stream(ous);
|
||||||
|
cmd_context::scoped_redirect _redirect(*ctx);
|
||||||
try {
|
try {
|
||||||
if (!parse_smt2_commands(*ctx.get(), is)) {
|
if (!parse_smt2_commands(*ctx.get(), is)) {
|
||||||
SET_ERROR_CODE(Z3_PARSER_ERROR, ous.str());
|
SET_ERROR_CODE(Z3_PARSER_ERROR, ous.str());
|
||||||
|
|
|
@ -191,6 +191,22 @@ public:
|
||||||
~scoped_watch() { m_ctx.m_watch.stop(); }
|
~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:
|
protected:
|
||||||
|
|
|
@ -83,6 +83,10 @@ void set_warning_stream(std::ostream* strm) {
|
||||||
g_warning_stream = strm;
|
g_warning_stream = strm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::ostream* warning_stream() {
|
||||||
|
return g_warning_stream;
|
||||||
|
}
|
||||||
|
|
||||||
void format2ostream(std::ostream & out, char const* msg, va_list args) {
|
void format2ostream(std::ostream & out, char const* msg, va_list args) {
|
||||||
svector<char> buff;
|
svector<char> buff;
|
||||||
BEGIN_ERR_HANDLER();
|
BEGIN_ERR_HANDLER();
|
||||||
|
|
|
@ -28,6 +28,8 @@ void set_error_stream(std::ostream* strm);
|
||||||
|
|
||||||
void set_warning_stream(std::ostream* strm);
|
void set_warning_stream(std::ostream* strm);
|
||||||
|
|
||||||
|
std::ostream* warning_stream();
|
||||||
|
|
||||||
void warning_msg(const char * msg, ...);
|
void warning_msg(const char * msg, ...);
|
||||||
|
|
||||||
void format2ostream(std::ostream& out, char const* fmt, va_list args);
|
void format2ostream(std::ostream& out, char const* fmt, va_list args);
|
||||||
|
|
Loading…
Reference in a new issue