<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/134527>134527</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang-Tidy should not generate fixits for bugprone-parent-virtual-call checks
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
pavelkryukov
</td>
</tr>
</table>
<pre>
Consider following example:
```c++
class A
{
public:
virtual void foo();
virtual ~A() = default;
};
class B : public A
{
public:
void foo() override;
};
class C : public B
{
public:
void foo() final;
void bar()
{
A::foo();
}
};
```
Clang-Tidy called with options `-checks=bugprone-parent-virtual-call --fix-errors` converts `C::bar()` implementation to:
```c++
void bar()
{
B::foo();
}
```
Although this check may indicate a _potential_ bug, fix-it alters the behavior a programmer intended.
I guess there should be no fix-it.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMU0uPszgQ_DXm0iJyzCPhwIEkirT3vY8MbqB3jI1sw0wu-9tXPOa10hdNZClgd1d1FWXpPXUGsWTZhWW3SE6ht64c5Yz61T2mVztHtVWP8mqNJ4UOWqu1fSPTAb7LYdTIkorxdeV8Ww0Tl2XxqtHSe1gPT8v7ONWamq0DAGAmFyapYbakoLWWiTMTBUuW2s_Df6ttG1hyA4WtnHTYStjptj98UF2AJRVsNM94f_CBndE5Uvgn1Ot31MtvUVsyUn8ifRbU0u0yt80NC_ZftcAl1f-9WGb6PtmH1Rv2VUvTxX-TekAjtUYFbxR6sGMgazywnMdNj82rZ8mtnrrRWYPxKB2aEO8ux0sjxHFL7zE6Z51nOYfGmhldWCGu22Rf4-ccaAnAgCbIhQmCfRaGXzpweerAT-GVDr2duh5CTx5WjTDIB5BR1MiAIOFltAFNIKlfoJ46Jq6waKQAUgd0HkKPUGMvZ7IOJIzOdk4OAzogE9AoVAfGq7-gm9Cv1Q7B93bSCmoEY3e4Q6TKRBVJISMsj6c0KZL0XKRRX_K8TrM0V1jw7HRGlYqUH9NjluVnXucNRlQKLjKe8vzIxTFJD3hCflZ5UZzqPC2aI0s5DpL0Qet5OFjXReT9hOUxSTNxirSsUfv1CgvRrFkIpB5MiOVKu3Lpiuup8yzlmnzwXziBgsbyW352ZcYG6NCgW0xs6Z2Ch9Y6eJqeLWPR5HTZhzD65UOKOxP3jkI_1YfGDkzcF-79Lx6d_QebwMR9FeSZuO-a5lL8FwAA__-bQ2Go">