We currently have both TYPE_FIELDS and TYPE_METHODS for RECORD or UNION types.

Originally TYPE_FIELDS held the FIELD_DECLS, but the C++ FE puts other kinds of things there -- TYPE_DECLs are a favourite. The C++ FE was the only user of TYPE_METHODS, which holds member functions. AFAICT it is still the only generator.

Given that the common code iterating over TYPE_FIELDS must already check for non FIELD_DECL things, it seems superflous for the methods to be on a separate list. A quick grep shows ipa-devirt, c-ada-spec.c and debug emission to be the only non C++ FE things that would need a bit of cleanup.

Having a single chain of member decls will simplify the C++ FE, as I try and merge its class member symbol handling.

Any objections to going down this path?

nathan
--
Nathan Sidwell

Reply via email to