https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65333

            Bug ID: 65333
           Summary: [5 Regression] error: incomplete type used in nested
                    name specifier
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org
                CC: jason at gcc dot gnu.org

The testcase from PR65328 shows:

markus@x4 fatal % cat sequence.ii
template <typename T, T... Values> struct A
{
  using type = int;
  template <type... Suffix> using array = A<type, Values..., Suffix...>;
  void
  m_fn1 ()
  {
    array<>::data;
  }
};
markus@x4 fatal % g++ -std=c++11 -c sequence.ii
sequence.ii: In member function ‘void A<T, Values>::m_fn1()’:
sequence.ii:8:5: error: incomplete type ‘A<T, Values>::array<> {aka A<int,
Values ...>}’ used in nested name specifier
     array<>::data;
     ^

4.8, 4.9, EDG and clang accept the code.

Reply via email to