summaryrefslogtreecommitdiffstats
path: root/clang/lib/Format
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2014-12-03 13:20:49 +0000
committerDaniel Jasper <djasper@google.com>2014-12-03 13:20:49 +0000
commit8379107afe9ebbaecae13123515af64cc4dab1e2 (patch)
tree99a191730472fbdb131b2836b8c088d5bdb71241 /clang/lib/Format
parentafd188fee4e11f44c2901ca4c6499aa4be23c081 (diff)
downloadbcm5719-llvm-8379107afe9ebbaecae13123515af64cc4dab1e2.tar.gz
bcm5719-llvm-8379107afe9ebbaecae13123515af64cc4dab1e2.zip
clang-format: Fix expression parser not closing stuff at end of stmt.
Uncovered by a Java test case: Before: public some.package.Type someFunction( // comment int parameter) {} After: public some.package.Type someFunction( // comment int parameter) {} llvm-svn: 223228
Diffstat (limited to 'clang/lib/Format')
-rw-r--r--clang/lib/Format/TokenAnnotator.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp
index 6c04a014a11..3b04e49ba51 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -1147,16 +1147,7 @@ public:
(CurrentPrecedence != -1 && CurrentPrecedence < Precedence) ||
(CurrentPrecedence == prec::Conditional &&
Precedence == prec::Assignment && Current->is(tok::colon))) {
- if (LatestOperator) {
- LatestOperator->LastOperator = true;
- if (Precedence == PrecedenceArrowAndPeriod) {
- // Call expressions don't have a binary operator precedence.
- addFakeParenthesis(Start, prec::Unknown);
- } else {
- addFakeParenthesis(Start, prec::Level(Precedence));
- }
- }
- return;
+ break;
}
// Consume scopes: (), [], <> and {}
@@ -1176,6 +1167,16 @@ public:
next(/*SkipPastLeadingComments=*/Precedence > 0);
}
}
+
+ if (LatestOperator && (Current || Precedence > 0)) {
+ LatestOperator->LastOperator = true;
+ if (Precedence == PrecedenceArrowAndPeriod) {
+ // Call expressions don't have a binary operator precedence.
+ addFakeParenthesis(Start, prec::Unknown);
+ } else {
+ addFakeParenthesis(Start, prec::Level(Precedence));
+ }
+ }
}
private:
OpenPOWER on IntegriCloud