struct P {};
    
template <typename >
struct O 
{
    struct I;
};
template <typename T>
struct O<T>::I::S : P {}; // { dg-error "" }
struct P {};
    
template <typename >
struct O 
{
    struct I;
};
template <typename T>
struct O<T>::I::S : P {}; // { dg-error "" }