libstdc++: Deliver names of C functions in <stacktrace>

__cxa_demangle is only to demangle C++ names, for all C functions,
extern "C" functions, and including main it returns -2, in that case
just adapt the given name. Otherwise it's kept empty, which doesn't look
nice in the stacktrace.

libstdc++-v3/ChangeLog:

	* include/std/stacktrace (stacktrace_entry::_S_demangle): Use
	raw __name if __cxa_demangle could not demangle it.

Signed-off-by: Björn Schäpers <bjoern@hazardy.de>
This commit is contained in:
Björn Schäpers 2022-12-13 22:02:47 +01:00 committed by Jonathan Wakely
parent d80e5a7b30
commit b1c839be83

View file

@ -219,6 +219,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
&__status);
if (__status == 0)
__s = __str;
else
__s = __name;
__builtin_free(__str);
return __s;
}