| 2026-11-13 Guillaume Gomez <contact@guillaume-gomez.fr> | |
| * d-attribs.cc (handle_noreturn_attribute, handle_malloc_attribute) | |
| (handle_nonnull_attribute, handle_transaction_pure_attribute) | |
| (handle_omp_declare_simd_attribute, d_handle_noreturn_attribute) | |
| (d_handle_malloc_attribute, d_handle_nonnull_attribute) | |
| (d_handle_transaction_pure_attribute) | |
| (d_handle_omp_declare_simd_attribute): Prepend functions with `d_` | |
| 2026-11-10 Arsen Arsenović <aarsenovic@baylibre.com> | |
| * d-codegen.cc (build_vthis_function): Update to use new | |
| qualifier_set APIs. | |
| * types.cc (insert_type_modifiers): Use cv_qualifier instead | |
| of int. | |
| 2026-11-04 Iain Sandoe <iain@sandoe.co.uk> | |
| * d-codegen.cc (build_vec_cmp): New. | |
| (build_boolop): Where required compute a separate return type for vector | |
| boolean ops. | |
| 2026-10-22 Guillaume Gomez <contact@guillaume-gomez.fr> | |
| * Make-lang.in: Add compilation of `attr-handlers.c` in | |
| D front-end. | |
| * d-attribs.cc (handle_leaf_attribute) (handle_const_attribute) | |
| (handle_pure_attribute) (handle_novops_attribute) | |
| (handle_nothrow_attribute) (handle_type_generic_attribute) | |
| (handle_returns_twice_attribute) (handle_fnspec_attribute) | |
| (d_handle_noinline_attribute) (d_handle_used_attribute) | |
| (d_handle_simd_attribute): Remove the functions provided by | |
| `attr-handlers.c`. | |
| 2026-09-08 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> | |
| PR middle-end/126622 | |
| * d-builtins.cc (DEF_ATTR_INT): Use | |
| build_int_cst (integer_type_node, cst). | |
| 2026-09-04 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> | |
| PR middle-end/125507 | |
| * d-tree.h (struct binding_level): Remove ENUM_BITFIELD. | |
| 2026-06-02 Christopher Bazley <chris.bazley@arm.com> | |
| * d-attribs.cc (d_handle_optimize_attribute): | |
| Save the global target options before modifying | |
| them. If the function with the optimize attribute | |
| already has a target option node then restore those | |
| target options as the global options, so that they | |
| are used as the basis for any new optimization and | |
| target options attached to the function. | |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> | |
| * d-attribs.cc (d_handle_alloc_size_attribute): Fix typos. | |
| * d-codegen.cc (build_boolop): Likewise. | |
| (get_frame_for_symbol): Likewise. | |
| * d-gimplify.cc (empty_modify_p): Likewise. | |
| * d-lang.cc (d_parse_file): Likewise. | |
| * d-spec.cc (lang_specific_driver): Likewise. | |
| * d-target.cc (Target::systemLinkage): Likewise. | |
| * decl.cc (get_fndecl_arguments): Likewise. | |
| (build_class_instance): Likewise. | |
| * expr.cc: Likewise. | |
| * implement-d.texi: Likewise. | |
| * intrinsics.cc (call_builtin_fn): Likewise. | |
| (expand_intrinsic_bsf): Likewise. | |
| (expand_intrinsic_rotate): Likewise. | |
| (expand_intrinsic_vastart): Likewise. | |
| (expand_intrinsic_checkedint): Likewise. | |
| (expand_volatile_load): Likewise. | |
| (expand_volatile_store): Likewise. | |
| (expand_intrinsic_vec_convert): Likewise. | |
| (expand_intrinsic_vec_blend): Likewise. | |
| (expand_intrinsic_vec_shuffle): Likewise. | |
| (expand_intrinsic_vec_shufflevector): Likewise. | |
| (expand_intrinsic_vec_load_unaligned): Likewise. | |
| * modules.cc (get_dso_registry_fn): Likewise. | |
| * toir.cc: Likewise. | |
| * typeinfo.cc: Likewise. | |
| * types.cc (finish_aggregate_type): Likewise. | |
| 2026-05-05 Iain Buclaw <ibuclaw@gdcproject.org> | |
| PR d/125089 | |
| * types.cc (finish_aggregate_mode): Explicitly set TYPE_MODE of | |
| non-POD types here. | |
| (finish_aggregate_type): Propagate TREE_ADDRESSABLE to all variants. | |
| (TypeVisitor::visit (TypeStruct *)): Set TREE_ADDRESSABLE before | |
| visiting struct members. | |
| 2026-04-21 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * dmd/MERGE: Merge upstream dmd d1fbbb1a2f. | |
| * expr.cc (ExprVisitor::visit (StringExp *)): Don't generate a | |
| STRING_CST for a mutable array type. | |
| 2026-04-20 Iain Buclaw <ibuclaw@gdcproject.org> | |
| PR d/123411 | |
| * types.cc (TypeVisitor::visit (TypeEnum *)): Only call layout_type on | |
| the TYPE_MAIN_VARIANT of the enum. | |
| 2026-04-20 Iain Buclaw <ibuclaw@gdcproject.org> | |
| PR d/124157 | |
| * expr.cc (ExprVisitor::visit (AssocArrayLiteralExp *)): Return AA | |
| constructor with memory returned by _d_assocarrayliteralTX(). | |
| 2026-04-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * d-attribs.cc (d_langhook_gnu_attributes): Add no_split_stack | |
| attribute. | |
| (d_handle_no_split_stack_attribute): New function. | |
| 2026-04-18 Iain Buclaw <ibuclaw@gdcproject.org> | |
| PR d/124922 | |
| * d-codegen.cc (build_trap_call): New function. | |
| (build_array_bounds_call): Use it. | |
| (build_bounds_index_condition): Likewise. | |
| (build_bounds_slice_condition): Likewise. | |
| (d_build_call): Likewise. | |
| * expr.cc (ExprVisitor::visit (HaltExp *)): Likewise. | |
| (ExprVisitor::visit (AssertExp *)): Likewise. Return zero instead of | |
| void_node when assert contracts are disabled. | |
| * d-tree.h (build_trap_call): New prototype. | |
| 2026-04-14 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * dmd/MERGE: Merge upstream dmd e145b91245. | |
| 2026-04-07 Sandra Loosemore <sloosemore@baylibre.com> | |
| PR other/124784 | |
| * lang.opt.urls: Regenerated. | |
| 2026-04-01 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * dmd/MERGE: Merge upstream dmd 55e64690bc. | |
| * dmd/VERSION: Bump version to v2.113.0-beta.1. | |
| * d-codegen.cc (d_build_call): Check if argument is already a | |
| TARGET_EXPR. | |
| * decl.cc (DeclVisitor::visit (FuncDeclaration *)): Don't use | |
| `__result' decl as named return value if it's a ref type. | |
| * expr.cc (ExprVisitor::visit (StructLiteralExp *)): Force TARGET_EXPR | |
| if init symbol needs to be mutable. | |
| * runtime.def (ARRAYSETLENGTHT): Remove. | |
| (ARRAYSETLENGTHIT): Remove. | |
| (ARRAYCOPY): Remove. | |
| (ARRAYAPPENDCTX): Remove. | |
| * typeinfo.cc (TypeInfoVisitor::visit (TypeInfoClassDeclaration *)): | |
| Only scan class fields for pointer members. | |
| 2026-03-31 Iain Buclaw <ibuclaw@gdcproject.org> | |
| * dmd/MERGE: Merge upstream dmd e7c34c13de. | |
| * d-codegen.cc (build_vthis): Update for new front-end interface. | |
| (get_frameinfo): Likewise. | |
| * d-lang.cc (d_post_options): Disable null pointer checks. | |
| * decl.cc (DeclVisitor::visit (VarDeclaration *)): Ignore ref noreturn | |
| variables. | |
| 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. |