#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.