aboutsummaryrefslogtreecommitdiff
path: root/test/FixIt/fixit-unused-lambda-capture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/FixIt/fixit-unused-lambda-capture.cpp')
-rw-r--r--test/FixIt/fixit-unused-lambda-capture.cpp94
1 files changed, 94 insertions, 0 deletions
diff --git a/test/FixIt/fixit-unused-lambda-capture.cpp b/test/FixIt/fixit-unused-lambda-capture.cpp
new file mode 100644
index 000000000000..c3120093ed1f
--- /dev/null
+++ b/test/FixIt/fixit-unused-lambda-capture.cpp
@@ -0,0 +1,94 @@
+// RUN: cp %s %t
+// RUN: %clang_cc1 -x c++ -fsyntax-only -Wunused-lambda-capture -Wno-unused-value -std=c++1z -fixit %t
+// RUN: grep -v CHECK %t | FileCheck %s
+
+void test() {
+ int i = 0;
+ int j = 0;
+ int k = 0;
+ int c = 10;
+ int a[c];
+
+ [i,j] { return i; };
+ // CHECK: [i] { return i; };
+ [i,j] { return j; };
+ // CHECK: [j] { return j; };
+ [&i,j] { return j; };
+ // CHECK: [j] { return j; };
+ [j,&i] { return j; };
+ // CHECK: [j] { return j; };
+ [i,j,k] {};
+ // CHECK: [] {};
+ [i,j,k] { return i + j; };
+ // CHECK: [i,j] { return i + j; };
+ [i,j,k] { return j + k; };
+ // CHECK: [j,k] { return j + k; };
+ [i,j,k] { return i + k; };
+ // CHECK: [i,k] { return i + k; };
+ [i,j,k] { return i + j + k; };
+ // CHECK: [i,j,k] { return i + j + k; };
+ [&,i] { return k; };
+ // CHECK: [&] { return k; };
+ [=,&i] { return k; };
+ // CHECK: [=] { return k; };
+ [=,&i,&j] { return j; };
+ // CHECK: [=,&j] { return j; };
+ [=,&i,&j] { return i; };
+ // CHECK: [=,&i] { return i; };
+ [z = i] {};
+ // CHECK: [] {};
+ [i,z = i] { return z; };
+ // CHECK: [z = i] { return z; };
+ [z = i,i] { return z; };
+ // CHECK: [z = i] { return z; };
+ [&a] {};
+ // CHECK: [] {};
+ [i,&a] { return i; };
+ // CHECK: [i] { return i; };
+ [&a,i] { return i; };
+ // CHECK: [i] { return i; };
+
+ #define I_MACRO() i
+ #define I_REF_MACRO() &i
+ [I_MACRO()] {};
+ // CHECK: [] {};
+ [I_MACRO(),j] { return j; };
+ // CHECK: [j] { return j; };
+ [j,I_MACRO()] { return j; };
+ // CHECK: [j] { return j; };
+ [I_REF_MACRO(),j] { return j; };
+ // CHECK: [j] { return j; };
+ [j,I_REF_MACRO()] { return j; };
+ // CHECK: [j] { return j; };
+
+ int n = 0;
+ [z = (n = i),j] {};
+ // CHECK: [z = (n = i)] {};
+ [j,z = (n = i)] {};
+ // CHECK: [z = (n = i)] {};
+}
+
+class ThisTest {
+ void test() {
+ int i = 0;
+
+ [this] {};
+ // CHECK: [] {};
+ [i,this] { return i; };
+ // CHECK: [i] { return i; };
+ [this,i] { return i; };
+ // CHECK: [i] { return i; };
+ [*this] {};
+ // CHECK: [] {};
+ [*this,i] { return i; };
+ // CHECK: [i] { return i; };
+ [i,*this] { return i; };
+ // CHECK: [i] { return i; };
+ [*this] { return this; };
+ // CHECK: [*this] { return this; };
+ [*this,i] { return this; };
+ // CHECK: [*this] { return this; };
+ [i,*this] { return this; };
+ // CHECK: [*this] { return this; };
+ }
+};