<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/99680>99680</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            is_constant_evaluated can evaluate to false in static class member initializer
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          efriedma-quic
      </td>
    </tr>
</table>

<pre>
    Testcase:

```
#include <type_traits>
struct X { static const int x = 1/(1-std::is_constant_evaluated()); };
int z[X::x];
```

gcc and MSVC correctly error; clang somehow evaluates it to 1.  It looks like clang somehow falls back on non-constant-context evaluation in some cases.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsUk9v2z4M_TTyhUhgSU5sH3Roml-A32GnDUNvhSwziVZZ6kS6_z79ICdZgWIAQVsg-Ug-PkvkTxHRiM1ObPaVnfmcssFj9jhOdvV79q4a0vhufiCxs4RC34l6L-qb39ZXuzyV9tGFeUQQ-p7fn_GRs_VMQv93ySDOs2N4ANHugNiyd-BSJAYfGd5A6D1IoQ5CdXJFPJZ--s7T45JkIz_iiw2zZRyF6oTqi-kdiHYv9O7SoyB9iM3u4VL8Jjafsa8DL_7kHNg4wrfvP-_BpZzRcXgHzDnlAu6CjSegNOE5vcJtAALPwAnkGuB_hpDSE0HwT_gl_2hDIBise4IUIaa4uu1Sfhjf-AbpUwQfl0IoZNO6Go0ee93bCo1slWyk7lpVnU0ju61s7NY6rTeN0kOt-2E4tmMzYGPbuvJG1aqpW9nLTkup1q4Z-q7ejL3rlNo2UjQ1TtaHdQgv0zrlU-WJZjR9v-3qKtgBAy26UCriKyxBoVSRSTalZjXMJxJNHTwxfaKw54DmnxcDZ-Nf-gp1RxsIl5WvSgiWCCacBszgo2dvg__AXM05mDPzM5WTFnUcTp7P87B2aRLqUJpfP6vnnH6hY6EOy8gk1OGy0otRfwIAAP__FjXvFQ">