2026-02-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (build_libcall): New declaration.
	* runtime.cc (build_libcall_1): New function.
	(build_libcall): New overload.
	* d-codegen.cc (build_assert_call): Call build_libcall without Type
	argument.
	(build_array_bounds_call): Likewise.
	(build_bounds_index_condition): Likewise.
	(build_bounds_slice_condition): Likewise.
	(build_closure): Likewise.
	* expr.cc (ExprVisitor::visit): Likewise.
	* toir.cc (IRVisitor::visit): Likewise.

2026-02-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/124026
	* expr.cc (ExprVisitor::visit (FuncExp *)): Always convert function
	literal to a delegate if the expression expects one.

2026-02-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/123995
	* d-codegen.cc (build_assert_call): Cast libcall result to `noreturn'.
	(build_array_bounds_call):  Likewise.
	(build_bounds_index_condition): Likewise.
	(build_bounds_slice_condition): Likewise.
	* expr.cc (ExprVisitor::visit (ThrowExp *)): Likewise.
	* toir.cc (IRVisitor::visit (ThrowStatement *)): Likewise.
	* runtime.cc (enum d_libcall_type): Add LCT_NORETURN.
	(get_libcall_type): Handle LCT_NORETURN.
	* runtime.def (ASSERTP): Change return type to `noreturn'.
	(ASSERT_MSG): Likewise.
	(UNITTESTP): Likewise.
	(UNITTEST_MSG): Likewise.
	(ARRAYBOUNDSP): Likewise.
	(ARRAYBOUNDS_SLICEP): Likewise.
	(ARRAYBOUNDS_INDEXP): Likewise.
	(THROW): Likewise.

2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>

	PR middle-end/123892
	* d-builtins.cc: Replace CONST_CAST with const_cast<>.
	* d-incpath.cc: Likewise.
	* d-lang.cc: Likewise.
	* d-spec.cc: Likewise.
	* decl.cc: Likewise.

