2022-12-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/108055
	* decl.cc (function_defined_in_root_p): Check all enclosing template
	instances for definition in a root module.
	(function_needs_inline_definition_p): Replace call to
	function_defined_in_root_p with test for outer module `isRoot'.

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

	PR d/108050
	* decl.cc (DeclVisitor::visit (Import *)): Handle build_import_decl
	returning a TREE_LIST.
	* imports.cc (ImportVisitor::visit (OverloadSet *)): New override.

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

	* dmd/MERGE: Merge upstream dmd c8ae4adb2e.
	* typeinfo.cc (check_typeinfo_type): Update for new front-end
	interface.
	(TypeInfoVisitor::visit (TypeInfoStructDeclaration *)): Remove warning
	that toHash() must be declared 'nothrow @safe`.

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

	* intrinsics.cc (expand_intrinsic_bsf): Fix comment.
	(expand_intrinsic_bsr): Use BIT_XOR_EXPR instead of MINUS_EXPR.

2022-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in (D_TEXI_FILES): Add d/implement-d.texi.
	* gdc.texi: Adjust introduction, include implement-d.texi.
	* implement-d.texi: New file.

2022-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in: Only include doc/include when building documentation.
	(d.html): Rename html directory to $(build_htmldir)/gdc.

2022-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* gdc.texi: Separate indices into options and keywords.

2022-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* gdc.texi: Update gdc option documentation.
	* lang.opt (frevert=intpromote): Correct documentation.

2022-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/107592
	* toir.cc (IRVisitor::push_unrolled_continue_label): New method.
	(IRVisitor::pop_unrolled_continue_label): New method.
	(IRVisitor::visit (UnrolledLoopStatement *)): Use them instead of
	push_continue_label and pop_continue_label.

2022-11-23  Martin Liska  <mliska@suse.cz>

	* Make-lang.in: Use it as $DO_LINK_MUTEX.

2022-11-23  Marek Polacek  <polacek@redhat.com>

	Revert:
	2022-11-23  Marek Polacek  <polacek@redhat.com>

	* Make-lang.in: Remove NO_PIE_CFLAGS.

2022-11-23  Marek Polacek  <polacek@redhat.com>

	* Make-lang.in: Remove NO_PIE_CFLAGS.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-14  Martin Liska  <mliska@suse.cz>

	* doc/conf.py: New file.
	* doc/copyright.rst: New file.
	* doc/general-public-license-3.rst: New file.
	* doc/gnu-free-documentation-license.rst: New file.
	* doc/index.rst: New file.
	* doc/indices-and-tables.rst: New file.
	* doc/invoking-gdc.rst: New file.
	* doc/invoking-gdc/code-generation.rst: New file.
	* doc/invoking-gdc/developer-options.rst: New file.
	* doc/invoking-gdc/input-and-output-files.rst: New file.
	* doc/invoking-gdc/options-for-directory-search.rst: New file.
	* doc/invoking-gdc/options-for-linking.rst: New file.
	* doc/invoking-gdc/runtime-options.rst: New file.
	* doc/invoking-gdc/warnings.rst: New file.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-14  Martin Liska  <mliska@suse.cz>

	* d-target.def: Port to RST.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-14  Martin Liska  <mliska@suse.cz>

	* Make-lang.in: Support Sphinx based documentation.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-09  Martin Liska  <mliska@suse.cz>

	* gdc.texi: Removed.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-14  Martin Liska  <mliska@suse.cz>

	* Make-lang.in: Support --with-sphinx-build.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-14  Martin Liska  <mliska@suse.cz>

	* Make-lang.in:
	Support installation if sphinx-build is missing.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-14  Martin Liska  <mliska@suse.cz>

	* doc/copyright.rst:
	Add trailing newline.
	* doc/general-public-license-3.rst:
	Add trailing newline.
	* doc/gnu-free-documentation-license.rst:
	Add trailing newline.
	* doc/index.rst:
	Add trailing newline.
	* doc/indices-and-tables.rst:
	Add trailing newline.
	* doc/invoking-gdc.rst:
	Add trailing newline.
	* doc/invoking-gdc/code-generation.rst:
	Add trailing newline.
	* doc/invoking-gdc/developer-options.rst:
	Add trailing newline.
	* doc/invoking-gdc/input-and-output-files.rst:
	Add trailing newline.
	* doc/invoking-gdc/options-for-directory-search.rst:
	Add trailing newline.
	* doc/invoking-gdc/options-for-linking.rst:
	Add trailing newline.
	* doc/invoking-gdc/runtime-options.rst:
	Add trailing newline.
	* doc/invoking-gdc/warnings.rst:
	Add trailing newline.

