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

    <tr>
        <th>Summary</th>
        <td>
            clang-scan-deps not generate cxxmodules info correctly when module name contains keyword like friend, union, etc.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    if my module name like this:
```
export module mod.friend; 
```
and clang-scan-deps command:
```
clang-scan-deps --format=p1689 -- F:\llvm19\bin\clang -x c++ -c mod.cppm -o build\.objs\test\windows\x64\release\mod.cppm.obj -Qunused-arguments -m64 -std=c++23 -fexceptions -fcxx-exceptions
```
the generated info in cxxmodules is 
```
 ["build\\.objs\\test\\windows\\x64\\release\\mod.cppm.obj"] = {
                cppfile = "mod.cppm"
            },
```
seems it's treated as normal cpp file.
but if I changed the module name:
```
export module mod.my_friend;
```
It generates correctly.
```
 ["build\\.objs\\test\\windows\\x64\\release\\mod.cppm.obj"] = {
                provides = {
                    ["mod.my_friend"] = {
                        bmi = [[build\.gens\test\windows\x64\release\rules\bmi\cache\modules\574a3743\mod.my_friend.pcm]],
 interface = true,
                        sourcefile = "mod.cppm"
                    }
                }
 },
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVdGOqzgM_ZrwYgXRUGD6wMOUqtJ93C9YhcRA7iUJSsK0_ftVKO1MudrdebwRUivn2PjYx4Z7r3qDWJPiSIpTwucwWFd_OBTj7DFprbzVqgN9A23lPCIYrhFG9QshDMqT_J1k76TM1id7x-tkXXigtZVp5xQaSfIjbKDcSBAjNz31ghsqcfIgrNY8ordxt0BKO-s0DyQ_Tbvy7QCUwjm6Fc04fujdgRRNqwwpmsUT6BUEYUfCjkDFkpeYJg3UQjurUZKiSW3705OiCegDKZqLMtJeouFa7knROByReyRF83CODkD_ms3sUVLu-lmjCR6oLvdAfZAkP63vZDnQDq8Cp6Cs8UA7cb3ST8OGbBgQejToeEAJynQWlAFxvd7L6kH5bTEhdpCxB5kvfD4pvbB6EnvhtqFHGCPFCUh-AlId42s2R0xTp0a8Ixh7-Ea_VzCpToQ1m6Q9ovagAmGVh-Bwocs9mNjaMQaHGD0l2Xs7B1Ad_AAxcNOjhFijL5r8jhL17e-nGDfgH-FZ8ChC51CE8Zb-GUWenP1QEv1_QJYSL8m9Ev2_0I_TanVHxT1wfI5Ej-ZbI-GiKuPEaRUnjothHZTVXlR7nlf7fGX-zC-dhCbFKT6LOECZgK7j4q6o4GZcL_7leDs7gd-T4Fcp_n6zWn_XaSLrXB7yA0-w3lU5K97KfVYmQ921WZbLvehQCskO7UHy4q1DkVWs5HleJapmGdvvdqzMWJZlZSqyt92bLBFz7A5lh2SfoeZqTOPKSq3rE-X9jPVuV5XlLhl5i6Ov7301eIHl9t7TxNXRibZz78k-G5UP_jNMUGHEerszjf1U-cs2iQvmKXq4DGhe1r2wJnBlPPzC28U6ed__D4U1MBtlTfyDQaTJ7MZ6CGFaPg7sTNi5V2GY21RYTdg55rj-0MnZnygCYeeFmSfsvFL_qNk_AQAA__-k6fKH">