<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/120891>120891</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang generates the fake /usr/include/tgmath.h dependency
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
hjl-tools
</td>
</tr>
</table>
<pre>
On Linux, the fake /usr/include/tgmath.h dependency is generated by clang even though
clang never reads /usr/include/tgmath.h:
```
[hjl@gnu-tgl-3 tmp]$ cat f.c
#include <tgmath.h>
[hjl@gnu-tgl-3 tmp]$ clang -M -c f.c
f.o: f.c /usr/bin/../lib/clang/19/include/tgmath.h /usr/include/math.h \
/usr/include/bits/libc-header-start.h /usr/include/features.h \
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
/usr/include/bits/timesize.h /usr/include/stdc-predef.h \
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/bits/time64.h /usr/include/bits/math-vector.h \
/usr/include/bits/libm-simd-decl-stubs.h /usr/include/bits/floatn.h \
/usr/include/bits/floatn-common.h /usr/include/bits/flt-eval-method.h \
/usr/include/bits/fp-logb.h /usr/include/bits/fp-fast.h \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls.h /usr/include/complex.h \
/usr/include/bits/mathdef.h /usr/include/bits/cmathcalls.h
[hjl@gnu-tgl-3 tmp]$ ls /usr/include/tgmath.h*
/usr/include/tgmath.h.saved
[hjl@gnu-tgl-3 tmp]$ clang -M -c f.c
f.o: f.c /usr/bin/../lib/clang/19/include/tgmath.h /usr/include/math.h \
/usr/include/bits/libc-header-start.h /usr/include/features.h \
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
/usr/include/bits/timesize.h /usr/include/stdc-predef.h \
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/bits/time64.h /usr/include/bits/math-vector.h \
/usr/include/bits/libm-simd-decl-stubs.h /usr/include/bits/floatn.h \
/usr/include/bits/floatn-common.h /usr/include/bits/flt-eval-method.h \
/usr/include/bits/fp-logb.h /usr/include/bits/fp-fast.h \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls.h /usr/include/complex.h \
/usr/include/bits/mathdef.h /usr/include/bits/cmathcalls.h
[hjl@gnu-tgl-3 tmp]$
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsls2OgzYUhZ_GbCwjYwKZLFhkMmXVqs9g7At4amzkHzqZp69ISCdSMySVUqmLkSJFCcefj68vR5d7rzoDUKHiFRVvCY-ht67q3zUJ1mqfNFYeq98N_lWZ-IHYAYcecMv_AIxYHb1DrFZG6CgBsTp0Aw992mMJIxgJRhyx8rgDA44HkLg5YqG56TBMYHDobex6RPfn_wxM4LADLv0aHOV7RPeopMuH7lHx2r9rtKGdiSR0muQ4DCMq3hDbYMEDblMxy1i-0DDKD1-4X-4iTvbIb5iIBdWmFuX7-ceX00YZxOo0RazWqkGsPi1DrM52t4t044yXJ8UB0f0tQaOCP28gSA9cgiM-cBdu41rgITrwq8iLiAQ1QLm5TVr2_dM66dUnPOJxxl20_xT5IAUZHUhoV2H-OLOEhNavOtPWdETa2Oh1c52Jp91j8w3vSkDO1bh70OMI6-ZOCvV55yKu6nbnGuY2IROIYN2D3TIQrwZJJAhNVg6_LGi15cE8gj4ribDDYM0dZiAwcU0GCL2VD8FHom3XrGNH0nIfHsHNVRNca0960CM40kYjgrLmoWv5e_VtO8IOo4aPR0lL23-rEVfb3YsnvR6X7BSX3wtSzyeQ_9cM_C9C8Pkp-NwYfHoOPjUIn52EP1H4E4XPisLrwTCRVS53-Y4nUGXbfPNS7rIsT_pKAuUs3-a0KBltadnIJs-2O1m-QCkbsUtUxSjbZIyxjNEiy9OSC1qWbZEDFdsyb9CGwsCVTrWehtS6LlHeR6gyRl92WaJ5A9qfRmrGlgRk83TtqnkBaWLn0YZq5YP_QgQVNFSHU85eJmb_b8ftJDpd9SGMfh6TWT2_xyr0sUmFHeb-19Pli4zOvoMIM3J2P9d6OcBUsb8CAAD__z2P3SY">