diff options
author | Corentin Jabot <corentinjabot@gmail.com> | 2022-10-23 17:32:58 +0200 |
---|---|---|
committer | Corentin Jabot <corentinjabot@gmail.com> | 2022-12-13 09:57:05 +0100 |
commit | f1f1b60c7ba607e9ffe3bc012161d43ef95ac773 (patch) | |
tree | 8c8fe83ba4ce3d1c7e12737c0efb29f7a3139e02 /llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp | |
parent | 7476d59414d3f94b6e14e6917a6c1151135a28c1 (diff) | |
download | llvm-f1f1b60c7ba607e9ffe3bc012161d43ef95ac773.zip llvm-f1f1b60c7ba607e9ffe3bc012161d43ef95ac773.tar.gz llvm-f1f1b60c7ba607e9ffe3bc012161d43ef95ac773.tar.bz2 |
Implement CWG2631
Implement https://cplusplus.github.io/CWG/issues/2631.html.
Immediate calls in default arguments and defaults members
are not evaluated.
Instead, we evaluate them when constructing a
`CXXDefaultArgExpr`/`BuildCXXDefaultInitExpr`.
The immediate calls are executed by doing a
transform on the initializing expression.
Note that lambdas are not considering subexpressions so
we do not need to transform them.
As a result of this patch, unused default member
initializers are not considered odr-used, and
errors about members binding to local variables
in an outer scope only surface at the point
where a constructor is defined.
Reviewed By: aaron.ballman, #clang-language-wg
Differential Revision: https://reviews.llvm.org/D136554
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp')
0 files changed, 0 insertions, 0 deletions