<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/64416>64416</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-format] SpacesInParensOptions.InConditionalStatements = false is ignored when Other = true
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
zeule
</td>
</tr>
</table>
<pre>
With the following settings
```
SpacesInParens: Custom
SpacesInParensOptions:
InConditionalStatements: false
InCStyleCasts: false
InEmptyParentheses: false
Other: true
````
clang format inserts spaces inside conditional statements. An illustrative fix:
```diff
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp
index 5ba3ef19f0c5..c8a93999c1da 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -3776,7 +3776,8 @@ bool TokenAnnotator::spaceRequiredBetween(const AnnotatedLine &Line,
Right.is(tok::r_brace) && Right.isNot(BK_Block))) {
return Style.SpacesInParensOptions.InEmptyParentheses;
}
- if (Style.SpacesInParensOptions.InConditionalStatements) {
+
+ {
const FormatToken *LeftParen = nullptr;
if (Left.is(tok::l_paren))
LeftParen = &Left;
@@ -3784,9 +3785,10 @@ bool TokenAnnotator::spaceRequiredBetween(const AnnotatedLine &Line,
LeftParen = Right.MatchingParen;
if (LeftParen) {
if (LeftParen->is(TT_ConditionLParen))
- return true;
+ return Style.SpacesInParensOptions.InConditionalStatements;
+
if (LeftParen->Previous && isKeywordWithCondition(*LeftParen->Previous))
- return true;
+ return Style.SpacesInParensOptions.InConditionalStatements;
}
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VVtvrDYQ_jXelxEIDMvlgYe9nJWik_ZEJ5H6GBkYwI3X3tomm_TXVxj2mk3VtKpk7RrPxfPNfJ5hxvBWIhZkviTz9Yz1tlO6-BN7gbNS1e_Fb9x2YDuERgmh9ly2YNBaLltDgjUJFiQJpuU-H3esQnMnH5hGaUi0gFVvrNrekv7YWa6c0iiFO7lSsubDKROPllncorTOS8OEwUlt0Hu07wJXzHyU3slv2519d1fYDg1-tP9hO9TDqdU9XsM4IBl_K8FkC43SW2aBS4PaGjAOxvDJa4TqFDOYY9A-LCRwIXpjNbP8FaHhb0eox7tq3jTj0bADz2u5BUboxl1M6EbwktDNxgVA6OZJvaBcSKkss0r71W4H5Ve0x7u4rPEN5iWLsAnzJqjmvl9lLI_yPK_CmkEYBEkcj8qe530togkiXY7r3wRI4oDEAXhRmiaErlIgdDntM5iEpVICLh0M-Y0Wrjw_8Y-ea6yXaPeIktCsUtJYmHSxvucSgdBk-Cd0NXHjJ28763NDaGbVy-hPP5eaVUhoPugTmhy1flWW0Gz5_XkpVPVCaD4uIOnywDUA0Gh7LcFR1r_5BPxbpD25IOl6KgUAb4DQ7O993X5F53ENlTls4CzcMUdjeVxqgdDFPTbWXQEkWoPshdhZfR7fIapB8Sp34nk3WE6pORkAXHodCoGNPXo9ESCLCV3lIwGyOaGrMPhfGXAZ11jpX5itOi5bd_4Z8ocJ6FX1P6h4JPrmkvT09Hys1P3DdZq8yfpAH9erorOy_SNafdJQr2nweaQPGl-56s2B-tx8x_e90vUwGY7eCc3OiXJueInpMzCXWP8LJufn-GJOu5vtfVYXUZ1HOZthESZ5GMZ5Og9nXUHDPGY1bTBPwiDAjLFynuZ1kzYxTeKgnPGCBjQKsiAejILUD8s0wmgeRWmT1khzEge4ZVz4QrxufaXbGTemxyKJ4zCZCVaiMG7uUipxD05IKB3GsC4GG6_sW0PiQHBjzcmL5Va4ge1aqjeOJjJfw5fS5cjthiJwA7yVSmMN-w7lOB2dfKjSrNei6KzduTlNN4RuWm67vvQrtR0aung9_Hk7rX7HaujrDo0hdOPQ_hUAAP__m_2Ytw">