[C++ PATCH] Deprecate -ffriend-injection
[official-gcc.git] / gcc / testsuite / g++.dg / ipa / pr64068.C
blob008fab1e1e6d838881b8449bb34567662eace1b3
1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
4 typedef int PROV_ENUMALGS_EX, PCCRYPT_OID_INFO;
5 class A {
6   void m_fn2();
7   virtual bool m_fn1(PCCRYPT_OID_INFO);
8 };
9 int fn1();
10 void fn2();
11 void A::m_fn2() { m_fn1(0); }
13 bool fn3() {
14   for (;;) {
15     if (fn1()) {
16       if (fn1() != 259)
17         fn2();
18       break;
19     }
20     return 1;
21   }
22   return 0;
25 class B {
26 public:
27   B() { fn3(); }
29 class C : A {
30   bool m_fn1(PCCRYPT_OID_INFO) { m_fn3(); return true; }
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   }
49 void fn4() { B(); }