diff options
author | Mike Stump <mrs@gcc.gnu.org> | 1996-03-08 00:38:10 +0000 |
---|---|---|
committer | Mike Stump <mrs@gcc.gnu.org> | 1996-03-08 00:38:10 +0000 |
commit | e76a26469d6b464cf25d43af1eb4f1ebbc4c72a0 (patch) | |
tree | 938d65a89cf25e2714899dccc47ec5021d7a0de1 /gcc/cp/gxxint.texi | |
parent | 838b5ca862aea53720a1a3b788a2e9f80226aa25 (diff) | |
download | gcc-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.texi | 18 |
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 |