aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/expr/for5.C
blob: a957fef3760b756dc37e24985d7f4d16e95406f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// PR c++/86769
// { dg-do run }

int g;

struct X {
  X () { g++; }
  ~X () { g--; }
  operator bool () { return g == 0; }
};

void
foo ()
{
  if (g <= 0)
    __builtin_abort ();
}

void
bar ()
{
  if (g)
    __builtin_abort ();
}

int
main ()
{
  for (int i = 0; i < 1; ++i, bar ())
    {
      X x = X ();
      foo ();
    }
}