2021-04-08  Release Manager

	* GCC 10.3.0 released.

2020-07-23  Release Manager

	* GCC 10.2.0 released.

2020-05-07  Release Manager

	* GCC 10.1.0 released.

2020-04-15  Ian Lance Taylor  <iant@golang.org>

	PR go/94607
	* go-gcc.cc (class Gcc_backend): Define builtin_const,
	builtin_noreturn, builtin_novops.
	(Gcc_backend::define_builtin): Change const_p and noreturn_p
	parameters to a single flags parameter.  Change all callers.
	(Gcc_backend::Gcc_backend): Pass novops for prefetch.

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

	Update copyright years.

	* gccgo.texi: Bump @copyrights-go year.

2019-11-12  Martin Liska  <mliska@suse.cz>

	* go-lang.c (go_langhook_post_options):
	Use SET_OPTION_IF_UNSET.

2019-09-04  Ian Lance Taylor  <iant@golang.org>

	PR tree-optimization/91663
	* go-lang.c (go_langhook_post_options): Clear
	flag_partial_inlining.

2019-08-23  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/91283
	* go-lang.c (go_langhook_post_options): Set flag_excess_precision
	instead of flag_excess_precision_cmdline.

2019-07-02  Cherry Zhang  <cherryyz@google.com>

	* go-gcc.cc (Gcc_backend::Gcc_backend): Define __builtin_memset.

2019-06-21  Cherry Zhang  <cherryyz@google.com>

	* go-gcc.cc (Gcc_backend::Gcc_backend): Define math/bits
	builtins.

2019-05-30  Jim Wilson  <jimw@sifive.com>

	* go-gcc.cc (Gcc_backend::Gcc_backend): Add BUILT_IN_ATOMIC_FETCH_AND_1
	and BUILT_IN_ATOMIC_FETCH_OR_1.

2019-05-16  Cherry Zhang  <cherryyz@google.com>

	* go-gcc.cc (Gcc_backend::Gcc_backend): Define atomic builtins.

2019-05-08  Cherry Zhang  <cherryyz@google.com>

	* go-gcc.cc (Gcc_backend::Gcc_backend): Define memmove builtin.

2019-05-07  Cherry Zhang  <cherryyz@google.com>

	* lang.opt (-fgo-debug-optimization): New option.
	* go-c.h (struct go_create_gogo_args): Add debug_optimization
	field.
	* go-lang.c (go_langhook_init): Set debug_optimization field.
	* gccgo.texi (Invoking gccgo): Document -fgo-debug-optimization.

2019-03-06  Ian Lance Taylor  <iant@golang.org>

	PR go/89227
	* go-gcc.cc (Gcc_backend::function): Set TREE_PUBLIC for an
	only-inline function.

2019-02-15  Cherry Zhang  <cherryyz@google.com>

	* go-gcc.cc (Gcc_backend::Gcc_backend): Define __builtin_dwarf_cfa
	instead of __builtin_frame_address.

2019-02-14  Ian Lance Taylor  <iant@golang.org>

	* go-backend.c (go_imported_unsafe): Update
	optimization_default_node.

2019-02-13  Ian Lance Taylor  <iant@golang.org>

	* go-gcc.cc: #include "opts.h".
	(Gcc_backend::function): Compile thunks with -Os.

2019-02-05  Nikhil Benesch  <nikhil.benesch@gmail.com>

	PR go/89019
	* go-gcc.cc (Gcc_backend::placeholder_struct_type): Mark
	placeholder structs as requiring structural equality.
	(Gcc_backend::set_placeholder_pointer_type): Propagate the
	canonical type from the desired pointer type to the placeholder
	pointer type.

2019-01-09  Ian Lance Taylor  <iant@golang.org>

	PR go/86343
	* go-gcc.cc (Gcc_backend::set_placeholder_struct_type): Go back to
	build_distinct_type_copy, but copy the fields so that they have
	the right DECL_CONTEXT.

2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>

	PR other/16615

	* go-backend.c: Mechanically replace "can not" with "cannot".
	* go-gcc.cc: Likewise.

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

	Update copyright years.

	* gccgo.texi: Bump @copyrights-go year.

2018-11-27  Ian Lance Taylor  <iant@golang.org>

	* go-gcc.cc (Gcc_backend::function): Handle function_only_inline
	flag.

2018-11-13  David Malcolm  <dmalcolm@redhat.com>

	* go-gcc-diagnostics.cc: Replace "source_location" with "location_t".
	* go-gcc.cc: Likewise.
	* go-linemap.cc: Likewise.
	* go-location.h: Likewise.
	* gofrontend/README: Likewise.

2018-10-31  Ian Lance Taylor  <iant@golang.org>

	* go-gcc.cc (Gcc_backend::write_global_definitions): Don't call
	gimplify_function_tree.  Instead call allocate_struct_function if
	necessary.

2018-10-29  Ian Lance Taylor  <iant@golang.org>

	* go-gcc.cc (Gcc_backend::function): Change to use a single flags
	parameter.

2018-10-29  Ian Lance Taylor  <iant@golang.org>

	* go-linemap.cc (Gcc_linemap::location_file): New method.

2018-10-17  David Malcolm  <dmalcolm@redhat.com>

	* Make-lang.in (selftest-go): New.

2018-09-20  Allan Sandfeld Jensen  <allan.jensen@qt.io>

	* gospec.c (lang_specific_driver): Handle -r like -nostdlib.

2018-08-27  Martin Liska  <mliska@suse.cz>

	* go-gcc.cc (Gcc_backend::call_expression): Use new function
	fndecl_built_in_p and remove check for FUNCTION_DECL if
	possible.

2018-07-20  Martin Sebor  <msebor@redhat.com>

	PR middle-end/82063
	* go-lang.c (go_langhook_handle_option): Change function argument
	to HOST_WIDE_INT.

2018-06-28  Ian Lance Taylor  <iant@golang.org>

	PR go/86343
	* go-gcc.cc (Gcc_backend::set_placeholder_struct_type): Call
	build_variant_type_copy rather than build_distinct_type_copy.

2018-06-08  Cherry Zhang  <cherryyz@google.com>

	* go-gcc.cc (class Gcc_backend): Remove
	stack_allocation_expression method.

2018-02-03  Ian Lance Taylor  <iant@golang.org>

	* go-gcc.cc (Gcc_backend::fill_in_struct): Mark struct types as
	using structural equality.

2018-02-02  Ian Lance Taylor  <iant@golang.org>

	* go-gcc.cc (Gcc_backend::type_size): Return 0 for
	void_type_node.
	(Gcc_backend::convert_expression): Don't convert if the type of
	expr_tree is void_type_node.
	(Gcc_backend::array_index_expression): Don't index if the type of
	the array expression is void_type_node.
	(Gcc_backend::init_statement): Don't initialize if the type of the
	initializer expression is void_type_node.
	(Gcc_backend::assignment_statement): Don't assign if the type of
	either the left or right hand side is void_type_node.
	(Gcc_backend::temporary_variable): Don't initialize if the type of
	the initializer expression is void_type_node.

2018-02-01  Cherry Zhang  <cherryyz@google.com>

	* lang.opt (fgo-optimize): Remove RejectNegative.
	* go-c.h (go_enable_optimize): Update declaration to take value
	argument.
	* go-lang.c (go_langhook_handle_option): Pass value to
	go_enable_optimize.
	* gccgo.texi (Invoking gccgo): Update -fgo-optimize-allocs doc.

