<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/107025>107025</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Coverage][MC/DC] negative counter value ("18.4E") reported for nested ternary expressions
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang:codegen,
coverage
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
whentojump
</td>
</tr>
</table>
<pre>
Compiler explorer [link](https://godbolt.org/#z:OYLghAFBqd5TKALEBjA9gEwKYFFMCWALugE4A0BIEAZgQDbYB2AhgLbYgDkAjF%2BTXRMiAZVQtGIHgBYBQogFUAztgAKAD24AGfgCsp5eiyahUAUgBMAIUtXyKxqiIEh1ZpgDC6egFc2TEAsADnJ3ABkCJmwAOT8AI2xSEAA2cgAHdCViFyYvX39AkIys5yEIqNi2BKTUh2wnHJEiFlIiPL8A4PtsR1KmJpaicpj4xJT7Ztb2gq6lSaHIkaqx5IBKe3QfUlROLkiiAGo2FkiIVYOzAHYrC60AQQPHg/2D9QuAZgARA54nv4B6f5PSzvLRme5/SEfABiP2CkMBwIs7x44IeUKeIAOEDRGLxPyeiOxIK0BwAtBdkTxVrj8X8zO9YRYAKzJA5EynvCy0umPLHMngWdlAqAk8mc6nikEWGkQ/E0942OWPUjYIhbJivBlKu5XT5orjrejcZn8AK8fjobgeWy2A5KTbbbAS/hEbSG9YAaxAzK0hm40n4bB9fvNOnIVq4/CUID9bq4OnWcFgKE2RDSPiIlGoGDYaQYiWi7F26iCyTJyWkB1QRhM2KIpB8TE9q342EIJFIBEwBkEwjEEk4MjkwmUak0Cb0BgA7qQWGluHwjSaze6I9wAPKZjOHdA0V5litVmvGYDYlhKFStHJKA4Npst7FePMF0gS1vkeOJ9ZIbAsHBJGc/pcIG5DBr65Bhpa3DRrGn7uqsXohsB7yrpO65RvBk5JogybIGg6AvowFBUBAub5sRaC1sAAD6F5Xn0Sg0fezYCAwRCJDGEBxGucSRC0ACei78HxrCkAJG5xLo9Txnw5C5hwwgbkw9BCehOBxD4wAeBI9Axha5A4McJiSOpBCqg0ABu2D6eG2DqPUma7OG%2Bw9MJhgEHEc7iV4OBrg2BDBgZ1mkHEmTYJ82DGcA9CRKA2ECEYwBKAAagQ2DThuaTMO5faiOIkjDnlY4aGu%2Bg8IYp5oLa1geXEMaQOs6BpIx3BkgAGiedZkpgfhpGSGAhSwwDYGSxxpPm3U0GkpB7gWZKRHMpBkiNURzhx5I0INiTDaN42TWeZJbegQ0jWNqCYKgm0zXNjBkj4aSYCwHEMp8z2EQQqCWiFXY4A1QF1A0rgQO40wBBV4SLJU1RSAAnOkmTZEIYMGMUSNMMM0NjDw8OA30AxTN4HQGHjjTzJjoxJDjEyDCjFVzIMFPLFTsPrA6Ww7FIy5cKakFrpGB7lpW1bUeel6JIxd6Ns25wQPgxBkO%2BroIUhEHGiBQY%2BjwAB0yRaLDQTSIbxtG0bfPoZGsFxgh5B4RAKAkN42YQC0yVtWSShIOg05kl5xioL%2BSivRgTaHGSHtez7bAXV95Cu0oqjGD0IiR1B8mERRhbFtwpZC8eosQCxLZth2ZDdr28gDoVsjFSopXoeVYFCCwGDy52AASF5WNgzB3Jm6BZcw7buWwzet6XpCD%2Bacmj6wGBNIQ0/RkQi8wRMi%2BJ1E9Ap97S%2Bfug3gAJI9vQ9CWWwA0nUXn6qtg5d%2BrO87CdzvNp5Gp/n5flnYl1wBkkIqlzi5yPCLU8YsGI3ilg%2BWWbdFYggqgcZ8mc3zwI/F%2BD05Bfz/jGEBdWoFgxG21u8WGWgeACnIWQyh5twyW3sHBdBiFyDejVtwVC1DoKYQYdzCwaEaFry4eQEKWRXDSCAA%3D%3D%3D)
Program reduced from https://elixir.bootlin.com/linux/v6.11-rc6/source/fs/proc/internal.h#L70
```c
int main() {
int x = 1 // #0
? 128 // #1
: (
1 // (#0 - #1)
? 256 // #2
: 512 // ((#0 - #1) - #2)
);
return x;
}
```
Coverage report
```text
1| 1|int main() {
2| 1| int x = 1 // #0
------------------
| Branch (2:13): [Folded - Ignored]
------------------
3| 1| ? 128 // #1
4| 1| : (
5| 0| 1 // (#0 - #1)
------------------
| Branch (5:17): [Folded - Ignored]
------------------
6| 1| ? 256 // #2
7| 18.4E| : 512 // ((#0 - #1) - #2)
8| 0| );
9| 1| return x;
10| 1|}
```
Direct cause:
1. Affected by the constant at line 5, `inc #2` wrongly instrumented for unexecuted line 6
2. Counter for line 7 is calculated by `((#0 - #1) - #2)` $= ((1 - 1) - 1) = -1$, showing up as 18.4E (18446744073709551615).
The problem only appears if `-fcoverage-mcdc` is supplied.
cc @evodius96
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykV8mSq7qy_RpqQlQFCARmUAOJzrjHPZ7RyEKAAdMY7K9_gV377Padu-NewmFQ5sqGpVQK-XXNaE7IJwcxB403v23iovrsYpI3RdJeyregiO6fenEpWUYqnvRlVlSk4jmIM5anHDQ4MIqbpqw5CXHA4oBFiygosuajqOhTID04CS29GY2Rha8R3E7RzMQJ0qjZTT3LmusHNGupKSMBOyY6UdcIPAxQTGeBR40UJRYHIMDb43rO0GnvNrYzptjDbkGtHXo0FE2RAWRkn6lel5Cwux_v0I7iOXJ2zfE-7a_MMWPxVFJDVwi1QrA1UY2MfCIhnOqTS4eW2xFyQL8xEQIhReNI3zPr7t2OkoZS517Du-lcFwzg6XYXgy4fT0xmZQ5bzUZIXjX1WpxeJqXPwjKR-8lWPTUBoFcl2_hjJ_WvPXTwlEjueZetl7OUMWQXwEqZs_eWDzT2Kl0RkOuuxgNlwNDcFp0oWiMo5zcZK2e42jxus_WFQA5YG_OMMFsBPZ3jzqnVXpYdspsSBy1NY23P-tWdsGXvTAXcoQZH6bbfV8noOHosNW_toeljgqB5z2_6XWgvq9l4ntNDlKErSkeXUMlZah7s1OWAZQqaDJaH1S7xnDiYsBvOpi08bmFRJRVJwlM-QtPROSkCSg53gOB0GwQB2nDAis1gY2se8nv0mArxRRZyOcDa-bZY5s7-KnPA0neOoQVXeZkfQotOTbA2NivmZHZhG57veuzAVAsoTL9vJ_dDikV3Hc_B1CnxaGtqV0kGpjOxHGx2ODW7xDRTeZ6k3WXnp4IeCJgi9eoe7Kwdd8nGfxDF0Tq0mp6S5ThCwh5mrNlfbrZneFk8tTbNeDJF8qKsG9Uiq7kl0I14S8lyop2cANVjPLFDDlhl6NjQwJUCcVz6krGu7Fxtr_WxiGus3qtyqcD1DadwUtB74NhUQbeis_AOozaA9drXxRohQ7HgMRc2VDiTh6ejbq1PDNvEvd2Gm7UuIJ0wdTTuKz1FExv2s0Lb9nkHdRh3HQ3STsM6iZe4N-QOEexoqI99iOR5OGGbZYn1KxUQboGhEBsY19Xu4qtL-7mOOm0-iak5NkOV7eUlrijABqYn8ZKOzcvWm4yAYYdI09dTBEzd9Do8RcinLjC2cetv50t49tnSSRMjzzzZt9unWzpyvBIWM1-k5GjOfXdZK7h0egmnFNmMRKe0pOe4tDc2ijddZ3j2pu_L1UXaCXZaYpUeTtP1eF7ilC1260fcQ0dwFmxr-AsZbA_kNAkIdYXksLjq3pRehMdxkeA0kf2Np3djc16OHsB03at-YNbRk5HoWiISKuouZaHDeC9vZpOduN4glC_Ty_ZkOt7cnu82i_l8LiwSoxstkSSgfruQx649TpLtY5IU_cRIzLuhJ9b-4cyt1cza1qsKKYdOtZw7DKd-alWljdWsPIjBjpBMmTh9pCxqADt3RXucLp8EVYWzi82xzbDrPQVJh7BwX_szw91unKBvbCE4r4qTXVs9jSGW12iK0oUMPFcX7vvmsNnEzpIKMM1gz4rZ08mG3dZ064_tzbghDzVAx70G9VYoroltCA5bi3h0MdfrOLCarjzpI1LUrt7PTk0MTkZUgRE1in2dWJuiPBZk71m63tnGHQKENhY8LOgDS5OLgk9hpwbtoXuQRjmWuvGM7oeXROlsvHBcgQPWOnXZqFvP2VM5EU0NlZq6eY7OLZUomjjazdX0w6FDQr475sq1oTB68bMcqXr0uC1KaJccsHJ4znIvEzucps41ezB4X-mz3cirbUdiGX0aHQ5BZHmUXml4Gl1C6dE5HLBeG4YhQHx-cMBKbBNHh8KivQ3EdnSwD5QgPXcO7j2GTXc_SPUYR5hZd4Mk-6bb66JRTD3Xix5655u-Vd1l4prTw_pobHSEOAAl48c_jRMMTkCv_1VV0Mq_8BWJ2pBE_LkqLvzPWyTJWM-qj6AomozlH2Fx4YCVsbztOWDdlA9RfK9ChQNWXbRVSDhgneuh9VTF0IFY3pAq97OPmAPSTBV-DM4pwusXvsYsb_iLz3IOjDig8ZyK-ZeC53l-UPY8Jxm8yL-uV3rPB0n4DvxSShYvgtFvQPELyEmIH-L8Yva6xB-MnslIAv_-sv5G388GQzQAlW9GHJDAn2GIhyL4Dhv95v31BP4QZxBJ-Lu0Ik1b5Xz_j5BTjV94_ZFsvbiRyqeEr0hZVM0f56EhffM9gMip-hcfnKr_6-SAn6B_P13vv13ffD7d4MrPw3jgCXASEqUnBWj4nrOKLCIR_847NC8qEg3fdv_JJc9Lv6X5d8XC87w8GPxq9UsJwX_Uwk_Avy-qv-YDDnyo_ysfyv_Dxx9Kmv-lqNUnH6MP2fyD5X9V5aOf2fu13LXfcv1tAQw64SfYvy8Jg1UkbPjQb2sytLsfVOIHj85nEjYk4oM738SED4u8bvy84f2Gz1hOeMgBnecUgeXh620Uge-qIqfZnWd53VTtheSDg3NR8W1OehK2w_BprLzigA9eL9qhRz5RT5XKs5oP_SxsM_8r_pD4v9OoCDwH5GG9vYAi_85_QZ63QfMuDhCg83VcdCynfFvyfv2axcFMHMmyosqyoEqqoEEoKiLkgPbxIzHbmPBlVQQZufBFnt15vyyJX9U8Ow9Zvp_Drz7zfgmjcEiL1XzdlmXGSPSTpzDkOVkgtyJiba0pPP-j8i36lCJN0vw38imqAEqiosijt_jzLCmhAMWzFqoiCCVZljVViISzqKkgiATljX0CAciCJgAAJBWMPgIiRb4iC6omyZGqaUPQi8-yjyy7XYaD3xur65Z8ioIqAPiW-QHJ6ucZE4Aw83PKSSgsIkJJzgHAAX2Qf73kIIDGW_U5-HoPWlpzspCxuqm_e29Ykz3PrN868LA2IZ7rHLAMnYMGnxPqN-w2lNirFG5-1pLXRILXGhsCa1-t-6uiclIPj8_ttboPp92K1DUr8vqtrbLPX865rInb4Nvmnd2-3d7LqkhI2Aw79cDCsHN_EXH7BP8XAAD__8pzWvM">