From: Daniel Jasper Date: Fri, 12 Jun 2015 07:15:33 +0000 (+0000) Subject: clang-format: Understand C-style case in case label. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=14dee3a62afa919259cd9133f279bcb302ca3874;p=clang clang-format: Understand C-style case in case label. Before: case (my_int) ONE: After: case (my_int)ONE: This fixed llvm.org/PR23760 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@239597 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index e45ef60311..3e8659ef85 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -1081,7 +1081,7 @@ private: // there is also an identifier before the (). else if (LeftOfParens && Tok.Next && (LeftOfParens->Tok.getIdentifierInfo() == nullptr || - LeftOfParens->is(tok::kw_return)) && + LeftOfParens->isOneOf(tok::kw_return, tok::kw_case)) && !LeftOfParens->isOneOf(TT_OverloadedOperator, tok::at, TT_TemplateCloser)) { if (Tok.Next->isOneOf(tok::identifier, tok::numeric_constant)) { diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 46be32bf4b..e6df49d459 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -5818,6 +5818,7 @@ TEST_F(FormatTest, FormatsCasts) { verifyFormat("my_int a = (const my_int *)-1;"); verifyFormat("my_int a = (my_int)(my_int)-1;"); verifyFormat("my_int a = (ns::my_int)-2;"); + verifyFormat("case (my_int)ONE:"); // FIXME: single value wrapped with paren will be treated as cast. verifyFormat("void f(int i = (kValue)*kMask) {}");