Hi, This small series of patches are for non-mechanical refactorings of the D front-end either required to work with the self-hosted version, or were made during the port to the self-hosted compiler.
Each individual change has been pulled out into its own patch, rather than lumped together into one big commit. Bootstrapped and regression tested on x86_64-linux-gnu/-m32/-mx32, and committed to mainline. Regards, Iain. Iain Buclaw (12): d: Factor d_nested_class and d_nested_struct into single function. d: Drop any field or parameter types that got cached before conversion failed. d: Insert null terminator in obstack buffers d: Use hasMonitor to determine whether to emit a __monitor field in D classes d: Use Identifier::idPool to generate anonymous field name. d: Factor aggregate_initializer_decl to set the sinit for aggregate declarations. d: Set COMDAT and visibility of thunks only if they are public. d: Only handle named enums in enum_initializer_decl d: Clarify comment for generating static array assignment with literal. d: Don't generate a PREDICT_EXPR when assert contracts are turned off. d: Always layout initializer for the m_RTInfo field in TypeInfo_Class d: Remove dead code from binary_op. gcc/d/d-builtins.cc | 19 ++++++++++++---- gcc/d/d-codegen.cc | 54 ++++++++++++--------------------------------- gcc/d/d-lang.cc | 6 ++++- gcc/d/decl.cc | 45 +++++++++++++++++++------------------ gcc/d/expr.cc | 26 +++++----------------- gcc/d/typeinfo.cc | 23 +++++++++++++------ gcc/d/types.cc | 2 +- 7 files changed, 80 insertions(+), 95 deletions(-) -- 2.30.2