2018-01-30  Ian Lance Taylor  <iant@golang.org>

	* go-gcc.cc (Gcc_backend::convert_tree): New private method.
	(Gcc_backend::constructor_expression): Call it.
	(Gcc_backend::assignment_statement): Likewise.
	(Gcc_backend::temporary_variable): Likewise.

2018-01-09  Cherry Zhang  <cherryyz@google.com>

	* go-gcc.cc (local_variable): Add decl_var parameter.

2018-01-09  Cherry Zhang  <cherryyz@google.com>

	* lang.opt (fgo-debug-escape-hash): New option.
	* go-c.h (struct go_create_gogo_args): Add debug_escape_hash
	field.
	* go-lang.c (go_langhook_init): Set debug_escape_hash field.
	* gccgo.texi (Invoking gccgo): Document -fgo-debug-escape-hash.

2018-01-05  Ian Lance Taylor  <iant@golang.org>

	* go-gcc.cc (Gcc_backend::Gcc_backend): Correct
	math_function_type_long to take one argument.

2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* go-lang.c (go_langhook_type_for_mode): Handle MODE_VECTOR_BOOL.

2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* go-lang.c (go_langhook_type_for_mode): Check valid_vector_subparts_p.

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

	Update copyright years.

	* gccgo.texi: Bump @copyrights-go year.

2017-12-12  Tony Reix  <tony.reix@atos.net>
	    Ian Lance Taylor  <iant@golang.org>

	* go-lang.c (TARGET_AIX): Define if not defined.
	(go_langhook_init): Set nil_check_size_threshold to -1 on AIX.

2017-12-01  Ian Lance Taylor  <iant@golang.org>

	* go-gcc.cc (Gcc_backend::Gcc_backend): Define
	__builtin_unreachable.
	(Gcc_backend::function): Add does_not_return parameter.

2017-12-01  Than McIntosh  <thanm@google.com>

	* go-c.h (go_create_gogo_args): Add nil_check_size_threshold
	field.
	* go-lang.c (go_langhook_init): Set nil_check_size_threshold.

2017-11-28  Jakub Jelinek  <jakub@redhat.com>

	* go-gcc.cc (Gcc_backend::switch_statement): Build SWITCH_EXPR using
	build2_loc instead of build3_loc.

2017-11-14  Than McIntosh  <thanm@google.com>

	* go-gcc.cc (var_expression): Remove Varexpr_context parameter.

2017-10-11  Tony Reix  <tony.reix@atos.net>

	* go-system.h (__STDC_FORMAT_MACROS): Define before including any
	system header files, as is done in ../system.h.

2017-10-05  Ian Lance Taylor  <iant@golang.org>

	* Make-lang.in (GO_OBJS): Add go/names.o.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* go-lang.c (go_langhook_type_for_mode): Use is_complex_float_mode.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* go-lang.c (go_langhook_type_for_mode): Use is_int_mode.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* go-lang.c (go_langhook_type_for_mode): Use is_float_mode.

2017-08-07  Martin Liska  <mliska@suse.cz>

	* go-gcc.cc (Gcc_backend::function): Look up for no_split_stack
	and not __no_split_stack__.

2017-07-27    Tony Reix  <tony.reix@atos.net>

	* go-backend.c (go_write_export_data): Use EXCLUDE section for
	AIX.

2017-06-09  Ian Lance Taylor  <iant@golang.org>

	* go-lang.c (go_langhook_post_options): If -fsplit-stack is turned
	on, disable implicit -forder-blocks-and-partition.

2017-05-12  Than McIntosh  <thanm@google.com>

	* go-gcc.cc (Gcc_backend::call_expression): Add caller parameter.

2017-05-11  Ian Lance Taylor  <iant@google.com>

	PR go/64238
	* go-gcc.cc (Gcc_backend::implicit_variable_reference): Set
	DECL_EXTERNAL, clear TREE_STATIC.

2017-05-10  Than McIntosh  <thanm@google.com>

	* go-backend.c: Include "go-c.h".
	* go-gcc.cc (Gcc_backend::write_export_data): New method.

2017-05-10  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::Gcc_backend): Declare
	__builtin_prefetch.
	* Make-lang.in (GO_OBJS): Add go/wb.o.

2017-03-28  Than McIntosh  <thanm@google.com>

	PR go/80226
	* go-gcc.cc (Gcc_backend::return_statement): Check for
	void_type_node when checking result size.

2017-02-20  Ian Lance Taylor  <iant@golang.org>

	PR go/79642
	* lang.opt (-fgo-relative-import-path): Change space to tab.

2017-02-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79256
	PR middle-end/79278
	* go-backend.c (go_field_alignment): Adjust.

2017-01-11  Than McIntosh  <thanm@google.com>

	* go-gcc.cc (conditional_expression): Add Bfunction parameter.

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

	Update copyright years.

	* gccgo.texi: Bump @copyrights-go year.

2016-12-16  Than McIntosh  <thanm@google.com>

	* go-gcc.cc (Gcc_backend::expression_statement): Add Bfunction*
	parameter.
	(Gcc_backend::init_statement): Likewise.
	(Gcc_backend::assignment_statement): Likewise.
	(Gcc_backend::if_statement): Likewise.

2016-12-06  Than McIntosh  <thanm@google.com>

	* go-gcc.cc (Gcc_backend::var_expression): Add Varexpr_context
	parameter.

2016-11-22  Than McIntosh  <thanm@google.com>

	* go-gcc.cc (char_needs_encoding): Remove.
	(needs_encoding, fetch_utf8_char, encode_id): Remove.
	(Gcc_backend::global_variable): Add asm_name parameter.  Don't
	compute asm_name here.
	(Gcc_backend::implicit_variable): Likewise.
	(Gcc_backend::implicit_variable_reference): Likewise.
	(Gcc_backend::immutable_struct): Likewise.
	(Gcc_backend::immutable_struct_reference): Likewise.
	* Make-lang.in (GO_OBJS): Add go/go-encode-id.o.

2016-11-22  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::Gcc_backend): Add builtin function
	__builtin_frame_address.

2016-10-25  David Malcolm  <dmalcolm@redhat.com>

	* go-lang.c (go_langhook_type_for_mode): Remove redundant cast
	from result of GET_MODE_CLASS.  Minor formatting fixes.

2016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* go-backend.c: Include memmodel.h.

2016-10-10  Than McIntosh  <thanm@google.com>

	* go-gcc.h: New file.
	* go-c.h (struct go_create_gogo_args): Add backend and linemap
	fields.
	* go-lang.c: Include "go-gcc.h".
	(go_langhook_init): Set linemap and backend fields of args.
	* go-gcc.cc: Include "go-gcc.h".
	* go-linemap.cc: Include "go-gcc.h".

2016-10-10  Than McIntosh  <thanm@google.com>

	* go-linemap.cc (Gcc_linemap::location_line): New method.

2016-10-10  Eric Botcazou  <ebotcazou@adacore.com>

	* config-lang.in (lang_requires_boot_languages): Delete.

2016-10-06  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::stack_allocation_expression): Clear the
	returned memory.

2016-09-27  Than McIntosh  <thanm@google.com>

	* go-linemap.cc (Gcc_linemap::to_string): New method.

2016-09-23  Than McIntosh  <thanm@google.com>

	* go-gcc-diagnostics.cc: New file.
	* go-location.h (Location): Remove operator source_location.  Add
	operator==.
	* go-system.h: #include <sstream>.
	* Make-lang.in (GO_OBJS): Add go/go-diagnostics.o and
	go/go-gcc-diagnostics.o.
	(CFLAGS-go/go-gcc-diagnostics.o): New variable.

