https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70353
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|static_assert + assert + |[5/6 regression] ICE on
|c++14 crashes GCC |__PRETTY_FUNCTION__ in a
| |constexpr function
--- Comment #6 from Martin Sebor <msebor at gcc dot gnu.org> ---
GCC 4.9 doesn't crash on the code so technically this could be considered a
regression. Although 4.9 doesn't support C++ 14 constexpr functions consisting
of more than just a return statement, one might say it's not regression. But
the 5.x and 5.0 both ICE even on the test C++ 11 case below, so I think
considering this a regression would be appropriate. I've taken the liberty to
do that and also to adjust the Summary to better reflect the root cause of the
ICE.
$ cat v.c && /home/msebor/build/gcc-4.9.3/gcc/xgcc
-B/home/msebor/build/gcc-4.9.3/gcc -S -Wall -Wextra -Wpedantic -std=c++14 -xc++
v.c
constexpr int f () {
return __PRETTY_FUNCTION__ [0];
}
constexpr int i = f ();
v.c: In function ‘constexpr int f()’:
v.c:3:1: error: body of constexpr function ‘constexpr int f()’ not a
return-statement
}
^
v.c: At global scope:
v.c:5:22: error: ‘constexpr int f()’ called in a constant expression
constexpr int i = f ();
^