<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/120830>120830</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
How do I use IWYU pragmas properly for private includes?
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
UtkarshVerma
</td>
</tr>
</table>
<pre>
I have this repo ([dwmblocks-async](https://github.com/UtkarshVerma/dwmblocks-async)) which generates a few errors when I run clang-tidy.
```console
$ clang-tidy include/signal-handler.h
551 warnings generated.
/home/subaru/.local/src/dwmblocks/include/signal-handler.h:4:1: warning: included header signal.h is not used directly [misc-include-cleaner]
4 | #include <signal.h> // IWYU pragma: private; include <bits/types/sigset_t>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 |
/home/subaru/.local/src/dwmblocks/include/signal-handler.h:9:9: warning: no header providing "sigset_t" is directly included [misc-include-cleaner]
4 | #include <signal.h> // IWYU pragma: private; include <bits/types/sigset_t>
5 |
6 | #include "block.h"
7 | #include "timer.h"
8 |
9 | typedef sigset_t signal_set;
| ^
Suppressed 550 warnings (549 in non-user code, 1 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
```
I tried doing adding the appropriate IWYU pragmas to signal-handler.h.
https://github.com/UtkarshVerma/dwmblocks-async/blob/main/include/signal-handler.h
```h
#include <signal.h> // IWYU pragma: private; include <bits/types/sigset_t>
```
But this doesn't seem to work. Am I doing something wrong?
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMVcFv67YP_muUCxHDoeLEPvjgtDV-AX54O2zdsNODbDGxVlkyJLlGLvvbBzlOX9ptvexhWOEiikJ-JD9-pIX36myISpYdWPa4EmPorCufw4twvvuZXC9WjZWX8gideCUInfLgaLDAMGfZQU59o2374tfCX0zLskeGeRfC4BmvGNYM67MK3dgkre0Z1vfADOuP7lgwLGDqVNvBmQw5EciDgBNNQM5Z52HqyMAR3Gig1cKc10HJS8LSKj679Pq01nirKV7h9s4OlGn1KIlhHesWet0JIzW5pGNplWUbmIQzypz9W3g5Y2Pd2X52GxvhRoZ1om0rdLxx7X0lDOtPgvBqy3i1Yby6RYrHxUFCR0KSg6tb0oHyYGyA0ZMEqRy1QV-AZYde-Xa9eK1bTcKQi9ynFQDAFtj-ARjyxQIYf7hBMv4EcG0MHH_59RkGJ869iFkMTr2KQIwf4M6xUSHWFC4D-WtFnsLXwPjTEg2u0bKn37_bX0TOIuz3pb5Y_u-pN_ZG-uDsq5LKnIEhvpWJGJvwxv1bp_5jTbixFc-7P0VGnAlKOoa4GO3_wiiofmbqzSi_Qy1mh5iBpBPcMlik-tVTYPzwUREsrX4ch8GRjwLOsvTbeDHMs20ByoCxZj16ctDa2LgH2MCXH_5__PITwyLO3rMnWF97tD4pHcgx_pgwrCBYkMoPWlxuy-HkbA9C6xnUX3ygfmmvT2AGul4ueP7vIN67gvAwkdbJ_Yq5bpwjBKficNooHCFn_YSOQAyDs4NTItB9i-eIH6W5bK9_sDbrRtuGYd0LZT6fgvd7cv7-L0j0A2uHMVzfJNKSNwz3ATxRH7mZrHtJoOrhuHDqbU-hi6fJ2Tiz9UqWXBa8ECsqN3u-3e-KXZatujJLW5SITd40nIscc7knKvYcd5t9cWr3K1ViitsN4ibNcc-zZCc5nWSzFXlb8KLN2DalXiidaP3aJ9adV8r7kcoNpjlPV1o0pP38rkQ0NMH8a5yX7HHlyui0bsazZ9tUKx_8N5iggqbyf3YCaeEYF_p7VUSxkNMXOFl3I_jGro81j06XnwgkBlo-1oOzv1Ebog5ierEbS_6vJf4RAAD__-IKlgM">