<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 - Break after return type ignored with certain template parameters"
   href="https://bugs.llvm.org/show_bug.cgi?id=40696">40696</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Break after return type ignored with certain template parameters
          </td>
        </tr>

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

        <tr>
          <th>Version</th>
          <td>8.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>normal
          </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>cm@archescomputing.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>The break after return type style doesn't seem to work if the function's first
parameter is a template with an integer template-parameter.

Given the source:
int TestFn(A<8> a) { return a; }

When run with the Mozilla style, clang-format reformats the code as:

int TestFn(A<8> a)
{
  return a;
}

Note the return type is on the same line as the function name. If the function
signature is changed such that the first parameter does not have an integer
template parameter, it behaves as expected. For example, changing <8> to <bool>
formats the code with the return type on its own line.

int
TestFn(A<bool> a)
{
  return a;
}

This is using clang-format version 8.0.0 (trunk 345971):</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>