<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">