<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </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 --- - LLDB asserts like mad on "Only storage fields have tail padding!""
   href="http://llvm.org/bugs/show_bug.cgi?id=20766">20766</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>LLDB asserts like mad on "Only storage fields have tail padding!"
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>lldb
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </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>All Bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>lldb-dev@cs.uiuc.edu
          </td>
        </tr>

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

        <tr>
          <th>CC</th>
          <td>david.majnemer@gmail.com, tfiala@google.com
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>I see the following assert-failure crash on LLDB *extremely* frequently:

Process 6948 stopped
* thread #1: tid = 6948, 0x00000000017dfd39 llc`(anonymous
namespace)::DAGCombiner::visitEXTRACT_VECTOR_ELT(this=0x00007fffffffc4d8,
N=0x0000000002a13f88) + 873 at DAGCombiner.cpp:9999, name = 'llc', stop reason
= breakpoint 2.1
    frame #0: 0x00000000017dfd39 llc`(anonymous
namespace)::DAGCombiner::visitEXTRACT_VECTOR_ELT(this=0x00007fffffffc4d8,
N=0x0000000002a13f88) + 873 at DAGCombiner.cpp:9999
   9996   if (NVT.bitsLT(LVT) && !TLI.isTruncateFree(LVT, NVT))
   9997     return SDValue();
   9998
-> 9999   if (InVec.getOpcode() == ISD::BITCAST) {
   10000            // Don't duplicate a load with other uses.
   10001            if (!InVec.hasOneUse())
   10002              return SDValue();
(lldb) p N->dump(&DAG)
lldb: ../tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp:526: void (anonymous
namespace)::CGRecordLowering::clipTailPadding(): Assertion `Prior->Kind ==
MemberInfo::Field && !Prior->FD && "Only storage fields have tail padding!"'
failed.
zsh: abort (core dumped)  lldb -- ./bin/llc -o - shuffle.ll
-x86-experimental-vector-shuffle-lowering


However, I can't produce folks a nice reproduction recipe, even by checking out
all of LLVM, building the 'llc' binary, breaking exactly where I have in this
example, and printing just as I have. You can try doing it at head, and you'll
find that *sometimes* it reproduces, but not always.

I believe that what is actually happening here is that we're getting slightly
different merge resolutions of debug information or some such, and that drives
slightly different calls through to Clang to build up the CGRecordLayout, and
only some of them end in this assertion.

However, this is now the most frequent problem I hit trying to debug things
with LLDB by about a factor of 5 or 10. (Which really is a compliment -- almost
everything works these days on Linux!)


Let me know if this just won't reproduce for folks and I'll try to extract some
recipe that fairly reliably triggers it.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>