From 6a09df7964e4134d81fef8361852cefc606ad387 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Mon, 8 Jul 2013 14:58:01 +0000 Subject: [PATCH] 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 --- clang/lib/Format/TokenAnnotator.cpp | 1 + clang/unittests/Format/FormatTest.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 1bcdac8e21a3..3c2ae52c998f 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 dd137aabd6d8..2afd91e482ff 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 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;");