| 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. |