<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/67531>67531</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-tidy: modernize-use-using leaving fragments of the tidied code
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ThomasHuetsch
</td>
</tr>
</table>
<pre>
clang-tidy check modernize-use-using (LLVM 17.0.1 and before) leaves some fragments of the tidied code which renders the code uncompilable (at best). A single function pointer typedef works fine but when multiple type aliases are defined the issue shows up.
Before
```
typedef void (*abcdefghijklmnopqrstuvw)(double);
typedef int (*ABCDEFGHIJKLMNO)(int);
typedef void (*x)();
```
After
```
using abcdefghijklmnopqrstuvw = void (*)(double);
typedef int (*ABCDE;
using ABCDEFGHIJKLMNO = int (*)(int);
typedef voi;
using x = void (*)();
```
Should be
```
using abcdefghijklmnopqrstuvw = void (*)(double);
using ABCDEFGHIJKLMNO = int (*)(int);
using x = void (*)();
```
Obviously, there is some relationship between the leftover fragments and the length of the type alias name
abcdefghijklmnopqrstuvw (23 characters)
typedef int (*ABCDE; (20 characters + LF == 23 - 2)
ABCDEFGHIJKLMNO (15 characters)
typedef voi; (12 characters + LF == 15 - 2)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VMGSozYQ_Rpx6bILBBg4cLB34myS2ewhqdyF1CDtCIlIwt7J16cEzowz8cxWpmqrbFOWuvv1e3Q_5r0aDGJLygMp7xI2B2ld-7u0I_MfZwyey6Sz4rHlmplhE5R4BC6RP8BoBTqj_sLN7ONXmQEIre_v__gEWbVNtxkwI6DD3joktAGN7IQevB0ReseGEU3wYHsIEiEooVAAtwLhLBWX4NAIdH65XY5nw-04Kc06jRGJBejQB0KbLewh4muEfjY8KGtgssoEdBAeJxTYw9m6Bw-9MgjdHOAs0cA466AmjUsQMK2YRw_MIQiMkWIBV97PCF7as4d52pL0jqT79fewkltPdunls_z9B_dklYjdErpnHRfYD1J9edCjsdOfzof5dCa0IbQWdu501Inkh39XUCZcCuwPH-5-OP748aeff7n_9OvnNVGZcCvrCvfrGngd9aLZfR_Q3bxZ3-srnQPJ766B_ieTp_sV5AW7pfhzxrfIvij29XZvb2jwm7SzjvP6_XR4N8_3cvrcnZSdvX4k9EOcZRened1Ah5rFRfFSTdBhOCOaZdw19sGe0F3taNzj9coMQT6t7NPSgGHjRbZXFaI1zYFL5hgP6Hxs-huzseSkVzlA6AHuj1GFKATNYQP0qdB_ZKV1Vr6FuA7NEkdfR8nKC0oi2lw0ecMSbLNdU9ZpkTdNIluaUewLVmK9K1hKOedFVnZVlZe7UlRVn6iWpjRPG1qldbHLm22FddkXvC5FUfQVo6RIcWRKb7U-jVvrhmTxnHZXlXmWaNah9otDU_psw4TS6NiujUmbbh48KVKtfPDPZYIKGq-sm-T7m74drTk-37LlZHa6lSFMnuR7Qo-EHgcV5NxtuR0JPUbQy2MzOfsFeSD0uBDxhB4XLn8HAAD__4Yp98U">