annotate gcc/testsuite/g++.old-deja/g++.mike/misc1.C @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // { dg-do run }
kono
parents:
diff changeset
2 // GROUPS passed construct-destruct
kono
parents:
diff changeset
3 /* g++ constructs j 13 times, and destructs it once. */
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 extern "C" {
kono
parents:
diff changeset
6 int printf (const char *, ...);
kono
parents:
diff changeset
7 void exit(int);
kono
parents:
diff changeset
8 }
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 void foo() {
kono
parents:
diff changeset
11 }
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 class C {
kono
parents:
diff changeset
14 int val;
kono
parents:
diff changeset
15 public:
kono
parents:
diff changeset
16 static int count;
kono
parents:
diff changeset
17 C(int ii) {
kono
parents:
diff changeset
18 val = ii;
kono
parents:
diff changeset
19 ++count;
kono
parents:
diff changeset
20 printf("up\n");
kono
parents:
diff changeset
21 }
kono
parents:
diff changeset
22 ~C() {
kono
parents:
diff changeset
23 --count;
kono
parents:
diff changeset
24 printf("down\n");
kono
parents:
diff changeset
25 }
kono
parents:
diff changeset
26 int operator ++() {
kono
parents:
diff changeset
27 return ++val;
kono
parents:
diff changeset
28 }
kono
parents:
diff changeset
29 operator int() {
kono
parents:
diff changeset
30 return val;
kono
parents:
diff changeset
31 }
kono
parents:
diff changeset
32 };
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 int C::count = 0;
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 void bar() {
kono
parents:
diff changeset
37 for (int ii=0; ii<13; ++ii)
kono
parents:
diff changeset
38 for (C j=1; j<9; ++j)
kono
parents:
diff changeset
39 foo();
kono
parents:
diff changeset
40 }
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 int main() {
kono
parents:
diff changeset
43 bar();
kono
parents:
diff changeset
44 if (C::count)
kono
parents:
diff changeset
45 {
kono
parents:
diff changeset
46 printf("FAIL\n");
kono
parents:
diff changeset
47 exit(1);
kono
parents:
diff changeset
48 }
kono
parents:
diff changeset
49 else
kono
parents:
diff changeset
50 {
kono
parents:
diff changeset
51 printf("PASS\n");
kono
parents:
diff changeset
52 }
kono
parents:
diff changeset
53 return 0;
kono
parents:
diff changeset
54 }