forked from qt-creator/qt-creator
...to provide some more natural way of appending/inserting new ones at a specific position. The enumeration also helps to communicate about the patches. Change-Id: I8ac911269a11d24a46920c81cd3231c06b94b828 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
38 lines
1.2 KiB
Diff
38 lines
1.2 KiB
Diff
--- a/tools/clang/include/clang/Sema/ScopeInfo.h
|
|
+++ b/tools/clang/include/clang/Sema/ScopeInfo.h
|
|
@@ -560,6 +560,7 @@
|
|
void markUsed(bool IsODRUse) { (IsODRUse ? ODRUsed : NonODRUsed) = true; }
|
|
|
|
VarDecl *getVariable() const {
|
|
+ assert(isVariableCapture());
|
|
return VarAndNestedAndThis.getPointer();
|
|
}
|
|
|
|
--- a/tools/clang/lib/Sema/SemaLambda.cpp
|
|
+++ b/tools/clang/lib/Sema/SemaLambda.cpp
|
|
@@ -1481,6 +1481,9 @@
|
|
if (CaptureHasSideEffects(From))
|
|
return;
|
|
|
|
+ if (From.isVLATypeCapture())
|
|
+ return;
|
|
+
|
|
auto diag = Diag(From.getLocation(), diag::warn_unused_lambda_capture);
|
|
if (From.isThisCapture())
|
|
diag << "'this'";
|
|
--- a/tools/clang/test/SemaCXX/warn-unused-lambda-capture.cpp
|
|
+++ b/tools/clang/test/SemaCXX/warn-unused-lambda-capture.cpp
|
|
@@ -191,3 +191,12 @@
|
|
void test_use_template() {
|
|
test_templated<int>(); // expected-note{{in instantiation of function template specialization 'test_templated<int>' requested here}}
|
|
}
|
|
+
|
|
+namespace pr35555 {
|
|
+int a;
|
|
+void b() {
|
|
+ int c[a];
|
|
+ auto vla_used = [&c] { return c[0]; };
|
|
+ auto vla_unused = [&c] {}; // expected-warning{{lambda capture 'c' is not used}}
|
|
+}
|
|
+} // namespace pr35555
|