aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2021-07-09 05:45:03 -0400
committerJason Merrill <jason@redhat.com>2021-07-14 14:59:56 -0400
commitb15e301748f0e042379909e32b3ade439dd8f8f9 (patch)
tree16cda41375af0b9e2b0f01c9c8305ac7d4f28f9d /gcc/doc
parent4940166a15193d6583b320f2957af8720745b76c (diff)
downloadgcc-b15e301748f0e042379909e32b3ade439dd8f8f9.zip
gcc-b15e301748f0e042379909e32b3ade439dd8f8f9.tar.gz
gcc-b15e301748f0e042379909e32b3ade439dd8f8f9.tar.bz2
c++: enable -fdelete-dead-exceptions by default
As I was discussing with richi, I don't think it makes sense to protect calls to pure/const functions from DCE just because they aren't explicitly declared noexcept. PR100382 indicates that there are different considerations for Go, which has non-call exceptions. But still turn the flag off for that specific testcase. gcc/c-family/ChangeLog: * c-opts.c (c_common_post_options): Set -fdelete-dead-exceptions. gcc/ChangeLog: * doc/invoke.texi: -fdelete-dead-exceptions is on by default for C++. gcc/testsuite/ChangeLog: * g++.dg/torture/pr100382.C: Pass -fno-delete-dead-exceptions.
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/invoke.texi6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index e67d47a..ea88124 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -16335,8 +16335,10 @@ arbitrary signal handlers such as @code{SIGALRM}.
@opindex fdelete-dead-exceptions
Consider that instructions that may throw exceptions but don't otherwise
contribute to the execution of the program can be optimized away.
-This option is enabled by default for the Ada compiler, as permitted by
-the Ada language specification.
+This does not affect calls to functions except those with the
+@code{pure} or @code{const} attributes.
+This option is enabled by default for the Ada and C++ compilers, as permitted by
+the language specifications.
Optimization passes that cause dead exceptions to be removed are enabled independently at different optimization levels.
@item -funwind-tables