PR c++/56973, DR 696 - capture constant variables only as needed.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp1y / pr61636-1.C
blob5cc8ca1d274edee009717d54abc5c6de9d567bbe
1 // PR c++/61636
2 // PR c++/79264
3 // { dg-do compile { target c++14 } }
5 // ICE because we figure this capture too late.
7 struct Base
9   void Bar (int);
12 struct A : Base {
13   void b ();
14   void Foo (int);
15   using Base::Bar;
16   template <typename T> void Baz (T);
19 void A::b() {
21   auto lam = [&](auto asdf) { Foo (asdf); };
23   lam (0);
25   auto lam1 = [&](auto asdf) { Bar (asdf); };
27   lam1 (0);
29   auto lam2 = [&](auto asdf) { Baz (asdf); };
31   lam2 (0);
33   auto lam3 = [&](auto asdf) { Baz<int> (asdf); };
35   lam3 (0);