--- Comment #4 from bangerth at dealii dot org 2006-09-27 04:50 ---
This code can't work. The check() function is not a virtual function,
so calling
((&broken)->*func) ();
is translated to
( ((Base*)(&broken))->*func) ();
because func is of type
void (Base::*) (...)
Then, when you
--- Comment #3 from pinskia at gcc dot gnu dot org 2006-09-27 02:51 ---
Maybe it is not invalid but still undefined so I don't think this should work
at all.
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
---
--- Comment #2 from pinskia at gcc dot gnu dot org 2006-09-26 20:56 ---
This code is invalid and should be rejected as the function types are
different.
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #1 from gcc-bklyn at sneakemail dot com 2006-09-26 20:42
---
Created an attachment (id=12332)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12332&action=view)
Test Case
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29243