<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/83135>83135</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
"missing default label" when all enum values are covered
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
mkmkme
</td>
</tr>
</table>
<pre>
Hi, I have a code snippet containing `switch` statement that always raises a warning: https://gist.github.com/mkmkme/eeb37b9af0869e00e0a2a45ae3c5aa61
Here in the code `switch` statement covers all possible `enum` values, but when I compile it with
```
clang++-18 -std=c++23 -Wall -Wextra -Weverything llvm-test.cpp
```
I'm getting
```
llvm-test.cpp:21:3: warning: 'switch' missing 'default' label [-Wswitch-default]
21 | switch (type) {
| ^
1 warning generated.
```
If I add `default` label there, I'll be getting
```
llvm-test.cpp:55:3: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
55 | default: break;
| ^
1 warning generated.
```
I think the first one is false-positive.
My setup:
```
❯ clang-18 -v
Ubuntu clang version 18.1.0 (++20240221023121+bba39443eb91-1~exp1~20240221023233.52)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/aarch64-linux-gnu/11
Selected GCC installation: /usr/bin/../lib/gcc/aarch64-linux-gnu/11
Candidate multilib: .;@m64
Selected multilib: .;@m64
```
(reproduced the same behaviour on x86_64)
Ubuntu 22.04. Clang installed via script from apt.llvm.org
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVU2P2zYQ_TX0ZSBBHOrz4IM_omYPPbVFjgUljS12KUogKXv3kt9eUJKTTboJUCCAIcLkI-fx8c2MdE5dDdGeZUeWnXdy9v1o98Pz8DzQrhm71_1HxfAET9DLG4GEduwInFHTRB7a0XipjDJXYHni7sq3PcsTcF56Gsh48L30IPVdvjqwUjlyIOEubdjDxAF67yfHxIFhzbC-Kufjq_L93MTtODCsVyYMa6JGFE0lL0mZV5QklEiUaSZJtJmUOWfJmSWH9fuRLIEy4Hta-f6AXDveyDqQWsM0OqcavUDJzEMA3qSeyYXbN7OHe08GnqAdh0lpAuXhrny_hc2T7bf8bbU0V4ZHhseIlxA53zFxbtcZFBB9CiGjT_TirQzjjeyr74OMWt-GyJPzcTtN7x6-fp8YFgNcyfsg5Hu4b08SB-RMHETQ_I38DItNGCxgUM4tT4lFRxc5ax9mtWxIA8uO0acVGj0Ws_MaCQCQAytOALBCgGHpXydiWAErjl9gABuMZR_WSf5gA1cyZKWnLv7ZtS_wBLLrwjM9aOTJxtH3ZGkxK8NCa2jofwmUZe8ItAXZIijzuOC9V23_1kDBNIG_Gs1mnFWzBUJd9GPtsmwT5bEmDtBYks9M_ErlIBjsecmJi7LOw2gIlIOL1I6iaXTKqxvFb_f8_gqO_BzEef_kD8iqMzvUsDh-8fptXfqrmY2f13kIIgVdeBnzOAnm2FIhwTRB5AkKjpzhsWmkqNJUUFPxiH-ml4l_fgNCIeIMGVZrjD-lvdIil5S27fM0ms2zGe8m0srML9HVzBuwtyQ7GMaOdICHy75sshjnpdbUnZVdE6KenWVYN8qsiHqcTQetNJ3qpCf47XQCte5aXvs_u7COY4a1Vk2oaG3LsH7w-8oLa76VrD9IU-up--UHn75QHmbtVdgmDhAHV6XJkKffhf8Z6F1HMSwtTXbs5pa6xVdODgQN9fKmxtnCaOClzP_O0y8v9o03EOMkjeG0WEQ93gFuSoJrrZo8XOw4gJx8HFI1Hu111-1FV4lK7mjPi6RKUsGF2PX7shAyrcos53l1yXiadNjxNrm0De9Komyn9puPCp5y5CJuZJkVjbg0ZSGK9sJZmtAglf4aSzk3074UXGS7Jf3d0iURDd1hWWSIoWna_VJKmvnqWJpo5bz7eopXXtOeIT6q6zcVhSGujeVRQh61Q1qCrXTsZqv33_fJNy0yhNqGaLLjP9R6hvVC0DGslwv8GwAA__-_f2QB">