https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116127
Bug ID: 116127
Summary: __builtin_lgamma(1.0e+0) is not a constant expression
Product: gcc
Version: 14.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: tomerv at gmail dot com
Target Milestone: ---
The other builtin math functions are constant expressions, e.g. this compiles:
static_assert(__builtin_tgamma(1.0) == 1.0);
static_assert(__builtin_log(__builtin_tgamma(1.0)) == 0.0);
However, this does not:
static_assert(__builtin_lgamma(1.0) == 0.0);
The error is:
<source>:5:37: error: non-constant condition for static assertion
5 | static_assert(__builtin_lgamma(1.0) == 0.0);
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~
<source>:5:31: error: '__builtin_lgamma(1.0e+0)' is not a constant expression
5 | static_assert(__builtin_lgamma(1.0) == 0.0);
| ~~~~~~~~~~~~~~~~^~~~~