https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77907
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- This happens during cp_fold, after folding CALL_EXPR arguments we get: SomeFunctor::SomeFunctor (&functor, <<< Unknown tree: ptrmem_cst >>>); but maybe_constant_value turns it into: VIEW_CONVERT_EXPR<struct SomeFunctor>({.memberFunction_=(struct MemberFunction) <<< Unknown tree: ptrmem_cst >>>}); But, given that this is a constexpr constructor rather than function call, we actually want to initialize functor to that value, i.e. functor = VIEW_CONVERT_EXPR<struct SomeFunctor>({.memberFunction_=(struct MemberFunction) <<< Unknown tree: ptrmem_cst >>>});