[Bug c++/99200] __PRETTY_FUNCTION__ used as template parameter causes internal compiler error (segmentation fault)

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Feb 22 15:32:32 GMT 2021


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> ();
}


More information about the Gcc-bugs mailing list