diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-12-08 02:49:07 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-12-08 02:49:07 +0000 |
commit | 1f0155f24337194f4706f727db42f467244caa9e (patch) | |
tree | 967a086ef85d076431ae92fa4fe09afe0d1d50ea /www | |
parent | f5457ae5ebdeb012f213018a46dfea196ea1a872 (diff) |
[c++1z] P0003R5: Removing dynamic exception specifications.
We continue to support dynamic exception specifications in C++1z as an
extension, but produce an error-by-default warning when we encounter one. This
allows users to opt back into the feature with a warning flag, and implicitly
opts system headers back into the feature should they happen to use it.
There is one semantic change implied by P0003R5 but not implemented here:
violating a throw() exception specification should now call std::terminate
directly instead of calling std::unexpected(), but since P0003R5 also removes
std::unexpected() and std::set_unexpected, and the default unexpected handler
calls std::terminate(), a conforming C++1z program cannot tell that we are
still calling it. The upside of this strategy is perfect backwards
compatibility; the downside is that we don't get the more efficient 'noexcept'
codegen for 'throw()'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@289019 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'www')
-rw-r--r-- | www/cxx_status.html | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/www/cxx_status.html b/www/cxx_status.html index 0dc245e456..9e6b675227 100644 --- a/www/cxx_status.html +++ b/www/cxx_status.html @@ -740,7 +740,7 @@ as the draft C++1z standard evolves. <tr> <td>Removing deprecated dynamic exception specifications</td> <td><a href="http://wg21.link/p0003r5">P0003R5</a></td> - <td class="none" align="center">No</td> + <td class="svn" align="center">SVN</td> </tr> <tr> <td>Pack expansions in <em>using-declarations</em></td> |