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