<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libstdc++: cxxabi.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">libstdc++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('a00023.html','');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#namespaces">Namespaces</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">cxxabi.h File Reference</div> </div> </div><!--header--> <div class="contents"> <p><a href="a00023_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a01644.html">__gnu_cxx::recursive_init_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a> Namespaces</h2></td></tr> <tr class="memitem:a01544"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="a01544.html">__gnu_cxx</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a01548"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="a01548.html">abi</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:a714cc1503d710689e591c9fc78d80d99"><td class="memItemLeft" align="right" valign="top"><a id="a714cc1503d710689e591c9fc78d80d99"></a> typedef __cxa_cdtor_return_type(* </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_cdtor_type</b>) (void *)</td></tr> <tr class="separator:a714cc1503d710689e591c9fc78d80d99"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:a36d71e6f9c442362a531cd941963994f"><td class="memItemLeft" align="right" valign="top"><a id="a36d71e6f9c442362a531cd941963994f"></a> __cxa_dependent_exception * </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_allocate_dependent_exception</b> () noexcept</td></tr> <tr class="separator:a36d71e6f9c442362a531cd941963994f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a10294435545aa2855130c5500b749ef5"><td class="memItemLeft" align="right" valign="top"><a id="a10294435545aa2855130c5500b749ef5"></a> int </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_atexit</b> (void(*)(void *), void *, void *) noexcept</td></tr> <tr class="separator:a10294435545aa2855130c5500b749ef5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a05d40437b2a797eda482936fba37393e"><td class="memItemLeft" align="right" valign="top"><a id="a05d40437b2a797eda482936fba37393e"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_bad_cast</b> () __attribute__((__noreturn__))</td></tr> <tr class="separator:a05d40437b2a797eda482936fba37393e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a09286cc1a4ed631f95a11518af32d0a0"><td class="memItemLeft" align="right" valign="top"><a id="a09286cc1a4ed631f95a11518af32d0a0"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_bad_typeid</b> () __attribute__((__noreturn__))</td></tr> <tr class="separator:a09286cc1a4ed631f95a11518af32d0a0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0a043284a863f567d974b0e8177a4563"><td class="memItemLeft" align="right" valign="top"><a id="a0a043284a863f567d974b0e8177a4563"></a> void * </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_begin_catch</b> (void *) noexcept</td></tr> <tr class="separator:a0a043284a863f567d974b0e8177a4563"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adc4f240390684501910f209038893596"><td class="memItemLeft" align="right" valign="top"><a id="adc4f240390684501910f209038893596"></a> <a class="el" href="a01668.html">std::type_info</a> * </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_current_exception_type</b> () noexcept __attribute__((__pure__))</td></tr> <tr class="separator:adc4f240390684501910f209038893596"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a85649606b69bbe801b2d7e5dc4ffc5f4"><td class="memItemLeft" align="right" valign="top"><a id="a85649606b69bbe801b2d7e5dc4ffc5f4"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_deleted_virtual</b> (void) __attribute__((__noreturn__))</td></tr> <tr class="separator:a85649606b69bbe801b2d7e5dc4ffc5f4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0f77048f40022ee20f49f773defc9c27"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00023.html#a0f77048f40022ee20f49f773defc9c27">__cxxabiv1::__cxa_demangle</a> (const char *__mangled_name, char *__output_buffer, size_t *__length, int *__status)</td></tr> <tr class="separator:a0f77048f40022ee20f49f773defc9c27"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a770a73f25be21598aa6aa1aa8f2ba5e5"><td class="memItemLeft" align="right" valign="top"><a id="a770a73f25be21598aa6aa1aa8f2ba5e5"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_end_catch</b> ()</td></tr> <tr class="separator:a770a73f25be21598aa6aa1aa8f2ba5e5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a40c43f1d467d315427cf35ffaf17c300"><td class="memItemLeft" align="right" valign="top"><a id="a40c43f1d467d315427cf35ffaf17c300"></a> int </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_finalize</b> (void *)</td></tr> <tr class="separator:a40c43f1d467d315427cf35ffaf17c300"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9d49abdcc8a46715bb1de4415db2c34b"><td class="memItemLeft" align="right" valign="top"><a id="a9d49abdcc8a46715bb1de4415db2c34b"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_free_dependent_exception</b> (__cxa_dependent_exception *) noexcept</td></tr> <tr class="separator:a9d49abdcc8a46715bb1de4415db2c34b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac433ad8c1b8ead109b381605266d56e6"><td class="memItemLeft" align="right" valign="top"><a id="ac433ad8c1b8ead109b381605266d56e6"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_free_exception</b> (void *) noexcept</td></tr> <tr class="separator:ac433ad8c1b8ead109b381605266d56e6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a59be6e1b9ed193235ecf992261d33fd3"><td class="memItemLeft" align="right" valign="top"><a id="a59be6e1b9ed193235ecf992261d33fd3"></a> void * </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_get_exception_ptr</b> (void *) noexcept __attribute__((__pure__))</td></tr> <tr class="separator:a59be6e1b9ed193235ecf992261d33fd3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a77f0efa15a2746ea23155fd9142c0ace"><td class="memItemLeft" align="right" valign="top"><a id="a77f0efa15a2746ea23155fd9142c0ace"></a> __cxa_eh_globals * </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_get_globals</b> () noexcept __attribute__((__const__))</td></tr> <tr class="separator:a77f0efa15a2746ea23155fd9142c0ace"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7d7ceee839d7ea86a845b51a04987da9"><td class="memItemLeft" align="right" valign="top"><a id="a7d7ceee839d7ea86a845b51a04987da9"></a> __cxa_eh_globals * </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_get_globals_fast</b> () noexcept __attribute__((__const__))</td></tr> <tr class="separator:a7d7ceee839d7ea86a845b51a04987da9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad1c7b0c7cf02c6d6c981b44b5b791574"><td class="memItemLeft" align="right" valign="top"><a id="ad1c7b0c7cf02c6d6c981b44b5b791574"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_guard_abort</b> (__guard *) noexcept</td></tr> <tr class="separator:ad1c7b0c7cf02c6d6c981b44b5b791574"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afd9a1180819f348ff7991826afb02e0c"><td class="memItemLeft" align="right" valign="top"><a id="afd9a1180819f348ff7991826afb02e0c"></a> int </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_guard_acquire</b> (__guard *)</td></tr> <tr class="separator:afd9a1180819f348ff7991826afb02e0c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:affd602d23f7fef5b7675d9e1941d3954"><td class="memItemLeft" align="right" valign="top"><a id="affd602d23f7fef5b7675d9e1941d3954"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_guard_release</b> (__guard *) noexcept</td></tr> <tr class="separator:affd602d23f7fef5b7675d9e1941d3954"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6baea790a70c43348586b8ec3efb197d"><td class="memItemLeft" align="right" valign="top"><a id="a6baea790a70c43348586b8ec3efb197d"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_pure_virtual</b> (void) __attribute__((__noreturn__))</td></tr> <tr class="separator:a6baea790a70c43348586b8ec3efb197d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa41ba1944f5ac6058230277f5140ae0f"><td class="memItemLeft" align="right" valign="top"><a id="aa41ba1944f5ac6058230277f5140ae0f"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_rethrow</b> () __attribute__((__noreturn__))</td></tr> <tr class="separator:aa41ba1944f5ac6058230277f5140ae0f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad90a651344da0762844b5fd5e75a4e02"><td class="memItemLeft" align="right" valign="top"><a id="ad90a651344da0762844b5fd5e75a4e02"></a> int </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_thread_atexit</b> (void(*)(void *), void *, void *) noexcept</td></tr> <tr class="separator:ad90a651344da0762844b5fd5e75a4e02"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6f8b68d9818fef43ee38cdf958dd8633"><td class="memItemLeft" align="right" valign="top"><a id="a6f8b68d9818fef43ee38cdf958dd8633"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_throw</b> (void *, <a class="el" href="a01668.html">std::type_info</a> *, void(*)(void *)) __attribute__((__noreturn__))</td></tr> <tr class="separator:a6f8b68d9818fef43ee38cdf958dd8633"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad2ee1225509c2224710f44d7d604a988"><td class="memItemLeft" align="right" valign="top"><a id="ad2ee1225509c2224710f44d7d604a988"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_throw_bad_array_new_length</b> () __attribute__((__noreturn__))</td></tr> <tr class="separator:ad2ee1225509c2224710f44d7d604a988"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a681e1f3a92903179376b965ab160dcee"><td class="memItemLeft" align="right" valign="top"><a id="a681e1f3a92903179376b965ab160dcee"></a> __cxa_vec_ctor_return_type </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_vec_cctor</b> (void *__dest_array, void *__src_array, size_t __element_count, size_t __element_size, __cxa_cdtor_return_type(*__constructor)(void *, void *), __cxa_cdtor_type __destructor)</td></tr> <tr class="separator:a681e1f3a92903179376b965ab160dcee"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac3252596adb9b828c0d0635606caa121"><td class="memItemLeft" align="right" valign="top"><a id="ac3252596adb9b828c0d0635606caa121"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_vec_cleanup</b> (void *__array_address, size_t __element_count, size_t __s, __cxa_cdtor_type __destructor) noexcept</td></tr> <tr class="separator:ac3252596adb9b828c0d0635606caa121"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a81d8444cbca2379f83bd2f595898a7f4"><td class="memItemLeft" align="right" valign="top"><a id="a81d8444cbca2379f83bd2f595898a7f4"></a> __cxa_vec_ctor_return_type </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_vec_ctor</b> (void *__array_address, size_t __element_count, size_t __element_size, __cxa_cdtor_type __constructor, __cxa_cdtor_type __destructor)</td></tr> <tr class="separator:a81d8444cbca2379f83bd2f595898a7f4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7b063a83c3ea04af4a7984d361b31f3d"><td class="memItemLeft" align="right" valign="top"><a id="a7b063a83c3ea04af4a7984d361b31f3d"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_vec_delete</b> (void *__array_address, size_t __element_size, size_t __padding_size, __cxa_cdtor_type __destructor)</td></tr> <tr class="separator:a7b063a83c3ea04af4a7984d361b31f3d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a79620258b04604c4cf027ff0b1f72d5b"><td class="memItemLeft" align="right" valign="top"><a id="a79620258b04604c4cf027ff0b1f72d5b"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_vec_delete2</b> (void *__array_address, size_t __element_size, size_t __padding_size, __cxa_cdtor_type __destructor, void(*__dealloc)(void *))</td></tr> <tr class="separator:a79620258b04604c4cf027ff0b1f72d5b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad7482e00995d041475bd6ef5d48202e6"><td class="memItemLeft" align="right" valign="top"><a id="ad7482e00995d041475bd6ef5d48202e6"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_vec_delete3</b> (void *__array_address, size_t __element_size, size_t __padding_size, __cxa_cdtor_type __destructor, void(*__dealloc)(void *, size_t))</td></tr> <tr class="separator:ad7482e00995d041475bd6ef5d48202e6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af2c797009a6270f9fbd4da48adccbcf3"><td class="memItemLeft" align="right" valign="top"><a id="af2c797009a6270f9fbd4da48adccbcf3"></a> void </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_vec_dtor</b> (void *__array_address, size_t __element_count, size_t __element_size, __cxa_cdtor_type __destructor)</td></tr> <tr class="separator:af2c797009a6270f9fbd4da48adccbcf3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4871f178b3711f36f5a74b1a9b3284a6"><td class="memItemLeft" align="right" valign="top"><a id="a4871f178b3711f36f5a74b1a9b3284a6"></a> void * </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_vec_new</b> (size_t __element_count, size_t __element_size, size_t __padding_size, __cxa_cdtor_type __constructor, __cxa_cdtor_type __destructor)</td></tr> <tr class="separator:a4871f178b3711f36f5a74b1a9b3284a6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab50b24d49b3b5a411e52250f546b483f"><td class="memItemLeft" align="right" valign="top"><a id="ab50b24d49b3b5a411e52250f546b483f"></a> void * </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_vec_new2</b> (size_t __element_count, size_t __element_size, size_t __padding_size, __cxa_cdtor_type __constructor, __cxa_cdtor_type __destructor, void *(*__alloc)(size_t), void(*__dealloc)(void *))</td></tr> <tr class="separator:ab50b24d49b3b5a411e52250f546b483f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2b8cc115b6c63783690b2980f3ded9da"><td class="memItemLeft" align="right" valign="top"><a id="a2b8cc115b6c63783690b2980f3ded9da"></a> void * </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__cxa_vec_new3</b> (size_t __element_count, size_t __element_size, size_t __padding_size, __cxa_cdtor_type __constructor, __cxa_cdtor_type __destructor, void *(*__alloc)(size_t), void(*__dealloc)(void *, size_t))</td></tr> <tr class="separator:a2b8cc115b6c63783690b2980f3ded9da"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a84ccacdec19fd65084c7591a1ea062a8"><td class="memItemLeft" align="right" valign="top"><a id="a84ccacdec19fd65084c7591a1ea062a8"></a> void * </td><td class="memItemRight" valign="bottom"><b>__cxxabiv1::__dynamic_cast</b> (const void *__src_ptr, const __class_type_info *__src_type, const __class_type_info *__dst_type, ptrdiff_t __src2dst)</td></tr> <tr class="separator:a84ccacdec19fd65084c7591a1ea062a8"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>The header provides an interface to the C++ ABI. </p> <p class="definition">Definition in file <a class="el" href="a00023_source.html">cxxabi.h</a>.</p> </div><h2 class="groupheader">Function Documentation</h2> <a id="file_a0f77048f40022ee20f49f773defc9c27"></a> <h2 class="memtitle"><span class="permalink"><a href="#file_a0f77048f40022ee20f49f773defc9c27">◆ </a></span>__cxa_demangle()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* __cxxabiv1::__cxa_demangle </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>__mangled_name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>__output_buffer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t * </td> <td class="paramname"><em>__length</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>__status</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Demangling routine. ABI-mandated entry point in the C++ runtime library for demangling. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__mangled_name</td><td>A NUL-terminated character string containing the name to be demangled.</td></tr> <tr><td class="paramname">__output_buffer</td><td>A region of memory, allocated with malloc, of <em>*__length</em> bytes, into which the demangled name is stored. If <em>__output_buffer</em> is not long enough, it is expanded using realloc. <em>__output_buffer</em> may instead be NULL; in that case, the demangled name is placed in a region of memory allocated with malloc.</td></tr> <tr><td class="paramname">__length</td><td>If <em>__length</em> is non-NULL, the length of the buffer containing the demangled name is placed in <em>*__length</em>.</td></tr> <tr><td class="paramname">__status</td><td><em>*__status</em> is set to one of the following values: 0: The demangling operation succeeded. -1: A memory allocation failure occurred. -2: <em>mangled_name</em> is not a valid name under the C++ ABI mangling rules. -3: One of the arguments is invalid.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A pointer to the start of the NUL-terminated demangled name, or NULL if the demangling fails. The caller is responsible for deallocating this memory using <code>free</code>.</dd></dl> <p>The demangling is performed using the C++ ABI mangling rules, with GNU extensions. For example, this function is used in __gnu_cxx::__verbose_terminate_handler.</p> <p>See <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/ext_demangling.html">https://gcc.gnu.org/onlinedocs/libstdc++/manual/ext_demangling.html</a> for other examples of use.</p> <dl class="section note"><dt>Note</dt><dd>The same demangling functionality is available via libiberty (<code><libiberty/demangle.h></code> and <code>libiberty.a</code>) in GCC 3.1 and later, but that requires explicit installation (<code>–enable-install-libiberty</code>) and uses a different API, although the ABI is unchanged. </dd></dl> </div> </div> </div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="dir_434a3f2b81816e64e09d7f43ca77c261.html">libstdc++-v3</a></li><li class="navelem"><a class="el" href="dir_a90251c88a7d73de47aa10417ea6b112.html">libsupc++</a></li><li class="navelem"><a class="el" href="a00023.html">cxxabi.h</a></li> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li> </ul> </div> </body> </html>