<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/107859>107859</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] Broken diagnostic for performance-avoid-endl
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          VReichelt
      </td>
    </tr>
</table>

<pre>
    When I run `clang-tidy -checks='-*,performance-avoid-endl'` on the following code

```
#include <iostream>

#define COUT_ENDL std::cout << std::endl

void foo()
{
  COUT_ENDL;
}
```

I get the message

```
bug.cc:7:3: warning: do not use '' with streams; use '\n' instead [performance-avoid-endl]
   11 |   COUT_ENDL;
      | ^
bug.cc:3:32: note: expanded from macro 'COUT_ENDL'
    7 | #define COUT_ENDL std::cout << std::endl
      | ^
```

which is slightly broken (note the empty `''` in the first line).

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykU0-PuzYQ_TTDZZQIxiHAgUP-bKSfVLVS1T_HyrEHcNfYETab5ttXJtlmW6W9FCHbMJrn9-bNyBBM75hbKPdQHjM5x8FP7S8_slED25idvb61vw7s8BtOs0PY5spK16-i0TdcqYHVewBxBKpWQDugw4Wnzk-jdIpX8sMbvWKnLVAF2xy9wzgwdt5afzWuR-U1Q36EfPdYt_njvX-SME7ZWTOCOBgf4sRyBPH2txwSmjvjGA8__PzTb2_fH7_DEDWIHYid8nNMuSAOz58Loy8IiSZ23gPVQM0jUu3vB3zCgth_Bo-v-S7rN-w5LkJHDkH2_6XwPPdrpUDsKhA7AWKHVzk54_p01B6djzgHxlRAqvBq4oD3KgQQ-79C5cGlsHEhstQI5f5ffCiPn6qwKBCqA77Sh8uTolC-_YNoIiko0XM-ctr5j4t0mjV2kx9xlGryidQTlqonbHWH_R-evSD30obrYNSAJmCwph-iveF58u_sEKhO1BeHeLzEW2rre4FTk5pHk5opRLTGMVCzvkNmuhW6EY3MuC0qKut622zLbGiLsig015XOS84LIYjrbqMaUbIqNk23yUxLOW3yJm8KkZOgdVNvqBCyYsWN1lTCJudRGru29mNc-6nPTAgzt0Ve1WWTWXlmG5Y5JXqOIBCluZ3alLU6z32ATW5NiOGJE020y4R_SSuPuL8XQxvZOx-iUdj5CV-3TTZPth1ivIRkBp2ATr2Jw3xeKz8CndJdj211mfzvrCLQaREQgE4PDR8t_RkAAP__ZutIoQ">