2016-09-23  Chris Manghane  <cmang@google.com>

	PR go/77701
	* go-gcc.cc (Gcc_backend::Gcc_backend): Fix calls to integer_type
	to pass arguments in the correct order.

2016-09-22  Ian Lance Taylor  <iant@golang.org>

	* go-gcc.cc (Gcc_backend::Gcc_backend): Declare
	__builtin_frame_address.

2016-09-11  Ian Lance Taylor  <iant@golang.org>

	* go-gcc.cc (Gcc_backend::Gcc_backend): Add builtin versions of
	ctz, ctzll, bswap32, bswap64.

2016-09-10  Ian Lance Taylor  <iant@golang.org>

	* go-backend.c (go_trampoline_info): Remove.
	* go-c.h (go_trampoline_info): Don't declare.

2016-09-09  Than McIntosh  <thanm@google.com>

	* go-sha1.cc: New file.
	* Make-lang.in (GO_OBJS): Add go/go-sha1.o.
	(CFLAGS-go/go-sha1.o): New variable.

2016-08-29  Ian Lance Taylor  <iant@google.com>

	* lang.opt (fgo-c-header, fgo-compiling-runtime): New options.
	* go-c.h (struct go_create_gogo_args): Define.
	(go_create_gogo): Change declaration to take struct pointer.
	* go-lang.c (go_c_header): New static variable.
	(go_langhook_init): Update call to go_create_gogo.
	* gccgo.texi (Invoking gccgo): Document -fgo-c-header and
	-fgo-compiling-runtime.

2016-08-09  Ian Lance Taylor  <iant@google.com>

	* gccgo.texi (Invoking gccgo): Document -fgo-optimize-allocs and
	-fgo-debug-escae.
	(Compiler Directives): New chapter.
	(Function Names): Describe using //go:linkname.  Suggest using
	-fgo-pkgpath rather than -fgo-prefix.

2016-08-08  Ian Lance Taylor  <iant@google.com>

	PR go/72814
	* go-gcc.cc (Gcc_backend::function_type): If the return type is
	zero bytes, treat the function as returning void.
	(return_statement): If the return type is zero bytes, don't
	actually return any values.

2016-08-05  Ian Lance Taylor  <iant@google.com>

	PR go/72812
	* go-gcc.cc (char_needs_encoding): New static function.
	(needs_encoding, fetch_utf8_char): New static functions.
	(encode_id): New static function.
	(Gcc_backend::global_variable): Set asm name if the name is not
	simple ASCII.
	(Gcc_backend::implicit_variable): Likewise.
	(Gcc_backend::implicit_variable_reference): Likewise.
	(Gcc_backend::immutable_struct): Likewise.
	(Gcc_backend::immutable_struct_reference): Likewise.
	(Gcc_backend::function): Likewise.

2016-08-02  Chris Manghane  <cmang@google.com>

	* lang.opt: Add -fgo-debug-escape option.
	* go-c.h (go_create_gogo): Add debug_escape_level parameter.
	* go-lang.c (go_langhook_init): Pass go_debug_escape_level to
	go_create_gogo.

2016-05-06  Chris Manghane  <cmang@google.com>

	* Make-lang.in (GO_OBJS): Add go/escape.o (based on an entirely
	new escape.cc).

2016-04-29  Chris Manghane  <cmang@google.com>

	* Make-lang.in (GO_OBJS): Remove go/dataflow.o, go/escape.o.

2016-04-18  Michael Matz  <matz@suse.de>

	* go-gcc.cc (Gcc_backend::implicit_variable): Use SET_DECL_ALIGN.

2016-02-12  Jakub Jelinek  <jakub@redhat.com>

	* gofrontend/lex.cc: Spelling fixes - behaviour -> behavior and
	neighbour -> neighbor.
	* gccgo.texi: Likewise.

2016-01-27  Ian Lance Taylor  <iant@google.com>

	* go-lang.c (go_langhook_init_options_struct): Default to
	-fkeep-gc-roots-live.

2016-01-04  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

	* gccgo.texi: Bump @copyrights-go year.

2015-12-21  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (class Bvariable): Remove Gcc_tree parent class.  Add
	t_ and orig_type_ fields.  Add new two parameter constructor.  Add
	get_tree and get_decl methods.
	(Gcc_backend::var_expression): Pass location to var get_tree.
	(Gcc_backend::global_variable): Don't add VIEW_CONVERT_EXPR.  Use
	two parameter constructor for Bvariable.
	(Gcc_backend::global_variable_set_init): Don't remove
	VIEW_CONVERT_EXPR.  Use var get_decl, not get_tree.
	(Gcc_backend::write_global_definitions): Likewise.
	(Gcc_backend::init_statement): Call var get_decl, not get_tree.
	(Gcc_backend::block): Likewise.
	(Gcc_backend::implicit_variable_set_init): Likewise.
	(Gcc_backend::immutable_struct_set_init): Likewise.
	(Gcc_backend::function_set_parameters): Likewise.

2015-12-21  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::global_variable): If type is zero-sized,
	add a VIEW_CONVERT_EXPR to the tree.
	(Gcc_backend::global_variable_set_init): Remove any
	VIEW_CONVERT_EXPR.
	(Gcc_backend::write_global_definitions): Likewise.

2015-11-30  Ian Lance Taylor  <iant@google.com>

	PR go/68477
	* go-gcc.cc (Gcc_backend::string_constant_expression): Don't set
	TYPE_STRING_FLAG on a variant type.

2015-11-11  Andrew MacLeod  <amacleod@redhat.com>

	* go-backend.c: Remove unused header files.
	* go-gcc.cc: Likewise.
	* go-lang.c: Likewise.
	* gospec.c: Likewise.

2015-10-29  Andrew MacLeod  <amacleod@redhat.com>

	* go-backend.c: Reorder #include's and remove duplicates.
	* go-lang.c: Likewise.

2015-10-20  Alan Modra  <amodra@gmail.com>

	PR go/66870
	* gospec.c (saw_opt_m32): Rename to..
	(is_m64): ..this, initialised by TARGET_CAN_SPLIT_STACK_64BIT.
	Update uses.
	(lang_specific_driver): Set is_m64 if OPT_m64, clear if OPT_m32.

2015-10-01  Ian Lance Taylor  <iant@google.com>

	PR go/66870
	* gospec.c (lang_specific_driver): Only look for OPT_m32 if
	TARGET_CAN_SPLIT_STACK_64BIT is defined.

2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>

	PR target/66870
	* gospec.c (lang_specific_driver): Set appropriate split stack
	options for 64 bit compiles based on TARGET_CAN_SPLIT_STACK_64BIT.

2015-09-10  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::type_size): Return -1 for
	unrepresentable size.

2015-08-24  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/67284
	* go-gcc.cc (Gcc_backend::define_builtin): Add NORETURN_P parameter.
	Set TREE_THIS_VOLATILE.
	(Gcc_backend::Gcc_backend): Mark __builtin_trap as a noreturn call.
	Pass false to the rest of define_builtin calls.

2015-07-31  Andreas Schwab  <schwab@linux-m68k.org>

	* go-lang.c (go_langhook_init_options_struct): Don't set
	x_flag_split_stack.
	(go_langhook_post_options): Set it here instead.

2015-07-12  Aldy Hernandez  <aldyh@redhat.com>

	* gofrontend/backend.h: Fix double word typos.
	* gofrontend/expressions.cc: Same.
	* gospec.c: Same.

2015-07-07  Andrew MacLeod  <amacleod@redhat.com>

	* go-backend.c: Adjust includes.
	* go-gcc.cc: Likewise.
	* go-lang.c: Likewise.

2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* go-gcc.cc: Remove ipa-ref.h and plugin-api.h from include list.

2015-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* go-backend.c: Do not include input.h, line-map.h or is-a.h.
	* go-gcc.cc: Likewise.
	* go-lang.c: Likewise.
	* go-system.h: Likewise.

2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* go-backend.c : Adjust include files.
	* go-gcc.cc : Likewise.
	* go-lang.c : Likewise.

2015-06-05  Aldy Hernandez  <aldyh@redhat.com>

	* go-gcc.cc (write_global_definitions): Remove call to
	finalize_compilation_unit.
	Remove Go specific debug generation.
	* go-lang.c (go_langhook_parse_file): Call go_write_globals.
	(go_langhook_write_globals): Remove.
	Remove LANG_HOOKS_WRITE_GLOBALS everywhere.

2015-06-04  Andrew MacLeod  <amacleod@redhat.com>

	* go-backend.c: Adjust includes for restructured coretypes.h.
	* go-c.h: Likewise.
	* go-gcc.cc: Likewise.
	* go-lang.c: Likewise.

2015-04-30  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::stack_allocation_expression): New
	method.

2015-04-27  Jim Wilson  <jim.wilson@linaro.org>

	* Make-lang.in (go.mostlyclean): Remove gccgo, gccgo-cross, and go1.

2015-04-17  Chris Manghane  <cmang@google.com>

	* Make-lang.in (GO_OBJS): Add go/escape.o.

2015-02-02  Ian Lance Taylor  <iant@google.com>

	PR go/64836
	PR go/64838
	* go-gcc.cc (Gcc_backend::type_size): Change return type to
	int64_t.
	(Gcc_backend::type_alignment): Likewise.
	(Gcc_backend::type_field_alignment): Likewise.
	(Gcc_backend::type_field_offset): Likewise.
	(Gcc_backend::implicit_variable): Change alignment parameter type
	to int64_t.

2015-01-23  Ian Lance Taylor  <iant@google.com>

	PR go/63565
	* gccgo.texi (Invoking gccgo): Mention that Go programs should not
	be stripped.

	* gccgo.texi (C Interoperability): Mention that people should use
	cgo.

2015-01-23  Ian Lance Taylor  <iant@google.com>

	PR go/64595
	* go-lang.c (go_langhook_init_options_struct): Set default
	debug_info_level.
	(go_langhook_post_options): If debug_info_level is still the
	default, make sure write_symbols is set.
	* gccgo.texi (Invoking gccgo): Document that -g1 is the default.

2015-01-16  Richard Henderson  <rth@redhat.com>

	* go-gcc.cc (Gcc_backend::call_expression): Add chain_expr argument.
	(Gcc_backend::static_chain_variable): New method.

2015-01-09  Ian Lance Taylor  <iant@google.com>

	* config-lang.in (lang_dirs): Define.

2015-01-09  Michael Collison  <michael.collison@linaro.org>

	* go-gcc.cc: Include hash-set.h, machmode.h, vec.h, double-int.h,
	input.h, alias.h, symtab.h, options.h, fold-const.h,
	wide-int.h, and inchash.h due to flattening of tree.h.
	* go-lang.c: Ditto.
	* go-backend.c: Ditto.

2015-01-07  Chris Manghane  <cmang@google.com>

	PR go/61204
	* go-gcc.cc (Gcc_backend::temporary_variable): Don't initialize
	zero-sized variable.

2015-01-06  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::constructor_expression): Don't
	initialize zero-sized fields, just evaluate the values for side
	effects.

2015-01-05  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

	* gccgo.texi: Bump @copyrights-go year.

2014-12-19  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::array_constructor_expression): Don't
	construct arrays of zero-sized values.

2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>

	* go-lang.c: Remove redundant enum from machine_mode.

2014-10-28  Andrew MacLeod  <amacleod@redhat.com>

	* go-gcc.cc: Adjust include files.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* go-gcc.cc: Adjust include files.
	* go-lang.c: Ditto.

2014-10-23  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::complex_constant_expression): Take one
	mpc_t parameter instead of two mpfr_t parameters.

2014-09-15  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in (check_go_parallelize): Change to just an upper bound
	number.

2014-09-03  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::implicit_variable): Remove init
	parameter.  Add is_hidden parameter.
	(Gcc_backend::implicit_variable_set_init): New method.
	(Gcc_backend::implicit_variable_reference): New method.

2014-08-08  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::compound_statement): Don't return
	NULL_TREE.

2014-07-24  Uros Bizjak  <ubizjak@gmail.com>

	* go-gcc.cc (Gcc_backend::global_variable_set_init): Rename
	symtab_get_node to symtab_node::get.

2014-06-13  Ian Lance Taylor  <iant@google.com>

	PR go/61496
	* gospec.c (lang_specific_driver): On Solaris, when not using GNU
	ld, add -t option to avoid warning about common symbol changing
	size.

2014-06-10  Jan Hubicka  <hubicka@ucw.cz>

	* go-gcc.cc (Gcc_backend::global_variable_set_init): Use
	symtab_get_node(var_decl)->implicit_section.

2014-06-07  Jan Hubicka  <hubicka@ucw.cz>

	* go-gcc.cc (global_variable_set_init): Use
	set_decl_section_name.

2014-06-04  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::implicit_variable): Add is_common and
	alignment parameters.  Permit init parameter to be NULL.

2014-06-02  Andrew MacLeod  <amacleod@redhat.com>

	* go-gcc.cc: Include builtins.h.

2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>

	* go-lang.c (struct GTY): Don't use variable_size gty attribute.

2014-05-06  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::nil_pointer_expression): New method.
	(Gcc_backend::boolean_constant_expression): New method.
	(Gcc_backend::zero_expression): Use this->make_expression rather
	than tree_to_expr.
	(Gcc_backend::var_expression): Likewise.
	(Gcc_backend::integer_constant_expression): Likewise.
	(Gcc_backend::float_constant_expression): Likewise.
	(Gcc_backend::complex_constant_expression): Likewise.
	(Gcc_backend::struct_field_expression): Likewise.
	(tree_to_type, tree_to_expr, tree_to_stat): Remove functions.
	(tree_to_function, tree_to_block): Remove functions.
	(type_to_tree, expr_to_tree, stat_to_tree): Remove functions.
	(block_to_tree, var_to_tree, function_to_tree): Remove functions.

2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
	    Mike Stump  <mikestump@comcast.net>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* go-gcc.cc (Gcc_backend::type_size): Use tree_fits_uhwi_p.

2014-05-06  Chris Manghane  <cmang@google.com>

	* go-c.h (go_create_gogo): Update declaration to add
	check_divide_zero and check_divide_overflow parameters.
	* go-lang.c (go_langhook_init): Pass new arguments to
	go_create_gogo.

2014-05-05  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::implicit_variable): Rename from
	gc_root_variable.  Add name and is_constant parameters.

2014-05-05  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::indirect_expression): Add btype
	parameter.
	(Gcc_backend::temporary_variable): Check for erroneous function.

2014-04-30  Chris Manghane  <cmang@google.com>

	* go-backend.c: #include "diagnostics.h".
	(saw_errors): New function.
	* go-c.h (saw_errors): Declare.
	* Make-lang.in (GO_OBJS): Remove go/gogo-tree.o.

2014-04-30  Chris Manghane  <cmang@google.com>

	* go-lang.c (go_langhook_type_for_size): Do it here, rather than
	calling into Go frontend.
	(go_langhook_type_for_mode): Likewise.
	* go-c.h (go_type_for_size, go_type_for_mode): Don't declare.

2014-04-30  Chris Manghane  <cmang@google.com>

	* go-gcc.cc: #include "langhooks.h".
	(Gcc_backend::Gcc_backend): Add constructor.
	(Gcc_backend::lookup_function): New function.
	(Gcc_backend::define_builtin): New private function.
	(Gcc_backend::gcc_backend): Remove.
	(go_get_backend): Use new to create new Gcc_backend.

2014-04-25  Chris Manghane  <cmang@google.com>

	* go-gcc.cc: Include "cgraph.h" and "gimplify.h".
	(Gcc_backend::return_statement): Push and pop function.
	(Gcc_backend::label): Likewise.
	(Gcc_backend::function_defer_statement): Likewise.
	(Gcc_backend::switch_statement): Add function parameter.
	(Gcc_backend::block): Don't permit function to be NULL.
	(Gcc_backend::temporary_variable): Change go_assert to
	gcc_assert.
	(Gcc_backend::gc_root_variable): New function.
	(Gcc_backend::write_global_definitions): New function.

2014-04-22  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::temporary_variable): Push cfun around
	call to create_tmp_var.  Require that function be non-NULL.

2014-04-17  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::named_constant_expression): New
	function.

2014-04-14  Chris Manghane  <cmang@google.com>

	* go-gcc.cc: Include "convert.h".
	(Gcc_backend::string_constant_expression): New function.
	(Gcc_backend::real_part_expression): Likewise.
	(Gcc_backend::imag_part_expression): Likewise.
	(Gcc_backend::complex_expression): Likewise.
	(Gcc_backend::constructor_expression): Likewise.
	(Gcc_backend::array_constructor_expression): Likewise.
	(Gcc_backend::pointer_offset_expression): Likewise.
	(Gcc_backend::array_index_expression): Likewise.
	(Gcc_backend::call_expression): Likewise.
	(Gcc_backend::exception_handler_statement): Likewise.
	(Gcc_backend::function_defer_statement): Likewise.
	(Gcc_backend::function_set_parameters): Likewise.
	(Gcc_backend::function_set_body): Likewise.
	(Gcc_backend::convert_expression): Handle various type
	conversions.

2014-03-03  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::immutable_struct): If IS_COMMON, set
	DECL_WEAK.
	(GCC_backend::immutable_struct_set_init): If IS_COMMON, clear
	DECL_WEAK.

2014-01-24  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::unary_expression): New function.

2014-01-16  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::conditional_expression): Add btype
	parameter.
	(operator_to_tree_code): New static function.
	(Gcc_backend::binary_expression): New function.

2014-01-14  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::compound_expression): New function.
	(Gcc_backend::conditional_expression): New function.

2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	Update copyright years

2014-01-02  Tobias Burnus  <burnus@net-b.de>

	* gccgo.texi: Bump @copying's copyright year.

2013-12-16  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::struct_field_expression): New function.

2013-12-11  Ian Lance Taylor  <iant@google.com>

	* go-lang.c (go_langhook_post_options): Disable sibling calls by
	default.

2013-12-10  Ian Lance Taylor  <iant@google.com>

	* Make-lang.in (check_go_parallelize): Test go-test.exp r* tests
	separately.

2013-12-05  Ian Lance Taylor  <iant@google.com>

	Revert this change; no longer required.
	2013-11-06  Ian Lance Taylor  <iant@google.com>

	* go-lang.c (go_langhook_post_options): If
	-fisolate-erroneous-paths was turned on by an optimization option,
	turn it off.

2013-11-23  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::function_type): Add result_struct
	parameter.

2013-11-22  Andrew MacLeod  <amacleod@redhat.com>

	* go-gcc.cc: Add required include files from gimple.h.
	* go-lang.c: Likewise.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* gofrontend/expressions.cc: Replace tree_low_cst (..., 0) with
	tree_to_shwi throughout.

2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* gofrontend/expressions.cc: Replace host_integerp (..., 0) with
	tree_fits_shwi_p throughout.

2013-11-14  Andrew MacLeod  <amacleod@redhat.com>

	* go-lang.c: Include only gimplify.h and gimple.h as needed.

2013-11-14  Diego Novillo  <dnovillo@google.com>

	* go-backend.c: Include stor-layout.h.
	* go-gcc.cc: Include stringpool.h.
	Include stor-layout.h.
	Include varasm.h.
	* go-lang.c: Include stor-layout.h.

2013-11-12  Andrew MacLeod  <amacleod@redhat.com>

	* go-lang.c: Include gimplify.h.

2013-11-06  Ian Lance Taylor  <iant@google.com>

	* go-lang.c (go_langhook_post_options): If
	-fisolate-erroneous-paths was turned on by an optimization option,
	turn it off.

2013-10-14  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::address_expression): New function.

2013-10-11  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::function_code_expression): New
	function.

2013-10-10  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::error_function): New function.
	(Gcc_backend::function): New function.
	(Gcc_backend::make_function): New function.
	(function_to_tree): New function.

2013-10-04  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::convert_expression): New function.

2013-10-02  Chris Manghane  <cmang@google.com>

	* go-gcc.cc: Include "real.h" and "realmpfr.h".
	(Gcc_backend::integer_constant_expression): New function.
	(Gcc_backend::float_constant_expression): New function.
	(Gcc_backend::complex_constant_expression): New function.

2013-09-30  Chris Manghane  <cmang@google.com>

	* go-gcc.cc (Gcc_backend::error_expression): New function.
	(Gcc_backend::var_expression): New function.
	(Gcc_backend::indirect_expression): New function.

2013-09-25  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (gospec.o): Remove.
	(CFLAGS-go/gospec.o): New variable.
	(GCCGO_OBJS): Update to use go/gospec.o.
	(go_OBJS): Define.
	(GO_SYSTEM_H, GO_C_H, GO_LINEMAP_H, GO_LEX_H, GO_PARSE_H)
	(GO_GOGO_H, GO_TYPES_H, GO_STATEMENTS_H, GO_EXPRESSIONS_H)
	(GO_EXPORT_H, GO_IMPORT_H, GO_RUNTIME_H, GO_AST_DUMP_H)
	(go/go-backend.o, go/go-lang.o, go/go-gcc.o, go/go-linemap.o)
	(go/ast-dump.o, go/dataflow.o, go/export.o, go/expressions.o)
	(go/go.o, go/go-dump.o, go/go-optimize.o, go/gogo-tree.o)
	(go/gogo.o, go/import.o, go/import-archive.o, go/lex.o)
	(go/parse.o, go/runtime.o, go/statements.o, go/types.o)
	(go/unsafe.o): Remove.
	(CFLAGS-go/go-gcc.o, CFLAGS-go/go-linemap.o): New variables.
	(go/%.o: go/gofrontend/%.cc): Use COMPILE and POSTCOMPILE.

2013-09-25  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (gospec.o): Don't use subshell.

