<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/92250>92250</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
bad clang-tidy modernize-use-equals-default warning after error
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
zmodem
</td>
</tr>
</table>
<pre>
Consider:
```
$ cat /tmp/x.cc
struct Test {
Test() : x(Foo::Bar) {}
int x;
};
$ build/bin/clang-tidy -checks=modernize-use-equals-default /tmp/x.cc
[...]
1 warning and 1 error generated.
Error while processing /tmp/x.cc.
/tmp/x.cc:2:3: warning: use '= default' to define a trivial default constructor [modernize-use-equals-default]
2 | Test() : x(Foo::Bar) {}
| ^ ~~
| = default;
/tmp/x.cc:2:14: error: use of undeclared identifier 'Foo' [clang-diagnostic-error]
2 | Test() : x(Foo::Bar) {}
| ^
Found compiler error(s).
```
The `modernize-use-equals-default` is incorrect.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVFGSozgMPY34UUGBgAAffCST5gRzAcdWiHcdO2ubmZ75mLNvGZJ0725XV-24Uo5tWdJ7T8giBD1b5hHaA7THTCzx4vz48-oUX7OTUz_GL84GrdhDvYfyCOVj3pX337alBqWICDTF6w1oei2k3Ewh-kVG_MohInSH7RDXPVAPNCDUe3wF6ifnUpZ6fxB-Pe8O0B0fDtpGfIX6HiAZnusnhNOijQKaTtoCTdIIO-dRqx-YywvLPwPUx0TNW_2T8yVwzn8twoRc8Vks5kP40B6KooD2jqPC78JbbWcUVmGF7L3zOLNlLyKrYrv1sp5-v2jDePNOcgjJ5R_hiwfs9ynrPUG9r5Mi9zxpuQRGoA7qI96RAnUYXdppyygwev1NC_Mwo3R20915hPbwGeknNUREQui-_P_apJEcEaF9wQ_Gr1__vvqezLOQH2hRNQnCKvNDCnfGxSqWRnhWqBXbqM-afdIo4aQucd6qr7SYrQtRy3yL8V-2v_EtvvF9N6B92eyTW6xC6a43bdjfsVMfgIbi4-5Z568XRtiVn9ZqV6IOqK103rOMRabGWg31IDIeq65qu66pqja7jKXqmAeism9JEFNfDyyUaHY7VQ2yaTI9UklN2VZtVbVtVRVn1TdV3Z_7nRBn2QloSr4KbQpjvl0L5-dMh7DwOBC1ZWbEiU1Y3w2it0YDovSO-DE55adlDtCURocY3sJEHQ2PJ6HwXYN-2pbPljvHh57Z4s14ifEWUploAppmHS_LqZDuCjSlbPe__ObdHywj0LQyCEDTSuLvAAAA__-itXaw">