[cfe-commits] r171862 - in /cfe/trunk: lib/Format/Format.cpp unittests/Format/FormatTest.cpp

Daniel Jasper djasper at google.com
Tue Jan 8 08:17:54 PST 2013


Author: djasper
Date: Tue Jan  8 10:17:54 2013
New Revision: 171862

URL: http://llvm.org/viewvc/llvm-project?rev=171862&view=rev
Log:
Don't put spaces around ##.

In Clang/LLVM this seems to be the more common formatting for ##s. There
might still be case that we miss, but we'll fix those as we go along.

Before:

  #define A(X)
    void function ## X();

After:

  #define A(X)
    void function##X();

Modified:
    cfe/trunk/lib/Format/Format.cpp
    cfe/trunk/unittests/Format/FormatTest.cpp

Modified: cfe/trunk/lib/Format/Format.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/Format.cpp?rev=171862&r1=171861&r2=171862&view=diff
==============================================================================
--- cfe/trunk/lib/Format/Format.cpp (original)
+++ cfe/trunk/lib/Format/Format.cpp Tue Jan  8 10:17:54 2013
@@ -928,6 +928,10 @@
 
   bool spaceRequiredBetween(const AnnotatedToken &Left,
                             const AnnotatedToken &Right) {
+    if (Right.is(tok::hashhash))
+      return Left.is(tok::hash);
+    if (Left.is(tok::hashhash) || Left.is(tok::hash))
+      return Right.is(tok::hash);
     if (Right.is(tok::r_paren) || Right.is(tok::semi) || Right.is(tok::comma))
       return false;
     if (Left.is(tok::kw_template) && Right.is(tok::less))
@@ -962,8 +966,6 @@
       return true;
     if (Left.is(tok::l_paren))
       return false;
-    if (Left.is(tok::hash))
-      return false;
     if (Right.is(tok::l_paren)) {
       return Left.is(tok::kw_if) || Left.is(tok::kw_for) ||
              Left.is(tok::kw_while) || Left.is(tok::kw_switch) ||

Modified: cfe/trunk/unittests/Format/FormatTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=171862&r1=171861&r2=171862&view=diff
==============================================================================
--- cfe/trunk/unittests/Format/FormatTest.cpp (original)
+++ cfe/trunk/unittests/Format/FormatTest.cpp Tue Jan  8 10:17:54 2013
@@ -551,6 +551,15 @@
                "  {       \\\n"
                "    f(#c);\\\n"
                "  }", getLLVMStyleWithColumns(11));
+
+  verifyFormat("#define A(X)         \\\n"
+               "  void function##X()", getLLVMStyleWithColumns(22));
+
+  verifyFormat("#define A(a, b, c)   \\\n"
+               "  void a##b##c()", getLLVMStyleWithColumns(22));
+
+  verifyFormat("#define A            \\\n"
+               "  void # ## #", getLLVMStyleWithColumns(22));
 }
 
 TEST_F(FormatTest, IndentPreprocessorDirectivesAtZero) {





More information about the cfe-commits mailing list