brintos

brintos / llvm-project-archived public Read only

0
0
Text · 639 B · 2185f3d Raw
33 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 -fopenmp %s2 3// Okay, not an OpenMP capture.4auto f() {5  int i[2] = {};6  auto [a, b] = i;7  return [=, &a] {8    return a + b;9  };10}11 12// Okay, not an OpenMP capture.13void foo(int);14void g() {15  #pragma omp parallel16  {17    int i[2] = {};18    auto [a, b] = i;19    auto L = [&] { foo(a+b); };20  }21}22 23// FIXME: OpenMP should support capturing structured bindings24void h() {25  int i[2] = {};26  auto [a, b] = i; // expected-note 2{{declared here}}27  #pragma omp parallel28  {29    // expected-error@+1 2{{capturing a structured binding is not yet supported in OpenMP}}30    foo(a + b);31  }32}33