[PATCH] D55097: [constexpr][c++2a] Try-catch blocks in constexpr functions
Bruno Cardoso Lopes via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Nov 29 17:25:01 PST 2018
bruno created this revision.
bruno added reviewers: rsmith, ahatanak, erik.pilkington.
Herald added subscribers: dexonsmith, jkorous.
Implement support for try-catch blocks in constexpr functions, as
proposed in http://wg21.link/P1002 and voted in San Diego for c++20.
The idea is that we can still never throw inside constexpr, so the catch
block is never entered. A try-catch block like this:
try { f(); } catch (...) { }
is then morally equivalent to just
{ f(); }
Same idea should apply for function/constructor try blocks.
rdar://problem/45530773
https://reviews.llvm.org/D55097
Files:
lib/AST/ExprConstant.cpp
lib/Sema/SemaDeclCXX.cpp
test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p4.cpp
test/CXX/drs/dr6xx.cpp
www/cxx_status.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55097.176001.patch
Type: text/x-patch
Size: 7368 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20181130/ac73d35f/attachment.bin>
More information about the cfe-commits
mailing list