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

    <tr>
        <th>Summary</th>
        <td>
            C++23's consteval if crashes Clang Static Analyzer
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            bug,
            clang:static analyzer,
            crash,
            c++23
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          necto
      </td>
    </tr>
</table>

<pre>
    A regression from v19, Static Analyzer in Clang v20 crashes when it encounters `if consteval`, see [Compiler Explorer](https://compiler-explorer.com/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIApACYAQuYukl9ZATwDKjdAGFUtAK4sGe1wAyeAyYAHI%2BAEaYxBLSAA6oCoRODB7evnoJSY4CQSHhLFExXLaY9jkMQgRMxARpPn4ldpgOKVU1BHlhkdGxttW19RlNA53B3YW9XACUtqhexMjsHAoExF4OANRCmyYA7FYaAIKbm8EEm3FruwDMACKbXGYmN4cn2xA75gBs07sHJmOp1OeComzQDFWmAAbmJ/lY9ndAe99kigR9pi83qiscjkedNkQ4hA/vs3sDtpsEFxcejTjsEGZbg9qbT3qdiJgCAsGI9NgB6TYQakAOiuxGZLxZZjFa0xrzxiORHFmtE4AFZeH4OFpSKhOG5rNZNgp5otMLszDceKQCJoVbMANYgdVcEV7DRcJ5cACc6vVNz26o0kmkao4ki19r1nF4ChAGlt9tmcFgMCg6eFKFQLDidGi5EoaFz%2BZiyAMRjMnqYCiUtT4dAI0XjEAi0YiwRqAE9ODaO8xiF2APIRbQtO3cXjFtiCIcMWg9nW8LARLzANxiWjxyekLAsQzAcRL3d4TmtaGYbe6zCqFpeJu93jnMrR2h4CLEbseLDRtZ4FiPqQF7EBEiSYHcmD7kYb5GMmfAGMACgAGp4JgADuQ5xIwgH8IIIhiOwUgyIIigqOox66CUFbGEalj6O%2B8aQLMqBXCk24ALTsYYYhdgAXha7GrOgUqmJY1hWrwqDAcQeBYIxJKlOUKQuAw7ieA0/iqV0BRFJkiTJAIQyNKQWQGQw2k9MUinjm0oxGXozStAI7S1BZkxWasHT2SMHRubpMxzAsSwSKqGpRse%2BocJsqgABzfOx3ySOC1GbFWIpuhoQo1nWFQKH8EC4IQJCWta0y8BOWjTLMCCYEwWAxApzrBvonCRqQAGSBoIqhgG6oxXsNxmJIMUxT6NykNquqRXGCZJkuKaZkg8wEHE96FhAxZ5vQxChKwyyxfFiXJQeqVdRlvCYPgRAyegei4cIojiER92kWo0aUaQaGfnEj6hRwmoTdGkVDveq0XKgYIHQlSXlidaUZVltbRLl%2BUeCW20lTM5XJtVtX1ZQTouom4ZtZNkmxrYs0VQ6LUcGYvAdV1PU3H1A1DSNY2AxFFPUwt8Cpog2bowWFAbTmW29LDRi%2Blw2XIw2tBNsQLZtse/bdoB6uDiOY4OIB06MAQc4LtGK5rhutBboBe4Hkeur4GejgXleF23sg97LDaz7hrqb4fl%2BGDLLqf4ATuwGgUoEFQYewSgPN8FMIhKHoZh2E7vd%2BFPdIL1KG9FEgGY%2BgHigtE2H78nMaxAgcVxzALvxmyCQQwn3KJViWBJerSbJl7wLMjkVCpanpMZgTjDpUwmfpFTeVP2QpH5k8D7ZXnqcM1lOZUoyLx5dlr8ZnmuePlkhYF5qn%2BGANkzGUVQ0dUvAI8PrpSKmUQHLtRsflhXXZjZVzZVQmzUSYMxAKGV%2BcV1Q%2BjML6SQ1pAx7C5lNCm8ZEy81IALLMy0wbrU2qWXabBOB3xhilX0L834fxRhdK6JBZJ3VkJnQi2dZCvXIrqXQhcvpMB%2BpOP6V8gacBBite8mwIbRTitDY6Rgn7kMRjlL%2BQo0YSwlOYQa/9ea4zqr0RqRNaakwERwGaaCca03pu1F0z9/SSESk8b4QYvQaEQdfaaACabOmGiKMwPoRp7BiiGaxQ0fRhk4DccKyDDGuKqqYsJ5MIkaKAs2ZSkggA%3D%3D%3D):
```C++
struct S {
  int ptr = 12;
  S(S &) {
    if consteval {}
  }
  S();
};

int top() {
    S h1;
    S h2 = h1;
    return 1 / (h1.ptr == h2.ptr);
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxcVsmSq7qy_RpqQpwdIDozqIFojQFjgTuY0cgg03cG--tf2FX3nX1vhAIp-5XkIFc8jiRvMP6mBIUStK94nop2-G5wOrVfSZs9vyE94HzA40jahr4NbU0_WJkCKh1M8URSGjZx9XzhgSYNrVZxk9MPwNDpEI8FHumlwA1NJho3aTs3Ex5GmhIZcqPTthkn_IgrSmTe2UaMaUpQ1LbuSIUHWl-7qh3wQAkaBTbFNHUjxUEKGBQw0l-nf_Cv05-0rT8m7kVx0AudvICG0mcCUlcYLodQcdVa8TPFgQaL1BTGB12F7mtRJhdKEC3G5CLlCf1cticU6vA5koRBV6iuG0WBdqs0RwhPcNst0H1AIzwG0y5nNQt2UA0hmsO5rOQIHhfNvmfQNE4TtPnRxOwCnxg-Q7i1KCAABepxuCpOAKHYqq3vaYqEH027C0JeRcG2cAx9vTpxKN9LF-W-u0K_OzR8lXW5Z59PrLKtijIz12m6sLJf7aHAKVx4ka9QPU19gVf3Pm5hq68G78G9r9bPEEpGGEPLTuqNrtecMcyL5kLVTq5mWO_5tAErlIRcGRlp3O5qr2M9rLb1C2nGpYYwqXcUMKpQbjKIZbkkuS93ZMP1ZEzvJc72JeKL91weIzdqUzfqxpri-_E-6maU5HKfHLk-I7tchaNpyftcEY8hikvokXk1I2eNorsRM-vwWonnb4160nloRHjLe0YX2IVnCsM-2ued0E6uM760FNtI3bXnxIX7MM_OqX6WND_dCSlUU_Fx3r-A2DJlXcYtXxJWHtjG4NUCmtUkT3Vq5K6ai9iwDeRoJDOJoLex8fpMJyJP6Pp3t-lDlZymI59Bi7nedUiYkCx-D3XZ02JvsxIDwIPlJ2jyuPR6NyaiWql7yeXmsnGg77zgfiWX-_rEpQNH9IKp73AZf6yn2AwTLL7U3ujwbpa5e-MOPih41dGTETuaP0W8QQ49MiRd0UkQbtNak8owEUy3vkHThWoOzY7f5VCbkbBaS77dWJZVEG855U_LInnvtasoqicjMfW4uovep7dNjBy3V65qCXjoHMcwDIssh9cilszBy099vQvZ4jIsvQZThJXQWnd25Z1sNMNFIhgyFDBIf2YU39iV5LiDFnrubXRBJlpAKbsn0txrpl3Na_sKJmhJAatE5XqJx-0RBO7Wn5POXV9wDJbA7s3OH_EHWJvuxj6Hyuvmrdwz8FTWTIyL1c1Fi1q2uRjI3m50lbfQTr1MMfPcKN7lfnRcVQ315QJX2L0G5dE2qt8jaAZKa_VFborteh33a72z3NN6FPfPct_PvX811WhXznYclflm0be6LBoFXCPhgVa1sJfnc70Z5LpDuD9nfvVQw0PuwyfOMeFTq70T3ZdBeWmZ-BSj2Lw1-l0s_KVuj5lZnrUH7pmrnYfWFlXBtSJZfIrO1ZT4TvVp9oTVC2Cqoytcd9N5urIROrZzW_PRFO3Leh3CkTkj0TmlZviA2Zk9nLgtC1kt2IcAroZxOC3TRu3aHCTtcjFgcqwvQHY0n3zyVwu4WguYlP2InGh6_2IjyVpFnDXihbxnKYzoQpTyzmTawlDMk5K0Cua3JZ4H3sT3_FphA3BjLkuOFr-kYugT_vYD3tQcp7_x8DgvZn5qdQOFeAnyw35juFZhb9uoALr0yD7OxiGzHNY2ZUPPzfCjyrckn3SwlTaNG68wT8_rCzqPtX6qCC0NZ-_O5KLs8BAku0paHPdentUubjo3yo93rTst9a0zjvh8AKjbCuVGk6Jr06cuW3nRqX06q5BVwyZq6hkfqrIIDaFvfpDDffkyT2fEZKcHtDaHoQvs-oS2zuSPt6q4XqN7dH5FZ1S_TkHortA2z5_I9Myiz-PuOmKA2A6ukipUe7XeRPpzw1rQcdwnsyTDCfSXa5wonsKtBamujLPh-NvqF5kt7pRox53LXYMIyCL1cbWG_oqK9NG5yid75x3E8yaPU0UhE97Ui5X4RzJpoejnjVS6_r1yPo6oZcJgqbwQxRQwZBzzr35g_N7fx3G56P5ixrGaxgzXzazBvGQKGEGgB-Um4VH4QLGOslscQzVOvNoktrscWr-TFELMeEXMzS9KXktT-6lp5mz3fTjuBNcqYxuOIArKPIcUEDjt74_8XssMfK_xz1EpoLwPA8dpmNOJDmhKeos0TZqJ7qaBpjiNZgHF_WgDCmwCmgIiBeT_d6XpvznCRy1pH8t_7nfYp_o74K38eTDwXWVqux_zXwkDumD_U_MjgQ-Qv5UDnuahoVmaAgb9ph3sn1-8H0_wlv6r5l99f2XfXCZzcvyFv1lJAKIk85L0VXxzAtjwDGA5DsgbgFNWvMW8KAIpjTcykG9f5BswQGAkVmQFwHPSH5bjUyylgoQznpHwhuIZXMek-lNVj_pPO-RfZBxn_M3yMsuKX1Wc4Gr8MDgAkjmnAKCASgGQvukYxcHxh6nFv0ztX_ubpP0r_QwOcG-NoH0N3-9y_yRzPlI8U5FxGv8FMJGpwt_qvyHS-Ne43rP7JYA_lPB_uOLXPFTf_83pcjIVc_JL5N5lfq9_uqG943R6b5930yMFjN--H9_g_wIAAP__Uv9qtQ">