[PATCH] D140614: [C++20] Mark lambdas in lambda specifiers as dependent if necessary
Liming Liu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Dec 26 02:36:37 PST 2022
lime updated this revision to Diff 485276.
lime retitled this revision from "[C++20] Check the dependency of declaration contexts before pumping diagnostics" to "[C++20] Mark lambdas in lambda specifiers as dependent if necessary".
lime edited the summary of this revision.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D140614/new/
https://reviews.llvm.org/D140614
Files:
clang/lib/Parse/ParseExprCXX.cpp
clang/test/SemaCXX/lambda-unevaluated.cpp
Index: clang/test/SemaCXX/lambda-unevaluated.cpp
===================================================================
--- clang/test/SemaCXX/lambda-unevaluated.cpp
+++ clang/test/SemaCXX/lambda-unevaluated.cpp
@@ -122,6 +122,22 @@
static_assert(!__is_same(decltype(foo<int>), void));
} // namespace GH51641
+namespace GH57155 {
+auto foo(int t) {
+ int(*f)(int) = [](auto t) -> decltype([=] { return t; } ()) { return t; };
+ return f;
+}
+} // namespace GH57155
+
+namespace GH57170 {
+int(*f)(int) = [](auto t) -> decltype([] {
+ return 0;
+ } ()
+){
+ return t;
+};
+} // namespace GH57170
+
namespace StaticLambdas {
template <auto> struct Nothing {};
Nothing<[]() static { return 0; }()> nothing;
Index: clang/lib/Parse/ParseExprCXX.cpp
===================================================================
--- clang/lib/Parse/ParseExprCXX.cpp
+++ clang/lib/Parse/ParseExprCXX.cpp
@@ -1477,6 +1477,9 @@
T.consumeClose();
+ MultiParseScope ScopeForGenericLambda(*this);
+ if (Actions.getCurGenericLambda())
+ ScopeForGenericLambda.Enter(Scope::TemplateParamScope);
// Parse lambda-specifiers.
ParseLambdaSpecifiers(LParenLoc, /*DeclEndLoc=*/T.getCloseLocation(),
ParamInfo, EllipsisLoc);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D140614.485276.patch
Type: text/x-patch
Size: 1260 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20221226/a161e9ac/attachment.bin>
More information about the cfe-commits
mailing list