From 2b9c10bd8f80c004756308a5163fa7eda27eb5ce Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Mon, 14 Jan 2013 15:52:06 +0000 Subject: [PATCH] Fix bug that would lead to joining preprocessor directives. Before: #include "a.h" #include "b.h" After: #include "a.h" #include "b.h" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172424 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/Format.cpp | 3 ++- unittests/Format/FormatTest.cpp | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index c8dc7bf55c..742b9a8d1c 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -1427,7 +1427,8 @@ private: std::vector::iterator E, unsigned Limit) { AnnotatedLine &Line = *I; - if (!(I + 1)->InPPDirective) return; + if (!(I + 1)->InPPDirective || (I + 1)->First.FormatTok.HasUnescapedNewline) + return; if (I + 2 != E && (I + 2)->InPPDirective && !(I + 2)->First.FormatTok.HasUnescapedNewline) return; diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index c088089211..daebc4ddab 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -1133,12 +1133,12 @@ TEST_F(FormatTest, LineStartsWithSpecialCharacter) { } TEST_F(FormatTest, HandlesIncludeDirectives) { - verifyFormat("#include "); - verifyFormat("#include "); - verifyFormat("#include \"a/b/string\""); - verifyFormat("#include \"string.h\""); - verifyFormat("#include \"string.h\""); - verifyFormat("#include "); + verifyFormat("#include \n" + "#include \n" + "#include \"a/b/string\"\n" + "#include \"string.h\"\n" + "#include \"string.h\"\n" + "#include "); verifyFormat("#import "); verifyFormat("#import "); -- 2.40.0