From mboxrd@z Thu Jan 1 00:00:00 1970
Return-Path:
Received: by sourceware.org (Postfix, from userid 2181)
id 263FD385841E; Thu, 27 Apr 2023 22:01:22 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 263FD385841E
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org;
s=default; t=1682632882;
bh=tuXCrgJlhEoLqrU8tLoJw77fFVLY+89/f+wCrNhRGLk=;
h=From:To:Subject:Date:From;
b=sxoVbnCGPdfgRTSxXdbBc8gS0R5yKzDFeqTAn9i9inxsVtrVUROmZ7dr68cNXu3cM
yN+AIgxz7UYO/HeTpLjczkr+WnwCq2FAp+841HfW5vm3GLoaSzPctWIVTGlDWLVstU
b83CkOjB9Zic87lmDJiqBa3qTq7D7zG7MbmdPysM=
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="utf-8"
From: Jonathan Wakely
To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org
Subject: [gcc r11-10660] libstdc++: Fix outdated docs about demangling
exception messages
X-Act-Checkin: gcc
X-Git-Author: Jonathan Wakely
X-Git-Refname: refs/heads/releases/gcc-11
X-Git-Oldrev: b9e35103581cdbd5368ccfbe6dab474f32834246
X-Git-Newrev: ee1a8294754af16b00538b17414679c8d72a575b
Message-Id: <20230427220122.263FD385841E@sourceware.org>
Date: Thu, 27 Apr 2023 22:01:22 +0000 (GMT)
List-Id:
https://gcc.gnu.org/g:ee1a8294754af16b00538b17414679c8d72a575b
commit r11-10660-gee1a8294754af16b00538b17414679c8d72a575b
Author: Jonathan Wakely
Date: Tue Apr 4 12:04:14 2023 +0100
libstdc++: Fix outdated docs about demangling exception messages
The string returned by std::bad_exception::what() hasn't been a mangled
name since PR libstdc++/14493 was fixed for GCC 4.2.0, so remove the
docs showing how to demangle it.
libstdc++-v3/ChangeLog:
* doc/xml/manual/extensions.xml: Remove std::bad_exception from
example program.
* doc/html/manual/ext_demangling.html: Regenerate.
(cherry picked from commit 688d126b69215db29774c249b052e52d765782b3)
Diff:
---
libstdc++-v3/doc/html/manual/ext_demangling.html | 13 ++-----------
libstdc++-v3/doc/xml/manual/extensions.xml | 13 ++-----------
2 files changed, 4 insertions(+), 22 deletions(-)
diff --git a/libstdc++-v3/doc/html/manual/ext_demangling.html b/libstdc++-v3/doc/html/manual/ext_demangling.html
index 879497f7d08..028ec71d8c8 100644
--- a/libstdc++-v3/doc/html/manual/ext_demangling.html
+++ b/libstdc++-v3/doc/html/manual/ext_demangling.html
@@ -39,14 +39,6 @@ int main()
int status;
char *realname;
- // exception classes not in <stdexcept>, thrown by the implementation
- // instead of the user
- std::bad_exception e;
- realname = abi::__cxa_demangle(e.what(), 0, 0, &status);
- std::cout << e.what() << "\t=> " << realname << "\t: " << status << '\n';
- free(realname);
-
-
// typeid
bar<empty,17> u;
const std::type_info &ti = typeid(u);
@@ -61,13 +53,12 @@ int main()
This prints
- St13bad_exception => std::bad_exception : 0
3barI5emptyLi17EE => bar<empty, 17> : 0
The demangler interface is described in the source documentation
linked to above. It is actually written in C, so you don't need to
be writing C++ in order to demangle C++. (That also means we have to
- use crummy memory management facilities, so don't forget to free()
- the returned char array.)
+ use crummy memory management facilities, so don't forget to
+ free()
the returned char array.)