forked from OSchip/llvm-project
82da19ddb3
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()'. llvm-svn: 289019 |
||
---|---|---|
.. | ||
expr.ass | ||
expr.cast | ||
expr.const | ||
expr.mptr.oper | ||
expr.post | ||
expr.prim | ||
expr.unary | ||
p3.cpp | ||
p8.cpp | ||
p9.cpp | ||
p10-0x.cpp | ||
p13.cpp |