diff options
author | Alexander Shaposhnikov <shal1t712@gmail.com> | 2018-07-16 07:23:47 +0000 |
---|---|---|
committer | Alexander Shaposhnikov <shal1t712@gmail.com> | 2018-07-16 07:23:47 +0000 |
commit | 832f49b90a4907a0bc2b34b688c32f3c9613aab0 (patch) | |
tree | 6e2a84fd5b2a7c60eb34e107f05b9a2bdfe250be /clang/test/FixIt/fixit-unused-lambda-capture.cpp | |
parent | 07a1787501fc7141c8788421c265ae95008f7c13 (diff) | |
download | bcm5719-llvm-832f49b90a4907a0bc2b34b688c32f3c9613aab0.tar.gz bcm5719-llvm-832f49b90a4907a0bc2b34b688c32f3c9613aab0.zip |
[Sema] Add fixit for unused lambda captures
This diff adds a fixit to suggest removing unused lambda captures
in the appropriate diagnostic.
Patch by Andrew Comminos!
Test plan: make check-all
Differential revision: https://reviews.llvm.org/D48845
llvm-svn: 337148
Diffstat (limited to 'clang/test/FixIt/fixit-unused-lambda-capture.cpp')
-rw-r--r-- | clang/test/FixIt/fixit-unused-lambda-capture.cpp | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/clang/test/FixIt/fixit-unused-lambda-capture.cpp b/clang/test/FixIt/fixit-unused-lambda-capture.cpp new file mode 100644 index 00000000000..c3120093ed1 --- /dev/null +++ b/clang/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; }; + } +}; |