]> granicus.if.org Git - clang/commitdiff
clang-format: Get slightly better at understanding */&.
authorDaniel Jasper <djasper@google.com>
Wed, 8 Mar 2017 09:49:12 +0000 (09:49 +0000)
committerDaniel Jasper <djasper@google.com>
Wed, 8 Mar 2017 09:49:12 +0000 (09:49 +0000)
Before:
  void f() { MACRO(A * const a); }

After:
  void f() { MACRO(A *const a); }

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@297268 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/TokenAnnotator.cpp
unittests/Format/FormatTest.cpp

index 1a3b3520494c359b059689e44a69892fe5ab2073..97a22d8e97e94ac7591c5622c7144cea23510233 100644 (file)
@@ -1302,7 +1302,8 @@ private:
       return TT_UnaryOperator;
 
     const FormatToken *NextToken = Tok.getNextNonComment();
-    if (!NextToken || NextToken->isOneOf(tok::arrow, tok::equal) ||
+    if (!NextToken ||
+        NextToken->isOneOf(tok::arrow, tok::equal, tok::kw_const) ||
         (NextToken->is(tok::l_brace) && !NextToken->getNextNonComment()))
       return TT_PointerOrReference;
 
index b785d18d5239cfb0a57356d3bd561f36b49240d5..506de3b7f7d22086ea8806871d60206062ef39c2 100644 (file)
@@ -4965,6 +4965,7 @@ TEST_F(FormatTest, UnderstandsUsesOfStarAndAmp) {
   verifyIndependentOfContext("MACRO(int *i);");
   verifyIndependentOfContext("MACRO(auto *a);");
   verifyIndependentOfContext("MACRO(const A *a);");
+  verifyIndependentOfContext("MACRO(A *const a);");
   verifyIndependentOfContext("MACRO('0' <= c && c <= '9');");
   verifyFormat("void f() { f(float{1}, a * a); }");
   // FIXME: Is there a way to make this work?