2026-02-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/VERSION: Bump version to v2.112.0.
	* dmd/MERGE: Merge upstream dmd 24a41073c2.
	* d-attribs.cc (build_attributes): Update for new front-end interface.
	* d-builtins.cc (build_frontend_type): Likewise.
	(matches_builtin_type): Likewise.
	(d_init_versions): Predefine D_Profile when compiling with profile
	enabled.
	* d-codegen.cc (get_array_length): Update for new front-end interface.
	(lower_struct_comparison): Likewise.
	(build_array_from_val): Likewise.
	(get_function_type): Likewise.
	(get_frameinfo): Likewise.
	* d-compiler.cc (Compiler::paintAsType): Likewise.
	* d-convert.cc (convert_expr): Likewise.
	(convert_for_rvalue): Likewise.
	(convert_for_assignment): Likewise.
	(d_array_convert): Likewise.
	* d-diagnostic.cc (verrorReport): Rename to ...
	(vreportDiagnostic): ... this.
	(verrorReportSupplemental): Rename to ...
	(vsupplementalDiagnostic): ... this.
	* d-lang.cc (d_handle_option): Handle -std=d2024 and -std=d202y.
	(d_parse_file): Update for new front-end interface.
	* d-target.cc (Target::fieldalign): Likewise.
	(Target::isVectorTypeSupported): Likewise.
	(Target::isVectorOpSupported): Likewise.
	* decl.cc (get_symbol_decl): Likewise.
	(DeclVisitor::visit): Likewise.
	(DeclVisitor::visit (FuncDeclaration *)): Do NRVO on `__result' decl.
	* expr.cc (needs_postblit): Remove.
	(needs_dtor): Remove.
	(lvalue_p): Remove.
	(ExprVisitor::visit): Update for new front-end interface.
	(ExprVisitor::visit (AssignExp *)): Update for front-end lowering
	expression using templates.
	* imports.cc (ImportVisitor::visit): Update for new front-end
	interface.
	* intrinsics.def (INTRINSIC_VA_ARG): Update signature.
	(INTRINSIC_C_VA_ARG): Update signature.
	(INTRINSIC_VASTART): Update signature.
	* lang.opt: Add -std=d2024 and -std=d202y.
	* toir.cc (IRVisitor::visit): Update for new front-end interface.
	* typeinfo.cc (TypeInfoVisitor::visit): Likewise.
	(TypeInfoVisitor::visit (TypeInfoStructDeclaration *)): Ensure
	semantic is ran on all TypeInfo members.
	(base_vtable_offset): Update for new front-end interface.
	* types.cc (TypeVisitor::visit): Likewise.

2026-01-31  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd e1f6680f50.
	* Make-lang.in (D_FRONTEND_OBJS): Remove d/gluelayer.o, d/iasm.o,
	d/iasmgcc.o.  Add d/iasm-package.o, d/iasm-gcc.o.
	(d/iasm-%.o): New recipe.
	* d-convert.cc (convert_expr): Remove library call to dynamic_cast.
	* d-lang.cc (d_init_options): Set errorSupplementLimit parameter.
	* decl.cc (DeclVisitor::visit): Update for new front-end interface.
	* expr.cc (ExprVisitor::visit (EqualExp *)): Update for front-end
	lowering expression using templates.
	(ExprVisitor::visit (InExp *)): Likewise.
	(ExprVisitor::visit (IndexExp *)): Likewise.
	(ExprVisitor::visit (CastExp *)): Likewise.
	(ExprVisitor::visit (RemoveExp *)): Likewise.
	(ExprVisitor::visit (AddrExp *)): Likewise.
	(ExprVisitor::visit (NewExp *)): Likewise.
	(ExprVisitor::visit (ArrayLiteralExp *)): Likewise.
	(ExprVisitor::visit (AssocArrayLiteralExp *)): Likewise.
	* imports.cc (ImportVisitor::visit (AliasDeclaration *)): Update for
	new front-end interface.
	* runtime.def (DYNAMIC_CAST): Remove.
	(INTERFACE_CAST): Remove.
	(ARRAYLITERALTX): Remove.
	(ADEQ2): Remove.
	(ASSOCARRAYLITERALTX): Remove.
	(AANEW): Remove.
	(AAEQUAL): Remove.
	(AAINX): Remove.
	(AAGETY): Remove.
	(AAGETRVALUEX): Remove.
	(AADELX): Remove.
	* typeinfo.cc (TypeInfoVisitor::visit): Layout xopEquals and xtoHash
	in TypeInfo_AssociativeArray.
	(create_typeinfo): Add new fields to internal typeinfo.
	(check_typeinfo_type): Print instantiation trace of error.
	* types.cc (TypeVisitor::visit (TypeStruct *)): Update for new
	front-end interface.

2026-01-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 1017635a96.
	* dmd/VERSION: Bump version to v2.112.0-beta.1.
	* decl.cc (DeclVisitor::finish_vtable): Update for new front-end
	interface.
	(DeclVisitor::visit): Likewise.
	* typeinfo.cc (TypeInfoVisitor::visit): Likewise.

2026-01-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* decl.cc (DeclVisitor::visit (EnumDeclaration *)): Treat sinit member
	field as a generic pointer.
	(enum_initializer_decl): Likewise.
	* expr.cc (ExprVisitor::visit (ArrayLiteralExp *)): Compute static
	array length separately from creating type.
	* modules.cc (struct module_info): Add ctor_decl, dtor_decl,
	sharedctor_decl, shareddtor_decl, standalonector_decl, and
	unittest_decl.
	(layout_moduleinfo_fields): Add mi argument. Use it to check whether
	module helpers have been generated.
	(layout_moduleinfo): Likewise.
	(build_module_tree): Cache generated module helpers in module_info.
	* typeinfo.cc (cpp_type_info_ptrs): New variable.
	(get_cpp_typeinfo_decl): Cache generated C++ type_info references in
	cpp_type_info_ptrs.
	* types.cc (TypeVisitor::visit (TypeEnum *)): Separate getting
	front-end member value from building its CST tree.

2026-01-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/123263
	* d-codegen.cc (d_decl_context): Set DECL_CONTEXT of compiler
	generated functions to that of parent module.

2026-01-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/123264
	* types.cc (finish_aggregate_type): Propagate struct TYPE_NAME to all
	TYPE_NEXT_VARIANT types.

2026-01-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/123407
	* decl.cc (get_symbol_decl): Handle declarations with matching
	assembler names, but different TREE_CODE.

2026-01-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/123046
	* d-codegen.cc (build_address): Return `null' when generating the
	address of a `noreturn' declaration.
	(d_build_call): Compare TYPE_MAIN_VARIANT of type with `noreturn'.
	* decl.cc (get_fndecl_arguments): Likewise.
	* types.cc (finish_aggregate_mode): Likewise.
	(TypeVisitor::visit (TypeFunction *)): Likewise.

2026-01-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/123349
	* d-spec.cc (lang_specific_driver): Use xstrdup to copy -defaultlib
	and -debuglib argument, and unconditionally free the old value.

2026-01-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/123419
	* expr.cc (ExprVisitor::visit (VarExp *)): Adjust assertion.

2026-01-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/123798
	* types.cc (insert_aggregate_bitfield): Set DECL_NONADDRESSABLE_P and
	DECL_PADDING_P on bit-field decls.
	(finish_aggregate_type): Pass the aligned bit offset to layout_decl.

2026-01-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/121477
	* d-codegen.cc (d_mark_addressable): Give an error if taking the
	address of a DECL_BIT_FIELD.

2026-01-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/123422
	* expr.cc (ExprVisitor::visit (ArrayLiteralExp *)): Don't add
	TARGET_EXPR around constructor.
	* toir.cc (IRVisitor::visit (ReturnStatement *)): Recognize more
	patterns for return value optimization.

2026-01-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/120096
	* expr.cc (ExprVisitor::visit (ArrayLiteralExp *)): Include saved side
	effects in expression result.

2026-01-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/122817
	* d-lang.cc (d_parse_file): Set module filename location after
	creation.

2026-01-01  Jakub Jelinek  <jakub@redhat.com>

	* gdc.texi: Bump @copyrights-d year.


Copyright (C) 2026 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
