<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - clang-format BWACS_MultiLine option not working with ForEachMacros"
   href="https://bugs.llvm.org/show_bug.cgi?id=44632">44632</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>clang-format BWACS_MultiLine option not working with ForEachMacros
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>10.0
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Formatter
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>vthiberville@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>djasper@google.com, klimek@google.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>If the BraceWrapping AfterControlStatement rule is set to MultiLine, this rule
is not correctly handled with ForEachMacros, and acts as if it was configured
as "Always" on these macros:

Here is a short example to reproduce:

Configuration:
```
---
BreakBeforeBraces: Custom
BraceWrapping:
  AfterControlStatement: MultiLine
ColumnLimit: 30
ForEachMacros: ['for_macro']
```

Input file:
```
void bar(void) {
  for (aaa; bbb && ccc && ddd; eee) {
    foo();
  }
  for (a; b; c) {
    foo();
  }
  for_macro (a, b, c) {
    foo();
  }
  for_macro (aaa, bbb && ccc, ddd) {
    foo();
  }
}
```

Result:
```
void bar(void) {
  for (aaa; bbb && ccc && ddd;
       eee)
  {
    foo();
  }
  for (a; b; c) {
    foo();
  }
  for_macro (a, b, c)
  {
    foo();
  }
  for_macro (aaa, bbb && ccc,
             ddd)
  {
    foo();
  }
}
```

Expected result is to get:
```
  for_macro (a, b, c) {
    foo();
  }
```
for the first occurrence.

This is tested with clang-format version
10.0.0-++20200115115127+cbe681bd833-1~exp1~20200115105727.528</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>