2023-12-16  Andrew Carlotti  <andrew.carlotti@arm.com>

	* d-attribs.cc (attr_target_exclusions): Make
	target/target_clones exclusion target-dependent.
	(attr_target_clones_exclusions): Ditto.

2023-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in (D_FRONTEND_OBJS): Rename d/common-string.o to
	d/common-smallbuffer.o.
	* dmd/MERGE: Merge upstream dmd 2bbf64907c.
	* dmd/VERSION: Bump version to v2.106.0.
	* modules.cc (layout_moduleinfo_fields): Update for new front-end
	interface.
	(layout_moduleinfo): Likewise.

2023-12-05  Richard Sandiford  <richard.sandiford@arm.com>

	* d-attribs.cc (d_langhook_common_attribute_table): Add extra braces
	to work around PR 16333 in older compilers.
	(d_langhook_gnu_attribute_table): Likewise.

2023-12-02  Richard Sandiford  <richard.sandiford@arm.com>

	* d-tree.h (d_langhook_attribute_table): Replace with...
	(d_langhook_gnu_attribute_table): ...this.
	(d_langhook_common_attribute_table): Change type to
	scoped_attribute_specs.
	* d-attribs.cc (d_langhook_common_attribute_table): Change type to
	scoped_attribute_specs, using...
	(d_langhook_common_attributes): ...this as the underlying array.
	(d_langhook_attribute_table): Replace with...
	(d_langhook_gnu_attributes, d_langhook_gnu_attribute_table): ...these
	new globals.
	(uda_attribute_p): Update accordingly, and update for new
	targetm.attribute_table type.
	* d-lang.cc (d_langhook_attribute_table): New global.
	(LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Delete.

2023-11-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd ff57fec515.
	* dmd/VERSION: Bump version to v2.106.0-rc.1.
	* expr.cc (ExprVisitor::visit (CatAssignExp *)): Update for new
	front-end interface.
	(ExprVisitor::visit (NewExp *)): Likewise.
	* runtime.def (NEWARRAYMTX): Remove.
	(NEWARRAYMITX): Remove.

2023-11-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 65a3da148c.

2023-11-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 643b1261bb.
	* d-attribs.cc (build_attributes): Update for new front-end interface.
	* d-lang.cc (d_post_options): Likewise.
	* decl.cc (layout_class_initializer): Likewise.

2023-10-31  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::visit (NewExp *)): Remove unused assignments.

2023-10-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	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-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd e48bc0987d.
	* expr.cc (ExprVisitor::visit (NewExp *)): Update for new front-end
	interface.
	* runtime.def (NEWARRAYT): Remove.
	(NEWARRAYIT): Remove.

2023-10-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	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-10-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (call_side_effect_free_p): New function.
	* d-tree.h (CALL_EXPR_WARN_IF_UNUSED): New macro.
	(call_side_effect_free_p): New prototype.
	* expr.cc (ExprVisitor::visit (CallExp *)): Set
	CALL_EXPR_WARN_IF_UNUSED on matched call expressions.
	(ExprVisitor::visit (NewExp *)): Don't dereference the result of an
	allocation call here.
	* toir.cc (add_stmt): Emit warning when call expression added to
	statement list without being used.

2023-10-22  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd f4be7f6f7b.
	* Make-lang.in (D_FRONTEND_OBJS): Rename d/root-rootobject.o to
	d/rootobject.o.

