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

    <tr>
        <th>Summary</th>
        <td>
            [clang-scan-deps] We need to support C++20 Named Modules
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:tooling
      </td>
    </tr>

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

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

<pre>
    In C++20 Named Modules, we introduced `ImportDecl` to describe the dependencies between modules. But this haven't been handled by clang-scan-deps.

For example,

```C++
// A.cppm
export module A;
...

// B.cpp
import A;
```

Currently we can't find that A.cppm is a dependence of B.cpp.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx1UsmOnDAQ_RpzsRp5zH7g0ItamkNyTa7GFODI2MTLzPTfp1iS6USKVLKp_b1nOts_2ldDr4Rf0DijX8UMPf1i-6jBE36l70CVCQ4DEhOkZK_zYl24gdTo0GBpD1461QENE6CzgOnBSAWedhDeAQyd93EpvcSAVcrTSbyBIbwKWIMFkzC9xvHdg0otzHjyUpgTzvIpYTfCzvt5t47Ch5gXDQjtOYNQdjuYHFF-R6PnVC7LvIfgY0V_IKJnkh2lafrXpqPzsnbuEbXRfur4s_K57xqdAxP0Y9UNOWwUB2V6pC3CgYSiAOJTKaB22DelCbQvZVE3dfXC6qRvs77JGpEEFTS0pLj8Iw4pbvQbUAMoHT6Ej8uG8T-vmUSn2ykE7MsOgqMKU-xSaWd0tH77fZ0WZ3-ADOgq7-P6J9yLsqpYMrWD6POBiUaWjHHWdSXIUtZ1IxreYUAmWnSg_QqXcL4hxn3BWq3wi3MEnaiWM85ZxWtW5AUr0oznohQ15MXAasmA5AxmoXS6okmtGxPXbsC6OHpMauWD_0wK79WIMmxLcb6IYbKuvU5RmJ_qe2ySjUa7cfgFIH3oNA">