https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116366
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note it is unrelated to member objects too as shown by: ``` template<class T> auto declval() -> T&; static int x; template<auto * M> using mem_type = decltype(*M); template<auto * M, typename T = mem_type<M>> void set_mem(const T& v) { *M = v; } static constexpr auto p = &set_mem<&x>; ```