2023-10-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (intrinsic_code): Update define for DEF_D_INTRINSIC.
	(maybe_reject_intrinsic): New prototype.
	* expr.cc (ExprVisitor::visit (SymOffExp *)): Call
	maybe_reject_intrinsic.
	* intrinsics.cc (intrinsic_decl): Add fallback field.
	(intrinsic_decls): Update define for DEF_D_INTRINSIC.
	(maybe_reject_intrinsic): New function.
	* intrinsics.def (DEF_D_LIB_BUILTIN): Update.
	(DEF_CTFE_BUILTIN): Update.
	(INTRINSIC_BSF): Declare as library builtin.
	(INTRINSIC_BSR): Likewise.
	(INTRINSIC_BT): Likewise.
	(INTRINSIC_BSF64): Likewise.
	(INTRINSIC_BSR64): Likewise.
	(INTRINSIC_BT64): Likewise.
	(INTRINSIC_POPCNT32): Likewise.
	(INTRINSIC_POPCNT64): Likewise.
	(INTRINSIC_ROL): Likewise.
	(INTRINSIC_ROL_TIARG): Likewise.
	(INTRINSIC_ROR): Likewise.
	(INTRINSIC_ROR_TIARG): Likewise.
	(INTRINSIC_ADDS): Likewise.
	(INTRINSIC_ADDSL): Likewise.
	(INTRINSIC_ADDU): Likewise.
	(INTRINSIC_ADDUL): Likewise.
	(INTRINSIC_SUBS): Likewise.
	(INTRINSIC_SUBSL): Likewise.
	(INTRINSIC_SUBU): Likewise.
	(INTRINSIC_SUBUL): Likewise.
	(INTRINSIC_MULS): Likewise.
	(INTRINSIC_MULSL): Likewise.
	(INTRINSIC_MULU): Likewise.
	(INTRINSIC_MULUI): Likewise.
	(INTRINSIC_MULUL): Likewise.
	(INTRINSIC_NEGS): Likewise.
	(INTRINSIC_NEGSL): Likewise.
	(INTRINSIC_TOPRECF): Likewise.
	(INTRINSIC_TOPREC): Likewise.
	(INTRINSIC_TOPRECL): Likewise.

2023-10-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 4c18eed967.
	* d-diagnostic.cc (verrorReport): Update for new front-end interface.
	(verrorReportSupplemental): Likewise.
	* d-lang.cc (d_init_options): Likewise.
	(d_handle_option): Likewise.
	(d_post_options): Likewise.
	(d_parse_file): Likewise.
	* decl.cc (get_symbol_decl): Likewise.

2023-10-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd f9efc98fd7.
	* dmd/VERSION: Bump version to v2.105.2.
	* d-builtins.cc (build_frontend_type): Update for new front-end
	interface.
	* d-diagnostic.cc (verrorReport): Don't emit tips when error gagging
	is turned on.
	* d-lang.cc (d_handle_option): Remove obsolete parameter.
	(d_post_options): Likewise.
	(d_read_ddoc_files): New function.
	(d_generate_ddoc_file): New function.
	(d_parse_file): Update for new front-end interface.
	* expr.cc (ExprVisitor::visit (AssocArrayLiteralExp *)): Check for new
	front-end lowering of static associative arrays.

2023-10-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/111537
	* expr.cc (ExprVisitor::visit (StringExp *)): Include null terminator
	in STRING_CST string.
	* modules.cc (get_compiler_dso_type): Generate ModuleInfo** type for
	the minfo fields.

2023-10-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_write_file): New function.
	(d_parse_file): Reduce code duplication.

2023-10-03  David Malcolm  <dmalcolm@redhat.com>

	* d-diagnostic.cc (d_diagnostic_report_diagnostic): Use text_info
	ctor.

2023-09-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 4574d1728d.
	* dmd/VERSION: Bump version to v2.105.0.
	* d-diagnostic.cc (verror): Remove.
	(verrorSupplemental): Remove.
	(vwarning): Remove.
	(vwarningSupplemental): Remove.
	(vdeprecation): Remove.
	(vdeprecationSupplemental): Remove.
	(vmessage): Remove.
	(vtip): Remove.
	(verrorReport): New function.
	(verrorReportSupplemental): New function.
	* d-lang.cc (d_parse_file): Update for new front-end interface.
	* decl.cc (d_mangle_decl): Update for new front-end interface.
	* intrinsics.cc (maybe_set_intrinsic): Update for new front-end
	interface.

2023-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 26f049fb26.
	* dmd/VERSION: Bump version to v2.105.0-beta.1.
	* d-codegen.cc (get_frameinfo): Check useGC in condition.
	* d-lang.cc (d_handle_option): Set obsolete parameter when compiling
	with -Wall.
	(d_post_options): Set useGC to false when compiling with
	-fno-druntime.  Propagate obsolete flag to compileEnv.
	* expr.cc (ExprVisitor::visit (CatExp *)): Check useGC in condition.

2023-07-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd a88e1335f7.
	* dmd/VERSION: Bump version to v2.104.1.

