Comment # 4 on bug 1176095 from
The assert happens as follows.

We dereference tag here, and tag is 0:
...
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7f65d92 in tag__is_pointer (tag=0x0) at
/home/vries/dwarves/src/dwarves.h:446
446             return tag->tag == DW_TAG_pointer_type;
...
because member_type is 0 here:
...
(gdb) up
#2  0x00007ffff7f69ad4 in type__natural_alignment (type=0x15b1e00, cu=0xd7ed50)
at /home/vries/dwarves/src/dwarves.c:1469
1469                    size_t member_natural_alignment =
tag__natural_alignment(member_type, cu);
(gdb) p member_type
$1 = (struct tag *) 0x0
...

The member_type is set just before:
...
1468                    struct tag *member_type =
tag__strip_typedefs_and_modifiers(&member->tag, cu);
1469                    size_t member_natural_alignment =
tag__natural_alignment(member_type, cu);
...

But it's set to 0 because member->tag.type is 0:
...
(gdb) p *member
$16 = {tag = {node = {next = 0x15b1ff0, prev = 0x15b1f30}, type = 0, tag = 13,
visited = false, top_level = false, recursivity_level = 0, 
    priv = 0x15b1440}, name = 55224, bit_offset = 128, bit_size = 0,
byte_offset = 16, byte_size = 0, bitfield_offset = 0 '\000', 
  bitfield_size = 0 '\000', bit_hole = 0 '\000', bitfield_end = 0 '\000',
const_value = 0, alignment = 8, visited = 0 '\000', 
  is_static = 0 '\000', accessibility = 0 '\000', virtuality = 0 '\000', hole =
0}
...

Looking in a bit more detail, we can see that the member is at offset 0x426ba,
and the type at 0x726e:
...
(gdb) p /x *(struct dwarf_tag*)member.tag.priv
$5 = {hash_node = {next = 0x15aad50, pprev = 0x15c4340}, type = {from_types =
0x0, off = 0x726e}, id = 0x426ba, {abstract_origin = {
      from_types = 0x0, off = 0x0}, containing_type = {from_types = 0x0, off =
0x0}}, tag = 0x15b1f90, small_id = 0x0, decl_file = 0x0, 
  decl_line = 0x0}
...

We have a matching complaint earlier:
...
namespace__recode_dwarf_types: couldn't find 0x726e type for 0x426ba (member)!
...


You are receiving this mail because: