From e67d7b4301e3511d53a7ac39a080e0870023ec8c Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Fri, 20 Mar 2026 12:28:42 +0100 Subject: [PATCH] changes error reporting and exit value to properly communicate issues --- src/sc_main.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/sc_main.cpp b/src/sc_main.cpp index b730803..cd1b6b2 100644 --- a/src/sc_main.cpp +++ b/src/sc_main.cpp @@ -148,16 +148,17 @@ int sc_main(int argc, char* argv[]) { /////////////////////////////////////////////////////////////////////////// if(auto res = setjmp(abrt)) { switch(res) { - case SIGHUP: - case SIGINT: - case SIGQUIT: - case SIGTERM: - case SIGUSR1: - case SIGUSR2: - SCCINFO() << "Simulation stopped with signal " << res << "."; - break; - default: - SCCERR() << "Simulation aborted with signal " << res << "!"; + case SIGHUP: + case SIGINT: + case SIGQUIT: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + sc_core::sc_stop(); + SCCINFO() << "Simulation stopped with signal " << sigabbrev_np(res) << "."; + break; + default: + SCCERR() << "Simulation aborted with signal " << sigabbrev_np(res) << "!"; } } else { try { @@ -171,5 +172,5 @@ int sc_main(int argc, char* argv[]) { sc_core::sc_report_handler::get_handler()(rep, sc_core::SC_DISPLAY | sc_core::SC_STOP); } } - return 0; + return sc_core::sc_report_handler::get_count(SC_ERROR) + sc_core::sc_report_handler::get_count(SC_WARNING); }