[lldb-dev] [Bug 15591] New: ASSERT when building record layout for anonymous structures.

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Mar 25 13:30:46 PDT 2013


http://llvm.org/bugs/show_bug.cgi?id=15591

            Bug ID: 15591
           Summary: ASSERT when building record layout for anonymous
                    structures.
           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: samueldotj at gmail.com
    Classification: Unclassified

Assertion failure in lldb:
llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp:2271: uint64_t <anonymous
namespace>::RecordLayoutBuilder::updateExternalFieldOffset(const
clang::FieldDecl *, uint64_t): Assertion `ExternalFieldOffsets.find(Field) !=
ExternalFieldOffsets.end() && "Field does not have an external offset"' failed.
Aborted (core dumped)

I am able to reproduce the problem with the following program.

$ cat test.c
typedef struct {
    int dummy;
}type_y;

typedef struct {
    type_y y;
}type_z;

int main(int argc, char *argv[])
{
    type_z *z = 0;
    return 0;
}

$ gcc -O0 -g3 ./test.c

$ lldb a.out
Current executable set to 'a.out' (x86_64).
(lldb) p *((type_z *)0)
lldb: llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp:2271: uint64_t
<anonymous namespace>::RecordLayoutBuilder::updateExternalFieldOffset(const
clang::FieldDecl *, uint64_t): Assertion `ExternalFieldOffsets.find(Field) !=
ExternalFieldOffsets.end() && "Field does not have an external offset"' failed.

-- 
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/20130325/cca3a2ce/attachment.html>


More information about the lldb-dev mailing list