https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69736
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (fn1)(); is no longer the same as fn1(); But rather it returns an rvalue reference. So it no longer includes the default arguments as part of the type. That is function types don't have default arguments.