For P0784R7: add support for constexpr destructors, and call them as
authorRichard Smith <richard-llvm@metafoo.co.uk>
Mon, 23 Sep 2019 03:48:44 +0000 (03:48 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Mon, 23 Sep 2019 03:48:44 +0000 (03:48 +0000)
commit457226e02a6e8533eaaa864a3fd7c8eeccd2bf58
tree616a28265a6d458d6dc25c56825fc04f65d5fc17
parentda4a4707d2ed7add4a054b06f26ed547fd1d221d
For P0784R7: add support for constexpr destructors, and call them as
appropriate during constant evaluation.

Note that the evaluator is sometimes invoked on incomplete expressions.
In such cases, if an object is constructed but we never reach the point
where it would be destroyed (and it has non-trivial destruction), we
treat the expression as having an unmodeled side-effect.

llvm-svn: 372538
17 files changed:
clang/include/clang/AST/DeclCXX.h
clang/include/clang/Basic/DiagnosticASTKinds.td
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/lib/AST/ASTImporter.cpp
clang/lib/AST/DeclCXX.cpp
clang/lib/AST/ExprConstant.cpp
clang/lib/Sema/SemaDecl.cpp
clang/lib/Sema/SemaDeclCXX.cpp
clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
clang/lib/Sema/SemaType.cpp
clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp
clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
clang/test/CXX/dcl.decl/dcl.fct.def/dcl.fct.def.default/p2.cpp
clang/test/CXX/drs/dr2xx.cpp
clang/test/SemaCXX/attr-require-constant-initialization.cpp
clang/test/SemaCXX/constant-expression-cxx2a.cpp
clang/test/SemaCXX/cxx2a-consteval.cpp