<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJzNVUtv4zYQ_jXyhVhBpizLPvjgRwIEyKKHdXs1KHFkM6EeIClv_e_7kXIce51Nu-2lgiCSmge_GX4zLFp5WqzbulaOHZzrbJQuI_6Id6_coS_isq2x0Pr4NnzpTPtCpcOyDHaYZCWnvJyXIpmkcs4LknlWJDOaZmlVTPIynU1IynHKVONMK_uSJBPM0N6QtaptWMRn32MTu5gdx2nE5zGLJkl9knQk3XZkpDhFySZKlsP3mztpAlL2_PzH12vBU9P1HhD92QEiSR_NIJ4m5zcsHdWdFo5YlK7dqaNG1H6-YcdWweiBWWf60rFvLMpXUb6J0tW94a0e0GzPQsgQqA8q4sjmPMpWUbbx6j94-wHV8P2tdz6I_xfyz4FvD8QqZaxjWjXElGVVaxjo0QmjLM63bfQpHnS_qkYyB4Na4eybPbOdKIkVBBOAg8thq2kCq6BoqWxh412ffTw5_KTaQixcsBlwwkbASdN-Z9cZ3R6AqGxlQPbSA6bA7o2qhQYJwWfWVp-x35WFAWpQjj8CbYOh0G2BoRbWkcFENaXuJQ3KZ7X40HURT595PvEZFaxAkUlVVWSocfrkk1QL52mKTP_CeUd8zT6aX_NgsD4fsrI7pNAJZNDsSFON_XfeahfOyKlCU-CBdaFk0mUltKWgcsfZn9NwewPm4d-g8OQMNgxP8PeAz_uvi_cLUixht1PVjal_Ij6-aGFv67N1hfYiM1S3R4A4Qiqp1F4D5yUJUPWgIoUTvihu_N8_F5fezVHAeL31WfDlND-_WAaVYZf1Zy7fjjLow12PdPOpf2-MroNEgo9k7lP59pxj7VqUOU7B_W3I_yyku47xUWD3Wjex3WbG-7wmJCj0Ez5-1EN_D50FyajU3veHlSHxugotZmXQbnyhs6XWNYoZTaMWr2RDr0FP6jEtiOHqaVjte9JR2aFA-KzoPY3RYBwy6fkv2fJx-YSU4M4ayQVuv3QuRqJ3h9Ys6tfeSHoZ9UYvfvlyHZD4yzXl83R0WEwnclLlyXRWZKWoEi7TFCKel7M5n9A4G2lRkLYLn1vOi36Pry8gDKUWzf7L0G7e_77fv_5fthn9d5RqwRPOk_F4Pk6SPOXxOOU5FtNcZFU2ywWudarBsdj7iVuzH5lFcAm8FkKtrLPvQgF4-4ZoMRBm5JTTYXETUbZhowBkEVD8BRTeneI>53293</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-format]
</td>
</tr>
<tr>
<th>Labels</th>
<td>
bug,
clang-format,
regression
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
mkurdej
</td>
</tr>
</table>
<pre>
Commit https://github.com/llvm/llvm-project/commit/5c2e7c9ca043d92bed75b08e653fb47c384edd13 introduced a regression (w.r.t. v13). @mydeveloperday
Style: LLVM
Input/expected:
```
template <typename = void> struct S {};
template <> struct S : Template<int (*)[]> {};
```
Output:
```
template <typename = void> struct S {};
template <> struct S : Template<int (*)[]>{};
```
The first line is for comparison only.
Mind the missing space before `{}` on the second line.
It seems that `[]` are now
This code is just a minimal repro of https://github.com/tcbrindle/span/blob/master/include/tcb/span.hpp#L274 (a bit differently formatted):
```
template <typename, typename, typename = void>
struct is_container_element_type_compatible : std::false_type {};
template <typename T, typename E>
struct is_container_element_type_compatible<
T, E,
typename std::enable_if<
!std::is_same<typename std::remove_cv<decltype(detail::data(
std::declval<T>()))>::type,
void>::value &&
std::is_convertible<
remove_pointer_t<decltype(detail::data(std::declval<T>()))> (*)[],
E (*)[]>::value>::type> : std::true_type {};
```
Using config `BreakBeforeBraces: Allman` makes the issues be even more visible (but is not related AFAICT).
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVUuPozgQ_jXkYg0iBkI45JBHt9RSj_Yw2b1GBheJu81Dtsls_v1-hnQ6mfT07OxpEcI29fBXn6vKRStPi3Vb18qxg3OdDeJlwB_x7pU79EVYtjUWWh_fhi-daV-odFiWgx0mackpK_NSREksc16QzNIimtMsjasiycp4npCU05ipxplW9iVJJpihvSFrVduwgM-_hyZ0ITtO44DnIQuSqD5JOpJuOzJSnIJoE0TL8fvNnTQBKXt-_uvrteCp6XoPiP7uAJGkj2YUz6LzOywd1Z0WjlgQr92po0bUfr5hx1bB6IFZZ_rSsW8syFZBtgni1b3hrR7QbM9CyBCoDyrgYDMP0lWQbrz6D95-QDV-_-idD-L_hfxz4NsDsUoZ65hWDTFlWdUahvTohFEW59s2-hSOul9VI5mDQa1w9s2e2U6UxAqCCcDB5bjVLILVoGipbGHjXZ99PDn8pNpCLNxgM-KEjYCTpv3OrhndHoCobOWA7KUHTIHdG1ULjSREPrO2-iz7XVkYoEbK8UegbTAUui0w1MI6MpioptS9pFH5rBYeui7g8TPPEs-oYAWKTKqqIkON0ydPUi2cT1Mw_RvnHfA1-2h-nQej9fmQld2BQifAoNmRphr777zVbjgjpwpNQx5YN5RMvKyEtjSo3OXsz9NwewPm4b-g8Mk52DA8g78HfN5_XbxfkGIJu52qbkz9E_DpRQt7W8_WFdqLzFDdHgHiCKmkUnsNnJckQNWjihRO-KK48X__XFx6N0cB4_XWs-DLKT-_WA4q4y7rz1y-HeWgD3c96OYz_94YXQcJgo9k7ql8e86xdi3KHKfgfhnyvwvprmN8FNi91k1st8x4n9cJiRT6ST5-1EP_HDoLyKjU3veHlSHxuhpazMqg3fhCZ0utaxQzmkYtXskOvQY9qce0IIarp2G170lHZccC4fOi92mMBuPApM9_yZaPyydQgjtrIhe4_eJcTJxymhYIstSi2X8Z6xwBs0lv9OK379kRlL9nY57Hk8NCFrOYRJKUxTwp8limMo-SMpGzaVokaTybaFGQth5BwHnR7_H1tYThBtHl7_tV7P-lm4la8IjzaDrNp1GUxTycxjzDYpaJtErnmcD9TDWSJfRYw9bsJ2YxwMZuFkKtrLPvQgHn-4YGUrx_0btDaxb1a28kvUyGCBdDeP8APO-I_A">