From: Daniel Jasper Date: Fri, 29 Aug 2014 12:54:38 +0000 (+0000) Subject: clang-format: Fix unary operator detection in corner case. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=968597c300d3726c3a4a495f081eac2e06f6e65a;p=clang clang-format: Fix unary operator detection in corner case. Before: decltype(* ::std::declval()) void F(); After: decltype(*::std::declval()) void F(); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216724 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index ac95f72b60..8b62c97a9d 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -925,8 +925,7 @@ private: if (!NextToken || NextToken->is(tok::l_brace)) return TT_Unknown; - if (PrevToken->is(tok::coloncolon) || - (PrevToken->is(tok::l_paren) && !IsExpression)) + if (PrevToken->is(tok::coloncolon)) return TT_PointerOrReference; if (PrevToken->isOneOf(tok::l_paren, tok::l_square, tok::l_brace, diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 7f1cc5a829..451e834269 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -4931,6 +4931,7 @@ TEST_F(FormatTest, UnderstandsUsesOfStarAndAmp) { verifyFormat("vector v;"); verifyFormat("foo();"); verifyFormat("foo();"); + verifyFormat("decltype(*::std::declval()) void F();"); verifyIndependentOfContext("MACRO(int *i);"); verifyIndependentOfContext("MACRO(auto *a);");