diff options
Diffstat (limited to 'gcc/testsuite/g++.dg')
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1y/lambda-generic-static1.C | 13 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1y/lambda-generic-static2.C | 19 |
2 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-static1.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-static1.C new file mode 100644 index 00000000000..a1667a2de47 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-static1.C @@ -0,0 +1,13 @@ +// PR c++/70735 +// { dg-do run { target c++1y } } + +int main() +{ + static int a; + auto f = [](auto) { return a; }; + if (f(0) != 0) + __builtin_abort(); + a = 1; + if (f(0) != 1) + __builtin_abort(); +} diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-generic-static2.C b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-static2.C new file mode 100644 index 00000000000..51bf75f20ba --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-static2.C @@ -0,0 +1,19 @@ +// PR c++/70735 +// { dg-do run { target c++1y } } + +template <class T> +static void g() +{ + static int a; + auto f = [](auto) { return a; }; + if (f(0) != 0) + __builtin_abort(); + a = 1; + if (f(0) != 1) + __builtin_abort(); +} + +int main() +{ + g<int>(); +} |