2022-06-28  Release Manager

	* GCC 10.4.0 released.

2022-04-21  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2022-03-10  Richard Biener  <rguenther@suse.de>

	PR ada/104861
	* gcc-interface/Makefile.in (target_noncanonical): Substitute.
	(OSCONS_CPP): Pass target_noncanonical as TARGET.

2022-03-24  Pascal Obry  <obry@adacore.com>

	PR ada/104767
	* libgnat/g-sercom__mingw.adb (Close): Reset port handle to -1.
	* libgnat/g-sercom__linux.adb (Close): Likewise.

2022-01-19  H.J. Lu  <hjl.tools@gmail.com>

	Backported from master:
	2022-01-19  H.J. Lu  <hjl.tools@gmail.com>

	PR ada/103538
	* gcc-interface/Makefile.in (target_cpu): Set to x32 for
	x86_64-linux-gnux32.

2022-01-19  H.J. Lu  <hjl.tools@gmail.com>

	Backported from master:
	2022-01-19  H.J. Lu  <hjl.tools@gmail.com>

	PR ada/103538
	* Makefile.rtl (LIBGNAT_TARGET_PAIRS): Add
	$(TRASYM_DWARF_UNIX_PAIRS),
	s-tsmona.adb<libgnat/s-tsmona__linux.adb,
	$(GNATRTL_128BIT_PAIRS).
	(EXTRA_GNATRTL_NONTASKING_OBJS): Add $(TRASYM_DWARF_UNIX_OBJS)
	and $(GNATRTL_128BIT_OBJS).

2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (validate_size): Do not issue an error if the
	old size has overflowed.

2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): For vector types, make
	the representative array the debug type.

2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (update_pointer_to): Set TYPE_CANONICAL on
	pointer and reference types.

2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (can_materialize_object_renaming_p): Do not
	call UI_Is_In_Int_Range on the result of Normalized_First_Bit.

2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <is_type>: Declare new
	constant.  Adjust error message issued by validate_size in the case
	of by-reference types.
	(validate_size): Always use the error strings passed by the caller.

2021-09-14  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Check_Strict_Alignment): Do not set the flag for
	a bit-packed array type, even if it is a by-reference type.

2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (finish_subprog_decl): Remove obsolete line.

2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Process
	the implementation type of a packed type implemented specially.

2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_subprog_type): Always translate
	the Is_Pure flag into the "pure" attribute of GNU C.

2021-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu) <N_Simple_Return_Statement>:
	Put a SLOC on the assignment from the return value to the return
	object in the copy-in/copy-out case.

2021-04-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/misc.c (gnat_init): Set default range bits to 0.
	* gcc-interface/trans.c (extract_encoding): Delete.
	(decode_name): Likewise.
	(File_Name_to_gnu): New function.
	(gigi): Call it to translate file names.  Replace assertion on
	1-1 mapping between files and line maps with conditional error.

2021-04-08  Release Manager

	* GCC 10.3.0 released.

2021-03-10  Mikael Pettersson  <mikpelinux@gmail.com>

	PR bootstrap/94918
	* raise-gcc.c: On Cygwin include mingw32.h to prevent
	windows.h from including x86intrin.h or emmintrin.h.

2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Build a TYPE_STUB_DECL
	for the main variant of an enumeration type declared as volatile.

2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/99264
	* init.c (__gnat_alternate_sta) [Linux]: Remove preprocessor test on
	MINSIGSTKSZ and bump size to 32KB.
	* libgnarl/s-osinte__linux.ads (Alternate_Stack_Size): Bump to 32KB.

2021-03-02  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/99095
	* sem_ch8.adb (Check_Constrained_Object): Restrict again the special
	optimization for limited types to non-array types except in the case
	of an extended return statement.

2021-02-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (components_to_record): If the first component
	with rep clause is the _Parent field with variable size, temporarily
	set it aside when computing the internal layout of the REP part again.
	* gcc-interface/utils.c (finish_record_type): Revert to taking the
	maximum when merging sizes for all record types with rep clause.
	(merge_sizes): Put SPECIAL parameter last and adjust recursive calls.