2022-11-14  Martin Liska  <mliska@suse.cz>

	Revert:
	2022-11-10  Martin Liska  <mliska@suse.cz>

	* doc/conf.py: Add newline at last line.

2022-11-10  Martin Liska  <mliska@suse.cz>

	* doc/conf.py: Add newline at last line.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/copyright.rst:
	Add trailing newline.
	* doc/general-public-license-3.rst:
	Add trailing newline.
	* doc/gnu-free-documentation-license.rst:
	Add trailing newline.
	* doc/index.rst:
	Add trailing newline.
	* doc/indices-and-tables.rst:
	Add trailing newline.
	* doc/invoking-gdc.rst:
	Add trailing newline.
	* doc/invoking-gdc/code-generation.rst:
	Add trailing newline.
	* doc/invoking-gdc/developer-options.rst:
	Add trailing newline.
	* doc/invoking-gdc/input-and-output-files.rst:
	Add trailing newline.
	* doc/invoking-gdc/options-for-directory-search.rst:
	Add trailing newline.
	* doc/invoking-gdc/options-for-linking.rst:
	Add trailing newline.
	* doc/invoking-gdc/runtime-options.rst:
	Add trailing newline.
	* doc/invoking-gdc/warnings.rst:
	Add trailing newline.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* Make-lang.in:
	Support installation if sphinx-build is missing.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* Make-lang.in: Support --with-sphinx-build.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* gdc.texi: Removed.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* Make-lang.in: Support Sphinx based documentation.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* d-target.def: Port to RST.

2022-11-09  Martin Liska  <mliska@suse.cz>

	* doc/conf.py: New file.
	* doc/copyright.rst: New file.
	* doc/general-public-license-3.rst: New file.
	* doc/gnu-free-documentation-license.rst: New file.
	* doc/index.rst: New file.
	* doc/indices-and-tables.rst: New file.
	* doc/invoking-gdc.rst: New file.
	* doc/invoking-gdc/code-generation.rst: New file.
	* doc/invoking-gdc/developer-options.rst: New file.
	* doc/invoking-gdc/input-and-output-files.rst: New file.
	* doc/invoking-gdc/options-for-directory-search.rst: New file.
	* doc/invoking-gdc/options-for-linking.rst: New file.
	* doc/invoking-gdc/runtime-options.rst: New file.
	* doc/invoking-gdc/warnings.rst: New file.

2022-11-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-target.cc (Target::isVectorOpSupported): Remove cases for
	comparison operators.
	* intrinsics.cc (maybe_set_intrinsic): Remove cases for vector
	comparison intrinsics.
	(maybe_warn_intrinsic_mismatch): Likewise.
	(expand_intrinsic_vec_cond): Remove.
	(maybe_expand_intrinsic): Remove cases for vector comparison
	intrinsics.
	* intrinsics.def (INTRINSIC_EQUALMASK): Remove.
	(INTRINSIC_NOTEQUALMASK): Remove.
	(INTRINSIC_GREATERMASK): Remove.
	(INTRINSIC_GREATEREQUALMASK): Remove.

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

	* d-attribs.cc (apply_user_attributes): Update for new front-end
	interface.
	* d-builtins.cc (d_init_versions): Predefine `D_Optimized' with
	compiling with optimizations enabled.
	* d-lang.cc (d_handle_option): Update for new front-end interface.
	Handle new option `-fpreview=systemvariables'.
	* dmd/MERGE: Merge upstream dmd e4f8919591.
	* dmd/VERSION: Bump version to v2.101.0-beta.1.
	* expr.cc (ExprVisitor::visit (AssignExp *)): Treat construction of
	static arrays from a call expression as a simple assignment.
	(ExprVisitor::visit (ArrayLiteralExp *)): Handle array literals with
	`scope' storage.
	* gdc.texi: Update documentation of `-fpreview=' options.
	* lang.opt (fpreview=shortenedmethods): Remove.
	(fpreview=systemvariables):  New option.

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

	* d-target.def (d_minfo_section): Expand documentation of hook.
	Default initialize to "minfo".
	(d_minfo_start_name): Rename to ...
	(d_minfo_section_start): ... this.  Default initialize to
	"__start_minfo".
	(d_minfo_end_name): Rename to ...
	(d_minfo_section_end): ... this. Default initialize to "__stop_minfo".
	* modules.cc (register_moduleinfo): Use new targetdm hook names.

2022-09-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd d579c467c1.
	* decl.cc (layout_struct_initializer): Update for new front-end
	interface.
	* expr.cc (ExprVisitor::visit (AssignExp *)): Remove lowering of array
	assignments.
	(ExprVisitor::visit (NewExp *)): Add new lowering of new'ing
	associative arrays to an _aaNew() library call.
	* runtime.def (ARRAYSETASSIGN): Remove.
	(AANEW): Define.

2022-09-15  Richard Biener  <rguenther@suse.de>

	* d-builtins.cc (d_build_c_type_nodes): Do not initialize
	void_list_node.

2022-08-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 817610b16d.
	* d-ctfloat.cc (CTFloat::parse): Update for new front-end interface.
	* d-lang.cc (d_parse_file): Likewise.
	* expr.cc (ExprVisitor::visit (AssignExp *)): Remove handling of array
	assignments to non-trivial static and dynamic arrays.
	* runtime.def (ARRAYASSIGN): Remove.
	(ARRAYASSIGN_L): Remove.
	(ARRAYASSIGN_R): Remove.

2022-08-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/106638
	* gdc.texi: Update DIP links to point at upstream dlang/DIPs
	repository.

2022-08-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (d_defer_declaration): Declare.
	* decl.cc (function_needs_inline_definition_p): Defer checking
	DECL_UNINLINABLE and DECL_DECLARED_INLINE_P.
	(maybe_build_decl_tree): Call d_defer_declaration instead of
	build_decl_tree.
	* modules.cc (deferred_inline_declarations): New variable.
	(build_module_tree): Set deferred_inline_declarations and a handle
	declarations pushed to it.
	(d_defer_declaration): New function.

2022-08-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/106623
	* d-codegen.cc (underlying_complex_expr): New function.
	(d_build_call): Handle passing native complex objects as the
	library-defined equivalent.
	* d-tree.h (underlying_complex_expr): Declare.
	* expr.cc (ExprVisitor::visit (DotVarExp *)): Call
	underlying_complex_expr instead of build_vconvert.

2022-08-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-compiler.cc (Compiler::onParseModule): Call create_tinfo_types
	when module name is object.
	* typeinfo.cc (create_tinfo_types): Add guard for multiple
	invocations.

2022-08-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_delegate_cst): Give anonymous delegate field
	names same as per ABI spec.

2022-08-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/106563
	* decl.cc (DeclVisitor::visit (FuncDeclaration *)): Set semanticRun
	before generating its symbol.
	(function_defined_in_root_p): New function.
	(function_needs_inline_definition_p): New function.
	(maybe_build_decl_tree): New function.
	(get_symbol_decl): Call maybe_build_decl_tree before returning symbol.
	(start_function): Use function_defined_in_root_p instead of inline
	test for locally defined symbols.
	(set_linkage_for_decl): Check for inline functions before private or
	protected symbols.

2022-08-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/106555
	* d-target.cc (Target::isReturnOnStack): Check for return type size.

2022-08-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd d7772a2369.
	* dmd/VERSION: Bump version to v2.100.1.
	* d-codegen.cc (get_frameinfo): Check whether decision to generate
	closure changed since semantic finished.
	* d-lang.cc (d_handle_option): Remove handling of -fdebug=level and
	-fversion=level.
	* decl.cc (DeclVisitor::visit (VarDeclaration *)): Generate evaluation
	of noreturn variable initializers before throw.
	* expr.cc (ExprVisitor::visit (AssignExp *)): Don't generate
	assignment for noreturn types, only evaluate for side effects.
	* lang.opt (fdebug=): Undocument -fdebug=level.
	(fversion=): Undocument -fversion=level.

2022-07-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 56589f0f4.

2022-07-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in (NOEXCEPTION_DFLAGS): Define.
	(ALL_DFLAGS): Add NO_EXCEPTION_DFLAGS.

2022-06-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/106139
	* d-convert.cc (convert_expr): Handle casting from array to vector.
	(convert_for_rvalue): Rewrite vector to array casts of the same
	element type into a constructor.
	(convert_for_assignment): Return calling convert_for_rvalue.
	* expr.cc (ExprVisitor::visit (VectorExp *)): Handle generating a
	vector expression from a static array.
	* toir.cc (IRVisitor::visit (ReturnStatement *)): Call
	convert_for_rvalue on return value.

2022-06-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* intrinsics.cc (build_shuffle_mask_type): Use to_constant when
	getting the number of subparts from a vector type.
	(expand_intrinsic_vec_shufflevector): Likewise.

2022-06-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* intrinsics.cc: Include diagnostic.h, langhooks.h,
	vec-perm-indices.h.
	(maybe_set_intrinsic): Add cases for new simd intrinsics.
	(warn_mismatched_return_type): New function.
	(warn_mismatched_argument): New function.
	(build_shuffle_mask_type): New function.
	(maybe_warn_intrinsic_mismatch): New function.
	(expand_intrinsic_vec_cond): New function.
	(expand_intrinsic_vec_convert): New function.
	(expand_intrinsic_vec_blend): New function.
	(expand_intrinsic_vec_shuffle): New function.
	(expand_intrinsic_vec_shufflevector): New function.
	(expand_intrinsic_vec_load_unaligned): New function.
	(expand_intrinsic_vec_store_unaligned): New function.
	(maybe_expand_intrinsic): Check signature of intrinsic before handing
	off to front-end lowering.  Add cases for new simd intrinsics.
	* intrinsics.def (INTRINSIC_LOADUNALIGNED): Define intrinsic.
	(INTRINSIC_STOREUNALIGNED): Define intrinsic.
	(INTRINSIC_SHUFFLE): Define intrinsic.
	(INTRINSIC_SHUFFLEVECTOR): Define intrinsic.
	(INTRINSIC_CONVERTVECTOR): Define intrinsic.
	(INTRINSIC_BLENDVECTOR): Define intrinsic.
	(INTRINSIC_EQUALMASK): Define intrinsic.
	(INTRINSIC_NOTEQUALMASK): Define intrinsic.
	(INTRINSIC_GREATERMASK): Define intrinsic.
	(INTRINSIC_GREATEREQUALMASK): Define intrinsic.

2022-06-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc: Include gimple-expr.h.
	(force_target_expr): Use create_tmp_var_raw.
	* decl.cc: Inlucde gimple-expr.h.
	(build_local_temp): Use create_tmp_var_raw.
	* intrinsics.cc (expand_intrinsic_rotate): Use get_callee_fndecl.
	(maybe_expand_intrinsic): Likewise.

2022-06-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-attribs.cc (handle_omp_declare_simd_attribute): New function.
	(d_handle_simd_attribute): New function.
	(d_langhook_common_attribute_table): Add 'omp declare simd' attribute.
	(d_langhook_attribute_table): Add simd attribute.

2022-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-attribs.cc (d_handle_section_attribute): Update error message.
	(d_handle_symver_attribute): Likewise.
	(d_handle_no_sanitize_attribute): Likewise.
	(d_handle_visibility_attribute): Likewise.

2022-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/105413
	* d-attribs.cc (d_handle_register_attribute): New function.
	(d_langhook_attribute_table): Add register attribute.
	* d-codegen.cc (d_mark_addressable): Error if taken address of
	register variable.
	(build_frame_type): Error if register variable has non-local
	references.
	* d-tree.h (d_mark_addressable): Add complain parameter.
	* decl.cc (get_symbol_decl): Mark register varibles DECL_REGISTER.
	Error when register variable declared thread-local or extern.
	* expr.cc (ExprVisitor::visit (IndexExp *)): Don't complain about
	marking register vectors as addressable in an ARRAY_REF.

2022-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_array_index): Rename to...
	(build_pointer_index): ...this.
	* d-tree.h (build_array_index): Rename declaration to...
	(build_pointer_index): ...this.
	* expr.cc (ExprVisitor::visit (IndexExp *)): Construct indexes of
	ARRAY_TYPE using ARRAY_REF.
	(ExprVisitor::visit (SliceExp *)): Update.
	* intrinsics.cc (expand_intrinsic_bt): Update.

2022-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 529110f66.
	* decl.cc (DeclVisitor::visit (TupleDeclaration *)): Update for new
	front-end interface.
	* types.cc (layout_aggregate_members): Likewise.

2022-06-22  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 6203135dc.
	* typeinfo.cc (TypeInfoVisitor::visit (TypeInfoStructDeclaration *)):
	Update for new front-end interface.
	(SpeculativeTypeVisitor::visit (TypeStruct *)): Likewise.

2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-attribs.cc (d_langhook_attribute_table): Add no_sanitize.
	(d_handle_no_sanitize_attribute): New function.

2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-attribs.cc (d_langhook_attribute_table): Add visibility.
	(insert_type_attribute): Use decl_attributes instead of
	merge_attributes.
	(insert_decl_attribute): Likewise.
	(apply_user_attributes): Do nothing when no UDAs applied.
	(d_handle_visibility_attribute): New function.
	* d-gimplify.cc (d_gimplify_binary_expr): Adjust.
	* d-tree.h (set_visibility_for_decl): Declare.
	* decl.cc (get_symbol_decl): Move setting of visibility flags to...
	(set_visibility_for_decl): ... here.  New function.
	* types.cc (TypeVisitor::visit (TypeStruct *)): Call
	set_visibility_for_decl().
	(TypeVisitor::visit (TypeClass *)): Likewise.

2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* typeinfo.cc (make_internal_typeinfo): Set TYPE_ARTIFICIAL.

2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-attribs.cc (apply_user_attributes): Set ATTR_FLAG_TYPE_IN_PLACE
	only on incomplete types.
	* d-codegen.cc (copy_aggregate_type): Set TYPE_STUB_DECL after copy.
	* d-compiler.cc (Compiler::onParseModule): Adjust.
	* d-tree.h (AGGREGATE_OR_ENUM_TYPE_CHECK): Define.
	(TYPE_FORWARD_REFERENCES): Define.
	* decl.cc (gcc_attribute_p): Update documentation.
	(DeclVisitor::visit (StructDeclaration *)): Exit before building type
	node if gcc.attributes symbol.
	(DeclVisitor::visit (ClassDeclaration *)): Build type node and add
	TYPE_NAME to current binding level before emitting anything else.
	(DeclVisitor::visit (InterfaceDeclaration *)): Likewise.
	(DeclVisitor::visit (EnumDeclaration *)): Likewise.
	(build_type_decl): Move rest_of_decl_compilation() call to
	finish_aggregate_type().
	* types.cc (insert_aggregate_field): Move layout_decl() call to
	finish_aggregate_type().
	(insert_aggregate_bitfield): Likewise.
	(layout_aggregate_members): Adjust.
	(finish_incomplete_fields): New function.
	(finish_aggregate_type): Handle forward referenced field types.  Call
	rest_of_type_compilation() after completing the aggregate.
	(TypeVisitor::visit (TypeEnum *)): Don't set size and alignment until
	after apply_user_attributes().  Call rest_of_type_compilation() after
	completing the enumeral.
	(TypeVisitor::visit (TypeStruct *)): Call build_type_decl() before
	apply_user_attributes().  Don't set size, alignment, and mode until
	after apply_user_attributes().
	(TypeVisitor::visit (TypeClass *)): Call build_type_decl() before
	applly_user_attributes().

2022-06-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc: Include builtins.h.
	(gcc_builtins_libfuncs): Remove.
	(strip_type_modifiers): New function.
	(matches_builtin_type): New function.
	(covariant_with_builtin_type_p): New function.
	(maybe_set_builtin_1): Set front-end built-in if identifier matches
	gcc built-in name.  Apply user-specified attributes and assembler name
	overrides to the built-in.  Warn about built-in declaration mismatches.
	(d_builtin_function): Set IDENTIFIER_DECL_TREE of built-in functions.
	* d-compiler.cc (Compiler::onParseModule): Scan all modules for any
	identifiers that match built-in function names.
	* lang.opt (Wbuiltin-declaration-mismatch): New option.

2022-06-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (check_typeinfo_type): Add Expression* parameter.
	(build_typeinfo): Likewise.  Declare new override.
	* expr.cc (ExprVisitor): Call build_typeinfo with Expression*.
	* typeinfo.cc (check_typeinfo_type): Include expression in the
	diagnostic message.
	(build_typeinfo): New override.

2022-06-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 821ed393d.
	* expr.cc (ExprVisitor::visit (NewExp *)): Remove handled of
	allocating `@nogc' throwable object.
	* runtime.def (NEWTHROW): Remove.

2022-06-02  David Malcolm  <dmalcolm@redhat.com>

	* d-lang.cc (d_get_sarif_source_language): New.
	(LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): Redefine.

2022-05-31  Jason Merrill  <jason@redhat.com>

	* Make-lang.in (d.tags): Just look at *.cc.

2022-05-31  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/105544
	* d-lang.cc (d_parse_file): Zero padding past the end of the stdin
	buffer so the D lexer has a sentinel to stop parsing at.

2022-05-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 4d07f22f2
	* d-lang.cc (d_handle_option): Handle OPT_fpreview_fiximmutableconv.
	* lang.opt (fpreview=fiximmutableconv): New option.
	* runtime.def (ARRAYAPPENDT): Remove.

2022-05-25  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc: Add "final" and "override" to all "visit" vfunc decls
	as appropriate.
	* imports.cc: Likewise.
	* typeinfo.cc: Likewise.

2022-05-24  David Malcolm  <dmalcolm@redhat.com>

	* decl.cc: Add "final" and "override" to all "visit" vfunc decls
	as appropriate.
	* expr.cc: Likewise.
	* toir.cc: Likewise.
	* typeinfo.cc: Likewise.
	* types.cc: Likewise.

2022-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 60bfa0ee7.
	* dmd/VERSION: Update version to v2.100.0.
	* d-builtins.cc (d_init_versions): Update for new front-end interface.
	* d-codegen.cc (d_decl_context): Use resolvedLinkage to get
	declaration linkage.
	(build_struct_literal): Track offset in bits.
	* d-gimplify.cc (d_gimplify_modify_expr): Check both operands for a
	bit-field reference.
	* d-lang.cc (d_handle_option): Handle -fpreview=bitfields, remove
	-frevert=markdown and -ftransition=vmarkdown.
	(d_post_options): Set flag_rtti and flag_exceptions if -fno-druntime
	was seen on command-line.
	(d_parse_file): Update for new front-end interface.
	(d_type_promotes_to): Use resolvedLinkage to get declaration linkage.
	* decl.cc (make_thunk): Likewise.
	* expr.cc (ExprVisitor::visit (CatAssignExp *)): Remove lowering for
	appending of an element or array to another array.
	* lang.opt (fpreview=bitfields): New option.
	(frevert=markdown): Remove.
	(ftransition=vmarkdown): Remove.
	* types.cc (layout_aggregate_members): Ignore anonymous fields in
	total count.

2022-04-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 313d28b3d.
	* d-port.cc (Port::memicmp): Use d_size_t instead of size_t.
	(Port::valcpy): Likewise.

2022-04-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd eb7bee331.
	* dmd/VERSION: Update version to v2.100.0-beta.1.
	* d-lang.cc (d_handle_option): Handle OPT_frevert_dip1000.
	* lang.opt (frevert=dip1000): New option.

2022-04-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in (D_FRONTEND_OBJS): Add d/common-bitfields.o,
	d/mustuse.o.
	* d-ctfloat.cc (CTFloat::isIdentical): Don't treat NaN values as
	identical.
	* dmd/MERGE: Merge upstream dmd 4d1bfcf14.
	* expr.cc (ExprVisitor::visit (VoidInitExp *)): New.

2022-04-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc: Include dmd/template.h.
	(d_parse_file): Call printTemplateStats when vtemplates is set.
	* decl.cc (start_function): Remove OPT_Wtemplates warning.
	* lang.opt (Wtemplates): Remove.

2022-04-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 47871363d.
	* d-builtins.cc (d_init_versions): Add predefined version identifiers
	D_PreConditions, D_PostConditions, and D_Invariants.
	* d-codegen.cc (d_build_call): Update for new front-end interface.
	(build_frame_type): Generate reference field for NRVO variables with
	nested references.
	(build_closure): Generate assignment of return address to closure.
	* d-tree.h (DECL_INSTANTIATED): Use DECL_LANG_FLAG_2.
	(bind_expr): Remove.
	* decl.cc (DeclVisitor::visit (FuncDeclaration *)): Update for new
	front-end interface.
	(get_symbol_decl): Likewise.
	(get_decl_tree): Check DECL_LANG_FRAME_FIELD before DECL_LANG_NRVO.
	Dereference the field when both are set.
	* expr.cc (ExprVisitor::visit (DeleteExp *)): Update for new front-end
	interface.
	* modules.cc (get_internal_fn): Likewise.
	* toir.cc (IRVisitor::visit (ReturnStatement *)): Likewise.

2022-03-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/105004
	* d-codegen.cc (build_struct_literal): Use complex_expr to build
	complex expressions from __c_complex types.

2022-03-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/104911
	* dmd/MERGE: Merge upstream dmd 2503f17e5.
	* d-convert.cc (convert_expr): Replace d_uns64 with dinteger_t.
	* d-lang.cc: Remove dmd/root/file.h include.
	(d_handle_option): Update for new front-end interface.
	(d_parse_file): Likewise.

2022-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 02a3fafc6.
	* dmd/VERSION: Update version to v2.099.0.
	* imports.cc (ImportVisitor::visit (EnumDeclaration *)): Don't cache
	decl in front-end AST node.
	(ImportVisitor::visit (AggregateDeclaration *)): Likewise.
	(ImportVisitor::visit (ClassDeclaration *)): Likewise.

2022-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* imports.cc (imported_decls): Define.
	(class ImportVisitor): Add result_ field.
	(ImportVisitor::result): New method.
	(ImportVisitor::visit (Module *)): Store decl to result_.
	(ImportVisitor::visit (Import *)): Likewise.
	(ImportVisitor::visit (AliasDeclaration *)): Don't cache decl in
	front-end AST node.
	(ImportVisitor::visit (OverDeclaration *)): Likewise.
	(ImportVisitor::visit (FuncDeclaration *)): Likewise.
	(ImportVisitor::visit (Declaration *)): Likewise.
	(build_import_decl): Use imported_decls to cache and lookup built
	declarations.

2022-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR translation/104552
	* lang.opt (fdump-cxx-spec=): Fix typo in argument handle.
	(fpreview=fixaliasthis): Quote `alias this' as code.

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

	* dmd/MERGE: Merge upstream dmd 423f19b41.

