aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/gxxint.texi
diff options
context:
space:
mode:
authorMike Stump <mrs@gcc.gnu.org>1996-03-08 00:38:10 +0000
committerMike Stump <mrs@gcc.gnu.org>1996-03-08 00:38:10 +0000
commite76a26469d6b464cf25d43af1eb4f1ebbc4c72a0 (patch)
tree938d65a89cf25e2714899dccc47ec5021d7a0de1 /gcc/cp/gxxint.texi
parent838b5ca862aea53720a1a3b788a2e9f80226aa25 (diff)
downloadgcc-e76a26469d6b464cf25d43af1eb4f1ebbc4c72a0.zip
gcc-e76a26469d6b464cf25d43af1eb4f1ebbc4c72a0.tar.gz
gcc-e76a26469d6b464cf25d43af1eb4f1ebbc4c72a0.tar.bz2
85th Cygnus<->FSF merge
From-SVN: r11497
Diffstat (limited to 'gcc/cp/gxxint.texi')
-rw-r--r--gcc/cp/gxxint.texi18
1 files changed, 12 insertions, 6 deletions
diff --git a/gcc/cp/gxxint.texi b/gcc/cp/gxxint.texi
index 54581f2..64ffb84 100644
--- a/gcc/cp/gxxint.texi
+++ b/gcc/cp/gxxint.texi
@@ -1169,9 +1169,10 @@ thrown is used instead. All code that originates exceptions, even code
that throws exceptions as a side effect, like dynamic casting, and all
code that catches exceptions must be compiled with either -frtti, or
-fno-rtti. It is not possible to mix rtti base exception handling
-objects with code that doesn't use rtti. The exceptions to this, are
-code that doesn't catch or throw exceptions, catch (...), and code that
-just rethrows an exception.
+objects with code that doesn't use rtti. Also, -frtti can alter the
+binary layout of classes, so mixing -frtti code and -fno-rtti code can
+be dangerous. The exceptions to this, are code that doesn't catch or
+throw exceptions, catch (...), and code that just rethrows an exception.
Currently we use the normal mangling used in building functions names
(int's are "i", const char * is PCc) to build the non-rtti base type
@@ -1225,9 +1226,14 @@ stands.
Only exact type matching or reference matching of throw types works when
-fno-rtti is used. Only works on a SPARC (like Suns), i386, arm,
-rs6000, Alpha and mips machines. Partial support is in for all other
-machines, but a stack unwinder called __unwind_function has to be
-written, and added to libgcc2 for them. See below for details on
+rs6000, PowerPC, Alpha, mips and VAX machines. Partial support is in
+for all other machines, but a stack unwinder called __unwind_function
+has to be written, and added to libgcc2 for them. The new EH code
+doesn't rely upon the __unwind_function for C++ code, instead it creates
+per function unwinders right inside the function, unfortunately, on many
+platforms the definition of RETURN_ADDR_RTX in the tm.h file for the
+machine port is wrong. The HPPA has a brain dead abi that prevents
+exception handling from just working. See below for details on
__unwind_function. Don't expect exception handling to work right if you
optimize, in fact the compiler will probably core dump. RTL_EXPRs for
EH cond variables for && and || exprs should probably be wrapped in