summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2013-07-08 14:58:01 +0000
committerDaniel Jasper <djasper@google.com>2013-07-08 14:58:01 +0000
commit6a09df7964e4134d81fef8361852cefc606ad387 (patch)
treecce3a0a7c80ffab3f4a0dbbe35c9865a6387ab3a
parent4c409494d85d0e0ea5db8b250224ed25e45ed592 (diff)
downloadbcm5719-llvm-6a09df7964e4134d81fef8361852cefc606ad387.tar.gz
bcm5719-llvm-6a09df7964e4134d81fef8361852cefc606ad387.zip
Fix incorrect incorrect cast identification in clang-format.
This fixes llvm.org/PR16534. Before: aaaaa& operator+(const aaaaa&)LLVM_DELETED_FUNCTION; After: aaaaa& operator+(const aaaaa&) LLVM_DELETED_FUNCTION; llvm-svn: 185828
-rw-r--r--clang/lib/Format/TokenAnnotator.cpp1
-rw-r--r--clang/unittests/Format/FormatTest.cpp1
2 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp
index 1bcdac8e21a..3c2ae52c998 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -633,6 +633,7 @@ private:
// there is also an identifier before the ().
if (LeftOfParens && (LeftOfParens->Tok.getIdentifierInfo() == NULL ||
LeftOfParens->is(tok::kw_return)) &&
+ LeftOfParens->Type != TT_OverloadedOperator &&
LeftOfParens->Type != TT_TemplateCloser && Current.Next &&
Current.Next->is(tok::identifier))
IsCast = true;
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index dd137aabd6d..2afd91e482f 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -3498,6 +3498,7 @@ TEST_F(FormatTest, FormatsCasts) {
verifyFormat("int a = alignof(int) * b;", getGoogleStyle());
verifyFormat("template <> void f<int>(int i) SOME_ANNOTATION;");
verifyFormat("f(\"%\" SOME_MACRO(ll) \"d\");");
+ verifyFormat("aaaaa &operator=(const aaaaa &) LLVM_DELETED_FUNCTION;");
// These are not casts, but at some point were confused with casts.
verifyFormat("virtual void foo(int *) override;");
OpenPOWER on IntegriCloud