mirror of
https://review.haiku-os.org/haiku
synced 2025-02-22 13:38:56 +01:00
DIESubprogram: - Adjust to inherit from DIENamespace, as gcc can and will use it as a container in some circumstances. DIEClassBaseType: - Add accessor for member functions. DwarfImageDebugInfo: - Adjust recursive walking for types to take into account any DIENamespace, not just DW_TAG_namespace specifically. - Factor out adding function to list into a helper. - When retrieving the list of functions, perform a similar recursive walk as is done when building the types table, as some subprograms are apparently not always added to the root compilation unit entry. Curiously, this behavior seems to be relatively specific to a struct/class type declared inside a function in GCC's case, but based on the DWARF spec, there does not appear to be any specific restriction as far as where these can be nested, so be a bit more paranoid to ensure we don't encounter similar cases in the future.