From: Daniel Jasper Date: Fri, 4 Jan 2013 20:46:38 +0000 (+0000) Subject: Correctly format dereference and address of in array parameters. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9bb0d280faaedd528d2af7eeaf06c9f262345ad2;p=clang Correctly format dereference and address of in array parameters. Before: InvalidRegions[ &R] = 0; After: InvalidRegions[&R] = 0; This fixes llvm.org/PR14793 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171522 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index 69020c6575..7f40e35e1d 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -878,8 +878,9 @@ private: const FormatToken &PrevToken = Line.Tokens[Index - 1]; const FormatToken &NextToken = Line.Tokens[Index + 1]; - if (PrevToken.Tok.is(tok::l_paren) || PrevToken.Tok.is(tok::comma) || - PrevToken.Tok.is(tok::kw_return) || PrevToken.Tok.is(tok::colon) || + if (PrevToken.Tok.is(tok::l_paren) || PrevToken.Tok.is(tok::l_square) || + PrevToken.Tok.is(tok::comma) || PrevToken.Tok.is(tok::kw_return) || + PrevToken.Tok.is(tok::colon) || Annotations[Index - 1].Type == TokenAnnotation::TT_BinaryOperator) return TokenAnnotation::TT_UnaryOperator; diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 8eadb545f7..c17bc0d76b 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -768,6 +768,8 @@ TEST_F(FormatTest, UnderstandsUsesOfStarAndAmp) { verifyFormat("a * ++b;"); verifyFormat("a * --b;"); + verifyFormat("InvalidRegions[*R] = 0;"); + // FIXME: Is this desired for LLVM? Fix if not. verifyFormat("A a;"); verifyFormat("A a;");