diff options
| -rw-r--r-- | clang/lib/Format/TokenAnnotator.cpp | 3 | ||||
| -rw-r--r-- | clang/unittests/Format/FormatTest.cpp | 7 |
2 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 1ef9d1f6fee..6a7180bfb01 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -698,7 +698,8 @@ private: Previous = Previous->Previous) { if (Previous->isOneOf(tok::r_square, tok::r_paren)) Previous = Previous->MatchingParen; - if (Previous->Type == TT_BinaryOperator && + if ((Previous->Type == TT_BinaryOperator || + Previous->Type == TT_UnaryOperator) && Previous->isOneOf(tok::star, tok::amp)) { Previous->Type = TT_PointerOrReference; } diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 6711447c8fc..28bdf3293aa 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -4080,13 +4080,13 @@ TEST_F(FormatTest, DeclarationsOfMultipleVariables) { // line. Also fix indent for breaking after the type, this looks bad. verifyFormat("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*\n" " aaaaaaaaaaaaaaaaaaaaaaaaaaaaa = aaaaaaaaaaaaaaaaaaa,\n" - " *b = bbbbbbbbbbbbbbbbbbb;", + " * b = bbbbbbbbbbbbbbbbbbb;", getGoogleStyle()); // Not ideal, but pointer-with-type does not allow much here. verifyGoogleFormat( - "aaaaaaaaa* a = aaaaaaaaaaaaaaaaaaa, *b = bbbbbbbbbbbbbbbbbbb,\n" - " *b = bbbbbbbbbbbbbbbbbbb, *d = ddddddddddddddddddd;"); + "aaaaaaaaa* a = aaaaaaaaaaaaaaaaaaa, * b = bbbbbbbbbbbbbbbbbbb,\n" + " * b = bbbbbbbbbbbbbbbbbbb, * d = ddddddddddddddddddd;"); } TEST_F(FormatTest, ConditionalExpressionsInBrackets) { @@ -4800,6 +4800,7 @@ TEST_F(FormatTest, UnderstandsUsesOfStarAndAmp) { verifyGoogleFormat("Type* t = x++ * y;"); verifyGoogleFormat( "const char* const p = reinterpret_cast<const char* const>(q);"); + verifyGoogleFormat("void f(int i = 0, SomeType** temps = NULL);"); verifyIndependentOfContext("a = *(x + y);"); verifyIndependentOfContext("a = &(x + y);"); |

