2024-05-21 Release Manager * GCC 13.3.0 released. 2024-03-10 Iain Buclaw Backported from master: 2024-03-10 Iain Buclaw PR d/112285 PR d/112290 * d-target.cc (Target::preferPassByRef): Return true for all static array and struct types. 2024-03-03 Iain Buclaw Backported from master: 2024-03-03 Iain Buclaw PR d/114171 * d-codegen.cc (lower_struct_comparison): Keep alignment of original type in reinterpret cast for comparison. 2024-03-02 Iain Buclaw Backported from master: 2024-02-12 Iain Buclaw PR d/113758 * d-codegen.cc (d_build_call): Force a TARGET_EXPR when callee destorys its arguments. * decl.cc (DeclVisitor::visit (VarDeclaration *)): Set SET_DECL_VALUE_EXPR on the temporary variable to make it a placeholder for the TARGET_EXPR_SLOT. 2024-03-02 Iain Buclaw Backported from master: 2024-02-12 Iain Buclaw PR d/113125 * types.cc (TypeVisitor::visit (TypeStruct *)): Generate TYPE_DECL and apply UDAs to opaque struct declarations. 2023-10-29 Iain Buclaw Backported from master: 2023-10-29 Iain Buclaw PR d/110712 * d-codegen.cc (d_build_call): Update call to convert_for_argument. * d-convert.cc (is_valist_parameter_type): New function. (check_valist_conversion): New function. (convert_for_assignment): Update signature. Add check whether assigning va_list is permissible. (convert_for_argument): Likewise. * d-tree.h (convert_for_assignment): Update signature. (convert_for_argument): Likewise. * expr.cc (ExprVisitor::visit (AssignExp *)): Update call to convert_for_assignment. 2023-10-28 Iain Buclaw Backported from master: 2023-10-28 Iain Buclaw PR d/112270 * d-builtins.cc (d_build_d_type_nodes): Initialize d_bool_false_node, d_bool_true_node. * d-codegen.cc (build_array_struct_comparison): Use d_bool_false_node instead of boolean_false_node. * d-convert.cc (d_truthvalue_conversion): Use d_bool_false_node and d_bool_true_node instead of boolean_false_node and boolean_true_node. * d-tree.h (enum d_tree_index): Add DTI_BOOL_FALSE and DTI_BOOL_TRUE. (d_bool_false_node): New macro. (d_bool_true_node): New macro. * modules.cc (build_dso_cdtor_fn): Use d_bool_false_node and d_bool_true_node instead of boolean_false_node and boolean_true_node. (register_moduleinfo): Use d_bool_type instead of boolean_type_node. 2023-07-27 Release Manager * GCC 13.2.0 released. 2023-07-07 Iain Buclaw Backported from master: 2023-07-07 Iain Buclaw PR d/108842 * decl.cc (DeclVisitor::visit (VarDeclaration *)): Only emit scalar manifest constants. (get_symbol_decl): Don't generate CONST_DECL for non-scalar manifest constants. * imports.cc (ImportVisitor::visit (VarDeclaration *)): New method. 2023-07-02 Iain Buclaw Backported from master: 2023-07-02 Iain Buclaw PR d/110516 * intrinsics.cc (expand_volatile_load): Set TREE_SIDE_EFFECTS on the expanded expression. (expand_volatile_store): Likewise. 2023-07-01 Iain Buclaw Backported from master: 2023-07-01 Iain Buclaw PR d/110514 * decl.cc (get_symbol_decl): Set TREE_READONLY on certain kinds of const and immutable variables. * expr.cc (ExprVisitor::visit (ArrayLiteralExp *)): Set TREE_READONLY on immutable dynamic array literals. 2023-07-01 Iain Buclaw Backported from master: 2023-07-01 Iain Buclaw PR d/110471 * d-builtins.cc (d_init_versions): Predefine D_ModuleInfo, D_Exceptions, and D_TypeInfo only if feature is enabled. * lang.opt: Add -fexceptions. 2023-06-28 Iain Buclaw Backported from master: 2023-06-28 Iain Buclaw PR d/106977 PR target/110406 * types.cc (finish_aggregate_mode): New function. (finish_incomplete_fields): Call finish_aggregate_mode. (finish_aggregate_type): Replace call to compute_record_mode with finish_aggregate_mode. 2023-06-26 Iain Buclaw Backported from master: 2023-06-26 Iain Buclaw PR d/110359 * d-convert.cc (convert_for_rvalue): Only apply the @safe boolean conversion to boolean fields of a union. (convert_for_condition): Call convert_for_rvalue in the default case. 2023-06-26 Iain Buclaw PR d/110113 * dmd/escape.d (checkMutableArguments): Always allocate new buffer for computing escapeBy. 2023-06-26 Iain Buclaw Backported from master: 2023-06-25 Iain Buclaw * dmd/MERGE: Merge upstream dmd a45f4e9f43. * dmd/VERSION: Bump version to v2.103.1. 2023-06-05 Iain Buclaw Backported from master: 2023-06-05 Iain Buclaw * gdc.texi (Warnings): Document -Wextra and -Wmismatched-special-enum. * implement-d.texi (Special Enums): Add reference to warning option -Wmismatched-special-enum. * lang.opt: Add -Wextra and -Wmismatched-special-enum. * types.cc (TypeVisitor::visit (TypeEnum *)): Warn when declared special enum size mismatches its intrinsic type. 2023-04-26 Release Manager * GCC 13.1.0 released. 2023-03-17 Iain Buclaw * dmd/MERGE: Merge upstream dmd 5f7552bb28. * dmd/VERSION: Bump version to v2.103.0-rc.1. 2023-03-16 Iain Buclaw * dmd/MERGE: Merge upstream dmd 4ca4140e58. * dmd/VERSION: Bump version to v2.103.0-beta.1. * Make-lang.in (D_FRONTEND_OBJS): Add d/errorsink.o. * d-ctfloat.cc (CTFloat::sprint): Update signature for new front-end interface. * d-frontend.cc (getTypeInfoType): Likewise. * d-lang.cc (d_handle_option): Remove handling of -fpreview=dip25 and -frevert=dip25. (d_post_options): Remove enabling of sealed references language feature when scoped pointers is enabled. * d-tree.h (create_typeinfo): Update signature. * decl.cc (DeclVisitor::finish_vtable): Update for new front-end interface. (DeclVisitor::visit (VarDeclaration *)): Likewise. (DeclVisitor::visit (FuncDeclaration *)): Check skipCodegen to see if front-end explicitly requested not to generate code. * expr.cc (ExprVisitor::visit (NewExp *)): Update for new front-end interface. * lang.opt (fpreview=dip25): Remove. (frevert=dip25): Remove. * modules.cc (layout_moduleinfo_fields): Update for new front-end interface. (layout_moduleinfo): Likewise. * runtime.def (NEWCLASS): Remove. * toir.cc (IRVisitor::visit (IfStatement *)): Don't generate IR for if statement list when condition is `__ctfe'. * typeinfo.cc (create_typeinfo): Add generate parameter. * types.cc (layout_aggregate_members): Update for new front-end interface. 2023-03-16 Iain Buclaw PR d/109144 * d-codegen.cc (build_frame_type): Set frame field and type alignment. 2023-03-14 Iain Buclaw PR d/109108 * decl.cc (function_defined_in_root_p): Remove. (get_symbol_decl): Set DECL_LAMBDA_FUNCTION_P on function literals. (start_function): Unconditionally unset DECL_EXTERNAL (set_linkage_for_decl): Give lambda functions one-only linkage. 2023-03-13 Iain Buclaw * decl.cc (finish_thunk): Unset DECL_EXTERNAL on thunk. (make_thunk): Set DECL_EXTERNAL on thunk, don't call build_decl_tree. (finish_function): Call finish_thunk on forward referenced thunks. 2023-03-13 Iain Buclaw * decl.cc (get_fndecl_result): New function. (get_fndecl_arguments): New function. (DeclVisitor::visit (FuncDeclaration *)): Adjust to call get_fndecl_arguments. (make_thunk): Adjust to call get_fndecl_arguments and get_fndecl_result. (start_function): Adjust to call get_fndecl_result. 2023-03-03 Iain Buclaw PR d/108763 * implement-d.texi (Missing Features): Document that TypeInfo-based va_arg is not implemented. 2023-03-03 Iain Buclaw PR d/108946 * d-target.cc (Target::isVectorOpSupported): Allow identity ops. * expr.cc (ExprVisitor::visit (IdentityExp *)): Handle vector identity comparisons. 2023-03-03 Iain Buclaw PR d/108877 * imports.cc (ImportVisitor::visit (EnumDeclaration *)): Call make_import on TYPE_MAIN_VARIANT. (ImportVisitor::visit (AggregateDeclaration *)): Likewise. (ImportVisitor::visit (ClassDeclaration *)): Likewise. 2023-03-03 Iain Buclaw PR d/108945 * d-codegen.cc (build_boolop): Evaluate vector comparison as the truth_type_for vector type. 2023-02-23 Arsen Arsenović * implement-d.texi: Reorder index entries around @items. 2023-02-23 Arsen Arsenović * gdc.texi: Reorder @opindex commands to precede @items they relate to. 2023-02-21 Iain Buclaw * Make-lang.in (D_FRONTEND_OBJS): Add d/location.o. * d-lang.cc (d_init_options): Update for new front-end interface. (d_post_options): Call Loc::set after handling options. * dmd/MERGE: Merge upstream dmd 09faa4eacd. * dmd/VERSION: Bump version to v2.102.0-beta.1. 2023-02-21 Iain Buclaw * d-codegen.cc (d_build_call): Remove front-end expansion of side-effects in a call expression. * d-gimplify.cc (d_gimplify_call_expr): Gimplify the callee before its arguments. 2023-02-21 Iain Buclaw * decl.cc (DeclVisitor::visit (FuncDeclaration *)): Set doing_semantic_analysis_p before calling functionSemantic3. 2023-01-02 Jakub Jelinek * gdc.texi: Bump @copyrights-d year. Copyright (C) 2023 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.