================ @@ -17001,6 +17056,158 @@ TEST_F(FormatTest, ConfigurableSpacesInParens) { verifyFormat("size_t idx = (a->foo)(a - 1);", Spaces); verifyFormat("size_t idx = (*foo)(a - 1);", Spaces); verifyFormat("size_t idx = (*(foo))(a - 1);", Spaces); + + // Check NonConsecutive spaces + Spaces.IndentWidth = 2; + Spaces.SpacesInParens = FormatStyle::SIPO_Custom; + Spaces.SpacesInParensOptions = {}; + Spaces.SpacesInParensOptions.InAttributeSpecifiers = + FormatStyle::SIPCS_Always; + verifyFormat("SomeType *__attribute__( ( attr ) ) *a = NULL;", Spaces); + verifyFormat("void __attribute__( ( naked ) ) foo(int bar)", Spaces); + verifyFormat("void f() __attribute__( ( asdf ) );", Spaces); + Spaces.SpacesInParensOptions.InAttributeSpecifiers = + FormatStyle::SIPCS_NonConsecutive; + verifyFormat("SomeType *__attribute__(( attr )) *a = NULL;", Spaces); + verifyFormat("void __attribute__(( naked )) foo(int bar)", Spaces); + verifyFormat("void f() __attribute__(( asdf ));", Spaces); + Spaces.SpacesInParensOptions.InAttributeSpecifiers = FormatStyle::SIPCS_Never; + + Spaces.SpacesInParens = FormatStyle::SIPO_Custom; + Spaces.SpacesInParensOptions = {}; + Spaces.SpacesInParensOptions.InCStyleCasts = FormatStyle::SIPCS_Always; + verifyFormat("x = ( int32 )y;", Spaces); + verifyFormat("y = (( int (*)(int) )foo)(x);", Spaces); + Spaces.SpacesInParensOptions.InCStyleCasts = + FormatStyle::SIPCS_NonConsecutive; + verifyFormat("x = ( int32 )y;", Spaces); + verifyFormat("y = ((int (*)(int))foo)(x);", Spaces); + Spaces.SpacesInParensOptions.InCStyleCasts = FormatStyle::SIPCS_Never; + verifyFormat("x = (int32)y;", Spaces); + verifyFormat("y = ((int (*)(int))foo)(x);", Spaces); + + Spaces.SpacesInParens = FormatStyle::SIPO_Custom; + Spaces.SpacesInParensOptions = {}; + Spaces.SpacesInParensOptions.InConditionalStatements = + FormatStyle::SIPCS_Always; + verifyFormat("while ( (bool)1 )\n" + " continue;", + Spaces); + verifyFormat("for ( ;; )\n" + " continue;", + Spaces); + verifyFormat("if ( true )\n" + " f();\n" + "else if ( true )\n" + " f();", + Spaces); + verifyFormat("do {\n" + " do_something((int)i);\n" + "} while ( something() );", + Spaces); + verifyFormat("switch ( x ) {\n" + "default:\n" + " break;\n" + "}", + Spaces); + verifyFormat("if ( (x - y) && (a ^ b) )\n" + " f();\n", + Spaces); + verifyFormat("for ( int i = 0; i < 10; i = (i + 1) )\n" + " foo(i);", + Spaces); + verifyFormat("switch ( x / (y + z) ) {\n" + "default:\n" + " break;\n" + "}", + Spaces); + Spaces.SpacesInParensOptions.InConditionalStatements = ---------------- HazardyKnusperkeks wrote:
```suggestion Spaces); Spaces.SpacesInParensOptions.InConditionalStatements = ``` https://github.com/llvm/llvm-project/pull/77522 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits