<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/83433>83433</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-tidy] False positive bugprone-implicit-widening-of-multiplication-result when multiplying literals
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
chrchr-github
</td>
</tr>
</table>
<pre>
~~~c++
long long f() {
return 1 * 2 * 3LL;
}
~~~
~~~
<source>:2:12: warning: performing an implicit widening conversion to type 'long long' of a multiplication performed in type 'int' [bugprone-implicit-widening-of-multiplication-result]
2 | return 1 * 2 * 3LL;
| ^
<source>:2:12: note: make conversion explicit to silence this warning
1 | long long f() {
2 | return 1 * 2 * 3LL;
| ^~~~~
| static_cast<long long>( )
<source>:2:12: note: perform multiplication in a wider type
2 | return 1 * 2 * 3LL;
| ^
| static_cast<long long>( )
~~~
Clearly there is no danger of overflow here. Also, the suggested fix of adding a `static_cast` on a literal is rather silly.
https://godbolt.org/z/vjhzEqMKc
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVMFu4zgM_Rr6QjhQ6Di2Dz6kSXPZ2W9YyDJja1aRspKcTuaQb1_IddNuL1MMNghkAXrUI9-jKEPQg2VuoXyC8pDJKY7Ot2r0avT5oOM4dVnn-lt7v98V0FP6iwOInXF2wHk5AdVADUK1HCEieo6Tt7hGoB3SvBbfvkGxQKA6vG7u9_unDRT74CavGIpnKHYExW6dFnyR3mo7pO2F_cn5s7YDSov6fDFa6YgvuucEQeXslX3QzmJ0GG8XRqDqkTJQhe6EEs-TiToFy5iwy7Xco7aPKG1jwkP51E3DxTvL-Rth_kaYu1P-37tyz2EyEcrDuyaEUO3xC-rMmAd4-UH5_AuBrIucvmf5N3-UgH8s-kSHQRu2ijGOOjwUfZCuZ9JfWPtaxm-WcH_4_I4IUUat_lIyRCj27y4Vz0A1AjVfrHux77Or2qKcW8PPnv7vfnw--GI5DyH2hqU3N4wje0Yd0DrspR3YpyZ1V_Yn414wna5wZ4ID2icwhmkYOETu8aR_zA3d9_OTQNiKj1lsBbokgtGRvTSJw8tEl9rB3FaveYwxXgIUO6Aj0HFwfedMXDk_AB1_Ah2v38efz__8-YfK-rbom6KRGbfrSjS0bqjeZmO7EZUoFW2pUmJLNW0320bUnZSVKNZNXWW6JUEbQdSsS1GL7Yq5rGvesFB1x6dOwkbwWWqzMuZ6TtyZDmHiti42RZEZ2bEJ86wiUkbaIY-6vwFRml2-TUF5Nw0BNsLoEMP7NVFHM0-5D2HlAY_SBMaLCzrqK-NvvHB8Gdm-tdwtyb-oHLLJm_aTqPNAXSl3Bjqm3JZPfvHuO6sIdJzrDUDHueR_AwAA___QerTm">