111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O2" } */
|
|
3
|
|
4 typedef int PROV_ENUMALGS_EX, PCCRYPT_OID_INFO;
|
|
5 class A {
|
131
|
6 void m_fn2();
|
111
|
7 virtual bool m_fn1(PCCRYPT_OID_INFO);
|
|
8 };
|
|
9 int fn1();
|
|
10 void fn2();
|
131
|
11 void A::m_fn2() { m_fn1(0); }
|
111
|
12
|
|
13 bool fn3() {
|
|
14 for (;;) {
|
|
15 if (fn1()) {
|
|
16 if (fn1() != 259)
|
|
17 fn2();
|
|
18 break;
|
|
19 }
|
|
20 return 1;
|
|
21 }
|
|
22 return 0;
|
|
23 }
|
|
24
|
|
25 class B {
|
|
26 public:
|
|
27 B() { fn3(); }
|
|
28 };
|
|
29 class C : A {
|
131
|
30 bool m_fn1(PCCRYPT_OID_INFO) { m_fn3(); return true; }
|
111
|
31 int isSupportedByProvider_algId;
|
|
32 PROV_ENUMALGS_EX isSupportedByProvider_outEnumAlgs;
|
|
33 PROV_ENUMALGS_EX isSupportedByProvider_enumAlgs;
|
|
34 bool m_fn3() {
|
|
35 while (1) {
|
|
36 if (fn1()) {
|
|
37 if (fn1() != 259)
|
|
38 fn2();
|
|
39 break;
|
|
40 }
|
|
41 if (isSupportedByProvider_algId)
|
|
42 isSupportedByProvider_outEnumAlgs = isSupportedByProvider_enumAlgs;
|
|
43 return 1;
|
|
44 }
|
|
45 return 0;
|
|
46 }
|
|
47 };
|
|
48
|
|
49 void fn4() { B(); }
|