blob: 3385c7ec187cc9ff2065754806940e70558aa5e8 [file]
// PR c++/127559
// { dg-do run }
template <typename T>
struct S {
T x;
int y;
};
template <typename T>
T
bar (T x)
{
return x;
}
void
foo (int x, int y)
{
auto b = [&] { return x; };
S <decltype (b)> c = { b, 42 };
S <decltype (b)> d[2] = { { b, 42 }, { b, 42 } };
auto *p = &d[1];
#pragma omp target
if (c.x () != 42 || d[y].x () != 42 /* || bar (p)->x () != 42 */)
__builtin_abort ();
}
int
main ()
{
foo (42, 0);
}