diff options
author | Jason Merrill <jason@redhat.com> | 2010-05-21 15:32:29 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2010-05-21 15:32:29 -0400 |
commit | d3f28910851bee99e959d8841c818417109d0a33 (patch) | |
tree | 910f63348f513f24157b7b8f6b170ad11a410c48 /gcc/doc | |
parent | 14db98d4a6349271ab34e894c9b0780cb985666b (diff) | |
download | gcc-d3f28910851bee99e959d8841c818417109d0a33.zip gcc-d3f28910851bee99e959d8841c818417109d0a33.tar.gz gcc-d3f28910851bee99e959d8841c818417109d0a33.tar.bz2 |
tree-eh.c (cleanup_is_dead_in): New.
* tree-eh.c (cleanup_is_dead_in): New.
(lower_try_finally): Don't generate a dead cleanup region.
(lower_cleanup): Likewise.
From-SVN: r159682
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/implement-cxx.texi | 14 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 13 |
2 files changed, 22 insertions, 5 deletions
diff --git a/gcc/doc/implement-cxx.texi b/gcc/doc/implement-cxx.texi index 9968f59..1de2536 100644 --- a/gcc/doc/implement-cxx.texi +++ b/gcc/doc/implement-cxx.texi @@ -28,6 +28,7 @@ environment); refer to their documentation for details. @menu * Conditionally-supported behavior:: +* Exception handling:: @end menu @node Conditionally-supported behavior @@ -45,3 +46,16 @@ constructor or destructor can be passed to ... (C++0x 5.2.2).} Such argument passing is not supported. @end itemize + +@node Exception handling +@section Exception handling + +@itemize @bullet +@item +@cite{In the situation where no matching handler is found, it is +implementation-defined whether or not the stack is unwound before +std::terminate() is called (C++98 15.5.1).} + +The stack is not unwound before std::terminate is called. + +@end itemize diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 195cdfb..c3e2d37 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -187,7 +187,7 @@ in the following sections. -fno-implicit-templates @gol -fno-implicit-inline-templates @gol -fno-implement-inlines -fms-extensions @gol --fno-nonansi-builtins -fno-operator-names @gol +-fno-nonansi-builtins -fnothrow-opt -fno-operator-names @gol -fno-optional-diags -fpermissive @gol -fno-pretty-templates @gol -frepo -fno-rtti -fstats -ftemplate-depth=@var{n} @gol @@ -1933,10 +1933,13 @@ ANSI/ISO C@. These include @code{ffs}, @code{alloca}, @code{_exit}, @opindex fnothrow-opt Treat a @code{throw()} exception specification as though it were a @code{noexcept} specification to reduce or eliminate the text size -overhead relative to a function with no exception specification. The -semantic effect is that an exception thrown out of a function with -such an exception specification will result in a call to -@code{terminate} rather than @code{unexpected}. +overhead relative to a function with no exception specification. If +the function has local variables of types with non-trivial +destructors, the exception specification will actually make the +function smaller because the EH cleanups for those variables can be +optimized away. The semantic effect is that an exception thrown out of +a function with such an exception specification will result in a call +to @code{terminate} rather than @code{unexpected}. @item -fno-operator-names @opindex fno-operator-names |