PR c++/86728 - C variadic generic lambda.
[official-gcc.git] / gcc / testsuite / g++.dg / template / ptrmem30.C
blob31e9b5d17f61f2976481c56ed7113d6525241969
1 // PR c++/70096
2 // { dg-do run }
4 int data_read;
6 struct Holder
8   void foo () { data_read = data; }
9   int data;
12 void
13 poison_stack ()
15   volatile char a[256];
16   __builtin_memset ((void *)a, 0xa, sizeof a);
19 template <typename F>
20 void test1 ()
22   Holder h;
23   h.data = 42;
24   F Holder::*fptr = &Holder::foo;
25   (h.*fptr)();
28 template <typename F>
29 void test2 ()
31   Holder h;
32   h.data = 42;
33   F Holder::*fptr1 = &Holder::foo;
34   F Holder::*fptr2 = fptr1;
35   (h.*fptr2)();
39 int main ()
41   poison_stack ();
42   test1<void()>();
43   poison_stack ();
44   test2<void()>();