1 // PR c++/66639 - declare __func__ , __FUNCTION__ & __PRETTY_FUNCTION__
2 // as constexpr
3 // { dg-do compile { target c++11 } }
4 
5 #define Assert(expr)   static_assert ((expr), #expr)
6 #define Compare(a, b)  Assert (0 == __builtin_strcmp (a, b))
7 
func()8 constexpr const char* func ()
9 {
10   return __func__;
11 }
12 
function()13 constexpr const char* function ()
14 {
15   return __FUNCTION__;
16 }
17 
pretty_function()18 constexpr const char* pretty_function ()
19 {
20   return __PRETTY_FUNCTION__;
21 }
22 
23 constexpr const char* f0 = func ();
24 constexpr const char* f1 = function ();
25 constexpr const char* f2 = pretty_function ();
26 
27 Compare (f0, "func");
28 Compare (f1, "function");
29 Compare (f2, "constexpr const char* pretty_function()");
30