2021-02-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Make the
	two fields of the fat pointer type addressable, and do not make the
	template type read-only.
	<E_Record_Type>: If the type has discriminants mark it as may_alias.
	* gcc-interface/utils.c (make_dummy_type): Likewise.
	(build_dummy_unc_pointer_types): Likewise.

2021-01-26  Marius Hillenbrand  <mhillen@linux.ibm.com>

	PR ada/98228
	* gcc-interface/utils.c (maybe_pad_type): Test the size of the new
	packable type instead of its alignment for addressability's sake.

2021-01-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (make_covariant_thunk): Set the DECL_CONTEXT
	of the parameters and do not set TREE_PUBLIC on the thunk.
	(maybe_make_gnu_thunk): Pass the alias to the covariant thunk.
	* gcc-interface/utils.c (finish_subprog_decl): Set the DECL_CONTEXT
	of the parameters here...
	(begin_subprog_body): ...instead of here.

2021-01-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/98740
	* gcc-interface/trans.c (add_decl_expr): Always mark TYPE_ADA_SIZE.

2020-12-10  Ed Schonberg  <schonberg@adacore.com>

	PR ada/98230
	* exp_attr.adb (Expand_N_Attribute_Reference, case Mod): Use base
	type of argument to obtain static bound and required size.

2020-12-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (maybe_make_gnu_thunk): Return false if the
	target is local and thunk and target do not have the same context.

2020-12-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (gnat_write_global_declarations): Use the
	maximum index for the dummy object to avoid a name collision.

2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (build_binary_op_trapv): Convert operands
	to the result type before doing generic overflow checking.

2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (can_be_lower_p): Remove.
	(Regular_Loop_to_gnu): Add ENTRY_COND unconditionally if
	BOTTOM_COND is non-zero.

2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu) <N_Op_Shift>: Also convert
	GNU_MAX_SHIFT if the type of the operation has been changed.
	* gcc-interface/utils.c (can_materialize_object_renaming_p): Add
	pair of missing parentheses.

2020-09-28  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (maybe_saturate_size): Add ALIGN parameter
	and round down the result to ALIGN.
	(gnat_to_gnu_entity): Adjust calls to maybe_saturate_size.

2020-09-11  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (type_has_variable_size): New function.
	(create_field_decl): In the packed case, also force byte alignment
	when the type of the field has variable size.

2020-09-11  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Only
	create extra subtypes for discriminants if the RM size of the base
	type of the index type is lower than that of the index type.

2020-09-10  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (set_rm_size): Do not take into account the
	Value_Size clause if it is not for the entity itself.

2020-09-10  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (build_subst_list): For a definition, make
	sure to instantiate the SAVE_EXPRs generated by the elaboration of
	the constraints in front of the elaboration of the type itself.

2020-07-23  Release Manager

	* GCC 10.2.0 released.

2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu) <N_Allocator>: Minor tweaks.
	Call Has_Constrained_Partial_View on base type of designated type.

2020-05-07  Release Manager

	* GCC 10.1.0 released.

2020-05-04  Mikael Pettersson  <mikpelinux@gmail.com>

	PR bootstrap/94918
	* mingw32.h: Prevent windows.h from including emmintrin.h on Cygwin64.
	* s-oscons-tmplt.c (Serial_Port_Descriptor): Use System.Win32.HANDLE
	also on Cygwin.

2020-03-11  Richard Wai  <richard@annexi-strayline.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Also test Is_Public on
	the Alias of the entitiy, if it is present, in the main assertion.

2020-02-06  Alexandre Oliva <oliva@adacore.com>

	* raise-gcc.c (personality_body) [__ARM_EABI_UNWINDER__]:
	Initialize barrier_cache.sp when ending phase1.

2020-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	* gnatvsn.ads: Bump copyright year.

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

	Update copyright years.

  	* gnat_ugn.texi: Bump @copying's copyright year.
  	* gnat_rm.texi: Likewise.

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.
