[gcc r12-9349] libstdc++: Deliver names of C functions in <stacktrace>

Jonathan Wakely redi@gcc.gnu.org
Tue Mar 28 23:35:31 GMT 2023


https://gcc.gnu.org/g:b1f0c065022784680044d30fa269025ae44b43de

commit r12-9349-gb1f0c065022784680044d30fa269025ae44b43de
Author: Björn Schäpers <bjoern@hazardy.de>
Date:   Tue Dec 13 22:02:47 2022 +0100

    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>
    (cherry picked from commit b1c839be8353edfb1951454be3c5a8150f771385)

Diff:
---
 libstdc++-v3/include/std/stacktrace | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libstdc++-v3/include/std/stacktrace b/libstdc++-v3/include/std/stacktrace
index a7fee8531f7..d46c05b3cd9 100644
--- a/libstdc++-v3/include/std/stacktrace
+++ b/libstdc++-v3/include/std/stacktrace
@@ -213,6 +213,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 					       &__status);
       if (__status == 0)
 	__s = __str;
+      else
+	__s = __name;
       __builtin_free(__str);
       return __s;
     }


More information about the Gcc-cvs mailing list