// checking ICE in canonical typing | |
class A; | |
template <typename> struct B | |
{ | |
typedef A type; | |
}; | |
template <class T> class C | |
: public B<T>::type | |
{ | |
} __attribute__ ((__may_alias__)); | |
class A | |
{ | |
operator const C<int> &() | |
{ | |
return *static_cast<const C<int> *> (this); | |
} | |
}; |