From: Manuel Klimek Date: Wed, 23 Jan 2013 14:37:36 +0000 (+0000) Subject: Fix handling of macro definitions. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7ccbc2156bfe473f080b585130d70e51c4b62bb0;p=clang Fix handling of macro definitions. Now correctly formats: #define A (1) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173264 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/UnwrappedLineParser.cpp b/lib/Format/UnwrappedLineParser.cpp index 1b39442610..ad641a29b1 100644 --- a/lib/Format/UnwrappedLineParser.cpp +++ b/lib/Format/UnwrappedLineParser.cpp @@ -240,7 +240,8 @@ void UnwrappedLineParser::parsePPDefine() { return; } nextToken(); - if (FormatTok.Tok.getKind() == tok::l_paren) { + if (FormatTok.Tok.getKind() == tok::l_paren && + FormatTok.WhiteSpaceLength == 0) { parseParens(); } addUnwrappedLine(); diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 806a7eb9c0..708b7d8086 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -742,6 +742,10 @@ TEST_F(FormatTest, HashInMacroDefinition) { verifyFormat("#define A void # ## #", getLLVMStyleWithColumns(22)); } +TEST_F(FormatTest, RespectWhitespaceInMacroDefinitions) { + verifyFormat("#define A (1)"); +} + TEST_F(FormatTest, IndentPreprocessorDirectivesAtZero) { EXPECT_EQ("{\n {\n#define A\n }\n}", format("{{\n#define A\n}}")); }