blob: 2e626126d07274b363196ef1c6ea7e9186acae02 [file] [log] [blame]
// { dg-do compile }
// { dg-options "-O3" }
class ASN1Object
{
public:
virtual ~ASN1Object ();
};
class A
{
virtual unsigned m_fn1 () const;
};
class B
{
public:
ASN1Object Element;
virtual unsigned m_fn1 (bool) const;
};
template <class BASE> class C : public BASE
{
};
class D : ASN1Object, public B
{
};
class G : public D
{
unsigned m_fn1 (bool) const { return 0; }
};
class F : A
{
public:
F (A);
unsigned m_fn1 () const
{
int a;
a = m_fn2 ().m_fn1 (0);
return a;
}
const B &m_fn2 () const { return m_groupParameters; }
C<G> m_groupParameters;
};
template <class D> void BenchMarkKeyAgreement (int *, int *, int)
{
A f;
D d (f);
}
void BenchmarkAll2 () { BenchMarkKeyAgreement<F>(0, 0, 0); }