2013-08-28  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::immutable_struct): Set TREE_PUBLIC if
	the struct is not hidden.
	(Gcc_backend::immutable_struct_set_init): Don't set TREE_PUBLIC.

2013-08-06  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::immutable_struct_set_init): Use
	compute_reloc_for_constant.

2013-08-02  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (immutable_struct_set_init): Always call
	resolve_unique_section.

2013-07-24  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::non_zero_size_type): If a struct has a
	fields, recreate those fields with the first one with a non-zero
	size.

2013-07-23  Ian Lance Taylor  <iant@google.com>

	* go-backend.c: Don't #include "rtl.h".
	(go_imported_unsafe): Don't call init_varasm_once.
	* Make-lang.in (go/go-backend.o): Don't depend on $(RTL_H).

2013-07-23  Ian Lance Taylor  <iant@google.com>

	* go-lang.c: Don't #include "except.h".
	* Make-lang.in (go/go-lang.o): Don't depend on $(EXCEPT_H).

2013-06-18  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::immutable_struct): Add is_hidden
	parameter.
	(Gcc_backend::immutable_struct_set_init): Likewise.

2013-05-16  Jason Merrill  <jason@redhat.com>

	* Make-lang.in (go1$(exeext)): Use link mutex.

2013-01-16  Shenghou Ma  <minux.ma@gmail.com>

	* gospec.c: pass -u pthread_create to linker when static linking.

2012-12-21  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/54659
	* go-system.h: Don't include <cstdio>.

2012-12-18  Ian Lance Taylor  <iant@google.com>

	PR go/55201
	* gospec.c: Revert last patch.

2012-12-18  Andreas Schwab  <schwab@linux-m68k.org>

	PR go/55201
	* gospec.c (LIBATOMIC): Define.
	(LIBATOMIC_PROFILE): Define.
	(lang_specific_driver): Add LIBATOMIC[_PROFILE] option.

2012-11-29  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc: Include "output.h".
	(global_variable): Add is_unique_section parameter.
	(global_variable_set_init): Adjust unique section if necessary.
	* Make-lang.in (go/go-gcc.o): Add dependency on output.h.

2012-11-17  Diego Novillo  <dnovillo@google.com>

	Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)

	* go-lang.c: Use new vec API in vec.h.

2012-11-16  Ian Lance Taylor  <iant@google.com>

	* Make-lang.in (gccgo$(exeext)): Add + at start of command.
	(go1$(exeext)): Likewise.

2012-10-30  Ian Lance Taylor  <iant@google.com>

	* lang.opt (-fgo-relative-import-path): New option.
	* go-lang.c (go_relative_import_path): New static variable.
	(go_langhook_init): Pass go_relative_import_path to
	go_create_gogo.
	(go_langhook_handle_option): Handle -fgo-relative-import-path.
	* go-c.h (go_create_gogo): Update declaration.
	* gccgo.texi (Invoking gccgo): Document
	-fgo-relative-import-path.

2012-09-17  Ian Lance Taylor  <iant@google.com>

	* config-lang.in (target_libs): Add target-libbacktrace.

2012-09-16  Ian Lance Taylor  <iant@google.com>

	* Make-lang.in (go/gogo.o): Depend on filenames.h.

2012-08-14   Diego Novillo  <dnovillo@google.com>

	Merge from cxx-conversion branch.  Configury.

	* go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX.
	* go-gcc.cc: Likewise.
	* go-system.h: Likewise.

2012-07-24  Uros Bizjak  <ubizjak@gmail.com>

	* go-lang.c (lang_decl): Add variable_size GTY option.

2012-05-09  Ian Lance Taylor  <iant@google.com>

	* lang.opt: Add -fgo-pkgpath.
	* go-lang.c (go_pkgpath): New static variable.
	(go_prefix): New static variable.
	(go_langhook_init): Pass go_pkgpath and go_prefix to
	go_create_gogo.
	(go_langhook_handle_option): Handle -fgo-pkgpath.  Change
	-fgo-prefix handling to just set go_prefix.
	* go-c.h (go_set_prefix): Don't declare.
	(go_create_gogo): Add pkgpath and prefix to declaration.
	* go-gcc.cc (Gcc_backend::global_variable): Change unique_prefix
	to pkgpath.  Don't include the package name in the asm name.
	* gccgo.texi (Invoking gccgo): Document -fgo-pkgpath.  Update the
	docs for -fgo-prefix.

2012-04-23  Ian Lance Taylor  <iant@google.com>

	* go-lang.c (go_langhook_init): Set MPFR precision to 256.

2012-04-20  Ian Lance Taylor  <iant@google.com>

	* lang.opt: Add -fgo-check-divide-zero and
	-fgo-check-divide-overflow.
	* gccgo.texi (Invoking gccgo): Document new options.

2012-04-18  Steven Bosscher  <steven@gcc.gnu.org>

	* go-gcc.cc (Gcc_backend::switch_statement): Build SWITCH_EXPR
	with NULL_TREE type instead of void_type_node.

2012-03-09  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::assignment_statement): Convert the rhs
	to the lhs type if necessary.

2012-03-08  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::init_statement): Don't initialize a
	zero-sized variable.
	(go_non_zero_struct): New global variable.
	(Gcc_backend::non_zero_size_type): New function.
	(Gcc_backend::global_variable): Don't build an assignment for a
	zero-sized value.
	* go-c.h (go_non_zero_struct): Declare.
	* config-lang.in (gtfiles): Add go-c.h.

2012-02-29  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (class Gcc_tree): Add set_tree method.
	(set_placeholder_pointer_type): When setting to a pointer to
	error, set to error_mark_node.

2012-02-23  Richard Guenther  <rguenther@suse.de>

	* go-gcc.cc (Gcc_backend::placeholder_pointer_type): Use
	build_distinct_type_copy.

2012-02-17  Ian Lance Taylor  <iant@google.com>

	* Make-lang.in (go/import.o): Add dependency on $(GO_LEX_H).

2012-02-17  Ian Lance Taylor  <iant@google.com>

	* gospec.c (lang_specific_driver): If linking, and no -o option
	was used, add one.

2012-02-14  Ian Lance Taylor  <iant@google.com>

	PR go/48411
	* Make-lang.in (gccgo-cross$(exeext)): New target.
	(go.all.cross): Depend on gccgo-cross$(exeext) instead of
	gccgo$(exeext).
	(go.install-common): Only install GCCGO_TARGET_INSTALL_NAME if
	gccgo-cross$(exeext) does not exist.

2012-02-07  Ian Lance Taylor  <iant@google.com>

	* gccgo.texi (Function Names): Document //extern instead of
	__asm__.

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

	PR target/52079
	* go-lang.c (go_langhook_type_for_mode): For TImode and 64-bit HWI
	return build_nonstandard_integer_type result if possible.

2012-01-21  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::type_size): Check for error_mark_node.
	(Gcc_backend::type_alignment): Likewise.
	(Gcc_backend::type_field_alignment): Likewise.
	(Gcc_backend::type_field_offset): Likewise.

2012-01-20  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::placeholder_struct_type): Permit name to
	be empty.
	(Gcc_backend::set_placeholder_struct_type): Likewise.

2012-01-17  Ian Lance Taylor  <iant@google.com>

	* gospec.c (lang_specific_driver): If we see -S without -o, add -o
	BASE.s rather than -o BASE.o.

2012-01-11  Ian Lance Taylor  <iant@google.com>

	* go-lang.c (go_langhook_init): Initialize void_list_node before
	calling go_create_gogo.

2012-01-10  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::type_size): New function.
	(Gcc_backend::type_alignment): New function.
	(Gcc_backend::type_field_alignment): New function.
	(Gcc_backend::type_field_offset): New function.
	* go-backend.c (go_type_alignment): Remove.
	* go-c.h (go_type_alignment): Don't declare.

2011-12-27  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::set_placeholder_struct_type): Use
	build_distinct_type_copy rather than build_variant_type_copy.
	(Gcc_backend::set_placeholder_array_type): Likewise.
	(Gcc_backend::named_type): Add special handling for builtin
	basic types.

2011-12-22  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::set_placeholder_pointer_type): Arrange
	for the type name to have a DECL_ORIGINAL_TYPE as gcc expects.
	(Gcc_backend::set_placeholder_struct_type): Likewise.
	(Gcc_backend::set_placeholder_array_type): Likewise.
	(Gcc_backend::named_type): Set DECL_ORIGINAL_TYPE.

2011-12-13  Ian Lance Taylor  <iant@google.com>

	* go-backend.c: #include "simple-object.h" and "intl.h".
	(GO_EXPORT_SEGMENT_NAME): Define if not defined.
	(GO_EXPORT_SECTION_NAME): Likewise.
	(go_write_export_data): Use GO_EXPORT_SECTION_NAME.
	(go_read_export_data): New function.
	* go-c.h (go_read_export_data): Declare.

2011-11-29  Sanjoy Das  <thedigitalangel@gmail.com>
	    Ian Lance Taylor  <iant@google.com>

	* go-location.h: New file.
	* go-linemap.cc: New file.
	* go-gcc.cc: Change all uses of source_location to Location.
	* Make-lang.in (GO_OBJS): Add go/go-linemap.o.
	(GO_LINEMAP_H): New variable.
	(GO_LEX_H): Use $(GO_LINEMAP_H).
	(GO_GOGO_H, GO_TYPES_H, GO_IMPORT_H): Likewise.
	(go/go-linemap.o): New target.

2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Make-lang.in (gospec.o): Pass SHLIB instead of SHLIB_LINK.

2011-08-24  Roberto Lublinerman  <rluble@gmail.com>

	* lang.opt: Add fgo-optimize-.
	* go-lang.c (go_langhook_handle_option): Handle OPT_fgo_optimize.
	* go-c.h (go_enable_optimize): Declare.
	* Make-lang.in (GO_OBJS): Add go/go-optimize.o.
	(GO_EXPORT_H): Define.
	(GO_IMPORT_H): Add $(GO_EXPORT_H).
	(GO_AST_DUMP_H): Define.
	(go/ast-dump.o, go/statements.o): Use GO_AST_DUMP_H.
	(go/export.o, go/gogo.o, go/import.o): Use GO_EXPORT_H.
	(go/types.o): Likewise.
	(go/expressions.o): Use GO_AST_DUMP_H and GO_EXPORT_H.
	(go/go-optimize.o): New target.

2011-08-24  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (CFLAGS-go/go-lang.o): New.
	(go/go-lang.o): Remove explicit compilation rule.

2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Make-lang.in (gccgo$(exeext)): Add $(EXTRA_GCC_LIBS).

2011-08-02  Roberto Lublinerman  <rluble@gmail.com>

	* Make-lang.in (GO_OBJS): Add go/ast-dump.o.
	(go/ast-dump.o): New target.
	(go/expressions.o): Depend on go/gofrontend/ast-dump.h.
	(go/statements.o): Likewise.

2011-07-06  Richard Guenther  <rguenther@suse.de>

	* go-lang.c (go_langhook_init):
	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.

2011-06-14  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (go/go-lang.o, go/go-backend.o): Update
	dependencies.
	* go-backend.c: Include common/common-target.h.
	(go_write_export_data): Use targetm_common.have_named_sections.
	* go-lang.c: Include common/common-target.h.
	(go_langhook_init_options_struct): Use
	targetm_common.supports_split_stack.

2011-06-13  Ian Lance Taylor  <iant@google.com>

	* Make-lang.in (go/expressions.o): Depend on $(GO_RUNTIME_H).

2011-06-10  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc: Include "toplev.h".
	(Gcc_backend::immutable_struct): New function.
	(Gcc_backend::immutable_struct_set_init): New function.
	(Gcc_backend::immutable_struct_reference): New function.
	* Make-lang.in (go/go-gcc.o): Depend on toplev.h.

2011-06-09  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::zero_expression): New function.

2011-06-07  Richard Guenther  <rguenther@suse.de>

	* go-lang.c (go_langhook_init): Do not set
	size_type_node or call set_sizetype.

2011-05-27  Ian Lance Taylor  <iant@google.com>

	* go-backend.c: Include "output.h".
	(go_write_export_data): New function.
	* go-c.h (go_write_export_data): Declare.
	* Make-lang.in (go/go-backend.o): Depend on output.h.
	(go/export.o): Depend on $(GO_C_H).  Do not depend on
	$(MACHMODE_H), output.h, or $(TARGET_H).

2011-05-24  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (GCCGO_OBJS): Remove prefix.o.
	(gccgo$(exeext)): Use libcommon-target.a.

2011-05-20  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (GCCGO_OBJS): Remove intl.o and version.o.

2011-05-13  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::function_type): When building a struct
	for multiple results, check that all fields types have a size.
	(Gcc_backend::placeholder_pointer_type): Permit name to be empty.

2011-05-12  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::local_variable): Add is_address_taken
	parameter.
	(Gcc_backend::parameter_variable): Likewise.

2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* go-lang.c (global_bindings_p): Return bool and simplify.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

	* go-gcc.cc (Gcc_backend::switch_statement): Call build_case_label.

2011-05-04  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::struct_type): Call fill_in_struct.
	(Gcc_backend::fill_in_struct): New function.
	(Gcc_backend::array_type): Implement.
	(Gcc_backend::fill_in_array): New function.
	(Gcc_backend::placeholder_pointer_type): New function.
	(Gcc_backend::set_placeholder_pointer_type): New function.
	(Gcc_backend::set_placeholder_function_type): New function.
	(Gcc_backend::placeholder_struct_type): New function.
	(Gcc_backend::set_placeholder_struct_type): New function.
	(Gcc_backend::placeholder_array_type): New function.
	(Gcc_backend::set_placeholder_array_type): New function.
	(Gcc_backend::named_type): New function.
	(Gcc_backend::circular_pointer_type): New function.
	(Gcc_backend::is_circular_pointer_type): New function.

2011-04-26  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::struct_type): Implement.

2011-04-25  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::error_type): Implement.
	(Gcc_backend::string_type): Remove.
	(Gcc_backend::function_type): Change signature and implement.
	(Gcc_backend::struct_type): Change signature.
	(Gcc_backend::slice_type, Gcc_backend::map_type): Remove.
	(Gcc_backend::channel_type, Gcc_backend::interface_type): Remove.
	(Gcc_backend::pointer_type): Check for error.
	* Make-lang.in (go/types.o): Depend on go/gofrontend/backend.h.

2011-04-25  Evan Shaw  <edsrzf@gmail.com>

	* go-gcc.c (class Gcc_tree): Make get_tree const.
	(Gcc_backend::void_type): Implement.
	(Gcc_backend::bool_type): Implement.
	(Gcc_backend::integer_type): Implement.
	(Gcc_backend::float_type): Implement.
	(Gcc_backend::complex_type): New function.
	(Gcc_backend::pointer_type): New function.
	(Gcc_backend::make_type): New function.
	(type_to_tree): New function.

