view gcc/testsuite/g++.dg/lookup/using53.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 04ced10e8804
children
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 "redeclaration" }
}