Issue 75929
Summary clang-format-18 `AlignArrayOfStructures: Left` fails when encountering UTF-32 strings
Labels clang-format
Assignees
Reporter MartinsSmirnovs
    Given following `.clang-format` file:
```
AlignArrayOfStructures: Left
```
And following `foo.cpp` file:
```
#include <array>
#include <list>
#include <string>

struct Language {
  std::array<char, 2> code = {};
  std::u32string name;
};

using Languages = std::list<Language>;

Languages languages = {
    Language{{'e', 'n'}, U"Test English" },
    Language{{'l', 'v'}, U"Test Latviešu"},
    Language{{'r', 'u'}, U"Test Русский" },
};
```
I expect that clang-format foo.cpp will not perform formatting, however, it does:
```
#include <array>
#include <list>
#include <string>

struct Language {
  std::array<char, 2> code = {};
  std::u32string name;
};

using Languages = std::list<Language>;

Languages languages = {
    Language{{'e', 'n'}, U"Test English"       },
    Language{{'l', 'v'}, U"Test Latviešu"     },
    Language{{'r', 'u'}, U"Test Русский"},
};
```
If I remove the UTF-32 characters, then formatting happens as expected:
```
#include <array>
#include <list>
#include <string>

struct Language {
  std::array<char, 2> code = {};
  std::u32string name;
};

using Languages = std::list<Language>;

Languages languages = {
    Language{{'e', 'n'}, U"Test English"},
    Language{{'l', 'v'}, U"Test Latvian"},
    Language{{'r', 'u'}, U"Test Russian"},
};
```

`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

Reply via email to