2023-07-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 17ccd12af3.
	* dmd/VERSION: Bump version to v2.104.0.
	* Make-lang.in (D_FRONTEND_OBJS): Rename d/apply.o to
	d/postordervisitor.o.
	* d-codegen.cc (make_location_t): Update for new front-end interface.
	(build_filename_from_loc): Likewise.
	(build_assert_call): Likewise.
	(build_array_bounds_call): Likewise.
	(build_bounds_index_condition): Likewise.
	(build_bounds_slice_condition): Likewise.
	(build_frame_type): Likewise.
	(get_frameinfo): Likewise.
	* d-diagnostic.cc (d_diagnostic_report_diagnostic): Likewise.
	* decl.cc (build_decl_tree): Likewise.
	(start_function): Likewise.
	* expr.cc (ExprVisitor::visit (NewExp *)): Replace code generation of
	`new pointer' with front-end lowering.
	* runtime.def (NEWITEMT): Remove.
	(NEWITEMIT): Remove.
	* toir.cc (IRVisitor::visit (LabelStatement *)): Update for new
	front-end interface.
	* typeinfo.cc (check_typeinfo_type): Likewise.

2023-07-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 28a3b24c2e.
	* dmd/VERSION: Bump version to v2.104.0-beta.1.
	* d-codegen.cc (build_bounds_slice_condition): Update for new
	front-end interface.
	* d-lang.cc (d_init_options): Likewise.
	(d_handle_option): Likewise.
	(d_post_options): Initialize global.compileEnv.
	* expr.cc (ExprVisitor::visit (CatExp *)): Replace code generation
	with new front-end lowering.
	(ExprVisitor::visit (LoweredAssignExp *)): New method.
	(ExprVisitor::visit (StructLiteralExp *)): Don't generate static
	initializer symbols for structs defined in C sources.
	* runtime.def (ARRAYCATT): Remove.
	(ARRAYCATNTX): Remove.

2023-07-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	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  <ibuclaw@gdcproject.org>

	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  <ibuclaw@gdcproject.org>

	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  <ibuclaw@gdcproject.org>

	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  <ibuclaw@gdcproject.org>

	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-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/110193
	* types.cc (d_signed_or_unsigned_type): Handle being called with any
	vector or non-integral type.

2023-06-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	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-25  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd a45f4e9f43.
	* dmd/VERSION: Bump version to v2.103.1.

2023-06-15  Marek Polacek  <polacek@redhat.com>

	* Make-lang.in: Remove NO_PIE_CFLAGS.

2023-06-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* 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-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* d-codegen.cc (underlying_complex_expr): Use _P defines from tree.h.
	* d-convert.cc (convert): Ditto.
	(convert_for_rvalue): Ditto.

2023-03-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 5f7552bb28.
	* dmd/VERSION: Bump version to v2.103.0-rc.1.

2023-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* 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  <ibuclaw@gdcproject.org>

	PR d/109144
	* d-codegen.cc (build_frame_type): Set frame field and type alignment.

2023-03-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	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  <ibuclaw@gdcproject.org>

	* 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  <ibuclaw@gdcproject.org>

	* 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  <ibuclaw@gdcproject.org>

	PR d/108763
	* implement-d.texi (Missing Features): Document that TypeInfo-based
	va_arg is not implemented.

2023-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	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  <ibuclaw@gdcproject.org>

	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  <ibuclaw@gdcproject.org>

	PR d/108945
	* d-codegen.cc (build_boolop): Evaluate vector comparison as
	the truth_type_for vector type.

2023-02-23  Arsen Arsenović  <arsen@aarsen.me>

	* implement-d.texi: Reorder index entries around @items.

2023-02-23  Arsen Arsenović  <arsen@aarsen.me>

	* gdc.texi: Reorder @opindex commands to precede @items they
	relate to.

2023-02-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* 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  <ibuclaw@gdcproject.org>

	* 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  <ibuclaw@gdcproject.org>

	* decl.cc (DeclVisitor::visit (FuncDeclaration *)): Set
	doing_semantic_analysis_p before calling functionSemantic3.

2023-01-02  Jakub Jelinek  <jakub@redhat.com>

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