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

    <tr>
        <th>Summary</th>
        <td>
            Clang 17.0.6 and Clang 18.1.1 crash
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    Source code to reproduce:

```
#include <iostream>

enum MyEnum { val_A, val_B, val_C, val_D, val_E };

MyEnum  GetEnum (int i) { return i%2 ? val_A : val_E; }

int  main () {
  switch (GetEnum (0)) {
 default:
      break;

    case val_A:
    case val_B:
 case val_D:
      return 1;

    case val_C:
    case val_E:
 std::cout << "xyz" << std::endl;
      break;
 }
}

```

Can be reproduced here: [wandbox](https://wandbox.org/permlink/dYzozeVaEZVp4ZQo)
(older version can process and run the code, e.g. Clang 15.0.7)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8k01v8ygQxz_N-IIeCwY7Lwcf8uY97WG1UqXtZYXNJPaWQAS4bfLpVzjOS6vqsSwY_sCPmWFQIfQHS1RBuYZym6khds5Xn-fL5SxQSswap8_V327wLbHWaWLRMU8n7_TQEsgV8C3wWzvj038douxtawZNDOSmdyF6UkeQu-c9ZIcj-_O8Sx3M1-xdmX9XgJvRWN-Mzc3Y3owdg_kW5PqZNWHYHxSvPFz0NrIecDmyPcXB2zQukYGsr4cxkKsrEuR6pD4h0352VL1NsIlznWEsfPSx7dLE04EccPl1naa9Gky854qNX-NJvX3zP-mtCjQlQf4krx_yXdt-Y09xit_hNz_jdw85RJ0GctW6IaYbBLlhgPh5vgDiTbivIqvN_cCfYnxK7dccfy-bsd0oyxp6lJpmHflUcAzK9YeyunGfUG4BF12Mp5B8wBqwnqZy5w-A9Yn80fT2DbDW_1zchV7U7vXlVLz-5dI9TWW6cEaTZ-_kQ-8sa5VlJ-9aCoEpq5kfLIvdtfxT-VF-yNnGKHtgosx5PgdcZrqSeimXKqNKzAWXkvNZmXXVflHsNfFCkihRzUotkBdqNm_Eci_aUmV9hRwLLoUUohC8zPdNudiL2bLB_ZyIEApOR9Wb3Jj3Y4or60MYqFqUfIaZUQ2ZML5fxDY5BYjpKfsqrf_VDIcABTd9iOFBiH00VE0xzHOez8ZIJ2GRi1yw1qvQZYM31dcMH_rYDU3euiNgnYhT9-vk3X_URsB6dDAA1qOP_wcAAP__GIc_wA">