<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylVE2T4iAQ_TXJhdJKiFFzyEHHmjnsYWu3Zn4ACZ2EHYQMEJ3ZX78NUePH7mktVGi6m8d73VSaf5U_QcKBKUdeNK-0dFG2IZ1zvcVJRJ9xtOPGXJsWV7_xW9Qf6vD6kn1EyS5KNuPvawek0VLqo1AtsUr0PTjSMCEtcZrUet8LCT7rVVC0TMZRR3Trx2gN5yq2B9uzGsiWGRKttmS0k0Z8giVwAPPlOjxsDLLODLU7-54PKUANe_Ks9Y0Rx4ZE2Y6kEX26tm6Dld5Zn4J1MZlWuyg7Z7ueh9_BegLGTIjmblcg1XsmVETXES0mVAQ_Y2RAvPVEZRsEfhfv_U48vAV3obg4CD4wSZDHkMJTeu9sHXOwB-Us6cHMaq3QotyDH9dgEdzKo3wHwtQX4aJpwICq4cLLVQB81tA7cuxAERQfjAfVGL1_8JxZx5GUk9Q08WVxa0tXeAKmEnX3EH0qIIvyK5hPWoTdE-dXpPnJ5sLdlOfvnts7ljGxF6oJIqJUKPMTAizQ7UIotA0b5AODd3E3MUcQhhMwRpt_h41nTUHfv02Vdts014jfFBLk9fXXc9iLB2aEHizKaN6BE4msWXIUUhIOe6--wYIgjDRwvCjsiDerFkLfDgZIzSzYeczLjBdZwWI2uE6b8of4nMWDkeXdUyFcN1RzRIILKQ_nv1lv9C-onb-ntQNYnOR0nS_jrqyb9TpdZdmiqpYrNGV8yat0vchrSCre0FiyCqQtoxwFoArRhhQ4j_Jd_P8IREkTmqaUZmmRrPNivshhVXCaJU2O6zqNFglgx8q5z-NfwdiUIWU1tBY3pbDOTpvMWtEqgAAYETrhJJRjrzI1dve5-0hl9NB2DpsYe8HWuofTI8AuzRwicDF1MKro3z308T2hB4Ul9dkbwIO1QsUGlAw3zwUahwuX4bZ_AI64ux4>52856</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Using an enum constant brought into scope using a `using enum` statement within a compound expression causes a segfault
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          Qix-
      </td>
    </tr>
</table>

<pre>
    Relevant Godbolt: https://godbolt.org/z/9cqnvTG3q

The following snippet fails to compile:

```c++
//namespace Bar { // fixes everything
struct Bar {
        enum Foo {
                A = 1,
                B = 2,
                C = 4
        };
};

using B = Bar;

int main() {
    using enum B::Foo;

    // Using individual `using`
    // statements per-constant
    // doesn't make any difference,
    // except when lowering from
    // -std=c++20 to -std=c++17, which
    // compiles fine.
        //using B::Foo::A;
    //using B::Foo::B;

        int f = (A|B); // segfault
    //int f = (A); // weird error
    //int f = A|B; // OK
}
```

Uncommenting the various marked lines will demonstrate a few different strange failure cases.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx1VMty2jAU_Rp7cwfGyDjghRcQJll00Wkn_QDZvrbVCMmRZEj69b2SAfNoGWGk-zycc-VS11_FT5R44MrBq65LLV2UbqBzrre0idgLrXZ0zLVp6fSHvnn1oQ5vr-lHlOyiZDM-3zqERkupj0K1YJXoe3TQcCEtOA2V3vdCoq96lRQ9JeOqIrb1a7SGvorv0fa8QthyA9FqC6MdGvGJFvCA5st11GxMss4MlTvHnpvkqIY9vGh9Y6S1gSjdwSJiz9fWbbCyO-tzsC4n02oXpedq1_vwHKwnYKxEaO68gqjec6Eito5YPqEC-oyZAfHWE5VuCPhdvo878fArhAtVi4OoBy6BeAwlPKX3wdZxh3tUzkKPZlZpRRblHuJqjZbArTzKdwSuvqAWTYMGVYUXXq4S8LPC3sGxQwUkPhoPqjF6_xA5s64mUk5Ss8SPxa1tsaIOVEpU3UP2aYAsya9wPmkRvCfOr0jzm82Fu6nOvyO3dyxTYS9UE0QkqUjmZwKYU9iFUGwbPsgHBu_ybnKOKEwNaIw2_08be01J379Nk3Z7aa4R_1JEkNfX_z1Hd_HAjdCDJRnNO9YgiTULRyEl1Lj36hsaCODQ4PGisANvVi2GezsYhIpbtPO4LtI6T3MeO-EkFuPkcTXO6nmWoDR6aDtHI0nK2kr3eBppfhnNkEGHaR4Jk7_FFOMV1oMigj57g9YKraj_QADIeaY7Hows7l5QVGAo55ROBykP559Zb_RvrJxn19oBLW0yts6e4q5YlyveNFXKkuwpXZTrdZWuEpYu0wzTMk-WseQlSltEGcnOFHEUStA-ynaxKFjCFgvG0kWerLN8vsxwldcsTZqMztUiWiZIt1zOPQ7_5oxNESCVQ2vJKYV1dnJy-rOtQgztqD4fXKdN8UN8zuLQtwi4_wLfDaUH">