43 lines
767 B
C
43 lines
767 B
C
/* Verify that sched re-inserts needed scopes properly. */
|
|
/* { dg-do compile } */
|
|
/* { dg-options "-mcpu=ev5" { target alpha*-*-* } } */
|
|
|
|
template <class T>
|
|
inline void foo()
|
|
{
|
|
void (T::*x)() __attribute__ ((__unused__)) = &T::bar;
|
|
}
|
|
|
|
template <class T>
|
|
struct D
|
|
{
|
|
void bar() {
|
|
}
|
|
T i;
|
|
};
|
|
|
|
template <class T>
|
|
struct E
|
|
{
|
|
void bar() {
|
|
foo <D<T> > ();
|
|
*i-- = *i;
|
|
}
|
|
T i;
|
|
};
|
|
|
|
struct A {};
|
|
template<typename T> struct B { typedef typename T::t t; };
|
|
template<typename T> struct B<T*> { typedef T& t; };
|
|
template<typename T>
|
|
struct C
|
|
{
|
|
T b;
|
|
explicit C (const T& i) : b (i) { }
|
|
typename B<T>::t operator* () const { return *b; }
|
|
C operator-- (int) { return C (b--); }
|
|
};
|
|
|
|
template void foo <E<C<A**> > > ();
|
|
template void foo <D<C<A**> > > ();
|