[Bug c++/69098] [6.0 regression] Member function pointer template flagged with 'is not a function template'

2016-01-31 Thread ppalka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69098

Patrick Palka  changed:

   What|Removed |Added

 CC||ppalka at gcc dot gnu.org

--- Comment #4 from Patrick Palka  ---
(In reply to Martin Sebor from comment #2)
> 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 
>   static void (*pf)();
> };
> 
> template 
> void foo () {
>   (void)A::pf;
> }
> 
> void bar () {
>   foo<0>();
> }
> u.cpp: In instantiation of ‘void foo() [with int  = 0]’:
> u.cpp:13:10:   required from here
> u.cpp:9:9: error: ‘template > void (* A::pf)()<
> >’ is not a function template
>(void)A::pf;
>  ^
> 
> u.cpp:9:9: error: ‘pf’ is not a member of ‘A’

This test seems to regress between 5.2 and 5.3.

[Bug c++/69098] [6.0 regression] Member function pointer template flagged with 'is not a function template'

2016-01-31 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69098

--- Comment #5 from Martin Sebor  ---
I looks like it was introduced in r186681.  The last good commit before that is
r186667, and none of those in between touch the C++ front end.  Though the
changes in r186681 look very mechanical and not related to templates at all so
I'm not sure.

[Bug c++/69098] [6.0 regression] Member function pointer template flagged with 'is not a function template'

2016-01-14 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69098

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P1
Version|unknown |6.0

[Bug c++/69098] [6.0 regression] Member function pointer template flagged with 'is not a function template'

2016-01-05 Thread hir...@trash-mail.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69098

--- Comment #3 from hir...@trash-mail.com ---
Your testcase is really quite a bit smaller still – impressive skills! :)

Thanks for confirming and since 5.1.0 works for you, on Wandbox and
additionally your testcase doesn’t fail locally, I guess I might just have
looked at the wrong one of my two installations when I queried the version,
perhaps I forgot to prepend '.\' or something like that.

[Bug c++/69098] [6.0 regression] Member function pointer template flagged with 'is not a function template'

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69098

Andrew Pinski  changed:

   What|Removed |Added

URL|http://melpon.org/wandbox/p |
   |ermlink/DShqHOBBMDx3X0H2|
   Target Milestone|--- |6.0

[Bug c++/69098] [6.0 regression] Member function pointer template flagged with 'is not a function template'

2016-01-03 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69098

Martin Sebor  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  ---
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 
  static void (*pf)();
};

template 
void foo () {
  (void)A::pf;
}

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

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