<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/113035>113035</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Coverage][C++] Class member initializers aren't mapped but increment wrong counters
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
chapuni
</td>
</tr>
</table>
<pre>
```
struct Foo {
bool f = (true ? true : true);
Foo();
};
//Foo::Foo() : f(true ? true : true) {}
Foo::Foo() {}
```
(https://godbolt.org/z/n6M6fPr46)
- Member initializer is not mapped
- Looks like Counter 0 is increment wrongly. Finally Counter 0 is incremented twice (+=2)
- Works as expected if the explicit member initializer is specified. (//uncomment)
As far as I investigated,
- Counter is not assigned in CodeGenPGO.cpp
- Class member initializer is not traversed in CoverageMappingGen.cpp
- Instrumentations are working in CGExpr.cpp, but counter number is 0.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8U0FvszgQ_TXmMgqCARI4cEiTJaq01fa2ZwMD8cbYyDZJ21-_MglpFLWfFIWxPe_Nm6cZbq3oFVHJsheW7QM-uaM2ZXPk46REUOv2s2Tr6PaL9izaWmemxkGlNbDNy_UOoNZaQgcs2QPD3JmJgCUV3ILtHDAsWHJHVFozzB_v2Gb_HV__sWJY-cxky5LtHTJTdn8qNGvb7K80PxE8PD81yDA_OjdaD5nr97qttXShNj3D6othpdZv6-7dpGsv_0HvCt5oqMmAUMIJLsWXjy0o7WDg40jtkve31icLUpwIdnpSjgxEPlOoxtBAysHFaNXLzxAqobiUn7_kUQvuIhqCubEXluzxLmoF_2pzssAt0MdIjU8WHbgj-bMUjXAw_CjYjtSITlAbXnm9DZNq9OBLPjUNWwsdN77KKwh1JutEzx21DHeLjkX7zYvb2LUgFOx0SwdS74d_wmYc7wDJrf1FnGdwhp_J2IXiTIb39MbHUaj-QOqR6lX5kfXCuRNaWeCG4KLNSah-Rh_--hjNjMAd1JOD5qZWTdfyFqLwyha0ZdIWScEDKuMNFklSZGkWHEvcIOXZOq27JO4wz2Nad1mXx2lCPM55HYgSI0zjKC5ijLI0C_OuJYqwSKOi6OI6Z2lEAxcylPI8-FkLhLUTlXGcREkWSF6TtPOeIiq6wPzKEP3amtKDVvXUW5ZGUlhnv2mccHJe8MUmlu39yU8L-q3_1ezZKsVws0zv7M7TiC5u2WAysnzaHOGOUx02emBYeUG3z2o0-j9qHMNqbsMyrG59nkv8PwAA__82Omqr">