<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 is confused by C99 array initializers."
   href="https://bugs.llvm.org/show_bug.cgi?id=46167">46167</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>clang-format is confused by C99 array initializers.
          </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>phil@kantaka.co.uk
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>djasper@google.com, klimek@google.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Take:

struct S2 {
  int x, y;
};

struct S2 a1[3] = {1, 2, 3, 4, 5, 6};

struct S2 a2[3] =
{
  {1, 2},
  {3, 4},
  5, 6
};

struct S2 a4[3] =
{
  // Current object is all of a4
  [0].x=1, [0].y=2,
  {
     // Current object is a4[1]
     x=3, .y=4
  }
  // Current object is all of a4
  // Current position is [2]
  5, [2].y=6
};

clang-format will output something reasonable for a1 & a2, so long as they fit
on one line, but for a4 it will output:

struct S2 a4[3] = {
    // Current object is all of a4
    [0].x = 1,
    [0].y = 2,
    {// Current object is a4[1]
     x = 3, .y = 4}
    // Current object is all of a4
    // Current position is [2]
    5,
    [2].y = 6};

The .name = value format is possibly confusing it?</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>