On Tue, 12 May 2020 at 11:48, Freddie Chopin wrote: > To summarize. Current C++ exceptions have very huge, mostly "one-time" > kind, cost on the size, even if not used at all by the user, mosly due > to std::terminate() and all the string handling code inside it, as well > as the unwind tables.
There is no string handling code in std::terminate: namespace std { typedef void (*terminate_handler) (); void terminate() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__noreturn__)); } void __cxxabiv1::__terminate (std::terminate_handler handler) throw () { __try { handler (); std::abort (); } __catch(...) { std::abort (); } } void std::terminate () throw() { __terminate (get_terminate ()); } Please clarify what you're talking about.