libstdc++: Deliver names of C functions in <stacktrace>
authorBjörn Schäpers <bjoern@hazardy.de>
Tue, 13 Dec 2022 21:02:47 +0000 (22:02 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Sat, 14 Jan 2023 20:49:45 +0000 (20:49 +0000)
__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>
libstdc++-v3/include/std/stacktrace

index 402be3e..346c7b1 100644 (file)
@@ -219,6 +219,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
                                               &__status);
       if (__status == 0)
        __s = __str;
+      else
+       __s = __name;
       __builtin_free(__str);
       return __s;
     }