<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/92178>92178</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-tidy] misc-redundant-expression warns on templated check for NaN
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
aeubanks
</td>
</tr>
</table>
<pre>
clang-tidy properly doesn't warn on
```
bool isnan(float a) {
return a != a;
}
```
however it does warn on the following:
```
$ cat /tmp/a.cc
template <typename T> bool isnan(T a) {
return a != a;
}
bool isnan2(float a) {
return isnan(a);
}
$ clang-tidy /tmp/a.cc --checks=misc-redundant-expression
1 warning generated.
/tmp/a.cc:2:12: warning: both sides of operator are equivalent [misc-redundant-expression]
2 | return a != a;
| ^
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycU81uozAQfprhMkpkDA7JgUPalGNPfYHBTMBbY7O2aTdvv4Im6o-2u9IiZLDm9_u-GYrR9I65BnUH6pTRnAYfauK5Jfccs9Z3l1pbcv0mme6CU_ATB3vBznN0IKuErxQcegfiBOIIO3F912vrvUUTHTmQ-7P1lJBAHhCquzcHxMBpDg4JQeZQnJCguNqgOv0x6ds5-Fd-4YAmrb3c2sA0MJ69tf7VuB6K48eYr4lkiZoSgmzSOIFsaKv1mynxOFlKjFDcp8vEjkbGJyge8BOkp_-C84Ua-S9ubtUW83fpVizvOn2ChJuNHlg_RyhOo4l6E7ibXUcubfjXFDhGc9MvX3k0rseeHQdK3G1vBT6SVBwlFMd8OW4Ry2_r04DRdBzRn3EZFUo-IAVG_jmbF7LsEoK6-74NdbqhR5QI1T3-jVRcn8UL1MMXkbOuLrpDcaCM67zKVSVFJapsqPWu0OVeUq50XmrRiZKo3LNqtdyp7qwzU0shS6HyUuZCiWpb7ugs8h0JVam8zfdQCh7J2K21L-PWhz4zMc5cH2Re7TNLLdu4rpSU76KAlMuKhXoJ2rRzH6EU1sQU39Mkk-y6jB_C1Am_pWslP65zf53YDlet8ewDPtJjNgdbDylNcdkF2YBsepOGud1qP4JslsrXz2YK_gfrBLJZ0USQzQrodwAAAP__m548ew">