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);
      |               ~~~~~~~~~~~~~~~~^~~~~

Reply via email to