]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
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>
Tue, 28 Mar 2023 22:25:08 +0000 (23:25 +0100)
__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>
(cherry picked from commit b1c839be8353edfb1951454be3c5a8150f771385)

libstdc++-v3/include/std/stacktrace

index a7fee8531f772342edc928ffcfa656fcc42c10ab..d46c05b3cd94c50840a3de899cecec5dd7d6326b 100644 (file)
@@ -213,6 +213,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
                                               &__status);
       if (__status == 0)
        __s = __str;
+      else
+       __s = __name;
       __builtin_free(__str);
       return __s;
     }