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

	Backported from master:
	2021-12-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	* decl.cc (get_symbol_decl): Align methods to MINIMUM_METHOD_BOUNDARY.

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

	Backported from master:
	2021-11-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	* decl.cc (d_finish_decl): Use HOST_WIDE_INT for type size
	temporaries.

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

	Backported from master:
	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-07-29  Iain Buclaw  <ibuclaw@gdcproject.org>

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

	Backported from master:
	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>

	Backported from master:
	2021-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101490
	* d-codegen.cc (build_array_index): Handle void arrays same as byte.
	* d-convert.cc (convert_expr): Handle converting to zero-sized arrays.
	* dmd/dcast.c (castTo): Handle casting to zero-sized arrays.

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

	Backported from master:
	2021-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/101441
	* dmd/expression.c (FuncInitExp::resolveLoc): Set type as `string'.
	(PrettyFuncInitExp::resolveLoc): Likewise.

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

	Backported from master:
	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-06-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	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-10  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2019-06-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/90651
	* dmd/expressionsem.c (ExpressionSemanticVisitor::visit (TypeidExp)):
	Error when TypeInfo doesn't exist.
	* dmd/func.c (FuncDeclaration::semantic3): Likewise.
	* dmd/mtype.c (TypeClass::dotExp): Likewise.
	* typeinfo.cc (object_module): New variable.
	(make_frontend_typeinfo): Update signature.  Set temporary on
	generated TypeInfo classes.
	(create_tinfo_types): Set object_module.  Move generation of front-end
	typeinfo into ...
	(create_frontend_tinfo_types): ... New function.
	(layout_typeinfo): Call create_frontend_tinfo_types.
	(layout_classinfo): Likewise.
	(layout_cpp_typeinfo): Likewise.
	(create_typeinfo): Likewise.

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

	Backported from master:
	2021-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/100964
	* dmd/expression.c (Expression::checkPostblit): Don't generate
	TypeInfo when RTTI is disabled.

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

	Backported from master:
	2021-06-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/100935
	* dmd/mtype.c (Type::getProperty): Prefer explicit alignment over
	natural alignment for alignof property.

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

	Backported from master:
	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-06-01  Release Manager

	* GCC 9.4.0 released.

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

	Backported from master:
	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-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2021-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/99337
	* dmd/dmodule.c (checkModFileAlias): Don't read past buffer in
	  comparison.

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

	Backported from master:
	2021-02-02  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/98921
	* dmd/dmangle.c (Mangler::visit (TypeSArray *)): Use buf->print
	  to format integer value.
	(Mangler::visit (TypeIdentifier *)): Likewise.
	(Mangler::toBuffer): Likewise.
	(Mangler::visit (IntegerExp *)): Likewise.
	(Mangler::visit (StringExp *)): Likewise.
	(Mangler::visit (ArrayLiteralExp *)): Likewise.
	(Mangler::visit (AssocArrayLiteralExp *)): Likewise.
	(Mangler::visit (StructLiteralExp *)): Likewise.
	* dmd/root/outbuffer.c (OutBuffer::print): New function.
	* dmd/root/outbuffer.h (OutBuffer::print): Declare.

2020-12-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2020-12-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/98277
	* decl.cc (DeclVisitor::visit (VarDeclaration *)): Move setting of
	DECL_INITIAL for manifest constants to ...
	(get_symbol_decl): ... here.

2020-10-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2020-10-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/declaration.c (AliasDeclaration::aliasSemantic): Apply storage
	class and protection attributes.

2020-08-01  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2020-07-30  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/96140
	* intrinsics.cc (expand_intrinsic_vaarg): Handle ref parameters as
	arguments to va_arg().
	(expand_intrinsic_vastart): Handle ref parameters as arguments to
	va_start().

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

	Backported from master:
	2020-06-25  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/95250
	* dmd/expressionsem.c (class ExpressionSemanticVisitor): Return early
	if error occurred during semantic of DivExp.

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

	Backported from master:
	2020-06-25  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/95173
	* d-attribs.cc (uda_attribute_p): Don't search target attribute table
	if NULL.

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

	Backport from mainline
	2020-03-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/92216
	* decl.cc (make_thunk): Don't set TREE_PUBLIC on thunks if the target
	function is external to the current compilation.

2020-05-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backport from mainline
	2020-05-06  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/94970
	* d-codegen.cc (force_target_expr): Move create_temporary_var
	implementation inline here.
	(create_temporary_var): Remove.
	(maybe_temporary_var): Remove.
	(bind_expr): Remove.
	* d-convert.cc (d_array_convert): Use build_local_temp to generate
	temporaries, and generate its assignment.
	* d-tree.h (create_temporary_var): Remove.
	(maybe_temporary_var): Remove.
	(d_array_convert): Remove vars argument.
	* expr.cc (ExprVisitor::visit (CatExp *)): Use build_local_temp to
	generate temporaries, don't wrap them in a BIND_EXPR.
	(ExprVisitor::visit (NewExp *)): Likewise.

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

	PR d/95155
	* dmd/dclass.c (ClassDeclaration::semantic): Don't prematurely
	set done on semantic analysis.

2020-04-07  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/94240
	* typeinfo.cc (class TypeInfoVisitor): Replace type_ field with decl_.
	(TypeInfoVisitor::TypeInfoVisitor): Set decl_.
	(TypeInfoVisitor::result): Update.
	(TypeInfoVisitor::internal_reference): New function.
	(TypeInfoVisitor::layout_string): Use internal_reference.
	(TypeInfoVisitor::visit (TypeInfoTupleDeclaration *)): Likewise.
	(layout_typeinfo): Construct TypeInfoVisitor with typeinfo decl.
	(layout_classinfo): Likewise.

2020-03-12  Release Manager

	* GCC 9.3.0 released.

2019-08-12  Release Manager

	* GCC 9.2.0 released.

2019-06-11  Richard Biener  <rguenthe@suse.de>

	d/90778
	* toir.cc (pop_label): Only queue labels in a vector.
	(cmp_labels): Label decl comparator.
	(pop_binding_level): Pop labels in DECL_UID order to avoid
	debug info differences.

2019-05-03  Release Manager

	* GCC 9.1.0 released.

2019-04-25  Johannes Pfau  <johannespfau@gmail.com>

	* config-lang.in: Do not add target_libs if phobos is disabled.

2019-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>
	    Robin Dapp  <rdapp@linux.ibm.com>

	* typeinfo.cc (create_typeinfo): Write typeinfo flags as uint.

2019-04-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (d_init_versions): Add D_BetterC, D_ModuleInfo,
	D_Exceptions, D_TypeInfo as predefined version conditions.
	* d-codegen.cc (build_bounds_condition): Generate trap if D asserts
	are turned off.
	* d-frontend.cc (getTypeInfoType): Add error when -fno-rtti is set.
	* d-lang.cc (d_init_options): Initialize new front-end options.
	(d_handle_option): Handle -fdruntime, -fexceptions, and -frtti.
	(d_post_options): Turn off D runtime features if -fno-druntime is set.
	* d-spec.cc (lang_specific_driver): Handle -fdruntime.
	* d-tree.h (have_typeinfo_p): Add prototype.
	(build_typeinfo): Update prototype.
	* decl.cc (DeclVisitor::visit(StructDeclaration)): Create typeinfo
	only if TypeInfo exists.
	(DeclVisitor::visit(ClassDeclaration)): Likewise.
	(DeclVisitor::visit(InterfaceDeclaration)): Likewise.
	(DeclVisitor::visit(EnumDeclaration)): Likewise.
	* expr.cc: Update all calls to build_typeinfo.
	* gdc.texi (Runtime Options): Document -fdruntime and -frtti.
	* lang.opt: Add -fdruntime and -frtti.
	* modules.cc (build_module_tree): Create module info only if
	ModuleInfo exists.
	* toir.cc (IRVisitor::visit(ThrowStatement)): Update test for
	-fno-exceptions.
	* typeinfo.cc (create_tinfo_types): Build internal typeinfo classes
	only if Object exists.
	(have_typeinfo_p): New function.
	(class TypeInfoVisitor): Update all calls to build_typeinfo.
	(build_typeinfo): Add error when -fno-rtti is set.

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

	* decl.cc (DeclVisitor::visit(Import)): Set semanticRun after
	completion, guard against being called more than once.
	(DeclVisitor::visit(StructDeclaration)): Likewise.
	(DeclVisitor::visit(ClassDeclaration)): Likewise.
	(DeclVisitor::visit(InterfaceDeclaration)): Likewise.
	(DeclVisitor::visit(VarDeclaration)): Likewise.
	(DeclVisitor::visit(TypeInfoDeclaration)): Likewise.

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

	* modules.cc (register_module_decl): Don't register unittests against
	the ModuleInfo symbol for -fbuilding-libphobos-tests.

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

	* d-system.h (POSIX): Define unix as POSIX.
	(INT32_MAX, INT32_MIN, INT64_MIN, UINT32_MAX, UINT64_MAX): Provide
	fallback definitions.

2019-04-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* Make-lang.in (d.mostyclean): Clean idgen and impcvgen.
	(d/idgen): Rename to d/idgen$(build_exeext), add BUILD_LIBDEPS.
	(d/impcvgen): Rename to d/impcvgen$(build_exeext), add BUILD_LIBDEPS.
	(d/id.c): Call idgen$(build_exeext).
	(d/impcnvtab.c): Call impcvgen$(build_exeext).

2019-04-14  Johannes Pfau  <johannespfau@gmail.com>
	PR d/87799
	* d-system.h (_mkdir): Forward _mkdir on MinGW to mkdir in system.h.

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (DECL_IN_UNITTEST_CONDITION_P): Define.
	* decl.cc (DeclVisitor): Add in_version_unittest_ field.
	(DeclVisitor::visit(ConditionalDeclaration)): New override.
	(DeclVisitor::visit(FuncDeclaration)): Set
	DECL_IN_UNITTEST_CONDITION_P.
	* lang.opt (-fbuilding-libphobos-tests): Add option.
	* modules.cc (current_testing_module): New static variable.
	(build_module_tree): Generate second moduleinfo symbol to hold
	reference to unittests if flag_building_libphobos_tests.
	(register_module_decl): Check DECL_IN_UNITTEST_CONDITION_P to decide
	which moduleinfo the decl should be registered against.

2019-03-31  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/88462
	* modules.cc (layout_moduleinfo_fields): Properly align ModuleInfo,
	instead of forcing alignment to be 1.

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

	PR d/89017
	* d-codegen.cc (d_decl_context): Skip over template instances when
	finding the context.
	* decl.cc (DeclVisitor::visit(TemplateDeclaration)): New override.
	(build_type_decl): Include parameters in name of template types.

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

	PR d/88957
	* expr.cc (ExprVisitor::visit(VectorArrayExp)): New override.

2019-03-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/87866
	* d-system.h (realpath): Redefine as lrealpath.

2019-03-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_init_options): Set global.params.cplusplus to C++14.
	* d-target.cc (Target::cppFundamentalType): New method.

2019-03-09  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/89041
	* d-codegen.cc (get_frame_for_symbol): Delegate literals defined in
	global scope don't have a frame pointer.

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

	* d-builtins.cc (d_init_versions): Add CppRuntime_Gcc as predefined
	version condition.

2019-02-14  Maya Rashish  <coypu@sdf.org>

	* d-system.h: NetBSD is POSIX.

2019-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR d/87864
	* lang.opt (dstartfiles): New option.
	* d-spec.cc (need_spec): New variable.
	(lang_specific_driver) <OPT_dstartfiles>: Enable need_spec.
	(lang_specific_pre_link): Also load libgphobos.spec if need_spec.

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

	PR d/89042
	* decl.cc (DeclVisitor::visit(VarDeclaration)): Don't assert if
	handling a void initialized manifest constant.

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

	* d-frontend.cc (Compiler::paintAsType): Update for new signature.

2019-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-builtins.cc (d_init_versions): Check value of
	STACK_GROWS_DOWNWARD.

2019-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (identity_compare_p): Return false if seen built-in
	type with padding.
	(build_float_identity): Moved here from expr.cc.
	(lower_struct_comparison): Handle real and complex types.
	* d-tree.h (build_float_identity): New.
	* expr.cc (build_float_identity): Move to d-codegen.cc.

2019-01-20  Johannes Pfau  <johannespfau@gmail.com>

	* expr.cc (build_float_identity): New function.
	(ExprVisitor::visit(IdentityExp)): Add support for complex types.

2019-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/87824
	* d-lang.cc (d_post_options): Disable implicit
	-forder-blocks-and-partition.

2019-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-codegen.cc (build_typeof_null_value): New function.
	* d-tree.h (build_typeof_null_value): Declare.
	* d-convert.cc (convert_expr): Use build_typeof_null_value.
	* expr.cc (ExprVisitor::visit(NullExp)): Likewise.

2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>

	PR inline-asm/52813
	* lang.opt (Wdeprecated): Reference common.opt instead of c.opt.

2019-01-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* README.gcc: New file.

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

	Update copyright years.

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