clang-format identation with BreakBeforeBraces: GNU and #define

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

clang-format identation with BreakBeforeBraces: GNU and #define

Hans Wennborg via cfe-dev
Dear all,

Versions of clang-format 3.5.2-10 incorrectly format identation when  
BreakBeforeBraces: GNU has been selected and #ifdefs are used then  
comments gets idented wrongly.
Example using clang-format 10.0.0+b452de0

function test()
{

#ifdef TEST1
   if (test1)
     {
       printf("test1");
     }
#endif

     /* This comment has been indented wrong */

#ifdef TEST2
   if (test2)
     {
       printf("test1");
     }
#endif
}

function test()
{

   if (test1)
     {
       printf("test1");
     }

     /* This comment has been indented correct */

   if (test2)
     {
       printf("test1");
     }
}

Is this defined behavior? It only occurs when there is a comment  
between two ifdef blocks.
Adding a variable between will yield the correct indentation

function test()
{

#ifdef TEST1
   if (test1)
     {
       printf("test1");
     }
#endif

   /* This comment has been indented correct */

   int test = 0;

#ifdef TEST2
   if (test2)
     {
       printf("test1");
     }
#endif
}

_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev