view gcc/testsuite/g++.dg/lookup/using53.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
line wrap: on
line source

// PR c++/20420

class B
{
protected:
  enum E { E1, E2, E3 };
  struct S { int i; E e; };
};

class D : private B
{
public:
  using B::E;       // { dg-message "previous" }
  using B::S;       // { dg-message "previous" }

private:
  enum E {};        // { dg-error "conflicts" }
  struct S {};      // { dg-error "conflicts" }
};

template<typename T>
class BT
{
protected:
  enum E { E1, E2, E3 };
  struct S { int i; E e; };
};

template<typename T>
class DT : private BT<T>
{
public:
  using BT<T>::E;   // { dg-message "previous" }
  using BT<T>::S;   // { dg-message "previous" }

private:
  enum E {};        // { dg-error "conflicts" }
  struct S {};      // { dg-error "conflicts" }
};

template class DT<int>;

namespace N
{
  int i;
}

void
f ()
{
  using N::i;
  using N::i;       // { dg-error "declared" }
}