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

	Backported from master:
	2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>

	* typeinfo.cc (make_internal_typeinfo): Set TYPE_ARTIFICIAL.

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-13  Iain Sandoe  <iain@sandoe.co.uk>

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

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

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

	PR d/101619
	* dmd/expression.c (DotTemplateExp::checkType): New function.
	(DotTemplateExp::checkValue): New function.
	* dmd/expression.h (class DotTemplateExp): Declare checkType and
	checkValue.

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

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

	PR d/100999
	* dmd/cond.c (lowerArrayAggregate): Run CTFE interpret on foreach
	input range.
	(createTupleType): Don't generate typeinfo when disabled.
	(lowerNonArrayAggregate): Suppress errors when running type semantic.
	(staticForeachPrepare): Don't run CTFE interpret from here.
	* dmd/dinterpret.c (ctfeInterpret): Add more shortcut cases.
	* dmd/expression.c (resolvePropertiesX): Remove early error.
	(Expression::checkPostblit): Don't generate typeinfo when type is
	missing from library.
	* dmd/expressionsem.c (ExpressionSemanticVisitor): Set type of
	DotTemplateExp as void.
	* dmd/statementsem.c (StatementSemanticVisitor::declareVariable):
	Don't override index type.
	(StatementSemanticVisitor::makeTupleForeachBody): Check index type is
	integral and index range fits type size.
	(StatementSemanticVisitor::visit (ForeachStatement*)): Adjust index
	range before testing.

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-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-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-04-08  Release Manager

	* GCC 10.3.0 released.

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

	Backported from master:
	2020-11-22  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/97889
	* expr.cc (ExprVisitor::visit (CatAssignExp *)): Enforce LTR order of
	evaluation on left and right hand side expressions.

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

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

	PR d/97843
	* d-codegen.cc (build_assign): Evaluate TARGET_EXPR before use in
	the right hand side of an assignment.
	* expr.cc (ExprVisitor::visit (CatAssignExp *)): Force a TARGET_EXPR
	on the element to append if it is a CALL_EXPR.

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

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

	PR d/97842
	* dmd/cond.c (StaticIfCondition::include): Return error if condition
	expression is unset.
	* dmd/mtype.c (TypeTypeof::resolve): Return error if scope is unset.

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

	Backported from master:
	2020-11-13  Iain Buclaw  <ibuclaw@gdcproject.org>

	* intrinsics.cc (expand_intrinsic_copysign): Explicitly determine
	which built-in copysign function to call.

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

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

	* dmd/dtemplate.c (TemplateInstance::semantic): Propagate the root
	module where the instantiated template should belong from the instance
	to all member scopes.

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

	Backported from master:
	2020-09-04  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/96924
	* expr.cc (ExprVisitor::visit (CatAssignExp *)): Don't force
	temporaries needlessly.

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

	Backported from master:
	2020-08-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/96157
	* d-codegen.cc (d_build_call): Handle TREE_ADDRESSABLE static arrays.
	* types.cc (make_array_type): Propagate TREE_ADDRESSABLE from base
	type to static array.

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

	Backported from master:
	2020-08-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/globals.h (Global): Add recursionLimit.
	* dmd/dmacro.c (Macro::expand): Limit recursive expansion to
	global.recursionLimit.
	* dmd/dtemplate.c (deduceType): Likewise.
	(TemplateInstance::tryExpandMembers): Likewise.
	(TemplateInstance::trySemantic3): Likewise.
	(TemplateMixin::semantic): Likewise.
	* dmd/expressionsem.c (ExpressionSemanticVisitor::visit): Likewise.
	* dmd/mtype.c (Type::noMember): Likewise.
	(TypeFunction::semantic): Likewise.
	* dmd/optimize.c (Expression_optimize): Likewise.

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

	Backported from master:
	2020-08-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-lang.cc (d_parse_file): Use read() to load contents from stdin,
	allow the front-end to free the memory after parsing.
	* dmd/func.c (FuncDeclaration::semantic): Use module filename if
	searchPath returns NULL.

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

	PR d/96250
	* dmd/expressionsem.c (ExpressionSemanticVisitor::visit(TypeExp)):
	Fix cast from Expression to VarExp.

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

	PR d/96250
	* dmd/dstruct.c (StructDeclaration::semantic): Error if redefinition
	of struct exists in compilation.
	* dmd/expressionsem.c (ExpressionSemanticVisitor::visit(TypeExp)):
	Rewrite resolved field variables as 'this.var' before semantic.
	* dmd/parse.c (Parser::parseUnaryExp): Mark '(type) una_exp' as a
	parenthesized expression.

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

	Backported from master:
	2020-08-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	* dmd/ctfeexpr.c (isCtfeValueValid): Return true for array literals as
	well as structs.
	* dmd/dinterpret.c: Don't reinterpret static arrays into dynamic.

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

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

	PR d/96254
	* d-codegen.cc (error_no_frame_access): New.
	(get_frame_for_symbol): Use fdparent name in error message.
	(get_framedecl): Replace call to assert with error.
	* d-tree.h (error_no_frame_access): Declare.
	* decl.cc (get_decl_tree): Detect recursion and error.

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

	Backported from master:
	2020-08-18  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/96301
	* decl.cc (DeclVisitor::visit (FuncDeclaration *)): Only return
	non-trivial structs by invisible reference.

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-07-23  Release Manager

	* GCC 10.2.0 released.

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

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

	* dmd/cond.c (lowerArrayAggregate): Directly use the elements of the
	array for TupleExp creation.
	(lowerNonArrayAggregate): Inline creation of foreach range indexes.

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

	* d-builtins.cc (build_frontend_type): Handle struct fields with NULL
	DECL_NAME.  Use byte_position to get the real field offset.

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-07  Release Manager

	* GCC 10.1.0 released.

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

	* gdc.texi (Options for Linking): Clarify usage of -defaultlib= and
	-debuglib= options.

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

	* d-codegen.cc (d_decl_context): Don't include module in the name of
	class and struct types that aren't extern(D).

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

	PR d/94777
	* d-builtins.cc (build_frontend_type): Set parent for generated
	fields of built-in types.
	* d-codegen.cc (argument_reference_p): Rename to ...
	(parameter_reference_p): ... this.
	(type_passed_as): Rename to ...
	(parameter_type): ... this.  Make TREE_ADDRESSABLE types restrict.
	(d_build_call): Move handling of non-POD types here from ...
	* d-convert.cc (convert_for_argument): ... here.
	* d-tree.h (argument_reference_p): Rename declaration to ...
	(parameter_reference_p): ... this.
	(type_passed_as): Rename declaration to ...
	(parameter_type): ... this.
	* types.cc (TypeVisitor::visit (TypeFunction *)): Update caller.

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

	* decl.cc (get_symbol_decl): Set DECL_DECLARED_INLINE_P or
	DECL_UNINLINABLE for declarations with pragma(inline).
	* toir.cc (IRVisitor::visit (GccAsmStatement *)): Set ASM_INLINE_P if
	in function decorated with pragma(inline).

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

	* intrinsics.cc (expand_intrinsic_toprec): New function.
	(maybe_expand_intrinsic): Handle toPrec intrinsics.
	* intrinsics.def (TOPRECF, TOPREC, TOPRECL): Add toPrec intrinsics.

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

	* d-spec.cc (need_phobos): Remove.
	(lang_specific_driver): Replace need_phobos with phobos_library.
	Reorder -debuglib and -defaultlib to have precedence over libphobos.
	(lang_specific_pre_link): Remove test for need_phobos.

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

	PR d/94609
	* d-codegen.cc (argument_reference_p): Don't check TREE_ADDRESSABLE.
	(type_passed_as): Build reference type if TREE_ADDRESSABLE.
	* d-convert.cc (convert_for_argument): Build explicit TARGET_EXPR if
	needed for arguments passed by invisible reference.
	* types.cc (TypeVisitor::visit (TypeStruct *)): Mark all structs that
	are not POD as TREE_ADDRESSABLE.

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

	* Make-lang.in (D_FRONTEND_OBJS): Remove d/argtypes.o.
	* d-target.cc (Target::toArgTypes): New function.

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

	* d-spec.cc (LIBDRUNTIME): Remove.
	(LIBDRUNTIME_PROFILE): Remove.
	(lang_specific_driver): Don't link in libgdruntime.

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

	PR d/94425
	* toir.cc (IRVisitor::visit (GccAsmStatement *)): Set ASM_VOLATILE_P
	on all asm statements.

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

	PR d/90136
	* d-attribs.cc: Include dmd/attrib.h.
	(build_attributes): Redeclare as static.
	(apply_user_attributes): New function.
	* d-tree.h (class UserAttributeDeclaration): Remove.
	(build_attributes): Remove.
	(apply_user_attributes): Declare.
	(finish_aggregate_type): Remove attrs argument.
	* decl.cc (get_symbol_decl): Merge declaration prototypes with
	definitions.  Use apply_user_attributes.
	* modules.cc (layout_moduleinfo_fields): Remove last argument to
	finish_aggregate_type.
	* typeinfo.cc (layout_classinfo_interfaces): Likewise.
	* types.cc (layout_aggregate_members): Likewise.
	(finish_aggregate_type): Remove attrs argument.
	(TypeVisitor::visit (TypeEnum *)): Use apply_user_attributes.
	(TypeVisitor::visit (TypeStruct *)): Remove last argument to
	finish_aggregate_type.  Use apply_user_attributes.
	(TypeVisitor::visit (TypeClass *)): Likewise.

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

	* d-attribs.cc (d_langhook_common_attribute_table): Add always_inline.
	(handle_always_inline_attribute): New function.

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

	PR d/94424
	* d-codegen.cc (build_alignment_field): Remove.
	(build_struct_literal): Don't insert alignment padding.
	* expr.cc (ExprVisitor::visit (AssignExp *)): Call memset before
	assigning struct literals.

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

	* typeinfo.cc (TypeInfoVisitor::internal_reference): Call
	d_comdat_linkage on generated decl.

