| Issue |
76717
|
| Summary |
clang-format-18 `AlignArrayOfStructures: Left` breaks braced initializer list
|
| Labels |
clang-format
|
| Assignees |
|
| Reporter |
MartinsSmirnovs
|
Given following `.clang-format` file:
```.yaml
AlignArrayOfStructures: Left
ColumnLimit: 0
Cpp11BracedListStyle: false
IndentWidth: 4
```
And following `foo.cpp` file:
```cpp
#include <list>
#include <string>
enum Code {
X,
Y,
Z
};
struct Entry {
std::string data;
Code code;
};
struct Message {
Code code;
Entry entry;
};
using Messages = std::list<Message>;
static const auto messages = Messages{
{
Code::X,
{
"data1",
Code::Y,
},
},
{
Code::Y,
{
"data1",
Code::Z,
},
},
};
using Entries = std::list<Entry>;
static const Entries entry = {
{ "data", Code::X },
{ "data1", Code::Y },
{ "data12", Code::Z },
};
```
I expect that `clang-format foo.cpp` will not perform formatting, however, it does and breaks initializer list of `Messages`:
```cpp
#include <list>
#include <string>
enum Code {
X,
Y,
Z
};
struct Entry {
std::string data;
Code code;
};
struct Message {
Code code;
Entry entry;
};
using Messages = std::list<Message>;
static const auto messages = Messages{
{
Code::X,
{
"data1",
Code::Y,
},
},
{
Code::Y,
{
"data1",
Code::Z,
},
},
};
using Entries = std::list<Entry>;
static const Entries entry = {
{ "data", Code::X },
{ "data1", Code::Y },
{ "data12", Code::Z },
};
```
If `AlignArrayOfStructures: Left` gets commented out, the formatting for `messages` works as expected, but the list of `Entries` is not aligned anymore:
```cpp
#include <list>
#include <string>
enum Code {
X,
Y,
Z
};
struct Entry {
std::string data;
Code code;
};
struct Message {
Code code;
Entry entry;
};
using Messages = std::list<Message>;
static const auto messages = Messages{
{
Code::X,
{
"data1",
Code::Y,
},
},
{
Code::Y,
{
"data1",
Code::Z,
},
},
};
using Entries = std::list<Entry>;
static const Entries entry = {
{ "data", Code::X },
{ "data1", Code::Y },
{ "data12", Code::Z },
};
```
`clang-format` version:
```
$ clang-format --version
Ubuntu clang-format version 18.0.0 (++20231208042253+5fc76e6b6da7-1~exp1~20231208042409.1357)
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs