2021-10-22  Eric Gallager  <egallager@gcc.gnu.org>

	PR other/102663
	* Make-lang.in: Allow dvi-formatted documentation
	to be installed.

2021-10-08  Martin Liska  <mliska@suse.cz>

	* d-lang.cc (d_post_options): Use new macro
	OPTION_SET_P.

2021-10-05  Iain Sandoe  <iain@sandoe.co.uk>

	* d-spec.cc (lang_specific_driver): Push the -static-libstdc++
	option back onto the command line for targets without support
	for -Bstatic/dynamic.

2021-10-04  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/102574
	* d-spec.cc (lang_specific_driver): Link libstdc++ statically if
	-static-libstdc++ was given on command-line.

2021-10-04  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-attribs.cc (d_handle_optimize_attribute): Save target node before
	calling parse_optimize_options in case it changes.

2021-09-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/102185
	* d-builtins.cc (d_eval_constant_expression): Don't include
	terminating null pointer in string expression conversion.

2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc: Include dmd/module.h.
	(build_filename_from_loc): New function.
	(d_assert_call): Rename to...
	(build_assert_call): ...this.
	(build_array_bounds_call): Call arrayboundsp variant of the array
	bounds failure callback.
	(build_bounds_condition): Rename to...
	(build_bounds_index_condition): ...this.  Update signature.
	(build_bounds_slice_condition): New function.
	(checkaction_trap_p): New function.
	(d_assert_call): Call assertp variant of assert failure callback.
	* d-tree.h (class IndexExp): Declare.
	(class SliceExp): Declare.
	(build_bounds_condition): Remove.
	(build_assert_call): Declare.
	(build_bounds_index_condition): Declare.
	(build_bounds_slice_condition): Declare.
	(checkaction_trap_p): Declare.
	(d_assert_call): Remove.
	* expr.cc (ExprVisitor::visit(IndexExp *)): Call
	build_bounds_index_condition.
	(ExprVisitor::visit(SliceExp *)): Call build_bounds_slice_condition.
	(ExprVisitor::visit(AssertExp *)): Update setting of libcall.
	* runtime.cc (enum d_libcall_type): Add LCT_IMMUTABLE_CHARPTR.
	(get_libcall_type): Handle LCT_IMMUTABLE_CHARPTR.
	* runtime.def (ASSERT): Rename to...
	(ASSERTP): ...this.  Update signature.
	(UNITTEST): Rename to...
	(UNITTESTP): ...this.  Update signature.
	(ARRAY_BOUNDS): Rename to...
	(ARRAYBOUNDSP): ...this.  Updates signature.
	* toir.cc (IRVisitor::visit(SwitchErrorStatement *)): Update call.

2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* typeinfo.cc (class TypeInfoVisitor::layout_base): Update comment.

2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* typeinfo.cc (TypeInfoVisitor::visit(TypeInfoClassDeclaration *)):
	Use int to store type flags.
	(TypeInfoVisitor::visit(TypeInfoStructDeclaration *)): Likewise.

2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* types.cc (TypeVisitor::visit(TypeEnum*)): Get wchar_t type from
	build_frontend_type.

2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-convert.cc (convert_for_rvalue): Convert switch statement into if
	condition.

2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (d_init_versions): Use POINTER_SIZE for testing
	whether to predefine D_LP64.

2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/102094
	* d-codegen.cc (build_frame_type): Set TYPE_CXX_ODR_P.

2021-08-25  Lewis Hyatt  <lhyatt@gmail.com>

	PR other/93067
	* d-lang.cc (d_input_charset_callback): New function.
	(d_init): Call new function
	diagnostic_initialize_input_context().

2021-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (binary_op): Remove dead code.

2021-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* typeinfo.cc (TypeInfoVisitor::visit (TypeInfoClassDeclaration *)):
	Always layout initializer for the m_RTInfo field.

2021-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::visit (AssertExp *)): Don't generate
	PREDICT_EXPR.

2021-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* expr.cc (ExprVisitor::visit (AssignExp *)): Clarify comment
	  for generating static array assignment with literal.

2021-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* decl.cc (enum_initializer_decl): Only handle named enums.

2021-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* decl.cc (make_thunk): Set COMDAT and visibility of thunks only if
	they are public.

2021-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* decl.cc (DeclVisitor::visit (StructDeclaration *)): Don't use sinit
	for declaration directly.
	(DeclVisitor::visit (ClassDeclaration *)): Likewise.
	(aggregate_initializer_decl): Likewise.  Set sinit after creating.

2021-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (build_frontend_type): Use Identifier::idPool to
	generate anonymous field name.

2021-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* types.cc (layout_aggregate_type): Call hasMonitor.
	* typeinfo.cc (TypeInfoVisitor::layout_base): Likewise.
	(layout_cpp_typeinfo): Likewise.  Don't emit vtable unless
	have_typeinfo_p.

2021-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (deps_add_target): Insert null terminator in buffer.
	(deps_write): Likewise.
	(d_parse_file): Likewise.

2021-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (build_frontend_type): Restore builtin_converted_decls
	length on conversion failure.

2021-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (d_nested_class): Rename to ...
	(get_outer_function): ... this.  Handle all aggregate declarations.
	(d_nested_struct): Remove.
	(find_this_tree): Use get_outer_function.
	(get_framedecl): Likewise.

2021-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101672
	* typeinfo.cc (make_frontend_typeinfo): Generate Object class if it
	doesn't exist.
	(check_typeinfo_type): Don't warn if there's no location.

2021-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101664
	* expr.cc (ExprVisitor::visit (CallExp *)): Use object expression as
	result for C++ constructor calls.

2021-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/96435
	* d-convert.cc (convert_for_rvalue): New function.
	* d-tree.h (convert_for_rvalue): Declare.
	* expr.cc (ExprVisitor::visit (CastExp *)): Use convert_for_rvalue.
	(build_return_dtor): Likewise.

2021-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101657
	* d-lang.cc (d_parse_file): Remove generated D header files on error.

2021-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101656
	* d-diagnostic.cc (escape_d_format): Don't escape quoted format
	strings.

2021-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101640
	* expr.cc (binary_op): Use build2 instead of fold_build2.

2021-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101490
	* dmd/MERGE: Merge upstream dmd 27e388b4c.
	* d-codegen.cc (build_array_index): Handle void arrays same as byte.
	* d-convert.cc (convert_expr): Handle converting to zero-sized arrays.

2021-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101441
	* dmd/MERGE: Merge upstream dmd f8c1ca928.

2021-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101127
	* d-builtins.cc (d_builtin_function_ext_scope): New function.
	* d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Define.
	* d-tree.h (d_builtin_function_ext_scope): Declare.

2021-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101619
	* dmd/MERGE: Merge upstream dmd 1d8386a63.

2021-07-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101273
	* toir.cc (IRVisitor::visit (ReturnStatement *)): Detect returns that
	use a temporary, and replace with return value.

2021-07-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101282
	* d-codegen.cc (build_assign): Force target_expr on RHS for non-POD
	assignment expressions.

2021-06-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/100999
	* dmd/MERGE: Merge upstream dmd 7a3808254.

2021-06-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/100967
	* d-frontend.cc (getTypeInfoType): Move TypeInfo checks to
	check_typeinfo_type and call new function.
	* d-tree.h (check_typeinfo_type): Declare.
	* typeinfo.cc: Include dmd/scope.h.
	(create_frontend_tinfo_types): Generate front-end types even if Object
	is missing.
	(build_typeinfo): Move TypeInfo checks to check_typeinfo_type and call
	new function.
	(check_typeinfo_type): New function.

2021-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/100964
	* dmd/MERGE: Merge upstream dmd 4a4e46a6f.

2021-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/100935
	* dmd/MERGE: Merge upstream dmd f3fdeb578.

2021-06-04  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/100882
	* d-codegen.cc (build_assign): Construct initializations inside
	TARGET_EXPR_INITIAL.
	(compound_expr): Remove intermediate expressions that have no
	side-effects.
	(return_expr): Construct returns inside TARGET_EXPR_INITIAL.
	* expr.cc (ExprVisitor::visit (CallExp *)): Remove useless assignment
	to TARGET_EXPR_SLOT.

2021-05-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-incpath.cc (prefixed_path): Use filename_ncmp instead of strncmp.

2021-05-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	* types.cc (TypeVisitor::visit (TypeEnum *)): Use startswith function
	instead of strncmp.

2021-05-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/dinterpret.c (evaluateIfBuiltin): Revert last change.
	* dmd/dmangle.c: Likewise.
	* dmd/hdrgen.c: Likewise.
	* dmd/identifier.c (Identifier::toHChars2): Likewise.

2021-05-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd b7d146c4c.

2021-05-10  Martin Liska  <mliska@suse.cz>

	* d-builtins.cc (do_build_builtin_fn): Use startswith
	function instead of strncmp.
	* dmd/dinterpret.c (evaluateIfBuiltin): Likewise.
	* dmd/dmangle.c: Likewise.
	* dmd/hdrgen.c: Likewise.
	* dmd/identifier.c (Identifier::toHChars2): Likewise.

2021-04-19  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/98457
	* d-diagnostic.cc (expand_d_format): Handle escaped backticks.
	(escape_d_format): New funtion.
	(verror): Call escape_d_format on prefixing strings.
	(vdeprecation): Likewise.

2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/99914
	* d-target.def (d_templates_always_comdat): New hook.
	* d-tree.h (mark_needed): Remove prototype.
	* decl.cc: Include d-target.h.
	(mark_needed): Rename to...
	(d_mark_needed): ...this.  Make static.
	(set_linkage_for_decl): Put variables in comdat if
	d_templates_always_comdat.

2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-target.cc (d_handle_target_object_format): New function.
	(d_language_target_info): Add d_handle_target_object_format as handler
	for objectFormat key.
	(Target::getTargetInfo): Continue if handler returned NULL_TREE.

2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-target.cc (Target::_init): Call new targetdm hook to register OS
	specific target info keys.
	* d-target.def (d_register_os_target_info): New hook.

2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (d_add_builtin_version): Remove all setting of
	target-specific global.params.
	* typeinfo.cc (create_typeinfo): Don't add argType fields to
	TypeInfo_Struct.

2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/99914
	* decl.cc (DeclVisitor::visit (StructDeclaration *)): Don't set
	DECL_INSTANTIATED on static initializer declarations.
	(DeclVisitor::visit (ClassDeclaration *)): Likewise.
	(DeclVisitor::visit (EnumDeclaration *)): Likewise.
	(d_finish_decl): Move call to set_linkage_for_decl to...
	(declare_extern_var): ...here.

2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-target.cc (Target::_init): Call new targetdm hook to register CPU
	specific target info keys.
	* d-target.def (d_register_cpu_target_info): New hook.

2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-target.cc (Target::systemLinkage): Return LINKwindows if
	d_has_stdcall_convention applies to LINKsystem.
	* d-target.def (d_has_stdcall_convention): New hook.
	* types.cc (TypeVisitor::visit (TypeFunction *)): Insert "stdcall"
	function attribute if d_has_stdcall_convention applies to LINKwindows.

2021-04-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 0450061c8.

2021-04-08  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-attribs.cc: Include fold-const.h and opts.h.
	(attr_noreturn_exclusions): Add alloc_size.
	(attr_const_pure_exclusions): Likewise.
	(attr_inline_exclusions): Add target_clones.
	(attr_noinline_exclusions): Rename forceinline to always_inline.
	(attr_target_exclusions): New array.
	(attr_target_clones_exclusions): New array.
	(attr_alloc_exclusions): New array.
	(attr_cold_hot_exclusions): New array.
	(d_langhook_common_attribute_table): Add new D attribute handlers.
	(build_attributes): Update to look for gcc.attributes.  Issue warning
	if not given a struct literal.  Handle void initialized arguments.
	(handle_always_inline_attribute): Remove function.
	(d_handle_noinline_attribute): Don't extract TYPE_LANG_FRONTEND.
	(d_handle_forceinline_attribute): Rename to...
	(d_handle_always_inline_attribute): ...this.  Remove special handling.
	(d_handle_flatten_attribute): Don't extract TYPE_LANG_FRONTEND.
	(d_handle_target_attribute): Likewise.  Warn about empty arguments.
	(d_handle_target_clones_attribute): New function.
	(optimize_args): New static variable.
	(parse_optimize_options): New function.
	(d_handle_optimize_attribute): New function.
	(d_handle_noclone_attribute): Don't extract TYPE_LANG_FRONTEND.
	(d_handle_alias_attribute): Remove function.
	(d_handle_noicf_attribute): New function.
	(d_handle_noipa_attribute): New function.
	(d_handle_section_attribute): Call the handle_generic_attribute target
	hook after performing target independent processing.
	(d_handle_symver_attribute): New function.
	(d_handle_noplt_attribute): New function.
	(positional_argument): New function.
	(d_handle_alloc_size_attribute): New function.
	(d_handle_cold_attribute): New function.
	(d_handle_restrict_attribute): New function.
	(d_handle_used_attribute): New function.
	* decl.cc (gcc_attribute_p): Update to look for gcc.attributes.
	(get_symbol_decl): Update decl source location of old prototypes to
	the new declaration being merged.
	* types.cc (layout_aggregate_members): Apply user defined attributes
	on fields.

2021-04-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/99917
	* dmd/MERGE: Merge upstream dmd d16195406.

2021-04-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_frame_type): Use Array::find to get index of
	element.

2021-04-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-diagnostic.cc (vwarning): Increment gaggedWarnings if warning
	message	was suppressed.
	(vdeprecation): Likewise for deprecation messages.

2021-04-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 5cc71ff83.

2021-04-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/99914
	* d-lang.cc (d_init): Disable flag_weak_templates if no support for
	weak or one-only symbols.
	* d-tree.h (VAR_OR_FUNCTION_DECL_CHECK): New macro.
	(DECL_INSTANTIATED): New macro.
	(d_comdat_linkage): Remove declaration.
	(d_linkonce_linkage): Remove declaration.
	(set_linkage_for_decl): New declaration.
	* decl.cc (DeclVisitor::visit (StructDeclaration *)): Replace call to
	d_linkonce_linkage with setting DECL_INSTANTIATED.
	(DeclVisitor::visit (ClassDeclaration *)): Likewise.
	(DeclVisitor::visit (EnumDeclaration *)): Likewise.
	(DeclVisitor::visit (InterfaceDeclaration *)): Remove call to
	d_linkonce_linkage.
	(get_symbol_decl): Call set_linkage_for_decl instead of
	d_linkonce_linkage.
	(d_finish_decl): Call set_linkage_for_decl.
	(d_comdat_linkage): Made function static.  Only set DECL_COMDAT for
	DECL_INSTANTIATED decls.
	(d_linkonce_linkage): Remove function.
	(d_weak_linkage): New function.
	(set_linkage_for_decl): New function.
	* gdc.texi (Runtime Options): Rename -fno-weak to -fno-weak-templates,
	update documentation of option.
	* lang.opt (fweak): Rename option to ...
	(fweak-templates): ... this.  Update help string.
	* modules.cc (get_internal_fn): Add Prot parameter.  Set generated
	function flag.
	(build_internal_fn): Update call to get_internal_fn.
	(build_dso_cdtor_fn): Likewise.
	(register_moduleinfo): Call d_finish_decl on dso_slot_node and
	dso_initialized_node.
	* typeinfo.cc (TypeInfoVisitor::internal_reference): Call
	set_linkage_for_decl instead of d_comdat_linkage.
	(TypeInfoDeclVisitor::visit (TypeInfoDeclaration *)): Remove calls to
	d_linkonce_linkage and d_comdat_linkage.
	(get_cpp_typeinfo_decl): Likewise.

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

	* dmd/MERGE: Merge upstream dmd 3b808e838.
	* Make-lang.in (D_FRONTEND_OBJS): Add d/chkformat.o.
	* d-codegen.cc (build_struct_literal): Handle special enums.
	* d-convert.cc (convert_expr): Handle noreturn type.
	(convert_for_condition): Likewise.
	* d-target.cc (Target::_init): Set type for wchar_t.
	(TargetCPP::derivedClassOffset): New method.
	(Target::libraryObjectMonitors): New method.
	* decl.cc (get_symbol_decl): Set TREE_THIS_VOLATILE for functions of
	type noreturn.
	* toir.cc (IRVisitor::visit (ReturnStatement *)): Handle returning
	noreturn types.
	* types.cc (TypeVisitor::visit (TypeNoreturn *)): New method.
	(TypeVisitor::visit (TypeEnum *)): Handle special enums.

2021-03-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (d_init_versions): Predefine D_PIE if flag_pie is set.

2021-03-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_enum_underlying_base_type): New function.
	(LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Set as
	d_enum_underlying_base_type.

2021-03-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in (DMDGEN_COMPILE): Remove.
	(d/%.dmdgen.o): Use COMPILER_FOR_BUILD and BUILD_COMPILERFLAGS to
	build all D generator programs.
	(D_SYSTEM_H): New macro.
	(d/idgen.dmdgen.o): Add dependencies to build.
	(d/impcnvgen.dmdgen.o): Likewise.
	* d-system.h: Include bconfig.h if GENERATOR_FILE is defined.

2021-03-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* config-lang.in (gtfiles): Remove modules.cc.
	* modules.cc (struct module_info): Remove GTY marker.
	(static_ctor_list): Remove variable.
	(static_dtor_list): Remove variable.
	(register_moduleinfo): Directly set DECL_STATIC_CONSTRUCTOR on
	dso_ctor, and DECL_STATIC_DESTRUCTOR on dso_dtor.
	(d_finish_compilation): Remove static ctor/dtor handling.

2021-03-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_init_options_struct): Don't set default
	flag_complex_method.

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

	PR d/99337
	* dmd/MERGE: Merge upstream dmd a3c9bf422.

2021-02-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 7132b3537.
	* Make-lang.in (D_FRONTEND_OBJS): Add d/dsymbolsem.o, d/semantic2.o,
	d/semantic3.o, and d/templateparamsem.o.
	* d-compiler.cc (Compiler::genCmain): Update calls to semantic
	entrypoint functions.
	* d-lang.cc (d_parse_file): Likewise.
	* typeinfo.cc (make_frontend_typeinfo): Likewise.

2021-02-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (DEF_D_INTRINSIC): Don't insert INTRINSIC_ into the
	intrinsic code name.
	* intrinsics.cc (DEF_D_INTRINSIC): Don't insert INTRISIC_ and
	BUILT_IN_ into the intrinsic and built-in code names.
	* intrinsics.def:  Explicitly use full intrinsic and built-in
	codes in all definitions.

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

	* dmd/MERGE: Merge upstream dmd 46133f761.
	* d-builtins.cc (d_build_builtins_module): Set builtins as BUILTINgcc.
	(maybe_set_builtin_1): Likewise.
	* d-frontend.cc (eval_builtin): Adjust condition for early return.
	* intrinsics.cc (maybe_set_intrinsic): Set intrinsics as BUILTINgcc.
	(maybe_expand_intrinsic): Add case for INTRINSIC_BSWAP16.
	* intrinsics.def (INTRINSIC_BT): Update signature.
	(INTRINSIC_BT64): Likewise.
	(INTRINSIC_BSWAP16): New intrinsic.
	(INTRINSIC_VLOAD8): Update module.
	(INTRINSIC_VLOAD16): Likewise.
	(INTRINSIC_VLOAD32): Likewise.
	(INTRINSIC_VLOAD64): Likewise.
	(INTRINSIC_VSTORE8): Likewise.
	(INTRINSIC_VSTORE16): Likewise.
	(INTRINSIC_VSTORE32): Likewise.
	(INTRINSIC_VSTORE64): Likewise.
	(INTRINSIC_ADDS): Update signature.
	(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.

2021-02-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/98921
	* dmd/MERGE: Merge upstream dmd 5e2a81d9c.

2021-01-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	* typeinfo.cc (TypeInfoVisitor::visit (TypeInfoDeclaration *)): Don't
	layout m_arg1 and m_arg2 fields.

2021-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 609c3ce2d.
	* d-compiler.cc (Compiler::loadModule): Rename to ...
	(Compiler::onParseModule): ... this.
	(Compiler::onImport): New function.
	* d-lang.cc (d_parse_file): Remove call to Compiler::loadModule.

2021-01-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 3a7ebef73.

2021-01-11  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 2d3d13748.
	* d-lang.cc (d_handle_option): Remove OPT_ftransition_checkimports and
	OPT_ftransition_import.
	* gdc.texi (Warnings): Remove documentation for -ftransition=import
	and -ftransition=checkimports.
	* lang.opt (ftransition=checkimports): Remove.
	(ftransition=import): Remove.

2021-01-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd cb1106ad5.

2021-01-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 9bba772fa.

2021-01-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd e598f69c0.

2021-01-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd 9038e64c5.
	* d-builtins.cc (build_frontend_type): Update call to
	Parameter::create.

2021-01-05  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/MERGE: Merge upstream dmd a5c86f5b9.
	* d-builtins.cc (d_eval_constant_expression): Handle ADDR_EXPR trees
	created by build_string_literal.
	* d-frontend.cc (retStyle): Remove function.
	* d-target.cc (d_language_target_info): New variable.
	(d_target_info_table): Likewise.
	(Target::_init): Initialize d_target_info_table.
	(Target::isReturnOnStack): New function.
	(d_add_target_info_handlers): Likewise.
	(d_handle_target_cpp_std): Likewise.
	(d_handle_target_cpp_runtime_library): Likewise.
	(Target::getTargetInfo): Likewise.
	* d-target.h (struct d_target_info_spec): New type.
	(d_add_target_info_handlers): Declare.

2021-01-01  Jakub Jelinek  <jakub@redhat.com>

	* gdc.texi: Bump @copyrights-d year.

2021-01-01  Jakub Jelinek  <jakub@redhat.com>

	* ChangeLog-2020: Rotate ChangeLog.  New file.


Copyright (C) 2021 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.
