[lldb-dev] [Bug 20766] New: LLDB asserts like mad on "Only storage fields have tail padding!"
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Wed Aug 27 03:08:19 PDT 2014
http://llvm.org/bugs/show_bug.cgi?id=20766
Bug ID: 20766
Summary: LLDB asserts like mad on "Only storage fields have
tail padding!"
Product: lldb
Version: unspecified
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: All Bugs
Assignee: lldb-dev at cs.uiuc.edu
Reporter: chandlerc at gmail.com
CC: david.majnemer at gmail.com, tfiala at google.com
Classification: Unclassified
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.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20140827/07f2f998/attachment.html>
More information about the lldb-dev
mailing list