<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">