annotate gcc/testsuite/g++.dg/ipa/pr64068.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* { dg-do compile } */
kono
parents:
diff changeset
2 /* { dg-options "-O2" } */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 typedef int PROV_ENUMALGS_EX, PCCRYPT_OID_INFO;
kono
parents:
diff changeset
5 class A {
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
6 void m_fn2();
111
kono
parents:
diff changeset
7 virtual bool m_fn1(PCCRYPT_OID_INFO);
kono
parents:
diff changeset
8 };
kono
parents:
diff changeset
9 int fn1();
kono
parents:
diff changeset
10 void fn2();
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
11 void A::m_fn2() { m_fn1(0); }
111
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 bool fn3() {
kono
parents:
diff changeset
14 for (;;) {
kono
parents:
diff changeset
15 if (fn1()) {
kono
parents:
diff changeset
16 if (fn1() != 259)
kono
parents:
diff changeset
17 fn2();
kono
parents:
diff changeset
18 break;
kono
parents:
diff changeset
19 }
kono
parents:
diff changeset
20 return 1;
kono
parents:
diff changeset
21 }
kono
parents:
diff changeset
22 return 0;
kono
parents:
diff changeset
23 }
kono
parents:
diff changeset
24
kono
parents:
diff changeset
25 class B {
kono
parents:
diff changeset
26 public:
kono
parents:
diff changeset
27 B() { fn3(); }
kono
parents:
diff changeset
28 };
kono
parents:
diff changeset
29 class C : A {
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
30 bool m_fn1(PCCRYPT_OID_INFO) { m_fn3(); return true; }
111
kono
parents:
diff changeset
31 int isSupportedByProvider_algId;
kono
parents:
diff changeset
32 PROV_ENUMALGS_EX isSupportedByProvider_outEnumAlgs;
kono
parents:
diff changeset
33 PROV_ENUMALGS_EX isSupportedByProvider_enumAlgs;
kono
parents:
diff changeset
34 bool m_fn3() {
kono
parents:
diff changeset
35 while (1) {
kono
parents:
diff changeset
36 if (fn1()) {
kono
parents:
diff changeset
37 if (fn1() != 259)
kono
parents:
diff changeset
38 fn2();
kono
parents:
diff changeset
39 break;
kono
parents:
diff changeset
40 }
kono
parents:
diff changeset
41 if (isSupportedByProvider_algId)
kono
parents:
diff changeset
42 isSupportedByProvider_outEnumAlgs = isSupportedByProvider_enumAlgs;
kono
parents:
diff changeset
43 return 1;
kono
parents:
diff changeset
44 }
kono
parents:
diff changeset
45 return 0;
kono
parents:
diff changeset
46 }
kono
parents:
diff changeset
47 };
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 void fn4() { B(); }