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

    <tr>
        <th>Summary</th>
        <td>
            clang-tidy: `modernize-use-using` wrongly modifies typedef of function pointer
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          e-kwsm
      </td>
    </tr>
</table>

<pre>
    ```shellsession
$ clang-tidy --version
LLVM (http://llvm.org/):
  LLVM version 15.0.7
  Optimized build.
  Default target: x86_64-pc-linux-gnu
  Host CPU: skylake
```

Prepare the following file, `/tmp/a.cpp`:
```cpp
typedef void (*v0123456789)(int);
typedef bool (*b)(int);
```
and `/tmp/compile_commands.json`:
```json
[
 {
    "directory": "/tmp",
    "command": "/usr/bin/clang++ -o a.o -c a.cpp",
    "file": "a.cpp",
    "output": "a.o"
 }
]
```

Then run `clang-tidy`:

```shellsession
$ clang-tidy --checks='-*,modernize-use-using' --fix a.cpp
2 warnings generated.
/tmp/a.cpp:1:1: warning: use 'using' instead of 'typedef' [modernize-use-using]
typedef void (*v0123456789)(int);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
using v0123456789 = void (*)(int)
/tmp/a.cpp:1:1: note: FIX-IT applied suggested code changes
/tmp/a.cpp:2:9: warning: use 'using' instead of 'typedef' [modernize-use-using]
typedef bool (*b)(int);
 ^~~~~~~~~~~~~~
/tmp/a.cpp:2:9: note: FIX-IT applied suggested code changes
clang-tidy applied 2 of 2 suggested fixes.
```

Here, the message for the second line must be
```shellsession
typedef bool (*b)(int);
^~~~~~~~~~~~~~~~~~~~~~
using b = bool (*)(int)
```

The file is wrongly modified:
```cpp
using v0123456789 = void (*)(int);
typedef ;
using b = bool (*)(int);
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0Vk2PozgQ_TXmUgIR85Fw4JB0NpqRZrVzmF3tbWRwQTxtbGSbTmcO-9tXJtCdpNMfO9K2moDLVeWqx_PDzFrRKsSSZBuSbQM2uL02JYb3B9sFlebHkuTx6d_uUUqL1gqtSLwl8ZrQFGrJVBs6wY8Qhg9onme_fPnrdyB0tXeuJ8ma0B2hOykfukibdhwV3jz6AozeUzwssiiOlvPUH70TnfiJHKpBSB7N9i02bJAOHDMtOpKs4XGVf8_TsK9DKdTwGLZqmJ0_aevg7uuf3s3eHyW7x6mJub9pOP5-Ndgzg-D2CI2WUh-EaqEREgm9A-9Md67rCd2xqO57b5hbecrn7aPFHXvk2MCDFtwDQuj6IV7QJM3y5arwMNCVUG7EY3MZUmktp5DqpuNV9Uzxi-pq3fVC4vdadx1T3EY_rFY3qx0nTqZsyg1kOT8BAKGUC4O10-ZIKPU4-tu0EiX07sJ3WvHCc7CG0F0llK_M84bQDaEbCDWwSENYwwnNl9lOyM-pXvPSg-sHd-6n_WBuZjv3t33jzX_bowIzKA_jM7cvILsM_sC2qPdY31uSbAldhoSuCb3rNEejxE8MB-sv4cFYQhg24nFCYcxF4cCMEqq10KJCwxzOG-CKgsl6MV1ziH8cLAKhy6cFhLIOGQfdePNEMz9Bss2tmmasfoHDJPvtn7f_Tn7jQnCWDUiyPV_oIvs7rSvt0N93n_8OP38D1vdSIAc7tC1ahxxqzRHqPVMt2leSefoU_zOO725suIbvvWJ_ofMzks7u1HdEz6Ia8Yg2emPDfEIziqKXyg6tZa2XTDOOLdZacZBCIXSDdVBdi-7L3fNx6XuFX-esqkYunaW6waVXVGBUexAWDkarVh6h01w0AvkbSv_fqHwt9k-Gj9T-4gMQ8DLhRVKwAMtFXiR0mdE0C_ZlUyX1Mq-ypqiqouJFHKerJC14naY5zWMeiJLGNIlXtIjpIo2ziDZ11nDOaprnC2RI0hg7JmQ0f70DYe2AZZ7FWRZIVqG04wmCUoUHGCe98GbbwJQ-JqyG1pI0lsI6-5zFCSexPFNZL9t5fGv_5PH1e7Aw46YbaAZVO39y6LVQDk0wGFn6g4d9Onm0wu2HKqp1Nx1DplvYG_0Da0fobizcErobG_s3AAD__1eEqiM">