2011-04-21  Ian Lance Taylor  <iant@google.com>

	* go-system.h (go_assert, go_unreachable): Define.

2011-04-19  Ian Lance Taylor  <iant@google.com>

	* go-system.h: Include "intl.h".
	* Make-lang.in (GO_SYSTEM_H): Add intl.h.
	(go/statements.o): Remove dependencies on intl.h $(TREE_H)
	$(GIMPLE_H) convert.h tree-iterator.h $(TREE_FLOW_H) $(REAL_H).

2011-04-19  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::temporary_variable): New function.

2011-04-19  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (class Bblock): Define.
	(Gcc_backend::if_statement): Change then_block and else_block to
	Bblock*.
	(Gcc_backend::block): New function.
	(Gcc_backend::block_add_statements): New function.
	(Gcc_backend::block_statement): New function.
	(tree_to_block, block_to_tree): New functions.

2011-04-18  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc: Include "go-c.h".
	(class Bvariable): Define.
	(Gcc_backend::init_statement): New function.
	(Gcc_backend::global_variable): New function.
	(Gcc_backend::global_variable_set_init): New function.
	(Gcc_backend::local_variable): New function.
	(Gcc_backend::parameter_variable): New function.
	(tree_to_type, var_to_tree): New functions.
	* Make-lang.in (go/go-gcc.o): Depend on $(GO_C_H).
	* (go/gogo-tree.o): Depend on go/gofrontend/backend.h.

2011-04-15  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::compound_statement): New function.
	(Gcc_backend::assignment_statement): Use error_statement.
	(Gcc_backend::return_statement): Likewise.
	(Gcc_backend::if_statement): Likewise.
	(Gcc_backend::switch_statement): Likewise.
	(Gcc_backend::statement_list): Likewise.

2011-04-14  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::error_statement): New function.

2011-04-13  Ian Lance Taylor  <iant@google.com>

	* Make-lang.in (go/gogo-tree.o): depend on $(GO_RUNTIME_H).

2011-04-13  Ian Lance Taylor  <iant@google.com>

	* Make-lang.in (GO_OBJS): Add go/runtime.o.
	(GO_RUNTIME_H): New variable.
	(go/runtime.o): New target.
	(go/gogo.o): Depend on $(GO_RUNTIME_H).
	(go/statements.o): Likewise.

2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>

	* go-lang.c (union lang_tree_node): Check for TS_COMMON before
	calling TREE_CHAIN.

2011-04-06  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (if_statement): Use build3_loc.
	(Gcc_backend::switch_statement): New function.
	(Gcc_backend::statement_list): New function.

2011-04-06  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::if_statement): New function.
	(tree_to_stat): New function.
	(expr_to_tree): Renamed from expression_to_tree.
	(stat_to_tree): Renamed from statement_to_tree.

2011-04-06  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc (Gcc_backend::expression_statement): New function.

2011-04-04  Ian Lance Taylor  <iant@google.com>

	* go-gcc.c (class Blabel): Define.
	(Gcc_backend::make_expression): New function.
	(get_identifier_from_string): New function.
	(Gcc_backend::label): New function.
	(Gcc_backend::label_definition_statement): New function.
	(Gcc_backend::goto_statement): New function.
	(Gcc_backend::label_address): New function.
	(expression_to_tree): New function.
	* Make-lang.in (go/expressions.o): Depend on
	go/gofrontend/backend.h.
	(go/gogo.o): Likewise.

2011-04-04  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc: #include "tree-iterator.h", "gimple.h", and "gogo.h".
	(class Bfunction): Define.
	(Gcc_backend::assignment_statement): Rename from assignment.
	Check for errors.
	(Gcc_backend::return_statement): New function.
	(tree_to_function): New function.
	* Make-lang.in (go/go-gcc.o): Depend on tree-iterator.h,
	$(GIMPLE_H), and $(GO_GOGO_H).

2011-04-03  Ian Lance Taylor  <iant@google.com>

	* go-gcc.cc: New file.
	* Make-lang.in (GO_OBJS): Add go/go-gcc.o.
	(go/go-gcc.o): New target.
	(go/go.o): Depend on go/gofrontend/backend.h.
	(go/statements.o): Likewise.

2011-02-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gccgo.texi (Top, Import and Export): Fix a typo and a markup nit.

2011-02-08  Ian Lance Taylor  <iant@google.com>

	* go-lang.c (go_langhook_init_options_struct): Set
	frontend_set_flag_errno_math.  Don't set x_flag_trapping_math.

2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gospec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
	LD_STATIC_OPTION, LD_DYNAMIC_OPTION.

2011-01-21  Ian Lance Taylor  <iant@google.com>

	* go-lang.c (go_langhook_init): Omit float_type_size when calling
	go_create_gogo.
	* go-c.h: Update declaration of go_create_gogo.

2011-01-13  Ian Lance Taylor  <iant@google.com>

	* go-backend.c: Include "rtl.h" and "target.h".
	(go_imported_unsafe): New function.
	* go-c.h (go_imported_unsafe): Declare.
	* Make-lang.in (go/go-backend.o): Depend on $(RTL_H).
	(go/gogo-tree.o): Remove dependency on $(RTL_H).
	(go/unsafe.o): Depend on $(GO_C_H).

2010-12-31  Joern Rennecke  <amylaar@spamcop.net>

	PR go/47113
	* go-backend.c: (go_field_alignment): Add ATTRIBUTE_UNUSED to
	variable ‘field’ .

2010-12-21  Ian Lance Taylor  <iant@google.com>

	* Make-lang.in (check-go): Remove.
	(lang_checks_parallelized): Add check-go.
	(check_go_parallelize): Set.

2010-12-13  Ian Lance Taylor  <iant@google.com>

	* gospec.c (lang_specific_driver): Add a -o option if not linking
	and there is no -o option already.

2010-12-07  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/46805
	PR tree-optimization/46833
	* go-lang.c (go_langhook_type_for_mode): Handle vector modes.

2010-12-06  Ian Lance Taylor  <iant@google.com>

	PR other/46789
	PR bootstrap/46812
	* go-lang.c (go_char_p): Define type and vectors.
	(go_search_dirs): New static variable.
	(go_langhook_handle_option): Use version and version/machine
	directories for -L.
	(go_langhook_post_options): Add non-specific -L paths.
	* Make-lang.in (go/go-lang.o): Define DEFAULT_TARGET_VERSION and
	DEFAULT_TARGET_MACHINE when compiling.
	* gccgo.texi (Invoking gccgo): Only document -L for linking.
	(Import and Export): Don't mention -L for finding import files.

2010-12-03  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/46776
	* go-backend.c: New file.
	* go-c.h (go_type_alignment): Declare.
	(go_field_alignment, go_trampoline_info): Declare.
	* Make-lang.in (GO_OBJS): Add go/go-backend.o.
	(go/go-backend.o): New target.
	(go/go-lang.o): Make dependencies match source file.
	(go/expressions.o): Don't depend on $(TM_H) $(TM_P_H).
	(go/gogo-tree.o): Don't depend on $(TM_H).

2010-12-03  Ian Lance Taylor  <iant@google.com>

	* config-lang.in (build_by_default): Set to no.

2010-12-02  Ian Lance Taylor  <iant@google.com>

	Go frontend added to gcc repository.

Copyright (C) 2010-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.
