]> granicus.if.org Git - clang/commitdiff
Correctly recognize dereference after 'delete'.
authorDaniel Jasper <djasper@google.com>
Tue, 7 May 2013 14:17:18 +0000 (14:17 +0000)
committerDaniel Jasper <djasper@google.com>
Tue, 7 May 2013 14:17:18 +0000 (14:17 +0000)
With certain styles:
Before: delete* x;
After:  delete *x;

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

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

index 17abb01d181d5417659b3de917574c5448b64ab4..3ac5a07884e332106798bec98f7cf9554b669a38 100644 (file)
@@ -664,8 +664,8 @@ private:
   }
 
   /// \brief Return the type of the given token assuming it is * or &.
-  TokenType
-  determineStarAmpUsage(const AnnotatedToken &Tok, bool IsExpression) {
+  TokenType determineStarAmpUsage(const AnnotatedToken &Tok,
+                                  bool IsExpression) {
     const AnnotatedToken *PrevToken = Tok.getPreviousNoneComment();
     if (PrevToken == NULL)
       return TT_UnaryOperator;
@@ -679,7 +679,7 @@ private:
 
     if (PrevToken->isOneOf(tok::l_paren, tok::l_square, tok::l_brace,
                            tok::comma, tok::semi, tok::kw_return, tok::colon,
-                           tok::equal) ||
+                           tok::equal, tok::kw_delete) ||
         PrevToken->Type == TT_BinaryOperator ||
         PrevToken->Type == TT_UnaryOperator || PrevToken->Type == TT_CastRParen)
       return TT_UnaryOperator;
index 4c948e89e9807a1bf79db9912d3e03b9825db3ca..3bb90d9630fbe6dccd6869d3f8583d9dae7170c8 100644 (file)
@@ -2598,6 +2598,9 @@ TEST_F(FormatTest, UnderstandsUsesOfStarAndAmp) {
   verifyIndependentOfContext("A = new SomeType *[Length]();");
   verifyGoogleFormat("A = new SomeType* [Length]();");
   verifyGoogleFormat("A = new SomeType* [Length];");
+  FormatStyle PointerLeft = getLLVMStyle();
+  PointerLeft.PointerBindsToType = true;
+  verifyFormat("delete *x;", PointerLeft);
 }
 
 TEST_F(FormatTest, UnderstandsEllipsis) {