PR c++/86728 - C variadic generic lambda.
[official-gcc.git] / gcc / testsuite / g++.dg / init / init-ref1.C
blobd0170cd18f6765431422533b1edbb17d962b90f7
1 // Submitted by Erik Rozendaal <dlr@acm.org>
2 // Test case for GNATS bug 787.
3 // { dg-do run }
5 #include <stdio.h>
6 #include <stdlib.h>
8 static int calls;
10 int &foo (int &arg)
12   calls++;
13   arg=0;
14   return arg;
17 int &identity (int &x)
19   return x;
22 int main()
24   int a;
26   calls = 0;
27   int &b = ++foo (a);
28   if (calls > 1)
29     abort ();
30   if (&a != &b)
31     abort ();
32   if (a != 1)
33     abort ();
35   calls = 0;
36   int &c = ++identity (++foo (a));
37   if (calls > 1)
38     abort ();
39   if (&a != &c)
40     abort ();
41   if (a != 2)
42     abort ();
44   exit (0);