2022-02-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-target.cc (Target::_init): Initialize C type size fields.
	* dmd/MERGE: Merge upstream dmd cf63dd8e5.
	* dmd/VERSION: Update version to v2.099.0-rc.1.

2022-02-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::visit (DeleteExp *)): Remove handling of
	deleting GC allocated classes.
	* runtime.def (DELCLASS): Remove.
	(DELINTERFACE): Remove.

2022-02-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd cb49e99f8.
	* dmd/VERSION: Update version to v2.099.0-beta.1.
	* decl.cc (layout_class_initializer): Update call to NewExp::create.
	* expr.cc (ExprVisitor::visit (DeleteExp *)): Remove handling of
	deleting arrays and pointers.
	(ExprVisitor::visit (DotVarExp *)): Convert complex types to the
	front-end library type representing them.
	(ExprVisitor::visit (StringExp *)): Use getCodeUnit instead of charAt
	to get the value of each index in a string expression.
	* runtime.def (DELMEMORY): Remove.
	(DELARRAYT): Remove.
	* types.cc (TypeVisitor::visit (TypeEnum *)): Handle anonymous enums.

2022-02-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (d_build_builtins_module): Set purity of DECL_PURE_P
	functions to PURE::const_.
	* d-gimplify.cc (bit_field_ref): New function.
	(d_gimplify_modify_expr): Handle implicit casting for assignments to
	bit-fields.
	(d_gimplify_unary_expr): New function.
	(d_gimplify_binary_expr): New function.
	(d_gimplify_expr): Handle UNARY_CLASS_P and BINARY_CLASS_P.
	* d-target.cc (Target::_init): Initialize bitFieldStyle.
	(TargetCPP::parameterType): Update signature.
	(Target::supportsLinkerDirective): New function.
	* dmd/MERGE: Merge upstream dmd 52844d4b1.
	* expr.cc (ExprVisitor::visit (ThrowExp *)): New function.
	* types.cc (d_build_bitfield_integer_type): New function.
	(insert_aggregate_bitfield): New function.
	(layout_aggregate_members): Handle inserting bit-fields into an
	aggregate type.

2022-01-31  Martin Liska  <mliska@suse.cz>

	PR d/104287
	* decl.cc (d_finish_decl): Remove trailing dot.

2022-01-28  Martin Liska  <mliska@suse.cz>

	* decl.cc (d_finish_decl): Do not use leading capital letter.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* d-gimplify.cc: Rename .c names to .cc.
	* d-incpath.cc: Likewise.
	* lang-specs.h: Likewise.

2022-01-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/103840
	* dmd/MERGE: Merge upstream dmd 001bfd97b.
	* Make-lang.in (D_FRONTEND_OBJS): Rename d/complex.o to
	d/root-complex.o, and d/utf.o to d/root/utf.o.

2022-01-03  Jakub Jelinek  <jakub@redhat.com>

	* gdc.texi: Bump @copyrights-d year.

Copyright (C) 2022 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.
