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