<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/153443>153443</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-format] inner final classes are not formatted correctly
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-format
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
joelhock
</td>
</tr>
</table>
<pre>
clang-format version 20.1.0 (https://github.com/llvm/llvm-project.git 24a30daa) correctly formatted inner classes marked `final`:
```
class Outer {
class Inner : public Base,
public Base2,
public Base3,
public Base4,
public Base5,
public Base6 {
Inner();
};
class InnerFinal final : public Base,
public Base2,
public Base3,
public Base4,
public Base5,
public Base6 {
InnerFinal();
};
struct InternNameLongerrrr final
: BaseClasssssssssssssssssssssssssssssssssssss {
InternNameLongerrrr();
};
};
```
whereas clang-format version 21.1.0-rc3 (https://github.com/llvm/llvm-project.git 6096d35ea9) misformats the inner classes marked `final`:
```
class Outer {
class Inner : public Base,
public Base2,
public Base3,
public Base4,
public Base5,
public Base6 {
Inner();
};
class InnerFinal final : public Base, public Base2, public Base3,
public Base4, public Base5, public Base6 {
InnerFinal();
};
struct InternNameLongerrrr
final : BaseClasssssssssssssssssssssssssssssssssssss {
InternNameLongerrrr();
};
};
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVe1uozAQfBrzZ1VkbEziH_xIW0WqdLp7BgMLuHVwZZue-vYnyEdJLyQ0lqXEsN7dGc2wynvddIg5EY9EPEeqD611-atF09ryLSps9ZmXRnXNQ23dTgX4QOe17YDROIkpELZuQ3j3hG8I2xK2bXRo-yIu7Y6wrTEfx5-Hd2dfsQxxowOwVHFaKUWYhNI6h2Uwn7CvELAC3XXooDTKe_SwU-4NKyAZrXWnDMnoUI2OO6OHTTdjOPzpAzogq0dCNwCwTwIvY0LCN_DeF0aX8Kg8EvZ0CDpfkxB2iJk84guupQtixIKYbAJkWCMMwtaEScKPL8jqeX8YzhO424EsGClbivw6CQvD-f-czfJxnZpbTIwIr9IBAD64vgzw0gV03W-1w1-2a9A55_bcnJIOHA2lngYKF6xjRxcyz_d0-jMRLqGbvy06VB4uWy0ZrPbgSn6n3TIqs4oLVHIw3E77fQEPocWlXrthtB_b7La-7pLUbYPNiOqCtc6VtNhZ36HNfjy-ofne-8VO53R_3uu85k_Fv7q_R_MjYddlf0XzUZXzSnKpIsyTlRAJTTiXUZvXUq4KmWW05jUVtFK1qIUUsihZTVcpjXTOKBN0nfAko2shY75mquAi4TSt1oVckZTiTmkTDyaIrWsi7X2PeSJ4mvLIqAKNH6cdY1OzEcaG-efy0TxF33iSUqN98F-Zgg5mnJRnF8XzwUJ7Ro9GUg6hs2Ey1E6DLuqdyX9mY8K2Iw5P2PYA5SNn_wIAAP__E1xCsw">