[clang-format] Handle attributes before case label. Relanded.
authorMarek Kurdej <marek.kurdej+llvm.org@gmail.com>
Wed, 9 Mar 2022 10:05:34 +0000 (11:05 +0100)
committerMarek Kurdej <marek.kurdej+llvm.org@gmail.com>
Wed, 23 Mar 2022 15:24:24 +0000 (16:24 +0100)
commit4e88cb6825eefca3c0eb66b5ae40ab123fcc7073
tree6a1261e3c9c5f7429d1ff750971b689e1d4a80de
parent7a9891c598beea4d2398ca9e10fbb2cb6fcac777
[clang-format] Handle attributes before case label. Relanded.

Fixes https://github.com/llvm/llvm-project/issues/53110.

Reviewed By: MyDeveloperDay, HazardyKnusperkeks, owenpan

Differential Revision: https://reviews.llvm.org/D121450

Relanding as the original patch provoked an infinite loop in JavaScript/TypeScript.
A reproducer test case was added and the issue fixed.
clang/lib/Format/UnwrappedLineParser.cpp
clang/lib/Format/UnwrappedLineParser.h
clang/unittests/Format/FormatTest.cpp
clang/unittests/Format/FormatTestJS.cpp