https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99200
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Slightly reduced: template <int N> struct A { constexpr A (const char (&s)[N]) { for (int i = 0; i < N; i++) v[i] = s[i]; v[N] = 0; } char v[N + 1]; }; template <A s> struct B { constexpr operator const char *() { return s.v; } }; template <typename T> const char * foo () { return B<__PRETTY_FUNCTION__>{}; } template <typename T> const char * bar () { return B<__FUNCTION__>{}; } int main () { auto a = foo <int> (); auto b = bar <double> (); }