https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105779
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #3) > Here is a even more reduced testcase which is rejected rather than crashes. > It is also is rejected on the trunk: Here is the error message for the rejection (which does not even make sense since to the eye, the type looks exactly the same): <source>:13:15: error: invalid conversion from 'int (*)()' to 'int (*)()' [-fpermissive] 13 | int t = method(struct1<1>::apply); | ~~~~~~^~~~~~~~~~~~~~~~~~~ | | | int (*)() <source>:11:17: note: initializing argument 1 of 'int method(int (*)())' 11 | int method(int(*f)()); | ~~~~~^~~~