view gcc/testsuite/g++.old-deja/g++.mike/misc1.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do run  }
// GROUPS passed construct-destruct
/* g++ constructs j 13 times, and destructs it once. */

extern "C" {
  int printf (const char *, ...);
  void exit(int);
}

void foo() {
}

class C {
  int val;
 public:
  static int count;
  C(int ii) {
    val = ii;
    ++count;
    printf("up\n");
  }
  ~C() {
    --count;
    printf("down\n");
  }
  int operator ++() {
    return ++val;
  }
  operator int() {
    return val;
  }
};

int C::count = 0;

void bar() {
  for (int ii=0; ii<13; ++ii)
    for (C j=1; j<9; ++j)
      foo();
}

int main() {
  bar();
  if (C::count)
    {
      printf("FAIL\n");
      exit(1);
    }
  else
    {
      printf("PASS\n");
    }
  return 0;
}