summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib/pexception.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/plib/pexception.cpp')
-rw-r--r--src/lib/netlist/plib/pexception.cpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/lib/netlist/plib/pexception.cpp b/src/lib/netlist/plib/pexception.cpp
index 6b53d362c79..674601f2ed8 100644
--- a/src/lib/netlist/plib/pexception.cpp
+++ b/src/lib/netlist/plib/pexception.cpp
@@ -19,12 +19,35 @@ namespace plib {
// terminate
//============================================================
- void terminate(const pstring &msg) noexcept
+ void terminate(const char *msg) noexcept
{
- std::cerr << msg.c_str() << "\n";
+ try
+ {
+ std::cerr << msg << "\n";
+ }
+ catch (...)
+ {
+ /* ignore */
+ }
std::terminate();
}
+ void passert_fail(const char *assertion, const char *file, int lineno, const char *msg) noexcept
+ {
+ try
+ {
+ std::cerr << file << ":" << lineno << ": ";
+ if (msg != nullptr)
+ std::cerr << msg << "\n";
+ else
+ std::cerr << "Assertion '" << assertion << "' failed.\n";
+ }
+ catch (...)
+ {
+ /* ignore */
+ }
+ std::terminate();
+ }
//============================================================
// Exceptions