2020-03-22  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/93038
	* d-lang.cc (deps_write): Generate phony targets for content imported
	files.

2020-03-22  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/93038
	* d-lang.cc (deps_write): Add content imported files to the make
	dependency list.

2020-03-21  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-20  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR lto/91027
	* d-tree.h (struct GTY): Add daggregate field.
	(IDENTIFIER_DAGGREGATE): Define.
	(d_mangle_decl): Add declaration.
	* decl.cc (mangle_decl): Remove static linkage, rename to...
	(d_mangle_decl): ...this, update all callers.
	* types.cc (merge_aggregate_types): New function.
	(TypeVisitor::visit (TypeStruct *)): Call merge_aggregate_types, set
	IDENTIFIER_DAGGREGATE and TYPE_CXX_ODR_P.
	(TypeVisitor::visit (TypeClass *)): Likewise.

2020-03-18  Jakub Jelinek  <jakub@redhat.com>

	* expr.cc (ExprVisitor::visit (CatAssignExp *)): Fix up duplicated
	word issue in a comment.
	* d-target.cc (Target::FPTypeProperties<T>::max): Likewise.

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

	PR d/92309
	* types.cc (fixup_anonymous_offset): Don't set DECL_FIELD_OFFSET on
	anonymous fields.

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-01-01  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

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