[haiku-bugs] Re: [Haiku] #8508: Various classes no longer appear to be resolving members with recent gcc upgrades

  • From: "anevilyak" <trac@xxxxxxxxxxxx>
  • Date: Sat, 05 May 2012 02:14:38 -0000

#8508: Various classes no longer appear to be resolving members with recent gcc
upgrades
-------------------------------------+----------------------------
   Reporter:  anevilyak              |      Owner:  anevilyak
       Type:  bug                    |     Status:  new
   Priority:  normal                 |  Milestone:  R1
  Component:  Applications/Debugger  |    Version:  R1/Development
 Resolution:                         |   Keywords:
 Blocked By:                         |   Blocking:
Has a Patch:  0                      |   Platform:  All
-------------------------------------+----------------------------
Changes (by anevilyak):

 * cc: bonefish (added)


Comment:

 I'm somewhat puzzled as to what's going on here:

 The definition for the Model class is a DIE with a tag type of structure
 (0x189f1d20). The latter contains children which define the values for
 several enum and union types contained within it, but not the data
 members. It also defines a second compound type entry which does contain
 the data members (0x189f8148). That one has the Model's type entry tagged
 as a specification. This seems backwards to me, since normally if we can't
 find what we need on the DIE itself, we look at the specification or
 abstract origin to try and resolve what we need, but in this case that's
 not possible because they're chained the opposite way around. I do notice
 that dwarf type factory gets called for both types, but I'm wondering if,
 due to the order in which things happen, the one that lacks the data
 members makes it into the type cache first and prevents the other from
 being added as a consequence. Any ideas, Ingo? This is readily
 reproducible with Tracker by putting a breakpoint at e.g.
 src/kits/tracker/Model.h:391.

 Corresponding DIE parsing and local variable creation trace is attached.

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/8508#comment:1>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: