brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · ce0c78d Raw
95 lines · cpp
1// RUN: cp %s %t2// RUN: %clang_cc1 -x c++ -Wunused-lambda-capture -Wno-unused-value -std=c++1z -fixit %t3// RUN: grep -v CHECK %t | FileCheck %s4 5void test() {6  int i = 0;7  int j = 0;8  int k = 0;9  int c = 10;10  int a[c];11 12  [i,j] { return i; };13  // CHECK: [i] { return i; };14  [i,j] { return j; };15  // CHECK: [j] { return j; };16  [&i,j] { return j; };17  // CHECK: [j] { return j; };18  [j,&i] { return j; };19  // CHECK: [j] { return j; };20  [i,j,k] {};21  // CHECK: [] {};22  [i,j,k] { return i + j; };23  // CHECK: [i,j] { return i + j; };24  [i,j,k] { return j + k; };25  // CHECK: [j,k] { return j + k; };26  [i,j,k] { return i + k; };27  // CHECK: [i,k] { return i + k; };28  [i,j,k] { return i + j + k; };29  // CHECK: [i,j,k] { return i + j + k; };30  [&,i] { return k; };31  // CHECK: [&] { return k; };32  [=,&i] { return k; };33  // CHECK: [=] { return k; };34  [=,&i,&j] { return j; };35  // CHECK: [=,&j] { return j; };36  [=,&i,&j] { return i; };37  // CHECK: [=,&i] { return i; };38  [z = i] {};39  // CHECK: [] {};40  [i,z = i] { return z; };41  // CHECK: [z = i] { return z; };42  [z = i,i] { return z; };43  // CHECK: [z = i] { return z; };44  [&a] {};45  // CHECK: [] {};46  [i,&a] { return i; };47  // CHECK: [i] { return i; };48  [&a,i] { return i; };49  // CHECK: [i] { return i; };50 51  #define I_MACRO() i52  #define I_REF_MACRO() &i53  [I_MACRO()] {};54  // CHECK: [] {};55  [I_MACRO(),j] { return j; };56  // CHECK: [j] { return j; };57  [j,I_MACRO()] { return j; };58  // CHECK: [j] { return j; };59  [I_REF_MACRO(),j] { return j; };60  // CHECK: [j] { return j; };61  [j,I_REF_MACRO()] { return j; };62  // CHECK: [j] { return j; };63 64  int n = 0;65  [z = (n = i),j] {};66  // CHECK: [z = (n = i)] {};67  [j,z = (n = i)] {};68  // CHECK: [z = (n = i)] {};69}70 71class ThisTest {72  void test() {73    int i = 0;74 75    [this] {};76    // CHECK: [] {};77    [i,this] { return i; };78    // CHECK: [i] { return i; };79    [this,i] { return i; };80    // CHECK: [i] { return i; };81    [*this] {};82    // CHECK: [] {};83    [*this,i] { return i; };84    // CHECK: [i] { return i; };85    [i,*this] { return i; };86    // CHECK: [i] { return i; };87    [*this] { return this; };88    // CHECK: [*this] { return this; };89    [*this,i] { return this; };90    // CHECK: [*this] { return this; };91    [i,*this] { return this; };92    // CHECK: [*this] { return this; };93  }94};95