https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66639
D <dragondreamer at live dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dragondreamer at live dot com --- Comment #8 from D <dragondreamer at live dot com> --- This bug is not still yet for __PRETTY_FUNCTION__. The sample code below does not compile even with GCC 7 (however, works fine in Clang). ////////////// constexpr bool str_equal(const char* s1, const char* s2) noexcept { return !*s1 && !*s2 ? true : !*s1 ? false : !*s2 ? false : *s1 == *s2 ? str_equal(s1 + 1, s2 + 1) : false; } int main() { static_assert(str_equal(__PRETTY_FUNCTION__, "int main()"), "test"); } ////////////// <source>: In function 'int main()': <source>:12:5: error: non-constant condition for static assertion static_assert(str_equal(__PRETTY_FUNCTION__, "int main()"), "test"); ^~~~~~~~~~~~~ <source>:12:28: in constexpr expansion of 'str_equal(((const char*)(& __PRETTY_FUNCTION__)), ((const char*)"int main()"))' <source>:12:5: error: the value of '__PRETTY_FUNCTION__' is not usable in a constant expression <source>:12:29: note: '__PRETTY_FUNCTION__' was not declared 'constexpr' static_assert(str_equal(__PRETTY_FUNCTION__, "int main()"), "test"); ^~~~~~~~~~~~~~~~~~~ Compiler exited with result code 1