diff options
author | Daniel Jasper <djasper@google.com> | 2013-02-06 10:57:42 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-02-06 10:57:42 +0000 |
commit | 8035b0a6ced4dd3f1a0f34e0a027005b53f7753b (patch) | |
tree | 11989d2bd6fcffdb3f639ba9496629b772c4621b | |
parent | 2cff49e026879ad2f0c24de4a2c3168fb83c663e (diff) | |
download | bcm5719-llvm-8035b0a6ced4dd3f1a0f34e0a027005b53f7753b.tar.gz bcm5719-llvm-8035b0a6ced4dd3f1a0f34e0a027005b53f7753b.zip |
Fix an issue with the formatting of stars in default values.
Before: void f(int *a = d *e, int b = 0);
After: void f(int *a = d * e, int b = 0);
llvm-svn: 174500
-rw-r--r-- | clang/lib/Format/TokenAnnotator.cpp | 2 | ||||
-rw-r--r-- | clang/unittests/Format/FormatTest.cpp | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index ca8d595df76..1a55985905c 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -519,7 +519,7 @@ private: if (getPrecedence(Current) == prec::Assignment) { Contexts.back().IsExpression = true; AnnotatedToken *Previous = Current.Parent; - while (Previous != NULL) { + while (Previous != NULL && Previous->isNot(tok::comma)) { if (Previous->Type == TT_BinaryOperator && (Previous->is(tok::star) || Previous->is(tok::amp))) { Previous->Type = TT_PointerOrReference; diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 56f39e88a22..f5250bc4df5 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -1549,6 +1549,7 @@ TEST_F(FormatTest, UnderstandsUsesOfStarAndAmp) { verifyIndependentOfContext( "const char *const p = reinterpret_cast<const char *const>(q);"); verifyIndependentOfContext("A<int **, int **> a;"); + verifyIndependentOfContext("void f(int *a = d * e, int *b = c * d);"); verifyFormat( "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\n" |