// RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 -fopenmp %s | |
// Okay, not an OpenMP capture. | |
auto f() { | |
int i[2] = {}; | |
auto [a, b] = i; | |
return [=, &a] { | |
return a + b; | |
}; | |
} | |
// Okay, not an OpenMP capture. | |
void foo(int); | |
void g() { | |
#pragma omp parallel | |
{ | |
int i[2] = {}; | |
auto [a, b] = i; | |
auto L = [&] { foo(a+b); }; | |
} | |
} | |
// FIXME: OpenMP should support capturing structured bindings | |
void h() { | |
int i[2] = {}; | |
auto [a, b] = i; // expected-note 2{{declared here}} | |
#pragma omp parallel | |
{ | |
// expected-error@+1 2{{capturing a structured binding is not yet supported in OpenMP}} | |
foo(a + b); | |
} | |
} |