<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/129851>129851</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Why Isn't `-Wsign-conversion` Included in `-Wall` and `-Wextra`?
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
PikachuHyA
</td>
</tr>
</table>
<pre>
I find it puzzling that the `-Wsign-conversion` flag is not included in `-Wall -Wextra`. Is there a specific reason for this?
Here's a simple example:
```c
// demo.c
#include <stdio.h>
int main() {
unsigned long a = 1;
signed long b = 2;
printf("%llu\n", (long long unsigned int)(a + b));
return 0;
}
```
Testing it with the latest Clang compiler:
```
$ ./bin/clang demo.c -Wall -Wextra
$ ./bin/clang demo.c -Wsign-conversion
demo.c:6:49: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
6 | printf("%llu\n", (long long unsigned int)(a + b));
| ~ ^
1 warning generated.
$ ./bin/clang demo.c -Werror -Wsign-conversion
demo.c:6:49: error: implicit conversion changes signedness: 'long' to 'unsigned long' [-Werror,-Wsign-conversion]
6 | printf("%llu\n", (long long unsigned int)(a + b));
| ~ ^
1 error generated.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8lM1u4zYQx59mdBlYoEhTHwcdFLvC-tZDgZwpaSyxpSmDpJLNHvrsBSWlSbrdYi8pYJgazgc5vz8xyns9WqIa5APIc6KWMM2u_lX_ofpp-fLSJN08vNQXvGo7oA54X759M9qOGCYVMEyEkLPDY6xy6Gf7RM7r2ULO8GrUiNqjnQNq25tloAG13eKVMXh4pK_BKchZihcfazlChf5Ovb7qHh0pP1u8zg7DpD2IFlgDrPlCjoAXPsbq290Q0lcVVxDNFgE52359NHgLvMWBbnO62WK_DoI4-TDoOZ1A_LKlahvwprQFXgKvEIoHYA0i4mJXUgOa2Y6oEMQZMxCv7vfObnXy3Xl32obrWo8Dl8YsIE92NU4IvFxT1r-_j9A2AK-AlwqBP2C3GtXbYY7C4iyybQeK8_uetz5-Ix-iTDrgsw7TqpRRgXzAk1F2xH6-3bUh9z20ldERU-BtF0G0_ZqwAcQP2uGe-l_h_3warNmlEE0OojlWIBp8Vs5qO8bPKKnudcC3HOwnZUfyO2VL3sdI4EXkBrzAMEfrg0ZxG-TD9xeQ5x1jjlCcPkMfXAv_iSDjq8peu8ORLDkVaEh_ghs5N7uf5bcGfwq9rTI__YjjBhH_D4wbkY8Q3z3aZKjFUIlKJVRnxTHLcikKmUy14pSTOA68JHnNRSaJyyLrKjXwgXUlJbrmjEsmmGQV41KmXdZ1ZXlVJRuuJc8GODK6KW1SY55u6ezGRHu_UJ3xqpRZYlRHxq8zlHNLz7h6Y-_ynLg6Jh26ZfRwZEb74N_KBB0M1Y_TC168BV6EH47Ty7-M0Liv7LDZr8MURJssztRTCPco9Db_Rh2mpUv7-Qa8jcfvy-Hu5t-pD8Db9dIeeLt39VTzvwIAAP__5s3Yzw">