<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 - AlwaysBreakAfterReturnType not working for macros"
   href="https://bugs.llvm.org/show_bug.cgi?id=37707">37707</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>AlwaysBreakAfterReturnType not working for macros
          </td>
        </tr>

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

        <tr>
          <th>Version</th>
          <td>6.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>matthew.woehlke@kitware.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>I'm having a number of issues trying to get clang-format to behave reasonably
on
<a href="https://github.com/Kitware/kwiver/blob/303a11ebb43c020ab8e48b6ef70407b460dba46b/vital/range/defs.h">https://github.com/Kitware/kwiver/blob/303a11ebb43c020ab8e48b6ef70407b460dba46b/vital/range/defs.h</a>,
using
<a href="https://gist.github.com/mwoehlke-kitware/d8ef9466df5096a035059938aef2948d">https://gist.github.com/mwoehlke-kitware/d8ef9466df5096a035059938aef2948d</a>.

For this bug, the problem is that AlwaysBreakAfterReturnType set to TopLevel
does not work in macros. Specifically, breaks after returns are being removed
in the latter functions defined by `KWIVER_RANGE_ADAPTER_FUNCTION`, which are
top level and therefore I expect to be subject to AlwaysBreakAfterReturnType.

Specifically:

  // Before (correct)
  constexpr name##_view_adapter_t< Args... > \
  name( Args... args ) \
  ...
  template < typename Range, typename... Args > \
  auto \
  operator|( \

  // After (wrong)
  constexpr name##_view_adapter_t< Args... > name( Args... args ) \
  ...
  auto operator|( Range const& range, \</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>