view gcc/testsuite/g++.dg/cpp1y/func_constexpr.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// PR c++/66639 - declare __func__ , __FUNCTION__ & __PRETTY_FUNCTION__
// as constexpr
// { dg-do compile { target c++11 } }

#define Assert(expr)   static_assert ((expr), #expr)
#define Compare(a, b)  Assert (0 == __builtin_strcmp (a, b))

constexpr const char* func ()
{
  return __func__;
}

constexpr const char* function ()
{
  return __FUNCTION__;
}

constexpr const char* pretty_function ()
{
  return __PRETTY_FUNCTION__;
}

constexpr const char* f0 = func ();
constexpr const char* f1 = function ();
constexpr const char* f2 = pretty_function ();

Compare (f0, "func");
Compare (f1, "function");
Compare (f2, "constexpr const char* pretty_function()");