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

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-01-04
                 CC|                            |msebor at gcc dot gnu.org
      Known to work|                            |5.1.0
            Summary|Member function pointer     |[6.0 regression] Member
                   |template flagged with 'is   |function pointer template
                   |not a function template'    |flagged with 'is not a
                   |                            |function template'
     Ever confirmed|0                           |1
      Known to fail|                            |6.0

--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
Confirmed.  The following simplified test case also reproduces the error with
today's top of trunk.  5.1.0 compiles the test case successfully so this is a
regression.

$ cat u.cpp && /home/msebor/build/gcc-trunk-svn/gcc/xg++
-B/home/msebor/build/gcc-trunk-svn/gcc -S -Wall -Wextra -o/dev/null -std=c++14
u.cpp
struct A
{    
  template <int>
  static void (*pf)();
};

template <int>
void foo () {
  (void)A::pf<true>;
}

void bar () {
  foo<0>();
}
u.cpp: In instantiation of ‘void foo() [with int <anonymous> = 0]’:
u.cpp:13:10:   required from here
u.cpp:9:9: error: ‘template<int <anonymous> > void (* A::pf)()<<anonymous> >’
is not a function template
   (void)A::pf<true>;
         ^

u.cpp:9:9: error: ‘pf<true>’ is not a member of ‘A’

Reply via email to