blob: 5454b16edc1b6564ae516c74839dd3c948dfb161 [file] [log] [blame]
/* APPLE LOCAL file Radar 4475058 */
/* { dg-compile } */
/* { dg-options "-O" } */
struct C1
{
};
template <class T> class T1
{
private:
T * _p;
public:
T * operator -> () { return _p; }
};
class C2 : public C1
{
};
class C3
{
public:
C1 * _c3f1(C2 *k, C1 *v);
C2 * c3f1(C2 *k, C2 *v) { return (C2 *)_c3f1(k, v); }
};
typedef T1<C3> RC3;
class C4
{
public:
void c4f1( C4 * p);
protected:
RC3 _pN;
};
C2 *foo (C2 **p)
{
return *p;
}
class C5 : public C2
{
};
void C4::c4f1( C4 * p)
{
C2 * k;
C5 * n;
while ( ( n = (static_cast<C5*>(foo (&k)))))
_pN->c3f1( k, n);
}