// 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); } }