From 1f0754bf761f7d4910348ce3aba867d34473bceb Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Wed, 2 Jan 2013 15:26:16 +0000 Subject: [PATCH] Understand unary operators after "return" and "case". This fixes llvm.org/PR14746. Before: return - 1; After: return -1; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171389 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/Format.cpp | 3 ++- unittests/Format/FormatTest.cpp | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index d354078231..c08bcf4f5c 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -852,7 +852,8 @@ private: const Token &PreviousTok = Line.Tokens[Index - 1].Tok; if (PreviousTok.is(tok::equal) || PreviousTok.is(tok::l_paren) || PreviousTok.is(tok::comma) || PreviousTok.is(tok::l_square) || - PreviousTok.is(tok::question) || PreviousTok.is(tok::colon)) + PreviousTok.is(tok::question) || PreviousTok.is(tok::colon) || + PreviousTok.is(tok::kw_return) || PreviousTok.is(tok::kw_case)) return TokenAnnotation::TT_UnaryOperator; // There can't be to consecutive binary operators. diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 58712ef38f..22da93ebe3 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -646,6 +646,12 @@ TEST_F(FormatTest, UnderstandsUnaryOperators) { verifyFormat("b ? -a : c;"); verifyFormat("n * sizeof char16;"); verifyFormat("sizeof(char);"); + + verifyFormat("return -1;"); + verifyFormat("switch (a) {\n" + "case -1:\n" + " break;\n" + "}"); } TEST_F(FormatTest, UndestandsOverloadedOperators) { -- 2.40.0