OSDN Git Service

Some raw string changes from N3077
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / other / default4.C
1 // PR c++/15759
2 // Origin:   Lars Rune Nøstdal  <larsnostdal@gmail.com>
3 // Testcase: Volker Reichelt    <reichelt@igpm.rwth-aachen.de>
4
5 // { dg-do run }
6
7 extern "C" void abort();
8
9 int n = 0;
10
11 int f() { return ++n; }
12
13 int(&foo1)() = f;
14 int(*foo2)() = &f;
15 int(*foo3)() = f;
16
17 int bar1(int i = foo1()) { return i; }
18 int bar2(int i = foo2()) { return i; }
19 int bar3(int i = foo3()) { return i; }
20 int bar4(int i = f())    { return i; }
21
22 int main()
23 {
24   if (bar1() != 1) abort();
25   if (bar2() != 2) abort();
26   if (bar3() != 3) abort();
27   if (bar4() != 4) abort();
28   return 0;
29 }