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()8constexpr const char* func () 9 { 10 return __func__; 11 } 12 function()13constexpr const char* function () 14 { 15 return __FUNCTION__; 16 } 17 pretty_function()18constexpr 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