2020-12-17  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-tags.ads, libgnat/a-tags.adb (CW_Membership): Move
	to spec to allow inlining.

2020-12-17  Arnaud Charlet  <charlet@adacore.com>

	* checks.adb: Remove, not used.
	* checks.ads: Likewise.
	* exp_ch6.adb: Likewise.
	* exp_ch7.adb: Likewise.
	* exp_ch7.ads: Likewise.
	* exp_fixd.adb: Likewise.
	* exp_tss.adb: Likewise.
	* exp_tss.ads: Likewise.
	* exp_util.adb: Likewise.
	* exp_util.ads: Likewise.
	* gnat1drv.adb: Likewise.
	* libgnat/s-finmas.adb: Likewise.
	* libgnat/s-finmas.ads: Likewise.
	* libgnat/system-aix.ads: Likewise.
	* libgnat/system-darwin-arm.ads: Likewise.
	* libgnat/system-darwin-ppc.ads: Likewise.
	* libgnat/system-darwin-x86.ads: Likewise.
	* libgnat/system-djgpp.ads: Likewise.
	* libgnat/system-dragonfly-x86_64.ads: Likewise.
	* libgnat/system-freebsd.ads: Likewise.
	* libgnat/system-hpux-ia64.ads: Likewise.
	* libgnat/system-hpux.ads: Likewise.
	* libgnat/system-linux-alpha.ads: Likewise.
	* libgnat/system-linux-arm.ads: Likewise.
	* libgnat/system-linux-hppa.ads: Likewise.
	* libgnat/system-linux-ia64.ads: Likewise.
	* libgnat/system-linux-m68k.ads: Likewise.
	* libgnat/system-linux-mips.ads: Likewise.
	* libgnat/system-linux-ppc.ads: Likewise.
	* libgnat/system-linux-riscv.ads: Likewise.
	* libgnat/system-linux-s390.ads: Likewise.
	* libgnat/system-linux-sh4.ads: Likewise.
	* libgnat/system-linux-sparc.ads: Likewise.
	* libgnat/system-linux-x86.ads: Likewise.
	* libgnat/system-lynxos178-ppc.ads: Likewise.
	* libgnat/system-lynxos178-x86.ads: Likewise.
	* libgnat/system-mingw.ads: Likewise.
	* libgnat/system-qnx-aarch64.ads: Likewise.
	* libgnat/system-rtems.ads: Likewise.
	* libgnat/system-solaris-sparc.ads: Likewise.
	* libgnat/system-solaris-x86.ads: Likewise.
	* libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-arm-rtp.ads: Likewise.
	* libgnat/system-vxworks-arm.ads: Likewise.
	* libgnat/system-vxworks-e500-kernel.ads: Likewise.
	* libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-e500-rtp.ads: Likewise.
	* libgnat/system-vxworks-e500-vthread.ads: Likewise.
	* libgnat/system-vxworks-ppc-kernel.ads: Likewise.
	* libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
	* libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-ppc-rtp.ads: Likewise.
	* libgnat/system-vxworks-ppc-vthread.ads: Likewise.
	* libgnat/system-vxworks-ppc.ads: Likewise.
	* libgnat/system-vxworks-x86-kernel.ads: Likewise.
	* libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-x86-rtp.ads: Likewise.
	* libgnat/system-vxworks-x86-vthread.ads: Likewise.
	* libgnat/system-vxworks-x86.ads: Likewise.
	* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-aarch64.ads: Likewise.
	* libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-arm.ads: Likewise.
	* libgnat/system-vxworks7-e500-kernel.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp.ads: Likewise.
	* libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
	* libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
	* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-x86-kernel.ads: Likewise.
	* libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-x86-rtp.ads: Likewise.
	* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
	* libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
	* repinfo.adb: Likewise.
	* repinfo.ads: Likewise.
	* rtsfind.ads: Likewise.
	* sem_aux.adb: Likewise.
	* sem_aux.ads: Likewise.
	* sem_ch13.adb: Likewise.
	* sem_ch13.ads: Likewise.
	* sem_util.adb (Validity_Checks_Suppressed, TSS,
	Is_All_Null_Statements, Known_Non_Negative,
	Non_Limited_Designated_Type, Get_Binary_Nkind, Get_Unary_Nkind,
	Is_Protected_Operation, Number_Components, Package_Body,
	Validate_Independence, Independence_Checks): Likewise; update
	comments.
	* targparm.adb: Likewise.
	* targparm.ads (AAM, AAM_Str, Fractional_Fixed_Ops,
	Frontend_Layout, Make_Detach_Call, Target_Has_Fixed_Ops, Detach,
	Back_End_Layout, Create_Dynamic_SO_Ref, Get_Dynamic_SO_Entity,
	Is_Dynamic_SO_Ref, Is_Static_SO_Ref,
	Fractional_Fixed_Ops_On_Target): Likewise.
	* validsw.adb (Save_Validity_Check_Options,
	Set_Default_Validity_Check_Options): Likewise.
	* validsw.ads: Likewise.

2020-12-17  Arnaud Charlet  <charlet@adacore.com>

	* symbols.ads, symbols.adb: Removed no longer used.

2020-12-17  Arnaud Charlet  <charlet@adacore.com>

	* sem_util.adb (New_Requires_Transient_Scope): Renamed
	Requires_Transient_Scope.
	(Requires_Transient_Scope, Old_Requires_Transient_Scope,
	Results_Differ): Removed.
	* debug.adb: Remove -gnatdQ.

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

	* libgnat/s-valrea.adb (Need_Extra): Fix comment.

2020-12-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Analyze_Case_Statement): Move modification of
	Unblocked_Exit_Count after early return statements; fix typo in
	comment.

2020-12-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Analyze_Case_Statement): Change local variable
	Exp to constant; remove unreferenced Last_Choice variable;
	reduce scope of other variables.
	(Analyze_If_Statement): Reduce scope of a local variable; add
	comment.

2020-12-17  Piotr Trojanek  <trojanek@adacore.com>

	* opt.ads (Multiple_Unit_Index): Refine type from Int to Nat.

2020-12-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (In_Check_Node): Add guard and rename Node to
	Par, just like it is done in surrounding routines, e.g.
	In_Assertion_Expression_Pragma and In_Generic_Formal_Package.

2020-12-17  Bob Duff  <duff@adacore.com>

	* libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
	libgnat/a-cdlili.adb, libgnat/a-cdlili.ads,
	libgnat/a-cidlli.adb, libgnat/a-cidlli.ads,
	libgnat/a-cobove.adb, libgnat/a-cobove.ads,
	libgnat/a-coinve.adb, libgnat/a-coinve.ads,
	libgnat/a-convec.adb, libgnat/a-convec.ads: Add *_Vector
	operations, remove default for Count, rename Append_One to be
	Append.

2020-12-17  Arnaud Charlet  <charlet@adacore.com>

	* sem_res.adb (Resolve_Declare_Expression): Need to establish a
	transient scope in case Expression (N) requires actions to be
	wrapped.  Code cleanup.
	* exp_ch7.adb, exp_ch11.adb: Code cleanup.

2020-12-17  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch3.adb (P_Identifier_Declarations): Reuse
	Error_Msg_Ada_2020_Feature for object renaming without subtype.
	* par-ch4.adb (P_Primary): Likewise for target name.
	(P_Iterated_Component_Association): Likewise for iterated
	component.
	(P_Declare_Expression): Likewise for declare expression.
	* par-ch6.adb (P_Formal_Part): Likewise for aspect on formal
	parameter.
	* sem_aggr.adb (Resolve_Delta_Aggregate): Ditto.
	* sem_ch8.adb (Analyze_Object_Renaming): Reuse
	Error_Msg_Ada_2020_Feature.
	* sem_ch13.adb (Validate_Aspect_Aggregate): Reuse
	Error_Msg_Ada_2020_Feature; use lower case for "aspect" and
	don't use underscore for "Ada_2020"; don't give up on analysis
	in Ada 2012 mode.
	(Validate_Aspect_Stable_Properties): Reuse
	Error_Msg_Ada_2020_Feature; use lower case for "aspect"; minor
	style fixes.

2020-12-17  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component): Request a compile
	time error replacement in Apply_Compile_Time_Constraint_Error
	in case of an invalid field.
	* sem_ch3.adb (Create_Constrained_Components): Take advantage of
	Gather_Components also in the case of a record extension and
	also constrain records in the case of compile time known discriminant
	values, as already done in gigi.
	* sem_util.ads, sem_util.adb (Gather_Components): New parameter
	Allow_Compile_Time to allow compile time known (but non static)
	discriminant values, needed by Create_Constrained_Components,
	and new parameter Include_Interface_Tag.
	(Is_Dependent_Component_Of_Mutable_Object): Use Original_Node to
	perform check on the original tree.
	(Is_Object_Reference): Likewise.  Only call Original_Node when
	relevant via a new function Safe_Prefix.
	(Is_Static_Discriminant_Component, In_Check_Node): New.
	(Is_Actual_Out_Or_In_Out_Parameter): New.
	* exp_ch4.adb (Expand_N_Selected_Component): Remove no longer needed
	code preventing evaluating statically discriminants in more cases.
	* exp_ch5.adb (Expand_N_Loop_Statement): Simplify expansion of loops
	with an N_Raise_xxx_Error node to avoid confusing the code generator.
	(Make_Component_List_Assign): Try to find a constrained type to
	extract discriminant values from, so that the case statement
	built gets an opportunity to be folded by
	Expand_N_Case_Statement.
	(Expand_Assign_Record): Update comments, code cleanups.
	* sem_attr.adb (Analyze_Attribute): Perform most of the analysis
	on the original prefix node to deal properly with a prefix rewritten
	as a N_Raise_xxx_Error.
	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Handle properly
	a discrete subtype definition being rewritten as N_Raise_xxx_Error.
	* sem_ch8.adb (Analyze_Object_Renaming): Handle N_Raise_xxx_Error
	nodes as part of the expression being renamed.
	* sem_eval.ads, sem_eval.adb (Fold, Eval_Selected_Component): New.
	(Compile_Time_Known_Value, Expr_Value, Expr_Rep_Value): Evaluate
	static discriminant component values.
	* sem_res.adb (Resolve_Selected_Component): Call
	Eval_Selected_Component.

2020-12-17  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Remove
	folding of discrete values.
	* exp_intr.adb (Expand_Unc_Conversion): Analyze, resolve and
	evaluate (if possible) calls to instances of
	Ada.Unchecked_Conversion after they have been expanded into
	N_Unchecked_Type_Conversion.
	* sem_eval.adb (Eval_Unchecked_Conversion): Add folding of
	discrete values.

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

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Likewise.
	* exp_imgv.adb (Expand_Value_Attribute): Use RE_Value_Long_Float in
	lieu of RE_Value_Long_Long_Float as fallback for fixed-point types.
	Also use it for Long_Long_Float if it has same size as Long_Float.
	* libgnat/s-imgrea.adb: Replace Powten_Table with Powen_LLF.
	* libgnat/s-powflt.ads: New file.
	* libgnat/s-powlfl.ads: Likewise.
	* libgnat/s-powtab.ads: Rename to...
	* libgnat/s-powllf.ads: ...this.
	* libgnat/s-valflt.ads: Add with clause for System.Powten_Flt and
	pass its table as actual parameter to System.Val_Real.
	* libgnat/s-vallfl.ads: Likewise for System.Powten_LFlt.
	* libgnat/s-valllf.ads: Likewise for System.Powten_LLF.
	* libgnat/s-valrea.ads: Add Maxpow and Powten_Address parameters.
	* libgnat/s-valrea.adb: Add pragma Warnings (Off).
	(Need_Extra): New boolean constant.
	(Precision_Limit): Set it according to Need_Extra.
	(Impl): Adjust actual parameter.
	(Integer_to_Rea): Add assertion on the machine radix. Take into
	account the extra digit only if Need_Extra is true.  Reimplement
	the computation of the final value for bases 2, 4, 8, 10 and 16.
	* libgnat/s-valued.adb (Impl): Adjust actual parameter.
	(Scan_Decimal): Add pragma Unreferenced.
	(Value_Decimal): Likewise.
	* libgnat/s-valuef.adb (Impl): Adjust actual parameter.
	* libgnat/s-valuer.ads (Floating): Remove.
	(Round): New formal parameter.
	* libgnat/s-valuer.adb (Round_Extra): New procedure.
	(Scan_Decimal_Digits): Use it to round the extra digit if Round
	is set to True in the instantiation.
	(Scan_Integral_Digits): Likewise.

2020-12-17  Erwan Le Guillou  <leguillou@adacore.com>

	* libgnat/system-lynxos178-ppc.ads,
	libgnat/system-lynxos178-x86.ads: Fix small typo in comments.

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

	* exp_dbug.adb (Get_Encoded_Name): Generate encodings for fixed
	point types only if -fgnat-encodings=all is specified.

2020-12-17  Justin Squirek  <squirek@adacore.com>

	* checks.adb (Build_Discriminant_Checks): Add condition to
	replace references to the current instance of the type when we
	are within an Init_Proc.
	(Replace_Current_Instance): Examine a given node and replace the
	current instance of the type with the corresponding _init
	formal.
	(Search_And_Replace_Current_Instance): Traverse proc which calls
	Replace_Current_Instance in order to replace all references
	within a given expression.

2020-12-17  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch12.adb (P_Formal_Derived_Type_Definition): Complain
	about formal type with aspect specification, which only become
	legal in Ada 2020.
	* par-ch9.adb (P_Protected_Operation_Declaration_Opt): Reuse
	Error_Msg_Ada_2005_Extension.
	(P_Entry_Declaration): Likewise.
	* scng.adb (Scan): Improve diagnostics for target_name; emit
	error, but otherwise continue in earlier than Ada 2020 modes.

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

	* libgnat/a-cbsyqu.ads (Implementation): Provide a box
	initialization for the element array used internally to
	represent the queue, so that its components are properly
	initialized if the given element type has default
	initialization. Suppress warnings on the rest of the package in
	case the element type has no default or discriminant, because it
	is bound to be confusing to the user.

2020-12-17  Arnaud Charlet  <charlet@adacore.com>

	* sem_util.adb (Inherit_Predicate_Flags): No-op before Ada 2012.

2020-12-17  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch7.adb (Make_Final_Call, Make_Init_Call): Take protected
	types into account.
	* sem_util.ads: Fix typo.

2020-12-17  Yannick Moy  <moy@adacore.com>

	* checks.adb: Rework error messages.
	* exp_ch3.adb: Likewise.
	* freeze.adb: Likewise.
	* lib-load.adb: Likewise.
	* par-ch12.adb: Likewise.
	* par-ch3.adb: Likewise.
	* par-ch4.adb: Likewise.
	* par-ch9.adb: Likewise.
	* sem_aggr.adb: Likewise.
	* sem_attr.adb: Likewise.
	* sem_cat.adb: Likewise.
	* sem_ch10.adb: Likewise.
	* sem_ch12.adb: Likewise.
	(Instantiate_Type): Fix CODEFIX comment, applicable only on
	continuation message, and identify the second message as a
	continuation.
	* sem_ch13.adb: Rework error messages.
	* sem_ch3.adb: Likewise.
	* sem_ch4.adb: Likewise.
	* sem_ch5.adb: Likewise.
	* sem_ch6.adb: Likewise.
	* sem_ch8.adb: Likewise.
	* sem_ch9.adb: Likewise.
	* sem_prag.adb: Likewise.
	* sem_res.adb: Likewise.
	* sem_util.adb: Likewise.
	(Wrong_Type): Fix CODEFIX comment, applicable only on
	continuation message, and identify the second message as a
	continuation.
	* symbols.adb: Rework error messages.

2020-12-17  Arnaud Charlet  <charlet@adacore.com>

	* sem_attr.adb (OK_Self_Reference): Return True if node does not
	come from source (e.g. a rewritten aggregate).

2020-12-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Parse_Aspect_Stable_Properties): Fix style;
	limit the scope of local variables; remove extra assignment in
	Extract_Entity.
	(Validate_Aspect_Stable_Properties): Simplify with procedural
	Next.

2020-12-16  Arnaud Charlet  <charlet@adacore.com>

	* ali.ads, ali.adb, bindo-writers.adb, lib-writ.adb (Scope):
	Renamed to IS_Scope.

2020-12-16  Joffrey Huguet  <huguet@adacore.com>

	* libgnat/a-strfix.ads: Add postconditions and contract cases to
	subprograms.

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

	* sem_ch5.adb (Analyze_Iterator_Specification): If iterator
	filter is present, preanalyze filter without expansion.
	(Analyze_Loop_Parameter_Specification): When
	loop_Parameter_Specification is rewritten as
	Iterator_Specification, transfer Iterator_Filter if present.

2020-12-16  Doug Rupp  <rupp@adacore.com>

	* libgnat/s-objrea.ads (Object_Arch): Add ARM enum
	* libgnat/s-objrea.adb (Initialize): Add EM_ARM case.
	(Read_Address): Add ARM case to 32bit read.
	* Makefile.rtl: Add trasym units to the runtime for armhf-linux.

2020-12-16  Dmitriy Anisimkov  <anisimko@adacore.com>

	* libgnat/g-expect.adb (Non_Blocking_Spawn): Deallocate elements
	on Arg_List after calling Set_Up_Child_Communications.

2020-12-16  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch3.adb (P_Modular_Type_Definition): Remove colon from
	error message.
	* sem_ch11.adb (Check_Duplication): Likewise.
	* sem_ch3.adb (Derived_Type_Declaration): Likewise.

2020-12-16  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch12.adb (P_Formal_Object_Declarations): Refine types to
	Pos.

2020-12-16  Piotr Trojanek  <trojanek@adacore.com>

	* impunit.adb (Not_Impl_Defined_Unit): Fix typo in iteration
	over Non_Imp_File_Names_12 array.

2020-12-16  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch9.adb, sem_warn.adb: Simplify membership test.

2020-12-16  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb, exp_util.adb, sem_ch4.adb, sem_disp.adb,
	sem_elab.adb: Simplify membership test.

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

	* libgnat/s-powtab.ads (Maxpow): Use explicit formula in comment.

2020-12-16  Philippe Gil  <gil@adacore.com>

	* libgnarl/s-tporft.adb (Register_Foreign_Thread): Set
	Global_Task_Lock_Nesting before using allocator.

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

	* libgnat/s-valrea.adb (Maxexp32): New constant array.
	(Maxexp64): Likewise.
	(Maxexp80): Likewise.
	(Integer_to_Real): New local constants Maxexp and B.
	When the exponent is too negative, do the divison in two steps.

2020-12-16  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst
	(Test_Case): Change integer to float literals.
	* gnat_rm.texi: Regenerate.

2020-12-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Add a codefix
	for extra parentheses around aspect Annotate expression; reject
	"(null record)" aggregate and extra parentheses around aspect
	Test_Case expression.
	* sem_prag.adb (Analyze_Pragma): Reject "null", "(null record)"
	and extra parentheses around pragma Contract_Cases; likewise for
	pragma Subprogram_Variant.

2020-12-16  Dmitriy Anisimkov  <anisimko@adacore.com>

	* adaint.h (__gnat_in_child_after_fork): New flag to express
	child process side after fork call.
	* adaint.c (__gnat_portable_spawn): Set flag
	__gnat_in_child_after_fork.
	* expect.c (__gnat_expect_fork): Set __gnat_in_child_after_fork
	to one on child side.
	* libgnat/memtrack.adb
	(In_Child_After_Fork): Flag to disable memory tracking.
	(Allow_Trace): New routine defining if memory should be tracked.
	(Alloc, Realloc, Free): Use Allow_Trace in "if" condition
	instead of First_Call.

2020-12-16  Yannick Moy  <moy@adacore.com>

	* libgnat/a-tifiio.adb: Mark body not in SPARK.
	* libgnat/a-tifiio.ads: Mark spec in SPARK.
	* libgnat/a-tifiio__128.adb: Mark body not in SPARK.

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

	* libgnat/s-valuer.adb (Scan_Decimal_Digits): Tweak overflow test.
	(Scan_Integral_Digits): Likewise.

2020-12-16  Pascal Obry  <obry@adacore.com>

	* s-oscons-tmplt.c: Add some OS constants.

2020-12-15  Pascal Obry  <obry@adacore.com>

	* libgnat/g-sercom__linux.adb (Set): Use cfsetospeed and
	cfsetispeed to set the baud rate. Clear non-blocking serial port
	status when blocking is requested.

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

	* libgnat/s-valrea.adb (Integer_to_Real): Always use Extra.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch5.adb (P_Condition): Simplify condition for warning
	about extra parens and make it easier to understand.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* errout.ads (Error_Msg_Ada_2005_Extension): New routine (spec).
	* errout.adb (Error_Msg_Ada_2005_Extension): New routine (body).
	* par-ch10.adb: Reuse new routine; correct casing for "LIMITED
	WITH".
	* par-ch11.adb: Likewise.
	* par-ch12.adb: Likewise.
	* par-ch3.adb: Likewise.
	* par-ch4.adb: Likewise; replace "box" with "<>".
	* par-ch6.adb: Likewise.
	* par-ch9.adb: Likewise; correct casing for "THEN ABORT".

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

	* doc/gnat_ugn/gnat_and_program_execution.rst: Minor fix.
	* gnat_ugn.texi: Regenerate.
	* libgnat/s-valuer.ads (Precision_Limit): New formal parameter.
	* libgnat/s-valuer.adb (Precision_Limit): Remove.
	(Scan_Decimal_Digits): Robustify overflow check.
	(Scan_Integral_Digits): Likewise.
	* libgnat/s-valrea.adb: Add assertion on the size of the unsigned
	type and instantiate System.Value_R with the mantissa limit.
	(Integer_to_Real): Add Extra parameter and take it into account.
	(Scan_Real): Pass Extra to Integer_to_Real.
	(Value_Real): Likewise.
	* libgnat/s-valued.adb: Add assertion on the size of the unsigned
	type and instantiate System.Value_R with the mantissa limit.
	* libgnat/s-valuef.adb: Likewise.

2020-12-15  Justin Squirek  <squirek@adacore.com>

	* contracts.adb, contracts.ads (Build_Postconditions_Procedure):
	Add declarations for Postcond_Enabled,
	Result_Object_For_Postcondition, and
	Return_Success_For_Postcond, and place all postconditions within
	an if statement to control their execution for interactions when
	cleanup actions get generated.
	(Get_Postcond_Enabled): Created to fetch object declared to
	handle new expansion of postconditions.
	(Get_Result_Object_For_Postcond): Created to fetch object
	declared to handle new expansion of postconditions.
	(Get_Return_Success_For_Postcond): Created to fetch object
	declared to handle new expansion of postconditions.
	* einfo.adb, einfo.ads: Modify flag Stores_Attribute_Old_Prefix
	to apply to constants, variables, and types.
	* exp_ch6.adb (Add_Return): Add assignment to
	Return_Success_For_Postcond.
	(Expand_Non_Function_Return): Add assignment to
	Return_Success_For_Postcond
	(Expand_Simple_Function_Return): Add assignment to
	Result_Object_For_Postcond and Return_Success_For_Postcond.
	* exp_ch7.adb (Build_Finalization_Master): Mark finalization
	masters which finalize types created store 'Old objects as
	storing 'Old objects.
	(Build_Finalizer): Created to generated a unified and special
	expansion for finalization when postconditions are present.
	(Build_Finalizer_Helper): Renamed Build_Finalizer and added
	parameter to facilitate the creation of separate finalization
	routines for 'Old objects and general objects.
	(Create_Finalizer): Add condition for the insertion of the
	finalizer spec to avoid malformed trees.
	(Expand_Cleanup_Actions): Move _postconditions and related
	declarations to the new declarative section.  Fix the loop to
	properly stop at the subprogram declaration for the
	postconditions procedure and exclude its body from being moved
	to the new list of declarations to avoid freezing issues.
	* exp_prag.adb (Expand_Attributes): Mark temporary created to
	store 'Old objects as storing a 'Old attribute.
	* sem_ch6.adb (Find_What_Applies_To): Remove strange exception
	to postconditions when traversing the scope stack.
	* sem_prag.adb (Find_Related_Declaration_Or_Body): Use the newly
	created Enclosing_HSS function to find the HSS for a potentially
	nested statement.
	* sem_util.adb, sem_util.ads (Declare_Indirect_Temp): Mark types
	created to store 'Old objects as storing 'Old attributes.
	(Enclosing_HSS): Created to find the enclosing handled sequence
	of statements for a given statement.
	* snames.ads-tmpl: Add multiple names to aid in the expansion of
	finalization and to control the evaluation of postconditions.
	Including _finalization_controller, a new routine to centralize
	finalization actions and postcondition evaluation.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch5.adb (P_Loop_Parameter_Specification): Complain about
	missing -gnat2020 switch.
	(P_Iterator_Specification): Likewise.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify with
	Append_New.

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

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Remove s-fatsfl$(objext)
	and add s-valflt$(objext), s-vallfl$(objext), s-valllf$(objext).
	* exp_attr.adb (Find_Fat_Info): Merge Short_Float and Float cases.
	* exp_imgv.adb (Expand_Value_Attribute): Replace RE_Value_Real with
	RE_Value_Long_Long_Float for fixed-point types and use appropriate
	base type for floating-point types.
	* rtsfind.ads (RTU_Id): Remove System_Fat_IEEE_Long_Float,
	System_Fat_IEEE_Short_Float and System_Val_Real, add System_Val_Flt,
	System_Val_LFlt and System_Val_LLF.
	(RE_Id): Remove RE_Attr_IEEE_Long, RE_Fat_IEEE_Long,
	RE_Attr_IEEE_Short, RE_Fat_IEEE_Short, RE_Attr_Short_Float, add
	RE_Value_Float, RE_Value_Long_Float, RE_Value_Long_Long_Float,
	(RE_Unit_Table): Likewise.
	* libgnat/a-ticoau.ads: Add with clause for Float_Aux and make the
	package generic.
	(Get): Change parameter types to Num.
	(Put): Likewise.
	(Gets): Likewise.
	(Puts): Likewise.
	* libgnat/a-ticoau.adb: Remove clause and renaming for Float_Aux.
	(Get): Change parameter types to Num.
	(Gets): Likewise.
	(Put): Likewise.
	(Puts): Likewise.  Add conversion to Long_Long_Float.
	* libgnat/a-ticoio.adb: Remove with clause for Ada.Text_IO, add with
	clause for Float_Aux, add with and use clauses for System.Val_Flt,
	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux and
	Complex_Aux on Float, Long_Float, and Long_Long_Float.
	(OK_Float): New boolean constant.
	(OK_Long_Float): Likewise.
	(Get): Call appropriate Get routine from auxiliary package.
	(Get): Call appropriate Gets routine from auxiliary package.
	(Put): Call appropriate Put routine from auxiliary package.
	(Put): Call appropriate Puts routine from auxiliary package.
	* libgnat/a-tideau.adb: Remove with and use clause for Float_Aux.
	* libgnat/a-tifiau.adb: Likewise.
	* libgnat/a-tifiio.adb: Add with and use clause for System.Val_LLF.
	Instantiate Float_Aux on Long_Long_Float.
	(Get): Adjust call to Get routine from auxiliary package.
	(Get): Adjust call to Gets routine from auxiliary package.
	(Put): Adjust call to Put routine from auxiliary package.
	(Put): Adjust call to Puts routine from auxiliary package.
	* libgnat/a-tifiio__128.adb: Likewise.
	(Get): Likewise.
	(Get): Likewise.
	(Put): Likewise.
	(Put): Likewise.
	* libgnat/a-tiflau.ads: Make the package generic.
	(Get): Change parameter type to Num.
	(Put): Likewise.
	(Gets): Likewise.
	(Puts): Likewise.
	* libgnat/a-tiflau.adb: Remove clauses for System.Val_Real.
	(Get): Change parameter type to Num and call Scan routine.
	(Gets): Likewise.
	(Load_Real): Move to...
	(Put): Change parameter type and add conversion to Long_Long_Float.
	(Puts): Likewise.
	* libgnat/a-tiflio.adb: Add with and use clauses for System.Val_Flt,
	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
	Long_Float and Long_Long_Float.
	(OK_Float): New boolean constant.
	(OK_Long_Float): Likewise.
	(Get): Call appropriate Get routine from auxiliary package.
	(Get): Call previous variant.
	(Get): Call appropriate Gets routine from auxiliary package.
	(Put): Call appropriate Put routine from auxiliary package.
	(Put): Call previous variant.
	(Put): Call appropriate Puts routine from auxiliary package.
	* libgnat/a-tigeau.ads (Load_Real): New procedure.
	* libgnat/a-tigeau.adb (Load_Real): ...here.
	* libgnat/a-wtcoau.ads: Add with clause for Float_Aux and make the
	package generic.
	(Get): Change parameter types to Num.
	(Put): Likewise.
	(Gets): Likewise.
	(Puts): Likewise.
	* libgnat/a-wtcoau.adb: Remove clause and renaming for Float_Aux.
	(Get): Change parameter types to Num.
	(Gets): Likewise.
	(Put): Likewise.
	(Puts): Likewise.  Add conversion to Long_Long_Float.
	* libgnat/a-wtcoio.ads: Remove use clause for Complex_Types and use
	qualified names throughout accordingly.
	* libgnat/a-wtcoio.adb: Remove clause for Ada.Unchecked_Conversion,
	add with clause for Float_Aux, add clauses for System.Val_Flt,
	System.Val_LFlt and System.Val_LLF. Add clause for Complex_Types.
	Instantiate Float_Aux and Complex_Aux on Float, Long_Float, and
	Long_Long_Float.  Remove LLF subtype and TFT instantiation.
	(OK_Float): New boolean constant.
	(OK_Long_Float): Likewise.
	(Get): Call appropriate Get routine from auxiliary package.
	(Get): Call appropriate Gets routine from auxiliary package.
	(Put): Call appropriate Put routine from auxiliary package.
	(Put): Call appropriate Puts routine from auxiliary package.
	* libgnat/a-wtdeau.adb: Remove with and use clause for Float_Aux.
	* libgnat/a-wtfiau.adb: Likewise.
	* libgnat/a-wtfiio.adb: Add with and use clause for System.Val_LLF.
	Instantiate Float_Aux on Long_Long_Float.
	(Get): Adjust call to Get routine from auxiliary package.
	(Get): Adjust call to Gets routine from auxiliary package.
	(Put): Adjust call to Put routine from auxiliary package.
	(Put): Adjust call to Puts routine from auxiliary package.
	* libgnat/a-wtfiio__128.adb: Likewise.
	(Get): Likewise.
	(Get): Likewise.
	(Put): Likewise.
	(Put): Likewise.
	* libgnat/a-wtflau.ads: Make the package generic.
	(Get): Change parameter type to Num.
	(Put): Likewise.
	(Gets): Likewise.
	(Puts): Likewise.
	* libgnat/a-wtflau.adb: Remove clauses for System.Val_Real.
	(Get): Change parameter type to Num and call Scan routine. Set
	Ptr parameter lazily.
	(Gets): Likewise.
	(Load_Real): Move to...
	(Put): Change parameter type and add conversion to Long_Long_Float.
	Bump buffer length to Max_Real_Image_Length.
	(Puts): Likewise.
	* libgnat/a-wtflio.adb: Add with and use clauses for System.Val_Flt,
	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
	Long_Float and Long_Long_Float.
	(OK_Float): New boolean constant.
	(OK_Long_Float): Likewise.
	(Get): Call appropriate Get routine from auxiliary package.  Add
	pragma Unsuppress (Range_Check) and manual validity check.
	(Get): Call appropriate Gets routine from auxiliary package. Add
	pragma Unsuppress (Range_Check) and manual validity check.
	(Put): Call appropriate Put routine from auxiliary package.
	(Put): Call appropriate Puts routine from auxiliary package.
	* libgnat/a-wtgeau.ads (Load_Real): New procedure.
	* libgnat/a-wtgeau.adb (Load_Real): ...here.
	* libgnat/a-ztcoau.ads: Add with clause for Float_Aux and make the
	package generic.
	(Get): Change parameter types to Num.
	(Put): Likewise.
	(Gets): Likewise.
	(Puts): Likewise.
	* libgnat/a-ztcoau.adb: Remove clause and renaming for Float_Aux.
	(Get): Change parameter types to Num.
	(Gets): Likewise.
	(Put): Likewise.
	(Puts): Likewise.  Add conversion to Long_Long_Float.
	* libgnat/a-ztcoio.ads: Remove use clause for Complex_Types and use
	qualified names throughout accordingly.
	* libgnat/a-ztcoio.adb: Remove clause for Ada.Unchecked_Conversion,
	add with clause for Float_Aux, add clauses for System.Val_Flt,
	System.Val_LFlt and System.Val_LLF. Add clause for Complex_Types.
	Instantiate Float_Aux and Complex_Aux on Float, Long_Float, and
	Long_Long_Float. Remove LLF subtype and TFT instantiation.
	(OK_Float): New boolean constant.
	(OK_Long_Float): Likewise.
	(Get): Call appropriate Get routine from auxiliary package.
	(Get): Call appropriate Gets routine from auxiliary package.
	(Put): Call appropriate Put routine from auxiliary package.
	(Put): Call appropriate Puts routine from auxiliary package.
	* libgnat/a-ztdeau.adb: Remove with and use clause for Float_Aux.
	* libgnat/a-ztfiau.adb: Likewise.
	* libgnat/a-ztfiio.adb: Add with and use clause for System.Val_LLF.
	Instantiate Float_Aux on Long_Long_Float.
	(Get): Adjust call to Get routine from auxiliary package.
	(Get): Adjust call to Gets routine from auxiliary package.
	(Put): Adjust call to Put routine from auxiliary package.
	(Put): Adjust call to Puts routine from auxiliary package.
	* libgnat/a-ztfiio__128.adb: Likewise.
	(Get): Likewise.
	(Get): Likewise.
	(Put): Likewise.
	(Put): Likewise.
	* libgnat/a-ztflau.ads: Make the package generic.
	(Get): Change parameter type to Num.
	(Put): Likewise.
	(Gets): Likewise.
	(Puts): Likewise.
	* libgnat/a-ztflau.adb: Remove clauses for System.Val_Real.
	(Get): Change parameter type to Num and call Scan routine. Set
	Ptr parameter lazily.
	(Gets): Likewise.
	(Load_Real): Move to...
	(Put): Change parameter type and add conversion to Long_Long_Float.
	Bump buffer length to Max_Real_Image_Length.
	(Puts): Likewise.
	* libgnat/a-ztflio.adb: Add with and use clauses for System.Val_Flt,
	System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
	Long_Float and Long_Long_Float.
	(OK_Float): New boolean constant.
	(OK_Long_Float): Likewise.
	(Get): Call appropriate Get routine from auxiliary package.  Add
	pragma Unsuppress (Range_Check) and manual validity check.
	(Get): Call appropriate Gets routine from auxiliary package. Add
	pragma Unsuppress (Range_Check) and manual validity check.
	(Put): Call appropriate Put routine from auxiliary package.
	(Put): Call appropriate Puts routine from auxiliary package.
	* libgnat/a-ztgeau.ads (Load_Real): New procedure.
	* libgnat/a-ztgeau.adb (Load_Real): ...here.
	* libgnat/s-fatsfl.ads: Delete.
	* libgnat/s-valflt.ads: New package.
	* libgnat/s-vallfl.ads: Likewise.
	* libgnat/s-valllf.ads: Likewise.
	* libgnat/s-valrea.ads: Make generic. Add assertions, defensive
	code and clarify intent.
	(Scan_Real): Change parameter type to Num.
	(Value_Real): Likewise.
	* libgnat/s-valrea.adb: Instantiate Value_R on Uns.
	(Integer_to_Real): Change parameter and result to Num.
	Call Float_Control.Reset only if the mantissa is 64 bits.  Use
	a divide to compute the final value if the scale is negative.
	(Scan_Real): Change result to Num.
	(Value_Real): Likewise.
	* libgnat/s-valuer.adb: Add assertions, defensive code and
	clarify intent.
	(F_Limit): Delete.
	(I_Limit): Likewise.
	(Precision_Limit): Always use the integer limit.
	* libgnat/s-fatgen.adb: Add pragma Annotate.

2020-12-15  Yannick Moy  <moy@adacore.com>

	* libgnat/a-tiflio.adb: Mark body not in SPARK.
	* libgnat/a-tiflio.ads: Mark spec in SPARK.

2020-12-15  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch6.adb (Build_Procedure_Body_Form): Adjust, the
	declaration of the procedure form is now insert before the
	original function body rather than after.
	(Expand_N_Subprogram_Declaration): Deal with private types whose
	full views are arrays.
	* exp_unst.adb (Unnest_Subprogram): Deal with private types.
	(Needs_Fat_Pointer): Code cleanup.
	* freeze.adb (Freeze_Subprogram): Ditto.
	* exp_util.adb (Build_Procedure_Form): Insert the procedure form
	decl before and not after.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build missing
	spec when needed for Transform_Function_Array.
	* sem_util.adb (Get_Fullest_View): Deal with null entity.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Simplify code
	for aspect Priority.
	* sem_prag.adb (Analyze_Pragma): Simplify code for pragma
	Priority.

2020-12-15  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch7.adb (Reset_Scopes_To_Block_Elab_Proc): Do not crash on
	a block with no Identifier. Code cleanups.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Reuse existing code for
	attribute Value when analyzing attributes Wide_Value and
	Wide_Wide_Value.

2020-12-15  Pascal Obry  <obry@adacore.com>

	* libgnat/g-diopit.adb (Find): Fix possible infinite recursion
	in Find iterator.
	* libgnat/g-diopit.ads (Find): Update comments accordingly.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Callable and Terminated attributes; refactor calls to Set_Etype
	occurring in both THEN and ELSE branches of an IF statement for
	attribute Storage_Size.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Wide_Wide_Width, Wide_Width and Width attributes.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Pred and Succ attributes.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Size, Object_Size and Value_Size attributes.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Consistently call
	Check_Fixed_Point_Type before checking the number of attribute
	expressions (like it is done for floating point types); reuse
	Check_Fixed_Point_Type_0.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* exp_disp.adb (Make_Tags): Remove call to UI_To_Int.
	* sem_attr.adb (Check_Array_Type): Likewise; also, refine type
	of a local variable.
	(Analyze_Attribute): Likewise.
	(Get_Enclosing_Object): Likewise.
	* sem_util.adb (Get_Enum_Lit_From_Pos): Likewise.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	First_Bit/Last_Bit and Position attributes.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Machine_Radix and Mantissa attributes.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Machine_Overflows and Machine_Rounds attributes.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Large, Small, Safe_Large and Safe_Small attributes.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Epsilon, Model_Epsilon, Model_Small, Safe_First and Safe_Las
	attributes.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Emax, Machine_Emax, Machine_Emin, Machine_Mantissa, Model_Emin,
	Model_Mantissa and Safe_Emax attributes.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Denorm and Signed_Zeros attributes.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Adjacent, Copy_Sign and Remainder attributes.
	(Check_Floating_Point_Type_2): Fix style in comment.

2020-12-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Compose, Leading_Part and Scaling attributes.

2020-12-14  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Resolve second parameter of
	attribute Scaling just like it is resolved for a similar
	attribute Compose.

2020-12-14  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	First/Last, First_Bit/Last_Bit and First_Valid/Last_Valid
	attributes.

2020-12-14  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge similar code for
	Truncation and other floating point attributes.

2020-12-14  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Merge identical code for
	Ceiling, Floor, Fraction, Machine, Machine_Rounding, Model,
	Rounding and Unbiased_Rounding.

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

	* libgnat/a-tifiio.adb: Adjust documentation.
	(OK_Get_32): Compare the object size of the base type.
	(OK_Put_32): Likewise.
	(OK_Get_64): Likewise.
	(OK_Put_64): Likewise.
	* libgnat/a-tifiio__128.adb: Adjust documentation.
	(OK_Get_32): Compare the object size of the base type.
	(OK_Put_32): Likewise.
	(OK_Get_64): Likewise.
	(OK_Put_64): Likewise.
	(OK_Get_128): Likewise.
	(OK_Put_128): Likewise.
	* libgnat/a-wtfiio.adb (OK_Get_32): Likewise.
	(OK_Put_32): Likewise.
	(OK_Get_64): Likewise.
	(OK_Put_64): Likewise
	* libgnat/a-wtfiio__128.adb (OK_Get_32): Likewise.
	(OK_Put_32): Likewise.
	(OK_Get_64): Likewise.
	(OK_Put_64): Likewise.
	(OK_Get_128): Likewise.
	(OK_Put_128): Likewise.
	* libgnat/a-ztfiio.adb (OK_Get_32): Likewise.
	(OK_Put_32): Likewise.
	(OK_Get_64): Likewise.
	(OK_Put_64): Likewise
	* libgnat/a-ztfiio__128.adb (OK_Get_32): Likewise.
	(OK_Put_32): Likewise.
	(OK_Get_64): Likewise.
	(OK_Put_64): Likewise.
	(OK_Get_128): Likewise.
	(OK_Put_128): Likewise.

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

	* libgnat/a-tifiio.adb (Get): Replace Current_Input with Current_In.
	* libgnat/a-tifiio__128.adb: (Get): Likewise.
	* libgnat/a-wtcoio.adb (Get): Likewise.
	(Put): Replace Current_Output with Current_Out.
	* libgnat/a-wtdeio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-wtdeio__128.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-wtenio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-wtfiio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-wtfiio__128.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-wtflio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-wtinio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-wtinio__128.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-wtmoio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-wtmoio__128.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-ztcoio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-ztdeio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-ztdeio__128.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-ztenio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-ztfiio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-ztfiio__128.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-ztflio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-ztinio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-ztinio__128.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-ztmoio.adb (Get): Likewise.
	(Put): Likewise.
	* libgnat/a-ztmoio__128.adb (Get): Likewise.
	(Put): Likewise.

2020-12-14  Justin Squirek  <squirek@adacore.com>

	* sem_util.adb, sem_util.ads (In_Generic_Formal_Package):
	Created to identify type declarations occurring within generic
	formal packages.
	* sem_res.adb (Resolve_Allocator): Add condition to avoid
	emitting an error for allocators when the type being allocated
	is class-wide and from a generic formal package.

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

	* libgnat/s-fatgen.adb (Tiny80): Add alignment clause.

2020-12-14  Arnaud Charlet  <charlet@adacore.com>

	* exp_util.adb (Process_Current_Value_Condition): Add assertion.
	* libgnat/s-fatgen.adb (Scaling): Add annotation.

2020-12-14  Arnaud Charlet  <charlet@adacore.com>

	* sem_eval.adb (Fold_Shift): Compute values using the base type.

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

	* libgnat/s-fatgen.adb: Add with clause for Interfaces and use
	type clause for Interfaces.Unsigned_64.
	(Small): Comment out.
	(Tiny): Likewise.
	(Tiny16): New integer constant.
	(Tiny32): Likewise.
	(Tiny64): Likewise.
	(Tiny80): New integer array constant.
	(Pred): Declare a local overlay for Tiny.
	(Succ): Likewise.

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

	* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix again packed
	array type in complex cases where array is Volatile.
	* exp_util.adb (Remove_Side_Effects): Do not force a renaming to
	be handled by the back-end.

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

	* libgnat/s-fatgen.adb: Remove use clause for
	System.Unsigned_Types.
	(Scaling): Add renaming of System.Unsigned_Types and use type
	clause for Long_Long_Unsigned.

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

	* libgnat/s-fatgen.ads (Compose): Add pragma Inline.
	(Copy_Sign): Likewise.
	(Exponent): Likewise.
	(Fraction): Likewise.
	* libgnat/s-fatgen.adb: Remove with clause for System, add
	with and use clauses for System.Unsigned_Types.
	Add pragma Warnings (Off) for non-static constants.
	Remove precomputed tables of powers of radix and add a few
	constants describing the floating-point format.
	(Gradual_Scaling): Delete.
	(Copy_Sign): Reimplement directly.
	(Decompose): Likewise.
	(Scaling): Likewise.
	(Pred): Speed up.
	(Succ): Likewise.
	(Truncation): Tidy up.
	(Valid): Move constants to library level.

2020-12-14  Piotr Trojanek  <trojanek@adacore.com>

	* sem_eval.adb (CV_Cache): Remove initialization at elaboration.

2020-12-14  Gary Dismukes  <dismukes@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Correct documentation of the -gnatw.K switch to say that it
	disables rather than activates the warning.
	* gnat_ugn.texi: Regenerate.

2020-12-14  Doug Rupp  <rupp@adacore.com>

	* tracebak.c: Add a section for ARM Linux.

2020-12-14  Ghjuvan Lacambre  <lacambre@adacore.com>

	* par-ch3.adb (P_Discriminant_Part_Opt): Parse aspects, update
	documentation.
	* par-ch6.adb (P_Return_Statement): Likewise.
	* par-ch9.adb (P_Entry_Index_Specification): Likewise.

2020-12-14  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Move
	generation of the call for DIC check past the optional
	generation of calls to controlled Initialize procedures.
	* exp_ch3.adb
	(Build_Array_Init_Proc.Init_One_Dimension.Possible_DIC_Call):
	Suppress generation of a DIC call when the array component type
	is controlled.  The call will now be generated later inside the
	array's DI (Deep_Initialize) procedure.
	* exp_ch7.adb
	(Make_Deep_Array_Body.Build_Initialize_Statements): Generate a
	DIC call (when needed by the array component type) after any
	call to the component type's controlled Initialize procedure, or
	generate the DIC call by itself if there's no Initialize to
	call.
	* sem_aggr.adb (Resolve_Record_Aggregate.Add_Association):
	Simplify condition to only test Is_Box_Init_By_Default (previous
	condition was overkill, as well as incorrect in some cases).
	* sem_elab.adb (Active_Scenarios.Output_Call): For
	Default_Initial_Condition, suppress call to
	Output_Verification_Call when the subprogram is a partial DIC
	procedure.

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

	* exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Round>:
	Adjust commentary and set the Rounded_Result flag on the type
	conversion node when the node is needed.
	* exp_ch4.adb (Expand_N_Type_Conversion): Minor tweak.
	(Fixup_Universal_Fixed_Operation): Look through the type conversion
	only when it is to Universal_Real.
	* exp_fixd.adb: Remove with and use clauses for Snames.
	(Build_Divide): Remove redundant test.
	(Expand_Convert_Float_To_Fixed): Use Rounded_Result flag on the
	node to set the truncation parameter.

2020-12-14  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Refinement_Clause): Simplify recently
	added code for preventing cascaded errors.

2020-12-14  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb (Is_Build_In_Place_Result_Type): Further narrow
	the conditions under which we enable build-in-place for
	controlled types.

2020-12-14  Yannick Moy  <moy@adacore.com>

	* sem_warn.adb (Output_Non_Modified_In_Out_Warnings): Use right
	warning control character 'k' in both comment and call to
	Errout_Msg_N.

2020-12-14  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Refined_State_In_Decl_Part): Refine the
	error message for missing Part_Of on constituent. Avoid
	cascading error.

2020-12-14  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Depends_In_Decl_Part): Replace early
	returns with goto Leave.
	(Collect_Subprogram_Inputs_Outputs): Fix style in comment.

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

	* libgnat/s-fatgen.ads (Valid): Add again pragma Inline.
	* libgnat/s-fatgen.adb (Valid): Improve commentary, tidy up left
	and right, and remove superfluous trick for denormalized numbers.

2020-12-14  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Find_Role): Constant object of
	access-to-constant and access-to-subprogram types are not
	writable.
	(Collect_Subprogram_Inputs_Outputs): In-parameters of
	access-to-variable type can act as outputs of the Depends
	contracts.

2020-12-14  Piotr Trojanek  <trojanek@adacore.com>

	* sa_messages.ads: Reference Subprogram_Variant in the comment
	for Assertion_Check.
	* sem_prag.adb (Analyze_Pragma): Add Subprogram_Variant as an
	ID_ASSERTION_KIND; move Default_Initial_Condition as an
	RM_ASSERTION_KIND.

2020-12-14  Yannick Moy  <moy@adacore.com>

	* inline.adb (Cannot_Inline): Add No_Info parameter to disable
	info message.
	* inline.ads (Cannot_Inline): When No_Info is set to True, do
	not issue info message in GNATprove mode, but still mark the
	subprogram as not always inlined.
	* sem_res.adb (Resolve_Call): Always call Cannot_Inline inside
	an assertion expression.

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

	* libgnat/s-imguti.ads (Set_Decimal_Digits): Adjust documentation.

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-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Make-lang.in: Remove ^L characters.
	* gcc-interface/decl.c (create_concat_name): Add cast.

2020-12-07  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/trans.c (lvalue_for_aggregate_p): Also return true
	for return statements.
	* gcc-interface/utils.c (gnat_write_global_declarations): Use the
	maximum index for the dummy object to avoid a name collision.

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

	* gcc-interface/decl.c (gnat_to_gnu_entity) <Fixed_Point_Type>: Put
	back the "else" unduly removed.

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

	* gcc-interface/trans.c (Call_to_gnu): Also create a temporary for
	the return value if the LHS is a bit-field and the return type is
	a type padding a self-referential type.
	(gnat_to_gnu): Do not remove the padding on the result if it is too
	small with regard to the natural padding size.

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

	* gcc-interface/utils.c (convert) <INTEGER_TYPE>: Call fold_convert
	in the cases where convert_to_integer is not called.
	<BOOLEAN_TYPE>: Call fold_convert instead of convert_to_integer.

2020-12-07  Matthias Klose  <doko@ubuntu.com>

	PR ada/97504
	* Makefile.rtl (LIBGNAT_TARGET_PAIRS) <mips*-*-linux*>: Use wraplf
	version of Aux_Long_Long_Float.

2020-11-30  Pierre-Marie de Rodat  <derodat@adacore.com>

	* libgnat/s-trasym.ads: Update the list of supported platforms.

2020-11-30  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Makefile.in, gcc-interface/trans.c: Remove ^L
	characters.

2020-11-30  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Makefile.in (GNATLIBFLAGS): Enable checks by
	default.
	* libgnat/s-bitfie.ads: Suppress alignment checks.
	* libgnat/s-bituti.adb: Minor reformatting.
	* libgnat/s-secsta.adb (SS_Allocate): Support Size = 0.

2020-11-30  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch3.adb (Replace_Discr_Ref): Removed, no longer needed.

2020-11-30  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Process_Statements): Replace low-level membership
	test with a high-level wrapper.

2020-11-30  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Set_Assignment_Type): Combine calls to Ekind
	using membership test.
	(Should_Transform_BIP_Assignment): Replace assignment to a
	"Result" variable with simple return statements; avoid repeated
	calls to Unqual_Conv by declaring a local constant.

2020-11-30  Piotr Trojanek  <trojanek@adacore.com>

	* lib-xref.adb (Generate_Reference): Fix reference to
	Analyze_Assignment.
	* sem_ch5.adb (Diagnose_Non_Variable_Lhs): Reuse existing
	utility function.

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

	* contracts.adb (Check_Type_Or_Object_External_Properties): Make
	sure to exclude all return objects from the SPARK legality rule
	on effectively volatile variables.
	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Use the fast
	track only when the declaration of the return object can be
	dropped.

2020-11-30  Gary Dismukes  <dismukes@adacore.com>

	* einfo.ads (Is_Partial_DIC_Procedure): New function.
	(Partial_DIC_Procedure): New procedure.
	* einfo.adb (Is_Partial_DIC_Procedure): New function to return
	whether a subprogram is a partial Default_Initial_Condition
	procedure by checking the name (to avoid adding a new field).
	(DIC_Procedure): Add a test that excludes partial DIC procedures
	from being returned.
	(Partial_DIC_Procedure): New procedure to return the partial DIC
	procedure of a type, if it has one (otherwise returns Empty).
	(Set_DIC_Procedure): Remove check for duplicate DIC procedures.
	* exp_aggr.adb (Gen_Assign): Generate a call to the type's DIC
	procedure in the case where an array component is default
	initialized (due to an association with a box).
	(Build_Record_Aggr_Code): For an extension aggregate, generate a
	call to the ancestor type's DIC procedure (if any) when the
	ancestor part is a subtype mark. For a record component
	association that was specified with a box (tested for by
	checking the new flag Was_Default_Init_Box_Association),
	generate a call to the component type's DIC procedure (if it has
	one).
	* exp_ch4.adb (Expand_N_Allocator): When the allocated object is
	default initialized and the designated type has a DIC aspect,
	generate a call to the DIC procedure.
	* exp_util.ads (Build_DIC_Call): Change the formal Obj_Id to
	name Obj_Name, and change its type from Entity_Id to Node_Id
	(and update comment).
	(Build_DIC_Procedure_Body): Add formal Partial_DIC, remove
	formal For_Freeze, and update comment accordingly.
	(Build_DIC_Procedure_Declaration): Add formal Partial_DIC and
	update comment.
	* exp_util.adb
	(Build_DIC_Call): Revised to use its Obj_Name (formerly Obj_Id)
	formal directly rather than calling New_Occurrence_Of on it, to
	allow arbitrary names to be passed rather than being limited to
	Entity_Ids.
	(Build_DIC_Procedure_Body): Call Add_Parent_DICs to generate
	checks for DICs associated with any parent types, implementing
	the required "additive" semantics for DICs. When building a DIC
	procedure body for a partial view (when Partial_DIC is True),
	call Add_Own_DIC when the type has its own DIC.  In the case of
	"full" DIC procedures, a call is generated to any partial DIC
	procedure of the type (unless the procedure has a null body),
	along with checks for any DICs inherited by the full view.
	(Build_DIC_Procedure_Declaration): Add handling for partial DIC
	procedures.  For the suffix of a regular DIC procedure's name,
	use "DIC" (instead of "Default_Initial_Condition"), and for the
	suffix of a partial DIC procedure's name, use "Partial_DIC".
	(Add_DIC_Check): Add the DIC pragma to the list of seen pragmas
	(Pragmas_Seen).
	(Add_Inherited_Tagged_DIC): Remove the formals Par_Typ,
	Deriv_Typ, and Obj_Id, and add formal Expr, which denotes DIC's
	expression. Remove the call to Replace_References (which is now
	done in Add_Inherited_DICs).
	(Add_Inherited_DICs): New procedure to locate a DIC pragma
	associated with a parent type, replace its references
	appropriately (such as any current instance references), and add
	a check for the DIC.
	(Add_Own_DIC): Add an Obj_Id formal to allow caller to pass the
	_init formal of the generated DIC procedure.
	(Add_Parent_DICs): New procedure to traverse a type's parents,
	looking for DICs associated with those and calling
	Add_Inherited_DICs to apply the appropriate DIC checks.
	(Is_Verifiable_DIC_Pragma): Treat pragmas that have an Empty
	first argument the same as a pragma without any arguments
	(returning False for that case).
	* exp_ch3.adb (Init_One_Dimension): Generate calls to the
	component's DIC procedure when needed.
	(Possible_DIC_Call): New function nested in Init_One_Dimension
	to build a call to the array component type's DIC-checking
	function when appropriate.
	(Build_Array_Init_Proc): The presence of a DIC on the component
	type is an additional condition for generating an init proc for
	an array type.
	(Build_Init_Statements): When the record component's type has a
	DIC, and the component declaration does not have an
	initialization expression, generate a call to the component
	type's DIC procedure.
	(Expand_N_Object_Declaration): Modify the call to Build_DIC_Call
	to pass a new occurrence of the object's defining id rather than
	the id itself.
	(Freeze_Type): Only build a type's DIC procedure (if it has one)
	for types that are not interfaces.
	* exp_spark.adb (Expand_SPARK_N_Freeze_Type): Remove From_Freeze
	actual and add a ??? comment.
	(Expand_SPARK_N_Object_Declaration): Modify call to
	Build_DIC_Call to pass a new occurrence of the object id rather
	than the object id itself.
	* sem_aggr.adb (Resolve_Record_Aggregate): Declare local flag
	Is_Box_Init_By_Default and set it in cases where the component
	association has a box and the component is being initialized by
	default (as opposed to initialized by an initialization
	expression associated with the component's declaration).
	(Add_Association): If the association has a box for a component
	initialized by default, the flag
	Was_Default_Init_Box_Association is set on the new component
	association (for later testing during expansion).
	(Get_Value): Reset Is_Box_Init_By_Default to False.
	* sem_ch3.adb (Build_Assertion_Bodies_For_Type): Rearrange code
	to build DIC procedure bodies for a (noninterface) type that
	Has_Own_DIC (for partial type views) or Has_DIC (for full type
	views) as appropriate.
	* sem_ch13.adb (Analyze_Aspect_Specifications,
	Aspect_Default_Initial_Condition): Add an extra argument to the
	DIC pragma to denote the type associated with the pragma (for
	use in Build_DIC_Procedure_Body).
	* sem_prag.adb (Analyze_Pragma): Allow two arguments for pragma
	Default_Initial_Condition.  If not already present, add an extra
	argument denoting the type that the pragma is associated with.
	* sem_util.adb (Propagate_DIC_Attributes): Retrieve any partial
	DIC procedure associated with the type and add it to the type's
	list of subprograms (Subprograms_For_Type).
	* sinfo.ads (Was_Default_Init_Box_Association): New flag on
	N_Component_Association nodes.  Add subprograms to get and set
	flag, as well as updating the documentation.
	* sinfo.adb (Was_Default_Init_Box_Association): New function to
	retrieve the corresponding flag (Flag14).
	(Set_Was_Default_Init_Box_Association): New procedure to set the
	corresponding flag (Flag14).

2020-11-30  Arnaud Charlet  <charlet@adacore.com>

	* par-ch6.adb (P_Formal_Part): Remove extra call to Scan.
	* par-tchk.adb: Minor reformatting.

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

	* libgnat/a-nbnbre.adb (Float_Conversions): Instantiate Conv
	package only once in the body.
	(Fixed_Conversions.Float_Aux): New instance.
	(Fixed_Conversions.Conv_I): Likewise.
	(Fixed_Conversions.Conv_U): Likewise.
	(Fixed_Conversions.LLLI): New subtype.
	(Fixed_Conversions.LLLU): Likewise.
	(Fixed_Conversions.Too_Large): New constant.
	(Fixed_Conversions.To_Big_Real): Reimplement.
	(Fixed_Conversions.From_Big_Real): Likewise.

2020-11-30  Bob Duff  <duff@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Avoid crash in case
	of conditional expression.

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

	* doc/gnat_rm/implementation_defined_attributes.rst (Pool_Address):
	Fix pasto.
	(Small_Denominator): New entry.
	(Small_Numerator): Likewise.
	* doc/gnat_rm/implementation_defined_characteristics.rst (3.5.9):
	Relax conditions on 128-bit smalls and integer-only implementation.
	* gnat_rm.texi: Regenerate.
	* exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Fore>:
	Relax conditions on integer implementation for ordinary fixed-point
	types and pass a third parameter to the routine.
	<Attribute_Small_Denominator>: Raise Program_Error.
	<Attribute_Small_Numerator>: Likewise.
	* exp_fixd.adb (Expand_Convert_Fixed_To_Fixed): Use a scaled divide
	if the numerator and denominator of the small ratio are sufficiently
	small integers.
	(Expand_Convert_Fixed_To_Integer): Use a scaled divide if numerator
	and denominator of the small value are sufficiently small integers.
	(Expand_Convert_Integer_To_Fixed): Likewise.
	* exp_imgv.adb (Expand_Image_Attribute): Relax the conditions on the
	integer implementation for ordinary fixed-point types.
	(Expand_Value_Attribute): Likewise.
	* freeze.adb (Freeze_Fixed_Point_Type): Relax conditions on 128-bit
	smalls.
	* sem_attr.adb (Analyze_Attribute) <Attribute_Small_Denominator>:
	Check no arguments, fixed-point and set type to Universal_Integer.
	<Attribute_Small_Numerator>: Likewise.
	(Eval_Attribute) <Attribute_Small_Denominator>: Fold statically.
	<Attribute_Small_Numerator>: Likewise.
	* snames.ads-tmpl (Name_Small_Denominator): New attribute name.
	(Name_Small_Numerator): Likewise.
	(Attribute_Id): Add Attribute_Small_{Denominator,Numerator}.
	* libgnat/a-tifiio.adb (Exact): Delete.
	(Need_64): Likewise.
	(OK_Get_32): New boolean constant.
	(OK_Put_32): Likewise.
	(OK_Get_64): Likewise.
	(OK_Put_64): Likewise.
	(E): Adjust.
	(Get procedures): Likewise.
	(Put procedures): Likewise.
	* libgnat/a-tifiio__128.adb (Exact): Delete.
	(Need_64): Likewise.
	(Need_128): Likewise.
	(OK_Get_32): New boolean constant.
	(OK_Put_32): Likewise.
	(OK_Get_64): Likewise.
	(OK_Put_64): Likewise.
	(OK_Get_128): Likewise.
	(OK_Put_128): Likewise.
	(E): Adjust.
	(Get procedures): Likewise.
	(Put procedures): Likewise.
	* libgnat/a-wtfiio.adb (Exact): Delete.
	(Need_64): Likewise.
	(OK_Get_32): New boolean constant.
	(OK_Put_32): Likewise.
	(OK_Get_64): Likewise.
	(OK_Put_64): Likewise.
	(E): Adjust.
	(Get procedures): Likewise.
	(Put procedures): Likewise.
	* libgnat/a-wtfiio__128.adb (Exact): Delete.
	(Need_64): Likewise.
	(Need_128): Likewise.
	(OK_Get_32): New boolean constant.
	(OK_Put_32): Likewise.
	(OK_Get_64): Likewise.
	(OK_Put_64): Likewise.
	(OK_Get_128): Likewise.
	(OK_Put_128): Likewise.
	(E): Adjust.
	(Get procedures): Likewise.
	(Put procedures): Likewise.
	* libgnat/a-ztfiio.adb (Exact): Delete.
	(Need_64): Likewise.
	(OK_Get_32): New boolean constant.
	(OK_Put_32): Likewise.
	(OK_Get_64): Likewise.
	(OK_Put_64): Likewise.
	(E): Adjust.
	(Get procedures): Likewise.
	(Put procedures): Likewise.
	* libgnat/a-ztfiio__128.adb (Exact): Delete.
	(Need_64): Likewise.
	(Need_128): Likewise.
	(OK_Get_32): New boolean constant.
	(OK_Put_32): Likewise.
	(OK_Get_64): Likewise.
	(OK_Put_64): Likewise.
	(OK_Get_128): Likewise.
	(OK_Put_128): Likewise.
	(E): Adjust.
	(Get procedures): Likewise.
	(Put procedures): Likewise.
	* libgnat/s-fore_f.ads (Fore_Fixed): Adjust signature.
	* libgnat/s-fore_f.adb (Fore_Fixed): Reimplement.
	* libgnat/s-fofi32.ads (Fore_Fixed32): Adjust signature.
	* libgnat/s-fofi64.ads (Fore_Fixed64): Likewise.
	* libgnat/s-fofi128.ads (Fore_Fixed128): Likewise.
	* libgnat/s-imagef.ads: Adjust description.
	* libgnat/s-imagef.adb (Maxdigs): Move around.
	(Set_Image_Integer): Remove assertion.
	* libgnat/s-valuef.ads: Adjust description.
	* libgnat/s-valuef.adb (Integer_To_Fixed): Minor tweak.

2020-11-30  Ghjuvan Lacambre  <lacambre@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Describe -gnateb switch.
	* doc/gnat_ugn/the_gnat_compilation_model.rst: Mention -gnateb
	switch in configuration pragma files section.
	* gnat_ugn.texi: Regenerate.
	* lib-writ.adb (Write_ALI): Strip directories from configuration
	files path if needed.
	* opt.ads: Declare Config_Files_Store_Basename option.
	* par.adb (Par): Save configuration file checksum.
	* switch-c.adb (Scan_Front_End_Switches): Set
	Config_Files_Store_Basename true if -gnateb is present.

2020-11-30  Arnaud Charlet  <charlet@adacore.com>

	* exp_dist.adb (RCI_Cache): Initialize.

2020-11-30  Arnaud Charlet  <charlet@adacore.com>

	* terminals.c (allocate_pty_desc): Copy one less byte since the
	last byte will always be set to 0.

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

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (-xdr):
	Document that XDR is not supported for 128-bit integer types.
	* gnat_ugn.texi: Regenerate.
	* exp_strm.adb (Build_Elementary_Input_Call): Deal with types
	larger than Long_Long_Integer.
	(Build_Elementary_Write_Call): Likewise.
	* rtsfind.ads (RE_Id): Add RE_I_LLL{I,U] and RE_W_LLL{I,U}.
	(RE_Unit_Table): Add entries for them.
	* libgnat/s-stratt.ads (I_LLLI): New inline function.
	(I_LLLU): Likewise.
	(W_LLLI): New inline procedure.
	(W_LLLU): Likewise.
	* libgnat/s-stratt.adb (S_LLLI): New subtype of SEA.
	(S_LLLU): Likewise.
	(From_LLLI): New instance of Unchecked_Conversion.
	(From_LLLU): Likewise.
	(To_LLLI): Likewise.
	(To_LLLU): Likewise.
	(I_LLLI): Implement.
	(I_LLLU): Likewise.
	(W_LLLI): Likewise.
	(W_LLLU): Likewise.

2020-11-30  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Check the
	signature of the private operation Get_Element_Access to prevent
	accidental use of a user-defined homonym subprogram.

2020-11-30  Yannick Moy  <moy@adacore.com>

	* spark_xrefs.ads: Add comment for Heap that it may remain
	Empty.

2020-11-30  Pascal Obry  <obry@adacore.com>

	* libgnat/g-sercom__linux.adb (Set): Fix control flags of the
	serial port setting.

2020-11-30  Pascal Obry  <obry@adacore.com>

	* libgnat/g-sercom__linux.adb: Minor style fixes.

2020-11-30  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.adb (Get_Current_Value_Condition): Don't use current
	value tracking in GNATprove mode.
	* sem_res.adb (Resolve_Comparison_Op): Remove incomplete
	special-casing for folding in GNATprove mode.

2020-11-30  Bob Duff  <duff@adacore.com>

	* errout.adb (Error_Msg_NEL): Do not call Set_Posted if errors
	are being ignored.
	(Error_Msg): Change Errors_Must_Be_Ignored to use the getter.
	* sem_ch8.adb (Find_Direct_Name): Do not skip all the error
	checks when ignoring errors, but instead do not add an entry to
	the Urefs table if errors are being ignored.
	* exp_ch5.adb: Minor comment fix.

2020-11-30  Yannick Moy  <moy@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate): Improve error message.

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

	* libgnat/s-valuef.adb (Integer_To_Fixed): Do not modify numerator
	or denominator in order to reduce the exponent.

2020-11-30  Arnaud Charlet  <charlet@adacore.com>

	* ali-util.adb (Get_File_Checksum): Remove dead code.
	* exp_ch4.adb (Expand_Boolean_Operator, Expand_N_Op_Not,
	Make_Boolean_Array_Op): Take Transform_Function_Array into
	account.
	* exp_ch6.adb (Expand_Call_Helper): Update comment. Code
	cleanup.
	* exp_util.adb (Build_Procedure_Form): Use new predefined name
	Name_UP_RESULT.
	* snames.ads-tmpl (Name_UP_RESULT): New predefined name.  Code
	cleanup: remove unused names from the project parser, moved to
	gprbuild sources.
	* xsnamest.adb: Add support for uppercase names.

2020-11-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Enter_Name): When an inherited operation for a
	local derived type is hidden by an explicit declaration of a
	non-overloadable entity in the same scope, make the inherited
	operation non-visible to prevent its accidental use elsewhere.

2020-11-29  John David Anglin  <danglin@gcc.gnu.org>

	PR ada/97504
	* Makefile.rtl (LIBGNAT_TARGET_PAIRS) <hppa*-*-hpux*>: Use wraplf
	version of Aux_Long_Long_Float.

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

	* libgnat/s-valuef.adb (Integer_To_Fixed): Take into account the
	extra digit when scaling up the input.
	* libgnat/s-valuer.adb (Scan_Decimal_Digits): Restrict previous
	change to fixed-point types.
	(Scan_Integral_Digits): Likewise.

2020-11-27  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Parent_Is_Boolean): Simplify.
	(Resolve_Op_Not): Reduce scope of a local variable.

2020-11-27  Piotr Trojanek  <trojanek@adacore.com>

	* cstand.adb: Simplify with Append_New_Elmt.
	* sem_util.adb: Likewise.

2020-11-27  Arnaud Charlet  <charlet@adacore.com>

	* sem_eval.adb (Fold_Shift): Fix evaluation of Shift_Right on
	negative values.

2020-11-27  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch6.adb (Expand_Call): Properly split
	Transform_Function_Array and Modify_Tree_For_C.

2020-11-27  Piotr Trojanek  <trojanek@adacore.com>

	* sem_eval.ads (Compile_Time_Compare): Restore parameter Diff to
	be of an access type.
	* sem_eval.adb (Compile_Time_Compare): Adapt body and callers.
	* sem_attr.adb (Eval_Attribute): Adapt callers.

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

	* libgnat/s-valuer.adb (Scan_Decimal_Digits): Round Extra.
	(Scan_Integral_Digits): Likewise.

2020-11-27  Yannick Moy  <moy@adacore.com>

	* checks.adb (Selected_Range_Checks): Adapt the condition for
	applying range checks so that it is not done inside generics.

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

	* exp_fixd.adb (Build_Double_Divide): Only use a 128-bit
	division if one of the operands is larger than 64 bits.
	(Build_Double_Divide_Code): Likewise.
	(Build_Scaled_Divide): Likewise.
	(Build_Scaled_Divide_Code): Likewise.

2020-11-27  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-os_lib.adb (To_GM_Time): Return valid and consistent
	values for Invalid_Time.

2020-11-27  Steve Baird  <baird@adacore.com>

	* snames.ads-tmpl: Define new Name_Stable_Properties Name_Id
	value.
	* aspects.ads, aspects.adb: Add new Aspect_Stable_Properties
	enumeration literal to Aspect_Id type. Add Class_Present
	parameter to Find_Aspect and related
	functions (Find_Value_Of_Aspect and Has_Aspect).
	* sem_util.adb (Has_Nontrivial_Precondition): Fix
	previously-latent bug uncovered by adding Class_Present
	parameter to Aspect.Find_Aspect. The code was wrong before, but
	with the change the bug was more likely to make a user-visible
	difference.
	* sem_ch6.adb (Analyze_Operator_Symbol): If a string literal
	like "abs" or "-" occurs in a Stable_Properties aspect
	specification, then it is to be interpreted as an operator
	symbol and not as a string literal.
	* sem_ch13.ads: Export new Parse_Aspect_Stable_Properties
	function, analogous to the existing Parse_Aspect_Aggregate
	exported procedure.
	* sem_ch13.adb: (Parse_Aspect_Stable_Properties): New function;
	analogous to existing Parse_Aspect_Aggregate.
	(Validate_Aspect_Stable_Properties): New procedure; analogous to
	existing Validate_Aspect_Aggregate. Called from the same case
	statement (casing on an Aspect_Id value) where
	Validate_Aspect_Aggregate is called.
	(Resolve_Aspect_Stable_Properties): New procedure; analogous to
	existing Resolve_Aspect_Aggregate. Called from the same two case
	statements (each casing on an Aspect_Id value) where
	Resolve_Aspect_Aggregate is called.
	(Analyze_Aspect_Specifications): Set Has_Delayed_Aspects and
	Is_Delayed_Aspect attributes for Aspect_Stable_Properties aspect
	specifications.
	(Check_Aspect_At_End_Of_Declarations): The syntactic
	"expression" for a Stable_Properties aspect specification is not
	semantically an expression; it doesn't have a type. Thus, force
	T to be empty in this case.
	* contracts.adb (Expand_Subprogram_Contract): Add call to new
	local procedure,
	Expand_Subprogram_Contract.Add_Stable_Property_Contracts, which
	generates Postcondition pragmas corresponding to stable property
	checks.

2020-11-27  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst:
	(Assertion_Policy): Move "Default_Initial_Condition" from
	ID_ASSERTION_KIND to RM_ASSERTION_KIND section.
	* gnat_rm.texi: Regenerate.

2020-11-27  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst
	(Assertion_Policy): Add "Default_Initial_Condition",
	"Initial_Condition" and "Subprogram_Variant".
	* gnat_rm.texi: Regenerate.

2020-11-27  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Is_Valid_Assertion_Kind): Return False on
	"Assertion_Policy"

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

	* make.adb (GNAT_Flag): Change to "-gnatg".
	(Compile): Adjust comments accordingly.

2020-11-27  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch4.adb (Rewrite_Comparison): Add assertion to confirm
	that evaluation folds comparisons with static operands; when
	folding comparison with non-static operands, the resulting
	literal is non-static.
	* sem_eval.adb (Eval_Relational_Op): Refactor nested IF
	statement for the special case in the THEN branch; move code for
	the "general case" out of the ELSE branch.
	* sem_res.adb (Resolve_Comparison_Op): Only apply a dubious
	special-case for GNATprove in the GNATprove_Mode.

2020-11-27  Piotr Trojanek  <trojanek@adacore.com>

	* sem_eval.ads (Compile_Time_Compare): Change parameter Diff
	from access to mode out.
	* sem_eval.adb (Compile_Time_Compare): Adapt body and callers.
	* sem_attr.adb (Eval_Attribute): Adapt callers.

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

	* exp_ch4.adb (Expand_N_Op_Multiply): Move down block calling
	Narrow_Large_Operation if the type is Universal_Integer.

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

	* libgnat/a-nbnbre.adb: Remove clauses for System.Img_Real and
	add them for System.Unsigned_Types.
	(Float_Conversions.To_Big_Real): Reimplement.
	(Float_Conversions.From_Big_Real): Likewise.

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

	* checks.ads (Determine_Range_To_Discrete): New procedure.
	* checks.adb (Apply_Scalar_Range_Check): Call it to determine
	a range for the expression when the target type is discrete.
	And also apply the tests for discrete types to fixed-point
	types when they are treated as integers.
	(Apply_Type_Conversion_Checks): Apply checks to conversions
	involving fixed-point types when they are treated as integers.
	(Determine_Range) <N_Type_Conversion>: Factor out code into...
	(Determine_Range_To_Discrete): ...this new procedure and add
	support for fixed-point types when they are treated as integers.
	* einfo.ads (Type_High_Bound): Remove obsolete sentence.
	(Type_Low_Bound): Likewise.
	* exp_ch4.adb (Discrete_Range_Check): Remove obsolete code.
	(Real_Range_Check): Likewise.
	(Expand_N_Type_Conversion): In case of a no-op conversion, clear
	the Do_Range_Check flag on the operand before substituting it.
	Remove calls to Real_Range_Check and Discrete_Range_Check that
	are not guarded by the Do_Range_Check flag, and an assertion.
	* sem_res.adb (Resolve_Type_Conversion): Always apply range
	checks in GNATprove mode; in normal mode, use the updated type
	of the operand in the test against Universal_Fixed.  Remove
	obsolete code setting the Do_Range_Check flag at the end.

2020-11-27  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Change "Ref Manual" to RM;
	replace uses of an unnecessary "Ok" variable with RETURN
	statements; replace nested IF with ELSIF.

2020-11-27  Arnaud Charlet  <charlet@adacore.com>

	* libgnarl/s-tasren.adb (Local_Complete_Rendezvous): Always call
	Defer_Abort.
	* libgnat/a-except.adb: Abort does not need to be deferred.
	* libgnarl/s-tpobop.adb (Exceptional_Complete_Entry_Body): Abort
	never needs to be undeferred here.
	* exp_ch11.adb (Expand_Exception_Handlers): Remove difference
	between ZCX and SJLJ.
	* exp_ch9.adb (Expand_N_Asynchronous_Select): Remove different
	handling for sjlj.
	* exp_sel.ads, exp_sel.adb (Build_Abort_Block,
	Build_Abort_Block_Handler): Ditto.

2020-11-27  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_prag.adb (Analyze_Pragma): declare new Check_No_Return
	function and call it.

2020-11-27  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch12.adb (Instantiate_Object): Consistently use
	New_Copy_Tree instead of New_Copy.

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

	* exp_fixd.adb (Build_Conversion): Adjust head comment.
	(Build_Divide): Likewise.
	(Build_Double_Divide): Likewise.
	(Build_Multiply): Likewise.
	(Build_Rem): Likewise.
	(Build_Scaled_Divide): Likewise.

2020-11-27  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-genbig.ads, libgnat/s-genbig.adb (To_Bignum): New
	variant taking an Unsigned_128.
	* libgnat/a-nbnbin.adb (To_Big_Integer): Add support for 128
	bits signed and unsigned types.

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

	* libgnat/s-imagef.adb (Set_Image_Fixed): Pass the full value
	of the quotient to Set_Image_Integer during the first round and
	adjust the handling of the minus sign.

2020-11-27  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-nbnbre.adb ("=", "<"): Fix.

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

	* libgnat/s-valuer.adb (Scan_Raw_Real): Move pragma Annotate around
	and adjust its parameters.

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

	* exp_fixd.adb (Build_Double_Divide): Use the RM size of types and
	a more precise estimate for the size of the denominator.
	(Build_Double_Divide_Code): Likewise.
	(Build_Multiply): Use a more precise estimate for the size of the
	result.
	(Build_Scaled_Divide):  Use the RM size of types and a more precise
	estimate for the size of the numerator.
	(Build_Scaled_Divide_Code): Likewise.

2020-11-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makefile.rtl <sparc*-sun-solaris*> (THREADSLIB): Remove.
	(MISCLIB): Remove -lposix4.
	<*86-*-solaris2*>: Likewise.
	* libgnarl/s-osinte__solaris.ads (System.OS_Interface): Remove
	-lposix4 -lthread.

2020-11-26  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-nbnbre.adb (To_Big_Real): Do not loose precision.

2020-11-26  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Check for AI12-0401.

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

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Likewise.
	(GNATRTL_128BIT_OBJS): Likewise.
	(GNATRTL_128BIT_PAIRS): Add new 128-bit variants.
	* cstand.adb (Create_Standard): Create Standard_Integer_128.
	* doc/gnat_rm/implementation_defined_characteristics.rst: Document
	new limits on 64-bit platforms in entry for 3.5.9(10).
	* gnat_rm.texi: Regenerate.
	* exp_attr.adb: Add with and use clauses for Urealp.
	(Expand_N_Attribute_Reference) <Attribute_Fore>: Call new routines
	for decimal fixed-point types and common ordinary fixed-point types.
	* exp_ch4.adb (Real_Range_Check): Extend conversion trick to all
	ordinary fixed-point types and use Small_Integer_Type_For.
	* exp_fixd.adb: Add with and use clauses for Ttypes.
	(Build_Divide): Add special case for 32-bit values and deal with
	128-bit types.
	(Build_Double_Divide): Deal with 128-bit types.
	(Build_Double_Divide_Code): Likewise.  Do not apply conversions
	before calling Build_Multiply.
	(Build_Multiply): Likewise.  Add special case for 32-bit values.
	(Build_Scaled_Divide): Deal with 128-bit types.
	(Build_Scaled_Divide_Code): Likewise.  Fix size computation.  Do not
	apply conversions before calling Build_Multiply.
	(Do_Multiply_Fixed_Fixed): Minor tweak.
	(Integer_Literal): Deal with 128-bit values.
	* exp_imgv.adb (Has_Decimal_Small): Delete.
	(Expand_Image_Attribute): Call new routines for common ordinary
	fixed-point types.
	(Expand_Value_Attribute): Likewise.
	(Expand_Width_Attribute): Add new expansion for fixed-point types.
	* freeze.adb (Freeze_Entity): Move error checks for ordinary
	fixed-point types to...
	(Freeze_Fixed_Point_Type): ...here.  Deal with 128-bit types and
	adjust limitations for 32-bnt and 64-bit types.
	* rtsfind.ads (RTU_Id): Add entries for new System_Fore, System_Img,
	and System_Val units and remove them for obsolete units.
	(RE_Id): Add entries for Double_Divide128, Scaled_Divide128, the new
	Fore, Image, Value routines and remove them for obsolete units.
	(RE_Unit_Table): Likewise.
	* sem_ch3.adb (Decimal_Fixed_Point_Type_Declaration): Deal with
	128-bit types.
	* stand.ads (Standard_Entity_Type): Add Standard_Integer_128.
	* uintp.ads (Uint_31): New deferred constant.
	(Uint_Minus_18): Likewise.
	(Uint_Minus_31): Likewise.
	(Uint_Minus_76): Likewise.
	(Uint_Minus_127): Likewise.
	* urealp.ads (Ureal_2_31): New function.
	(Ureal_2_63): Likewise.
	(Ureal_2_127): Likewise.
	(Ureal_2_M_127): Likewise.
	(Ureal_2_10_18): Likewise.
	(Ureal_M_2_10_18): Likewise.
	(Ureal_9_10_36): Likewise.
	(Ureal_M_9_10_36): Likewise.
	(Ureal_10_76): Likewise.
	(Ureal_M_10_76): Likewise.
	(Ureal_10_36): Delete.
	(Ureal_M_10_36): Likewise.
	* urealp.adb (UR_2_10_18): New variable.
	(UR_9_10_36): Likewise.
	(UR_10_76): Likewise.
	(UR_M_2_10_18): Likewise.
	(UR_M_9_10_36): Likewise.
	(UR_M_10_76): Likewise.
	(UR_2_31): Likewise.
	(UR_2_63): Likewise.
	(UR_2_127): Likewise.
	(UR_2_M_127): Likewise.
	(UR_10_36): Delete.
	(UR_M_10_36): Likewise.
	(Initialize): Initialize them.
	(UR_Write): Do not use awkward Ada literal style.
	(Ureal_2_10_18): New function.
	(Ureal_9_10_36): Likewise.
	(Ureal_10_76): Likewise.
	(Ureal_2_31): Likewise.
	(Ureal_2_63): Likewise.
	(Ureal_2_127): Likewise.
	(Ureal_2_M_127): Likewise.
	(Ureal_M_2_10_18): Likewise.
	(Ureal_M_9_10_36): Likewise.
	(Ureal_10_76): Likewise.
	(Ureal_M_10_76): Likewise.
	(Ureal_10_36): Delete.
	(Ureal_M_10_36): Likewise.
	* libgnat/a-decima__128.ads: New file.
	* libgnat/a-tideau.ads, libgnat/a-tideau.adb: Reimplement as
	generic unit.
	* libgnat/a-tideio.adb: Reimplement.
	* libgnat/a-tideio__128.adb: New file.
	* libgnat/a-tifiau.ads, libgnat/a-tifiau.adb: New generic unit.
	* libgnat/a-tifiio.adb: Move bulk of implementation to s-imagef
	and reimplement.
	* libgnat/a-tifiio__128.adb: New file.
	* libgnat/a-tiflau.adb (Get): Minor consistency fix.
	(Gets): Likewise.
	* libgnat/a-wtdeau.ads, libgnat/a-wtdeau.adb: Reimplement as
	generic unit.
	* libgnat/a-wtdeio.adb: Reimplement.
	* libgnat/a-wtdeio__128.adb: New file.
	* libgnat/a-wtfiau.ads, libgnat/a-wtfiau.adb: New generic unit.
	* libgnat/a-wtfiio.adb: Reimplement.
	* libgnat/a-wtfiio__128.adb: New file.
	* libgnat/a-ztdeau.ads, libgnat/a-ztdeau.adb: Reimplement as
	generic unit.
	* libgnat/a-ztdeio.adb: Reimplement.
	* libgnat/a-ztdeio__128.adb: New file.
	* libgnat/a-ztfiau.ads, libgnat/a-ztfiau.adb: New generic unit.
	* libgnat/a-ztfiio.adb: Reimplement.
	* libgnat/a-ztfiio__128.adb: New file.
	* libgnat/g-rannum.adb (Random_Decimal_Fixed): Use a subtype of the
	appropiate size for the instantiation.
	(Random_Ordinary_Fixed): Likewise.
	* libgnat/s-arit32.ads, libgnat/s-arit32.adb: New support unit.
	* libgnat/s-fode128.ads: New instantiation.
	* libgnat/s-fode32.ads: Likewise.
	* libgnat/s-fode64.ads: Likewise.
	* libgnat/s-fofi128.ads: Likewise.
	* libgnat/s-fofi32.ads: Likewise.
	* libgnat/s-fofi64.ads: Likewise.
	* libgnat/s-fore_d.ads, libgnat/s-fore_d.adb: New generic unit.
	* libgnat/s-fore_f.ads, libgnat/s-fore_f.adb: Likewise.
	* libgnat/s-fore.ads, libgnat/s-fore.adb: Rename into...
	* libgnat/s-forrea.ads, libgnat/s-forrea.adb: ...this.
	* libgnat/s-imaged.ads, libgnat/s-imaged.adb: New generic unit.
	* libgnat/s-imagef.ads, libgnat/s-imagef.adb: Likewise, taken
	from a-tifiio.adb.
	* libgnat/s-imde128.ads: New instantiation.
	* libgnat/s-imde32.ads: Likewise.
	* libgnat/s-imde64.ads: Likewise.
	* libgnat/s-imfi128.ads: Likewise.
	* libgnat/s-imfi32.ads: Likewise.
	* libgnat/s-imfi64.ads: Likewise.
	* libgnat/s-imgdec.ads, libgnat/s-imgdec.adb: Delete.
	* libgnat/s-imglld.ads, libgnat/s-imglld.adb: Likewise.
	* libgnat/s-imgrea.adb (Set_Image_Real): Replace Sign local variable
	with Minus local variable for the sake of consistency.
	* libgnat/s-imguti.ads, libgnat/s-imguti.adb: New support unit.
	* libgnat/s-vade128.ads: New instantiation.
	* libgnat/s-vade32.ads: Likewise.
	* libgnat/s-vade64.ads: Likewise.
	* libgnat/s-vafi128.ads: Likewise.
	* libgnat/s-vafi32.ads: Likewise.
	* libgnat/s-vafi64.ads: Likewise.
	* libgnat/s-valdec.ads, libgnat/s-valdec.adb: Delete.
	* libgnat/s-vallld.ads, libgnat/s-vallld.adb: Likewise.
	* libgnat/s-valued.ads, libgnat/s-valued.adb: New generic unit.
	* libgnat/s-valuef.ads, libgnat/s-valuef.adb: Likewise.
	* libgnat/s-valuei.adb: Minor rewording.
	* libgnat/s-valrea.adb: Move bulk of implementation to...
	* libgnat/s-valuer.ads, libgnat/s-valuer.adb: ...here.  New
	generic unit.
	* libgnat/system-aix.ads (Max_Mantissa): Adjust.
	* libgnat/system-darwin-arm.ads (Max_Mantissa): Likewise.
	* libgnat/system-darwin-ppc.ads (Max_Mantissa): Likewise.
	* libgnat/system-darwin-x86.ads (Max_Mantissa): Likewise.
	* libgnat/system-djgpp.ads (Max_Mantissa): Likewise.
	* libgnat/system-dragonfly-x86_64.ads (Max_Mantissa): Likewise.
	* libgnat/system-freebsd.ads (Max_Mantissa): Likewise.
	* libgnat/system-hpux-ia64.ads (Max_Mantissa): Likewise.
	* libgnat/system-hpux.ads (Max_Mantissa): Likewise.
	* libgnat/system-linux-alpha.ads (Max_Mantissa): Likewise.
	* libgnat/system-linux-arm.ads (Max_Mantissa): Likewise.
	* libgnat/system-linux-hppa.ads (Max_Mantissa): Likewise.
	* libgnat/system-linux-ia64.ads (Max_Mantissa): Likewise.
	* libgnat/system-linux-m68k.ads (Max_Mantissa): Likewise.
	* libgnat/system-linux-mips.ads (Max_Mantissa): Likewise.
	* libgnat/system-linux-ppc.ads (Max_Mantissa): Likewise.
	* libgnat/system-linux-riscv.ads (Max_Mantissa): Likewise.
	* libgnat/system-linux-s390.ads (Max_Mantissa): Likewise.
	* libgnat/system-linux-sh4.ads (Max_Mantissa): Likewise.
	* libgnat/system-linux-sparc.ads (Max_Mantissa): Likewise.
	* libgnat/system-linux-x86.ads (Max_Mantissa): Likewise.
	* libgnat/system-lynxos178-ppc.ads (Max_Mantissa): Likewise.
	* libgnat/system-lynxos178-x86.ads (Max_Mantissa): Likewise.
	* libgnat/system-mingw.ads (Max_Mantissa): Likewise.
	* libgnat/system-qnx-aarch64.ads (Max_Mantissa): Likewise.
	* libgnat/system-rtems.ads (Max_Mantissa): Likewise.
	* libgnat/system-solaris-sparc.ads (Max_Mantissa): Likewise.
	* libgnat/system-solaris-x86.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-arm-rtp-smp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-arm-rtp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-arm.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-e500-kernel.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-e500-rtp-smp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-e500-rtp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-e500-vthread.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-ppc-kernel.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-ppc-ravenscar.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-ppc-rtp-smp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-ppc-rtp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-ppc-vthread.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-ppc.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-x86-kernel.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-x86-rtp-smp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-x86-rtp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-x86-vthread.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks-x86.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-aarch64-rtp-smp.ads (Max_Mantissa):
	Likewise.
	* libgnat/system-vxworks7-aarch64.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-arm-rtp-smp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-arm.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-e500-kernel.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-e500-rtp-smp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-e500-rtp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-ppc-kernel.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-ppc-rtp-smp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-ppc-rtp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-ppc64-kernel.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-ppc64-rtp-smp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-x86-kernel.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-x86-rtp-smp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-x86-rtp.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-x86_64-kernel.ads (Max_Mantissa): Likewise.
	* libgnat/system-vxworks7-x86_64-rtp-smp.ads (Max_Mantissa): Likewise.

2020-11-26  Liaiss Merzougue  <merzougue@adacore.com>

	* libgnat/s-imgrea.ads (Image_Ordinary_Fixed_Point): Add a
	remark concerning the irrelevant use of Inf and -0.0

2020-11-26  Arnaud Charlet  <charlet@adacore.com>

	* osint-c.adb (Set_Output_Object_File_Name): Add support for
	.c output file.

2020-11-26  Piotr Trojanek  <trojanek@adacore.com>

	* lib-writ.adb, sem_ch8.adb, sem_prag.adb: Use
	Is_Generic_Subprogram instead of low-level membership tests.

2020-11-26  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch6.adb (Analyze_Call_And_Resolve): Reformatted a comment.
	* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	Fixed a typo.

2020-11-26  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Resolve_Membership_Op): Replace pragma Warnings
	with pragma Assert.

2020-11-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Call_And_Resolve): Add information to the
	error message on an illegal procedure call, when the illegality
	is due to the presence of a component of the full view of the
	target object, as well as a procedure with the same name (See RM
	4.1.3 (9.2/3)).

2020-11-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	when the restriction is a configuration pragma and specifies
	No_Tasking, a global flag is set to reject task declarations,
	and to prevent the construction of Master entities. The flag
	must not be set if the pragma is a Restriction_Warning, in which
	case task declarationns are allowed.

2020-11-26  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/a-stzhas.adb (Wide_Wide_Hash): Instantiate inside a
	wrapper function.
	* libgnat/a-stzhas.ads (Wide_Wide_Hash): Likewise; remove wrong
	comment, because this is indeed a RM unit, as described in Ada
	RM A.4.8 (1/3).

2020-11-26  Piotr Trojanek  <trojanek@adacore.com>

	* sem_eval.adb (Eval_Slice): Refactor repeated calls to Prefix
	with a local constant (named just like in Resolve_Slice).

2020-11-26  Piotr Trojanek  <trojanek@adacore.com>

	* sem_eval.adb (Eval_Slice): Emit warning not just for
	constants, but for any objects.

2020-11-26  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch4.adb (Indicate_Name_And_Type): Fix whitespace in
	comment.
	* sem_res.adb (Resolve_Call): Remove redundant parens.
	* sem_util.adb (Set_Entity_With_Checks): Remove extra call to
	Set_Entity.

2020-11-26  Bob Duff  <duff@adacore.com>

	* exp_ch4.adb (Expand_Concatenate): Call Set_No_Initialization
	on the N_Allocator node that is supposed to allocate on the
	secondary stack.

2020-11-26  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch13.adb, exp_ch9.adb, sem_ch8.adb, sem_util.adb: Replace
	a combination of Is_Protected_Type and Is_Task_Type by
	Is_Concurrent_Type.

2020-11-26  Arnaud Charlet  <charlet@adacore.com>

	* libgnarl/s-tassta.adb (Task_Wrapper): Fix computation of
	Pattern_Size.

2020-11-26  Bob Duff  <duff@adacore.com>

	* freeze.adb (Freeze_Array_Type): Remove propagation of
	Has_Own_Invariants to the first subtype. This is a no-op,
	because the current (incorrect) version of Has_Own_Invariants
	calls Base_Type.
	* sem_prag.adb, sem_util.adb: Pass the base type to
	Set_Has_Own_Invariants.

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

	* einfo.ads (Aft_Value): Adjust documentation.
	(Scale_Value): Likewise.

2020-11-26  Justin Squirek  <squirek@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Use the unexpanded
	operand when generating accessibility checks.

2020-11-26  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/a-cbhase.adb (Read): Remove extra whitespace.
	* libgnat/a-cbmutr.ads (Read): Likewise.
	* libgnat/a-cborse.adb (Read): Likewise.

2020-11-26  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch7.adb, exp_util.adb, freeze.adb: Rewrite with
	Is_Access_Object_Type.

2020-11-26  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Check_Valid_Library_Unit_Pragma): Raise
	exception.
	(Analyze_Pragma): Remove detection of rewritten pragmas.

2020-11-26  Joffrey Huguet  <huguet@adacore.com>

	* libgnat/a-strmap.ads: Add preconditions and postconditions to
	all subprograms.

2020-11-26  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Resolve_Equality_Op): Warn when -gnatwq is used
	(the default) and the problematic case is encountered.

2020-11-26  Yannick Moy  <moy@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Issue a continuation message
	to give proper recommendation here.

2020-11-26  Gary Dismukes  <dismukes@adacore.com>

	* exp_util.adb (Expand_Subtype_From_Expr): A typo correction,
	plus other minor reformatting.

2020-11-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Instantiate_Formal_Package): If previous matched
	entity is overloadable, advance in the list of actuals of the
	actual package, to prevent an erroneous match of two adjacent
	overloadable homonyms with the same entity.

2020-11-26  Justin Squirek  <squirek@adacore.com>

	* sem_ch6.adb (First_Selector): Utility routine to return the
	first selector or choice in an association.
	(Check_Return_Construct_Accessibility): Modify loop to handle
	named associations when iterating through discriminants.

2020-11-26  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.adb: Fix casing from "Instantiation" to
	"instantiation".

2020-11-25  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Is_Uninitialized_Aggregate): Move...
	* exp_util.adb (Is_Uninitialized_Aggregate): ... here.
	(Expand_Subtype_From_Expr): If the expression is an
	uninitialized aggregate, capture subtype for declared object and
	remove expression to suppress further superfluous expansion.

2020-11-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_eval.adb (Subtypes_Statically_Compatible): Scalar types
	with compatible static bounds are statically compatible if
	predicates are compatible, even if they are not static subtypes.
	Same for private types without discriminants.

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

	* exp_ch11.adb (Expand_N_Raise_Statement): Use Is_Entity_Name
	consistently in tests on the name of the statement.
	* exp_prag.adb (Expand_Pragma_Check): In the local propagation
	case, wrap the raise statement in a block statement.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch8.adb (Expand_N_Exception_Renaming_Declaration): Move
	"Nam" constant after the body of a nested subprogram; change "T"
	from variable to constant.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* make.adb (Scan_Make_Arg): Merge ELSIF branches for -u and -U.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_attributes.rst
	(Has_Tagged_Values): Document based on the existing description
	of Has_Access_Type and the comment for Has_Tagged_Component,
	which is where frontend evaluates this attribute.
	* gnat_rm.texi: Regenerate.
	* sem_attr.adb (Analyze_Attribute): Merge processing of
	Has_Access_Type and Has_Tagged_Component attributes.
	* sem_util.adb (Has_Access_Type): Fix casing in comment.
	* sem_util.ads (Has_Tagged_Component): Remove wrong (or
	outdated) comment about the use of this routine to implement the
	equality operator.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_Size_Attribute): Remove whitespace;
	simplify with a membership test, which are now allowed in the
	frontend code.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Analyze_One_Aspect): Fix inconsistent calls to
	Make_Aitem_Pragma.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Check_Expr_Constants): Simplify with
	Is_Named_Number.
	* sem_prag.adb (Process_Convention): Likewise.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Analyze_One_Aspect): Detect aspect identifiers
	with membership tests.
	(Check_Aspect_At_End_Of_Declarations): Likewise.
	(Freeze_Entity_Checks): Likewise; a local constant is no longer
	needed.
	(Is_Operational_Item): Similar simplification for attribute
	identifiers.
	(Is_Type_Related_Rep_Item): Likewise.
	(Resolve_Iterable_Operation): Detect names with a membership
	test.
	(Validate_Independence): Replace repeated Ekind with a
	membership test.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Analyze_One_Aspect): Replace duplicate of
	Effective_Reads.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.adb: Use composite wrappers (e.g.
	Is_Subprogram_Or_Entry) and membership tests where it appears to
	improve clarity.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.adb (Is_Standard_Character_Type,
	Is_Standard_String_Type): Simplify.
	(Last_Formal): Use procedural variant of Next_Formal.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.adb: Replace "E" with Entity_Id in local object
	declarations.

2020-11-25  Steve Baird  <baird@adacore.com>

	* exp_ch2.adb (Expand_Entity_Reference): A new local predicate
	Is_Object_Renaming_Name indicates whether a given expression
	occurs (after looking through qualified expressions and type
	conversions) as the name of an object renaming declaration. If
	Current_Value is available but this new predicate is True, then
	ignore the availability of Current_Value.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.adb (Instantiate_Type): Remove extra whitespace.
	(Validate_Access_Type_Instance): Remove dead (and duplicated)
	code.

2020-11-25  Gary Dismukes  <dismukes@adacore.com>

	* exp_util.adb (Possible_Side_Effect_In_SPARK): Replace hyphen
	with a space in "side-effect" (two instances).

2020-11-25  Justin Squirek  <squirek@adacore.com>

	* doc/gnat_rm/intrinsic_subprograms.rst (Shifts and Rotates):
	Document behavior on negative numbers
	* gnat_rm.texi: Regenerate.
	* sem_eval.adb (Fold_Shift): Set modulus to be based on the RM
	size for non-modular integer types.

2020-11-25  Olivier Hainque  <hainque@adacore.com>

	* adaint.c (__gnat_copy_attribs): Reinstate code based on utime
	for timestamp processing on VxWorks 6.

2020-11-25  Yannick Moy  <moy@adacore.com>

	* exp_util.adb (Remove_Side_Effects): Only remove side-effects
	in GNATprove mode when this is useful.
	* sem_res.adb (Set_Slice_Subtype): Make sure in GNATprove mode
	to define the Itype when needed, so that run-time errors can be
	analyzed.
	* sem_util.adb (Enclosing_Declaration): Correctly take into
	account renaming declarations.

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

	* libgnat/s-rannum.adb (Random_Discrete): Specifically deal with
	the case where the size of the base type is larger than 64 bits.

2020-11-25  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb (Access_Type_Declaration): Set Etype before
	checking for volatility compatibility.

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

	* libgnat/g-rannum.ads (Random): New functions returning 128-bit.
	* libgnat/g-rannum.adb (Random): Implement them and alphabetize.
	(To_Signed): New unchecked conversion function for 128-bit.

2020-11-25  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch7.adb (Build_Finalization_Master, Build_Finalizer,
	Build_Object_Declarations, Make_Deep_Array_Body,
	Wrap_Transient_Expression): Call Set_Debug_Info_Needed on
	temporaries when Debug_Generated_Code is True.

2020-11-25  Liaiss Merzougue  <merzougue@adacore.com>

	* libgnat/s-imagei.adb
	(Set_Digits): Rewrite the procedure to remove recursion.
	(Image_Integer, Set_Image_Integer): Update assertions and remove
	redundant ones.
	* libgnat/s-imageu.adb
	(Set_Image_Unsigned): Rewrite the procedure to remove recursion.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.adb (Attribute_Constrained_Static_Value): Fix body
	box.
	* sem_attr.adb (Eval_Attribute): Replace repeated calls to
	Attribute_Name with a captured value of the Attribute_Id; also,
	remove extra parens around Is_Generic_Type.

2020-11-25  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Emit error on wrong argument
	nkind.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb, sem_prag.adb: Use Is_Named_Number.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb, exp_util.adb: Fix style and typos in comments.

2020-11-25  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): A variable that
	is only incremented in the code has now type Nat; conversion is
	now unnecessary.

2020-11-24  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Global_Item): Call SPARK_Msg_NE with the
	entity, not with its identifier.

2020-11-24  Arnaud Charlet  <charlet@adacore.com>

	* opt.ads (Generate_Asm): New flag.
	* osint-c.adb (Set_Output_Object_File_Name): Accept any
	extension when generating assembly.
	* adabkend.adb (Scan_Compiler_Args): Recognize -S.

2020-11-24  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb, exp_ch4.adb, exp_intr.adb, sem_ch8.adb,
	sem_res.adb, sem_type.adb, sem_util.adb: Reuse Is_Packed_Array.

2020-11-24  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb (Apply_Access_Check): Remove unbalanced paren.
	* exp_attr.adb (Expand_N_Attribute_Reference): Fix typo in
	comment.

2020-11-24  Justin Squirek  <squirek@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Mark relevant pragmas as ghost
	when they are within a ghost region.

2020-11-24  Piotr Trojanek  <trojanek@adacore.com>

	* contracts.adb, freeze.adb, sem_ch12.adb, sem_prag.adb: Reuse
	In_Same_List.

2020-11-24  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Is_Loop_Pragma): Avoid repeated calls to
	Original_Node; remove unnecessary IF statement.

2020-11-24  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Rewrite
	with a CASE statement.

2020-11-24  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Replace calls to
	Sloc with a local constant Loc; remove call to
	Analyze_And_Resolve and return, which is exactly what happens
	anyway (and other branches in the Constrained declare block
	appear to rely on analysis, resolution and returning happening
	in all cases).
	* sem_util.adb: Remove useless parens.

2020-11-24  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Is_Object_Reference): Delta and extension
	aggregates are objects.

2020-11-24  Ghjuvan Lacambre  <lacambre@adacore.com>

	* libgnat/s-rident.ads (System.Rident): Register new restriction
	IDs.
	* par-ch13.adb (Get_Aspect_Specifications): Add restriction check.
	* par-prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	Register No_Unrecognized_Aspects restriction.
	* sem_prag.adb (Analyze_Pragma): Add restriction check.
	* snames.ads-tmpl: Create restriction names.

2020-11-24  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Declared_Within): Return True for objects
	declared within the attribute Loop_Entry prefix itself.

2020-11-24  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb (Process_Discriminants): Correctly set right
	context for analyzing default value of discriminant.

2020-11-24  Arnaud Charlet  <charlet@adacore.com>

	* sem_type.adb (Add_One_Interp.Is_Universal_Operation): Account
	for universal_access = operator.
	(Disambiguate): Take into account preference on universal_access
	= operator when relevant.
	(Disambiguate.Is_User_Defined_Anonymous_Access_Equality): New.

2020-11-24  Arnaud Charlet  <charlet@adacore.com>

	* exp_util.adb (Is_Finalizable_Transient): Take into account return
	statements containing N_Expression_With_Actions. Also clean up a
	condition to make it more readable.
	* exp_ch6.adb: Fix typo.

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

	* libgnat/a-wtdeio.adb (TFT): Delete and adjust throughout.
	* libgnat/a-wtenau.adb (TFT): Likewise.
	* libgnat/a-wtfiio.adb (TFT): Likewise.
	* libgnat/a-wtflio.adb (TFT): Likewise.
	* libgnat/a-wtinio.adb (TFT): Likewise.
	* libgnat/a-wtinio__128.adb (TFT): Likewise.
	* libgnat/a-wtmoio.adb (TFT): Likewise.
	* libgnat/a-wtmoio__128.adb (TFT): Likewise.
	* libgnat/a-ztdeio.adb (TFT): Likewise.
	* libgnat/a-ztenau.adb (TFT): Likewise.
	* libgnat/a-ztfiio.adb (TFT): Likewise.
	* libgnat/a-ztflio.adb (TFT): Likewise.
	* libgnat/a-ztinio.adb (TFT): Likewise.
	* libgnat/a-ztinio__128.adb (TFT): Likewise.
	* libgnat/a-ztmoio.adb (TFT): Likewise.
	* libgnat/a-ztmoio__128.adb (TFT): Likewise.

2020-11-24  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Validate_Literal_Aspect): Add support for named
	numbers and in particular overload of the Real_Literal function.
	* sem_res.adb (Resolve): Add support for named numbers in
	Real_Literal and Integer_Literal resolution.
	* einfo.adb, einfo.ads (Related_Expression,
	Set_Related_Expression): Allow E_Function.
	* uintp.ads (UI_Image_Max): Bump size of buffer to avoid loosing
	precision.
	* sem_eval.adb: Fix typo in comment.
	* libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads (From_String):
	Return a Valid_Big_Integer.
	* libgnat/a-nbnbre.adb, libgnat/a-nbnbre.ads (From_String): New
	variant taking two strings. Return a Valid_Big_Real.

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

	* sem_ch12.adb (Analyze_Associations) <Explicit_Freeze_Check>: Test
	that the instance is in a statement sequence instead of local scope.
	(Freeze_Subprogram_Body): Use the special delayed placement with
	regard to the parent instance only if its Sloc is strictly greater.
	(Install_Body): Likewise.

2020-11-24  Steve Baird  <baird@adacore.com>

	* sem_ch13.adb (Validate_Literal_Aspect): Call to Base_Type
	needed in order to correctly check result type of String_Literal
	function when the first named subtype differs from the base
	type (e.g.:
	type T is range 1 .. 10 with String_Literal => ... ;
	).

2020-11-24  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Global_Item): Handle specially the
	current instance of a PO.
	* sem_util.ads (Is_Effectively_Volatile,
	Is_Effectively_Volatile_For_Reading): Add parameter
	Ignore_Protected.
	* sem_util.adb (Is_Effectively_Volatile,
	Is_Effectively_Volatile_For_Reading): Add parameter
	Ignore_Protected to compute the query results ignoring protected
	objects/types.
	(Is_Effectively_Volatile_Object,
	Is_Effectively_Volatile_Object_For_Reading): Adapt to new
	signature.

2020-11-24  Ghjuvan Lacambre  <lacambre@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Update documentation on -gnatyk.
	* gnat_ugn.texi: Regenerate.

2020-11-24  Yannick Moy  <moy@adacore.com>

	* sem_ch10.adb (Analyze_Compilation_Unit): Move aspects from
	body to the newly created spec.

2020-11-24  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch6.adb (Add_Cond_Expression_Extra_Actual): Simplify
	handling of function calls and remove bug in handling of
	transient objects.  Minor reformatting along the way.

2020-11-24  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-nbnbin.adb (From_String): Implement fully.

2020-11-24  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Delta_Array_Aggregate): If the choice is
	a subtype_indication then call
	Resolve_Discrete_Subtype_Indication; both for choices
	immediately inside array delta aggregates and inside
	iterated_component_association within array delta aggregates.

2020-11-24  Piotr Trojanek  <trojanek@adacore.com>

	* lib-load.adb, lib-writ.adb, lib.adb, par-load.adb,
	rtsfind.adb, sem_ch10.adb: Use Present where possible.

2020-11-24  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Depends_Global): Reject Global and
	Depends on null procedure.

2020-11-24  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-nbnbre.adb (From_String): Handle properly '_'
	characters.

2020-11-24  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_Array_Aggregate,
	Expand_SPARK_N_Aggregate): Remove, no longer needed.
	* sem_aggr.adb (Resolve_Iterated_Component_Association): Only
	remove references in the analyzed expression when generating
	code and the expression needs to be analyzed anew after being
	rewritten into a loop.

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

	* doc/gnat_rm/implementation_defined_characteristics.rst: Complete
	entry of 3.5.9(10).
	* gnat_rm.texi: Regenerate.

2020-11-20  Maciej W. Rozycki  <macro@linux-mips.org>

	* adaint.c (__gnat_number_of_cpus): Check for the presence of
	_SC_NPROCESSORS_ONLN rather than a list of OS-specific macros
	to decide whether to use `sysconf'.

2020-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR other/97911
	* gcc-interface/Make-lang.in (ada.serial): Change from goal to a
	variable.
	(.PHONY): Drop ada.serial and ada.prev.
	(gnat1$(exeext)): Depend on $(ada.serial) rather than ada.serial.

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

	PR ada/97805
	* adaint.c: Include climits in C++ and limits.h otherwise.

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

	* exp_dbug.adb (Is_Handled_Scale_Factor): Delete.
	(Get_Encoded_Name): Do not call it.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <Fixed_Point_Type>:
	Tidy up and always use a meaningful description for arbitrary
	scale factors.
	* gcc-interface/misc.c (gnat_get_fixed_point_type_info): Remove
	obsolete block and adjust the description of the scale factor.

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

	* gcc-interface/Make-lang.in (ada.serial): New goal.
	(.PHONY): Add ada.serial ada.prev.
	(gnat1$(exeext)): Depend on ada.prev.  Call LINK_PROGRESS.

2020-11-18  Matthias Klose  <doko@ubuntu.com>

	PR ada/97859
	* Makefile.rtl (powerpc% linux%): Also match powerpc64le cpu.

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

	* gcc-interface/gigi.h: Remove ^L characters throughout.
	* gcc-interface/decl.c: Likewise.
	* gcc-interface/utils.c: Likewise.
	* gcc-interface/utils2.c: Likewise.
	* gcc-interface/trans.c (gnat_to_gnu) <N_Allocator>: Do not explicitly
	go to the base type for the Has_Constrained_Partial_View flag.

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/decl.c (gnat_to_gnu_entity) <E_Constant>: In case
	the constant is not being defined, get the expression in type
	annotation mode only if its type is elementary.

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-11-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Makefile.in: Force target_cpu to powerpc if the
	nominal target is powerpc64-suse-linux.

2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>

	* gcc-interface/misc.c (gnat_printable_name): Change
	DECL_IS_BUILTIN -> DECL_IS_UNDECLARED_BUILTIN.

2020-10-28  Alexandre Oliva  <oliva@adacore.com>

	PR ada/97504
	* Makefile.rtl (LIBGNAT_TARGET_PAIRS> <riscv*-*-*>: Use wraplf
	version of Aux_Long_Long_Float.

2020-10-27  Doug Rupp  <rupp@adacore.com>

	* Makefile.rtl: Add vx7r2cert spec file to ARM, PowerPC and x86
	targets.
	* vxworks7-cert-rtp-link.spec: New spec file.

2020-10-27  Arnaud Charlet  <charlet@adacore.com>

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-spogwa object.
	* libgnat/g-spogwa.adb: Fix style errors.

2020-10-27  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_Array_Aggregate): Dedicated
	routine for array aggregates; mostly reuses existing code, but
	calls itself recursively for multi-dimensional array aggregates.
	(Expand_SPARK_N_Aggregate): Call Expand_SPARK_Array_Aggregate to
	do the actual expansion, starting from the first index of the
	array type.

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

	* sem_aggr.adb (Resolve_Iterated_Component_Association): new
	internal subprogram Remove_References, to reset semantic
	information on each reference to the index variable of the
	association, so that Collect_Aggregate_Bounds can work properly
	on multidimensional arrays with nested associations, and
	subsequent expansion into loops can verify that dimensions of
	each subaggregate are compatible.

2020-10-27  Ghjuvan Lacambre  <lacambre@adacore.com>

	* exp_prag.adb (Append_Copies): Handle N_Parameter_Associations.

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

	* ada_get_targ.adb (Digits_From_Size): Delete.
	(Width_From_Size): Likewise.
	* get_targ.adb (Digits_From_Size): Likewise.
	(Width_From_Size): Likewise.
	* get_targ.ads (Digits_From_Size): Likewise.
	(Width_From_Size): Likewise.
	* ttypes.ads: Remove with clause for Get_Targ.
	(Standard_Short_Short_Integer_Width): Delete.
	(Standard_Short_Integer_Width): Likewise.
	(Standard_Integer_Width): Likewise.
	(Standard_Long_Integer_Width): Likewise.
	(Standard_Long_Long_Integer_Width): Likewise.
	(Standard_Long_Long_Long_Integer_Width): Likewise.
	(Standard_Short_Float_Digits): Likewise.
	(Standard_Float_Digits): Likewise.
	(Standard_Long_Float_Digits): Likewise.
	(Standard_Long_Long_Float_Digits): Likewise.
	* gnat1drv.adb (Adjust_Global_Switches): Adjust.

2020-10-27  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch6.adb, freeze.adb, gnat1drv.adb, opt.ads, sem_ch6.adb
	(Transform_Function_Array): New flag, split from Modify_Tree_For_C.
	* exp_unst.adb: Minor reformatting.

2020-10-27  Dmitriy Anisimkov  <anisimko@adacore.com>

	* libgnat/g-socpol.adb (Wait): Do not exit from loop on EINTR
	error and timeout is over.

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

	* exp_aggr.adb (Build_Array_Aggr_Code): If the aggregate
	includes an Others_Choice in an association that is an
	Iterated_Component_Association, generate a proper loop for it.

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

	* libgnat/a-tifiio.adb: Add missing sign in documentation.
	* libgnat/s-imgrea.ads: Minor fixes in commentary.

2020-10-26  Pat Rogers  <rogers@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst: Include
	"Jorvik" in pragma Profile description.
	* gnat_rm.texi: Regenerate.

2020-10-26  Bob Duff  <duff@adacore.com>

	* sem_attr.adb (Check_Image_Type): Remove "|", so the compiler
	will not crash.
	* errout.ads: Improve comment. This has nothing to do with
	-gnatQ.

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

	* libgnat/a-tifiio.adb: Minor editions to documentation.

2020-10-26  Piotr Trojanek  <trojanek@adacore.com>

	* contracts.adb (Causes_Contract_Freezing): Extend condition to
	match the one in Analyze_Subprogram_Body_Helper. This routine is
	used both as an assertion at the very start of
	Freeze_Previous_Contracts and to detect previous declaration for
	which Freeze_Previous_Contracts has been executed.

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

	* libgnat/a-tifiio.adb: Move around documentaton paragraph.

2020-10-26  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Establish_Actual_Mapping_For_Inlined_Call): Add
	guard for a call to Set_Last_Assignment with the same condition
	as the assertion in that routine and explain why this guard
	fails in GNATprove mode.

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

	* doc/gnat_rm/implementation_defined_characteristics.rst: Adjust
	the entries of 3.5.9(8) and 3.5.9(10).
	* gnat_rm.texi: Regenerate.

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

	* libgnat/a-tifiio.adb: Change the range of supported Small
	values.
	(E0, E1, E2): Adjust factors.
	(Exact): Return false if the Small does not fit in 64 bits.

2020-10-26  Dmitriy Anisimkov  <anisimko@adacore.com>

	* libgnat/g-socket.adb (Wait_On_Socket): Boolean parameter
	For_Read changed to Event parameter of type
	GNAT.Sockets.Poll.Wait_Event_Set.  Implementation is simplified
	and based on call to GNAT.Sockets.Poll.Wait now.

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

	* libgnat/a-tifiio.adb: Minor editions to documentation.

2020-10-26  Yannick Moy  <moy@adacore.com>

	* sem_ch12.adb (Restore_Private_Views): Do not lose the
	information provided by Is_Generic_Actual_Type in GNATprove
	mode.

2020-10-26  Arnaud Charlet  <charlet@adacore.com>

	* sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning
	on formal parameters of all dispatching operations.

2020-10-26  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Delta_Array_Aggregate): Fix typos in
	error message.

2020-10-26  Olivier Hainque  <hainque@adacore.com>

	* libgnat/s-dwalin.adb (Symbolic_Traceback): Always emit the hex
	address at the beginning of an entry if suppression is not
	requested. Consistently output a "???" for the subprogram name
	when it is unknown.

2020-10-26  Doug Rupp  <rupp@adacore.com>

	* s-oscons-tmplt.c (_nfds_t): Use sizeof (unsigned long int).

2020-10-26  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch4.adb (P_Iterated_Component_Association): Move code for
	iterated_element_association to
	Build_Iterated_Element_Association.

2020-10-26  Yannick Moy  <moy@adacore.com>

	* sem_ch12.adb (Needs_Body_Instantiated): In GNATprove mode, do
	not instantiate bodies outside of the main unit.

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

	* sem_aggr.adb (Resolve_Delta_Array_Aggregate): For an
	association that is an iterated component association, attach
	the copy of the expression to the tree prior to analysis, in
	order to preserve its context. This is needed when verifying
	static semantic rules that depend on context, for example that a
	use of 'Old appears only within a postcondition.

2020-10-26  Bob Duff  <duff@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Document that
	--no-comments-fill is now the default.

2020-10-26  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb (Resolve_Extension_Aggregate): When testing for
	an aggregate that is illegal due to having an ancestor type that
	has unknown discriminants, add an "or else" condition testing
	whether the aggregate type has unknown discriminants and that
	Partial_View_Has_Unknown_Discr is also set on the ancestor type.
	Extend the comment, including adding ??? about a possible
	simpler test.

2020-10-26  Bob Duff  <duff@adacore.com>

	* libgnat/a-cihama.adb, libgnat/a-cohama.adb,
	libgnat/a-cohase.adb (Delete): Set Position.Position, and
	assert.

2020-10-26  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch8.adb (Find_Direct_Name.Undefined): Handle known unit
	names with 3 selectors.

2020-10-26  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_Delta_Or_Update): Add missing call
	to Enter_Name, just like it is called for
	iterated_component_association in Expand_SPARK_N_Aggregate.

2020-10-26  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_Delta_Or_Update): Reuse local
	constant Expr and the Choice_List routine.
	(Expand_SPARK_N_Aggregate): Reuse local constant Expr.

2020-10-26  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch4.adb (P_Iterated_Component_Association): Fix typos in
	comments.

2020-10-26  Arnaud Charlet  <charlet@adacore.com>

	* par-ch6.adb (P_Formal_Part): Ada 2020 supports scanning
	aspects on formal parameters.
	* doc/gnat_rm/implementation_defined_aspects.rst (Aspect
	Unreferenced): Update documentation.
	* gnat_rm.texi: Regenerate.

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

	* freeze.adb (Freeze_Type_Refs): When an entity in an expression
	function is a type, freeze the entity and not just its type,
	which would be incomplete when the type is derived and/or
	tagged.

2020-10-26  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_Update_Attribute): Handle
	subtype_indication just like in Expand_Delta_Array_Aggregate.

2020-10-25  Iain Sandoe  <iain@sandoe.co.uk>

	* Makefile.rtl: Add GNATRTL_128BIT_PAIRS/OBJS for 64bit
	PowerPC Darwin cases.

2020-10-23  Iain Sandoe  <iain@sandoe.co.uk>

	* adaint.c: On Darwin platforms, define st_atim to
	st_atimespec. Likwise st_mtim to st_mtimespec.

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

	* Makefile.rtl (EXTRA_GNATRTL_NONTASKING_OBJS) [IA64/Linux]: Fix typo.

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

	* Makefile.rtl (EXTRA_GNATRTL_NONTASKING_OBJS) [IA64/Linux]: Fix typo.

2020-10-23  Alexandre Oliva  <oliva@adacore.com>

	PR ada/97504
	* Makefile.rtl (LIBGNAT_TARGET_PAIRS): Select wraplf version
	of Aux_Long_Long_Float for s390 and remaining sparc and
	powerpc targets.

2020-10-23  Dmitriy Anisimkov  <anisimko@adacore.com>

	* Makefile.rtl (GNATRTL_SOCKETS_OBJS): New object
	g-socpol$(objext) New source files noted: g-socpol.adb,
	g-socpol.ads, g-socpol__dummy.adb, g-socpol__dummy.ads,
	g-sopowa.adb, g-sopowa__posix.adb, g-sopowa__mingw.adb,
	g-spogwa.adb, g-spogwa.ads.
	* impunit.adb (Non_Imp_File_Names_95): New base filename
	g-socpol in "GNAT Library Units" section for GNAT.Sockets.Poll
	unit.
	* libgnat/g-socket.ads, libgnat/g-socket.adb:
	(Raise_Socket_Error): Moved from body to private part of
	specification to use in GNAT.Sockets.Poll.
	* libgnat/g-socpol.ads, libgnat/g-socpol.adb: Main unit of the
	implementation.
	* libgnat/g-socpol__dummy.ads, libgnat/g-socpol__dummy.adb:
	Empty unit for the systems without sockets support.
	* libgnat/g-spogwa.ads, libgnat/g-spogwa.adb: Generic unit
	implementing sockets poll on top of select system call.
	* libgnat/g-sopowa.adb (Wait): Separate implementation for
	operation systems with poll system call support.
	* libgnat/g-sopowa__posix.adb (Wait): Separate implementation
	for POSIX select system call.
	* libgnat/g-sopowa__mingw.adb (Wait): Separate implementation
	for Windows select system call.
	* gsocket.h (_WIN32_WINNT): Increase to 0x0600 for winsock2.h to
	allow WSAPoll related definitions.
	* s-oscons-tmplt.c: Fix comment next to #endif for
	#if defined (__linux__) || defined (__ANDROID__) line.  Include
	<poll.h> for all except VxWorks and Windows.
	(SIZEOF_nfds_t): New definition.
	(SIZEOF_fd_type): New definition.
	(SIZEOF_pollfd_events): New definition.
	(POLLIN, POLLPRI, POLLOUT, POLLERR, POLLHUP, POLLNVAL): New
	definitions for VxWorks to be able to emulate poll on top of
	select in it.  Define POLLPRI as zero on Windows as it is not
	supported there.
	(Poll_Linkname): New definition, because the poll system call
	has different name in Windows and POSIX.

2020-10-23  Justin Squirek  <squirek@adacore.com>

	* checks.adb (Apply_Accessibility_Check): Skip checks against
	the extra accessibility of a function result when in Ada 2005
	mode or earlier.
	* exp_ch3.adb (Build_Initialization_Call): Modify accessibility
	level calls to use Accessibility_Level.
	(Expand_N_Object_Declaration): Modify accessibility level calls
	to use Accessibility_Level.
	* exp_ch4.adb (Expand_Allocator_Expression): Add static check
	for anonymous access discriminants. Remove unneeded propagation
	of accessibility actual.
	(Expand_N_In): Modify accessibility level calls to use
	Accessibility_Level.
	(Expand_N_Type_Conversion): Modify accessibility level calls to
	use Accessibility_Level.
	* exp_ch5.adb (Expand_N_Assignment_Statement): Modify
	accessibility level calls to use Accessibility_Level.
	* exp_ch6.adb (Expand_Call_Helper): Rewrite accessibility
	calculation for the extra accessibility of result actual in
	function calls, and modify accessibility level calls to use
	Accessibility_Level.
	(Check_Against_Result_Level): Removed.
	* exp_ch9.adb (Expand_N_Requeue_Statement): Add dynamic
	accessibility check for requeues
	* sem_attr.adb (Resolve_Attribute): Modify accessibility level
	calls to use Accessibility_Level.
	* sem_ch13.adb (Associate_Storage_Pool): Modify accessibility
	level calls to use Accessibility_Level.
	* sem_ch4.adb (Analyze_Call): Add static check for explicitly
	aliased formals in function calls within return statements.
	* sem_ch6.adb (Check_Return_Construct_Accessibility): Rewrite
	routine to account for non-aggregate return objects.
	(Generate_Minimum_Accessibility): Created.
	(Analyze_Call): Modify accessibility level calls to use
	Accessibility_Level.
	(Analyze_Subprogram_Body_Helper): Add generation of minimum
	accessibility for the extra accessibility of the function
	result.
	* sem_ch9.adb (Analyze_Requeue): Modify accessibility level
	calls to use Accessibility_Level.
	* sem_res.adb: (Check_Aliased_Parameters): Modify accessibility
	level calls to use Accessibility_Level.
	(Valid_Conversion): Modify accessibility level calls to use
	Accessibility_Level.
	* sem_util.adb, sem_util.ads (Accessibility_Level_Helper):
	Renamed to Accessibility_Level, add detection for functions in
	prefix notation, and add cases where to return zero when
	specified. Modified to take new, more descriptive, parameters.
	(Accessibility_Level): Created.
	(Function_Call_Level): Removed.
	(Function_Call_Or_Allocator_Level): Created to centralize the
	calculation accessibility levels for function calls and
	allocators.
	(Static_Accessibility_Level): Removed.
	(Dynamic_Accessibility_Level): Removed.
	(Get_Dynamic_Accessibility): Renamed from Get_Accessibility.
	(In_Return_Value): Created to determine if a given expression
	contributes to the current function's return value.
	(Is_Master): Created.
	(Is_Explicitly_Aliased): Created

2020-10-23  Bob Duff  <duff@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Document
	--no-comments-fill.

2020-10-23  Piotr Trojanek  <trojanek@adacore.com>

	* contracts.adb (Analyze_Entry_Or_Subprogram_Contract,
	Analyze_Subprogram_Body_Stub_Contract): Fix missing references
	to Subprogram_Variant where similar references to Contract_Cases
	are present.
	* sem_prag.adb (Analyze_Contract_Case, Analyze_Variant): Check
	that aggregate parameter has no expressions.
	(Analyze_Pragma): Replace Contract_Cases with Subprogram_Variant
	in a copy-pasted comment.

2020-10-23  Philippe Gil  <gil@adacore.com>

	* libgnat/g-socket.ads: Fix comment typo.

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

	* doc/gnat_rm/implementation_defined_pragmas.rst (VFA): Remove uage
	restrictions in conjunction with Atomic and Aliased.
	* gnat_rm.texi: Regenerate.
	* aspects.ads (Aspect_Id): Add Aspect_Full_Access_Only.
	(Is_Representation_Aspect): Likewise.
	(Aspect_Names): Likewise.
	(Aspect_Delay): Likewise.
	* einfo.ads (Is_Atomic_Or_VFA): Rename into...
	(Is_Full_Access): ...this.
	(Is_Volatile_Full_Access): Document new usage for Full_Access_Only.
	* einfo.adb (Is_Atomic_Or_VFA): Rename into...
	(Is_Full_Access): ...this.
	* freeze.ads (Is_Atomic_VFA_Aggregate): Rename into...
	(Is_Full_Access_Aggregate): ...this.
	* freeze.adb (Is_Atomic_VFA_Aggregate): Rename into...
	(Is_Full_Access_Aggregate): ...this.  Adjust to above renaming.
	(Freeze_Array_Type): Likewise.
	(Freeze_Entity): Likewise.
	* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Likewise.
	(Expand_Record_Aggregate): Likewise.
	* exp_ch4.adb (Expand_N_Op_Eq): Likewise.
	* exp_ch5.adb (Expand_Assign_Array): Likewise.
	* exp_ch8.adb (Evaluation_Required): Likewise.
	* layout.adb (Layout_Type): Likewise.
	(Set_Composite_Alignment): Likewise.
	* sem_aux.ads (Has_Rep_Item): Delete.
	* sem_aux.adb (Has_Rep_Item): Likewise.
	* sem_attr.adb (Resolve_Attribute) <Attribute_Access>: Implement
	new legality rules in C.6(12).
	* sem_ch12.adb (Instantiate_Object): Likewise.
	* sem_res.adb (Resolve_Actuals): Likewise.
	* sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Deal with aspect
	Full_Access_Only.
	(Check_False_Aspect_For_Derived_Type): Likewise.
	(Make_Pragma_From_Boolean_Aspect): Test for the presence of Expr.
	Deal with aspect Full_Access_Only.
	(Analyze_Aspects_At_Freeze_Point): Likewise.
	(Analyze_One_Aspect): Do not set Delay_Required to true even for
	Always_Delay boolean aspects if they have no expression.  Force
	Delay_Required to true for aspect Full_Access_Only in all cases.
	Reject aspect Full_Access_Only if not in Ada 2020 mode.
	(Check_Aspect_At_End_Of_Declarations): Deal with empty expression.
	(Check_Aspect_At_Freeze_Point): Likewise.
	(Rep_Item_Entity): Delete.
	(Inherit_Aspects_At_Freeze_Point): Align handling for Bit_Order
	with that for Scalar_Storage_Order.
	* sem_prag.adb (Check_Atomic_VFA): Delete.
	(Check_VFA_Conflicts): Likewise.
	(Check_Full_Access_Only): New procedure.
	(Process_Atomic_Independent_Shared_Volatile): Call to implement
	the new legality checks in C.6(8/2) and mark the entity last.
	(Analyze_Pragma) <Pragma_Atomic_Components>: Remove obsolete check.
	* sem_util.ads (Is_Atomic_Or_VFA_Object): Rename into...
	(Is_Full_Access_Object): ...this.
	(Is_Subcomponent_Of_Atomic_Object): Rename into...
	(Is_Subcomponent_Of_Full_Access_Object): ...this.
	* sem_util.adb (Inherit_Rep_Item_Chain): Use Present_In_Rep_Item.
	(Is_Atomic_Or_VFA_Object): Rename into...
	(Is_Full_Access_Object): ...this.
	(Is_Subcomponent_Of_Atomic_Object): Rename into...
	(Is_Subcomponent_Of_Full_Access_Object): ...this and adjust.
	* snames.ads-tmpl (Name_Full_Access_Only): New name of aspect.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust for renaming.
	(promote_object_alignment): Likewise.
	(gnat_to_gnu_field): Likewise.  Rename local variable and use
	specific qualifier in error message for Volatile_Full_Access.
	* gcc-interface/trans.c (lvalue_required_p): Likewise.

2020-10-23  Arnaud Charlet  <charlet@adacore.com>

	* lib-writ.ads, lib-writ.adb (Write_ALI): No longer read
	existing ALI files in -gnatc mode.

2020-10-23  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/g-socthi__mingw.adb (C_Select): Fix logic in code and
	make it explicit that we are checking against null values before
	dereferencing them.

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

	* exp_imgv.adb (Expand_Image_Attribute): For an enumeration type
	subject to pragma Discard_Names, convert 'Pos to Long_Long_Integer
	before applying 'Img to the result.

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

	* freeze.adb (Freeze_Type_Refs): Add guard on freezing of the
	designated type of an access type appearing in the expression,
	when expression includes an explicit dereference whose prefix
	includes a function call.

2020-10-23  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_Delta_Or_Update): Handle
	subtype_indication; do not apply range checks for ranges; add
	comment saying that others_choices is not allowed.

2020-10-23  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_N_Aggregate,
	Expand_SPARK_Delta_Or_Update): Expand
	Iterated_Component_Association occurring within delta
	aggregates.
	(Expand_SPARK): Apply SPARK-specific expansion to ordinary
	aggregates.

2020-10-23  Johannes Kanig  <kanig@adacore.com>

	* exp_util.adb, exp_util.ads
	(Containing_Package_With_Ext_Axioms,
	Has_Annotate_Pragma_For_External_Axiomatizations): Removed.
	* sem_ch8.adb (Analyze_Subprogram_Renaming): Removed code
	related to external axiomatizations.
	* einfo.ads
	(Is_Generic_Actual_Subprogram): Removed comment about external
	axiomatization.

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

	* sem_aggr.adb (Resolve_Aggregate): Do not call
	Resolve_Container_Aggregate if compilation version is earlier
	than Ada_2020.

2020-10-23  Arnaud Charlet  <charlet@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst: Improve
	documentation of pragma Abort_Defer.
	* gnat_rm.texi: Regenerate.

2020-10-23  Ghjuvan Lacambre  <lacambre@adacore.com>

	* exp_prag.adb (Etype_Or_Dim3): New function.
	(Expand_Pragma_Cuda_Execute): Use Etype_Or_Dim3 for temporary
	decls.

2020-10-23  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-fileio.adb (Open): Fix setting of Tempfile.

2020-10-23  Ghjuvan Lacambre  <lacambre@adacore.com>

	* exp_prag.adb (Get_Launch_Kernel_Arg_Type): Renamed to
	Get_Nth_Arg_Type and made more generic.
	(Build_Dim3_Declaration): Now builds a CUDA.Internal.Dim3
	instead of a CUDA.Vector_Types.Dim3.
	(Build_Shared_Memory_Declaration): Now infers needed type from
	Launch_Kernel instead of using a hard-coded type.
	(Expand_Pragma_CUDA_Execute): Build additional temporaries to
	store Grids and Blocks.
	* rtsfind.ads: Move Launch_Kernel from public to internal
	package.

2020-10-23  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch4.adb (Complete_Object_Operation): Only mark entities
	referenced if we are compiling the extended main unit.
	* sem_attr.adb (Analyze_Attribute [Attribute_Tag]): Record a
	reference on the type and its scope.

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

	* freeze.adb (Is_Uninitialized_Aggregate): Recognize an array
	aggregate with box initialization, scalar components, and no
	component default values.
	(Freeze_Entity, Check_Address_Clause): Call it, and simplify
	freeze code for entity by removing useless assignment.

2020-10-23  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Check_Abstract_Overriding): Subprogram renamings
	cannot be overridden.
	(Derive_Subprogram): Enable setting attribute
	Requires_Overriding on functions with controlling access results
	of record extensions with a null extension part require
	overriding (AI95-00391/06).

2020-10-23  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Delta_Array_Aggregate): Push scope of
	the implicit loop before entering name of the index parameter,
	not after; enter name no matter if the identifier has been
	decorated before.

2020-10-23  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch4.adb (Analyze_Call): In the case where the call is not
	overloaded, check for a call to an abstract nondispatching
	operation and flag an error.

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

	* gnat1drv.adb (Adjust_Global_Switches): Rewrite again code enabling
	or disabling the support for 128-bit integer types.

2020-10-23  Arnaud Charlet  <charlet@adacore.com>

	* alloc.ads, aspects.adb, aspects.ads, atree.adb, atree.ads,
	casing.adb, casing.ads, csets.adb, csets.ads, debug.adb, debug.ads,
	einfo.adb, einfo.ads, elists.adb, elists.ads, fname.adb, fname.ads,
	gnatvsn.adb, gnatvsn.ads, hostparm.ads, indepsw-aix.adb,
	indepsw-darwin.adb, indepsw-gnu.adb, indepsw.adb, indepsw.ads,
	krunch.adb, krunch.ads, lib-list.adb, lib-sort.adb, lib.adb, lib.ads,
	namet-sp.adb, namet-sp.ads, namet.adb, namet.ads, nlists.adb,
	nlists.ads, opt.adb, opt.ads, output.adb, output.ads, rident.ads,
	scans.adb, scans.ads, scil_ll.adb, scil_ll.ads, sem_aux.ads,
	sem_aux.adb, sfn_scan.adb, sinfo.adb, sinfo.ads, sinput.adb,
	sinput.ads, snames.adb-tmpl, snames.ads-tmpl, stand.ads,
	stringt.adb, stringt.ads, table.adb, table.ads, types.adb,
	types.ads, uintp.adb, uintp.ads, uname.adb, uname.ads,
	urealp.adb, urealp.ads, vast.adb, vast.ads, widechar.adb,
	widechar.ads: Update header.

2020-10-23  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-nbnbin.adb (From_String): Take advantage of
	Long_Long_Long_Integer.
	* libgnat/s-genbig.ads, libgnat/s-genbig.adb (To_Bignum): New
	function taking a Long_Long_Long_Integer.

2020-10-23  Justin Squirek  <squirek@adacore.com>

	* sem_util.adb (Accessibility_Call_Helper): In the selected
	component case, test if a prefix is a function call and whether
	the subprogram call is not being used in its entirety and use
	the Innermost_Master_Scope_Depth in that case.
	(Innermost_Master_Scope_Depth): Test against the node_par
	instead of its identifier to avoid misattributing unnamed blocks
	as not being from source.
	(Function_Call_Level): Add calculation for whether a subprogram
	call is initializing an object in its entirety.
	(Subprogram_Call_Level): Renamed to Function_Call_Level.

2020-10-23  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Check_External_Properties): Rewrite to match the
	SPARK RM description.

2020-10-23  Piotr Trojanek  <trojanek@adacore.com>

	* contracts.adb (Check_Type_Or_Object_External_Properties):
	Cleanup.

2020-10-23  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_External_Property_In_Decl_Part): Set the
	output parameter Expr_Val to the (implicit) pragma argument even
	when returning early.

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

	* Makefile.rtl (GNATRTL_128BIT_PAIRS): Add i-cexten.ads.
	* debug.adb (d.H): Document new usage.
	* doc/gnat_rm/representation_clauses_and_pragmas.rst (Size Clauses):
	Document new limit on 64-bit platforms.
	(Component_Size Clauses): Likewise.
	(Pragma Pack for Arrays): Likewise.
	(Pragma Pack for Records): Likewise.
	(Record Representation Clauses): Likewise.
	* gnat_rm.texi: Regenerate.
	* gnat1drv.adb (Adjust_Global_Switches): Rewrite code enabling or
	disabling the support for 128-bit integer types.
	* switch-c.adb (Scan_Front_End_Switches): Do not deal with e128.
	* usage.adb (Write_Switch_Char): Do not print -gnate128 switch.
	* libgnat/i-cexten__128.ads: New file.

2020-10-22  Javier Miranda  <miranda@adacore.com>

	* einfo.ads (Has_Limited_View): New synthesized attribute.
	* einfo.adb (Has_Limited_View): New synthesized attribute.
	(Set_Limited_View): Complete assertion.
	* sem_ch10.ads (Is_Visible_Through_Renamings): Make this routine
	public to invoke it from Find_Expanded_Name and avoid reporting
	spurious errors on renamings of limited-with packages.
	(Load_Needed_Body): Moved to have this spec alphabetically
	ordered.
	* sem_ch10.adb (Is_Visible_Through_Renamings): Moved to library
	level.
	(Is_Limited_Withed_Unit): New subprogram.
	* sem_ch3.adb (Access_Type_Declaration): Adding protection to
	avoid reading attribute Entity() when not available.
	* sem_ch8.adb (Analyze_Package_Renaming): Report error on
	renamed package not visible through context clauses.
	(Find_Expanded_Name): Report error on renamed package not
	visible through context clauses; handle special case where the
	prefix is a renaming of a (now visible) shadow package.

2020-10-22  Ghjuvan Lacambre  <lacambre@adacore.com>

	* exp_prag.adb (Get_Launch_Kernel_Arg_Type): New function.
	(Build_Shared_Memory_Declaration): Use
	Get_Launch_Kernel_Arg_Type.
	(Build_Stream_Declaration): Use Get_Launch_Kernel_Arg_Type.
	* rtsfind.ads: Remove RO_IC_Unsigned_Long_Long.

2020-10-22  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-imenne.adb, libgnat/s-imgrea.adb: Add assertions.

2020-10-22  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-imgrea.adb (Set_Image_Real): Update annotations.

2020-10-22  Steve Baird  <baird@adacore.com>

	* aspects.ads: Introduce the subtype Nonoverridable_Aspect_Id,
	whose Static_Predicate reflects the list of nonoverridable
	aspects given in Ada RM 13.1.1(18.7).
	* sem_util.ads, sem_util.adb: Add two new visible subprograms,
	Check_Inherited_Nonoverridable_Aspects and Is_Confirming. The
	former is used to check the consistency of inherited
	nonoverridable aspects from multiple sources. The latter
	indicates whether two aspect specifications for a nonoverridable
	aspect are confirming. Because of compatibility concerns in
	compiling QGen, Is_Confirming always returns True if
	Relaxed_RM_Semantics (i.e., -gnatd.M) is specified.
	* sem_ch3.adb (Derived_Type_Declaration): Call new
	Check_Inherited_Nonoverridable_Aspects procedure if interface
	list is non-empty.
	* sem_ch9.adb (Check_Interfaces): Call new
	Check_Inherited_Nonoverridable_Aspects procedure if interface
	list is non-empty.
	* sem_ch13.adb (Analyze_Aspect_Specifications): When an explicit
	aspect specification overrides an inherited nonoverridable
	aspect, check that the explicit specification is confirming.

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

	* freeze.ads (Check_Compile_Time_Size): Adjust size limit.

2020-10-22  Richard Kenner  <kenner@adacore.com>

	* sprint.adb (pg, po, ps): Use {Push,Pop}_Output.
	* treepr.adb (pl, pn): Likewise.

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

	* doc/gnat_rm/implementation_advice.rst: Minor fix.
	* gnat_rm.texi: Regenerate.

2020-10-22  Steve Baird  <baird@adacore.com>

	* sem_util.adb (Is_Container_Aggregate): A new local predicates
	which indicates whether a given expression is a container
	aggregate. The implementation of this function is incomplete; in
	the unusual case of a record aggregate (i.e., not a container
	aggregate) of a type whose Aggregate aspect is specified, the
	function will incorrectly return True.
	(Immediate_Context_Implies_Is_Potentially_Unevaluated): Improve
	handling of aggregate components.
	(Is_Repeatedly_Evaluated): Test for container aggregate
	components along with existing test for array aggregate
	components.

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

	* exp_fixd.adb (Fpt_Value): Fold if-then-else with identical arms.

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

	* par-ch4.adb (P_Iterated_Component_Association): If the
	construct includes an iterator filter it corresponds to an
	Iterated_Element_Association, so build the proper node for it.
	* exp_aggr.adb (Expand_Container_Aggregate, Aggregate_Size): If
	the component is an Iterated_Element_Association, treat it as
	having a non-static size.

2020-10-22  Ghjuvan Lacambre  <lacambre@adacore.com>

	* scng.adb (Scan): Check if any letter of the token is
	uppercase.

2020-10-22  Justin Squirek  <squirek@adacore.com>

	* sem_util.adb (Accessibility_Level_Helper): Conversions to
	named access types get the level associated with the named
	access type.

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

	* einfo.ads (Has_Constrained_Partial_View): Add "base type" marker.

2020-10-22  Gary Dismukes  <dismukes@adacore.com>

	* einfo.adb (Has_Constrained_Partial_View): Apply Base_Type to Id.
	* sem_res.adb (Resolve_Actuals.Check_Aliased_Parameter): Remove
	"not Is_Generic_Type" test and call
	Object_Type_Has_Constrained_Partial_View instead of
	Has_Constrained_Partial_View. Improve related error message to
	say "does not statically match" instead of just "does not
	match".

2020-10-22  Steve Baird  <baird@adacore.com>

	* sem_util.ads, sem_util.adb: Declare and implement a new
	predicate, Derivation_Too_Early_To_Inherit.  This function
	indicates whether a given derived type fails to inherit a given
	streaming-related attribute from its parent type because the
	declaration of the derived type precedes the corresponding
	attribute_definition_clause of the parent.
	* exp_tss.adb (Find_Inherited_TSS): Call
	Derivation_Too_Early_To_Inherit instead of unconditionally
	assuming that a parent type's streaming attribute is available
	for inheritance by an immediate descendant type.
	* sem_attr.adb (Stream_Attribute_Available): Call
	Derivation_Too_Early_To_Inherit instead of unconditionally
	assuming that a parent type's streaming attribute is available
	for inheritance by an immediate descendant type.
	* exp_attr.adb (Default_Streaming_Unavailable): A new predicate;
	given a type, indicates whether predefined (as opposed to
	user-defined) streaming operations for the type should be
	implemented by raising Program_Error.
	(Expand_N_Attribute_Reference): For each of the 4
	streaming-related attributes (i.e., Read, Write, Input, Output),
	after determining that no user-defined implementation is
	available (including a Stream_Convert pragma), call
	Default_Streaming_Unavailable; if that call returns True, then
	implement the streaming operation as "raise Program_Error;".

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

	* checks.adb (Apply_Float_Conversion_Check): Saturate the bounds
	of the check to those of the base type of the expression.

2020-10-22  Justin Squirek  <squirek@adacore.com>

	* checks.adb (Apply_Accessibility_Check): Modify condition to
	avoid flawed optimization and use Get_Accessibility over
	Extra_Accessibility.
	* exp_attr.adb: Remove inclusion of Exp_Ch2.adb.
	* exp_ch2.adb, exp_ch2.ads (Param_Entity): Moved to sem_util.
	* exp_ch3.ads (Init_Proc_Level_Formal): New function.
	* exp_ch3.adb (Build_Init_Procedure): Add extra accessibility
	formal for init procs when the associated type is a limited
	record.
	(Build_Initialization_Call): Add condition to handle propagation
	of the new extra accessibility paramter actual needed for init
	procs.
	(Init_Proc_Level_Formal): Created to fetch a the extra
	accessibility parameter associated with init procs if one
	exists.
	* exp_ch4.adb (Build_Attribute_Reference): Modify static check
	to be dynamic.
	* exp_ch6.adb (Add_Cond_Expression_Extra_Actual): Move logic
	used to expand conditional expressions used as actuals for
	anonymous access formals.
	(Expand_Call_Helper): Remove extranious accessibility
	calculation logic.
	* exp_util.adb: Remove inclusion of Exp_Ch2.adb.
	* par-ch3.adb (P_Array_Type_Definition): Properly set
	Aliased_Present on access definitions
	* sem_attr.adb (Resolve_Attribute): Replace instances for
	Object_Access_Level with Static_Accessibility_Level.
	* sem_ch13.adb (Storage_Pool): Replace instances for
	Object_Access_Level with Static_Accessibility_Level.
	* sem_ch6.adb (Check_Return_Construct_Accessibility): Replace
	instances for Object_Access_Level with
	Static_Accessibility_Level.
	* sem_ch9.adb (Analyze_Requeue): Replace instances for
	Object_Access_Level with Static_Accessibility_Level.
	* sem_res.adb (Check_Aliased_Parameter,
	Check_Allocator_Discrim_Accessibility, Valid_Conversion):
	Replace instances for Object_Access_Level with
	Static_Accessibility_Level.
	* sem_util.adb, sem_util.ads (Accessibility_Level_Helper):
	Created to centralize calculation of accessibility levels.
	(Build_Component_Subtype): Replace instances for
	Object_Access_Level with Static_Accessibility_Level.
	(Defining_Entity): Add extra parameter to dictate whether an
	error is raised or empty is return in the case of an irrelevant
	N.
	(Dynamic_Accessibility_Level): Rewritten to use
	Accessibility_Level_Helper.
	(Is_View_Conversion): Check membership against Etype to capture
	nodes like explicit dereferences which have types but are not
	expanded names or identifers.
	(Object_Access_LeveL): Removed.
	(Param_Entity): Moved from sem_util.
	(Static_Accessibility_Level): Created as a replacement to
	Object_Access_Level, it also uses Accessibility_Level_Helper for
	its implementation.
	* snames.ads-tmpl: Added new name for extra accessibility
	parameter in init procs.

2020-10-22  Piotr Trojanek  <trojanek@adacore.com>

	* exp_prag.adb (Expand_Pragma_Contract_Cases,
	Expand_Pragma_Loop_Variant): Reuse Append_New_To.
	* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Fix typo.
	(Analyze_Pre_Post_Condition): Refactor repeated calls to
	Defining_Entity.

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

	* doc/gnat_rm/implementation_defined_characteristics.rst: Minor
	fixes.
	* gnat_rm.texi: Regenerate.

2020-10-22  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Check_Unused_Withs): Move local variables from
	to a nested procedure; Lunit is passed as a parameter to
	Check_System_Aux and its type is refined from Node_Id to
	Entity_Id; Cnode is now a constant.

2020-10-22  Patrick Bernardi  <bernardi@adacore.com>

	* libgnat/s-rident.ads (Profile_Info): Use a common profile
	definition for Jorvik and GNAT Extended Ravenscar, using the
	GNAT Extended Ravenscar definition.

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

	* Makefile.rtl (64-bit platforms): Add GNATRTL_128BIT_PAIRS to
	the LIBGNAT_TARGET_PAIRS list and also GNATRTL_128BIT_OBJS to
	the EXTRA_GNATRTL_NONTASKING_OBJS list.

2020-10-22  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_prag.adb (Process_Convention,
	Process_Import_Or_Interface): Fix error message.

2020-10-22  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_ch13.adb (Make_Aitem_Pragma): Turn into function. This
	removes a side-effect on the Aitem variable.
	(Analyze_Aspect_Specifications): Handle Suppress and Unsuppress
	aspects differently from the Linker_Section aspect.
	(Ceck_Aspect_At_Freeze_Point): Don't expect Suppress/Unsuppress
	to be delayed anymore.

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

	* sem_aggr.adb: (Resolve_Container_Aggregate): For an indexed
	container, verify that expressions and component associations
	are not both present.
	* exp_aggr.adb: Code reorganization, additional comments.
	(Expand_Container_Aggregate): Use Aggregate_Size for Iterated_
	Component_Associations for indexed aggregates. If present, the
	default value of the formal in the constructor function is used
	when the size of the aggregate cannot be determined statically.

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

	* sem_attr.adb (Eval_Attribute): Fix oversight for Bit_Position.

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

	* sem_util.ads, sem_util.adb (Check_Ambiguous_Aggregate): When a
	subprogram call is found to be ambiguous, check whether
	ambiguity is caused by an aggregate actual.  and indicate that
	it should carry a type qualification.
	* sem_ch4.adb (Traverse_Hoonyms, Try_Primitive_Operation): Call
	it.
	* sem_res.adb (Report_Ambiguous_Argument): Call it.

2020-10-22  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Check_One_Unit): Avoid repeated calls by using a
	local variable Lunit; remove local constant Eitem, which was
	identical to Lunit.

2020-10-22  Alexandre Oliva  <oliva@adacore.com>

	* Makefile.rtl (LIBGNAT_TARGET_PAIRS) <x86*-vxworks*>: Select
	nolibm and wraplf variants like other vxworks ports.

2020-10-22  Martin Liska  <mliska@suse.cz>

	PR c/94722
	* gcc-interface/utils.c (handle_no_stack_protect_attribute):
	New.
	(handle_stack_protect_attribute): Add error message for a
	no_stack_protector function.

2020-10-22  Alexandre Oliva  <oliva@adacore.com>

	* Makefile.rtl (LIBGNAT_TARGET_PAIRS) <lynxos178>: Rely on
	Aux_Long_Float for all real types.

2020-10-22  Alexandre Oliva  <oliva@adacore.com>

	* Makefile.rtl (LIBGNAT_TARGET_PAIRS): Use Long Float-based
	variant of Aux_Short_Float and Aux_Float on vxworks targets.
	* libgnat/a-nashfl__wraplf.ads: New.
	* libgnat/a-nuaufl__wraplf.ads: New.

2020-10-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makefile.rtl (LIBGNAT_TARGET_PAIRS) <sparc*-sun-solaris>:
	Use wraplf version of a-nallfl.

2020-10-22  Alexandre Oliva  <oliva@adacore.com>

	* Makefile.rtl (LIBGNAT_TARGET_PAIRS): Use
	a-nallfl__wraplf.ads on aarch64-* and ppc*-linux-gnu targets.
	* libgnat/a-nallfl__wraplf.ads: New.

2020-10-22  Jan Hubicka  <hubicka@ucw.cz>

	* gcc-interface/trans.c: Include tree-nested.h
	(walk_nesting_tree): Update for new nested function info.

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

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add a-llltio, a-lllwti,
	a-lllzti and remove a-timoau, a-wtmoau and a-ztmoau.
	(GNATRTL_128BIT_PAIRS): Add a-tiinio.adb, a-timoio.adb, a-wtinio.adb,
	a-wtmoio.adb, a-ztinio.adb and a-ztmoio.adb.
	* impunit.adb (Non_Imp_File_Names_95): Add a-llltio, a-lllwti and
	a-lllzti.
	* krunch.ads: Document trick for Ada.Long_Long_Long_Integer_*_IO.
	* krunch.adb (Krunch): Add trick for Ada.Long_Long_Long_Integer_*_IO.
	* libgnat/a-llltio.ads: Instantiate Ada.Text_IO.Integer_IO.
	* libgnat/a-lllwti.ads: Instantiate Ada.Wide_Text_IO.Integer_IO.
	* libgnat/a-lllzti.ads: Instantiate Ada.Wide_Wide_Text_IO.Integer_IO.
	* libgnat/a-tigeau.ads (Load_Integer): New procedure.
	* libgnat/a-tigeau.adb (Load_Integer): Likewise.
	* libgnat/a-tiinau.ads, libgnat/a-tiinau.adb: Change to generic
	package.
	* libgnat/a-tiinio.adb: Instantiate it.
	* libgnat/a-tiinio__128.adb: Likewise.
	* libgnat/a-timoau.ads, libgnat/a-timoau.adb: Change to generic
	package.
	* libgnat/a-timoio.adb: Instantiate it.
	* libgnat/a-timoio__128.adb: Likewise.
	* libgnat/a-wtgeau.ads (Load_Integer): New procedure.
	* libgnat/a-wtgeau.adb (Load_Integer): Likewise.
	* libgnat/a-wtinau.ads, libgnat/a-wtinau.adb: Change to generic
	package.
	* libgnat/a-wtinio.adb: Instantiate it.
	* libgnat/a-wtinio__128.adb: Likewise.
	* libgnat/a-wtmoau.ads, libgnat/a-wtmoau.adb: Change to generic
	package.
	* libgnat/a-wtmoio.adb: Instantiate it.
	* libgnat/a-wtmoio__128.adb: Likewise.
	* libgnat/a-ztgeau.ads (Load_Integer): New procedure.
	* libgnat/a-ztgeau.adb (Load_Integer): Likewise.
	* libgnat/a-ztinau.ads, libgnat/a-ztinau.adb: Change to generic
	package.
	* libgnat/a-ztinio.adb: Instantiate it.
	* libgnat/a-ztinio__128.adb: Likewise.
	* libgnat/a-ztmoau.ads, libgnat/a-ztmoau.adb: Change to generic
	package.
	* libgnat/a-ztmoio.adb: Instantiate it.
	* libgnat/a-ztmoio__128.adb: Likewise.

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

	* sem_ch12.adb (Freeze_Subprogram_Body): Do not move the freeze
	node of the package body enclosing the instance when its parent
	is in the same declarative part as the freeze node of the parent.

2020-10-21  Steve Baird  <baird@adacore.com>

	* exp_ch6.adb (Insert_Post_Call_Actions): When a function's
	result type requires finalization and we decide to make copy of
	a call to the function and subsequently refer only to the copy,
	then don't forget to finalize the original function result
	object.

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

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-widint,
	s-widthi, s-widuns, s-widuns.
	(GNATRTL_128BIT_OBJS): Add s-imglllb, s-imgllli, s-imglllu, s-imglllw,
	s-valllli, s-vallllu, s-widllli, s-widlllu.
	* exp_imgv.adb (Expand_Image_Attribute): Deal with 128-bit types.
	(Expand_Value_Attribute): Likewise.
	(Expand_Width_Attribute): Likewise.
	* exp_put_image.adb (Build_Elementary_Put_Image_Call): Likewise.
	* krunch.adb (Krunch): Deal with s-img, s-val and s-wid prefixes.
	* rtsfind.ads (RTU_Id): Add System_Img_LLLI, System_Img_LLLU,
	System_Val_LLLI, System_Val_LLL, System_Wid_Int, System_Wid_LLLI,
	System_Wid_LLLU, System_Wid_Uns).
	(RE_Id): Add RE_Image_Long_Long_Long_Integer,
	RE_Image_Long_Long_Long_Unsigned,
	RE_Put_Image_Long_Long_Long_Integer,
	RE_Put_Image_Long_Long_Long_Unsigned,
	RE_Long_Long_Long_Unsigned, RE_Value_Long_Long_Long_Integer,
	RE_Value_Long_Long_Long_Unsigned, RE_Width_Integer,
	RE_Width_Long_Long_Long_Integer, RE_Width_Long_Long_Long_Unsigned,
	RE_Width_Unsigned, RE_Image_Long_Long_Long_Integer,
	RE_Image_Long_Long_Long_Unsigned, RE_Put_Image_Long_Long_Long_Integer,
	RE_Put_Image_Long_Long_Long_Unsigned, RE_Long_Long_Long_Unsigned,
	RE_Value_Long_Long_Long_Integer, RE_Value_Long_Long_Long_Unsigned,
	RE_Width_Integer, RE_Width_Long_Long_Long_Integer,
	RE_Width_Long_Long_Long_Unsigned, RE_Width_Unsigned.
	* libgnat/s-imageb.ads, libgnat/s-imageb.adb: New generic
	package.
	* libgnat/s-imagei.ads, libgnat/s-imagei.adb: Likewise.
	* libgnat/s-imageu.ads, libgnat/s-imageu.adb: Likewise.
	* libgnat/s-imagew.ads, libgnat/s-imagew.adb: Likewise.
	* libgnat/s-imgbiu.ads: Instantiate System.Image_B.
	* libgnat/s-imgbiu.adb: Add pragma No_Body.
	* libgnat/s-imgint.ads: Instantiate System.Image_I.
	* libgnat/s-imgint.adb: Add pragma No_Body.
	* libgnat/s-imgllb.ads: Instantiate System.Image_B.
	* libgnat/s-imgllb.adb: Add pragma No_Body0
	* libgnat/s-imglli.ads: Instantiate System.Image_I.
	* libgnat/s-imglli.adb: Add pragma No_Body.
	* libgnat/s-imglllb.ads: Instantiate System.Image_B.
	* libgnat/s-imgllli.ads: Instantiate System.Image_I.
	* libgnat/s-imglllu.ads: Instantiate System.Image_U.
	* libgnat/s-imglllw.ads: Instantiate System.Image_W.
	* libgnat/s-imgllu.ads: Instantiate System.Image_U.
	* libgnat/s-imgllu.adb: Add pragma No_Body.
	* libgnat/s-imgllw.ads: Instantiate System.Image_W.
	* libgnat/s-imgllw.adb: Add pragma No_Body.
	* libgnat/s-imgrea.adb: Remove clauses for System.Unsigned_Types.
	* libgnat/s-imguns.ads: Instantiate System.Image_U.
	* libgnat/s-imguns.adb: Add pragma No_Body.
	* libgnat/s-imgwiu.ads: Instantiate System.Image_W.
	* libgnat/s-imgwiu.adb: Add pragma No_Body.
	* libgnat/s-putima.ads (Long_Long_Long_Unsigned): New subtype.
	(Put_Image_Long_Long_Long_Unsigned): New procedure.
	* libgnat/s-putima.adb (Small): Rename to Integer_Images.
	(Large): Rename to LL_Integer_Images.
	(LLL_Integer_Images): New instantiation.
	(Put_Image_Long_Long_Long_Integer): New renaming.
	(Put_Image_Long_Long_Long_Unsigned): Likewise.
	* libgnat/s-valint.ads: Instantiate System.Value_I.
	* libgnat/s-valint.adb: Add pragma No_Body.
	* libgnat/s-vallli.ads: Instantiate System.Value_I.
	* libgnat/s-vallli.adb: Add pragma No_Body.
	* libgnat/s-valllli.ads: Instantiate System.Value_I.
	* libgnat/s-vallllu.ads: Instantiate System.Value_U.
	* libgnat/s-valllu.ads: Instantiate System.Value_U.
	* libgnat/s-valllu.adb: Add pragma No_Body.
	* libgnat/s-valuei.ads, libgnat/s-valuei.adb: New generic
	package.
	* libgnat/s-valueu.ads, libgnat/s-valueu.adb: Likewise.
	* libgnat/s-valuns.ads: Instantiate System.Value_U.
	* libgnat/s-valuns.adb: Add pragma No_Body.
	* libgnat/s-widint.ads: Instantiate System.Width_I.
	* libgnat/s-widlli.ads: Likewise.
	* libgnat/s-widlli.adb: Add pragma No_Body.
	* libgnat/s-widllli.ads: Instantiate System.Width_I.
	* libgnat/s-widlllu.ads: Instantiate System.Width_U.
	* libgnat/s-widllu.ads: Likewise.
	* libgnat/s-widllu.adb: Add pragma No_Body.
	* libgnat/s-widthi.ads, libgnat/s-widthi.adb: New generic
	package.
	* libgnat/s-widthu.ads, libgnat/s-widthu.adb: Likewise.
	* libgnat/s-widuns.ads: Instantiate System.Width_U.

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

	* set_targ.adb (DTN): Fix oversight.
	(Read_Target_Dependent_Values): Do not error out on missing
	Long_Long_Long_Size entry and reuse Long_Long_Size for it.

2020-10-21  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb (Gen_Loop): Analyze copy of the expression in the
	scope of the implicit loop with name of the index parameter
	visible.

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

	* Makefile.rtl (GNATRTL_128BIT_PAIRS): New variable.
	(GNATRTL_128BIT_OBJS): Likewise.
	(Windows): In 64-bit mode, add the former to LIBGNAT_TARGET_PAIRS and
	the latter to EXTRA_GNATRTL_NONTASKING_OBJS.
	(x86_64/linux): Likewise, but unconditionally.
	(GNATRTL_NONTASKING_OBJS): Add s-aridou, s-exponn, s-expont,
	s-exponu.
	* ada_get_targ.adb (Get_Long_Long_Long_Size): New function.
	* checks.adb (Apply_Arithmetic_Overflow_Strict): Use Integer_Type_For
	to find an appropriate integer type; if it does not exist and the max
	integer size is larger than 64, use the 128-bit arithmetic routines.
	* cstand.adb (Create_Standard): Build Standard_Long_Long_Long_Integer
	and its base type.  Use it for Etype of Any_Integer, Any_Modular and
	Any_Numeric.  Use its size for Build Standard_Long_Long_Long_Unsigned
	and Universal_Integer.
	(Print_Standard): Print Long_Long_Long_Integer.
	* exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Mod>: Adjust
	comment.
	* exp_ch3.adb (Simple_Init_Initialize_Scalars_Type): Deal with 128-bit
	types.
	* exp_ch4.adb (Expand_Array_Comparison): Likewise.
	(Expand_N_Op_Expon): Likewise.
	(Narrow_Large_Operation): Likewise.
	* exp_dbug.adb (Bounds_Match_Size): Handle 128-bit size.
	* exp_fixd.adb (Build_Double_Divide_Code): Use RE_Double_Divide64.
	* exp_intr.adb (Expand_Binary_Operator_Call): Handle 128-bit size.
	* exp_pakd.ads (E_Array): Extend range to 127.
	(Bits_Id): Fill in up to 127.
	(Get_Id): Likewise.
	(GetU_Id): Likewise.
	(Set_Id): Likewise.
	(SetU_Id): Likewise.
	* exp_pakd.adb (Revert_Storage_Order): Handle 128-bit size.
	* exp_util.adb (Integer_Type_For): Likewise.
	(Small_Integer_Type_For): Likewise.
	* fname.adb (Is_Predefined_File_Name): Do not return False for names
	larger than 12 characters if they start with "s-".
	* freeze.adb (Adjust_Esize_For_Alignment): Change the maximum value
	to System_Max_Integer_Size.
	(Check_Suspicious_Modulus): Adjust comment.
	(Freeze_Entity): Likewise.
	* get_targ.ads (Get_Long_Long_Long_Size): New function.
	* get_targ.adb (Get_Long_Long_Long_Size): Likewise.
	(Width_From_Size): Deal with 128-bit size.
	* gnat1drv.adb (Adjust_Global_Switches): Deal with 128-bit types.
	* impunit.adb (Get_Kind_Of_File): Bump buffer size.  Accept files with
	13 characters if they start with 's'.  Compare slice of Buffer.
	(Not_Impl_Defined_Unit): Accept files with 13 characters if they start
	with 's'.
	* krunch.ads: Document length for 128-bit support units.
	* krunch.adb (Krunch): Set length to 9 for 128-bit support units.
	* layout.adb (Layout_Type): Use System_Max_Integer_Size as alignment
	limit.
	* rtsfind.ads (RTU_Id): Add System_Arith_128,
	System_Compare_Array_Signed_128, System_Compare_Array_Unsigned_128,
	System_Exn_LLLI, System_Exp_LLLU, System_Pack_[65..127].
	(RE_Id): Add RE_Integer_128, RE_Unsigned_128, RE_Add_With_Ovflo_Check128
	RE_Multiply_With_Ovflo_Check128, RE_Subtract_With_Ovflo_Check128,
	RE_Bswap_128, RE_Compare_Array_S128, RE_Compare_Array_U128,
	RE_Exn_Long_Long_Long_Integer, RE_Exp_Long_Long_Long_Integer,
	RE_Exp_Long_Long_Long_Unsigned, RE_Bits_[65-127], RE_Get_[65-127],
	RE_Set_[65-127], RE_IS_Is16, RE_IS_Iu16, RE_Integer_128 and
	RE_Unsigned_128.  Rename RE_Add_With_Ovflo_Check, RE_Double_Divide,
	RE_Multiply_With_Ovflo_Check, RE_Scaled_Divide and
	RE_Subtract_With_Ovflo_Check.  Remove RE_IS_Iz1, RE_IS_Iz2, RE_IS_Iz4,
	RE_IS_Iz8, RE_Long_Unsigned, RE_Short_Unsigned, RE_Short_Short_Unsigned
	(RE_Unit_Table): Likewise.
	* sem_aux.adb (Corresponding_Unsigned_Type): Deal with a size equal to
	that of Standard_Long_Long_Long_Integer.
	(First_Subtype): Deal with Standard_Long_Long_Long_Integer'Base.
	* sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Attribute_Size>:
	Check the size against powers of 2 and System_Max_Integer_Size for
	objects as well.
	(Set_Enum_Esize): Deal with 128-bit bounds.
	* sem_ch3.adb (Set_Modular_Size): Handle 128-bit size.
	(Modular_Type_Declaration): Deal with 128-bit types.
	(Signed_Integer_Type_Declaration): Support derivation from
	Standard_Long_Long_Long_Integer.
	* sem_ch4.adb (Analyze_Mod): Handle 128-bit modulus.
	* sem_intr.adb: Add with and use clauses for Ttypes.
	(Check_Shift): Handle 128-bit size and modulus.
	* sem_prag.adb (Analyze_Pragma) <Pragma_Initialize_Scalars>: Deal
	with Signed_128 and Unsigned_128.
	(Analyze_Integer_Value): Handle 128-bit size.
	* sem_util.ads (Addressable): Adjust description.
	* sem_util.adb (Addressable): Return true for 128 if the system
	supports 128 bits.
	(Set_Invalid_Binder_Values): Deal with Signed_128 and Unsigned_128.
	* set_targ.ads (Long_Long_Long_Size): New variable.
	* set_targ.adb (S_Long_Long_Long_Size): New constant.
	(DTN): Add entry for S_Long_Long_Long_Size.
	(DTV): Add entry for Long_Long_Long_Size.
	(Set_Targ): Set Long_Long_Long_Size.
	* snames.ads-tmpl (Name_Max_Integer_Size): New attribute name.
	(Name_Signed_128): New scalar name.
	(Name_Unsigned_128): Likewise.
	(Scalar_Id): Adjust.
	(Integer_Scalar_Id): Likewise.
	(Attribute_Id): Add Attribute_Max_Integer_Size.
	* stand.ads (Standard_Entity_Type): Add S_Long_Long_Long_Integer.
	(Standard_Long_Long_Long_Integer): New renaming.
	(Universal_Integer): Adjust description.
	(Standard_Long_Long_Long_Unsigned): New variable.
	* switch-c.adb (Scan_Front_End_Switches): Deal with -gnate128.
	* ttypes.ads (Standard_Long_Long_Long_Integer_Size): New variable.
	(Standard_Long_Long_Long_Integer_Width): Likewise.
	(System_Max_Integer_Size): Turn into variable.
	(System_Max_Binary_Modulus_Power): Likewise.
	* uintp.ads (Uint_127): New constant.
	* uintp.adb (UI_Power_2): Extednd to 128.
	(UI_Power_10): Likewise.
	(UI_Expon): Deal with exponent up to 128 specially.
	* usage.adb (Write_Switch_Char): Print -gnate128 switch.
	* libgnat/a-tifiio.adb (Put_Scaled): Call Scaled_Divide64.
	* libgnat/interfac__2020.ads (Integer_128): New integer type.
	(Unsigned_128): New modular type.
	(Shift_Left, Shift_Right, Shift_Right_Arithmetic, Rotate_Left,
	Rotate_Right): New intrinsic functions operating on it.
	* libgnat/s-aridou.ads, libgnat/s-aridou.adb: New generic
	package.
	* libgnat/s-arit64.ads, libgnat/s-arit64.adb: Instantiate
	System.Arithmetic_Double.
	* libgnat/s-arit128.ads, libgnat/s-arit128.adb: Likewise.
	* libgnat/s-bytswa.ads: Add with clause for Interfaces, use subtypes
	of unsigned types defined in Interfaces and add Bswap_128.
	* libgnat/s-casi128.ads, libgnat/s-casi128.adb: New package.
	* libgnat/s-caun128.ads, libgnat/s-caun128.adb: Likewise.
	* libgnat/s-exnint.ads: Instantiate System.Exponn.
	* libgnat/s-exnint.adb: Add pragma No_Body.
	* libgnat/s-exnlli.ads: Instantiate System.Exponn.
	* libgnat/s-exnlli.adb: Add pragma No_Body.
	* libgnat/s-exnllli.ads: Instantiate System.Exponn.
	* libgnat/s-expint.ads: Likewise.
	* libgnat/s-expint.adb: Add pragma No_Body.
	* libgnat/s-explli.ads: Instantiate System.Exponn.
	* libgnat/s-explli.adb: Add pragma No_Body.
	* libgnat/s-expllli.ads: Instantiate System.Exponn.
	* libgnat/s-explllu.ads: Instantiate System.Exponu.
	* libgnat/s-expllu.ads: Likewise.
	* libgnat/s-expllu.adb: Add pragma No_Body.
	* libgnat/s-exponn.ads, libgnat/s-exponn.adb: New generic
	function.
	* libgnat/s-expont.ads, libgnat/s-expont.adb: Likewise.
	* libgnat/s-exponu.ads, libgnat/s-exponu.adb: Likewise.
	* libgnat/s-expuns.ads, libgnat/s-expuns.adb: Likewise.
	* libgnat/s-pack65.ads, libgnat/s-pack65.adb: New package.
	* libgnat/s-pack66.ads, libgnat/s-pack66.adb: New package.
	* libgnat/s-pack67.ads, libgnat/s-pack67.adb: New package.
	* libgnat/s-pack68.ads, libgnat/s-pack68.adb: New package.
	* libgnat/s-pack69.ads, libgnat/s-pack69.adb: New package.
	* libgnat/s-pack70.ads, libgnat/s-pack70.adb: New package.
	* libgnat/s-pack71.ads, libgnat/s-pack71.adb: New package.
	* libgnat/s-pack72.ads, libgnat/s-pack72.adb: New package.
	* libgnat/s-pack73.ads, libgnat/s-pack73.adb: New package.
	* libgnat/s-pack74.ads, libgnat/s-pack74.adb: New package.
	* libgnat/s-pack75.ads, libgnat/s-pack75.adb: New package.
	* libgnat/s-pack76.ads, libgnat/s-pack76.adb: New package.
	* libgnat/s-pack77.ads, libgnat/s-pack77.adb: New package.
	* libgnat/s-pack78.ads, libgnat/s-pack78.adb: New package.
	* libgnat/s-pack79.ads, libgnat/s-pack79.adb: New package.
	* libgnat/s-pack80.ads, libgnat/s-pack80.adb: New package.
	* libgnat/s-pack81.ads, libgnat/s-pack81.adb: New package.
	* libgnat/s-pack82.ads, libgnat/s-pack82.adb: New package.
	* libgnat/s-pack83.ads, libgnat/s-pack83.adb: New package.
	* libgnat/s-pack84.ads, libgnat/s-pack84.adb: New package.
	* libgnat/s-pack85.ads, libgnat/s-pack85.adb: New package.
	* libgnat/s-pack86.ads, libgnat/s-pack86.adb: New package.
	* libgnat/s-pack87.ads, libgnat/s-pack87.adb: New package.
	* libgnat/s-pack88.ads, libgnat/s-pack88.adb: New package.
	* libgnat/s-pack89.ads, libgnat/s-pack89.adb: New package.
	* libgnat/s-pack90.ads, libgnat/s-pack90.adb: New package.
	* libgnat/s-pack91.ads, libgnat/s-pack91.adb: New package.
	* libgnat/s-pack92.ads, libgnat/s-pack92.adb: New package.
	* libgnat/s-pack93.ads, libgnat/s-pack93.adb: New package.
	* libgnat/s-pack94.ads, libgnat/s-pack94.adb: New package.
	* libgnat/s-pack95.ads, libgnat/s-pack95.adb: New package.
	* libgnat/s-pack96.ads, libgnat/s-pack96.adb: New package.
	* libgnat/s-pack97.ads, libgnat/s-pack97.adb: New package.
	* libgnat/s-pack98.ads, libgnat/s-pack98.adb: New package.
	* libgnat/s-pack99.ads, libgnat/s-pack99.adb: New package.
	* libgnat/s-pack100.ads, libgnat/s-pack100.adb: New package.
	* libgnat/s-pack101.ads, libgnat/s-pack101.adb: New package.
	* libgnat/s-pack102.ads, libgnat/s-pack102.adb: New package.
	* libgnat/s-pack103.ads, libgnat/s-pack103.adb: New package.
	* libgnat/s-pack104.ads, libgnat/s-pack104.adb: New package.
	* libgnat/s-pack105.ads, libgnat/s-pack105.adb: New package.
	* libgnat/s-pack106.ads, libgnat/s-pack106.adb: New package.
	* libgnat/s-pack107.ads, libgnat/s-pack107.adb: New package.
	* libgnat/s-pack108.ads, libgnat/s-pack108.adb: New package.
	* libgnat/s-pack109.ads, libgnat/s-pack109.adb: New package.
	* libgnat/s-pack110.ads, libgnat/s-pack110.adb: New package.
	* libgnat/s-pack111.ads, libgnat/s-pack111.adb: New package.
	* libgnat/s-pack112.ads, libgnat/s-pack112.adb: New package.
	* libgnat/s-pack113.ads, libgnat/s-pack113.adb: New package.
	* libgnat/s-pack114.ads, libgnat/s-pack114.adb: New package.
	* libgnat/s-pack115.ads, libgnat/s-pack115.adb: New package.
	* libgnat/s-pack116.ads, libgnat/s-pack116.adb: New package.
	* libgnat/s-pack117.ads, libgnat/s-pack117.adb: New package.
	* libgnat/s-pack118.ads, libgnat/s-pack118.adb: New package.
	* libgnat/s-pack119.ads, libgnat/s-pack119.adb: New package.
	* libgnat/s-pack120.ads, libgnat/s-pack120.adb: New package.
	* libgnat/s-pack121.ads, libgnat/s-pack121.adb: New package.
	* libgnat/s-pack122.ads, libgnat/s-pack122.adb: New package.
	* libgnat/s-pack123.ads, libgnat/s-pack123.adb: New package.
	* libgnat/s-pack124.ads, libgnat/s-pack124.adb: New package.
	* libgnat/s-pack125.ads, libgnat/s-pack125.adb: New package.
	* libgnat/s-pack126.ads, libgnat/s-pack126.adb: New package.
	* libgnat/s-pack127.ads, libgnat/s-pack127.adb: New package.
	* libgnat/s-rannum.ads (Random): New function returning 128-bit.
	* libgnat/s-rannum.adb (Random): Implement it.
	* libgnat/s-scaval.ads: Add with clause for Interfaces, use subtypes
	of unsigned types defined in Interfaces.
	* libgnat/s-scaval.adb: Add use clause for Interfaces.
	* libgnat/s-scaval__128.ads, libgnat/s-scaval__128.adb: New
	package.
	* libgnat/s-unstyp.ads (Long_Long_Long_Unsigned): New modular type.
	(Shift_Left, Shift_Right, Shift_Right_Arithmetic, Rotate_Left,
	Rotate_Right): New intrinsic functions operating on it.

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

	* doc/gnat_rm/implementation_defined_characteristics.rst: Add
	Long_Long_Long_Integer to the list of predefined integer types.
	* gnat_rm.texi: Regenerate.

2020-10-21  Yannick Moy  <moy@adacore.com>

	* ada_get_targ.adb (Width_From_Size): Add case for 128 bits.
	Reorder declarations in the same order as get_targ.adb to
	facilitate diffs.

2020-10-21  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb (Expand_N_Aggregate): Refactor repeated calls to
	Etype (N).
	(Build_Array_Aggr_Code): Fix whitespace.

2020-10-21  Dmitriy Anisimkov  <anisimko@adacore.com>

	* adaint.c (__gnat_file_time): Use regular arithmetic instead of
	__builtin_*_overflow routines if GCC version 4 or less and
	compiler is g++.

2020-10-21  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate): Use Choice_List, which
	internally calls either Choice or Discrete_Choices, depending on
	the context.

2020-10-21  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Iterated_Component_Association): Use
	existing defining identifier for index parameter.

2020-10-21  Javier Miranda  <miranda@adacore.com>

	* exp_ch9.adb (Build_Task_Activation_Call): Do not generate a
	call to activate tasks if we are within the scope of a protected
	type and pragma Detect_Blocking is active.

2020-10-21  Liaiss Merzougue  <merzougue@adacore.com>

	* libgnat/s-carsi8.adb (Compare_Array_S8): Add pragma Assert to
	avoid warning concerning Left_Len and RighLen value regarding
	Bytes_Compared_As_Words.
	* libgnat/s-carun8.adb (Compare_Array_U8): Likewise.
	* libgnat/s-geveop.adb (Binary_Operation, Unary_Operation): Add
	pragma Assert concerning divide by 0 warning.
	* libgnat/s-imgcha.adb (Image_Character): Code update to prevent
	constant operation warning.
	(Image_Character): Add pragma Assert concerning the unchecked
	String size.
	* libgnat/s-imgdec.adb
	(Round): Upate loop code to prevent warning concerning
	Digs'First access.
	(Round): Add pragma assert.
	(Set): Add pragma Assert for the unchecked string size.
	(Set_Digits): Add pragma Assert for the input range.
	(Set_Decimal_Digits): Add pragma Assert.
	(Set_Blank_And_Sign): Add pragma Assert for the input range.
	* libgnat/s-arit64.adb (DoubleDivide): Add pragma Assert
	concerning Du /= 0.
	(Multiply_With_Ovflo_Check): Add pragma Annotate to avoid
	warning concerning unsigned -> signed conversion.
	* libgnat/s-imguns.adb (Set_Image_Unsigned): Add pragma Assert
	to prevent overflow check warning.  Add pragma Assert for
	controlling S'First = 1.
	* libgnat/s-imgrea.adb (Image_Floating_Point, Set, Set_Digs,
	Set_Special_Fill, Convert_Integer): Add pragma Annotate to
	prevent overflow check warning.
	(Set_Image_Real): Add pragma Annotate to avoid dead code warning
	on float check. Add pragma Assert to prevent overflow check
	warning.
	* libgnat/s-imgwiu.adb (Set_Digits, Set_Image_Width_Unsigned):
	Add pragma assert to prevent overflow check warning.
	* libgnat/s-imgllu.adb (Set_Image_Long_Long_Unsigned): Add
	pragma assert to prevent overflow check warning.
	* libgnat/s-imgint.adb (Set_Digits): Add Assert for input
	constraint and to prevent overflow check warning, create
	Non_Positive subtype, and change the T parameter as Non_Positive
	instead Integer.
	(Set_Image_Integer): Add pragma assert to prevent overflow check
	warning.
	* libgnat/s-imglli.adb (Set_Digits): Add Assert for input
	constraint and to prevent overflow check warning, create
	Non_Positive subtype, and change the T parameter as Non_Positive
	instead Integer.
	(Set_Image_Long_Long_Integer): Add pragma assert to prevent
	overflow check warning.
	* libgnat/s-fatgen.adb (Decompose, Pred, Succ): Add pragma
	Annotate to prevent dead code due to invalid float check.
	* libgnat/s-imenne.adb (Image_Enumeration_8,
	Image_Enumeration_16, Image_Enumeration_32): Add pragma Assert
	to prevent overflow check warning.  Add Names_Index subtype for
	restricting Index_table content.

2020-10-21  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb (Insert_Post_Call_Actions): Test for
	N_Explicit_Dereference as part of the existing test for function
	calls.

2020-10-21  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.

2020-10-21  Dmitriy Anisimkov  <anisimko@adacore.com>

	* adaint.c (__gnat_file_time): New routine.
	(__gnat_copy_attribs): Copy timestamps in nanoseconds.
	* libgnat/a-direct.adb (C_Modification_Time): Bind to
	__gnat_file_time.
	(Modification_Time): Call to C_Modification_Time.

2020-10-21  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Iterated_Component_Association):
	Expression's copy and now has the same parent as the original
	expression.
	(Resolve_Array_Aggregate): Add ??? comment about a still
	existing minor issue that led to discovery of the above crash.

2020-10-21  Javier Miranda  <miranda@adacore.com>

	* sem_ch12.adb (Install_Parents_Of_Generic_Context): Simplify
	functionality; collect and install parents of generic child
	package.
	(Remove_Parents_Of_Generic_Context): Code cleanup.
	(Instantiate_Package_Body): Hide parents of generic context from
	visibility before installing the parent instance; restore their
	visibility when the instance is analyzed

2020-10-21  Doug Rupp  <rupp@adacore.com>

	* libgnarl/s-osinte__lynxos178e.ads: Remove -mthreads switch.

2020-10-21  Patrick Bernardi  <bernardi@adacore.com>

	* env.c (__gnat_setenv): call setenv for VxWorks 7 kernel mode.
	(__gnat_environ): envGet takes an int instead of a NULL pointer.
	(__gnat_unsetenv): call unsetenv for VxWorks 7 kernel mode.
	(__gnat_clearenv): use __gnat_unsetenv to clear environment
	variables.

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

	* sem_ch12.adb (Freeze_Subprogram_Body): Call
	Package_Freeze_Node to retrieve the freeze node for the
	enclosing body of the generic.

2020-10-21  Justin Squirek  <squirek@adacore.com>

	* exp_ch6.adb (Expand_Call_Helper): Modify calls to
	Add_Extra_Actual to use Extra_Accessibility instead of
	Get_Accessibility for the EF parameter.

2020-10-21  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb (Expand_Actuals): Whitespace cleanup.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Make minimum
	accessibility a constant object.

2020-10-21  Patrick Bernardi  <bernardi@adacore.com>

	* env.c (__gnat_environ): For VxWorks kernel simply return the
	result of the envGet call. Do this for VxWorks 6 and 7 as they
	both support the same API.

2020-10-21  Ghjuvan Lacambre  <lacambre@adacore.com>

	* exp_ch7.adb (Build_Finalizer): Disable warnings on referenced
	entity.

2020-10-21  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.ads, sem_ch3.adb, sem_util.adb: Fix comments.

2020-10-21  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Build_Derived_Type): Propagate convention of
	class-wide parent.

2020-10-21  Claire Dross  <dross@adacore.com>

	* libgnat/a-cofove.adb (Copy): Add explanation in case of
	Capacity_Error.
	(Insert_Space): Raise Capacity_Error if the new length is
	greater than the capacity.
	(Reserve_Capacity): Raise Capacity_Error instead of
	Constraint_Error.

2020-10-20  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Constrain_Decimal, Constrain_Enumeration,
	Constrain_Float, Constrain_Integer, Constrain_Ordinary_Fixed):
	Refine parameter type from Node_Id to Entity_Id.

2020-10-20  Piotr Trojanek  <trojanek@adacore.com>

	* sprint.adb (po): Set Dump_Freeze_Null to False; align colons.
	(ps): Likewise.

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

	* sinfo.ads, sinfo.adb: The flag Box_Present can appear in
	Iterated_Element_Association nodes.
	* sem_aggr.adb (Resolve_Aggregate): Call
	Resolve_Container_Aggregate when type of context has
	corresponding aspect.
	* sem_type.adb (Covers): In Ada_2020 an aggregate is compatible
	with a type that carries the corresponding aspect.
	* exp_ch3.adb (Make_Controlling_Function_Wrappers): Do not
	create declarations and bodies for inherited primitive functions
	of null extensions that dispatch on result, when current scope
	includes an immediately visible non-overloadable homonym of the
	function.
	* libgnat/a-cborse.adb, libgnat/a-cborse.ads,
	libgnat/a-cbhase.ads, libgnat/a-cbhase.adb,
	libgnat/a-cborma.adb, libgnat/a-cborma.ads,
	libgnat/a-cbhama.adb, libgnat/a-cbhama.ads,
	libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
	libgnat/a-convec.ads, libgnat/a-ciorse.ads,
	libgnat/a-cihase.ads, libgnat/a-cihase.adb,
	libgnat/a-ciorma.ads, libgnat/a-cihama.ads,
	libgnat/a-cihama.adb, libgnat/a-cidlli.ads,
	libgnat/a-cidlli.adb, libgnat/a-coinve.adb,
	libgnat/a-cobove.adb, libgnat/a-cobove.ads,
	libgnat/a-convec.adb, libgnat/a-coinve.ads,
	libgnat/a-coorse.ads, libgnat/a-cohase.adb,
	libgnat/a-cohase.ads, libgnat/a-coorma.ads,
	libgnat/a-cohama.adb, libgnat/a-cohama.ads,
	libgnat/a-cdlili.ads: Add primitive function Empty for use in
	aspect Aggregate, and add corresponding body or expression
	function.

2020-10-20  Arnaud Charlet  <charlet@adacore.com>

	* aspects.adb (Has_Aspect_Specifications_Flag): Add
	N_Parameter_Specification.
	* par-ch13.adb (Aspect_Specifications_Present): Also handle case
	of an unknown aspect on the last formal parameter (terminated by
	a Tok_Right_Paren). Minor reformatting.
	* par-ch6.adb (P_Formal_Part): Scan aspects on formal
	parameters.
	* par.adb: Fix typos.
	* sem_ch6.adb (Process_Formals): Add processing of aspects and
	in particular Unreferenced aspect for now.
	* sinfo.ads: Allow ASPECT_SPECIFICATIONS on a
	PARAMETER_SPECIFICATION.
	* doc/gnat_rm/implementation_defined_aspects.rst
	(Aspect Unreferenced): Update documentation.
	* gnat_rm.texi: Regenerate.

2020-10-20  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.ads, sem_util.adb (Get_Accessibility): Refine result
	type from Node_Id to Entity_Id.

2020-10-20  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.adb, exp_attr.adb, sem_ch13.adb, sem_util.adb: Use
	Is_Formal where possible.

2020-10-20  Steve Baird  <baird@adacore.com>

	* sem_util.ads: Declare a new package, Old_Attr_Util, which in
	turn declares two more packages, Conditional_Evaluation and
	Indirect_Temps. Conditional_Evaluation provides a predicate for
	deciding whether a given 'Old attribute reference is eligible
	for conditional evaluation and, in the case where it is
	eligible, a function that constructs the Boolean-valued
	condition that is to be evaluated at run time in deciding
	whether to evaluate the attribute prefix.  Indirect_Temps
	provides support for declaring a temporary which is only
	initialized conditionally; more specifically, an access type and
	a variable of that type are declared (unconditionally) and then
	the variable is (conditionally) initialized with an allocator.
	The existence of the access type and the pointer variable is
	hidden from clients, except that a predicate,
	Is_Access_Type_For_Indirect_Temp, is provided for identifying
	such access types. This is needed because we want such an access
	type to be treated like a "normal" access type (specifically
	with respect to finalization of allocated objects). Other parts
	of the compiler treat access types differently if
	Comes_From_Source is False, or if the secondary stack storage
	pool is used; this predicate is used to disable this special
	treatment.
	* sem_attr.adb (Uneval_Old_Msg): Improve message text to reflect
	Ada202x changes.
	(Analyze_Attribute): A previously-illegal 'Old attribute
	reference is accepted in Ada2020 if it is eligible for
	conditional evaluation.
	* sem_res.adb (Valid_Conversion): Do not treat a rewritten 'Old
	attribute like other rewrite substitutions. This makes a
	difference, for example, in the case where we are generating the
	expansion of a membership test of the form "Saooaaat'Old in
	Named_Access_Type"; in this case Valid_Conversion needs to
	return True (otherwise the expansion will be False - see the
	call site in exp_ch4.adb).
	* exp_attr.adb (Expand_N_Attribute_Reference): When expanding a
	'Old attribute reference, test for the case where the reference
	is eligible for conditional evaluation. In that case, use the
	new "indirect temporary" mechanism provided by Sem_Util.
	* exp_prag.adb
	(Expand_Attributes_In_Consequence.Expand_Attributes): If
	Sem_Util.Indirect_Temp_Needed indicates that there could be
	correctness problems associated with the old expansion scheme
	for dealing with 'Old attributes in contract cases consequences,
	then we use the new "indirect temporary" mechanism provided by
	Sem_Util instead. We do not want to do this unconditionally.
	* sem_util.adb: Provide a body for the new Old_Attr_Util
	package. Further work is needed in several areas for
	correctness:
	- The function Is_Repeatedly_Evaluated does not deal with
	container aggregates yet.
	- The function Is_Known_On_Entry does not deal with interactions
	with the Global aspect.
	Each area where more work is needed is indicated with a "???"
	comment in the code; a more detailed description can be found
	there. Some optimization opportunties are similarly indicated
	with a "???" comment.
	* exp_ch3.adb (Freeze_Type): In deciding whether to generate
	expansion for the list controller of an access type, take the
	predicate Is_Access_Type_For_Indirect_Temp into account. If the
	predicate yields True, then generate the expansion.
	* exp_util.adb (Build_Allocate_Deallocate_Proc): We don't
	normally finalize allocated objects that are allocated on the
	secondary stack. Add an exception to this rule if the predicate
	Is_Access_Type_For_Indirect_Temp yields True.  As a result of
	this exception, we have to deal with the fact that gigi expects
	a different parameter profile if we are using the secondary
	stack pool; the Pool and Alignment parameters must be omitted in
	this case.

2020-10-20  Javier Miranda  <miranda@adacore.com>

	* sem_ch12.adb (Install_Parents_Of_Generic_Context,
	Remove_Parents_Of_Generic_Context): New subprograms.
	(Instantiate_Package_Body): Adding assertions to ensure that
	installed parents are properly removed.

2020-10-20  Claire Dross  <dross@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Emit a warning on 'Update
	when Warn_On_Obsolescent_Feature is set to True.

2020-10-20  Richard Kenner  <kenner@adacore.com>

	* gnat_cuda.adb (Build_Register_Function_Call): Make procedure
	call instead of function, rename to
	Build_Register_Procedure_Call.
	(Build_CUDA_Init_Proc): Make procedure call instead of function.

2020-10-20  Justin Squirek  <squirek@adacore.com>

	* exp_ch6.adb (Expand_Branch): Properly anticipate expansion of
	conditional expressions producing object declarations in
	addition to assignment statements, and rename formal.

2020-10-20  Yannick Moy  <moy@adacore.com>

	* errout.adb (Write_Source_Code_Line): Adopt display closer to
	GCC format.
	(Output_Messages): Deal specially with info messages.
	* erroutc.adb (Prescan_Message): Fix bug leading to check
	messages being considered as error messages in pretty output
	mode.

2020-10-20  Justin Squirek  <squirek@adacore.com>

	* exp_ch6.adb (Expand_Call_Helper): Properly handle the case
	where the condition of a conditional expression has been
	optimized out when calculating the value of an extra
	accessibility parameter.

2020-10-20  Bob Duff  <duff@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Change "_" to "-".

2020-10-20  Arnaud Charlet  <charlet@adacore.com>

	* sem_aggr.adb (Resolve_Aggregate): Warn on not fully
	initialized box aggregate.
	* sem_aggr.ads: Fix typo.
	* sem_res.adb (Resolve_Actuals): Fix typo in error message
	format marking it incorrectly as a continuation message.
	* sem_elab.adb (Check_Internal_Call_Continue): Similarly, add
	missing primary message in case of a call to an actual generic
	subprogram.
	* sem_warn.adb (Check_References): Do not warn on read but never
	assigned variables if the type is partially initialized.
	* libgnat/a-except.ads, libgnat/a-ststun.ads,
	libgnat/g-sechas.ads, libgnat/a-cbdlli.ads,
	libgnat/a-cfdlli.ads, libgnat/a-cobove.ads,
	libgnat/a-cohata.ads, libgnat/a-crbltr.ads,
	libgnat/a-cbmutr.ads, libgnat/a-crdlli.ads,
	libgnat/a-cbsyqu.ads: Address new warning.
	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Update doc on -gnatwv.
	* gnat_ugn.texi: Regenerate.

2020-10-20  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch6.adb (Analyze_Expression_Function): Mark static
	expression functions as inlined.

2020-10-20  Arnaud Charlet  <charlet@adacore.com>

	* contracts.adb (Is_Prologue_Renaming): This function was
	missing support for E_Constant which can also be generated in
	protected objects.

2020-10-20  Arnaud Charlet  <charlet@adacore.com>

	* bindgen.adb (Gen_Bind_Env_String): Generate Ada 2012 compatible
	strings. Code cleanup.

2020-10-20  Yannick Moy  <moy@adacore.com>

	* sem_util.adb, sem_util.ads: Comment fix.

2020-10-20  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch8.adb (Check_Constrained_Object): Suppress discriminant
	checks when the type has default discriminants and comes from
	expansion of a "for of" loop.

2020-10-20  Bob Duff  <duff@adacore.com>

	* atree.ads: Make Default_Node a constant.  Remove the
	modification of Comes_From_Source, and use a separate flag for
	that.  Change Sloc to 0; it always overwritten, and never left
	as the No_Location value.
	(Print_Statistics): Move to spec so we can call it from
	gnat1drv.
	(Num_Nodes): Rename to clarify that this is approximate.
	Correct comment: nodes and entities are never deleted, the count
	is never decremented, and this is not used by Xref.
	(Initialize): Correct comment: Error_List is not created here.
	Other minor naming and comment changes.
	* atree.adb (Extend_Node, New_Copy, New_Entity, New_Node):
	Streamline these. Simplify and improve efficiency.  Move code
	from Allocate_Initialize_Node to these, where it can be executed
	unconditionally.  Take advantage of automatic zeroing of the
	Nodes table.
	(Allocate_Initialize_Node): Remove this. It was an efficiency
	bottleneck, and somewhat complicated, because it was called from
	4 places, and had all sorts of conditionals to check where it
	was called from. Better to move most of that code to the call
	sites, where it can be executed (or not) unconditionally.
	(Allocate_New_Node): New procedure to partly replace
	Allocate_Initialize_Node (called from just 2 of those 4 places).
	(Comes_From_Source_Default): New flag written/read by
	Set_Comes_From_Source_Default/Get_Comes_From_Source_Default.
	This allows us to make Default_Node into a constant with
	all-zeros value.
	(Set_Paren_Count_Of_Copy): New procedure to avoid duplicated
	code.
	(Report): New procedure to encapsulate the call to the reporting
	procedure.
	(Atree_Private_Part): We now need a body for this package, to
	contain package body Nodes.
	(Approx_Num_Nodes_And_Entities): Was Num_Nodes.  For efficiency,
	compute the answer from Nodes.Last. That way we don't need to
	increment a counter on every node creation. Other minor naming
	and comment changes.
	* gnat1drv.adb: Call Atree.Print_Statistics if -gnatd.A switch
	was given.  Add comment documenting the new order dependency (we
	must process the command line before calling Atree.Initialize).
	* debug.adb: Document -gnatd.A.
	* einfo.adb, sinfo.adb: Remove useless Style_Checks pragmas.
	* nlists.ads (Allocate_List_Tables): Inline makes node creation
	a little faster.
	* nlists.adb (Initialize): Remove local constant E, which didn't
	seem to add clarity.
	* treepr.adb (Print_Init): Use renamed
	Approx_Num_Nodes_And_Entities function.
	* types.ads: Change the Low and High bounds as described above.
	* types.h: Change Low and High bounds to match types.ads.
	* sem_ch8.adb, namet.adb, namet.ads: Move the computation of
	Last_Name_Id from sem_ch8 to namet, and correct it to not assume
	Name_Ids are positive.
	* ali.adb, ali-util.adb, bindo-writers.adb, exp_dist.adb,
	fmap.adb, fname-uf.adb, osint.adb: Fix various hash functions to
	avoid assuming the various ranges are positive. Note that "mod"
	returns a nonnegative result when the second operand is
	positive. "rem" can return negative values in that case (in
	particular, if the first operand is negative, which it now is).
	* switch-c.adb: Allow switch -gnaten to control the value of
	Nodes_Size_In_Meg.
	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Remove traling whitespaces.
	* opt.ads (Nodes_Size_In_Meg): New Variable.

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

	* exp_util.adb (Remove_Side_Effects): Always generate a renaming
	that is handled by the front-end in the case of an indexed or a
	selected component whose prefix has a nonstandard representation.

2020-10-20  Pat Rogers  <rogers@adacore.com>

	* doc/gnat_rm/the_gnat_library.rst: Add Ada.Task_Initialization.
	* gnat_rm.texi: Regenerate.

2020-10-20  Yannick Moy  <moy@adacore.com>

	* errout.adb: (Error_Msg-Internal): Pass the location for a line
	insertion if any in the message.
	(Output_Messages: Add display of source code lines if -gnatdF is
	set.
	(Write_Source_Code_Line): Code clean up.
	* erroutc.adb (Prescan_Message): Apply prescan for continuation
	lines when -gnatdF is set, and record presence of line
	insertion.
	* erroutc.ads (Has_Insertion_Line): New global for prescan.
	(Error_Msg_Object): Add field to record line insertion if
	present.
	* errutil.adb (Error_Msg): Pass no location for Insertion_Sloc.

2020-10-20  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch5.adb (Expand_N_Case_Statement): Do not generate
	validity check when possible.

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

	* exp_aggr.adb (Expand_Iterated_Component): Reorganize code to
	ensure that Loop_Id is properly initialized on all paths, and
	remove code duplication.

2020-10-20  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration): Propagate predicate
	function to full view of the created type as well, if it was
	created.

2020-10-20  Arnaud Charlet  <charlet@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Merge handling of
	Simple_Storage_Pool and Storage_Pool.

2020-10-20  Piotr Trojanek  <trojanek@adacore.com>

	* aspects.ads: Introduce Subprogram_Variant aspect with the
	following properties: GNAT-specific, with mandatory expression,
	not a representation aspect, never delayed.
	* contracts.adb (Expand_Subprogram_Contract): Mention new aspect
	in the comment.
	(Add_Contract_Item): Support addition of pragma
	Subprogram_Variant to N_Contract node.
	(Analyze_Entry_Or_Subprogram_Contract): Mention new aspect in
	the comment; add pragma Subprogram_Variant to N_Contract node.
	(Build_Postconditions_Procedure): Adapt call to
	Insert_Before_First_Source_Declaration, which is now reused in
	expansion of new aspect.
	(Process_Contract_Cases_For): Also process Subprogram_Variant,
	which is stored in N_Contract node together with Contract_Cases.
	* contracts.ads (Analyze_Entry_Or_Subprogram_Contract): Mention
	new aspect in the comment.
	(Analyze_Entry_Or_Subprogram_Body_Contract): Likewise.
	* einfo.adb (Get_Pragma): Support retrieval of new pragma.
	* einfo.ads (Get_Pragma): Likewise.
	* exp_ch6.adb (Check_Subprogram_Variant): New routine for
	emitting call to check Subprogram_Variant expressions at run
	time.
	(Expand_Call_Helper): Check Subprogram_Variant expressions at
	recursive calls.
	* exp_prag.adb (Make_Op): Moved from expansion of pragma
	Loop_Variant to Exp_Util, so it is now reused for expansion of
	pragma Subprogram_Variant.
	(Process_Variant): Adapt call to Make_Op after moving it to
	Exp_Util.
	(Expand_Pragma_Subprogram_Variant): New routine.
	* exp_prag.ads (Expand_Pragma_Subprogram_Variant): Likewise.
	* exp_util.adb (Make_Variant_Comparison): Moved from Exp_Prag
	(see above).
	* exp_util.ads (Make_Variant_Comparison): Likewise.
	* inline.adb (Remove_Aspects_And_Pragmas): Handle aspect/pragma
	Subprogram_Variant just like similar contracts.
	* par-prag.adb (Prag): Likewise.
	* sem.adb (Insert_Before_First_Source_Declaration): Moved from
	Contracts (see above).
	* sem.ads (Insert_Before_First_Source_Declaration): Likewise.
	* sem_ch12.adb: Mention new aspect in the comment about
	"Implementation of Generic Contracts", just like similar aspects
	are mentioned there.
	* sem_ch13.adb (Insert_Pragma): Mention new aspect in the
	comment, because this routine is now used for Subprogram_Variant
	just like for other similar aspects.
	(Analyze_Aspect_Specifications): Mention new aspect in comments;
	it is handled just like aspect Contract_Cases.
	(Check_Aspect_At_Freeze_Point): Do not expect aspect
	Subprogram_Variant just like we don't expect aspect
	Contract_Cases.
	* sem_prag.adb (Ensure_Aggregate_Form): Now also used for pragma
	Subprogram_Variant, so update comment.
	(Analyze_Pragma): Add initial checks for pragma
	Subprogram_Variant.
	(Analyze_Subprogram_Variant_In_Decl_Part): New routine with
	secondary checks on the new pragma.
	(Sig_Flags): Handle references within pragma Subprogram_Variant
	expression just like references in similar pragma
	Contract_Cases.
	(Is_Valid_Assertion_Kind): Handle Subprogram_Variant just like
	other similar contracts.
	* sem_prag.ads (Analyze_Subprogram_Variant_In_Decl_Part): New
	routine.
	* sem_res.adb (Same_Or_Aliased_Subprograms): Moved to Sem_Util,
	so it can be reused for detection of recursive calls where
	Subprogram_Variant needs to be verified.
	* sem_util.adb (Is_Subprogram_Contract_Annotation): Handle new
	Subprogram_Variant annotation just like other similar
	annotations.
	(Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above).
	* sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
	aspect in the comment.
	(Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above).
	* sinfo.ads (N_Contract): Document handling of
	Subprogram_Variant.
	* snames.ads-tmpl: Add name for the internally generated
	procedure with checks for Subprogram_Variant expression, name
	for the new aspect and new pragma corresponding to aspect
	Subprogram_Variant.

2020-10-20  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.ads: Reorder declaration.

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

	* par-ch4.adb: (P_Aggregate_Or_Paren_Expr): Recognize
	Iterated_Element_Component.
	(P_Iterated_Component_Association): Rebuild node as an Iterated_
	Element_Association when Key_Expression is present, and attach
	either the Loop_Parameter_Specification or the
	Iterator_Specification to the new node.
	* sem_aggr.adb: (Resolve_Container_Aggregate):
	Resolve_Iterated_Association handles bota Iterated_Component_
	and Iterated_Element_Associations, in which case it analyzes and
	resoles the orresponding Key_Expression.
	* exp_aggr.adb (Expand_Iterated_Component): If a Key_Expression
	is present, use it as the required parameter in the call to the
	insertion routine for the destination container aggregate. Call
	this routine for both kinds of Iterated_Associations.

2020-10-19  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb (Expand_Concatenate): Enable needed range checks.

2020-10-19  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
	Set the Warnings_Off flag on the pointer object used in the
	expansion of iterators and similar.

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

	* Makefile.rtl (PowerPC/Linux): Use s-taspri__posix.ads instead
	of s-taspri__posix-noaltstack.ads for s-taspri.ads.

2020-10-19  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Add_Call): Remove excessive condition and
	unnecessary call to Set_Has_Predicates.

2020-10-19  Yannick Moy  <moy@adacore.com>

	* debug.adb: Use debug switch -gnatdF for this alternative
	display of messages.
	* errout.adb (Output_Messages): Alternative display when -gnatdF
	is used.
	* erroutc.adb (Output_Msg_Text): Likewise.

2020-10-19  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch6.adb (Check_Untagged_Equality): Check for AI12-0352.

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

	* exp_ch6.adb (Add_View_Conversion_Invariants): Do not insert
	generated invariant checks when the call is a function call.
	These tests are properly inserted in the code in procedure
	Insert_Post_Call_Actions, which takes care of finding the proper
	insertion point for the checks.
	(Insert_Post_Call_Actions): Add question marks to indicate
	possible gap in handling function calls that appear as aggregate
	components.

2020-10-19  Arnaud Charlet  <charlet@adacore.com>

	* contracts.adb (Process_Preconditions_For): Do not exclude
	instances.
	* sem_ch4.adb (Analyze_Quantified_Expression): Disable spurious
	warning on internally generated variables.

2020-10-19  Ghjuvan Lacambre  <lacambre@adacore.com>

	* debug.adb: Document -gnatd_c flag as being used for CUDA.
	* gnat_cuda.ads: New file.
	* gnat_cuda.adb: New file.
	* rtsfind.ads: Add Interfaces_C_Strings package and
	RE_Fatbin_Wrapper, RE_Register_Fat_Binary,
	RE_Register_Fat_Binary_End, RE_Register_Function, RE_Chars_Ptr,
	RE_New_Char_Array entities.
	* rtsfind.adb: Create new Interfaces_C_Descendant subtype,
	handle it.
	* sem_ch7.adb (Analyze_Package_Body_Helper): Call CUDA init
	procedure.
	* sem_prag.adb (Analyze_Pragma): Call Add_Cuda_Kernel procedure.
	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add gnat_cuda.o.

2020-10-19  Bob Duff  <duff@adacore.com>

	* ghost.adb (Whole_Object_Ref): New function to compute the name
	of the whole object.
	(Mark_And_Set_Ghost_Assignment): Rewrite to use
	Whole_Object_Ref.  We need to partly analyze the left-hand side
	in order to distinguish expanded names and record components.
	* lib-xref.ads, lib-xref.adb (Deferred_References): Move table
	to body, and add Defer_Reference to update the table, avoiding
	duplicates.
	(Generate_Reference): Avoid duplicates.
	* sem_ch8.ads, sem_ch8.adb (Find_Direct_Name): Remove _OK
	parameters, which are no longer needed. Ignore errors in
	Ignore_Errors mode.
	* sem_util.ads, sem_util.adb (Preanalyze_Without_Errors): Make
	this public, so we can call it from Ghost.
	* errout.ads, scng.adb, sem_prag.adb: Minor.

2020-10-19  Ghjuvan Lacambre  <lacambre@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Check if type
	depends on discriminant.

2020-10-19  Bob Duff  <duff@adacore.com>

	* libgnat/a-coinve.adb, libgnat/a-cidlli.adb (Put_Image): Call
	Iterate.

2020-10-19  Arnaud Charlet  <charlet@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): Properly apply
	subtype constraints when using a Default_Value.
	* freeze.adb: Fix typo.

2020-10-19  Yannick Moy  <moy@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix bug
	where a call to Error_Msg_N leads to crash due to
	Error_Msg_Name_1 being removed by the call, while a subsequent
	call to Error_Msg_N tries to use it. The variable
	Error_Msg_Name_1 should be restored prior to the next call. Also
	add checking for the new rules.

2020-10-19  Arnaud Charlet  <charlet@adacore.com>

	* checks.adb (Apply_Type_Conversion_Checks): Minor code clean
	up.
	* exp_ch4.adb (Discrete_Range_Check): Optimize range checks.
	Update comments.
	(Expand_N_Type_Conversion): Generate range check when rewriting
	a type conversion if needed. Add assertion.
	* exp_ch6.adb (Expand_Simple_Function_Return): Minor code clean
	up.
	* sem_res.adb (Resolve_Type_Conversion): Apply range check when
	needed.  Update comments.

2020-10-19  Yannick Moy  <moy@adacore.com>

	* libgnat/a-textio.ads: Update top-level comment.

2020-10-19  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Fix typo.

2020-10-19  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb (Expand_Actuals): Simplify condition for by-copy
	types.

2020-10-19  Yannick Moy  <moy@adacore.com>

	* errout.ads: Add comment regarding lack of preservation of
	Errout state across successive calls to the API.

2020-10-19  Bob Duff  <duff@adacore.com>

	* exp_put_image.adb (Build_Elementary_Put_Image_Call): Use the
	base type to recognize various cases of access types.
	* libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb,
	libgnat/a-cbhama.ads, libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
	libgnat/a-cbmutr.adb, libgnat/a-cbmutr.ads, libgnat/a-cborma.adb,
	libgnat/a-cborma.ads, libgnat/a-cborse.adb, libgnat/a-cborse.ads,
	libgnat/a-cdlili.adb, libgnat/a-cdlili.ads, libgnat/a-cidlli.adb,
	libgnat/a-cidlli.ads, libgnat/a-cihama.adb, libgnat/a-cihama.ads,
	libgnat/a-cihase.adb, libgnat/a-cihase.ads, libgnat/a-cimutr.adb,
	libgnat/a-cimutr.ads, libgnat/a-ciorma.adb, libgnat/a-ciorma.ads,
	libgnat/a-ciormu.adb, libgnat/a-ciormu.ads, libgnat/a-ciorse.adb,
	libgnat/a-ciorse.ads, libgnat/a-coboho.adb, libgnat/a-coboho.ads,
	libgnat/a-cobove.adb, libgnat/a-cobove.ads, libgnat/a-cohama.adb,
	libgnat/a-cohama.ads, libgnat/a-cohase.adb, libgnat/a-cohase.ads,
	libgnat/a-coinho.adb, libgnat/a-coinho.ads,
	libgnat/a-coinho__shared.adb, libgnat/a-coinho__shared.ads,
	libgnat/a-coinve.adb, libgnat/a-coinve.ads, libgnat/a-comutr.adb,
	libgnat/a-comutr.ads, libgnat/a-coorma.adb, libgnat/a-coorma.ads,
	libgnat/a-coormu.adb, libgnat/a-coormu.ads, libgnat/a-coorse.adb,
	libgnat/a-coorse.ads, libgnat/a-strunb.adb, libgnat/a-strunb.ads,
	libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads:
	Implement Put_Image attibute.
	* libgnat/a-stteou.ads, libgnat/s-putima.ads,
	libgnat/a-stouut.ads, libgnat/a-stoubu.adb: Make
	Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
	System.Put_Images Pure, so they can be with'ed by Pure units
	that should have Put_Image defined.
	* libgnat/a-stouut.adb: Add missing column adjustments, and
	remove a redundant one.
	* libgnat/s-putima.adb (Put_Arrow): New routine to print an
	arrow. Avoids adding a with clause to some containers.

2020-10-19  Bob Duff  <duff@adacore.com>

	* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Require matching
	parens or brackets.
	* par.adb, par-tchk.adb (T_Right_Bracket): New procedure to give
	an error on missing ].

2020-10-19  Javier Miranda  <miranda@adacore.com>

	* sem_ch8.adb (Find_Direct_Name): Do not trust in the decoration
	of the Entity attribute in constants associated with
	discriminals of protected types.

2020-10-19  Gary Dismukes  <dismukes@adacore.com>

	* sem_disp.adb (Check_Dispatching_Context): When the enclosing
	subprogram is abstract, bypass early return if the call is
	tag-indeterminate, to continue with the later error checking.

2020-10-19  Javier Miranda  <miranda@adacore.com>

	* sem_ch7.adb (Uninstall_Declarations): Uninstall the
	declaration of a subtype declaration defined in the private part
	of a package.

2020-10-19  Arnaud Charlet  <charlet@adacore.com>

	* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify code since
	we are always under -gnatX if we encounter a Tok_Left_Bracket.
	* scng.adb (Scan): [] is an aggregate under -gnatX and a wide
	character otherwise.

2020-10-19  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb (Expand_Call_Helper): Cleanup.

2020-10-19  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb (Is_Direct_Deep_Call): Refine type from Node_Id to
	Entity_Id.

2020-10-19  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb (May_Fold): Detect all operators, i.e. both binary
	and unary ones.

2020-10-19  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Expand_Inlined_Call): Simplify repeated calls to
	Nkind.

2020-10-18  Alexandre Oliva  <oliva@adacore.com>

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Compile Ada.Numerics
	child units Aux_Generic_Float, Aux_Long_Long_Float, Aux_Long_Float,
	Aux_Float, Aux_Short_Float, Aux_Compat, and Aux_Linker_Options.
	(X86_TARGET_PAIRS): Drop dummy body for Aux.  Use x86 version
	of Aux_Compat.
	(X86_64_TARGET_PAIRS): Likewise.
	(LIBGNAT_TARGET_PAIRS): On VxWorks, select the nolibm
	variants.  Drop the darwin version of Aux.  Drop the redundant
	libc-x86 numaux variants on x86* kfreebsd variants.
	* libgnat/a-nagefl.ads: New Aux_Generic_Float.
	* libgnat/a-naliop.ads: New Aux_Linker_Options.
	* libgnat/a-naliop__nolibm.ads: New.
	* libgnat/a-nallfl.ads: New Aux_Long_Long_Float.
	* libgnat/a-nalofl.ads: New Aux_Long_Float.
	* libgnat/a-nuaufl.ads: New Aux_Float.
	* libgnat/a-nashfl.ads: New Aux_Short_Float.
	* libgnat/a-ngcefu.adb (Exp): Factor out the Im (X) passed to
	Sin and Cos in the Complex variant too.
	* libgnat/a-ngcoty.adb: Switch to Aux_Generic_Float.  Drop
	redundant conversions.
	* libgnat/a-ngelfu.adb: Likewise.
	* libgnat/a-nuauco.ads: New Aux_Compat.
	* libgnat/a-nuauco__x86.ads: New.
	* libgnat/a-numaux.ads: Replace with Compat wrapper.
	* libgnat/a-numaux__darwin.adb: Remove.
	* libgnat/a-numaux__darwin.ads: Remove.
	* libgnat/a-numaux__dummy.adb: Remove.
	* libgnat/a-numaux__libc-x86.ads: Remove.
	* libgnat/a-numaux__vxworks.ads: Remove.

2020-10-16  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb,
	freeze.adb, sem_aggr.adb, sem_attr.adb, sem_ch13.adb,
	sem_ch13.ads, sem_ch6.adb, sem_eval.adb, sem_util.adb: Fix style
	and typos.

2020-10-16  Arnaud Charlet  <charlet@adacore.com>

	* sem_cat.adb (Is_Primary): Handle N_Range properly.

2020-10-16  Ghjuvan Lacambre  <lacambre@adacore.com>

	* elists.ads (New_Elmt_List): New functions.
	* elists.adb (New_Elmt_List): New functions.
	* exp_prag.adb: Add dependency on Elists.
	(Expand_Pragma_CUDA_Execute): New function.
	(Expand_N_Pragma): Add call to Expand_Pragma_CUDA_Execute.
	* rtsfind.ads: Add CUDA.Internal, CUDA.Runtime, System.C
	packages and RE_Push_Call_Configuration,
	RE_Pop_Call_Configuration, RE_Launch_Kernel, RO_IC_Unsigned,
	RO_IC_Unsigned_Long_Long entities.
	* rtsfind.adb: Extend Interfaces_Descendant to include
	Interfaces_C.

2020-10-16  Bob Duff  <duff@adacore.com>

	* par-ch4.adb (P_Name): Allow Tok_Left_Bracket in two places to
	call P_Qualified_Expression. We don't need to modify other
	places that call P_Qualified_Expression, because a
	qualified_expression is a name in Ada 2012 and higher, so P_Name
	is the right place.  The parser already parses aggregates with
	brackets; we just need to allow that in qualified expressions.

2020-10-16  Javier Miranda  <miranda@adacore.com>

	* sem_ch12.adb (Check_Generic_Child_Unit): When the child unit
	is a renaming of a generic child unit then traverse the scope
	containing the renaming declaration to locate the instance of
	its parent.  Otherwise the parent is not installed and the
	frontend cannot process the instantiation.

2020-10-16  Bob Duff  <duff@adacore.com>

	* libgnat/a-numeri.ads: Remove the greek letter.

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

	* exp_imgv.adb (Expand_Image_Attribute): Refine previous patch
	to use root type (and not base type) on enumeration types.

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

	* exp_imgv.adb (Expand_Image_Attribute): Use the base type
	instead of the root type when type of object is private. Remove
	Ada_2020 guard, because it has been checked during prior
	analysis. Use Underlying_Type in all cases, as it is a no-op on
	types that are not private.

2020-10-16  Arnaud Charlet  <charlet@adacore.com>

	* aspects.ads, snames.ads-tmpl: Add support for
	Exclusive_Functions aspect.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Ditto.
	* exp_ch9.adb (Build_Protected_Subprogram_Body): Take aspect
	Exclusive_Functions into account.

2020-10-16  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies on system.ads,
	add gnatbind switch -t to avoid timestamp inconsistencies during
	build.
	* libgnat/system.ads: Move...
	* gcc-interface/system.ads: ... here.

2020-10-16  Gary Dismukes  <dismukes@adacore.com>

	* sem_eval.adb (Subtypes_Statically_Match): Retrieve
	discriminant constraints from the two types via new function
	Original_Discriminant_Constraint rather than
	Discriminant_Constraint.
	(Original_Discriminant_Constraint): New function to locate the
	nearest explicit discriminant constraint associated with a type
	that may possibly have inherited a constraint from an ancestor
	type.

2020-10-16  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb (Expand_Simple_Function_Return): Remove obsolete
	comment and code.

2020-10-16  Arnaud Charlet  <charlet@adacore.com>

	PR ada/95953
	* libgnat/a-suenco.adb (Convert): Fix handling of third UTF-8
	byte.

2020-10-16  Steve Baird  <baird@adacore.com>

	* exp_util.adb (Is_Related_To_Func_Return): Cope with the case
	where the FE introduces a type conversion.

2020-10-16  Chris Martin  <cmartin@adacore.com>

	* sem_util.ads, sem_util.adb (Is_Access_Variable): New function.
	(Is_Synchronized_Object): Call new function when determining if
	a constant can be regarded as synchronized.

2020-10-16  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
	Call Set_BIP_Initialization_Call systematically.
	* exp_ch7.adb (Process_Transient_In_Scope): Take
	BIP_Initialization_Call into account to decide where to insert
	the Hook.

2020-10-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Is_View_Conversion): Detect qualified types.
	* sem_util.ads (Is_Actual_In_Out_Parameter): Fix style in
	comment.

2020-10-16  Arnaud Charlet  <charlet@adacore.com>

	* scil_ll.adb, sem_scil.adb: Update assertions.

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

	* sem_attr.adb (Min_Max): Handle the case where attribute
	name (qualified by required type) appears as the reducer of a
	'Reduce attribute reference.
	(Resolve_Attribute) <Reduce>: Handle properly the presence of a
	procedure or an attribute reference Min/Max as a reducer.
	* exp_attr.adb (Expand_Attribute_Reference) <Reduce>: New
	subprogram Build_Stat, to construct the combining statement
	which appears in the generated loop for Reduce, and which is
	either a function call when the reducer is a function or an
	attribute, or a procedure call when reducer is an appropriate
	procedure.  BuilD_Stat is used both when the prefix of 'Reduce
	is a value sequence and when it is an object

2020-10-16  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb (Expand_Concatenate): Allocate result of string
	concatenation on secondary stack when relevant.

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

	* sem_res.adb (Resolve_Declare_Expression): Retrieve the created
	block entity that is the scope of the local declarations, from
	either a local object declaration or an object renaming
	declaration. The block entity does not have an explicit
	declaration, but appears as the scope of all locally declared
	objects.

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

	* libgnat/system-aix.ads: Likewise.
	* libgnat/system-darwin-arm.ads: Likewise.
	* libgnat/system-darwin-ppc.ads: Likewise.
	* libgnat/system-darwin-x86.ads: Likewise.
	* libgnat/system-djgpp.ads: Likewise.
	* libgnat/system-dragonfly-x86_64.ads: Likewise.
	* libgnat/system-freebsd.ads: Likewise.
	* libgnat/system-hpux-ia64.ads: Likewise.
	* libgnat/system-hpux.ads: Likewise.
	* libgnat/system-linux-alpha.ads: Likewise.
	* libgnat/system-linux-arm.ads: Likewise.
	* libgnat/system-linux-hppa.ads: Likewise.
	* libgnat/system-linux-ia64.ads: Likewise.
	* libgnat/system-linux-m68k.ads: Likewise.
	* libgnat/system-linux-mips.ads: Likewise.
	* libgnat/system-linux-ppc.ads: Likewise.
	* libgnat/system-linux-riscv.ads: Likewise.
	* libgnat/system-linux-s390.ads: Likewise.
	* libgnat/system-linux-sh4.ads: Likewise.
	* libgnat/system-linux-sparc.ads: Likewise.
	* libgnat/system-linux-x86.ads: Likewise.
	* libgnat/system-lynxos178-ppc.ads: Likewise.
	* libgnat/system-lynxos178-x86.ads: Likewise.
	* libgnat/system-mingw.ads: Likewise.
	* libgnat/system-qnx-aarch64.ads: Likewise.
	* libgnat/system-rtems.ads: Likewise.
	* libgnat/system-solaris-sparc.ads: Likewise.
	* libgnat/system-solaris-x86.ads: Likewise.
	* libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-arm-rtp.ads: Likewise.
	* libgnat/system-vxworks-arm.ads: Likewise.
	* libgnat/system-vxworks-e500-kernel.ads: Likewise.
	* libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-e500-rtp.ads: Likewise.
	* libgnat/system-vxworks-e500-vthread.ads: Likewise.
	* libgnat/system-vxworks-ppc-kernel.ads: Likewise.
	* libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
	* libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-ppc-rtp.ads: Likewise.
	* libgnat/system-vxworks-ppc-vthread.ads: Likewise.
	* libgnat/system-vxworks-ppc.ads: Likewise.
	* libgnat/system-vxworks-x86-kernel.ads: Likewise.
	* libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-x86-rtp.ads: Likewise.
	* libgnat/system-vxworks-x86-vthread.ads: Likewise.
	* libgnat/system-vxworks-x86.ads: Likewise.
	* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-aarch64.ads: Likewise.
	* libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-arm.ads: Likewise.
	* libgnat/system-vxworks7-e500-kernel.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp.ads: Likewise.
	* libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
	* libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
	* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-x86-kernel.ads: Likewise.
	* libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-x86-rtp.ads: Likewise.
	* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
	* libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.

2020-10-16  Arnaud Charlet  <charlet@adacore.com>

	* Makefile.rtl, gnat1drv.adb, expander.adb
	doc/gnat_rm/implementation_defined_pragmas.rst,
	doc/gnat_ugn/building_executable_programs_with_gnat.rst,
	doc/gnat_ugn/the_gnat_compilation_model.rst, exp_ch5.ads,
	exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
	exp_util.ads, libgnarl/s-osinte__aix.adb,
	libgnarl/s-osinte__android.adb, libgnarl/s-osinte__darwin.adb,
	libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__hpux-dce.adb,
	libgnarl/s-osinte__lynxos178.adb, libgnarl/s-osinte__posix.adb,
	libgnarl/s-osinte__qnx.adb, libgnarl/s-osinte__rtems.adb,
	libgnarl/s-osinte__solaris.adb, libgnarl/s-osinte__vxworks.adb,
	libgnarl/s-osinte__x32.adb, libgnarl/s-solita.adb,
	libgnarl/s-taasde.adb, libgnarl/s-taprob.adb,
	libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb,
	libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
	libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
	libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
	libgnarl/s-tarest.adb, libgnarl/s-tasini.adb,
	libgnarl/s-taskin.adb, libgnarl/s-taspri__dummy.ads,
	libgnarl/s-taspri__hpux-dce.ads, libgnarl/s-taspri__lynxos.ads,
	libgnarl/s-taspri__mingw.ads,
	libgnarl/s-taspri__posix-noaltstack.ads,
	libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads,
	libgnarl/s-taspri__vxworks.ads, libgnarl/s-tassta.adb,
	libgnarl/s-tasuti.adb, libgnarl/s-tposen.adb,
	libgnat/a-except.adb, libgnat/a-except.ads,
	libgnat/s-dwalin.adb, libgnat/s-dwalin.ads,
	libgnat/s-mastop.ads, libgnat/s-soflin.adb,
	libgnat/s-stalib.adb, libgnat/s-stalib.ads,
	libgnat/s-stchop.adb, libgnat/s-stchop.ads,
	libgnat/s-stchop__limit.ads, libgnat/s-traceb.ads,
	libgnat/s-traent.adb, libgnat/s-traent.ads,
	libgnat/s-trasym.adb, libgnat/s-trasym.ads,
	libgnat/s-trasym__dwarf.adb, opt.adb, opt.ads, par-prag.adb,
	sem_prag.adb, snames.ads-tmpl, switch-c.adb, targparm.adb,
	targparm.ads, usage.adb: Remove support for -gnatP and pragma
	Polling.
	* gnat_ugn.texi: Regenerate.
	* libgnat/a-excpol.adb, libgnat/a-excpol__abort.adb: Removed.

2020-10-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Array_Type_Declaration): Create itype with unique
	name.

2020-10-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): Limit scope of a
	local object by hiding it from local subprograms; simplify
	nested if-then-if-then condition for an Ada 83 restriction.
	(Array_Type_Declaration): Confirm with assertion when the else
	branch is executed.
	(Find_Type_Of_Object): Simplify membership test with a subtype
	range.

2020-10-16  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Analyze_Global_In_Decl_Part): Update check to
	reject volatile object for reading.
	* sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Update
	check to reject volatile object for reading.
	* sem_util.adb, sem_util.ads
	(Check_Nonvolatile_Function_Profile,
	Has_Effectively_Volatile_Profile): Detect use of volatile object
	for reading.
	(Has_Enabled_Property): Accept constants as well.
	(Is_Effectively_Volatile_For_Reading): New function based on
	existing Is_Effectively_Volatile.
	(Is_Effectively_Volatile_Object_For_Reading): Adapted from the
	existing Is_Effectively_Volatile_Object, using a shared
	implementation in Is_Effectively_Volatile_Object_Shared.

2020-10-16  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch7.adb (Check_Unnesting_In_Decls_Or_Stmts): In the case
	of an if-statement, call Unnest_If_Statement to determine
	whether there are nested subprograms in any of the statement
	lists of the "if" parts that require a wrapping procedure to
	handle possible up-level refeferences.
	(Unnest_Block): Call Check_Unnesting_In_Handlers to do unnesting
	of subprograms in exception handlers of the block statement.
	(Unnest_If_Statement): New procedure to traverse the parts of an
	if-statement and create wrapper procedures as needed to
	encapsulate nested subprograms that may make up-level
	references.
	(Check_Stmts_For_Subp_Unnesting): New support procedure in
	Unnest_If_Statement to traverse a statement list looking for
	top-level subprogram bodies that require wrapping inside a
	procedure (via Unnest_Statement_List) as well as possibly having
	other statements (block, loop, if) that may themselves require
	an unnesting transformation (via
	Check_Unnesting_In_Decls_Or_Stmts).
	(Unnest_Statement_List): New support procedure to traverse the
	statements of a statement list that contains subprogram bodies
	at the top level and replace the statement list with a wrapper
	procedure body encapsulating the statements and a call to the
	procedure.

2020-10-16  Arnaud Charlet  <charlet@adacore.com>

	* sem_prag.adb (Check_OK_Stream_Convert_Function): Check for
	abstract subprograms.

2020-10-16  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
	(No_Local_Timing_Events): Package Timing_Events is a child of
	Ada.Real_Time, not of Ada.
	* gnat_rm.texi: Regenerate.

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

	* doc/gnat_rm/implementation_defined_attributes.rst: Document the
	new Max_Integer_Size attribute.
	* gnat_rm.texi: Regenerate.
	* exp_attr.adb (Get_Integer_Type): Call Small_Integer_Type_For.
	(Expand_N_Attribute_Reference) <Attribute_Pred>: Replace selection
	code with call to Integer_Type_For.
	<Attribute_Succ>: Likewise.
	<Attribute_Val>: Likewise.
	<Attribute_Valid>: Likewise.
	<Attribute_Max_Integer_Size>: Raise Program_Error.
	* exp_ch3.adb (Expand_Freeze_Enumeration_Type): Replace selection
	code with call to Integer_Type_For.
	(Simple_Init_Initialize_Scalars_Type): Use Long_Long_Unsigned and
	System_Max_Integer_Size to size the largest integer type.
	* exp_pakd.adb (Compute_Linear_Subscript): Minor tweak.
	(Create_Packed_Array_Impl_Type): Use Small_Integer_Type_For.
	* exp_util.ads (Integer_Type_For): New function.
	(Small_Integer_Type_For): Likewise.
	* exp_util.adb (Adjust_Condition): Use Integer_Type_For.
	(Component_May_Be_Bit_Aligned): Use System_Max_Integer_Size.
	(Integer_Type_For): New function.
	(Small_Integer_Type_For): Likewise.
	(Matching_Standard_Type): Use Small_Integer_Type_For.
	(Needs_Constant_Address): Replace 64 with System_Max_Integer_Size.
	* freeze.adb (Set_Small_Size): Likewise.
	(Size_Known): Likewise.
	(Check_Suspicious_Modulus): Likewise.
	(Check_Large_Modular_Array): Likewise.
	(Freeze_Entity): Likewise.
	* layout.adb (Layout_Type): Likewise.
	* sem_aggr.adb: Add with and use clauses for Ttypes.
	(Resolve_Aggregate): Replace 64 with System_Max_Integer_Size.
	* sem_attr.ads (Attribute_Impl_Def): Add Attribute_Max_Integer_Size.
	* sem_attr.adb (Analyze_Attribute) <Attribute_Max_Integer_Size>: New
	(Eval_Attribute): Likewise.
	* sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Change max
	scalar size to System_Max_Integer_Size.
	(Check_Array_Type): Replace 64 with System_Max_Integer_Size and
	remove superfluous test.
	(OK_Component): Likewise.
	* sem_ch5.adb: Add with and use clauses for Ttypes.
	(Analyze_Assignment): Replace 64 with System_Max_Integer_Size.
	* snames.ads-tmpl (Name_Max_Integer_Size): New attribute name.
	(Attribute_Id): Add Attribute_Max_Integer_Size.
	* ttypes.ads (System_Max_Integer_Size): New constant.

2020-10-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch10.adb (Install_With_Clause): Fix implementation of Ada
	2005 AI-262 by taking into account generic packages.  Minor
	reformatting.
	* libgnat/a-cbhase.ads, libgnat/a-cbhase.adb: Remove use clause
	on runtime unit spec.

2020-10-15  Arnaud Charlet  <charlet@adacore.com>

	* einfo.ads, einfo.adb (Scope_Depth_Value,
	Set_Scope_Depth_Value): Add assertions on valid nodes and update
	documentation accordingly.
	(Write_Field22_Name): Sync with change in Scope_Depth_Value.
	* sem_ch8.adb (Find_Direct_Name): Fix call to Scope_Depth_Value.

2020-10-15  Javier Miranda  <miranda@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Adding semantic support of
	Standard to Default_Storage_Pool.
	* freeze.adb (Freeze_Entity): If pragma Default_Storage_Pool
	applies and it is set to Standard then use the global pool as
	the associated storage pool of the access type.

2020-10-15  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.ads (Might_Have_Tasks): Update documentation.
	* exp_ch6.adb (Might_Have_Tasks): Return also true when the type
	has tasks.
	(Make_Build_In_Place_Call_In_Allocator): Code cleanup.
	* exp_ch3.adb (Ensure_Activation_Chain_And_Master,
	Expand_N_Full_Type_Declaration, Expand_N_Object_Declaration):
	Code cleanup.

2020-10-15  Steve Baird  <baird@adacore.com>

	* checks.adb (Apply_Predicate_Check): Generate "infinite
	recursion" warning message even if run-time predicate checking
	is disabled.
	* exp_ch6.adb (Expand_Simple_Function_Return): In testing
	whether the returned expression is a function call, look for the
	case where the call has been transformed into a dereference of
	an access value that designates the result of a function call.
	* sem_ch3.adb (Analyze_Object_Declaration): Legality checking
	for a static expression is unaffected by assertion policy (and,
	in particular, enabling/disabling of subtype predicates.  To get
	the right legality checking, we need to call
	Check_Expression_Against_Static_Predicate for a static
	expression even if predicate checking is disabled for the given
	predicate-bearing subtype.  On the other hand, we don't want to
	call Make_Predicate_Check unless predicate checking is enabled.
	* sem_ch7.adb (Uninstall_Declarations.Preserve_Full_Attributes):
	Preserve the Predicates_Ignored attribute.
	* sem_eval.adb (Check_Expression_Against_Static_Predicate):
	Previously callers ensured that this procedure was only called
	if predicate checking was enabled; that is no longer the case,
	so predicates-disabled case must be handled.
	* sem_prag.adb (Analyze_Pragma): Fix bug in setting
	Predicates_Ignored attribute in Predicate pragma case.

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

	* freeze.adb (Freeze_Fixed_Point_Type): Do not scale the bounds
	of a declared subtype using the 'Small of the type;  this is
	done during resolution of the bound itself, unlike what is done
	for the bounds of the base type, which are used to determine its
	required size. Previous code performed this scaling twice,
	leading to meaningless values for such a subtype.

2020-10-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Bad_Predicated_Subtype_Use): Emit an
	unconditional error, not a conditional warning.

2020-10-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Process_Subtype): Combine guards for
	Null_Exclusion_Present in May_Have_Null_Exclusion; use this
	combined guard when checking AI-231.

2020-10-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Process_Subtype): Sync May_Have_Null_Exclusion
	with assertion in Null_Exclusion_Present; clarify the scope of
	local variables.

2020-10-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration): Fix style.
	(Make_Index): Refactor to avoid repeated detection of subtype
	indication; add comment.

2020-10-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Is_Acceptable_Dim3): Use Is_RTE to not pull CUDA
	package unless necessary; rename local Tmp variable; iterate
	with procedural Next.

2020-10-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Array_Type_Declaration): Refine type of a local
	variable.
	(Make_Index): Simplify to avoid assignment with a type entity
	and then backtracking by reassigning to Empty; remove excessive
	whitespace.
	* sem_ch9.adb (Analyze_Entry_Body): Remove extra parens.

2020-10-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Access_Subprogram_Declaration): Remove extra
	parens.
	(Make_Index): Remove excessive calls to Is_Type.

2020-10-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_util.adb (Enter_Name): Remove unnecessary conditions in
	Enter_Name that come from the beginning of times.

2020-10-15  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb (Expand_Simple_Function_Return): Remove DSP part
	of comment, and reformat.

2020-10-15  Boris Yakobowski  <yakobowski@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Do not expand
	'Initialized in CodePeer mode.

2020-10-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch12.adb (Reset_Entity): Protect against malformed tree.

2020-10-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Add_Predicates): Prevent analyzing twice the
	same pragma in case an inner package references the type with a
	predicate (as opposed to defining the type).

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

	* libgnat/a-cfinve.adb (Int): Use subtype of Long_Long_Integer.
	* libgnat/a-cofove.adb (Int): Likewise.
	* libgnat/a-cgcaso.adb (T): Likewise.
	* libgnat/a-cogeso.adb (T): Likewise.
	* libgnat/g-debpoo.ads (Byte_Count): Use Long_Long_Integer'Size.

2020-10-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.adb: Replace list of N_Defining_... enumerations with
	N_Entity.

2020-10-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.ads, sem_ch3.adb (Make_Index): Refined type of
	parameter.
	(Constrain_Index): Likewise.
	(Array_Type_Declaration): Refine type of a local counter
	variable; remove a trivially useless initialization.

2020-10-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration): Recognize both
	identifiers and expanded names; use high-level Is_Scalar_Type
	instead of low-level membership test.

2020-10-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_eval.adb (Eval_Intrinsic_Call, Fold_Shift): Add support
	for Shift_Right_Arithmetic and for signed integers.
	* exp_ch4.adb (Expand_N_Op_Rotate_Left,
	Expand_N_Op_Rotate_Right, Expand_N_Op_Shift_Left,
	Expand_N_Op_Shift_Right_Arithmetic): Minor reformatting and code
	cleanup to ensure a consistent handling. Update comments and add
	assertion.

2020-10-15  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Visible_Component): Enable this code for task
	and protected types, as well as record and private types.
	* sem_ch13.ads (Replace_Type_References_Generic): Update
	comment.  Move the efficiency comment into the body, because
	it's about the implementation.

2020-10-15  Arnaud Charlet  <charlet@adacore.com>

	* par-ch13.adb (Get_Aspect_Specifications): Generate a warning
	rather than an error on unknown aspects unless -gnatd2 is used.
	(Aspect_Specifications_Present): Improve detection of unknown
	aspects.
	* debug.adb (Debug_Flag_2): Update document.

2020-10-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_res.adb (Resolve_Call): Do not try to inline intrinsic
	calls.

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

	* exp_aggr.adb (Expand_N_Aggregate): A record aggregate requires
	a non-private type.
	* sem_ch13.adb (Valid_Assign_Indexed): New subprogram local to
	Resolve_Aspect_Aggregate, to handle the case when the
	corresponding name appearing in the aspect specification for an
	indexed aggregate is an overloaded operation.
	* libgnat/a-convec.ads, libgnat/a-convec.adb,
	libgnat/a-coinve.ads, libgnat/a-coinve.adb,
	libgnat/a-cobove.ads, libgnat/a-cobove.adb,
	libgnat/a-cdlili.ads, libgnat/a-cdlili.adb,
	libgnat/a-cbdlli.ads, libgnat/a-cbdlli.adb,
	libgnat/a-cohama.ads, libgnat/a-cihama.ads,
	libgnat/a-cbhama.ads, libgnat/a-cborma.ads,
	libgnat/a-ciorma.ads, libgnat/a-coorma.ads,
	libgnat/a-cihase.ads, libgnat/a-cohase.ads,
	libgnat/a-cbhase.ads, libgnat/a-cborse.ads,
	libgnat/a-ciorse.ads, libgnat/a-coorse.ads: Add Ada_2020 aspect
	Aggregate to types declared in standard containers, as well as
	new subprograms where required.

2020-10-15  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/g-arrspl.ads, libgnat/g-arrspl.adb (Create,
	First_Cursor, Advance, Has_Element): New.

2020-10-15  Arnaud Charlet  <charlet@adacore.com>

	* Makefile.rtl: Add target pair for interfac.ads.
	* libgnat/interfac.ads: Add a comment.
	* libgnat/interfac__2020.ads: New, used for bootstrap purposes.
	* sem_util.adb (Is_Static_Function): Always return False for pre
	Ada 2020 to e.g. ignore the Static aspect in Interfaces for
	Ada < 2020.

2020-10-15  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.adb (Remove_Side_Effects): Move special-casing for
	GNATprove to be applied to all object declarations.

2020-10-12  Alexandre Oliva  <oliva@adacore.com>

	* libgnat/a-ngelfu.ads (Sin, Cos): Make the single-argument
	functions inline.

2020-10-11  Alexandre Oliva  <oliva@adacore.com>

	* libgnat/a-numaux.ads: Make all imports Intrinsic.
	* libgnat/a-numaux__darwin.ads: Likewise.
	* libgnat/a-numaux__libc-x86.ads: Likewise.
	* libgnat/a-numaux__vxworks.ads: Likewise.

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

	* gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the end locus
	of body and declaration earlier.

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

	* gcc-interface/trans.c (gigi): Adjust build_optimization_node
	caller.

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

	* fe.h: Fix pilot error in previous change.
	* gcc-interface/gigi.h (enum standard_datatypes): Add ADT_mulv128_decl.
	(mulv128_decl): New macro.
	(get_target_long_long_long_size): Declare.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Use a maximum size of
	128 bits for discrete types if Enable_128bit_Types is true.
	* gcc-interface/targtyps.c: Include target.h.
	(get_target_long_long_long_size): New function.
	* gcc-interface/trans.c (gigi): Initialize mulv128_decl if need be.
	(build_binary_op_trapv): Call it for 128-bit multiplication.
	* gcc-interface/utils.c (make_type_from_size): Enforce a maximum
	size of 128 bits if Enable_128bit_Types is true.

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

	* gcc-interface/trans.c (lvalue_for_aggr_p) <N_Object_Declaration>:
	Return false unconditionally.

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

	* gcc-interface/trans.c (gnat_to_gnu) <N_Object_Declaration>: Clear
	the SLOC of the expression of a tag.

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

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Only give
	a warning for the overlay of an aliased array with an unconstrained
	nominal subtype if the address is absolute.

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/misc.c (get_array_bit_stride): Return TYPE_ADA_SIZE
	for record and union types.

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

	* gcc-interface/misc.c (gnat_get_fixed_point_type): Bail out only
	when the GNAT encodings are specifically used.

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-09-10  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/misc.c: Include tree-pass.h.
	(internal_error_function): Call emergency_dump_function.

2020-09-03  Arnaud Charlet  <charlet@adacore.com>

	* fe.h, opt.ads (Enable_128bit_Types): New.
	* stand.ads (Standard_Long_Long_Long_Integer,
	S_Long_Long_Long_Integer): New.

2020-09-03  Arnaud Charlet  <charlet@adacore.com>

	* sem_util.ads, sem_util.adb (Get_Fullest_View): New procedure.
	* exp_unst.adb (Check Static_Type): Do all processing on fullest
	view of specified type.

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

	* gcc-interface/trans.c (gigi): Set exact argument of a vector
	growth function to true.
	(Attribute_to_gnu): Likewise.

2020-07-27  Alexandre Oliva  <oliva@adacore.com>

	* switch.adb (Is_Internal_GCC_Switch): Revert accidental
	reintroduction of auxbase and auxbase-strip.

2020-07-27  Javier Miranda  <miranda@adacore.com>

	* sem_res.adb (Resolve_Actuals): Restrict the check on matching
	aliased components to view conversions of array types that are
	not placed in an instance. In such case at runtime an object is
	created.
	* sem_util.ads (Is_Actual_In_Out_Parameter, Is_View_Conversion):
	New subprograms.
	* sem_util.adb (Is_Actual_In_Out_Parameter, Is_View_Conversion):
	New subprograms.

2020-07-27  Arnaud Charlet  <charlet@adacore.com>

	* lib-xref.adb (Generate_Reference): Protect against malformed
	tree in case of severe errors.
	* sem_ch8.adb (Add_Implicit_Operator): Ditto.

2020-07-27  Arnaud Charlet  <charlet@adacore.com>

	* opt.ads (Ada_Version_Runtime): Set to Ada_2020.
	* sem_ch3.adb (Analyze_Subtype_Declaration): Propagate
	Is_Independent flag to subtypes.
	* libgnarl/s-taprop__linux.adb: Adapt to Ada 2020 warning.
	* libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
	libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
	libgnat/a-nbnbre.ads, libgnat/a-stobbu.adb,
	libgnat/a-stobbu.ads, libgnat/a-stobfi.adb,
	libgnat/a-stobfi.ads, libgnat/a-stoubu.adb,
	libgnat/a-stoubu.ads, libgnat/a-stoufi.adb,
	libgnat/a-stoufi.ads, libgnat/a-stoufo.adb,
	libgnat/a-stoufo.ads, libgnat/a-stouut.adb,
	libgnat/a-stouut.ads, libgnat/a-strsto.ads,
	libgnat/a-ststbo.adb, libgnat/a-ststbo.ads,
	libgnat/a-ststun.adb, libgnat/a-ststun.ads,
	libgnat/a-stteou.ads, libgnat/s-aoinar.ads,
	libgnat/s-aomoar.ads, libgnat/s-atopex.ads,
	libgnat/s-putaim.adb, libgnat/s-putaim.ads,
	libgnat/s-putima.adb, libgnat/s-putima.ads: Remove pragma
	Ada_2020, now redundant.

2020-07-27  Justin Squirek  <squirek@adacore.com>

	* exp_ch6.adb (Expand_Call_Helper): Modify addition of the extra
	accessibility parameter to take into account the extra
	accessibility of formals within the calling subprogram.

2020-07-27  Bob Duff  <duff@adacore.com>

	* exp_imgv.adb (Expand_Image_Attribute): Add Root_Type, so
	constrained subtypes work.

2020-07-27  Ghjuvan Lacambre  <lacambre@adacore.com>

	* exp_prag.adb (Arg1, Arg2, Arg3): Removed.
	(Arg_N): New function.

2020-07-27  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Allow values in Ada
	2020 mode.

2020-07-27  Arnaud Charlet  <charlet@adacore.com>

	* sem_res.adb (Resolve_Actuals): Refine 6.4.1 rules as per
	AI12-0377.

2020-07-27  Bob Duff  <duff@adacore.com>

	* errout.ads, errout.adb (Error_Msg_Ada_2020_Feature): New
	procedure analogous to Error_Msg_Ada_2012_Feature.
	* sem_attr.adb (Analyze_Image_Attribute): Use
	Error_Msg_Ada_2012_Feature and Error_Msg_Ada_2020_Feature to
	indicate that Object'Image is allowed in Ada 2012, and that
	'Image is allowed for any type in Ada 2020.

2020-07-27  Dmitriy Anisimkov  <anisimko@adacore.com>

	* libgnat/a-strunb.adb (Sum, Mul, Saturated_Sum, Saturated_Mul):
	New routines.  Use them when resulting string size more that
	length of the strings in parameters.
	(Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side
	of condition to avoid overflow.
	* libgnat/a-strunb__shared.adb (Sum, Mul): New routines.
	(Allocate): New routine with 2 parameters.  Use routine above
	when resulting string size more that length of the strings in
	parameters.
	(Aligned_Max_Length): Do not try to align to more than Natural'Last.
	(Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side
	of condition to avoid overflow.

2020-07-27  Arnaud Charlet  <charlet@adacore.com>

	* sem_attr.adb (Resolve_Attribute): Remove dead code.

2020-07-27  Arnaud Charlet  <charlet@adacore.com>

	* aspects.adb, atree.adb, atree.ads, checks.adb, contracts.adb,
	einfo.adb, errout.adb, exp_aggr.adb, exp_attr.adb, exp_cg.adb,
	exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb,
	exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb,
	exp_dbug.adb, exp_disp.adb, exp_intr.adb, exp_pakd.adb,
	exp_prag.adb, exp_put_image.adb, exp_smem.adb, exp_tss.adb,
	exp_unst.adb, exp_util.adb, freeze.adb, ghost.adb, gnat1drv.adb,
	inline.adb, lib-writ.adb, lib-xref-spark_specific.adb,
	lib-xref.adb, namet.adb, namet.ads, nlists.adb, par-ch10.adb,
	par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
	par-prag.adb, par-util.adb, par_sco.adb, pprint.adb,
	repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, sem.adb,
	sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb,
	sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb,
	sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb,
	sem_ch8.adb, sem_ch9.adb, sem_dim.adb, sem_disp.adb,
	sem_dist.adb, sem_elab.adb, sem_elim.adb, sem_eval.adb,
	sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
	sem_scil.adb, sem_type.adb, sem_util.adb, sem_warn.adb,
	sinfo.adb, sinfo.ads, sprint.adb, styleg.adb, tbuild.adb,
	treepr.adb (Nkind_In, Nam_In, Ekind_In): Removed, replaced by
	membership tests.

2020-07-27  Gary Dismukes  <dismukes@adacore.com>

	* sem_prag.adb (Analyze_Pragma, Pragma_Max_Entry_Queue_Length):
	Refine error message to indicate that the pragma must apply to
	an entry declaration, not just an entry.

2020-07-27  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator):
	Revert previous patch, and add a missing type conversion to
	displace the pointer to the allocated object to reference the
	target dispatch table.

2020-07-27  Javier Miranda  <miranda@adacore.com>

	* sem_res.adb (Resolve_Actuals): Restore restrictive check on
	view conversions which required matching value of
	Has_Aliased_Components of formals and actuals. Required to avoid
	the regression of ACATS b460005.

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

	* sem_ch12.adb (Instantiate_Package_Body): Add commentary for a
	nesting issue with parent handling and private view switching.
	(Switch_View): Do not skip specific private-dependent subtypes.

2020-07-27  Patrick Bernardi  <bernardi@adacore.com>

	* Makefile.rtl: Remove X86_TARGET_PAIRS for x86-lynx178elf.

2020-07-27  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Address_Specification_Clause): Do not
	emit a warning when a constant declaration in a generic unit
	overlays a generic In_Parameter.

2020-07-27  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Check_Abstract_Overriding): Remove Scope
	comparison test from test related to initial implementation of
	AI12-0042, plus remove the related ??? comment.
	(Derive_Subprogram): Add test requiring that the type extension
	appear in the visible part of its enclosing package when
	checking the overriding requirement of 7.3.2(6.1/4), as
	clarified by AI12-0382.

2020-07-27  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference) Extend
	existing workaround to 'Pos.

2020-07-27  Bob Duff  <duff@adacore.com>

	* libgnat/s-rannum.ads, libgnat/s-rannum.adb: Add Put_Image.
	This will be inherited by the language-defined packages
	Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random.
	* libgnat/a-convec.ads, libgnat/a-convec.adb: Add Put_Image.
	* libgnat/s-putima.ads: Add pragma Preelaborate, so this can be
	imported into containers packages.
	* libgnat/s-putima.adb: Move Digit to private part; otherwise
	reference to Base is illegal in Preelaborate generic.
	* exp_put_image.adb (Build_Record_Put_Image_Procedure): Use the
	base type.

2020-07-23  Arnaud Charlet  <charlet@adacore.com>

	* aspects.ads: Declare CUDA_Global as aspect.
	* einfo.ads: Use Flag118 for the Is_CUDA_Kernel flag.
	(Set_Is_CUDA_Kernel): New function.
	(Is_CUDA_Kernel): New function.
	* einfo.adb (Set_Is_CUDA_Kernel): New function.
	(Is_CUDA_Kernel): New function.
	* par-prag.adb (Prag): Ignore Pragma_CUDA_Execute and
	Pragma_CUDA_global.
	* rtsfind.ads: Define CUDA.Driver_Types.Stream_T and
	CUDA.Vector_Types.Dim3 entities
	* rtsfind.adb: Define CUDA_Descendant subtype.
	(Get_Unit_Name): Handle CUDA_Descendant packages.
	* sem_prag.ads: Mark CUDA_Global as aspect-specifying pragma.
	* sem_prag.adb (Analyze_Pragma): Validate Pragma_CUDA_Execute and
	Pragma_CUDA_Global.
	* snames.ads-tmpl: Define Name_CUDA_Execute and Name_CUDA_Global.

2020-07-23  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.ads (Same_Representation): Renamed as
	Has_Compatible_Representation because now the order of the arguments
	are taken into account; its formals are also renamed as Target_Type
	and Operand_Type.
	* sem_ch13.adb (Same_Representation): Renamed and moved to place the
	routine in alphabetic order.
	* sem_attr.adb (Prefix_With_Safe_Accessibility_Level): New subprogram.
	(Resolve_Attribute): Check that the prefix of attribute Access
	does not have a value conversion of an array type.
	* sem_res.adb (Resolve_Actuals): Remove restrictive check on view
	conversions which required matching value of Has_Aliased_Components of
	formals and actuals.
	* exp_ch4.adb (Handle_Changed_Representation): Update call to
	Same_Representation.
	(Expand_N_Type_Conversion): Update call to Same_Representation.
	* exp_ch5.adb (Change_Of_Representation): Update call to
	Same_Representation.
	* exp_ch6.adb (Add_Call_By_Copy_Code): Update call to
	Same_Representation.
	(Expand_Actuals): Update call to Same_Representation.
	(Expand_Call_Helper): Update call to Same_Representation.

2020-07-23  Arnaud Charlet  <charlet@adacore.com>

	* output.ads (Push_Output, Pop_Output): New procedures.
	* output.adb (FD_Array, FD_Stack, FD_Stack_Idx): New type and vars.
	(Push_Output, Pop_Output): New procedures.

2020-07-16  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Expand_N_Full_Type_Declaration): Ensure a _master
	declaration on limited types that might have tasks.
	* exp_ch9.adb (Build_Master_Renaming): For private types, if we
	are processing declarations in the private part, ensure that
	master is inserted before its full declaration; otherwise the
	master renaming may be inserted in the public part of the
	package (and hence before the declaration of its _master
	variable).

2020-07-16  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): A renames-as-body
	freezes the expression of any expression function that it
	renames.

2020-07-16  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Container_Aggregate): Add semantic
	checks for indexed aggregates, including component associations
	and iterated component associations.
	* exp_aggr.adb (Expand_Iterated_Component): New subprogram,
	subsidiary of Expand_Container_Aggreggate, used for positional,
	named, and indexed aggregates.
	(Aggregate_Size): New subprogram to precompute the size of an
	indexed aggregate prior to call to allocate it.
	(Expand_Range_Component): New subprogram so generate loop for a
	component association given by a range or a subtype name in an
	indexed aggregate.

2020-07-16  Bob Duff  <duff@adacore.com>

	* bindo-diagnostics.adb (Output_Invocation_Related_Suggestions):
	Use Cumulative_Restrictions.Set, because Restriction_Active only
	works at compile time.

2020-07-16  Bob Duff  <duff@adacore.com>

	* gnatbind.adb (Gnatbind): For No_Tasks_Unassigned_To_CPU, check
	that CPU has been set on the main subprogram.
	(Restriction_Could_Be_Set): Don't print
	No_Tasks_Unassigned_To_CPU if it would violate the
	above-mentioned rule. Up to now, all restrictions were checked
	by the compiler, with the binder just checking for consistency.
	But the compiler can't know which subprogram is the main, so
	it's impossible to check this one at compile time.
	* restrict.ads, restrict.adb: Misc refactoring. Change Warning
	to Warn, for consistency, since most already use Warn.
	(Set_Restriction): New convenience routine.
	* sem_ch13.adb (Attribute_CPU): Check
	No_Tasks_Unassigned_To_CPU.
	* sem_prag.adb (Pragma_CPU): Check No_Tasks_Unassigned_To_CPU.
	Misc refactoring.
	* tbuild.ads, tbuild.adb (Sel_Comp): New functions for building
	selected components.

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

	* impunit.adb (Non_Imp_File_Names_95): Remove duplicate entry.

2020-07-16  Arnaud Charlet  <charlet@adacore.com>

	* Makefile.rtl: replace a-numaux__x86.ads by
	a-numaux__libc-x86.ads and a-numaux__x86.adb by
	a-numaux__dummy.adb.
	* libgnat/a-numaux__x86.ads, libgnat/a-numaux__x86.adb: Removed.
	* libgnat/a-numaux__dummy.adb: New.

2020-07-16  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Load_Parent_Of_Generic): If an ancestor is an
	instance whose source appears within a formal package of the
	current unit, there is no body of the ancestor needed to
	complete the current generic compilation.

2020-07-16  Doug Rupp  <rupp@adacore.com>

	* libgnat/s-thread__ae653.adb (taskVarAdd): Defunct, so remove.
	(Current_ATSD):  Make it a TLS variable.
	(OK): Move to package scope.
	(System.Storage_Elements): Import and Use.

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

	* exp_ch9.adb (Expand_N_Accept_Statement): Set Parent of the
	created block entity to the created block statement.

2020-07-16  Arnaud Charlet  <charlet@adacore.com>

	* scng.adb (Scan): Detect wide characters not in NFKC.
	* libgnat/a-chahan.adb, libgnat/a-chahan.ads,
	libgnat/a-wichha.adb, libgnat/a-wichha.ads,
	libgnat/a-wichun.adb, libgnat/a-wichun.ads,
	libgnat/a-zchhan.adb, libgnat/a-zchhan.ads,
	libgnat/a-zchuni.adb, libgnat/a-zchuni.ads (Is_NFKC): New.
	* libgnat/s-utf_32.ads, libgnat/s-utf_32.adb (Is_UTF_32_NFKC):
	New.

2020-07-16  Bob Duff  <duff@adacore.com>

	* libgnat/s-rident.ads (Restriction_Id): Add
	No_Tasks_Unassigned_To_CPU.

2020-07-16  Bob Duff  <duff@adacore.com>

	* exp_aggr.adb (Max_Aggregate_Size): Use the small size of 64
	when copying is needed (for example, for the initialization of a
	local variable, and for assignment statements). Use the larger
	size when static allocation can be done without copying.

2020-07-16  Bob Duff  <duff@adacore.com>

	* libgnat/s-rident.ads (No_Dynamic_CPU_Assignment): New
	restriction. Add it to all relevant profiles.
	* sem_ch13.adb (Attribute_CPU): Check No_Dynamic_CPU_Assignment
	restriction.
	(Attribute_CPU, Attribute_Dispatching_Domain,
	Attribute_Interrupt_Priority): Remove error checks -- these are
	checked in the parser.
	* sem_prag.adb (Pragma_CPU): Check No_Dynamic_CPU_Assignment
	restriction.  We've got a little violation of DRY here.
	* sem.ads, sem_ch3.ads: Minor comment fix.

2020-07-16  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch4.adb (Try_Container_Indexing): When the prefix type is
	an access type, change it to the designated type, change the
	prefix to an explicit dereference, and emit a ?d? warning for
	the implicit dereference. Include a ??? comment questioning
	whether this is the right context in which to perform the
	implicit dereferencing.

2020-07-16  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Validate_Literal_Aspect): Ensure that the
	parameter is not aliased. Minor reformatting.
	* sem_util.adb (Statically_Names_Object): Update comment.

2020-07-16  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_case.adb (Build_Choice): Set Is_Static_Expression flag.
	(Lit_Of): Update specification to mention Is_Static_Expression
	flag.
	* sem_ch13.adb (Membership_Entry): Check for N_Others_Choice.

2020-07-16  Bob Duff  <duff@adacore.com>

	* sem_ch6.adb (Null_Exclusions_Match): New function to check
	that the null exclusions match, including in the case addressed
	by this AI.
	(Check_Conformance): Remove calls to Comes_From_Source
	when calling Null_Exclusions_Match. These are not
	needed, as indicated by an ancient "???" comment.

2020-07-16  Justin Squirek  <squirek@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Remove flawed test for
	whether "statically deeper" accessibility rules apply to a given
	target type and instead use the new routine
	Statically_Deeper_Relation_Applies.
	(Statically_Deeper_Relation_Applies): Created to centralize the
	calculation of whether a target type within a conversion must
	have static accessibility checks.
	* sem_ch13.adb (Check_One_Function): Minor comment revision.

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

	* fe.h (Is_OK_Static_Expression): Delete.
	* sem_eval.ads (Is_OK_Static_Expression): Remove WARNING note.

2020-07-16  Justin Squirek  <squirek@adacore.com>

	* einfo.adb, einfo.ads (Is_Named_Access_Type): Created for
	readability.
	* sem_ch6.adb (Check_Return_Construct_Accessibility): Add
	special cases for formals.
	* sem_util.adb (Object_Access_Level): Add handling of access
	attributes and named access types in the general case.

2020-07-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_case.adb (Build_Choice): Simplify.

2020-07-16  Arnaud Charlet  <charlet@adacore.com>

	* frontend.adb: Disable Initialize_Scalars on runtime files.

2020-07-16  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): Add
	Comes_From_Source call.

2020-07-16  Javier Miranda  <miranda@adacore.com>

	* exp_attr.adb (Expand_Access_To_Protected_Op): Initialize
	variable Sub to Empty to avoid false positive reported by
	Codepeer.

2020-07-16  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch8.adb (Note_Redundant_Use): Add missing warning tag.
	Do not check for redundant use clauses in predefined units to avoid
	misleading warnings that may occur as part of a rtsfind load.

2020-07-16  Javier Miranda  <miranda@adacore.com>

	* exp_attr.adb (Has_By_Protected_Procedure_Prefixed_View): New
	subprogram.
	(Expand_Access_To_Protected_Op): Adding support for prefixed
	class-wide view with By_Protected_Procedure convention.
	* sem_attr.adb (Get_Convention): New subprogram.
	(Get_Kind): Adapted to use Get_Convention.
	* sem_ch4.adb (Try_By_Protected_Procedure_Prefixed_View): New
	subprogram.
	(Analyze_Selected_Component): Invoke
	Try_By_Protected_Procedure_Prefixed_View.
	* sem_util.ads (Is_By_Protected_Procedure): New subprogram.
	* sem_util.adb (Is_By_Protected_Procedure): New subprogram.

2020-07-16  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-ststop.ads: Fix typo.
	* libgnat/s-ststop.adb (Read, Write): Fix block number
	computation to avoid overflows in case of large strings.

2020-07-16  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-genbig.adb ("**"): Remove capacity limit check.
	Improve code by using an extended return.
	(Normalize): Perform capacity limit check here instead which is
	the centralized place where (potentially large) big integers are
	allocated.

2020-07-16  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Handle the case of
	applying an invariant check for a conversion to a class-wide
	type whose root type has a type invariant, when the conversion
	appears within the immediate scope of the type and the
	expression is of a specific tagged type.
	* sem_ch3.adb (Is_Private_Primitive): New function to determine
	whether a primitive subprogram is a private operation.
	(Check_Abstract_Overriding): Enforce the restriction imposed by
	AI12-0042 of requiring overriding of an inherited nonabstract
	private operation when the ancestor has a class-wide type
	invariant and the ancestor's private operation is visible.
	(Derive_Subprogram): Set Requires_Overriding on a subprogram
	inherited from a visible private operation of an ancestor to
	which a Type_Invariant'Class expression applies.

2020-07-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Find_Overlaid_Entity): Fix style in comment.
	(Note_Possible_Modification): Simplify repeated calls to Ekind.

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

	* exp_aggr.adb (Flatten): Adjust description.
	(Convert_To_Positional): Remove obsolete ??? comment and use
	Compile_Time_Known_Value in the final test.

2020-07-15  Arnaud Charlet  <charlet@adacore.com>

	* par-ch4.adb (P_Iterated_Component_Association): Extended to
	recognzize the similar Iterated_Element_Association. This node
	is only generated when an explicit Key_Expression is given.
	Otherwise the distinction between the two iterated forms is done
	during semantic analysis.
	* sinfo.ads: New node N_Iterated_Element_Association, for
	Ada202x container aggregates.  New field Key_Expression.
	* sinfo.adb: Subprograms for new node and newn field.
	* sem_aggr.adb (Resolve_Iterated_Component_Association): Handle
	the case where the Iteration_Scheme is an
	Iterator_Specification.
	* exp_aggr.adb (Wxpand_Iterated_Component): Handle a component
	with an Iterated_Component_Association, generate proper loop
	using given Iterator_Specification.
	* exp_util.adb (Insert_Axtions): Handle new node as other
	aggregate components.
	* sem.adb, sprint.adb: Handle new node.
	* tbuild.adb (Make_Implicit_Loop_Statement): Handle properly a
	loop with an Iterator_ specification.

2020-07-15  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-stposu.adb (Allocate_Any_Controlled): Fix logic in
	lock/unlock.

2020-07-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Is_Object_Reference): Return True on
	N_Target_Name.

2020-07-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Add proper
	handling of Aspect_Predicate_Failure, consistent with
	Check_Aspect_At_Freeze_Point.

2020-07-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Check_Aspect_Too_Late): Mention -gnat2020 switch
	in error message.

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

	* einfo.ads (Delayed Freezing and Elaboration): Adjust description.
	* freeze.adb (Freeze_Object_Declaration): Likewise.
	* sem_ch3.adb (Delayed_Aspect_Present): Likewise.  Do not return
	true for Alignment.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Do not always delay
	for Alignment.  Moreover, for Alignment and various Size aspects,
	do not delay if the expression is an attribute whose prefix is the
	Standard package.

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

	* exp_ch6.adb (Requires_Atomic_Or_Volatile_Copy): Return false
	inside an initialization procedure.

2020-07-15  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_util.adb (Is_Renaming): Add ekind checks.

2020-07-15  Arnaud Charlet  <charlet@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Remove doc on obsolete
	tools.
	* gnat_ugn.texi: Regenerate.

2020-07-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_res.adb (Resolve_Type_Conversion): Protect against null
	entity.  Add proper tag for -gnatwr warning.

2020-07-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch6.adb (Analyze_Procedure_Call): Detect use of operators
	in a procedure call.
	* sem_util.adb: Minor edit.

2020-07-15  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_Delta_Or_Update): Apply scalar
	range checks against the base type of an index type, not against
	the index type itself.

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

	* einfo.ads (Delayed Freezing and Elaboration): Minor tweaks.
	Document the discrepancy between the aspect and the non-aspect
	cases for alignment settings in object declarations.

2020-07-15  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch3.adb (Freeze_Type): Remove warning in expander,
	replaced by a corresponding error in sem_ch13.adb. Replace
	RTE_Available by RTU_Loaded to avoid adding unnecessary
	dependencies.
	* sem_ch13.adb (Associate_Storage_Pool): New procedure.
	(Analyze_Attribute_Definition_Clause
	[Attribute_Simple_Storage_Pool| Attribute_Storage_Pool]): Call
	Associate_Storage_Pool to add proper legality checks on
	subpools.

2020-07-15  Yannick Moy  <moy@adacore.com>

	* libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
	libgnat/a-cbhama.adb, libgnat/a-cbhama.ads,
	libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
	libgnat/a-cbmutr.adb, libgnat/a-cbmutr.ads,
	libgnat/a-cborma.adb, libgnat/a-cborma.ads,
	libgnat/a-cborse.adb, libgnat/a-cborse.ads,
	libgnat/a-cbprqu.adb, libgnat/a-cbprqu.ads,
	libgnat/a-cbsyqu.adb, libgnat/a-cbsyqu.ads,
	libgnat/a-cdlili.adb, libgnat/a-cdlili.ads,
	libgnat/a-cidlli.adb, libgnat/a-cidlli.ads,
	libgnat/a-cihama.adb, libgnat/a-cihama.ads,
	libgnat/a-cihase.adb, libgnat/a-cihase.ads,
	libgnat/a-cimutr.adb, libgnat/a-cimutr.ads,
	libgnat/a-ciorma.adb, libgnat/a-ciorma.ads,
	libgnat/a-ciormu.adb, libgnat/a-ciormu.ads,
	libgnat/a-ciorse.adb, libgnat/a-ciorse.ads,
	libgnat/a-cohama.adb, libgnat/a-cohama.ads,
	libgnat/a-cohase.adb, libgnat/a-cohase.ads,
	libgnat/a-coinve.adb, libgnat/a-coinve.ads,
	libgnat/a-comutr.adb, libgnat/a-comutr.ads,
	libgnat/a-convec.adb, libgnat/a-convec.ads,
	libgnat/a-coorma.adb, libgnat/a-coorma.ads,
	libgnat/a-coormu.adb, libgnat/a-coormu.ads,
	libgnat/a-coorse.adb, libgnat/a-coorse.ads: Add SPARK_Mode =>
	Off.

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

	* sem_ch3.adb (Delayed_Aspect_Present): Fix oversight in loop.
	* freeze.adb (Freeze_Object_Declaration): Use Declaration_Node
	instead of Parent for the sake of consistency.

2020-07-15  Javier Miranda  <miranda@adacore.com>

	* sem_attr.adb (Resolve_Attribute): Resolve overloaded
	N_Selected_Component prefix of 'Access. Required to handle
	overloaded prefixed view of protected subprograms.

2020-07-15  Arnaud Charlet  <charlet@adacore.com>

	* doc/gnat_ugn/about_this_guide.rst: Remove old section and
	update for Ada 202x.
	* doc/gnat_ugn/getting_started_with_gnat.rst: Add a system
	requirements section. Remove obsolete section and minimal
	rewording on the getting started section.
	* gnat_ugn.texi: Regenerate.

2020-07-15  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch5.adb (Expand_Assign_Array): Use short-circuit operator
	(style).
	* sem_res.adb (Resolve_Indexed_Component): Fix style in comment.
	* sem_util.adb (Is_Effectively_Volatile_Object): Handle slices
	just like indexed components; handle qualified expressions and
	type conversions lie in Is_OK_Volatile_Context.
	(Is_OK_Volatile_Context): Handle qualified expressions just like
	type conversions.

2020-07-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Atomic_Components): Simplify with Ekind_In.
	(Complex_Representation): Fix type of E_Id, which just like when
	for pragma Atomic_Components will hold an N_Identifier node, not
	an entity.
	* sem_util.adb (Is_Effectively_Volatile): Refactor to avoid
	unnecessary computation.

2020-07-15  Arnaud Charlet  <charlet@adacore.com>

	* inline.adb, inline.ads
	(Inline_Static_Expression_Function_Call): Renamed
	Inline_Static_Function_Call.
	* sem_ch13.adb (Analyze_Aspect_Static): Allow static intrinsic
	imported functions under -gnatX.
	* sem_util.ads, sem_util.adb (Is_Static_Expression_Function):
	Renamed Is_Static_Function.
	(Is_Static_Expression_Function_Call): Renamed
	Is_Static_Function_Call.
	* sem_ch6.adb, sem_elab.adb, sem_res.adb: Update calls to
	Is_Static_Function*.
	* sem_eval.adb (Fold_Dummy, Eval_Intrinsic_Call, Fold_Shift):
	New.
	(Eval_Call): Add support for intrinsic calls, code refactoring.
	(Eval_Entity_Name): Code refactoring.
	(Eval_Logical_Op): Update comment.
	(Eval_Shift): Call Fold_Shift. Update comments.
	* par-prag.adb (Par [Pragma_Extensions_Allowed]): Set
	Ada_Version to Ada_Version_Type'Last to handle
	Extensions_Allowed (On) consistently.
	* opt.ads (Extensions_Allowed): Update documentation.
	* sem_attr.adb: Update comment.
	* doc/gnat_rm/implementation_defined_pragmas.rst: Update
	documentation of Extensions_Allowed.
	* gnat_rm.texi: Regenerate.

2020-07-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_aggr.adb (Resolve_Iterated_Component_Association): Ensure
	Typ is never accessed uninitialized.

2020-07-15  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/representation_clauses_and_pragmas.rst: Fix typo.
	* gnat_rm.texi: Regenerate.
	* libgnat/s-secsta.ads (Memory_Alignment): Likewise.

2020-07-15  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb: Add a comma and fix a typo (machinary =>
	machinery) in comment.
	* exp_aggr.adb: Reformat, fix capitalization, and add a couple
	of commas in a comment. Adjust columns in several code
	fragments.
	* sem_aggr.adb: Reformat and add a comma in a comment.

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

	* exp_ch9.adb (Expand_N_Timed_Entry_Call): Use the Sloc of
	the delay statement in the expansion.

2020-07-15  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Iterated_Component_Association): New
	procedure, internal to Resolve_Container_Aggregate, to complete
	semantic analysis of Iterated_Component_Associations.
	* exp_aggr.adb (Expand_Iterated_Component): New procedure,
	internal to Expand_Container_Aggregate, to expand the construct
	into an implicit loop that performs individual insertions into
	the target aggregate.

2020-07-15  Justin Squirek  <squirek@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_Allocator): Normalize
	the associated node for internally generated objects to be like
	their SOAAT counter-parts.

2020-07-15  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/g-socket.adb (Wait_On_Socket): Fix potentially
	uninitialized variable.

2020-07-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch8.adb (Find_Direct_Name): Fix code to match the comment.

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

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Address>:
	Issue an unconditional warning for an overlay that changes the
	scalar storage order.

2020-07-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch8.adb (Is_Actual_Parameter): Fix processing when parent
	is a procedure call statement; extend comment.

2020-07-10  Bob Duff  <duff@adacore.com>

	* sem_res.adb (Resolve_Expression_With_Actions): Check the rules
	of AI12-0368, and mark the declare expression as static or known
	at compile time as appropriate.
	* sem_ch4.adb: Minor reformatting.
	* libgnat/a-stoufo.ads, libgnat/a-stoufo.adb: Allow up to 9
	replacement parameters. I'm planning to use this in the test
	case for this ticket.

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

	* exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Create a
	proper signature when the access type denotes a parameterless
	subprogram.
	* exp_ch6.adb (Expand_Call): Handle properly a  parameterless
	indirect call when the corresponding access type has contracts.

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

	* exp_aggr.adb
	(Convert_To_Positional): Add Dims local variable
	and pass it in calls to Is_Flat and Flatten.
	(Check_Static_Components): Pass Dims in call to
	Is_Static_Element.
	(Nonflattenable_Next_Aggr): New predicate.
	(Flatten): Add Dims parameter and Expr local variable.  Call
	Nonflattenable_Next_Aggr in a couple of places.  In the case
	when an Others choice is present, check that the element is
	either static or a nested aggregate that can be flattened,
	before disregarding the replication limit for elaboration
	purposes.  Check that a nested array is flattenable in the case
	of a multidimensional array in any position.  Remove redundant
	check in the Others case and pass Dims in call to
	Is_Static_Element.  Use Expr variable.
	(Is_Flat): Change type of Dims parameter from Int to Nat.
	(Is_Static_Element): Add Dims parameter.  Replace tests on
	literals with call to Compile_Time_Known_Value.  If everything
	else failed and the dimension is 1, preanalyze the expression
	before calling again Compile_Time_Known_Value on it.  Return
	true for null.
	(Late_Expansion): Do not expand further if the assignment to the
	target can be done directly by the back end.

2020-07-10  Arnaud Charlet  <charlet@adacore.com>

	* osint-c.adb (Set_File_Name): Preserve casing of file.
	* osint.adb (File_Names_Equal): New.
	(Executable_Name): Use File_Equal instead of
	Canonical_Case_File_Name.

2020-07-10  Pascal Obry  <obry@adacore.com>

	* libgnat/g-socket.adb (Wait_On_Socket): Fix memory leaks and
	file descriptor leaks.  A memory leak was created each time the
	routine was called without a selector (Selector = Null). Also,
	in case of exception in the routine a memory leak and descriptor
	leak was created as the created file selector was not closed.

2020-07-10  Pascal Obry  <obry@adacore.com>

	* libgnat/g-socket.adb: Minor style fixes.

2020-07-10  Javier Miranda  <miranda@adacore.com>

	* sem_util.adb
	(Immediate_Context_Implies_Is_Potentially_Unevaluated): New
	subprogram.
	(Is_Potentially_Unevaluated): Do not stop climbing the tree on
	the first candidate subexpression; required to handle nested
	expressions.

2020-07-10  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb, exp_spark.adb, sem_ch13.ads, sem_ch13.adb,
	snames.ads-tmpl: Minor reformatting and typo fixes.

2020-07-10  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Has_Enabled_Property): Add handling of
	non-variable objects.

2020-07-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Check_Completion): Refactor chained
	if-then-elsif-...  statement to be more like a case
	statement (note: we can't simply use case statement because of
	Is_Intrinsic_Subprogram in the first condition).

2020-07-10  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.ads (E_Protected_Object): Enumeration literal removed.
	* lib-xref.ads (Xref_Entity_Letters): Remove reference to
	removed literal.
	* sem_ch3.adb (Check_Completion): Likewise.
	* sem_util.adb (Has_Enabled_Property): Likewise.

2020-07-10  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (Max_Aggregate_Size): Use small limit for
	aggregate inside subprograms.
	* sprint.adb (Sprint_Node_Actual [N_Object_Declaration]): Do not
	print the initialization expression if the No_Initialization
	flag is set.
	* sem_util.ads, sem_util.adb (Predicate_Enabled): New.
	* exp_ch4.adb (Expand_N_Type_Conversion): Code cleanup and apply
	predicate check consistently.
	* exp_ch6.adb (Expand_Actuals.By_Ref_Predicate_Check): Ditto.
	* sem_ch3.adb (Analyze_Object_Declaration): Ditto.
	* exp_ch3.adb (Build_Assignment): Revert handling of predicate
	check for allocators with qualified expressions, now handled in
	Freeze_Expression directly.
	* sem_aggr.adb: Fix typos.
	* checks.adb: Code refactoring: use Predicate_Enabled.
	(Apply_Predicate_Check): Code cleanup.
	* freeze.adb (Freeze_Expression): Freeze the subtype mark before
	a qualified expression on an allocator.
	* exp_util.ads, exp_util.adb (Within_Internal_Subprogram):
	Renamed Predicate_Check_In_Scope to clarify usage, refine
	handling of predicates within init procs which should be enabled
	when the node comes from source.
	* sem_ch13.adb (Freeze_Entity_Checks): Update call to
	Predicate_Check_In_Scope.

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

	* exp_ch4.adb (Expand_Array_Comparison): Reformat.
	(Expand_Concatenate): Use standard size values directly and use
	Standard_Long_Long_Unsigned instead of RE_Long_Long_Unsigned.
	(Expand_Modular_Op): Use Standard_Long_Long_Integer in case the
	modulus is larger than Integer.
	(Expand_N_Op_Expon): Use standard size value directly.
	(Narrow_Large_Operation): Use Uint instead of Nat for sizes and
	use a local variable for the size of the type.
	(Get_Size_For_Range): Return Uint instead of Nat.
	(Is_OK_For_Range): Take Uint instead of Nat.

2020-07-10  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator):
	Build the internal anonymous access type using as a reference
	the designated type imposed by the context (instead of using the
	return type of the called function).

2020-07-10  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Resolve_Actuals): Protect call to
	Is_Valued_Procedure.

2020-07-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Process_Discriminants): Revert recent change to
	location of Set_Ekind; detect effectively volatile discriminants
	by their type only.

2020-07-10  Joffrey Huguet  <huguet@adacore.com>

	* libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Add global
	contract (Global => null) to all functions.

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

	* aspects.ads: Add Aspect_Aggregate.
	* exp_aggr.adb (Expand_Container_Aggregate): Expand positional
	container aggregates into separate initialization and insertion
	operations.
	* sem_aggr.ads (Resolve_Container_Aggregate): New subprogram.
	* sem_aggr.adb (Resolve_Container_Aggregate): Parse aspect
	aggregate, establish element types and key types if present, and
	resolve aggregate components.
	* sem_ch13.ads (Parse_Aspect_Aggregate): Public subprogram used
	in validation, resolution and expansion of container aggregates
	* sem_ch13.adb
	(Parse_Aspect_Aggregate): Retrieve names of primitives specified
	in aspect specification.
	(Validate_Aspect_Aggregate): Check legality of specified
	operations given in aspect specification, before nane
	resolution.
	(Resolve_Aspect_Aggregate): At freeze point resolve operations
	and verify that given operations have the required profile.
	* sem_res.adb (Resolve): Call Resolve_Aspect_Aggregate if aspect
	is present for type.
	* snames.ads-tmpl: Add names used in aspect Aggregate: Empty,
	Add_Named, Add_Unnamed, New_Indexed, Assign_Indexed.

2020-07-10  Arnaud Charlet  <charlet@adacore.com>

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-shabig.o.
	* libgnat/s-shabig.ads: New file to share definitions.
	* libgnat/s-genbig.ads, libgnat/s-genbig.adb: Reorganized to
	make it more generic and flexible in terms of memory allocation
	and data structure returned.
	(To_String): Moved to System.Generic_Bignums to allow sharing
	this code.
	(Big_And, Big_Or, Big_Shift_Left, Big_Shift_Right): New.
	* libgnat/s-bignum.adb, libgnat/s-bignum.ads: Adapt to new
	System.Generic_Bignums spec.
	* libgnat/a-nbnbin.adb: Likewise.
	(To_String): Moved to System.Generic_Bignums to allow sharing
	this code.
	* libgnat/a-nbnbre.adb (Normalize): Fix handling of Num = 0
	leading to an exception.

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

	* freeze.adb (Freeze_Expr_Types): Replace call to Find_Aspect
	with call to Find_Value_Of_Aspect and adjust accordingly.

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

	* einfo.adb (Write_Field24_Name): Handle E_Loop_Parameter.
	* freeze.adb (Freeze_Expr_Types): Freeze the iterator type used as
	Default_Iterator of the name of an N_Iterator_Specification node.

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

	* checks.adb (Determine_Range): Deal with Min and Max attributes.
	* exp_ch6.adb (Expand_Call_Helper): When generating code to pass
	the accessibility level to the caller in the case of an actual
	which is an if-expression, also remove the nodes created after
	the declaration of the dummy temporary.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use Natural as
	the type of the minimum accessibility level object.

2020-07-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Process_Discriminants): Set Ekind of the
	processed discriminant entity before passing to
	Is_Effectively_Volatile, which was crashing on a failed
	assertion.
	* sem_prag.adb (Analyze_External_Property_In_Decl_Part): Prevent
	call to No_Caching_Enabled with entities other than variables,
	which was crashing on a failed assertion.
	(Analyze_Pragma): Style cleanups.
	* sem_util.adb (Is_Effectively_Volatile): Enforce comment with
	an assertion; prevent call to No_Caching_Enabled with entities
	other than variables.
	(Is_Effectively_Volatile_Object): Only call
	Is_Effectively_Volatile on objects, not on types.
	(No_Caching_Enabled): Enforce comment with an assertion.

2020-07-10  Yannick Moy  <moy@adacore.com>

	* debug.adb: Update comments to free usage of -gnatdF.

2020-07-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_Delta_Or_Update): Refactored from
	Expand_SPARK_N_Attribute_Reference; rewrite into N_Aggregate or
	N_Delta_Aggregate depending on what is being rewritten.
	(Expand_SPARK_N_Delta_Aggregate): New routine to expand
	delta_aggregate.
	(Expand_SPARK_N_Attribute_Reference): Call the refactored
	routine.

2020-07-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Fix
	expansion of attribute Update.

2020-07-10  Arnaud Charlet  <charlet@adacore.com>

	* sem.adb (Walk_Library_Items): Fix handling of Ghost units.

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

	* tracebak.c [generic implementation]: Add pragma GCC diagnostic
	to disable warning about __builtin_frame_address.

2020-07-08  Dmitriy Anisimkov  <anisimko@adacore.com>

	* socket.c [_WIN32] (__gnat_minus_500ms): Parentheses around &&
	operations.  Remove notes about TN in comment.

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

	* adaint.h (__gnat_expect_portable_execvp): Fix prototype.
	(__gnat_expect_poll): Likewise.
	* expect.c [_WIN32]: Include adaint.h file.
	(__gnat_waitpid): Remove useless variable.
	(__gnat_expect_portable_execvp): Add ATTRIBUTE_UNUSED on parameter.
	* raise-gcc.c [SEH] (__gnat_personality_v0): Add ATTRIBUTE_UNUSED.
	* socket.c [_WIN32] (__gnat_getservbyport): Add ATTRIBUTE_UNUSED on
	a couple of parameters.
	(__gnat_gethostbyname): Likewise.
	(__gnat_gethostbyaddr): Likewise.
	(__gnat_getservbyname): Likewise.
	(__gnat_last_socket_in_set): Use variables local to loops.
	(__gnat_socket_ioctl): Cast 3rd parameter to proper type if _WIN32.
	(__gnat_inet_pton): Cast 2nd parameter to proper type if _WIN32.
	* sysdep.c (__gnat_localtime_tzoff): Remove superfluous test.
	* terminals.c [_WIN32]: Include io.h file.
	(is_gui_app): Remove useless variables and fix unsigned comparison.
	(nt_spawnve): Add ATTRIBUTE_UNUSED on first parameter.  Initialize a
	local variable and remove others that are useless.  Add missing cast
	(__gnat_setup_child_communication): Remove useless variable and call
	Use proper formatting string in call to sprintf.
	(__gnat_setup_parent_communication): Cast to proper type.
	(find_child_console): Fix prototype and remove useless variable.
	(find_process_handle): Likewise.
	(_gnat_interrupt_process): Move to after __gnat_interrupt_pid.
	(__gnat_reset_tty): Add ATTRIBUTE_UNUSED on parameter, remove return
	(__gnat_setup_winsize): Add ATTRIBUTE_UNUSED on all parameters.

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

	* exp_ch4.adb (Expand_N_Allocator): In the subtype mark case, do
	not apply constraint checks if the No_Initialization flag is set.

2020-07-08  Javier Miranda  <miranda@adacore.com>

	* exp_ch9.adb
	(Build_Class_Wide_Master): Insert the declaration of _Master
	before its use; required to avoid assertion failure in the
	backend.

2020-07-08  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/i-cexten.ads (long_long, unsigned_long_long): Now
	subtypes of Interfaces.C types.
	* libgnat/a-calcon.ads, libgnat/a-calcon.adb
	(To_Unix_Nano_Time): Use Interfaces.C.long_long instead of
	Interfaces.C.Extensions.long_long.

2020-07-08  Vasiliy Fofanov  <fofanov@adacore.com>

	* debug.adb: Document new switch.
	* exp_ch6.adb (Warn_BIP): New function that warns if the switch
	is on.  Call it from Make_Build_In_Place_* functions.  Warn_BIP
	is not needed in Make_Build_In_Place_Iface_*, because those call
	Make_Build_In_Place_Call_In_Object_Declaration or similar.

2020-07-08  Piotr Trojanek  <trojanek@adacore.com>

	* erroutc.adb (Matches): Fix comments.

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

	* freeze.adb (Has_Decl_In_List): New predicate to check that an
	entity is declared in a list of nodes.
	(Freeze_Expression): Use it to deal with Expression_With_Actions,
	short-circuit expression, if- and case-expression and ensure that
	the freeze node is put onto their Actions list if the entity is
	declared locally.

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

	* freeze.adb (In_Expanded_Body): Return true for the body of a
	generated predicate function.

2020-07-08  Gary Dismukes  <dismukes@adacore.com>

	* sem_attr.adb: Remove hyphens in comments, plus minor code
	reformatting.
	* sem_ch13.adb: Fix typo (that => than).
	* sem_util.adb: Add hyphen in comment ("class-wide").

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

	* freeze.adb (Freeze_Array_Type): Add comment on implementation
	choice for byte-packed array types.

2020-07-08  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Correct prefix of 'Result
	this prefix is a generic function but the enclosing aspect or
	pragma is attached to its instance.
	* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Analyze
	generic subprogram formal parameters (including the implicit
	result of a generic function) and only then analyse its aspects,
	because with Relaxed_Initialization the aspect expression might
	refer to those formal parameters.
	* sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Accept
	aspect on generic subprograms; install formal parameters of a
	generic subprogram but not formal parameters of the generic unit
	itself (the previous code was inspired by aspects Post and
	Depends, where both kinds of formals are allowed).
	* sem_util.ads (Enter_Name): Fix name of a subprogram referenced
	in comment.

2020-07-08  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call
	Analyze_Aspect_Specifications after setting Ekind of the
	analyzed entity.
	* sem_ch13.adb (Analyze_Aspect_Yield): Remove minimal decoration
	of generic subprograms.

2020-07-08  Arnaud Charlet  <charlet@adacore.com>

	* sem_prag.adb (Process_Inline): Check for duplicate
	pragma+aspect Inline. Minor code cleanup.
	(Check_Duplicate_Pragma): Add warning for duplicate
	pragma [No_]Inline under -gnatwr.
	* sinfo.ads, sinfo.adb (Next_Rep_Item): Allow N_Null_Statement
	which can appear when a pragma is rewritten.
	* sem_util.ads, sem_util.adb, bindo-writers.adb: Fix bad
	copy/paste now flagged.
	* libgnat/s-mmap.ads: Remove redundant pragma Inline.

2020-07-08  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Build_Class_Wide_Clone_Body): Update entities to
	refer to the right spec.

2020-07-08  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Predicate_Failure): Check that the type has
	predicates.  Remove the setting of Has_Delayed_Aspects and
	Freeze_Node, because (if the code is legal) it should have
	already been done by the predicate aspect.

2020-07-08  Gary Dismukes  <dismukes@adacore.com>

	* par-ch4.adb (P_Iterated_Component_Association): Typo
	corrections.

2020-07-08  Ed Schonberg  <schonberg@adacore.com>

	* par.adb (P_Iterator_Specification): Make public for use in
	other parser subprograms.
	* par-ch4.adb (P_Iterated_Component_Association): In Ada_2020,
	recognize use of Iterator_Specification in an element iterator.
	To simplify disambiguation between the two iterator forms, mark
	the component association as carrying an Iterator_Specification
	only when the element iterator (using "OF") is used.
	* par-ch5.adb (P_Loop_Parameter_Specification): In Ada_2020,
	parse iterator filter when present.
	(P_Iterator_Specification): Ditto.  Remove declaration of
	P_Iterator_Specification, now in parent unit.
	* exp_ch5.adb (Expand_N_Loop_Statement): Apply Iterator filter
	when present.
	(Expand_Iterator_Loop_Over_Array): Ditto.
	(Expand_Iterator_Loop_Over_Container): Ditto.
	* sem_aggr.adb (Resolve_Array_Aggregate): Emit error nessage if
	an iterated component association includes a iterator
	specificcation with an element iterator, i.e. one that uses the
	OF keyword.
	* sem_ch5.adb (Analyze_Iterator_Specification): Analyze Iterator
	filter when present.
	(Analyze_Loop_Parameter_Specification): Ditto.
	* sinfo.adb: Suprogram bodies for new syntactic element
	Iterator_Filter.
	* sinfo.ads: Add Iterator_Filter to relevant nodes.  Structure
	of Component_Association and Iteroted_Component_Association
	nodes is modified to take into account the possible  presence of
	an iterator specification in the latter.

2020-07-08  Yannick Moy  <moy@adacore.com>

	* sem_util.ads, sem_util.adb (Is_Attribute_Loop_Entry): New
	function for GNATProve.

2020-07-08  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_ch13.adb (Analyze_Record_Representation_Clause,
	Check_Record_Representation_Clause): Add expected and actual
	size to error message.

2020-07-08  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.ads, sem_util.adb (Safe_To_Capture_Value): Return
	True for in-parameters.

2020-07-08  Justin Squirek  <squirek@adacore.com>

	* exp_attr.adb (Expand_Attribute): Set
	Stores_Attribute_Old_Prefix to generated renamings of 'Old
	constants for later use in generating finalization routines.
	* exp_ch7.adb (Build_Finalizer): Minor reformatting. Use "or
	else" operators.

2020-07-08  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb (Expand_Simple_Function_Return): Remove ugly code
	that was copying the return expression, resetting Analyzed
	flags, etc. for the return expression of static expression
	functions.
	* inline.adb (Inline_Static_Expression_Function_Call): Set the
	Parent of the copied expression to that of the call. This avoids
	a blowup in Insert_Actions when GNATprove_Mode is set and there
	are nested SEF calls. Add ??? comment.
	* sem_ch6.adb (Analyze_Expression_Function): In the case of a
	static expression function, create a new copy of the expression
	and replace the function's expression with the copy; the
	original expression is used in the expression function's body
	and will be analyzed and rewritten, and we need to save a clean
	copy for later use in processing static calls to the function.
	This allows removing the kludgy code that was in
	Expand_Simple_Function_Return.
	* sem_eval.adb (Eval_Qualified_Expression): Return immediately
	if any errors have been posted on the qualified expression, to
	avoid blowups when GNATprove_Mode is enabled (or with -gnatd.F),
	since illegal static expressions are handled differently in that
	case and attempting to fold such expressions would fail.

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

	* repinfo.adb (Compute_Max_Length): Skip hidden discriminants.
	(List_Record_Layout): Likewise.
	(List_Structural_Record_Layout): Use First_Discriminant instead
	of First_Stored_Discriminant and Next_Discriminant instead of
	Next_Stored_Discriminant to walk the list of discriminants.

2020-07-08  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Analyze
	optional boolean expressions.
	* sem_util.ads, sem_util.adb (Has_Relaxed_Initialization): Adapt
	query; update comment.

2020-07-08  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.ads (Current_Value): Fix typo in comment.
	* exp_ch2.adb (Expand_Current_Value): Remove unnecessary "Start
	of processing ..." comment.
	* exp_util.adb (Set_Entity_Current_Value): Fix unbalanced paren
	in comment.
	(Get_Current_Value_Condition): Fix layout in comment.
	* sem_ch5.adb (Analyze_Cond_Then): Replace commented condition
	with pragma Assert.

2020-07-08  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch5.adb (Expand_N_If_Statement): Detect True/False
	prefixed with Standard.

2020-07-08  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Add freeze node
	for the Underlying_Full_View if it exists. The freeze node is
	what triggers the generation of the predicate function.
	* freeze.adb: Minor reformatting.

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

	* exp_ch4.adb (Narrow_Large_Operation): Use the base type instead
	of the first subtype of standard integer types as narrower type.

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

	* freeze.adb (Freeze_Array_Type): Use Ctyp more consistently.
	Move code setting the alignment in the non-packed case to...
	* layout.adb (Layout_Type): ...here.

2020-07-07  Bob Duff  <duff@adacore.com>

	* treepr.adb (Print_Node): Add code to test Is_Extension.

2020-07-07  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch4.adb (Try_Container_Indexing): Add ??? comment. Protect
	against malformed tree in case of errors.

2020-07-07  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.adb, sem_ch10.adb, sem_ch12.adb, sem_ch8.adb: Use
	Is_Generic_Subprogram.

2020-07-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch8.adb (Analyze_Use_Package): Replace low-level,
	error-prone Ekind_In tests with high-level Is_Generic_Subprogram
	and Is_Subprogram.

2020-07-07  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch6.adb (Check_Formal_Subprogram_Conformance): New
	subprogram to handle checking without systematically emitting an
	error.
	(Check_Conformance): Update call to
	Check_Formal_Subprogram_Conformance and fix handling of Conforms
	and Errmsg parameters.

2020-07-07  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb (Tagged_Membership): Generate a call to
	CW_Membership instead of using Build_CW_Membership.
	(Expand_N_In): Remove wrong handling of null access types and
	corresponding comment.
	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Generate a
	call to CW_Membership instead of using Build_CW_Membership.
	* rtsfind.ads: Add CW_Membership.
	* exp_atag.ads, exp_atag.adb (Build_CW_Membership): Removed.
	* einfo.ads: Fix typo.
	* libgnat/a-tags.ads, libgnat/a-tags.adb (CW_Membership): Moved
	back to spec.

2020-07-07  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Create
	proper subprogram specification for body, using names in the
	subprogram declaration but distinct entities.
	* exp_ch6.adb (Expand_Call): If this is an indirect call
	involving a subprogram wrapper, insert pointer parameter in list
	of actuals with a parameter association, not as a positional
	parameter.

2020-07-07  Justin Squirek  <squirek@adacore.com>

	* exp_ch6.adb (Expand_Branch): Verify the original node is a
	conditional expression before recursing further.
	(Insert_Level_Assign): Transform assertion into an explicit
	raise.

2020-07-07  Steve Baird  <baird@adacore.com>

	* sem_attr.adb (Eval_Attribute): Generalize static evaluation of
	Size attribute references to also handle
	Max_Size_In_Storage_Elements references.

2020-07-07  Javier Miranda  <miranda@adacore.com>

	* sem_util.adb (Is_Potentially_Unevaluated): Code cleanup.

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

	* checks.ads (Expander Routines): Update the description of the
	Do_Range_Check mechanism.
	* checks.adb (Selected_Range_Checks): Fix typo.
	* exp_ch9.adb: Add with and use clause for Checks.
	(Actual_Index_Expression): Generate a range check if requested.
	(Entry_Index_Expression): Likewise.
	* sem_attr.adb (Resolve_Attribute) <Attribute_Count>: Call
	Apply_Scalar_Range_Check instead of Apply_Range_Check.
	* sem_ch9.adb (Analyze_Accept_Statement): Likewise.
	* sem_res.adb (Resolve_Entry): Likewise, after having set the
	actual index type on the prefix of the indexed component.
	(Resolve_Indexed_Component): Remove useless conditional construct.

2020-07-07  Piotr Trojanek  <trojanek@adacore.com>

	* contracts.adb (Analyze_Entry_Or_Subprogram_Contract,
	Process_Preconditions_For): Freeze expression that has been
	relocated to pragma Precondition, not the expression which is
	still in the aspect.

2020-07-07  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch6.adb (Check_Conformance): Remove unnecessary (and
	wrong) code.
	* sem_ch8.adb (Check_Null_Exclusion): Post error at proper
	location.  Introduce new helper Null_Exclusion_Mismatch and fix
	implementation wrt formal subprograms used in generic bodies.
	(Analyze_Subprogram_Renaming): Fix missing setting of
	Error_Msg_Sloc.
	(Analyze_Object_Renaming): Replace "in Anonymous_Access_Kind" by
	Is_Anonymous_Access_Type.
	* sem_util.adb (Has_Null_Exclusion): Fix handling of
	N_Parameter_Specification.
	* sem_ch12.adb (Instantiate_Object): Replace "in
	Anonymous_Access_Kind" by Is_Anonymous_Access_Type.

2020-07-07  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Expr_Types): Freeze the designated type of
	the explicit dereference.

2020-07-07  Javier Miranda  <miranda@adacore.com>

	* sem_util.adb (Is_Potentially_Unevaluated): Protect reading
	attribute Etype.

2020-07-07  Bob Duff  <duff@adacore.com>

	* libgnat/g-catiio.adb (Value, Parse_ISO_8601): Unsuppress
	checks, and don't rely on 'Valid.

2020-07-07  Arnaud Charlet  <charlet@adacore.com>

	* Makefile.rtl: Remove dead code.
	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Document gnatbind -xdr switch.
	* gnat_ugn.texi: Regenerate.

2020-07-07  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
	(Validity Checking): Add "p" to the list of switches enabled by
	-gnatVa.
	* gnat_ugn.texi: Regenerate.

2020-07-07  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Add call
	to Check_Restriction_No_Specification_Of_Aspect.
	* sem_prag.adb (Analyze_Pragma): Likewise.
	* restrict.ads (Check_Restriction_No_Specification_Of_Aspect):
	Mention possible new node kinds in documentation.
	* restrict.adb (Check_Restriction_No_Specification_Of_Aspect):
	Retrieve aspect id from different fields if given node is an
	N_Pragma or an N_Attribute_Definition_Clause.

2020-07-07  Gary Dismukes  <dismukes@adacore.com>

	* contracts.adb (Add_Invariant_And_Predicate_Checks): Relax the
	condition for doing invariant checks so that in-mode parameters
	of procedures are also checked (required by AI05-0289, and
	restricted to procedures by AI12-0044). This is done in a
	procedure's nested postconditions procedure.
	* exp_ch6.adb (Expand_Actuals): Also perform postcall invariant
	checks for in parameters of procedures (but not functions).
	Moved invariant-checking code to end of Expand_Actuals
	(including the nested function Is_Public_Subp).

2020-07-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Delta_Array_Aggregate): Make Index_Type
	a constant.

2020-07-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb (Expand_N_Delta_Aggregate): Use type of the delta
	base expression for the anonymous object of the delta aggregate.

2020-07-07  Javier Miranda  <miranda@adacore.com>

	* sem_util.ads (Interval_Lists): Reordering routine.
	* sem_util.adb (Interval_Lists): Reordering routines to keep
	them alphabetically ordered.

2020-07-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Resolve_Attribute): Do not call
	Check_Non_Static_Context.

2020-07-07  Arnaud Charlet  <charlet@adacore.com>

	* sem_elab.adb (Is_Guaranteed_ABE): Take into account null
	procedures.

2020-07-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Analyze_Assignment): Reuse Is_Assignable.

2020-07-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Add scalar
	range checks for 'Update on arrays just like for 'Update on
	records.
	* sem_attr.adb (Analyze_Array_Component_Update): Do not set
	range checks for single-dimensional arrays.
	(Resolve_Attribute): Do not set range checks for both single-
	and multi- dimensional arrays.

2020-07-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem.ads (Sem): Fix description.

2020-07-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Analyze_Relaxed_Parameter): Fix for protected
	entries.

2020-07-06  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb (Apply_Scalar_Range_Check): Use Is_RTE.

2020-07-06  Bob Duff  <duff@adacore.com>

	* libgnat/g-catiio.ads: Document newly supported format.  Add
	ISO_Time constant, for convenience.
	* libgnat/g-catiio.adb (Image_Helper): New helper function to do
	all the formatting work, called by the two exported Image
	functions.  Add support for "%:::z" here. Add a Time_Zone
	parameter used by the "%:::z" processing. This parameter is not
	used for the actual time zone computations; local time is always
	used for that, for ease of implementation reasons.  It would
	make sense to use Append throughout this function, but that's a
	cleanup for another day.
	(Image): Modify these to pass the local time zone, or the
	specified time zone, as appropriate.

2020-07-06  Bob Duff  <duff@adacore.com>

	* libgnat/g-catiio.ads: Change the regular expression that
	documents the allowed format to match what ISO-8601 allows.
	* libgnat/g-catiio.adb (Scan_Subsecond): Rewrite so it doesn't
	assume the subsecond comes last.
	(Parse_ISO_8601): Parse an optional subsecond, followed by an
	optional time zone, rather than making these alternatives to
	each other.

2020-07-06  Bob Duff  <duff@adacore.com>

	* libgnat/g-catiio.adb (Parse_ISO_8601): Minor cleanups:
	Give some objects clearer names.
	Make some objects more local to where they are used.
	Remove some validity checks that can't fail, because some of
	the variables tested have been moved so they're not visible here.
	Anyway, Wrong_Syntax is about errors in the input, not data
	validity.
	Use Time_Zone_Seen instead of Local_Sign = ' ' to determine
	that a time zone indication was seen.
	We don't need to distinguish two different kinds of
	syntax error (End_Of_Source_Reached and Wrong_Syntax),
	so use Wrong_Syntax always.
	Remove comment, "Certain scanning scenarios may handle
	this exception on their own."; there are no such scenarios.

2020-07-06  Bob Duff  <duff@adacore.com>

	* libgnat/g-catiio.ads, libgnat/g-catiio.adb (Image): New
	function. It might seem like the local-time Image should be
	implemented in terms of the Time_Zone Image, but that would be
	far harder to implement, so we do it the other way around.

2020-07-06  Thomas Quinot  <quinot@adacore.com>

	* libgnat/g-sechas.ads, libgnat/g-sechas.adb: Refactor to use
	Stream_Element_Array as the internal buffer type.
	* libgnat/g-shshco.adb: Adjust to use Stream_Element_Offset
	instead of Integer as the index in the internal state buffer.

2020-07-06  Gary Dismukes  <dismukes@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst, errout.ads,
	erroutc.adb, exp_ch4.adb, exp_ch6.adb, freeze.adb: Comment
	rewording/reformatting/typo fixes.  Replace "ie." with "that is"
	in comment; "can not" -> "cannot", and remove an extraneous
	underscore in another comment.
	* gnat_rm.texi, gnat_ugn.texi: Regenerate.

2020-07-06  Javier Miranda  <miranda@adacore.com>

	* sem_util.ads (Interval_Lists.Aggregate_Intervals): New
	subprogram.
	* sem_util.adb (Has_Null_Others_Choice,
	Non_Static_Or_Null_Range, Interval_Lists.Aggregate_Intervals):
	New subprograms.
	(Is_Potentially_Unevaluated): Adding support to detect
	potentially unevaluated components of array aggregates.

2020-07-06  Bob Duff  <duff@adacore.com>

	* libgnat/g-catiio.adb (Parse_ISO_8601): New name for
	Parse_ISO_8861_UTC.  8601 is the correct ISO standard number.
	Also, "UTC" was confusing. All Time values are represented in
	UTC, but the ISO 8601 date strings include a time zone.
	If a time zone was specified, call
	Ada.Calendar.Formatting.Time_Of instead of
	GNAT.Calendar.Time_Of, because the latter adjusts to the current
	time zone, whereas we want to use (just) the time zone specified
	in the ISO string.  This allows us to pass Time_Zone instead to
	Time_Of, instead of adjusting by Local_Disp by hand.
	If no time zone was specified, call GNAT.Calendar.Time_Of as
	before.
	Use expanded names to clarify which Time_Of is being called.
	Remove redundant comment, and move nonredundant part of the
	commment to the spec.
	(Value): Minor: use "not in" instead of "or else".
	* libgnat/g-catiio.ads: Comment moved here. Correct the ISO
	standard number.
	* libgnat/g-calend.adb: Add ??? comments.
	* libgnat/a-calend.ads, libgnat/a-calend.adb: Update obsolete
	comments regarding the representation of type Time. Move the
	information about the epoch (year 2150) to the spec, and avoid
	uttering "2150" more than once.
	* libgnat/a-catizo.ads (Time_Offset): Add comment.

2020-07-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Find_Component): If the target type is a derived
	record type and the required component is a discriminant that is
	renamed in the derived type declaration, use the name of the
	original discriminant to locate the intended target component.

2020-07-06  Justin Squirek  <squirek@adacore.com>

	* sem_ch12.adb (Analyze_Associations): Add check for errors on
	the generic formal before continuing with instantiation.

2020-07-06  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
	libgnat/a-nbnbin__gmp.adb: Use more Valid_Big_Integer.

2020-07-06  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.ads (Get_Index_Subtype): Fix duplicate "Last".

2020-07-06  Ed Schonberg  <schonberg@adacore.com>

	* sinfo.ads: Indicate that Field 1 of an N_Delta_Aggregate is
	unused. Previously it was erroneously labelled as holding an
	Expressions list, in analogy with other aggregate constructs,
	but there are no Expressions attached to this node syntactically
	or semantically.

2020-07-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Eval_Attribute): Check if constant has an
	initialization expression.

2020-07-06  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
	scalar range checks.
	* sem_attr.adb (Resolve_Attribute): Do not set scalar range
	checks when resolving attribute Update.

2020-07-06  Gary Dismukes  <dismukes@adacore.com>

	* sem_attr.adb (Analyze_Attribute, Attribute_Constrained): Issue
	a warning if the attribute prefix is a current instance
	reference within an aspect of a type or subtype.
	(Address_Checks): Replace test of Is_Object (Ent) with
	Is_Object_Reference (P) so that testing for current instances
	will be done.
	(Eval_Attribute): Add test for current instance reference, to
	ensure that we still fold array attributes when current
	instances are involved, since value prefixes are allowed for
	array attributes, and will now be excluded by
	Is_Object_Reference.
	* sem_util.ads (Is_Current_Instance_Reference_In_Type_Aspect):
	New exported query function.
	* sem_util.adb (Is_Object_Reference): Return False for the case
	where N is a current instance reference within an
	aspect_specification of a type or subtype (basically if the
	reference occurs within a predicate, invariant, or DIC aspect
	expression).
	(Is_Current_Instance_Reference_In_Type_Aspect): New function
	that tests whether a node is a reference to a current instance
	formal of a predicate, invariant, or
	Default_Initial_Condition (DIC) subprogram.

2020-07-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Declare_Expression): New subprogram, to
	install the scope holding local declarations of the expression,
	before completing its resolution.
	(Resolve): For an Expression_With_Actions that comes from a
	source occurrence of a Declare_Expression, call new subprogram.

2020-07-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Reuse SPARK_Implicit_Load.

2020-07-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Propagate
	exception when switch -gnatdk is used and no previous errors are
	present.
	* sem_eval.adb (Compile_Time_Known_Value, Is_In_Range):
	Likewise.
	* sem_warn.adb (Operand_Has_Warnings_Suppressed): Likewise.

2020-07-06  Richard Kenner  <kenner@adacore.com>

	* exp_unst.adb (Needs_Fat_Pointer): Don't check for formal.
	(Unnest_Subprogram): Use 'Unchecked_Access instead of 'Access
	when populating activation record.

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

	* exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Rename parameter
	from Bit_Packed_Array to Force.
	(Expand_Actuals): Do not apply BIP processing if the subprogram
	is intrinsic.  Adjust calls to Add_Simple_Call_By_Copy_Code and
	add one for In parameters whose actual is a CPP constructor call.

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

	* sem_attr.adb (Eval_Attribute): Do not apply range checks in
	the case of 'Pos applied to an integer type here.

2020-07-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): If the type is an
	Unchecked_Union, and the expression is an aggregate. complete
	the analysis and resolution of the aggregate, and treat like a
	regular object declaration, instead of as a renaming
	declarattion.

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

	* exp_ch9.adb (Is_Potentially_Large_Family): Add documentation.
	(Actual_Index_Expression): Use Entry_Index_Type.
	(Build_Entry_Count_Expression): Likewise.
	(Build_Find_Body_Index): Likewise.
	(Collect_Entry_Families): Likewise. Use directly the bounds of
	the index type to find out whether the family is large.
	(Entry_Index_Expression): Likewise.

2020-07-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Resolve_Range): Resolve both low and high bounds
	with the range type.

2020-07-06  Arnaud Charlet  <charlet@adacore.com>

	* aspects.ads (Is_Representation_Aspect):
	Default_Component_Value is a representation aspect.
	* sem_ch13.adb (Check_Aspect_Too_Late, Rep_Item_Too_Late): Relax
	RM 13.1(10) rule wrt primitive operations for Ada 202x.

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

	* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Move to library
	level and use a new predicate Is_OK_Aggregate to recognize the
	aggregates suitable for direct assignment by the back-end.
	(Convert_Array_Aggr_In_Allocator): If neither in CodePeer mode nor
	generating C code, generate a direct assignment instead of further
	expanding if Aggr_Assignment_OK_For_Backend returns true.

2020-07-06  Gary Dismukes  <dismukes@adacore.com>

	* sem_aux.adb: Add a with clause for Nlists.
	(Nearest_Ancestor): Test for the case of concurrent
	types (testing for both Is_Concurrent_Type and
	Is_Concurrent_Record_Type), and return the first ancestor in the
	Interfaces list if present (otherwise will return Empty if no
	interfaces).
	* sem_ch13.adb (Build_Predicate_Functions): Add a ??? comment
	about missing handling for adding predicates when they can be
	inherited from multiple progenitors.

2020-07-06  Arnaud Charlet  <charlet@adacore.com>

	* par-ch6.adb (P_Return_Object_Declaration): Set
	Has_Init_Expression flag.

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

	* debug.adb (d.K): Document new usage.
	* fe.h (Debug_Flag_Dot_KK): Declare.
	* gcc-interface/decl.c (gnat_to_gnu_field): Give an error when the
	component overlaps with the parent subtype, except with -gnatd.K.

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

	* exp_ch4.adb (Expand_Set_Membership): Expand the membership test
	using left associativity instead of right associativity.

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

	* gcc-interface/utils2.c (build_binary_op): Remove space.

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-06-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (gnat_write_global_declarations): Output
	integral global variables first and the imported functions later.

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

	* gcc-interface/decl.c (elaborate_expression_1): When GNAT encodings
	are not used, do not create a variable for debug info purposes if
	the expression is itself a user-declared variable.

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

	* gcc-interface/ada-tree.h (DECL_RENAMED_OBJECT): Delete.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Always use
	the stabilized reference directly for renaming and create a variable
	pointing to it separately if requested.
	* gcc-interface/misc.c (gnat_print_decl): Adjust for deletion.
	* gcc-interface/trans.c (Identifier_to_gnu): Likewise.
	(gnat_to_gnu) <N_Object_Renaming_Declaration>:
	Do not deal with side-effects here.
	<N_Exception_Renaming_Declaration>: Likewise.

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

	* gcc-interface/decl.c (elaborate_expression): Replace calls to
	Is_OK_Static_Expression with Compile_Time_Known_Value.

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

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Set
	debug type to the base type and only if the subtype is artificial.

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

	* gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Do
	not test Is_Bit_Packed_Array in the memset path.

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

	* gcc-interface/trans.c (lvalue_required_for_attribute_p): Do not deal
	with 'Pos or 'Val.
	(Attribute_to_gnu): Likewise.
	* gcc-interface/utils.c (create_field_decl): Small formatting fix.

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

	* gcc-interface/trans.c (adjust_for_implicit_deref): Delete.
	(maybe_implicit_deref): Likewise.
	(Attribute_to_gnu): Replace calls to maybe_implicit_deref by calls
	to maybe_padded_object.
	(Call_to_gnu): Likewise.
	(gnat_to_gnu) <N_Indexed_Component>: Likewise.
	<N_Slice>: Likewise.
	<N_Selected_Component>: Likewise.
	<N_Free_Statement>: Remove call to adjust_for_implicit_deref and
	manually make sure that the designated type is complete.
	* gcc-interface/utils2.c (build_simple_component_ref): Add comment.

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

	* gcc-interface/decl.c (gnat_to_gnu_param): Tidy up.
	(gnat_to_gnu_subprog_type): For a variadic C function, do not
	build unnamed parameters and do not add final void node.
	* gcc-interface/misc.c: Include snames.h.
	* gcc-interface/trans.c (Attribute_to_gnu): Tidy up.
	(Call_to_gnu): Implement support for unnamed parameters in a
	variadic C function.
	* gcc-interface/utils.c: Include snames.h.
	(copy_type): Tidy up.

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

	* exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
	range checks to allocators here.

2020-06-19  Justin Squirek  <squirek@adacore.com>

	* lib.adb (Check_Same_Extended_Unit): Add check to determine if
	the body for the subunits exist in the same file as their
	specifications.

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

	* exp_aggr.adb (In_Place_Assign_OK): In an allocator context,
	check the bounds of an array aggregate against those of the
	designated type, except if the latter is unconstrained.

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

	* sem_ch3.adb (Is_Visible_Component): Reason only on the private
	status of the original type in an instance body.

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

	* sem_res.adb (Resolve_Qualified_Expression): Do not override the
	type of the node when it is unconstrained if it is for an allocator.

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

	* sem_res.adb (Resolve_Allocator): Call Resolve_Qualified_Expression
	on the qualified expression, if any, instead of doing an incomplete
	type resolution manually.
	(Resolve_Qualified_Expression): Apply predicate check to operand.

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

	* sem_ch4.adb (Analyze_Selected_Component): In an instance body,
	also invoke Find_Component_In_Instance on the parent subtype of
	a derived tagged type immediately visible.  Remove obsolete case.

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

	* exp_attr.adb (Get_Integer_Type): Return the largest supported
	unsigned integer type if need be.

2020-06-19  Justin Squirek  <squirek@adacore.com>

	* sem_warn.adb (Warn_On_Known_Condition): Add general sanity
	check that asserts the original source node being checked
	contains an entity. If not, it could be the result of special
	case expansion for type conversions.

2020-06-19  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Expression_Function): Do not indicate
	that the function has a completion if it appears within a Ghost
	generic package.

2020-06-19  Bob Duff  <duff@adacore.com>

	* libgnat/a-ststbo.adb (Write): Replace pragma Assert with "if
	... raise Constraint_Error".

2020-06-19  Justin Squirek  <squirek@adacore.com>

	* widechar.adb, widechar.ads (Skip_Wide): Catch validity check
	failure when skipping over characters, and update comment to
	reflect Skip_Wide's usage in error printing.

2020-06-19  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.ads (Ensure_Activation_Chain_And_Master): New
	subprogram.
	* exp_ch3.adb (Ensure_Activation_Chain_And_Master): New
	subprogram that factorizes code.
	(Expand_N_Object_Declaration): Call new subprogram.
	* sem_ch6.adb (Analyze_Function_Return): Returning a
	build-in-place unconstrained array type defer the full analysis
	of the returned object to avoid generating the corresponding
	constrained subtype; otherwise the bounds would be created in
	the stack and a dangling reference would be returned pointing to
	the bounds.

2020-06-19  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
	libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
	libgnat/a-nbnbre.ads: Update spec according to AI12-0366.

2020-06-19  Piotr Trojanek  <trojanek@adacore.com>

	* checks.ads: Remove excessive whitespace in declarations of
	functions for check suppression.

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

	* sem_ch7.adb (Hide_Public_Entities): Split handling of objects
	and subprograms, and do not reject the latter upfront in nested
	instance specs if there are no referencer subprograms at all.
	(Analyze_Package_Body_Helper): Also call Hide_Public_Entities on
	nested generic instances.

2020-06-19  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Reject illegal positional
	component associations; fix syntax in comment about named
	component associations.

2020-06-19  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Delta_Record_Aggregate): Modify a nested
	Get_Component_Type routine to return a component and not just
	its type; use this routine to decorate the identifier within the
	delta aggregate.

2020-06-19  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch4.adb (Find_Equality_Types.Check_Access_Attribute): New.
	(Find_Equality_Types): Move universal_access related checks at
	the end of the processing and add call to
	Check_Access_Attribute.

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

	* sem_prag.adb (Process_Convention): Revert previous change.

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

	* checks.ads (Apply_Static_Length_Check): Move up.
	(Apply_Range_Check): Add parameter Insert_Node.
	* checks.adb (Apply_Selected_Range_Checks): Merge into...
	(Apply_Range_Check): ...this.  Add parameter Insert_Node,
	pass it as Warn_Node to Selected_Range_Checks and use it
	as insertion point for the checks.
	* sem_ch3.adb (Analyze_Subtype_Declaration): Rewrite block
	dealing with the range checks for the subtype indication.
	Use local variable and call Apply_Range_Check in both cases.

2020-06-19  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Call Ensure_Valid
	on the expression of an object declaration that captures the
	value of 'Old prefix.

2020-06-19  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Add comment.
	* sem_attr.adb (Analyze_Attribute): Add ??? comment.
	* sem_util.ads (Valid_Scalars): This routine is only used for
	'Valid_Scalars and not for 'Valid.

2020-06-19  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Do not call
	Scalar_Part_Present on the array component's type.
	(Build_Array_VS_Func): Remove Comp_Typ parameter, because it can
	be easily computed from the Array_Top parameter *and redundant
	parameters are confusing and error-prone).

2020-06-19  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Build_Record_VS_Func): Strip privacy and type
	derivation from the root type when 'Valid_Scalars is applied to
	a class-wide type.

2020-06-19  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb (Apply_Parameter_Validity_Checks): Remove testing
	of Check_Validity_Of_Parameters for every formal parameter and
	function result.

2020-06-19  Arnaud Charlet  <charlet@adacore.com>

	* sem_warn.adb (Warn_On_Overlapping_Actuals): Add missing
	warning tag.

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

	* exp_ch4.adb (Get_Size_For_Range): Only make sure to return a
	size lower than that of the original type if possible.
	* libgnat/s-rannum.adb (Random_Discrete): Back out optimization
	added for 32-bit types.

2020-06-18  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch6.ads, sem_ch6.adb (Check_Formal_Conformance): New
	subprogram.
	(Check_Conformance): Move code to Check_Formal_Conformance.
	* sem_ch8.adb (Analyze_Subprogram_Renaming): Check for formal
	conformance when needed.

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

	* exp_ch4.adb (Narrow_Large_Operation): New procedure to try
	and narrow large arithmetic and comparison operations.
	(Expand_N_In): Call it.
	(Expand_N_Op_Abs): Likewise.
	(Expand_N_Op_Add): Likewise.
	(Expand_N_Op_Divide): Likewise.
	(Expand_N_Op_Eq): Likewise.
	(Expand_N_Op_Ge): Likewise.
	(Expand_N_Op_Gt): Likewise.
	(Expand_N_Op_Le): Likewise.
	(Expand_N_Op_Lt): Likewise.
	(Expand_N_Op_Minus): Likewise.
	(Expand_N_Op_Mod): Likewise.
	(Expand_N_Op_Multiply): Likewise.
	(Expand_N_Op_Ne): Likewise.
	(Expand_N_Op_Plus): Likewise.
	(Expand_N_Op_Rem): Likewise.
	(Expand_N_Op_Subtract): Likewise.
	(Expand_N_Type_Conversion): Use Convert_To procedure.
	* exp_ch9.adb (Is_Pure_Barrier) <N_Identifier>: Skip all
	numeric types.
	<N_Type_Conversion>: Use explicit criterion.

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

	* exp_ch4.adb (Expand_Allocator_Expression): Apply constraint
	and predicate checks for the qualified expression on entry,
	followed by constraint and predicate checks for the allocator
	itself, and return early if this results in a static error.
	(Expand_N_Allocator): Do not do the same here.  Instead apply
	constraint and predicate checks for arrays in the subtype
	indication case.
	* exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
	range checks to allocators here.

2020-06-18  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb (BIP_Suffix_Kind, Is_Build_In_Place_Entity): Move
	declarations...
	* exp_ch6.ads: Here.
	* exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Do not rely
	on the name of the scope to locate the extra formal BIPalloc
	since they are copied when the pointer type associated with
	dispatching calls is built; rely on routines
	Is_Build_In_Place_Entity and BIP_Suffix_Kind.
	* exp_disp.adb (Expand_Dispatching_Call): Set the scope of the
	first extra formal of the internally built pointer type.
	* sem_ch3.adb (Derive_Subprogram): Do not inherit extra formals
	from a limited interface parent since limitedness is not
	inherited in such case (AI-419) and this affects the extra
	formals.
	* sprint.adb (Write_Itype): Output extra formals of subprogram
	types.

2020-06-18  Ghjuvan Lacambre  <lacambre@adacore.com>

	* errout.adb (Write_Error_Summary): Display number of warnings
	treated as errors.
	* errutil.ads: Update comment.

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

	* exp_attr.adb (Analyze_Attribute) <Asm_{In,Out}put>: Alphabetize.
	<Component_Size>: Add check for universal integer attribute.
	<Aft>, <Bit_Order>, <Definite>, <Max_Alignment_For_Allocation>,
	<Scalar_Storage_Order>: Raise Program_Error on them.
	* sem_attr.adb (Eval_Attribute) <Component_Size>: Add comment on
	the packed array case.

2020-06-18  Steve Baird  <baird@adacore.com>

	* sem_util.adb (Object_Access_Level): Treat a 'Old attribute
	reference like an aggregate in determining its static
	accessibility level; after the evaluation of the relevant
	post-condition, the implicitly declared constant associated with
	an Old attribute reference ceases to exist. Similarly for
	Loop_Entry attribute.
	* exp_ch6.adb (Expand_Call_Helper): For an attribute reference
	that is expanded into a reference to an implicitly declared
	constant (e.g., a 'Old or 'Loop_Entry attribute), compute the
	dynamic accessibility level of that constant by looking at the
	declaration of the constant (as opposed to looking at the
	attribute reference).

2020-06-18  Steve Baird  <baird@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a
	default initial condition check for the declaration of an
	imported object.

2020-06-18  Arnaud Charlet  <charlet@adacore.com>

	* Makefile.rtl: Add s-statxd.o.
	* bindgen.adb (Gen_Adainit): Add support for XDR_Stream.
	* bindusg.adb (Display): Add mention of -xdr.
	* gnatbind.adb: Process -xdr switch.
	* init.c (__gl_xdr_stream): New.
	* opt.ads (XDR_Stream): New.
	* libgnat/s-stratt__xdr.adb: Rename to...
	* libgnat/s-statxd.adb: this and adjust.
	* libgnat/s-statxd.ads: New.
	* libgnat/s-stratt.ads, libgnat/s-stratt.adb: Choose between
	default and XDR implementation at runtime.
	* libgnat/s-ststop.ads: Update comments.
	* doc/gnat_rm/implementation_advice.rst: Update doc on XDR
	streaming.
	* gnat_rm.texi: Regenerate.

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

	* sem_attr.adb (Analyze_Attribute) <To_Address>: Use the address
	size of the target instead of the host when checking the value of
	a static expression.  Also use standard idiom for exponentiation.

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

	* sem_prag.adb (Process_Convention): Give a warning on C_Variadic_n
	being applied to a subprogram with exactly n parameters.

2020-06-18  Arnaud Charlet  <charlet@adacore.com>

	* libgnarl/s-osinte__linux.ads, libgnat/g-io.adb,
	libgnat/g-socket.adb, libgnat/g-socthi.adb,
	libgnat/g-socthi.ads, libgnat/g-socthi__vxworks.adb,
	libgnat/g-socthi__vxworks.ads, libgnat/g-sothco.ads,
	libgnat/s-io.adb, libgnat/a-except.adb: Fix function profile
	mismatch with imported C functions.

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

	* exp_ch6.adb (Expand_Call_Helper): Remove superfluous calls
	to Relocate_Node and merge calls to Analyze and Resolve in a
	couple of places.  Do not attempt to generate a range check
	for an actual parameter against the formal's type of a derived
	subprogram after generating a conversion to the formal's type
	of the parent subprogram.

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

	* checks.adb (Compute_Range_For_Arithmetic_Op): New procedure to
	compute a range for an arithmetical operation extracted from...
	(Minimize_Eliminate_Overflows): ...here.  Call it.
	(Determine_Range_Cache_O): New cache for Original_Node nodes.
	(Determine_Range): Call Compute_Range_For_Arithmetic_Op for all
	arithmetic expressions. Use Attribute_Id in lieu of Attribute_Name
	for attributes. Add handling for Range_Length alongside Length.
	Add specific handling for Alignment, Bit, First_Bit, Last_Bit,
	Max_Size_In_Storage_Elements, Position, Bit_Position,
	Component_Size, Object_Size, Size, Value_Size, Descriptor_Size.
	(Enable_Overflow_Check): Omit the check for Abs and Minus if the
	operand cannot be the largest negative number.
	(Selected_Length_Checks): Use Pos for Number_Dimensions.
	* exp_attr.adb (Expand_N_Attribute_Reference): Move compile-time
	handling of Bit_Position, Descriptor_Size, First_Bit, Last_Bit
	and Position to...
	* sem_attr.adb (Eval_Attribute): ...here.  Move up Alignment for
	objects and use Compile_Time_Known_Attribute in this case too.

2020-06-18  Ghjuvan Lacambre  <lacambre@adacore.com>

	* erroutc.ads: Declare new Is_Compile_Time_Msg boolean,
	add new Compile_Time_Pragma field to Error_Msg_Object type.
	(Count_Compile_Time_Pragma_Warnings): New function.
	* erroutc.adb (Count_Compile_Time_Pragma_Warnings): New
	function.
	(Compilation_Errors): Take Compile_Time warnings into account
	when tallying Errors/Warnings.
	* errout.ads (Error_Msg): New procedure.
	* errout.adb (Error_Msg): New procedure.
	(Error_Msg_Internal): Set new Compile_Time_Pragma field in
	Error_Msg_Object.
	* errutil.adb (Error_Msg): Set new Compile_Time_Pragma field in
	Error_Msg_Object.
	* sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Pass
	True to new Error_Msg procedure.
	* doc/gnat_rm/implementation_defined_pragmas.rst: Update doc for
	the Compile_Time_Warning pragma.
	* gnat_rm.texi: Regenerate.
	* opt.ads: Update comment.

2020-06-18  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch4.adb (Check_Compatible_Profiles): Add explicit
	initialization.

2020-06-18  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb (Generate_Index_Checks): Handle
	N_Subtype_Indication returned from Scalar_Range.

2020-06-18  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb, sem_ch3.adb: Minor refactorings.
	* sem_eval.adb (Eval_Qualified_Expression): Fix reference to RM
	rule in comment; only set a local variable Hex in the branch
	where it is used.

2020-06-18  Piotr Trojanek  <trojanek@adacore.com>

	* sem_eval.adb (Check_Non_Static_Context): Use Is_RTE.

2020-06-18  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch4.adb (Find_Equality_Types.Check_Access_Object_Types):
	New function, used to implement RM 4.5.2 (9.6/2).
	(Find_Equality_Types.Check_Compatible_Profiles): New function,
	used to implement RM 4.5.2(9.7/2).
	(Find_Equality_Types.Reference_Anonymous_Access_Type): New
	function.
	(Find_Equality_Types.Try_One_Interp): Fix handling of anonymous
	access types which was accepting both too much and too little.
	Remove accumulated special and incomplete cases for
	instantiations, replaced by Has_Compatible_Type.
	(Analyze_Overloaded_Selected_Component): Use
	Is_Anonymous_Access_Type instead of Ekind_In.
	* sem_res.adb: Code cleanup and bug fix: use
	Is_Anonymous_Access_Type instead of Ekind_In.  Relax checking of
	anonymous access parameter when universal_access "=" is
	involved.
	* sem_type.adb: Likewise.
	(Find_Unique_Type): Move code from here...
	(Specific_Type): ...to here. Also add missing handling of access
	to class wide types.
	* einfo.ads, einfo.adb (Is_Access_Object_Type): New.

2020-06-18  Bob Duff  <duff@adacore.com>

	* libgnat/a-strsto.ads, libgnat/a-ststbo.adb,
	libgnat/a-ststbo.ads, libgnat/a-ststun.adb,
	libgnat/a-ststun.ads: New files, containing packages
	Ada.Streams.Storage, Ada.Streams.Storage.Bounded, and
	Ada.Streams.Storage.Unbounded.
	* impunit.adb, Makefile.rtl: Add new file names.

2020-06-18  Javier Miranda  <miranda@adacore.com>

	* sem_ch13.adb (Has_Good_Profile): Enforce strictness in the
	check. Required to detect wrong profiles for Input and Output.
	(Analyze_Stream_TSS_Definition): Minor enhancement in the text
	of the error for class-wide attributes.

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

	* exp_attr.adb (Get_Integer_Type): Pick an unsigned type based
	on the Esize of the base type of the input type.

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

	* exp_ch4.adb (Expand_Array_Equality): For the optimization of
	the 2-element case, build new expression lists for the indices.

2020-06-18  Richard Kenner  <kenner@adacore.com>

	* sem_util.adb (Enclosing_Subprogram): No longer need
	Convention_Protected.

2020-06-18  Claire Dross  <dross@adacore.com>

	* sem_util.adb (Is_OK_Volatile_Context): Return False on
	definitions of constants declared in declare expressions.

2020-06-18  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_aspects.rst
	(Relaxed_Initialization): New implementation-defined aspect.
	* doc/gnat_rm/implementation_defined_attributes.rst
	(Initialized): New implementation-defined attribute.
	* gnat_rm.texi: Regenerate.

2020-06-18  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Expand_Dispatching_Call): Add missing decoration
	of attribute Extra_Accessibility_Of_Result.
	* freeze.adb (Check_Extra_Formals): No check required if
	expansion is disabled; Adding check on
	Extra_Accessibilty_Of_Result.
	(Freeze_Subprogram): Fix decoration of
	Extra_Accessibility_Of_Result.
	* sem_ch3.adb (Derive_Subprogram): Fix decoration of
	Extra_Accessibility_Of_Result

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

	* exp_ch4.adb (Optimize_Length_Comparison): Accept 32-bit values
	in the full unsigned range.

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

	* checks.adb (Apply_Universal_Integer_Attribute_Checks): Do not do
	anything when the type of the node is already Universal_Integer.

2020-06-17  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch10.adb (Expand_With_Clause): Add missing handling of
	N_Generic_Subprogram_Declaration, N_Subprogram_Declaration,
	N_Subprogram_Body.

2020-06-17  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb: (Check_Inherited_Indexing): Check that a type
	derived from an indexable container type cannot specify an
	indexing aspect if the same aspect is not specified for the
	parent type (RM 4.1.6 (6/5), AI12-160). Add a check that a
	specified indexing aspect for a derived type is confirming.

2020-06-17  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch9.adb (Build_Protected_Subp_Specification): Add ???
	comment about the flag Has_Nested_Subprogram not being set here.
	(Expand_N_Protected_Body): If the original body for a protected
	subprogram has the flag Has_Nested_Subprogram set, then set that
	flag on the new unprotected subprogram body that's created for
	it, and reset the Scope fields of its top level declarations,
	which have been effectively taken from the original protected
	subprogram body. Add ??? comment about unclear testing of
	Corresponding_Spec.

2020-06-17  Javier Miranda  <miranda@adacore.com>

	* aspects.ads (type Aspect_Id): Add Aspect_Yield as a Boolean
	aspect, and update the Is_Representation_Aspect, Aspect_Names,
	and Aspect_Delay arrays.
	* einfo.ads, einfo.adb (Has_Yield_Aspect, Yield_Aspect): New
	subprograms.
	* exp_ch6.adb (Add_Return, Expand_Non_Function_Return,
	Expand_Simple_Function_Return): Add calls to Yield.
	* exp_ch9.adb (Build_Accept_Body, Expand_N_Accept_Statement):
	Add calls to Yield.
	* rtsfind.ads (RE_Yield): Adding support to generate calls to
	the runtime service Ada.Dispatching.Yield
	* sem_ch13.adb (Analyze_Aspect_Yield): New subprogram.
	* sem_ch3.adb (Derive_Subprogram): Inherit attribute
	Has_Yield_Aspect.
	* sem_ch8.adb (Analyze_Subprogram_Renaming): Check consistency
	of Has_Yield in the actual subprogram of a generic
	instantiation.
	* sem_disp.adb (Check_Dispatching_Operation): Check that if the
	Yield aspect is specified for a dispatching subprogram that
	inherits the aspect, the specified value shall be confirming.
	* sem_prag.adb (Analyze_Pragma [Pragma_Implemented]): Check that
	the implementation kind By_Protected_Procedure cannot be applied
	to a procedure that has aspect Yield.

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

	* exp_ch4.adb (Expand_N_Op_Expon): Replace all occurrences of
	the original right operand with the relocated version.

2020-06-17  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb (Has_BIP_Extra_Formal): New subprogram.
	(Needs_BIP_Task_Actuals): Add support for the subprogram type
	internally generated for dispatching calls.
	* exp_disp.adb (Expand_Dispatching_Call): Adding code to
	explicitly duplicate the extra formals of the target subprogram.
	* freeze.adb (Check_Extra_Formals): New subprogram.
	(Freeze_Subprogram): Fix decoration of Extra_Formals.
	* sem_ch3.adb (Derive_Subprogram): Fix decoration of
	Extra_Formals.

2020-06-17  Bob Duff  <duff@adacore.com>

	* par.adb (P_Basic_Declarative_Items): Update comment about
	Declare_Expression.
	* par-ch3.adb (P_Declarative_Items): Pass in Declare_Expression
	flag, and if True, skip the call to Style.Check_Indentation.
	* par-ch4.adb (P_Declare_Expression): Fix incorrect comment.

2020-06-17  Arnaud Charlet  <charlet@adacore.com>

	* sem_res.adb (Valid_Conversion): Change error message to make
	it more user-friendly.

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

	* checks.ads (Apply_Length_Check_On_Assignment): Declare.
	* checks.adb (Apply_Length_Check_On_Assignment): New procedure
	to apply a length check to an expression in an assignment.
	* exp_ch5.adb (Expand_Assign_Array): Call it instead of calling
	Apply_Length_Check to generate a length check.
	* sem_ch5.adb (Analyze_Assignment): Likewise.

2020-06-17  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.adb (Is_Relaxed_Initialization_State): Add reference to
	SPARK RM.
	* sem_attr.adb (Analyze_Attribute_Old_Result): Likewise.
	* sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Reject
	aspect on completions of private types and deferred constants.
	* sem_util.ads, sem_util.adb (Has_Relaxed_Initialization):
	Adjust comments; support queries for constants.

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

	* cstand.adb (Stloc): Change to a renaming.
	(Staloc): Likewise.
	(Build_Unsigned_Integer_Type): Remove Nam parameter, use local
	constants and do not call Make_Name.
	(Make_Dummy_Index): Use local constants.
	(Create_Standard): Pass the name of entities as parameter in
	calls to New_Standard_Entity and remove calls to Make_Name.
	Adjust calls to Build_Unsigned_Integer_Type.
	(Identifier_For): Use local constant.
	(Make_Component): Pass the name of the component as parameter
	in call to New_Standard_Entity and remove call to Make_Name.
	(Make_Formal): Likewise.  Rename Formal_Name parameter into
	Nam and use local constant.
	(Make_Name): Delete.
	(New_Operator): Use local constant.
	(New_Standard_Entity): Rename S parameter into Nam and build
	the name here.  Remove call to Make_Name.
	(Register_Float_Type): Pass the name of the type as parameter
	in call to New_Standard_Entity and remove call to Make_Name.

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

	* exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
	Remove condition added for scalar types.

2020-06-17  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch3.ads (Build_Access_Subprogram_Wrapper_Body): Adjust
	colon columns; reformat comment.
	* exp_ch3.adb
	(Build_Access_Subprogram_Wrapper_Body): Likewise.
	* sem_ch3.adb (Build_Access_Subprogram_Wrapper): Reformat spec
	comment and reformat comment in body.
	(Analyze_Full_Type_Declaration): Reformat comment.
	(Replace_Type_Name): Fixed three typos, plus reformatting of
	comment.
	* sem_prag.adb (Analyze_Pre_Post_Condition): Fix typos.
	* sem_warn.adb (Warn_On_Overlapping_Actuals): Edit comments:
	remove hyphen, add missing word.

2020-06-17  Bob Duff  <duff@adacore.com>

	* libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
	libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb,
	libgnat/a-cborma.adb, libgnat/a-cborse.adb,
	libgnat/a-cdlili.adb, libgnat/a-chtgbk.adb,
	libgnat/a-chtgke.adb, libgnat/a-cidlli.adb,
	libgnat/a-cihama.adb, libgnat/a-cihase.adb,
	libgnat/a-cimutr.adb, libgnat/a-ciorma.adb,
	libgnat/a-ciorse.adb, libgnat/a-cobove.adb,
	libgnat/a-cohama.adb, libgnat/a-cohase.adb,
	libgnat/a-coinve.adb, libgnat/a-comutr.adb,
	libgnat/a-convec.adb, libgnat/a-coorma.adb,
	libgnat/a-coorse.adb, libgnat/a-crbtgk.adb,
	libgnat/a-crbtgo.adb, libgnat/a-rbtgso.adb: Move tampering
	checks earlier.

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

	* exp_attr.adb (Get_Integer_Type): Use standard types without
	a specific size.
	* sem_res.adb (Resolve_Unchecked_Type_Conversion): Remove a
	redundant intermediate conversion to Universal_Integer.

2020-06-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive): Fix
	comment and enforce it with an assertion in the body.

2020-06-17  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Full_Type_Declaration): For an
	access_to_subprogram declaration that has aspect specifications,
	call Build_Access_ Subprogram_Wrapper at once, so that pre- and
	postcondition aspects are analyzed in the context of a
	subprogram declaration.
	(Build_Access_Subprogram_Wrapper): Examine aspect specifications
	of an Access_To_Subprogram declaration. If pre- or
	postconditions are declared for it, create declaration for
	subprogram wrapper and add the corresponding aspect
	specifications to it. Replace occurrences of the type name by
	that of the generated subprogram, so that attributes 'Old and
	'Result can appear in a postcondition.
	* exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Moved
	here from sem_prag.adb.
	* exp_ch3.ads (Build_Access_Subprogram_Wrapper_Body): Visible
	subprogram.
	* sem_prag.adb (Build_Access_Subprogram_Wrapper / _Body): Moved
	to sem_ch3.adb and exp_ch3.adb.

2020-06-17  Piotr Trojanek  <trojanek@adacore.com>

	* atree.adb (Preserve_Comes_From_Source): Rewrite using
	Set_Comes_From_Source and Comes_From_Source, which enforce that
	the parameters are valid.
	* exp_ch4.adb, exp_ch5.adb, sem_ch12.adb, sem_ch6.adb,
	sem_res.adb: Rewrite using Preserve_Comes_From_Source.

2020-06-17  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Remove obsolete
	comments.

2020-06-17  Gary Dismukes  <dismukes@adacore.com>

	* aspects.ads (type Aspect_Id): Add Aspect_Static as a Boolean
	aspect, and update the Is_Representation_Aspect, Aspect_Names,
	and Aspect_Delay arrays.
	* exp_ch6.adb (Expand_Simple_Function_Return): In the case of a
	return for a static expression function, capture a copy of the
	expression of the return statement before it's expanded and
	reset its Analyzed flags. Then, just before leaving this
	procedure, if the expression was rewritten, set the
	Original_Node of the rewritten expression to the new copy and
	also set the Expression of the associated static expression
	function to designate that copy. This ensures that later copies
	of the expression made via New_Copy_Tree will fully copy all
	nodes of the expression tree.
	* inline.ads (Inline_Static_Expression_Function_Call): New
	procedure to evaluate and produce the result of a static call to
	a static expression function.
	* inline.adb: Add with and use for Sem_Res.
	(Establish_Actual_Mapping_For_Inlined_Call): New procedure
	extracted from code in Expand_Inlined_Call that traverses the
	actuals and formals of an inlined call and in some cases creates
	temporaries for holding the actuals, plus establishes an
	association between formals and actuals (via the Renamed_Object
	fields of the formals).
	(Formal_Is_Used_Once): Function removed from Expand_Inlined_Call
	and now nested in the above procedure.
	(Expand_Inlined_Call): Code for doing the formal/actual
	traversal is moved to Create_Actual_Temporaries and replaced
	with a call to that new procedure.
	(Inline_Static_Expression_Function_Call): New procedure to
	evaluate a static call to a static expression function,
	substituting actuals for their corresponding formals and
	producing a fully folded and static result expression. The
	function has subsidiary functions Replace_Formal and Reset_Sloc
	that take care of doing the mapping of formals to actuals and
	resetting the Slocs of subnodes of the mapped expression to that
	of the call so errors will be flagged on the call rather than
	function.
	* sem_ch6.adb (Analyze_Expression_Function): In the case of a
	static expression function, perform an additional preanalysis of
	the function's expression to ensure that it's a potentially
	static expression (according to the requirements of
	6.8(3.2/5-3.4/5)), and issue an error if it's not. The global
	flag Checking_Potentially_Static_Expression is set and unset
	around this checking.
	* sem_ch13.adb (Analyze_Aspect_Static): New procedure to enforce
	selected requirements of the new aspect Static on expression
	functions, including checking that the language version is
	Ada_2020 and that the entity to which it applies is an
	expression function whose formal parameters are of a static
	subtype and have mode 'in', its result subtype is a static
	subtype, and it has no pre- or postcondition aspects. A ???
	comment is added to indicate the need for adding checking that
	type invariants don't apply to the result type if the function
	is a boundary entity.
	(Analyze_One_Aspect): Call Analyze_Aspect_Static for aspect
	Static.
	* sem_elab.adb (Build_Call_Marker): Return without creating a
	call marker when the subprogram is a static expression function,
	since no ABE checking is needed for such functions.
	* sem_eval.ads (Checking_Potentially_Static_Expression): New
	function to return whether the checking for potentially static
	expressions is enabled.
	(Set_Checking_Potentially_Static_Expression): New procedure to
	enable or disable checking of potentially static expressions.
	* sem_eval.adb (Checking_For_Potentially_Static_Expression): New
	global flag for determining whether preanalysis of potentially
	static expression is being done, which affects the behavior of
	certain static evaluation routines.
	(Checking_Potentially_Static_Expression): New function to return
	whether the checking for potentially static expressions is
	enabled.
	(Eval_Call): When evaluating a call within a static expression
	function with checking of potentially static expression
	functions enabled, substitutes a static value in place of the
	call to allow folding of the expression.
	(Eval_Entity_Name): When evaluating a formal parameter of a
	static expression function with checking of potentially static
	expression functions enabled, substitutes a static value in
	place of the reference to the formal to allow folding of the
	expression.
	(Set_Checking_Potentially_Static_Expression): New procedure to
	enable or disable checking of potentially static expressions.
	* sem_res.adb (Resolve_Call): Test for a recursive call
	occurring within a static expression function and issue an error
	for such a call. Prevent the establishment of a transient scope
	in the case this is a call to a (string-returning) static
	expression function. When calling a static expression function,
	if no error has been posted on the function, call
	Inline_Static_Expression_Function_Call to convert the call into
	its equivalent static value.
	* sem_util.ads (Is_Static_Expression_Function): New function
	returning whether the subprogram entity passed to it is a static
	expression function.
	(Is_Static_Expression_Function_Call): New function to determine
	whether the call node passed to it is a static call to a static
	expression function.
	* sem_util.adb (Compile_Time_Constraint_Error): Suppress
	compile-time Constraint_Error reporting when checking for a
	potentially static expression.
	(Is_Static_Expression_Function): New function returning whether
	the subprogram entity passed to it is a static expression
	function by testing for the presence of aspect Static.
	(Has_All_Static_Actuals): New function in
	Is_Static_Expression_Function_Call that traverses the actual
	parameters of a function call and returns True only when all of
	the actuals are given by static expressions. In the case of a
	string-returning function, we call Resolve on each actual to
	ensure that their Is_Static_Expression flag properly reflects
	whether they're static, to allow suppressing creation of a
	transient scope within Resolve_Call. A prominent ??? comment is
	added to explain this rather unconventional call to Resolve.
	(Is_Static_Expression_Function_Call): New function that
	determines whether a node passed to it is a call to a static
	expression function all of whose actual parameters are given by
	static expressions.

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

	* exp_ch4.adb (Optimize_Length_Comparison): New local variable to
	record whether this may be a dynamic superflat case.
	(Is_Optimizable): Accept 0 as lower bound and set it in this case,
	but return false if the operand is not a length too.
	(Rewrite_For_Equal_Lengths): New procedure.
	Optimize the comparison of two lengths in the superflat case when
	the arrays have the same bounds.

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

	* doc/gnat_rm/implementation_defined_attributes.rst (Bit): Sharpen
	the comparison with System.Storage_Unit.
	(Descriptor_Size): Clear confusion about alignment and padding.
	* gnat_rm.texi: Regenerate.

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

	* exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
	Do not replace the bound for an array type if it is public.

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

	* exp_ch4.adb (Optimize_Length_Comparison): Make sure the base
	types are the same when comparing Y'Last and X'Last directly.

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

	* exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
	Replace it with a direct reference to an entity which is not a
	discriminant for constrained array types.  Add same condition
	for scalar types.
	<Attribute_Last>: Merge with above implementation.
	* exp_ch4.adb (Optimize_Length_Comparison): Be prepared for a
	second entity whose length is compared.  Rename Prepare_64 to
	Convert_To_Long_Long_Integer.  If the second entity is present,
	compute the difference of the 'First attributes and compare the
	sum of 'Last of the second entity with this difference against
	'Last of the first entity.  Add a special case when the 'First
	attributes are equal.  Suppress overflow checks in all cases.

2020-06-17  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst, lib-writ.ads,
	par-prag.adb, sem_ch12.adb, sem_ch8.adb, sem_prag.adb: Fix
	casing of GNATprove.
	* gnat_rm.texi: Regenerate.

2020-06-17  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb (Generate_Range_Check): Simplify redundant
	condition.
	* sem_ch3.adb (Check_Initialization, Process_Discriminants):
	Likewise.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise.

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

	* exp_fixd.adb (Build_Conversion): Also preserve the
	Conversion_OK flag of an inner conversion.

2020-06-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): Enable expansion
	that creates a renaming that removes side effects from the
	iterated object in the GNATprove mode; then analyze reference to
	this renaming (it is required for GNATprove and harmless for
	GNAT).

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

	* sinfo.ads (Conversion_OK): Document use for 'Pos and 'Val.
	* exp_attr.adb (Get_Integer_Type): New function returning a
	small integer type appropriate for an enumeration type.
	(Expand_N_Attribute_Reference) <Attribute_Enum_Rep>: Call it.
	<Attribute_Pos>: For an enumeration type with a standard
	representation, expand to a conversion with Conversion_OK.
	<Attribute_Val>: Likewise.
	* exp_ch4.adb (Expand_N_Type_Conversion): Do not expand when
	the target is an enumeration type and Conversion_OK is set.

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

	* sem_ch4.adb (Common_Type): Go to Underlying_Full_View, if any.

2020-06-16  Richard Kenner  <kenner@adacore.com>

	* exp_unst.adb (Subp_Index): Change way we detect internal
	protected subprograms.

2020-06-16  Richard Kenner  <kenner@adacore.com>

	* comperr.adb (Compiler_Abort): Clarify message displayed to
	customers.

2020-06-16  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb, doc/gnat_ugn/the_gnat_compilation_model.rst,
	einfo.ads, exp_ch5.adb, exp_ch7.adb, lib-xref.ads,
	libgnat/g-spitbo.ads, make.adb, sem_aux.adb, sem_ch3.adb,
	sem_ch4.adb, sem_ch5.adb, urealp.adb: Fix wrong casing.
	* gnat_ugn.texi: Regenerate.

2020-06-16  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.adb, exp_spark.adb, exp_util.adb, sem_eval.adb: Replace
	"Ekind ... in Object_Kind" with "Is_Object (...)".

2020-06-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Warn_On_Overlapping_Actuals): Fix typo in
	comment.

2020-06-16  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.adb (Evaluate_Name): Force evaluation of aggregates;
	recursively evaluate expression of a qualified expression; fix
	location of the comment for an attribute referenced and an
	indexed component.

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

	* freeze.adb (Freeze_Expression): Use consistent style and
	formatting in a couple of cases.

2020-06-16  Steve Baird  <baird@adacore.com>

	* libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Uncomment the
	commented-out Integer_Literal aspect specification for type
	Big_Integer.

2020-06-16  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb (BIP_Suffix_Kind, Check_BIP_Actuals,
	Is_Build_In_Place_Entity): New subprograms.
	(Make_Build_In_Place_Call_In_Allocator,
	Make_Build_In_Place_Call_In_Anonymous_Context,
	Make_Build_In_Place_Call_In_Assignment,
	Make_Build_In_Place_Call_In_Object_Declaration): Add assertions.
	(Needs_BIP_Task_Actuals): Add missing support for thunks.
	(Expand_Actuals): Ensure that the BIP call has available an
	activation chain and the _master variable.
	* exp_ch9.adb (Find_Enclosing_Context): Initialize the list of
	declarations of empty blocks when the _master variable must be
	declared and the list was not available.

2020-06-16  Bob Duff  <duff@adacore.com>

	* par-ch4.adb (P_Case_Expression): Move to be local.
	(P_Declare_Expression): New parsing routine.
	(P_Unparen_Cond_Expr_Etc): New name for
	P_Unparen_Cond_Case_Quant_Expression which was missing one case
	in its name (iterated component association), and we're adding a
	new case (declare expression), so lets use "Etc" instead of
	trying to pack all those things into the name.  Add call to
	P_Declare_Expression, and check for missing parens.
	(P_Expression_If_OK, P_Expression_Or_Range_Attribute_If_OK): Add
	Tok_Declare.
	* par.adb (P_Basic_Declarative_Items): Add parameter
	Declare_Expression so we can tailor the error message about
	incorrect bodies.
	(P_Case_Expression): Move to body.
	* par-ch3.adb (P_Basic_Declarative_Items): Tailor the error
	message about incorrect bodies.
	* par-ch7.adb (P_Package): Pass Declare_Expression => False to
	P_Basic_Declarative_Items.
	* sem.ads (In_Declare_Expr): Counter used to determine whether
	we are analyzing a declare_expression. Needed to give errors
	about things that are not allowed in declare_expression, such as
	the 'Access attribute.
	* sem.adb (Do_Analyze): Save/restore In_Declare_Expr.
	* sem_ch4.adb (Analyze_Expression_With_Actions): Give this node
	its own scope.  That seems better in general, but it is
	necessary for declare_expressions.  For example, an identifier
	declared in a declare_expression should not clash with the same
	identifier in an outer scope.  If this is a declare_expression,
	indicated by Comes_From_Source, then check legality rules, and
	incr/decr In_Declare_Expr.
	* sem_aggr.adb (Resolve_Aggregate): Allow an applicable index
	constraint for a declare_expression, so if its expression is an
	array aggregate, it can have "others => ...".
	* sem_attr.adb (Analyze_Access_Attribute): Disallow these
	attributes in declare_expressions. Add comment to make it clear
	that Unrestricted_Access is included.
	* sinfo.ads, sinfo.adb, atree.ads, atree.adb: Remove the
	now-incorrect comment in sinfo.ads that says
	N_Expression_With_Actions has no proper scope.  Add 17-parameter
	versions of Nkind_In.  Remove the 16-parameter versions of
	Nkind_In.

2020-06-16  Arnaud Charlet  <charlet@adacore.com>

	* sem_aux.ads, sem_aux.adb (Is_Record_Or_Limited_Type): New
	function.
	* exp_ch4.adb, sem_ch4.adb (Analyze_Membership_Op,
	Expand_Set_Membership.Make_Cond): Choose between primitive and
	predefined equality for membership tests.

2020-06-16  Ed Schonberg  <schonberg@adacore.com>

	* sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify code and
	implement AI12-0216 which clarifies the conditions under which
	overlapping actuals in a call are illegal. If proper warnings
	are enabled, GNAT also emits warnings in legal cases of
	overlopping actuals.

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

	* freeze.adb (Freeze_Expression): Stop climbing the parent chain
	at a N_{Case,If}_Expression node for a type or an entity that
	does not come from source.

2020-06-16  Steve Baird  <baird@adacore.com>

	* snames.ads-tmpl: Define names of the three new aspects.
	* aspects.ads: Define the three new aspects.
	* sem_util.ads, sem_util.adb, sem_dim.adb: Move the function
	String_From_Numeric_Literal from being declared in the body of
	package Sem_Dim to being declared in the visible part of package
	Sem_Util.
	* sem_ch13.ads, sem_ch13.adb: Declare new visible procedure
	Validate_Literal_Aspect. This is where most of the legality
	checking occurs for an aspect specification for one of the three
	new aspects, as well as resolution of the subprogram named in
	the aspect specification. Follow example of other aspects (e.g.,
	Validate_Literal_Aspect is called in much the same way as
	Validate_Iterable_Aspect in Analyze_Aspects_At_Freeze_Point; a
	small amount of legality checking is performed in
	Analyze_One_Aspect in much the same way as for Default_Value or
	Default_Component_Value aspects). Most of the work is done in
	Validate_Literal_Aspect.
	* contracts.adb (Add_Contract_Item): Call
	Validate_Literal_Aspect in much the same way that
	Validate_Iterable_Aspect was already being called.
	* sem_res.adb (Resolve): Rewrite a literal as a call if it is a
	user-defined literal.  This is where the dynamic semantics of
	the 3 new aspects are implemented.
	* sem_ch6.adb (Fully_Conformant_Expressions): Two numeric
	literals that have different text but the same value (e.g.,
	12345 and 12_345) do not conform if they are user-defined
	literals. Introduce a new function
	User_Defined_Numeric_Literal_Mismatch to avoid duplication in
	making this check.
	* sem_type.adb (Has_Compatible_Type): A numeric literal can be
	compatible with a non-numeric type (and a string literal can be
	compatible with a non-string type) if it can be interpreted as a
	user-defined literal.

2020-06-16  Arnaud Charlet  <charlet@adacore.com>

	* sem_aggr.adb (Resolve_Extension_Aggregate): Fix implementation
	of AI05-0115 by checking the correct type.

2020-06-16  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Specification): Generate error
	message for functions returning interfaces.

2020-06-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Membership_Entry): Relax assertion to also
	recognize qualified identifiers.

2020-06-16  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.adb (Evaluate_Name): Force evaluation of operators.

2020-06-16  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch4.adb (Analyze_Membership_Op): Reset entity of equality
	nodes for membership tests with singletons.
	(Analyze_User_Defined_Binary_Op): Always perform the analysis
	since nodes coming from the expander also may refer to non
	standard operators as part of membership expansion.
	* exp_ch4.adb (Expand_Set_Membership.Make_Cond): Reset entity of
	equality node.
	* sem_type.ads: Fix typo in comment.

2020-06-16  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Add
	Check_Not_Incomplete_Type call.

2020-06-16  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch6.adb: Add closing paren in a comment.
	* sem_util.adb: Correct comment typo (aggreate => aggregate).

2020-06-16  Javier Miranda  <miranda@adacore.com>

	* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	Code cleanup.

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

	* freeze.adb (In_Expanded_Body): Remove unreachable code.
	(Freeze_Expression): Rename a couple of local variables.
	In the case of an expanded body, also freeze locally the
	entities declared in a nested block.

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

	* sem_ch4.adb (Transform_Object_Operation): Document that it
	may be partially destructive for the parent of the node.
	(Try_Object_Operation): Undo the changes made above on failure.

2020-06-16  Javier Miranda  <miranda@adacore.com>

	* restrict.adb (Global_No_Tasking): Adding
	Targparm.Restrictions_On_Target Fixes regressions with zfp.

2020-06-16  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb: (Freeze_Expression, In_Expanded_Body): Treat the
	generated body of an expression function like other bodies
	generated during expansion (e.g. stream subprograms) so that
	those bodies are not treated as freezing points. Handle properly
	other global references in such completions.

2020-06-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Remove trivially
	useless initialization of Is_Object_Reference.
	* sem_util.adb (Is_Object_Reference): Simplify detection of
	binary and unary operators; literally implement rules about
	aggregates and qualified expressions; recognize string literals
	as object references.

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

	* sem_ch12.adb (Validate_Derived_Type_Instance): Reword error
	message for 12.5.1(8) subclause and add secondary message if
	the incompatibility comes from the predicates.
	* sem_ch3.adb (Check_Constraining_Discriminant): New procedure
	to give the error required by the 3.7(15) subclause.  Mention
	"statically" in the error message and add secondary message
	if the incompatibility comes from the predicates.
	(Build_Derived_Concurrent_Type): Call it when a new discriminant
	constrains an old one.
	(Build_Derived_Record_Type): Likewise.
	* sem_eval.ads (Predicates_Compatible): Declare.
	* sem_eval.adb (Predicates_Compatible): New function to implement
	the compatibility of predicates specified by the 4.9.1 clause.
	(Subtypes_Statically_Compatible): Call it.

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

	* sem_eval.ads (Predicates_Match): Fix description.
	* sem_eval.adb (Predicates_Match): Rewrite.

2020-06-15  Ed Falis  <falis@adacore.com>

	* Makefile.rtl: Change name of hie/g-io__vxworks-ppc-cert.adb.

2020-06-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch8.adb (Premature_Usage): Add support for subtype
	references and replace set of if-then-else by a case statement.

2020-06-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Depends_In_Decl_Part,
	Analyze_Global_In_Decl_Part): Bring back task discriminants for
	analysis of the Global/Depends contracts; add comments.

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

	* einfo.ads (Return_Applies_To): Document special usage for E_Block.
	* einfo.adb (Write_Field8_Name): Write it for E_Block too.
	* exp_ch4.adb (Expand_N_Type_Conversion): Remove implementation of
	the check prescribed by AI05-0073.
	* exp_ch6.adb (Apply_CW_Accessibility_Check): New procedure to apply
	the check prescribed by AI95-344 extracted from...
	(Expand_N_Extended_Return_Statement): Apply the check prescribed by
	AI95-344 to the expression, if present.  Suppress only access checks
	when analyzing the rewritten result.
	(Expand_Simple_Function_Return): ...here.  Rename local variable.
	Call Apply_CW_Accessibility_Check to apply the check prescribed by
	AI95-344, but do not do it for the simple return statement generated
	by the expansion of an extended return statement.  Apply the check
	prescribed by AI05-0073 to all functions returning anonymous access
	type designating a specific tagged type, but not if the expression
	was null or tag checks are suppressed for the type, and use Not In
	operator rather than comparing the tags explicitly.
	* sem.adb (Analyze): Handle all Suppress values.
	* sem_ch6.adb (Analyze_Function_Return): Do not explicitly apply
	predicate checks in the case of an extended return statement.
	Do not apply an implicit conversion to the anonymous access result
	type in the case of the simple return statement generated by the
	expansion of an extended return statement.
	(New_Overloaded_Entity): Small comment tweak.
	* treepr.adb (Print_Node): Fix typo in flag string.

2020-06-15  Bob Duff  <duff@adacore.com>

	* exp_put_image.ads, exp_put_image.adb
	(Image_Should_Call_Put_Image): New function to determine whether
	the call to Put_Image should be generated.
	(Build_Image_Call): New procedure to generate the call to
	Put_Image.
	* exp_imgv.adb (Expand_Image_Attribute): Use underlying types to
	bypass privacy (only in Ada 2020). If
	Image_Should_Call_Put_Image is True (which happens only in Ada
	2020), then call Build_Image_Call.
	* rtsfind.ads, rtsfind.adb: Add the necessary declarations in
	Ada.Strings.Text_Output.Buffers.
	* sem_attr.adb (Check_Image_Type): Enable the Ada 2020 case.
	* libgnat/a-stoufo.ads, libgnat/a-stoufo.adb: Use the less
	restrictive type that allows newline characters.

2020-06-15  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch9.ads (Build_Master_Declaration): Add commas.
	* exp_ch9.adb (Build_Master_Entity): Spelling fix ("build" =>
	"built").
	(Build_Task_Activation_Call): Fix word order.

2020-06-15  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-nbnbin.ads (Big_Positive, Big_Natural): Fix
	predicate.

2020-06-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix
	dealing with scopes on subprogram bodies that act as specs.
	* sem_util.adb (Has_Relaxed_Initialization): Fix trivial
	mistake.

2020-06-15  Javier Miranda  <miranda@adacore.com>

	* restrict.ads (Set_Global_No_Tasking, Global_No_Tasking): New
	subprograms.
	* restrict.adb (Set_Global_No_Tasking, Global_No_Tasking): New
	subprograms.
	* sem_ch3.adb (Access_Definition): Do not skip building masters
	since they may be required for BIP calls.
	(Analyze_Subtype_Declaration): Propagate attribute
	Is_Limited_Record in class-wide subtypes and subtypes with
	cloned subtype attribute; propagate attribute
	Is_Limited_Interface.
	* sem_ch6.adb (Check_Anonymous_Return): Do not skip building
	masters since they may be required for BIP calls. Use
	Build_Master_Declaration to declare the _master variable.
	(Create_Extra_Formals): Add decoration of Has_Master_Entity when
	the _master formal is added.
	* exp_ch3.adb (Init_Formals): Adding formal to decorate it with
	attribute Has_Master_Entity when the _master formal is added.
	(Build_Master): Do not skip building masters since they may be
	required for BIP calls.
	(Expand_N_Object_Declaration): Ensure activation chain and
	master entity for objects initialized with BIP function calls.
	* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	Adding support to detect and save restriction No_Tasking when
	set in the run-time package System or in a global configuration
	pragmas file.
	* sem_util.adb (Current_Entity_In_Scope): Overload this
	subprogram to allow searching for an entity by its Name.
	* sem_util.ads (Current_Entity_In_Scope): Update comment.
	* exp_ch4.adb (Expand_N_Allocator): Do not skip building masters
	since they may be required for BIP calls.
	* exp_ch6.ads (Might_Have_Tasks): New subprogram.
	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add
	support for BIP calls returning objects that may have tasks.
	(Make_Build_In_Place_Call_In_Allocator): Build the activation
	chain if the result might have tasks.
	(Make_Build_In_Place_Iface_Call_In_Allocator): Build the class
	wide master for the result type.
	(Might_Have_Tasks): New subprogram.
	(Needs_BIP_Task_Actuals): Returns False when restriction
	No_Tasking is globally set.
	* exp_ch9.ads (Build_Master_Declaration): New subprogram.
	* exp_ch9.adb (Build_Activation_Chain_Entity): No action
	performed when restriction No_Tasking is globally set.
	(Build_Class_Wide_Master): No action performed when restriction
	No_Tasking is globally set; use Build_Master_Declaration to
	declare the _master variable.
	(Build_Master_Declaration): New subprogram.
	(Build_Master_Entity): No action performed when restriction
	No_Tasking is globally set; added support to handle transient
	scopes and _finalizer routines.
	(Build_Master_Renaming): No action performed when restriction
	No_Tasking is globally set.
	(Build_Task_Activation_Call): Skip generating the call when
	the chain is an ignored ghost entity.
	(Find_Master_Scope): Generalize the code that detects transient
	scopes with master entity.
	* einfo.ads (Has_Nested_Subprogram): Minor comment reformatting.

2020-06-15  Arnaud Charlet  <charlet@adacore.com>

	* sem_attr.adb (Eval_Attribute): Protect against previous
	errors.
	* sem_ch13.adb (Analyze_Aspect_Default_Value): Remove redundant
	error checking, handling in Analyze_Aspect_Specifications.
	(Analyze_Aspect_Specifications): Refine error messages on
	Default_[Component_]Value.
	(Check_Aspect_Too_Late): New procedure.
	(Rep_Item_Too_Late.Is_Derived_Type_With_Constraint): Remove,
	dead code.
	* aspects.ads (Is_Representation_Aspect): Default_Value is a
	representation aspect.

2020-06-15  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-wichha.ads, libgnat/a-wichha.adb,
	libgnat/a-wichun.ads, libgnat/a-wichun.adb (Is_Basic, To_Basic):
	New.
	* libgnat/s-utf_32.ads, libgnat/s-utf_32.adb (Is_UTF_32_Basic,
	To_UTF_32_Basic, Decomposition_Search): New subprograms.
	(Unicode_Decomposition): New table.

2020-06-15  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb (Add_Call_By_Copy_Code): In the case of a view
	conversion passed to a scalar out-mode parameter where the
	formal has Default_Value set, declare the copy temp with the
	base type of the formal's subtype and initialize the copy temp
	with the actual's value.

2020-06-15  Justin Squirek  <squirek@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression): Set default value for
	Target to silence potential warnings.
	(Expand_N_If_Expression): Add calculation to check when the if
	expression is used directly in the context of an actual of an
	anonymous access type and add a special path to force expansion
	of the if expression in this case.
	* exp_ch6.adb (Expand_Branch): Generate an assignment to the
	level temporary for a given branch.
	(Expand_Call_Helper): Add expansion to allow for creating a
	temporary to store associated accessiblity levels on each branch
	of the conditional expression.  Also perform expansion of
	function calls into expressions with actions, and fixup
	references to N with Call_Node.
	(Insert_Level_Assign): Move through nested conditional
	expressions to each branch.
	* sem_util.ads, sem_util.adb (Is_Anonymous_Access_Actual): Added
	to detect when to force expansion of if expressions.

2020-06-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Depends_In_Decl_Part,
	Analyze_Global_In_Decl_Part): Do not install task discriminants
	for analysis of the Global/Depends contracts.

2020-06-15  Piotr Trojanek  <trojanek@adacore.com>

	* contracts.adb (Analyze_Object_Contract): Do not expect
	Global/Depends on single protected units.

2020-06-15  Justin Squirek  <squirek@adacore.com>

	* sem_res.adb (Valid_Conversion): Add missing condition to
	trigger proper static accessiblity failiures when the target
	type is an anonymous access.

2020-06-15  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb (Expand_Call_Helper): Replace repeated Ekind with
	Ekind_In.

2020-06-15  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb, sem_util.adb: Remove excessive parents,
	especially since they don't make the code any easier to read.

2020-06-15  Piotr Trojanek  <trojanek@adacore.com>

	* aspects.ads (Aspect_Id): Add Aspect_Relaxed_Initialization.
	(Implementation_Defined_Aspect): Add new aspect.
	(Aspect_Argument): Add new aspect with Optional_Expression
	argument.
	(Is_Representation_Aspect): Add new aspect as a
	non-representation one.
	(Aspect_Names): Add name for the new aspect.
	(Aspect_Delay): Add new aspect as a non-delayed one.
	* sem_ch3.adb: Minor reformatting.
	* einfo.ads, einfo.adb (Is_Relaxed_Initialization_State): New
	query; reuses existing code for querying abstract state options.
	* exp_attr.adb (Expand_N_Attribute_Reference): For now ignore
	attribute 'Initialized.
	* sem_attr.adb (Analyze_Attribute_Old_Result): Allow attribute
	'Result to be used in the aspect Relaxed_Initialization
	expression.
	(Analyze_Attribute): Analyze attribute 'Initialized; based on
	existing code for attribute 'Valid_Scalars.
	(Eval_Attribute): Do not expect attribute 'Initialized, just
	like attribute 'Valid_Scalars is not expected.
	* sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): New
	routine.
	(Analyze_Aspect_Specifications): Analyze new aspect in a
	dedicated routine.
	(Check_Aspect_At_Freeze_Point): Do not expect new aspect.
	* sem_prag.adb (Analyze_Abstract_State): Support option
	Relaxed_Initialization on abstract states.
	* sem_util.ads, sem_util.adb (Has_Relaxed_Initialization): New
	query for the GNATprove backend.
	* snames.ads-tmpl (Snames): Add Name_Ids for the new aspect and
	attribute; add an Attribute_Id for the new attribute.

2020-06-15  Bob Duff  <duff@adacore.com>

	* exp_put_image.adb, libgnat/s-putima.adb, libgnat/s-putima.ads,
	rtsfind.ads: Enable Put_Image if Is_Access_Subprogram_Type (Typ).
	Remove comment saying it's disabled in that case.  Rename
	Put_Image_Access_Prot to be Put_Image_Access_Prot_Subp to
	clarify that we're talking about access-to-subprogram, not
	access-to-protected-object.

2020-06-15  Bob Duff  <duff@adacore.com>

	* sem_attr.adb (Check_Image_Type): New procedure for checking
	the type, depending on language version. Disable the Ada 2020
	support until the corresponding expander work is done.
	(Analyze_Image_Attribute): Call Check_Image_Type.  Rearrange the
	code to be simplier and more logical.  When P_Type is modified,
	modify P_Base_Type accordingly.
	* sem_util.adb (Is_Object_Image): Do not return False if the
	prefix is a type. X'Image should be considered an image of an
	object iff X is an object (albeit illegal pre-2020 if
	nonscalar).

2020-06-15  Bob Duff  <duff@adacore.com>

	* libgnat/s-putima.ads, libgnat/s-putima.adb
	(Put_Image_Access_Subp, Put_Image_Access_Prot): New procedures
	for printing access-to-subprogram objects.  Remove an explicit
	" ", because Put_Image includes the annoying leading blank.
	* rtsfind.ads: Add new procedures in s-putima.
	* exp_put_image.adb: Call new procedures as appropriate.

2020-06-15  Bob Duff  <duff@adacore.com>

	* exp_imgv.adb (Expand_Image_Attribute): Allow private types.
	Put_Image generates Image for numeric types, and private types
	whose full type is numeric. This requires the Conversion_OK flag
	for integer and floating-point types. For fixed point, we need
	the extra conversion.
	* exp_put_image.adb (Build_Elementary_Put_Image_Call): Remove
	special handling of real types.
	(Enable_Put_Image): Enable for reals.

2020-06-15  Bob Duff  <duff@adacore.com>

	* exp_attr.adb (Put_Image): Use underlying type for strings.
	Remove unchecked union processing.
	* exp_put_image.adb (Tagged_Put_Image_Enabled): Use -gnatd_z to
	enable default Put_Image for tagged types.  This allows testing
	that feature.
	(Build_String_Put_Image_Call): Set Conversion_OK flag.
	(Make_Component_List_Attributes): Remove unchecked union
	processing.
	(Enable_Put_Image): Disable for unchecked unions.  Enable for
	nonscalar types (which were mistakenly disabled in earlier
	changes).
	* debug.adb: Document -gnatd_z switch.
	* libgnat/s-putima.adb (Put_Image_String, Put_Image_Wide_String,
	Put_Image_Wide_Wide_String): Double double-quote characters.
	Forget about special handling of control characters for now --
	that's rare enough to not be a priority, and it's not clear what
	the right thing to do is anyway.
	* namet.adb: Minor: Improve debugger-friendliness.
	* sinfo.ads: Minor: Add "???" comment.

2020-06-15  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.ads, sem_util.adb (Is_Renaming_Declaration): Remove.

2020-06-15  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Expression): When traversing the tree
	looking for the proper insertion point for the freeze node of an
	entity that is declared in an outer scope, set the candidate
	subprogram body node properly.  Previous code has an off-by-one
	error.

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

	* exp_attr.adb (Expand_N_Attribute_Reference) <Has_Same_Storage>:
	Do not do superfluous work.  Add the condition (X'Size /= 0) on
	both paths and turn binary AND into short-circuit AND THEN.

2020-06-15  Steve Baird  <baird@adacore.com>

	* sem_attr.adb (Analyze_Attribute): In the Loop_Entry case,
	replace a call to Statically_Denotes_Object with a call to
	Statically_Names_Object and clean up the preceding comment.

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

	* sem_res.adb (Resolve_Set_Membership): Remove local variable.
	In the non-overloaded case, call Intersect_Types on the left
	operand and the first alternative to get the resolution type.
	But test the subtype of the left operand to give the warning.

2020-06-12  Steve Baird  <baird@adacore.com>

	* sem_res.adb (Valid_Conversion): The simpler cases of
	violations of the aforementioned 8.6 rule are already handled
	correctly. These include cases where the operand of the type
	conversion is an access parameter or a stand-alone object of an
	anonymous access type. Add code to detect violations where the
	operand of the type conversion is an access discriminant whose
	accessibility level is tied to one of the other simpler cases.
	This is implemented in a new function,
	Valid_Conversion.Is_Discrim_Of_Bad_Access_Conversion_Argument,
	which is called in place of the previous test.

2020-06-12  Bob Duff  <duff@adacore.com>

	* exp_attr.adb (Put_Image): Remove assertion. This assertion is
	False in mixed-Ada-version programs.
	* exp_put_image.adb (Tagged_Put_Image_Enabled): New flag to make
	it easy to experiment with Put_Image on tagged types. False in
	this version.
	(Enable_Put_Image): Enable in pre-2020.  Workarounds: Disable
	for tagged types if Tagged_Put_Image_Enabled is False. Disable
	for access-to-subprogram types.  Disable if errors have been
	detected, or Sink is unavailable.
	(Preload_Sink): Move all conditionals here, from Sem_Ch10, so
	they can be nearby related code in Enable_Put_Image.  Load Sink
	only if we have seen a tagged type.  This removes the dilemma
	about calling Preload_Sink when compiling the compiler, which
	caused unwanted dependences.
	* exp_put_image.ads (Preload_Sink): New formal Compilation_Unit,
	needed to move all conditionals here, from Sem_Ch10.
	* libgnat/a-stouut.adb (Put_UTF_8): Make this suitable for
	inlining, so we don't get warnings about inlining in some tests.
	And so it can be inlined!
	* opt.ads (Tagged_Seen): New flag (see Preload_Sink).
	* scng.adb (Scan): Set new Tagged_Seen flag.
	* sem_ch10.adb (Analyze_Compilation_Unit): Move conditionals and
	comments regarding Preload_Sink into Preload_Sink.

2020-06-12  Arnaud Charlet  <charlet@adacore.com>

	* sem_res.adb (Resolve_Actuals): Check for AI12-0074.

2020-06-12  Olivier Hainque  <hainque@adacore.com>

	* libgnat/s-secsta.ads (Memory_Alignment): New constant, memory
	alignment for chunks and allocated blocks. Initialize to
	Standard'Maximum_Alignment * 2.
	(Chunk_Memory): Use it.
	* libgnat/s-secsta.adb (Round_Up): Likewise.

2020-06-12  Piotr Trojanek  <trojanek@adacore.com>

	* par-prag.adb: Fix ordering.
	* snames.ads-tmpl (Name_Test_Case, Pragma_Test_Case): Likewise.
	* sem_prag.adb (Sig_Flags): Likewise.

2020-06-12  Arnaud Charlet  <charlet@adacore.com>

	* sem_res.adb (Resolve_Entity_Name): Fix handling of expressions
	containing array attributes wrt Ada 83 detection.

2020-06-12  Steve Baird  <baird@adacore.com>

	* sem_util.ads, sem_util.adb: Define 3 new Boolean-valued
	functions - Statically_Denotes_Entity,
	Statically_Denotes_Object, and Statically_Names_Object. The
	first two were taken from sem_attr.adb. The term "statically
	names" is defined in the Ada RM and the new function
	Statically_Names_Object is intended to reflect that definition,
	or more precisely, as described in a comment in the code, to
	reflect the expected future definition of that term.
	* sem_attr.adb: Delete functions Statically_Denotes_Object and
	Statically_Denotes_Entity; these two functions have been moved
	to package Sem_Util. Replace call to Statically_Denotes_Object
	with a call to Statically_Names_Object as per AI12-0217 (a
	binding interpretation, so no Ada_Version check).
	* exp_ch9.adb (Expand_Entry_Barrier.Is_Simple_Barrier): Change
	name of function (it was previously Is_Simple_Barrier_Name)
	because the function should return True in the case of a static
	expression; implement this requirement.  Change function to
	include a call to Statically_Names_Object so that, for Ada_2020
	and later, it will return True for appropriate subcomponent
	names.
	(Expand_Entry_Barrier.Is_Pure_Barrier): Handle
	N_Indexed_Component and N_Selected_Component cases by calling
	Statically_Names_Object.
	(Expand_Entry_Barrier): Reorganize to treat Simple_Barriers and
	Pure_Barriers more uniformly.  Prevent cascaded errors.

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

	* sem_ch12.adb (Find_Matching_Actual): Add guard on search loops
	to detect a compilation error when using a compiler built
	without assertions.
	(Instantiate_Formal_Subprogram): Create a new subprogram name
	for the actual only if formal has contract aspects and expansion
	is enabled.

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

	* exp_aggr.adb: Add with and use clauses for Sem_Mech.
	(Get_Base_Object): New function to get the base object of a node.
	(In_Place_Assign_OK): Add Target_Object parameter.  Deal with a
	qualified expression on entry.  Remove short-circuit for array
	aggregates with a single "others" choice.  Do not look into the
	components of the aggregate if the parent is an allocator.
	(Check_Component): Add T_OK parameter and rewrite.
	(Safe_Component): Invoke Check_Component with T_OK set to False.
	(Convert_To_Assignments): Try to use an in-place assignment for
	any target; for that, call Get_Base_Object on the target and pass
	the result to In_Place_Assign_OK.
	(Expand_Array_Aggregate): Use Parent_Kind and Parent_Node more
	consistently.  For an assignment, call Get_Base_Object on the
	target and pass the result to In_Place_Assign_OK.

2020-06-12  Dmitriy Anisimkov  <anisimko@adacore.com>

	* socket.c (__gnat_minus_500ms): Use GetVersionEx to detect
	Windows Server version.
	* libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): Remade to
	Boolean constant.
	* libgnat/g-socket.adb (Set_Socket_Option): Use
	Minus_500ms_Windows_Timeout constant instead of function call.

2020-06-12  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-coinho.ads, libgnat/a-coinho.adb,
	libgnat/a-coinho__shared.ads, libgnat/a-coinho__shared.adb
	(Swap): New procedure.

2020-06-12  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch6.adb (Expand_N_Subprogram_Declaration): Do nothing for
	a subprogram declared in a protected body.
	* exp_ch9.ads, exp_ch9.adb
	(Build_Private_Protected_Declaration): Moved to sem_ch6.adb.
	(Expand_N_Protected_Body): Do nothing for a subprogram declared
	in a protected body.
	* sem_ch6.adb (Build_Internal_Protected_Declaration): Moved from
	exp_ch9.adb and renamed and fixed to ensure in particular that
	such subprograms have convention Intrinsic and have no protected
	version.
	(Analyze_Subprogram_Body_Helper): Call
	Build_Internal_Protected_Declaration.
	(Move_Pragmas): Moved up and merged with the more general
	version from Build_Private_Protected_Declaration. We only want
	to copy selected pragmas, most pragmas are not suitable for a
	copy on the spec.

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

	* sem_ch6.adb (Check_Overriding_Indicatior): Reject an
	overriding indicator on a subprogram declared within a protected
	body.

2020-06-12  Piotr Trojanek  <trojanek@adacore.com>

	* contracts.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb,
	sem_res.adb, sem_util.adb: Replace Ekind_In with Is_Entry.

2020-06-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_res.adb (Resolve_Entry_Call): Add call to
	Warn_On_Overlapping_Actuals.

2020-06-12  Arnaud Charlet  <charlet@adacore.com>

	* aspects.ads (Is_Representation_Aspect): New array.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Check
	13.1(9.2/5) for representation aspects.

2020-06-12  Bob Duff  <duff@adacore.com>

	* exp_put_image.ads, exp_put_image.adb (Preload_Sink): Procedure
	for preloading type Sink.  This has the side effect of loading
	various dependents, including Ada.Strings.UTF_Encoding.
	(Enable_Put_Image): Disable Put_Image in pre-2020 versions of
	Ada.  This limitation can probably be lifted later.  Enable for
	tagged types except in predefined units.  Disable for CPP types;
	Put_Image is legal, just prints the type name.
	* sem_attr.adb (Check_Put_Image_Attribute): Don't complain about
	Put_Image of CPP types; instead call the "unknown" version of
	Put_Image.
	* sem_ch10.adb (Analyze_Compilation_Unit): Call Preload_Sink.

2020-06-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify.

2020-06-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Warn_On_Overlapping_Actuals): Remove suppression
	for internal units.

2020-06-12  Arnaud Charlet  <charlet@adacore.com>

	* exp_strm.adb (Build_Elementary_Input_Call): Add support for 24
	bits elementary types.
	* rtsfind.ads: Add 24 bits integer streaming routines.
	* sem_ch13.adb (Analyze_Attribute_Definition_Clause
	[Attribute_Stream_Size]): Add support for 24 bits elementary
	types.
	* libgnat/s-stratt.ads, libgnat/s-stratt.adb,
	libgnat/s-stratt__xdr.adb: Add support for signed and unsigned
	24 bits integers.

2020-06-12  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Get_Discr_Value): Cleanup.

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

	* rtsfind.ads (RTU_Id): Add System_Address_To_Access_Conversions.
	* sem_elab.adb (Elaboration_Phase_Active): Alphabetize.
	(Finalize_All_Data_Structures): Likewise.
	(Error_Preelaborated_Call): New procedure.
	(Build_Call_Marker): Set Is_Preelaborable_Call flag in marker.
	(Build_Access_Marker): Likewise.
	(Build_Subprogram_Invocation): Likewise.
	(Build_Task_Activation): Likewise.
	(Check_Preelaborated_Call): Return when the call is preelaborable.
	Call Error_Preelaborated_Call to give the error otherwise.
	(Check_Elab_Call): Likewise.
	* sem_util.adb (Is_Preelaborable_Function): New predicate.
	(Is_Non_Preelaborable_Construct.Visit): Recurse on the
	Explicit_Actual_Parameter field of N_Parameter_Association.
	(Is_Non_Preelaborable_Construct.Visit_Subexpression): In Ada 2020,
	for a call to a preelaborable function, visit the parameter list;
	otherwise, raise Non_Preelaborable exception.
	(Is_Preelaborable_Construct): Likewise, but recursively check the
	parameters instead and return false upon failure, otherwise true.
	* sinfo.ads (Is_Preelaborable_Call): New flag in call marker nodes.
	(Is_Preelaborable_Call): New inline function.
	(Set_Is_Preelaborable_Call): New inline procedure.
	* sinfo.adb (Is_Preelaborable_Call): New inline function.
	(Set_Is_Preelaborable_Call): New inline procedure.

2020-06-12  Bob Duff  <duff@adacore.com>

	* stringt.ads: Remove "use System;".

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

	* sem_ch4.adb (Try_Container_Indexing): Replace call to
	First_Discriminant by Get_Reference_Discriminant to get the
	reference discriminant.
	* sem_ch13.adb (Check_Indexing_Functions): Likewise.
	* sem_ch5.adb (Preanalyze_Range): Call Get_Reference_Discriminant
	to get the reference discriminant.
	* sem_util.adb (Is_OK_Variable_For_Out_Formal): Treat all
	Ada 2012 implicit dereferences in only one place.
	(Is_Variable): Minor tweak.

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

	* sem_ch12.adb (Has_Contracts): New predicate to check whether a
	formal subprogram carries an aspect specification for a pre- or
	postcondition.
	(Build_Subprogram_Wrappers): If actual is overloaded, create a
	new name to be used in call inside wrapper body. This names
	carries the interpretations of the actual, and is resolved when
	the body is analyzed.
	(Build_Subprogram_Body_Wrapper): Use this generated name in
	call.
	(Build_Subprogram_Decl_Wrapper): Build profile of wrapper from
	the profile of formal, and reset type entities for subsequent
	analysis.

2020-06-12  Bob Duff  <duff@adacore.com>

	* debug.adb: Remove usage of -gnatd_z.
	* exp_attr.adb, exp_put_image.ads, exp_put_image.adb: Clean up
	the enable/disable code. If Put_Image is disabled for a type,
	systematically call the "unknown" version.  Improve comments.
	Consolidate workarounds.  Remove usage of -gnatd_z.

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

	* sem_elab.adb: Fix typos in comments.

2020-06-12  Justin Squirek  <squirek@adacore.com>

	* sem_util.adb (Object_Access_Level): Add processing of implicit
	dereferences.

2020-06-12  Bob Duff  <duff@adacore.com>

	* libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
	libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
	libgnat/a-nbnbre.ads: Update Put_Image, and uncomment the aspect
	specification.  Add pragmas Ada_2020.
	* libgnat/a-stouut.ads, libgnat/a-stteou.ads: Add Preelaborate,
	because the Big_Numbers packages have Preelaborate, and now
	depend on these Text_Output packages.

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

	* einfo.ads (No_Return): Document it for all subprograms.
	* einfo.adb (Set_No_Return): Adjust assertion accordingly.
	* sem_ch3.adb (Check_Abstract_Overriding): Implement the
	check prescribed by RM 6.5.1(6/2) here instead of...
	(Derive_Subprogram): Adjust comment accordingly.
	* sem_disp.adb (Override_Dispatching_Operation): ...here.
	Remove superfluous return statement.
	* sem_ch6.adb (Check_No_Return_Expression): New procedure.
	(Analyze_Function_Return): Call it to implement the check
	prescribed by AI12-0269 for simple return statements of
	No_Return functions, and also checks extended statements.
	(Analyze_Return_Statement): Only give an error on a return
	statement in No_Return procedures.  Use idiomatic form.
	* sem_ch8.adb (Analyze_Subprogram_Renaming): Adjust error
	message for No_Return renaming subprogram.
	* sem_prag.adb (Analyze_Pragma) <Pragma_No_Return>: Accept
	it on functions and generic functions in Ada 2020.

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

	* sem_res.adb (Resolve_Implicit_Dereference): In an instance,
	reset the type of the prefix if it is private before building
	the dereference.

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

	* exp_util.adb (Safe_Unchecked_Type_Conversion): Add missing
	Is_Type guard before calling Has_Discriminants on Etype.

2020-06-11  Bob Duff  <duff@adacore.com>

	* libgnat/a-nbnbin__gmp.adb: There's no Optional_Big_Integer
	anymore.  Invalid_Big_Integer is not used.
	Greatest_Common_Divisor returns Big_Positive.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Get_Value): Refine type of the Compon parameter.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): Refine type of
	Others_Box.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb, exp_ch7.adb, exp_ch9.adb, exp_smem.adb, lib.adb,
	nlists.adb, sem.adb, sem_aggr.adb, sem_ch3.adb, sem_ch6.adb,
	sem_ch8.adb, sem_dim.adb, sem_res.adb, sem_util.adb,
	sem_warn.adb: Replace uses of Next function with procedure.

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

	* exp_pakd.ads: Add paragraph about scalar storage order.
	* exp_pakd.adb (Install_PAT): Do not set the scalar storage
	order of the PAT here but...
	(Set_PB_Type): ...here instead and...
	(Create_Packed_Array_Impl_Type): ...here as well.
	* rtsfind.ads (RE_Id): Add RE_Rev_Packed_Bytes{1,2,4}.
	(RE_Unit_Table): Likewise.
	* libgnat/s-unstyp.ads (Rev_Packed_Bytes1): New derived type.
	(Rev_Packed_Bytes2): Likewise.
	(Rev_Packed_Bytes4): Likewise.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch4.adb, sem_ch6.adb, sem_res.adb, sem_util.ads: Fix
	references to SPARK RM 7.1.3 rule numbers.

2020-06-11  Ed Schonberg  <schonberg@adacore.com>

	* sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify code,
	remove inner predicate Is_Covered_Formal, preserve warning for
	two overlapping composite types when only one is writable, and
	for two overlapping and writable elementary types.

2020-06-11  Steve Baird  <baird@adacore.com>

	* contracts.adb (Add_Contract_Item): Support specifying
	volatility refinement aspects for types.
	(Analyze_Contracts): Add call to Analyze_Type_Contract in the
	case of a contract for a type.
	(Freeze_Contracts): Add call to Analyze_Type_Contract in the
	case of a contract for a type.
	(Check_Type_Or_Object_External_Properties): A new procedure
	which performs the work that needs to be done for both object
	declarations and types.
	(Analyze_Object_Contract): Add a call to
	Check_Type_Or_Object_External_Properties and remove the code in
	this procedure which did much of the work that is now performed
	by that call.
	(Analyze_Type_Contract): Implement this new routine as nothing
	more than a call to Check_Type_Or_Object_External_Properties.
	* contracts.ads: Update comment for Add_Contract_To_Item because
	types can have contracts.  Follow (questionable) precedent and
	declare new routine Analyze_Type_Contract as visible (following
	example of Analyze_Object_Contract), despite the fact that it is
	never called from outside of the package where it is declared.
	* einfo.adb (Contract, Set_Contract): Id argument can be a type;
	support this case.
	(Write_Field34_Name): Field name is "contract" for a type.
	* einfo.ads: Update comment describing Contract attribute.
	* sem_ch3.adb (Build_Derived_Numeric_Type): Is_Volatile should
	return same answer for all subtypes of a given type. Thus, when
	building the base type for something like type Volatile_1_To_10
	is range 1 .. 10 with Volatile; that basetype should be marked
	as being volatile.
	(Access_Type_Declaration): Add SPARK-specific legality check
	that the designated type of an access type shall be compatible
	with respect to volatility with the access type.
	* sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Add
	SPARK-specific legality check that an actual type parameter in
	an instantiation shall be compatible with respect to volatility
	with the corresponding formal type.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Perform checks
	for aspect specs for the 4 volatility refinement aspects that
	were already being performed for all language-defined aspects.
	* sem_prag.adb (Analyze_External_Property_In_Decl_Part,
	Analyze_Pragma): External properties (other than No_Caching) may
	be specified for a type, including a generic formal type.
	* sem_util.ads: Declare new subprograms - Async_Readers_Enabled,
	Async_Writers_Enabled, Effective_Reads, Effective_Writes, and
	Check_Volatility_Compatibility.
	* sem_util.adb (Async_Readers_Enabled, Async_Writers_Enabled,
	Effective_Reads, Effective_Writes): Initial implementation of
	new functions for querying aspect values.
	(Check_Volatility_Compatibility): New procedure intended for use
	in checking all SPARK legality rules of the form "<> shall be
	compatible with respect to volatility with <>".
	(Has_Enabled_Property): Update comment because Item_Id can be a
	type.  Change name of nested Variable_Has_Enabled_Property
	function to Type_Or_Variable_Has_Enabled_Property; add a
	parameter to that function because recursion may be needed,
	e.g., in the case of a derived typ).  Cope with the case where
	the argument to Has_Enabled_Property is a type.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Add_Association): Add assertion about the formal
	parameters.
	(Propagate_Discriminants): Always add an explicit component
	association, so that an "others => <>" association is never
	needed.

2020-06-11  Bob Duff  <duff@adacore.com>

	* exp_put_image.adb (Build_Elementary_Put_Image_Call): If the
	underlying type is real, call Put_Image_Unknown.
	(Build_Unknown_Put_Image_Call): Pass the type name to
	Put_Image_Unknown.
	* libgnat/s-putima.ads, libgnat/s-putima.adb
	(Put_Image_Unknown): Add Type_Name parameter.  Remove
	overly-detailed documentation of what it does; better to leave
	it open.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch3.adb (Build_Constrained_Array_Type,
	Build_Constrained_Discriminated_Type): Skip unnecessary loop
	iterations.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Build_Constrained_Itype): Move to Sem_Util.
	* sem_ch3.adb (Build_Subtype, Inherit_Predicate_Flags): Move...
	* sem_util.adb (Build_Subtype): Here.  Add parameters for
	references to objects previously declared in enclosing scopes.
	(Inherit_Predicate_Flags): And here, because it is called by
	Build_Subtype.
	* sem_util.ads (Build_Overriding_Spec): Reorder alphabetically.
	(Build_Subtype): Moved from Sem_Ch3; comments updated.
	(Build_Constrained_Itype): Moved from Sem_Aggr; comments
	updated.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Case_Table_Type): Change index type from Nat to
	Pos.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Build_Constrained_Itype): Previously a declare
	block, now a separate procedure; the only change is that now
	New_Assoc_List might include components and an others clause,
	which we ignore (while we deal with discriminants exactly as we
	did before); extend a ??? comment about how this routine is
	different from the Build_Subtype
	(Resolve_Record_Aggregate): Create a constrained itype not just
	for the outermost record aggregate, but for its inner record
	aggregates as well.

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

	* checks.adb (Build_Discriminant_Checks): Build an explicit
	dereference when the type is an access type.
	* exp_atag.adb (Build_CW_Membership): Add explicit dereferences.
	(Build_Get_Access_Level): Likewise.
	(Build_Get_Alignment): Likewise.
	(Build_Inherit_Prims): Likewise.
	(Build_Get_Transportable): Likewise.
	(Build_Set_Size_Function): Likewise.
	* exp_ch3.adb (Build_Offset_To_Top_Function): Likewise.
	* exp_ch4.adb (Expand_Allocator_Expression): Likewise.
	(Expand_N_Indexed_Component ): Remove code dealing with implicit
	dereferences.
	(Expand_N_Selected_Component): Likewise.
	(Expand_N_Slice): Likewise.
	* exp_ch9.adb (Add_Formal_Renamings): Add explicit dereference.
	(Expand_Accept_Declarations): Likewise.
	(Build_Simple_Entry_Call): Remove code dealing with implicit
	dereferences.
	(Expand_N_Requeue_Statement): Likewise.
	* exp_disp.adb (Expand_Dispatching_Call): Build an explicit
	dereference when the controlling type is an access type.
	* exp_spark.adb (Expand_SPARK_N_Selected_Component): Delete.
	(Expand_SPARK_N_Slice_Or_Indexed_Component): Likewise.
	(Expand_SPARK): Do not call them.
	* sem_ch4.adb (Process_Implicit_Dereference_Prefix): Delete.
	(Process_Indexed_Component): Call Implicitly_Designated_Type
	to get the designated type for an implicit dereference.
	(Analyze_Overloaded_Selected_Component): Do not insert an
	explicit dereference here.
	(Analyze_Selected_Component): Likewise.
	(Analyze_Slice): Call Implicitly_Designated_Type to get the
	designated type for an implicit dereference.
	* sem_ch8.adb (Has_Components): New predicate extracted from...
	(Is_Appropriate_For_Record): ...this.  Delete.
	(Is_Appropriate_For_Entry_Prefix): Likewise.
	(Analyze_Renamed_Entry): Deal with implicit dereferences.
	(Find_Selected_Component): Do not insert an explicit dereference
	here.  Call Implicitly_Designated_Type to get the designated type
	for an implicit dereference.  Call Has_Components, Is_Task_Type
	and Is_Protected_Type directly.  Adjust test for error.
	* sem_res.adb (Resolve_Implicit_Dereference): New procedure.
	(Resolve_Call): Call Resolve_Indexed_Component last.
	(Resolve_Entry): Call Resolve_Implicit_Dereference on the prefix.
	(Resolve_Indexed_Component): Call Implicitly_Designated_Type to
	get the designated type for an implicit dereference and
	Resolve_Implicit_Dereference on the prefix at the end.
	(Resolve_Selected_Component): Likewise.
	(Resolve_Slice): Likewise.  Do not apply access checks here.
	* sem_util.ads (Implicitly_Designated_Type): Declare.
	* sem_util.adb (Copy_And_Maybe_Dereference): Simplify.
	(Implicitly_Designated_Type): New function.
	(Object_Access_Level): Fix typo.
	* sem_warn.adb (Check_Unset_Reference): Test Comes_From_Source
	on the original node.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* exp_disp.adb: Minor reformatting.
	* exp_aggr.adb (Is_Static_Dispatch_Table_Aggregate): Recognize
	aggregates of the Ada.Tags.Object_Specific_Data type as static.
	* sem_aggr.adb (Check_Static_Discriminated_Subtype): Deconstruct
	and do not call it from Build_Constrained_Itype.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* exp_disp.adb (Make_Secondary_DT): Internally generated OSD
	tables are now constant.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.adb (Backend_Processing_Possible): Remove useless
	call.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* opt.ads (Building_Static_Dispatch_Tables): Fix punctuation in
	comment.

2020-06-11  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-stposu.ads (Root_Storage_Pool_With_Subpools,
	Root_Subpool): Mark with Preelaborable_Initialization.

2020-06-11  Javier Miranda  <miranda@adacore.com>

	* exp_ch9.adb (Expand_N_Conditional_Entry_Call): Replace call to
	New_Copy_List by calls to the new routine
	New_Copy_Separate_List.
	* sem_util.ads (New_Copy_Separate_List, New_Copy_Separate_Tree):
	New routines.
	* sem_util.adb (New_Copy_Separate_List, New_Copy_Separate_Tree):
	New routines.
	(New_Copy_Tree): Extend the machinery that detects syntactic
	nodes to handle lists of indentifiers with field More_Ids;
	otherwise such nodes are erroneously handled as semantic nodes.
	Copy aspect specifications attached to nodes.
	* sem_ch12.adb (Copy_Generic_Node): Protect reading attribute
	Etype.

2020-06-11  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): Do not set the
	Has_Predicates flag when the Predicate_Failure aspect is seen.
	It is legal (but pointless) to use this aspect without a
	predicate.  If we set the flag, we generate a half-baked
	Predicate procedure, and if that procedure is nested, it causes
	unnesting to crash.

2020-06-11  Bob Duff  <duff@adacore.com>

	* exp_put_image.adb (Build_Record_Put_Image_Procedure): Remove
	special processing of protected types, because those are handled
	by Build_Protected_Put_Image_Call.
	(Enable_Put_Image): Use the switch -gnatd_z to control enabling
	of Put_Image. Disable Put_Image for types in Remote_Types
	packages.
	* debug.adb: Document -gnatd_z switch.
	* exp_imgv.adb, libgnat/a-stteou.ads, opt.ads: Minor cleanups.

2020-06-11  Piotr Trojanek  <trojanek@adacore.com>

	* sem_warn.adb (Warn_On_Overlapping_Actuals): Add label to the
	outer loop and use it in the exit statement.

2020-06-11  Ghjuvan Lacambre  <lacambre@adacore.com>

	* exp_ch3.adb (Build_Assignment): Generate predicate check if
	subtype mark has predicate.

2020-06-11  Justin Squirek  <squirek@adacore.com>

	* sem_util.adb (Expand_N_Attribute_Reference): Use original
	nodes where required to avoid looking at the expanded tree.

2020-06-11  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-catizo.ads, libgnat/a-nbnbin.ads,
	libgnat/a-nbnbre.ads, libgnat/a-nubinu.ads,
	libgnat/s-aoinar.ads, libgnat/s-aomoar.ads,
	libgnat/s-aotase.ads, libgnat/s-stopoo.ads: Remove aspects that
	we will not implement.

2020-06-11  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-aoinar.adb (Atomic_Fetch_And_Add,
	Atomic_Fetch_And_Subtract): Add fallback using
	compare-and-exchange, in case the integer type does not map to a
	machine type.

2020-06-10  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-aomoar.ads, libgnat/s-aomoar.adb: New files.
	* libgnat/s-atopar.ads: Move...
	* libgnat/s-aoinar.ads: Here.
	* libgnat/s-atopar.adb: Move...
	* libgnat/s-aoinar.adb: Here.
	* impunit.adb: Update list of runtime files.
	* Makefile.rtl (GNATRTL_NONTASKING_OBJS=): Adjust.

2020-06-10  Arnaud Charlet  <charlet@adacore.com>

	* snames.ads-tmpl (Name_Characters_Assertion_Check,
	Name_Containers_Assertion_Check,
	Name_Interfaces_Assertion_Check, Name_IO_Assertion_Check,
	Name_Numerics_Assertion_Check, Name_Strings_Assertion_Check,
	Name_System_Assertion_Check): New constants.
	* types.ads (Characters_Assertion_Check,
	Containers_Assertion_Check, Interfaces_Assertion_Check,
	IO_Assertion_Check, Numerics_Assertion_Check,
	Strings_Assertion_Check, System_Assertion_Check): New constants.
	(All_Checks): Update accordingly.

2020-06-10  Ghjuvan Lacambre  <lacambre@adacore.com>

	* exp_ch3.adb (Build_Equivalent_Record_Aggregate): Return Empty
	if Etype of record component has predicates.

2020-06-10  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch3.adb (Build_Init_Statements): Implement the notion of
	"require late initialization".

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

	* sem_util.adb (Copy_And_Maybe_Dereference): Temporarily copy
	the parent node of the original tree when dereferencing.

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

	* sem_warn.adb (Warn_On_Overlapping_Actuals): Add a warning when
	two actuals in a call overlap, both are composite types that may
	be passed by reference, and only one of them is writable.

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

	* exp_ch4.adb (Expand_N_In): Use an expression with actions to
	insert the PE raise statement for the Unchecked_Union case.

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

	* sem_ch4.adb (Analyze_Call): Use idiomatic condition.
	* sem_res.adb (Resolve_Call): Remove obsolete code.

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

	* sem_util.adb (Copy_And_Maybe_Dereference): New function.
	(Build_Access_Record_Constraint): Use it to copy the prefix.
	(Build_Actual_Array_Constraint): Likewise.
	(Build_Actual_Record_Constraint): Likewise.

2020-06-10  Bob Duff  <duff@adacore.com>

	* sem_prag.adb (Invariant): Remove the pragma removing code.  It
	doesn't work to remove the pragma, because various flags are set
	during Build_Invariant_Procedure_Declaration and
	Build_Invariant_Procedure_Body that need to be set to avoid the
	spurious warnings.
	* exp_util.adb (Make_Invariant_Call): Avoid calling the
	invariant-checking procedure if the body is empty. This is an
	optimization.

2020-06-10  Vasiliy Fofanov  <fofanov@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Fix gnatmetric
	switches description.

2020-06-10  Arnaud Charlet  <charlet@adacore.com>

	* repinfo-input.ads, repinfo-input.adb, repinfo.adb,
	repinfo.ads: Update header.

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

	* exp_aggr.adb (In_Place_Assign_OK): Do not necessarily return
	false for a type with discriminants.
	(Convert_To_Assignments): Use Parent_Node and Parent_Kind more
	consistently.  In the in-place assignment case, first apply a
	discriminant check if need be, and be prepared for a rewritten
	aggregate as a result.

2020-06-10  Arnaud Charlet  <charlet@adacore.com>

	* atree.adb, contracts.adb, debug.adb, freeze.adb,
	repinfo-input.adb, repinfo.adb, sem_attr.adb, sem_ch10.adb,
	sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb,
	sem_ch8.adb, sem_ch9.adb, sem_disp.adb, sem_eval.adb,
	sem_prag.adb: Remove more references to ASIS.

2020-06-10  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-secsta.adb (Round_Up): Fix typo in exception
	message.

2020-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* par-ch4.adb (P_Membership_Test): Fix typo in a grammar rule.

2020-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove
	expansion of First and Last attributes.

2020-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Remove folding
	for Enum_Rep attribute.
	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove
	duplicated code for folding Enum_Rep attribute.
	* sem_attr.adb (Eval_Attribute): Relax condition for folding
	Enum_Rep attribute; previously dead code is now executed when
	the attribute prefix is an enumeration literal; refine type in
	processing of Enum_Val.

2020-06-10  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Analyze_Declarations): Adjust the machinery that
	takes care of late body overriding of initialize, adjust,
	finalize.  Remove ASIS mode code.

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

	* einfo.ads (Access_Subprogram_Wrapper): New attribute of
	Subprogram_Type entities. Denotes subprogram constructed for
	Access_To_Subprogram types that include pre- and postconditions.
	* einfo.adb: Subprogram bodies for Access_Subprogram_Wrapper.
	* exp_ch6.adb (Expand_Call): An indirect call through an
	Access_To_subprogram that includes contracts is rewritten as a
	call to the corresponding Access_ ubprogram_Wrapper. Handle
	derived types that inherit contract from parent.
	* sem_prag.adb (Build_Access_Subprogram_Wrapper): Build
	subprogram declaration for subprogram that incorporates the
	contracts of an Access_To_Subprogram type declaration. Build
	corresponding body and attach it to freeze actions for type.
	* sem_util.ads, sem_util.adb (Is_Access_Subprogram_Wrapper):
	Utility that uses signature of the subprogram to determine
	whether it is a generated wrapper for an Access_To_Subprogram
	type.

2020-06-10  Ghjuvan Lacambre  <lacambre@adacore.com>

	* par-ch6.adb (P_Subprogram): Make sure the specification
	belongs to a procedure.

2020-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (All_Membership_Choices_Static): Assert an AST
	property documented in sinfo.ads and simplify an excessive
	condition.

2020-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Fix a copy-paste
	mistake in comment.
	* sem_res.adb (Flag_Effectively_Volatile_Objects): Fix a type in
	the SPARK RM rule number.
	* exp_ch4.adb, sem_util.adb: Fix style in single line comments.

2020-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aux.ads, sem_aux.adb (Get_Low_Bound): Remove.

2020-06-10  Arnaud Charlet  <charlet@adacore.com>

	* scn.adb (Determine_License): Remove.

2020-06-10  Justin Squirek  <squirek@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Add condition to
	handle processing of objects initialized by a call to a function
	return an anonymous access type.
	* exp_ch6.adb, exp_ch6.ads
	(Has_Unconstrained_Access_Discriminants): Moved to sem_util.adb
	(Needs_Result_Accessibility_Level): Moved to sem_util.adb
	* sem_util.adb, sem_util.ads
	(Has_Unconstrained_Access_Discriminants): Moved from exp_ch6.adb
	(Needs_Result_Accessibility_Level): Moved from exp_ch6.adb
	* sem_res.adb (Valid_Conversion): Add condition for the special
	case where the operand of a conversion is the result of an
	anonymous access type

2020-06-10  Ghjuvan Lacambre  <lacambre@adacore.com>

	* par-ch6.adb (P_Subprogram): Reject duplicate subprogram
	declarations.

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

	* exp_ch6.adb (Insert_Post_Call_Actions): Deal with the context
	of an if-expression and with a call written in prefixed notation.

2020-06-10  Gary Dismukes  <dismukes@adacore.com>

	* einfo.ads: Minor reformatting of a comment.
	* exp_aggr.adb: Minor reformatting and a grammar correction.
	* exp_attr.adb: Minor reformatting and a typo fix in some
	comments.
	* sem_ch12.adb: Fix three typos in comments.

2020-06-09  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (New_Overloaded_Entity): Add missing call to check
	subtype conformance of overriding dispatching primitive.
	* sem_eval.adb (Subtypes_Statically_Match): Handle derivations
	of private subtypes.
	* libgnat/g-exptty.adb, libgnat/g-exptty.ads
	(Set_Up_Communications): Fix the profile since null-exclusion is
	missing in the access type formals.
	* sem_disp.ads (Check_Operation_From_Private_View): Adding
	documentation.

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

	* einfo.ads (XEINFO section): Update format description.
	(Is_Subprogram_Or_Entry): Move pragma to regular section.
	(Is_Subprogram_Or_Generic_Subprogram): Likewise.
	* xeinfo.adb (Get_B4): Rename to...
	(Get_B0): ...this.
	(Translate_Expr): New procedure extracted from...
	(XEinfo): ...here.  Try to apply Get_B0 first and then
	call Translate_Expr to translate supported constructs.

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

	* exp_ch6.adb (Freeze_Subprogram): Deal with convention C_Family.
	* freeze.adb (Freeze_Profile): Likewise.  Add missing guard.
	* sem_mech.adb (Set_Mechanisms): Likewise.
	* lib-xref.adb (Output_Import_Export_Info): Ditto for C_Variadic.
	* repinfo.adb (List_Subprogram_Info): Likewise.
	* sem_prag.adb (Set_Convention_From_Pragma): Move main checks for
	Stdcall to...
	(Process_Convention): ...here.  Add checks for C_Variadic.
	* snames.ads-tmpl: Add Name_C_Variadic_0 .. Name_C_Variadic_16.
	Use consistent format for subtype declarations.
	(Convention_Id): Add Convention_C_Variadic_0 .. C_Variadic_16
	and move Convention_CPP up.
	(Convention_C_Family): New subtype of Convention_Id.
	(Convention_C_Variadic): Likewise.
	(Foreign_Convention): Use explicit upper bound.
	Add pragma Inline for Is_Configuration_Pragma_Name,
	Is_Function_Attribute_Name, Is_Internal_Attribute_Name
	and Is_Procedure_Attribute_Name.
	* snames.adb-tmpl (Get_Convention_Id): Deal with Name_Variadic_n.
	(Get_Convention_Name): Deal with Convention_Variadic_n.
	* types.h (Convention_Id): New typedef.
	* xsnamest.adb (Name2): New variable.
	(Is_Conv): New pattern.
	(Get_Subt1): Likewise.
	(Get_Subt2): Likewise.
	Output subtypes of Convention_Id into the C header file.

2020-06-09  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch9.adb,
	exp_disp.adb, exp_util.adb: Add comments related to errors that
	should be moved to semantic analysis. Also replace "?" with "??"
	in warning messages.

2020-06-09  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-strunb__shared.ads, libgnat/a-strunb__shared.adb
	(Reference, Unreference): No-op for Empty_Shared_String.
	Remove unneeded calls to Reference.

2020-06-09  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch5.adb (Expand_N_Assignment): Remove kludge for
	AI05-0087.
	* sem_ch12.adb (Validate_Derived_Type_Instance): Implement
	AI05-0087 retroactively since it's a binding interpretation.

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

	* einfo.ads (Has_Foreign_Convention): Fix description.
	(Component_Alignment): Move around.
	(Has_DIC): Likewise.
	(Has_Interrupt_Handler): Likewise.
	(Has_Invariants): Likewise.
	(Is_Atomic_Or_VFA): Likewise.
	(Next_Index): Likewise.
	(Scope_Depth): Likewise.
	(Init_Component_Size): Likewise.
	(Init_Component_Location): Likewise.
	(Init_Size): Likewise.
	(Inline Pragmas for functions): Add Corresponding_Function,
	Corresponding_Procedure, Entry_Max_Queue_Lengths_Array,
	Finalize_Storage_Only, Has_DIC, Has_Invariants,
	Initialization_Statements, Is_Anonymous_Access_Type,
	Next_Stored_Discriminant, Address_Clause, Alignment_Clause,
	Float_Rep, Has_Foreign_Convention, Has_Non_Limited_View,
	Is_Constant_Object, Is_Discriminal, Is_Finalizer, Is_Null_State,
	Is_Prival, Is_Protected_Component, Is_Protected_Record_Type,
	Is_Subprogram_Or_Entry, Is_Task_Record_Type, Size_Clause,
	Stream_Size_Clause, Type_High_Bound, Type_Low_Bound, Known_*,
	Unknown_*.
	(Inline Pragmas for procedures): Add Set_Corresponding_Function,
	Set_Corresponding_Procedure, Set_Finalize_Storage_Only,
	Set_Float_Rep, Set_Initialization_Statements,
	Init_Normalized_First_Bit, Init_Normalized_Position,
	Init_Normalized_Position_Max.
	* einfo.adb (Was_Hidden): Move around.
	(Is_Packed_Array): Likewise.
	(Model_Emin_Value): Likewise.
	(Model_Epsilon_Value): Likewise.
	(Model_Mantissa_Value): Likewise.
	(Model_Small_Value): Likewise.

2020-06-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
	exact match between formal and actual for aspects Atomic and
	Volatile only for formal derived types.

2020-06-09  Arnaud Charlet  <charlet@adacore.com>

	* exp_util.adb (Side_Effect_Free): Improve handling of
	N_Aggregate.

2020-06-09  Ghjuvan Lacambre  <lacambre@adacore.com>

	* sem_res.adb (Resolve_Qualified_Expression): Use Subtype_Mark
	type.

2020-06-09  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (Max_Aggregate_Size): New function to factorize
	code.
	(Convert_To_Positional, Aggr_Size_OK): Use Max_Aggregate_Size.

2020-06-09  Arnaud Charlet  <charlet@adacore.com>

	* sem_util.ads, sem_util.adb (Set_Debug_Info_Defining_Id): New.
	* exp_ch3.adb, exp_ch8.adb: Call Set_Debug_Info_Defining_Id when
	relevant.

2020-06-09  Justin Squirek  <squirek@adacore.com>

	* einfo.ads (Returns_By_Ref): Modify documentation to reflect
	that Returns_By_Ref can be applied to E_Subprogram_Type
	entities.

2020-06-09  Justin Squirek  <squirek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Modify expansion
	of 'Overlaps_Storage to take into account zero sized arrays.

2020-06-09  Bob Duff  <duff@adacore.com>

	* bindo-graphs.adb, bindo-graphs.ads: For each invocation graph,
	record the corresponding library graph.
	* bindo-writers.adb (Write_Invocation_Graph_Vertex): Print the
	lib item name. Remove library graph parameters.
	* bindo-augmentors.adb, bindo-augmentors.ads,
	bindo-builders.adb, bindo-diagnostics.adb,
	bindo-diagnostics.ads, bindo-elaborators.adb: Remove library
	graph parameters.

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

	* checks.adb (Apply_Predicate_Check): Extend trick used for
	aggregates to qualified aggregates and object declarations
	* einfo.ads (Has_Own_DIC): Mention the underlying full view.
	(Has_Own_Invariants): Likewise.
	(Has_Predicates): Likewise.
	* exp_util.adb (Build_DIC_Procedure_Declaration): Do not deal
	with base types explicitly but with underlying full views.
	(Build_Invariant_Procedure_Declaration): Likewise.
	* sem_ch13.adb (Build_Predicate_Functions): Do not deal with
	the full view manually but call Propagate_Predicate_Attributes
	to propagate attributes to views.
	(Build_Predicate_Function_Declaration): Likewise.
	* sem_ch3.adb (Build_Assertion_Bodies_For_Type): Build bodies
	for private full views with an underlying full view.
	(Build_Derived_Private_Type): Small comment tweak.
	(Complete_Private_Subtype): Call Propagate_Predicate_Attributes.
	(Process_Full_View): Do not deal with base types explicitly for
	DIC and Invariant attributes.  Deal with underlying full views
	for them.  Call Propagate_Predicate_Attributes and deal with
	underlying full views for them.
	* sem_ch7.adb (Preserve_Full_Attributes): Do not cross propagate
	DIC and Invariant attributes between full type and its base type.
	Propagate Predicate attributes from the full to the private view.
	* sem_ch9.adb (Analyze_Protected_Type_Declaration): Likewise.
	(Analyze_Task_Type_Declaration): Likewise.
	* sem_util.ads (Get_Views): Remove Full_Base parameter and add
	UFull_Typ parameter.
	(Propagate_Predicate_Attributes): New procedure.
	* sem_util.adb (Get_Views): Remove Full_Base parameter and add
	UFull_Typ parameter.  Retrieve the Corresponding_Record_Type
	from the underlying full view, if any.
	(Propagate_DIC_Attributes): Remove useless tests.
	(Propagate_Invariant_Attributes): Likewise.
	(Propagate_Predicate_Attributes): New procedure.

2020-06-09  Justin Squirek  <squirek@adacore.com>

	* exp_ch5.adb (Expand_Predicated_Loop): Perserve the original
	loop identifier within the expansion.

2020-06-09  Bob Duff  <duff@adacore.com>

	* bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder enumerals
	to reflect the order of adding edges. Clarify comments.
	* bindo-graphs.adb (Add_Edge_Kind_Check): Correct the
	assertions.  Reorder the "when"s to match the order of adding
	edges, and therefore the order of enumerals in type
	Library_Graph_Edge_Kind.  Change names to "Old_" and "New_" to
	clarify what's what.  Combine Invocation_Edge into the "<="
	test.  Fix the "raise Program_Error" message, which was
	backwards.

2020-06-09  Bob Duff  <duff@adacore.com>

	* bindo-graphs.adb (Add_Edge_Kind_Check): Add the Image of the
	old and new Kinds to the raise Program_Error message.

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

	* sem_ch3.adb (Is_Visible_Component): Do not special-case
	bodies of instances.

2020-06-09  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb (Expand_N_In): Fix handling of null exclusion.

2020-06-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
	exact match between formal and actual for aspects Atomic,
	Atomic_Component, Volatile, and Volatile_Components.

2020-06-09  Bob Duff  <duff@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
	the --no-separate-return switch of gnatpp.

2020-06-09  Arnaud Charlet  <charlet@adacore.com>

	* sem_warn.adb (Warn_On_Constant_Valid_Condition): Add proper
	warning tag.

2020-06-09  Arnaud Charlet  <charlet@adacore.com>

	* sem_type.adb (Covers): Fix implementation of AI05-0149.
	* sem_res.adb: Fix typo.

2020-06-09  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Build_Master_Renaming): Make name in renaming
	declaration unique by adding a numeric suffix, to prevent
	accidental name conflict when several instantiations of a
	package containing an access_to_incomplete type that designate
	tasks appear in the same scope.

2020-06-09  Piotr Trojanek  <trojanek@adacore.com>

	* libgnarl/a-synbar.ads, libgnarl/a-synbar.adb,
	libgnarl/a-synbar__posix.ads, libgnarl/a-synbar__posix.adb
	(Ada.Synchronous_Barriers): Annotate with SPARK_Mode => Off.

2020-06-09  Arnaud Charlet  <charlet@adacore.com>

	* sem_eval.adb (Eval_Relational_Op, Eval_String_Literal,
	Eval_Type_Conversion): Relax rules on relational operators and
	type conversions of static string types.

2020-06-09  Arnaud Charlet  <charlet@adacore.com>

	* sem_util.ads, sem_util.adb (Is_Partially_Initialized_Type):
	Take Default_Value and Default_Component_Value into account.
	* sem_ch3.adb (Analyze_Object_Declaration): Update comment.

2020-06-09  Bob Duff  <duff@adacore.com>

	* bindo-graphs.adb (Add_Edge_Kind_Check): Disable failing part
	of the assertion.

2020-06-08  Steve Baird  <baird@adacore.com>

	* sem_prag.adb (Analyze_Pragma.Set_Ravenscar_Profile): Add
	appropriate call to Set_Restriction_No_Dependence if Ada_Version
	>= Ada2012 and Profile is either Ravenscar or a GNAT-defined
	Ravenscar variant (i.e., not Jorvik).

2020-06-08  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch5.adb: Fix typo.
	* sem_ch8.adb (Analyze_Renamed_Primitive_Operation): Check that
	the prefix of a prefixed view must be renamable as an object.

2020-06-08  Arnaud Charlet  <charlet@adacore.com>

	* sem_cat.ads: Fix typo.
	* sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type): Add
	handling of N_Attribute_Definition_Clause.
	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Call
	Validate_Remote_Access_To_Class_Wide_Type for Storage_Size and
	Storage_Pool.
	* sem_attr.adb, exp_ch4.adb: Update comments.

2020-06-08  Justin Squirek  <squirek@adacore.com>

	* sem_ch4.adb (Analyze_One_Call): Add extra condition to the
	predicate for deciding when a given controlled call is visible.

2020-06-08  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Port
	changes in frontend expander.

2020-06-08  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (All_Membership_Choices_Static): Fix style.

2020-06-08  Steve Baird  <baird@adacore.com>

	* libgnat/s-rident.ads: Add Jorvik to the Profile_Name
	enumeration type.  Add an element for Jorvik to the array
	aggregate that is the initial value of the constant
	Profile_Info.
	* targparm.adb (Get_Target_Parameters): Handle "pragma Profile
	(Jorvik);" similarly to "pragma Profile (Ravenscar);".
	* snames.ads-tmpl: Declare Name_Jorvik Name_Id. Unlike
	Ravenscar, Jorvik is not a pragma name and has no corresponding
	element in the Pragma_Id enumeration type; this means that its
	declaration must not occur between those of First_Pragma_Name
	and Last_Pragma_Name.
	* sem_prag.adb (Analyze_Pragma): Add call to
	Set_Ravenscar_Profile for Jorvik, similar to the existing calls
	for Ravenscar and the GNAT Ravenscar variants.

2020-06-08  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Update Get_Object_Name
	to go through N_Qualified_Expression and N_Type_Conversion.  Fix
	another case of wrong usage of E_Anonymous_Access_Type instead
	of Anonymous_Access_Kind.
	* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Work
	on the original node.
	(Is_Aliased_View): Take into account N_Qualified_Expression.

2020-06-08  Arnaud Charlet  <charlet@adacore.com>

	* sem_eval.adb (Eval_Type_Conversion): Fix handling of
	enumeration to integer conversions.
	* exp_attr.adb (Expand_N_Attribute_Reference
	[Attribute_Enum_Rep]): Remove special casing for first-level
	renaming, best left to the general folding mechanism via
	Eval_Type_Conversion.

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

	* atree.adb (New_Copy): Do not clear Has_Dynamic_Range_Check.
	* checks.ads (Append_Range_Checks): Remove Flag_Node parameter.
	(Insert_Range_Checks): Likewise and remove default value of
	Static_Loc parameter.
	* checks.adb (Append_Range_Checks): Remove Flag_Node parameter.
	Do not test and set Has_Dynamic_Range_Check.
	(Insert_Range_Checks): Likewise and remove default value of
	Static_Loc parameter.
	* csinfo.adb (CSinfo): Remove 'L' from [NEUB]_Fields pattern and
	do not handle Has_Dynamic_Range_Check.
	* exp_ch5.adb (Expand_N_Assignment_Statement): Remove argument
	in call to Insert_Range_Checks.
	* sem_ch3.adb (Analyze_Subtype_Declaration): Do not fiddle
	with Has_Dynamic_Range_Check.
	(Process_Range_Expr_In_Decl): Remove argument in calls to
	Insert_Range_Checks and Append_Range_Checks.
	* sinfo.ads (Has_Dynamic_Range_Check): Delete.
	(Set_Has_Dynamic_Range_Check): Likewise.
	* sinfo.adb (Has_Dynamic_Range_Check): Delete.
	(Set_Has_Dynamic_Range_Check): Likewise.
	* treepr.adb (Print_Node): Do not print Has_Dynamic_Range_Check.

2020-06-08  Steve Baird  <baird@adacore.com>

	* sem_ch13.ads: Export new function
	All_Membership_Choices_Static.
	* sem_ch13.adb: Implement new function
	All_Membership_Choices_Static.  This involves moving the
	functions Is_Static_Choice and All_Membership_Choices_Static,
	which were previously declared within the function
	Is_Predicate_Static, out to library level so that they can be
	called by the new function. The already-exisiting code in
	Is_Predicate_Static which became the body of
	All_Membership_Choices_Static is replaced with a call to the new
	function in order to avoid duplication.
	* exp_ch9.adb (Is_Pure_Barrier): Several changes needed to
	implement rules of AI12-0290 and RM D.7's definition of
	"pure-barrier-eligible". These changes include adding a call to
	the new function Sem_13.All_Membership_Choices_Static, as per
	the "see 4.9" in RM D.7(1.6/5).

2020-06-08  Richard Kenner  <kenner@adacore.com>

	* exp_unst.adb (Visit_Node): When visiting array attribute
	nodes, in addition to checking the type of Get_Referenced_Object
	of the prefix, also check the actual type of the prefix.

2020-06-08  Gary Dismukes  <dismukes@adacore.com>

	* checks.adb (Apply_Predicate_Check): Refine test for being in a
	subprogram body to account for no Corresponding_Body case,
	avoiding blowups arising due to other changes here.
	* exp_ch4.adb (Expand_N_Qualified_Expression): Apply predicate
	checks, if any, after constraint checks are applied.
	* sem_eval.ads (Check_Expression_Against_Static_Predicate): Add
	Check_Failure_Is_Error formal for conditionalizing warning vs.
	error messages.
	* sem_eval.adb (Check_Expression_Against_Static_Predicate):
	Issue an error message rather than a warning when the new
	Check_Failure_Is_Error formal is True. In the nonstatic or
	Dynamic_Predicate case where the predicate is known to fail,
	emit the check to ensure that folded cases get checks applied.
	* sem_res.adb (Resolve_Qualified_Expression): Call
	Check_Expression_Against_Static_Predicate, passing True for
	Check_Failure_Is_Error, to ensure we reject static predicate
	violations. Remove code that was conditionally calling
	Apply_Predicate_Check, which is no longer needed, and that check
	procedure shouldn't be called from a resolution routine in any
	case. Also remove associated comment about preventing infinite
	recursion and consistency with Resolve_Type_Conversion, since
	that handling was already similarly removed from
	Resolve_Type_Convesion at some point.
	(Resolve_Type_Conversion): Add passing of True for
	Check_Failure_Is_Error parameter on call to
	Check_Expression_Against_Static_Predicate, to ensure that static
	conversion cases that violate a predicate are rejected as
	errors.

2020-06-08  Piotr Trojanek  <trojanek@adacore.com>

	* snames.ads-tmpl (Name_SPARK): Restore after being deleted.

2020-06-08  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb, exp_ch6.adb, par-ch11.adb, par-ch6.adb,
	par-ch7.adb, par-prag.adb, restrict.adb, restrict.ads,
	scans.ads, scng.adb, sem_aggr.adb, sem_attr.adb, sem_ch11.adb,
	sem_ch12.adb, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
	sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
	sem_res.adb, sem_util.adb, sem_util.ads, snames.ads-tmpl,
	gnatbind.adb, libgnat/s-rident.ads,
	doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
	Remove processing of SPARK_05 restriction.
	* gnat_rm.texi: Regenerate.
	* opt.ads: Remove processing of old checksum which is now
	handled by gprbuild directly.

2020-06-08  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch12.adb (Instantiate_Object): Relax rules related to null
	exclusions and generic objects. Handle all anonymous types
	consistently and not just E_Anonymous_Access_Type.
	* sem_ch8.adb (Analyze_Object_Renaming): Change wording so that
	it applies to both renamings and instantiations to avoid
	confusion.

2020-06-08  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-textio.ads (File_Mode): Fix typo in comment.

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

	* sem_res.adb (Resolve_Indexed_Component): Do not give a warning
	for a nonatomic component of an atomic array which is subject to
	an address clause in Ada 2020 mode.
	(Resolve_Selected_Component): Likewise for an atomic record.

2020-06-08  Philippe Gil  <gil@adacore.com>

	* doc/gnat_ugn/the_gnat_compilation_model.rst: in "Handling
	Files with Multiple Units" part documents gnatname use for
	unmodified files handling and gnatchop use for files
	refactoring.
	* gnat_ugn.texi: Regenerate.

2020-06-08  Arnaud Charlet  <charlet@adacore.com>

	* doc/gnat_rm/implementation_defined_attributes.rst:
	Enum_Rep/Enum_Val are standard Ada 202x attributes.
	* gnat_rm.texi: Regenerate.

2020-06-08  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Safe_Component): Remove code that considers as
	unsafe components that are aggregates; such removal allows the
	frontend to proceed and evaluate if they are safe by means of
	invoking Safe_Aggregate.

2020-06-08  Piotr Trojanek  <trojanek@adacore.com>

	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
	standard expansion to attributes First and Last.

2020-06-08  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb, exp_util.ads, exp_util.adb (Get_Index_Subtype):
	Move from the body of Exp_Attr to Exp_Util and expose from the
	spec.
	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Replace
	duplicated code with a call to Get_Index_Subtype.

2020-06-08  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Simplify code by moving
	many special cases to Is_Object_Reference and removing others by
	only checking renamings coming from sources.
	* sem_util.adb (Is_Object_Reference): Update for AI12-0226 and
	add more regular handling of 'Priority. Remove special cases no
	longer needed now that we are only checking renamings coming
	from sources.

2020-06-08  Claire Dross  <dross@adacore.com>

	* libgnat/a-cofove.adb (Insert_Space): The computation of Index
	generates a spurious compiler warning about a value not being in
	range for a statically dead branch.  Silence it using pragma
	Warnings.

2020-06-08  Bob Duff  <duff@adacore.com>

	* bindo-graphs.adb (function Add_Edge): Rename
	Add_Edge_With_Return to Add_Edge; we can tell it returns because
	it's a function, and overloading seems appropriate in this case.
	If Activates_Task=True, and we're not going to add a new edge
	because an existing Pred-->Succ edge already exists, then set
	Activates_Task to True on the preexisting edge.  This ensures
	that the message:
	info: use pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
	appears when appropriate, no matter in what order the edges
	happened to be processed.
	(procedure Add_Edge): Remove redundant assertions.
	(Activates_Task): Other kinds of edges can have
	Activates_Task=True.  For example, if we had a With_Edge and
	then an Invocation_Edge with Activates_Task=True, then the
	With_Edge has Activates_Task set to True.
	(Add_Edge_Kind_Check): New procedure to prevent other bugs of
	this nature. For example, if we were to sometimes call Add_Edge
	for a Spec_Before_Body_Edge followed by Add_Edge for a
	With_Edge, and sometimes in the other order, that would cause a
	similar bug to what we're fixing here.
	(Set_Is_Recorded_Edge): Val parameter is not used. Get rid of
	it.
	(Set_Activates_Task): New procedure to set the Activates_Task flag.
	* bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder the
	enumeration literals to facilitate Add_Edge_Kind_Check.
	* ali.adb (Known_ALI_Lines): The comment about "still available"
	was wrong. Fix that by erasing the comment, and encoding the
	relevant information in real code. Take advantage of Ada's full
	coverage rules by removing "others =>".  Also DRY.

2020-06-08  Ed Schonberg  <schonberg@adacore.com>

	* par-ch12.adb (P_Formal_Derived_Type_Definition): Handle
	properly formal derived types that include aspect
	specifications, so that the "with" keyword appears twice in the
	formal type declaration.
	* sem_ch13.adb (Has_Generic_Parent): Return true if the type
	itself is a generic formal.

2020-06-08  Dmitriy Anisimkov  <anisimko@adacore.com>

	* socket.c (__gnat_minus_500ms): Remove
	IsWindowsVersionOrGreater from condition.

2020-06-08  Claire Dross  <dross@adacore.com>

	* libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads,
	libgnat/a-cfhase.ads, libgnat/a-cforma.ads, libgnat/a-cforse.ads
	(Delete): Add Depends contract.

2020-06-08  Arnaud Charlet  <charlet@adacore.com>

	* snames.ads-tmpl (Name_Program_Error_Check,
	Name_Tasking_Check): New constants.
	* types.ads (Program_Error_Check, Tasking_Check): New constants.
	(All_Checks): Update accordingly.

2020-06-05  Arnaud Charlet  <charlet@adacore.com>

	* sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Use ??.

2020-06-05  Arnaud Charlet  <charlet@adacore.com>

	* cstand.adb (Create_Standard): Update comments.

2020-06-05  Arnaud Charlet  <charlet@adacore.com>

	* scng.adb (Scan): Fix typo to take into account all future
	versions of Ada.
	* sem_attr.ads (Attribute_Impl_Def): Add Attribute_Reduce for
	now.
	* sem_attr.adb (Analyze_Attribute): Only allow 'Reduce under
	-gnatX.
	* snames.ads-tmpl (Name_Reduce): Update comment.

2020-06-05  Thomas Quinot  <quinot@adacore.com>

	* exp_disp.adb (Expand_Interface_Thunk): Add comment about
	gnatcov reliance on specific name used for thunks.

2020-06-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration): For scalar types,
	and for subtype declarations without a constraint, subtype
	inherits Atomic flag from base type.

2020-06-05  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_attributes.rst (Enum_Rep):
	Remove extra colon.
	* gnat_rm.texi: Regenerate.

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

	* atree.adb (New_Copy): Clear Has_Dynamic_Range_Check on
	subexpression nodes.
	* checks.adb (Append_Range_Checks): Assert that the node
	doesn't have the Has_Dynamic_Range_Check flag set.
	(Insert_Range_Checks): Likewise.
	* exp_ch3.adb (Expand_N_Subtype_Indication): Do not apply
	range checks for a full type or object declaration.
	* sem_ch3.ads: Move with and use clauses for Nlists to...
	(Process_Range_Expr_In_Decl): Change default to No_List for
	the Check_List parameter.
	* sem_ch3.adb: ...here.
	(Process_Range_Expr_In_Decl): Likewise.  When the insertion
	node is a declaration, only insert on the list if is present
	when the declaration involves discriminants, and only insert
	on the node when there is no list otherwise.

2020-06-05  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): Create the
	N_Aggregate node with its Expressions field set to No_List and
	not to an empty list.

2020-06-05  Dmitriy Anisimkov  <anisimko@adacore.com>

	* libgnat/s-os_lib.adb (Is_Dirsep): Moved from Build_Path to
	package level to reuse.
	(Normalize_Pathname.Final_Value): Reduce 2 'if' statements to
	one.
	(Normalize_Pathname.Fill_Directory): New procedure instead of
	function Get_Directory. Remove slash to backslash conversion and
	drive letter uppercasing on Windows.

2020-06-05  Arnaud Charlet  <charlet@adacore.com>

	* sem.adb (Assert_Done): Relax check for main unit, as it was
	overzealous in the case of the main unit itself.

2020-06-05  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb, sem_ch8.adb, sem_util.adb: Use Is_Incomplete_Type
	to make the code easier to read.

2020-06-05  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.adb: Minor reformatting.
	* sem_util.adb (Has_Full_Default_Initialization,
	Is_Partially_Initialized_Type, Caller_Known_Size_Record,
	Large_Max_Size_Mutable): Iterate with
	First_Component/Next_Component; rename Ent to Comp.

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

	* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use
	Expr_Rep_Value instead of Expr_Value to obtain the equivalent
	integer value.
	* sem_eval.ads (Expr_Value): Document more supported cases.
	* sem_eval.adb (Expr_Rep_Value): Copy missing cases from
	Exp_Value.

2020-06-05  Bob Duff  <duff@adacore.com>

	* rtsfind.adb, rtsfind.ads: Move subtypes of RTU_Id into package
	body, because they are not needed by clients. Change "Child_" to
	"Descendant", because grandchildren and great grandchildren are
	involved.  Replace all the repetitive comments with a single
	concise one.  Change the parent subtypes to be more consistent;
	use the most specific parent.

2020-06-05  Piotr Trojanek  <trojanek@adacore.com>

	* rtsfind.ads, rtsfind.adb (Is_Text_IO_Special_Package): Moved
	from the GNATprove backend to the frontend.

2020-06-05  Yannick Moy  <moy@adacore.com>

	* sem_util.ads: Add comment about function only used in
	CodePeer.

2020-06-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch9.adb, (Analyze_Task_Body): After analying the task
	body, indicate that all local variables have no delayed aspects.
	This prevents improper later calls to
	Check_Aspect_At_End_Of_Declarations, that would happen when the
	constructed task_procedure body (generated during expansion) is
	analyzed. The legality of aspect specifications that may appear
	on local declarations has already been established, and it is in
	general not possible to recheck them properly during expansion,
	when visibility may not be fully established.

2020-06-05  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/a-cofuve.ads (First): Add Global contract.

2020-06-05  Arnaud Charlet  <charlet@adacore.com>

	* sem_prag.adb (Set_Convention_From_Pragma): Set the convention
	of anonymous access array components.

2020-06-05  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-calfor.ads, libgnat/a-catizo.ads,
	libgnat/a-catizo.adb (Local_Time_Offset, Local_Image): New.
	(UTC_Time_Offset): Now a renaming of Local_Time_Offset.

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

	* sem_ch3.adb (Available_Full_View): New function returning
	either the full or the underlying full view.
	(Build_Full_Derivation): Add guard for the full view.
	(Copy_And_Build): Retrieve the underlying full view, if any,
	also if deriving a completion.
	(Build_Derived_Private_Type): Use Available_Full_View throughout
	to decide whether a full derivation must be done.

2020-06-05  Bob Duff  <duff@adacore.com>

	* exp_attr.adb, exp_ch11.adb, exp_imgv.adb, exp_tss.ads,
	par-ch4.adb, sem_attr.adb, sem_util.ads: Misc cleanup.

2020-06-05  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-nudira.ads, libgnat/a-nudira.adb (Random): New
	function.

2020-06-05  Arnaud Charlet  <charlet@adacore.com>

	* sem_attr.ads (Attribute_Impl_Def): Remove Enum_Rep/Val.
	* sem_attr.adb (Attribute_20): New, move Enum_Rep/Val here.
	(Analyze_Attribute): Take Attribute_20 into account.

2020-06-05  Arnaud Charlet  <charlet@adacore.com>

	* restrict.ads (Unit_Array): Add a-direct.

2020-06-05  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-stopoo.ads: Mark package Pure and leave room for
	Nonblocking once this aspect is supported.

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

	* exp_attr.adb (Expand_N_Attribute_Reference) <Valid_Scalars>:
	Set the No_Truncation flag on the unchecked conversion built for
	scalar types.

2020-06-05  Bob Duff  <duff@adacore.com>

	* einfo.adb, einfo.ads, exp_util.adb: Remove Invariants_Ignored
	flag.
	* sem_prag.adb (Invariant): Instead of setting a flag to be
	checked elsewhere, remove the pragma as soon as it is analyzed
	and checked for legality.

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

	* checks.ads (Apply_Length_Check): Rename Ck_Node parameter to
	Expr.
	(Apply_Range_Check): Likewise.
	(Get_Range_Checks): Likewise.
	* checks.adb (Apply_Float_Conversion_Check): Likewise.
	(Apply_Selected_Length_Checks): Likewise.
	(Apply_Selected_Range_Checks): Likewise.
	(Guard_Access): Likewise.
	(Selected_Length_Checks): Likewise.  Also avoid shadowing in
	child procedures.
	(Selected_Range_Checks): Likewise.

2020-06-05  Arnaud Charlet  <charlet@adacore.com>

	* par-ch3.adb, par-ch4.adb, scng.adb, sem_aggr.adb,
	sem_ch10.adb, sem_ch12.adb, sem_prag.adb: Update wording: change
	Ada_2020 to Ada 2020 in comments and mention -gnat2020 instead
	of -gnatX switch.

2020-06-04  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/i-c.ads (long_long, unsigned_long_long): New
	definitions.

2020-06-04  Arnaud Charlet  <charlet@adacore.com>

	* Makefile.rtl: add a-tasini object
	* impunit.adb (Non_Imp_File_Names_95): Add s-tasini.
	* libgnarl/a-tasini.ads, libgnarl/a-tasini.adb: New files.
	* libgnarl/s-taskin.ads (Global_Initialization_Handler): New.
	* libgnarl/s-tassta.adb (Task_Wrapper): Call
	Global_Initialization_Handler if non null.

2020-06-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Build_Suprogram_Body_Wrapper,
	Build_Subprogram_Decl_Wrapper): New suprograms, to create the
	wrappers needed to implement contracts on formsl subprograms at
	the point of instantiation.
	(Build_Subprogram_Wrappers): New subprogram within
	Analyze_Associations, calls the above when the formal subprogram
	has contracts, and expansion is enabled.
	(Instantiate_Formal_Subprogram): If the actual is not an entity,
	such as a function attribute, or a synchronized operation,
	create a function with an internal name and call it within the
	wrapper.
	(Analyze_Generic_Formal_Part): Analyze contracts at the end of
	the list of formal declarations.
	* sem_prag.adb (Analyze_Pre_Post_Condtion): In Ada_2020 the
	aspect and corresponding pragma can appear on a formal
	subprogram declaration.
	(Find_Related_Declaration_Or_Body): Ditto.

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

	* exp_ch7.adb (Make_Final_Call): Set the type of the object, if
	it is unanalyzed, before calling Convert_View on it.

2020-06-04  Arnaud Charlet  <charlet@adacore.com>

	* adabkend.adb, back_end.ads, opt.ads, sem_ch6.adb: Get rid of
	Disable_FE_Inline_Always.

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

	* exp_ch7.adb (Make_Final_Call): Add missing guard.
	* sem_ch3.adb (Copy_And_Build): Adjust recursive call for
	private types.
	(Build_Derived_Private_Type): Deal with underlying full views.

2020-06-04  Bob Duff  <duff@adacore.com>

	* libgnat/a-stobbu.adb, libgnat/a-stobbu.ads,
	libgnat/a-stobfi.adb, libgnat/a-stobfi.ads,
	libgnat/a-stoubu.adb, libgnat/a-stoubu.ads,
	libgnat/a-stoufi.adb, libgnat/a-stoufi.ads,
	libgnat/a-stoufo.adb, libgnat/a-stoufo.ads,
	libgnat/a-stouut.adb, libgnat/a-stouut.ads,
	libgnat/a-stteou.ads, libgnat/s-putaim.adb,
	libgnat/s-putaim.ads, libgnat/s-putima.adb, libgnat/s-putima.ads
	(Ada.Strings.Text_Output and children, System.Put_Images): New
	runtime support for Put_Image.
	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add
	exp_put_image.o.
	* exp_put_image.adb, exp_put_image.ads: New compiler package
	that generates calls to runtime routines that implement
	Put_Image.
	* Makefile.rtl: Add object files for Ada.Strings.Text_Output and
	children and System.Put_Images.
	* aspects.adb: Simplify initialization of Canonical_Aspect.
	* aspects.ads: Improve documentation. Add Aspect_Put_Image.
	* exp_attr.adb: Add support for Put_Image, by calling routines
	in Exp_Put_Image.
	* sem_util.adb (Is_Predefined_Dispatching_Operation): Return
	True for new TSS_Put_Image operation.
	* exp_ch3.adb: For tagged types, build a dispatching
	TSS_Put_Image operation by calling routines in Exp_Put_Image.
	* exp_disp.adb, exp_disp.ads: Make TSS_Put_Image be number 10,
	adjusting other operations' numbers after 10. We choose 10
	because that's the last number shared by all runtimes.
	* exp_strm.adb: Use named notation as appropriate.
	* exp_cg.adb, exp_tss.ads: Add TSS_Put_Image.
	* libgnat/a-tags.ads: Modify Max_Predef_Prims for the new
	TSS_Put_Image.
	* impunit.adb: Add new runtime packages.
	* rtsfind.adb, rtsfind.ads: Add support for
	Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
	System.Put_Images.
	* sem_attr.adb: Error checking for Put_Image calls.
	* sem_ch12.adb (Valid_Default_Attribute): Support for passing
	Put_Image as a generic formal parameter.
	* sem_ch13.adb: Analysis of Put_Image aspect. Turn it into a
	Put_Image attribute definition clause.
	* sem_ch8.adb (Analyze_Subprogram_Renaming): Support for
	renaming of the Put_Image attribute.
	* snames.adb-tmpl: Fix comments.
	* snames.ads-tmpl (Name_Put_Image): New Name_Id.
	(Attribute_Put_Image): New Attribute_Id.
	* tbuild.adb, tbuild.ads (Make_Increment): New utility.

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

	* exp_attr.adb (xpand_N_Attribute_Reference) <Input>: Call
	Find_Inherited_TSS to look up the Stream_Read TSS.
	<Output>: Likewise for the Stream_Write TSS.
	* exp_ch7.adb (Make_Final_Call): Call Underlying_Type on
	private types to account for underlying full views.
	* exp_strm.ads  (Build_Record_Or_Elementary_Input_Function):
	Remove Use_Underlying parameter.
	* exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
	Likewise and adjust accordingly.
	* exp_tss.adb (Find_Inherited_TSS): Deal with full views.
	Call Find_Inherited_TSS recursively on the parent type if
	the base type is a derived type.
	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Take
	into account underlying full views for derived types.
	* sem_ch3.adb (Copy_And_Build): Look up the underlying full
	view only for a completion.  Be prepared for private types.
	(Build_Derived_Private_Type): Build an underlying full view
	for a completion in the general case too.

2020-06-04  Arnaud Charlet  <charlet@adacore.com>

	* back_end.adb, opt.ads, par-prag.adb, sem_ch5.adb,
	sem_prag.adb, sinfo.adb, sinfo.ads, snames.ads-tmpl,
	doc/gnat_rm/implementation_defined_pragmas.rst: Remove
	experimental support for OpenACC.
	* gcc-interface/misc.c, gcc-interface/trans.c,
	gcc-interface/lang.opt: Ditto.
	* gnat_rm.texi: Regenerate.

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

	* checks.adb (Generate_Discriminant_Check): Remove obsolete
	comment.

2020-06-04  Gary Dismukes  <dismukes@adacore.com>

	* par-ch3.adb (P_Identifier_Declarations): Add parsing of object
	renamings that have neither a subtype_mark nor an
	access_definition. Issue an error if the version is earlier than
	Ada_2020, and suggest using -gnatX.
	* sem_ch8.adb (Analyze_Object_Renaming): Handle
	object_renaming_declarations that don't have an explicit
	subtype. Errors are issued when the name is inappropriate or
	ambiguous, and otherwise the Etype of the renaming entity is set
	from the Etype of the renamed object.
	* sem_util.adb (Has_Null_Exclusion): Allow for the case of no
	subtype given in an N_Object_Renaming_Declaration.
	* sprint.adb (Sprint_Node_Actual): Handle printing of
	N_Object_Renaming_Declarations that are specified without an
	explicit subtype.

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

	* sinfo.ads (N_Delta_Aggregate): Document Etype field.
	(N_Case_Expression): Likewise.
	(Is_Syntactic_Field) <N_Quantified_Expression>: Adjust.
	<N_Case_Expression>: Likewise.

2020-06-04  Arnaud Charlet  <charlet@adacore.com>

	* adaint.c: Avoid redefining IS_DIR_SEPARATOR macro.

2020-06-04  Arnaud Charlet  <charlet@adacore.com>

	* sem.adb (Walk_Library_Items): Defer processing of main spec
	after all other specs and before processing bodies.

2020-06-04  Arnaud Charlet  <charlet@adacore.com>

	* bindgen.adb (Gen_Adafinal): Adafinal is convention Ada, not C.

2020-06-04  Ed Schonberg  <schonberg@adacore.com>

	* sinput.adb (Sloc_Range): Ignore node in the tree if it appears
	in a unit different from that of the node whose Sloc range we
	are computing. This is necessary when computing the source range
	of a subprogram body whose declaration includes a pre- or
	postcondition, because declaration and body may appear in
	different units, and the expanded code for the body includes
	copies of the contract code.

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

	* switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
	dumpbase-ext.  Mark auxbase and auxbase-strip for removal.

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

	* sem_attr.adb (Resolve_Attribute) <Access>: Do not generate
	the secondary message about a missing pragma if the convention
	of the prefix is Intrinsic.
	* sem_ch12.adb (Instantiate_Formal_Subprogram): Only set the
	Convention and the Is_Inlined flag on a null procedure.

2020-06-04  Justin Squirek  <squirek@adacore.com>

	* sem_ch6.adb (Check_Return_Obj_Accessibility): Change to
	Check_Return_Construct_Accessibility to better reflect its
	purpose.  Add loop to properly obtain the object declaration
	from an expanded extended return statement and add calls to get
	the original node for associated values. Also, avoid checks when
	the return statement being examined comes from an internally
	generated function.

2020-06-04  Dmitriy Anisimkov  <anisimko@adacore.com>

	* adaint.c (__gnat_is_absolute_path): Check for directory
	separator after drive and colon.
	(IS_DIR_SEPARATOR): Define new inline substitution.

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

	* checks.ads: Update documentation about range checks and fix
	minor other things.

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

	* sem_ch3.adb (Array_Type_Declaration): Apply special handling
	of private index types to generic packages and restrict it to
	index types defined in the current scope.

2020-06-04  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-exextr.adb (Global_Unhandled_Action): New global
	variable.
	(Notify_Exception): Take into account Global_Unhandled_Action
	and fix latent race condition.
	(Exception_Action): Mark Favor_Top_Level so that variables can
	be atomic.
	(Global_Action): Mark atomic to remove the need for a lock.
	* libgnat/g-excact.ads, libgnat/g-excact.adb
	(Register_Global_Unhandled_Action): New procedure.
	(Register_Global_Action): Remove lock.
	* libgnat/s-stalib.ads (Raise_Action): Mark Favor_Top_Level to
	be compatible with Exception_Action.
	* sem_warn.adb (Warn_On_Unreferenced_Entity): Fix logic wrt
	Volatile entities and entities with an address clause: the code
	did not match the comment/intent.

2020-06-04  Arnaud Charlet  <charlet@adacore.com>

	* comperr.adb (Compiler_Abort): Update URL and bug report
	instructions.

2020-06-04  Steve Baird  <baird@adacore.com>

	* libgnat/s-imgrea.ads: Declare a named number
	Max_Real_Image_Length with value 5200.  Provide a comment
	explaining why this value was chosen.
	* libgnat/s-imgrea.adb (Set_Image_Real): Increase the upper
	bound of the local String variable Digs to
	Max_Real_Image_Length.
	* libgnat/a-tiflau.adb (Put): Increase the upper bound of the
	local String variable Buf to Max_Real_Image_Length.
	(Puts): Increase the upper bound of the local String variable
	Buf to Max_Real_Image_Length.

2020-06-04  Arnaud Charlet  <charlet@adacore.com>

	* libgnarl/a-dynpri.adb, libgnarl/a-taside.adb,
	libgnarl/a-taster.adb, libgnarl/s-interr.adb,
	libgnarl/s-interr__sigaction.adb, libgnarl/s-taasde.adb,
	libgnarl/s-taenca.adb, libgnarl/s-taenca.ads,
	libgnarl/s-taprop.ads, libgnarl/s-taprop__hpux-dce.adb,
	libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
	libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
	libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
	libgnarl/s-tarest.adb, libgnarl/s-tasini.adb,
	libgnarl/s-tasque.adb, libgnarl/s-tasque.ads,
	libgnarl/s-tasren.adb, libgnarl/s-tasren.ads,
	libgnarl/s-tassta.adb, libgnarl/s-tasuti.adb,
	libgnarl/s-tasuti.ads, libgnarl/s-tpoben.adb,
	libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb,
	libgnarl/s-tposen.adb, libgnat/s-parame.ads,
	libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads,
	libgnat/s-parame__vxworks.ads: Remove references to Single_Lock
	and Global_Lock.

2020-06-04  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-atopar.adb, libgnat/s-atopex.adb: Use Object_Size
	instead of Size, otherwise many derived types will be rejected
	(e.g. a type with a 14 bits 'Size and a 16 bits 'Object_Size).

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

	* sem_ch12.adb (Copy_Generic_Node): Add special handling for a
	conversion between access types.

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

	* sem_ch12.adb (Check_Generic_Actuals): Also restore the proper
	views of the actuals of the parent instances if the formals are
	used as actuals of the children.
	(Instantiate_Type): Add comment.

2020-06-04  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch12.adb: Minor editorial fixes.

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

	* sem_ch12.adb (Denotes_Previous_Actual): Delete.
	(Check_Generic_Actuals): Do not special case array types whose
	component type denotes a previous actual.  Do not special case
	access types whose base type is private.
	(Check_Private_View): Remove code dealing with secondary types.
	Do not switch the views of an array because of its component.
	(Copy_Generic_Node): Add special handling for a comparison
	operator on array types.
	(Instantiate_Type): Do not special case access types whose
	designated type is private.
	(Set_Global_Type): Do not special case array types whose
	component type is private.

2020-06-03  Justin Squirek  <squirek@adacore.com>

	* sem_ch10.adb (Process_Body_Clauses): Add loop to interate
	through all prefixes in a use_type clause so that all packages
	in the expanded name get examined for effectiveness.

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

	* sem_ch12.adb (Check_Private_View): Clean up implementation of
	second main case, when the generic sees the private declaration.

2020-06-03  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/a-nbnbin.ads: Minor reformatting.
	* libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb (Is_Valid): Add
	convention Intrinsic. Add detection of uninitialized big reals.

2020-06-03  Arnaud Charlet  <charlet@adacore.com>

	* sem_util.ads, sem_util.adb (Side_Effect_Free_Statements,
	Side_Effect_Free_Loop): New functions.
	(Has_Non_Null_Statements): Consider N_Call_Marker as a null
	statement.
	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Call
	Set_Is_Null_Loop even inside a generic instantiation.
	(Analyze_Loop_Statement): Mark for removal loops with no side
	effects.

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

	* opt.ads (Allow_Integer_Address): Fix typo in comment.
	* stand.ads (Standard_Address): New entity.
	* cstand.adb (Create_Standard): Create it.
	* sem_ch4.adb (Operator_Check): Convert the operands of an
	operation with addresses and integers to Standard_Address
	if pragma Allow_Integer_Address is in effect.

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

	* libgnat/s-atopar.adb (Atomic_Fetch_And_Add): Make use of an
	equivalent static expression.
	(Atomic_Fetch_And_Subtract): Likewise.
	(Is_Lock_Free): Likewise.
	* libgnat/s-atopex.adb (Atomic_Exchange): Likewise.
	(Atomic_Compare_And_Exchange): Likewise.
	(Is_Lock_Free): Likewise.

2020-06-03  Vadim Godunko  <godunko@adacore.com>

	* libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
	libgnat/s-parame__hpux.ads: Fix typos.

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

	* exp_util.adb (Remove_Side_Effects): For a type conversion, do
	not remove the side effects of the expression only if it is of
	universal integer type.

2020-06-03  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-aotase.ads, libgnat/s-atoope.ads,
	libgnat/s-atopar.ads, libgnat/s-atopex.ads: Update header.

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

	* exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Also fold the
	conversion for literals of enumeration types.

2020-06-03  Yannick Moy  <moy@adacore.com>

	* rtsfind.adb (Load_RTU): Correctly set/reset global variable to
	ignore SPARK_Mode in instances around loading.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Accept Off
	without prior On.
	* sem_ch7.adb (Analyze_Package_Body_Helper): Likewise.
	* sem_prag.adb (Analyze_Pragma): Always take into account
	SPARK_Mode Off.

2020-06-03  Arnaud Charlet  <charlet@adacore.com>

	* frontend.adb (Frontend): Call (dummy for now) tree checker.
	* debug.adb: Reserve -gnatd_V for the tree checker.
	* vast.ads, vast.adb: New files.
	* gcc-interface/Make-lang.in: Add vast.o.

2020-06-03  Justin Squirek  <squirek@adacore.com>

	* libgnat/a-cborse.adb, libgnat/a-cihase.adb,
	libgnat/a-ciorse.adb, libgnat/a-coorse.adb: Modified to use
	'Unrestricted_Access in certain cases where static accessibility
	errors were triggered.
	* exp_ch6.adb (Expand_Simple_Return_Statement): Add generation
	of dynamic accessibility checks as determined by
	Is_Special_Aliased_Formal_Access.
	* sem_attr.adb (Resolve_Attribute): Add call to
	Is_Special_Aliased_Formal_Access to avoid performing static
	checks where dynamic ones are required.
	* sem_ch6.adb (Check_Return_Obj_Accessibility): Handle renamed
	objects within component associations requiring special
	accessibility checks.
	* sem_util.adb, sem_util.ads (Is_Special_Aliased_Formal_Access):
	Created to detect the special case where an aliased formal is
	being compared against the level of an anonymous access return
	object.
	(Object_Access_Level): Remove incorrect condition leading to
	overly permissive accessibility levels being returned on
	explicitly aliased parameters.

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

	* einfo.ads (Enum_Pos_To_Rep): Adjust description.
	* exp_attr.adb (Expand_N_Attribute_Reference) <Pred>:
	Reimplement in the case of an enumeration type with non-standard
	but contiguous representation.
	<Succ>: Likewise.
	<Val>: Likewise.
	* exp_ch3.adb (Expand_Freeze_Enumeration_Type): Count the
	literals in the first loop.  If the representation is
	contiguous, just build the index type of the array type and set
	Enum_Pos_To_Rep to it.

2020-06-03  Gary Dismukes  <dismukes@adacore.com>

	* exp_attr.adb (Expand_Loop_Entry_Attribute): Revise loop that
	resets the scopes of entities associated with Loop_Id to the
	scope of the new function, so the resetting is not restricted to
	itypes, but excludes loop parameters and the function entity
	itself. However, this fix is believed to be incomplete and a ???
	comment is added to indicate that.

2020-06-03  Bob Duff  <duff@adacore.com>

	* libgnat/s-regexp.ads: Fix comment

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

	* exp_attr.adb (Expand_N_Attribute_Reference) <Enum_Rep>:
	In the case of an enumeration type, do an intermediate
	conversion to a small integer type.  Remove useless stuff.
	<Finalization_Size>: Do not hardcode Universal_Integer and
	fix a type mismatch in the assignment to the variable.
	<Max_Size_In_Storage_Elements>: Likewise.
	<From_Any>: Do not redefine the Ptyp local variable.
	<To_Any>: Likewise.
	<TypeCode>: Likewise.
	<Pos>: Small tweaks.
	<Val>: For an enumeration type with standard representation,
	apply the range check to the expression of a convertion to
	Universal_Integer, if any.  For an integer type, expand to
	a mere conversion.

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

	* libgnat/s-rannum.adb (Random_Discrete): In the 32-bit case,
	use the same linear implementation as in the 64-bit case when
	the type has a contiguous representation.

2020-06-03  Gary Dismukes  <dismukes@adacore.com>

	* sem_util.adb (Build_Class_Wide_Clone_Decl): Call
	Set_Debug_Info_Needed to set the Needs_Debug_Info flag on
	Clone_Id if the flag is set on Spec_Id.

2020-06-03  Yannick Moy  <moy@adacore.com>

	* inline.adb (Expand_Inlined_Call): Do not suppress checks on
	inlined code in GNATprove mode.

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

	* einfo.ads (Has_Contiguous_Rep): Fix typo in comment.

2020-06-03  Piotr Trojanek  <trojanek@adacore.com>

	* checks.adb, einfo.adb, exp_aggr.adb, exp_ch4.adb, exp_ch6.adb,
	exp_unst.adb, exp_util.adb, freeze.adb, inline.adb, repinfo.adb,
	sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_ch13.adb,
	sem_ch3.adb, sem_ch4.adb, sem_ch8.adb, sem_elab.adb,
	sem_eval.adb, sem_prag.adb, sem_res.adb, sem_smem.adb,
	sem_util.adb, treepr.adb: Replace uses of Next_ functions with
	corresponding procedures.

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

	* exp_attr.adb (Attribute_Valid): Use Standard_Long_Long_Integer
	in lieu of Universal_Integer as large integer type.
	* exp_ch3.adb (Expand_Freeze_Enumeration_Type): Likewise.

2020-06-03  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-auxdec.ads (Address_Int): New.

2020-06-03  Arnaud Charlet  <charlet@adacore.com>

	* aspects.adb, aspects.ads, atree.adb, atree.ads, elists.adb,
	elists.ads, fname.adb, fname.ads, gnat1drv.adb, lib.adb,
	lib.ads, namet.adb, namet.ads, nlists.adb, nlists.ads, opt.adb,
	opt.ads, osint-c.adb, osint-c.ads, repinfo.adb, repinfo.ads,
	sem_aux.adb, sem_aux.ads, sinput.adb, sinput.ads, stand.ads,
	stringt.adb, stringt.ads, switch-c.adb, table.adb, table.ads,
	uintp.adb, uintp.ads, urealp.adb, urealp.ads (Tree_Read,
	Tree_Write): Remove generation of ASIS trees.
	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Remove -gnatt and -gnatct documentation.
	* gnat_ugn.texi: Regenerate.
	* tree_in.ads, tree_in.adb, tree_io.ads, tree_io.adb,
	tree_gen.ads, tree_gen.adb, stand.adb: Remove.
	* gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove
	references to tree_gen.o tree_in.o tree_io.o.

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

	* opt.ads (Disable_FE_Inline): Move around.
	(Disable_FE_Inline_Always): Likewise.

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

	* checks.adb (Is_Single_Attribute_Reference): New predicate.
	(Generate_Range_Check): Do not force the evaluation if the
	node is a single attribute reference.
	* exp_util.adb (Side_Effect_Free_Attribute): New predicate.
	(Side_Effect_Free) <N_Attribute_Reference>: Call it.
	(Remove_Side_Effects): Remove the side effects of the prefix
	for an attribute reference whose prefix is not a name.

2020-06-03  Arnaud Charlet  <charlet@adacore.com>

	* switch-c.adb (Scan_Front_End_Switches): Remove processing of
	-gnatt.
	* usage.adb (Usage): Remove mention of -gnatt.

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

	* sinfo.ads: Minor tweaks in commentary.

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

	* lib.ads (Compilation_Switches): Remove -auxbase from
	comments.
	* switch.ads (Is_Internal_GCC_Switch): Likewise.

2020-06-02  Arnaud Charlet  <charlet@adacore.com>

	* atree.ads, checks.adb, contracts.adb, debug.adb, einfo.ads,
	exp_ch3.adb, exp_util.adb, expander.ads, expander.adb,
	frontend.adb, gnat1drv.adb, itypes.adb, lib.ads, namet.ads,
	opt.adb, opt.ads, par-prag.adb, repinfo.ads, sem_aggr.adb,
	sem_aux.ads, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
	sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb,
	sem_dim.adb, sem_elab.adb, sem_prag.adb, sem_prag.ads,
	sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, stand.ads,
	tree_io.ads: Remove references to ASIS_Mode.

2020-06-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Generate_Temporary): New subprogram of
	Discrete_Range_Check that generates a temporary to facilitate
	the C backend the code generation of the unchecked conversion
	since the size of the source type may differ from the size of
	the target type.

2020-06-02  Arnaud Charlet  <charlet@adacore.com>

	* ada_get_targ.adb: Bump copyright year.
	* adabkend.adb: Likewise.
	* adabkend.ads: Likewise.
	* adadecode.c: Likewise.
	* adadecode.h: Likewise.
	* adaint.c: Likewise.
	* adaint.h: Likewise.
	* affinity.c: Likewise.
	* ali-util.adb: Likewise.
	* ali-util.ads: Likewise.
	* ali.adb: Likewise.
	* ali.ads: Likewise.
	* alloc.ads: Likewise.
	* argv-lynxos178-raven-cert.c: Likewise.
	* argv.c: Likewise.
	* aspects.adb: Likewise.
	* aspects.ads: Likewise.
	* atree.adb: Likewise.
	* atree.ads: Likewise.
	* atree.h: Likewise.
	* aux-io.c: Likewise.
	* back_end.adb: Likewise.
	* back_end.ads: Likewise.
	* bcheck.adb: Likewise.
	* bcheck.ads: Likewise.
	* binde.adb: Likewise.
	* binde.ads: Likewise.
	* binderr.adb: Likewise.
	* binderr.ads: Likewise.
	* bindgen.adb: Likewise.
	* bindgen.ads: Likewise.
	* bindo-augmentors.adb: Likewise.
	* bindo-augmentors.ads: Likewise.
	* bindo-builders.adb: Likewise.
	* bindo-builders.ads: Likewise.
	* bindo-diagnostics.adb: Likewise.
	* bindo-diagnostics.ads: Likewise.
	* bindo-elaborators.adb: Likewise.
	* bindo-elaborators.ads: Likewise.
	* bindo-graphs.adb: Likewise.
	* bindo-graphs.ads: Likewise.
	* bindo-units.adb: Likewise.
	* bindo-units.ads: Likewise.
	* bindo-validators.adb: Likewise.
	* bindo-validators.ads: Likewise.
	* bindo-writers.adb: Likewise.
	* bindo-writers.ads: Likewise.
	* bindo.adb: Likewise.
	* bindo.ads: Likewise.
	* bindusg.adb: Likewise.
	* bindusg.ads: Likewise.
	* butil.adb: Likewise.
	* butil.ads: Likewise.
	* cal.c: Likewise.
	* casing.adb: Likewise.
	* casing.ads: Likewise.
	* ceinfo.adb: Likewise.
	* checks.adb: Likewise.
	* checks.ads: Likewise.
	* cio.c: Likewise.
	* clean.adb: Likewise.
	* clean.ads: Likewise.
	* comperr.adb: Likewise.
	* comperr.ads: Likewise.
	* contracts.adb: Likewise.
	* contracts.ads: Likewise.
	* csets.adb: Likewise.
	* csets.ads: Likewise.
	* csinfo.adb: Likewise.
	* cstand.adb: Likewise.
	* cstand.ads: Likewise.
	* cstreams.c: Likewise.
	* ctrl_c.c: Likewise.
	* debug.adb: Likewise.
	* debug.ads: Likewise.
	* debug_a.adb: Likewise.
	* debug_a.ads: Likewise.
	* einfo.adb: Likewise.
	* einfo.ads: Likewise.
	* elists.adb: Likewise.
	* elists.ads: Likewise.
	* elists.h: Likewise.
	* env.c: Likewise.
	* env.h: Likewise.
	* err_vars.ads: Likewise.
	* errno.c: Likewise.
	* errout.adb: Likewise.
	* errout.ads: Likewise.
	* erroutc.adb: Likewise.
	* erroutc.ads: Likewise.
	* errutil.adb: Likewise.
	* errutil.ads: Likewise.
	* eval_fat.adb: Likewise.
	* eval_fat.ads: Likewise.
	* exit.c: Likewise.
	* exp_aggr.adb: Likewise.
	* exp_aggr.ads: Likewise.
	* exp_atag.adb: Likewise.
	* exp_atag.ads: Likewise.
	* exp_attr.adb: Likewise.
	* exp_attr.ads: Likewise.
	* exp_cg.adb: Likewise.
	* exp_cg.ads: Likewise.
	* exp_ch10.ads: Likewise.
	* exp_ch11.adb: Likewise.
	* exp_ch11.ads: Likewise.
	* exp_ch12.adb: Likewise.
	* exp_ch12.ads: Likewise.
	* exp_ch13.adb: Likewise.
	* exp_ch13.ads: Likewise.
	* exp_ch2.adb: Likewise.
	* exp_ch2.ads: Likewise.
	* exp_ch3.adb: Likewise.
	* exp_ch3.ads: Likewise.
	* exp_ch4.adb: Likewise.
	* exp_ch4.ads: Likewise.
	* exp_ch5.adb: Likewise.
	* exp_ch5.ads: Likewise.
	* exp_ch6.adb: Likewise.
	* exp_ch6.ads: Likewise.
	* exp_ch7.adb: Likewise.
	* exp_ch7.ads: Likewise.
	* exp_ch8.adb: Likewise.
	* exp_ch8.ads: Likewise.
	* exp_ch9.adb: Likewise.
	* exp_ch9.ads: Likewise.
	* exp_code.adb: Likewise.
	* exp_code.ads: Likewise.
	* exp_dbug.adb: Likewise.
	* exp_dbug.ads: Likewise.
	* exp_disp.adb: Likewise.
	* exp_disp.ads: Likewise.
	* exp_dist.adb: Likewise.
	* exp_dist.ads: Likewise.
	* exp_fixd.adb: Likewise.
	* exp_fixd.ads: Likewise.
	* exp_imgv.adb: Likewise.
	* exp_imgv.ads: Likewise.
	* exp_intr.adb: Likewise.
	* exp_intr.ads: Likewise.
	* exp_pakd.adb: Likewise.
	* exp_pakd.ads: Likewise.
	* exp_prag.adb: Likewise.
	* exp_prag.ads: Likewise.
	* exp_sel.adb: Likewise.
	* exp_sel.ads: Likewise.
	* exp_smem.adb: Likewise.
	* exp_smem.ads: Likewise.
	* exp_spark.adb: Likewise.
	* exp_spark.ads: Likewise.
	* exp_strm.adb: Likewise.
	* exp_strm.ads: Likewise.
	* exp_tss.adb: Likewise.
	* exp_tss.ads: Likewise.
	* exp_unst.adb: Likewise.
	* exp_unst.ads: Likewise.
	* exp_util.adb: Likewise.
	* exp_util.ads: Likewise.
	* expander.adb: Likewise.
	* expander.ads: Likewise.
	* expect.c: Likewise.
	* fe.h: Likewise.
	* final.c: Likewise.
	* fmap.adb: Likewise.
	* fmap.ads: Likewise.
	* fname-sf.adb: Likewise.
	* fname-sf.ads: Likewise.
	* fname-uf.adb: Likewise.
	* fname-uf.ads: Likewise.
	* fname.adb: Likewise.
	* fname.ads: Likewise.
	* freeze.adb: Likewise.
	* freeze.ads: Likewise.
	* frontend.adb: Likewise.
	* frontend.ads: Likewise.
	* get_scos.adb: Likewise.
	* get_scos.ads: Likewise.
	* get_targ.adb: Likewise.
	* get_targ.ads: Likewise.
	* ghost.adb: Likewise.
	* ghost.ads: Likewise.
	* gnat1drv.adb: Likewise.
	* gnat1drv.ads: Likewise.
	* gnatbind.adb: Likewise.
	* gnatbind.ads: Likewise.
	* gnatchop.adb: Likewise.
	* gnatclean.adb: Likewise.
	* gnatcmd.adb: Likewise.
	* gnatcmd.ads: Likewise.
	* gnatdll.adb: Likewise.
	* gnatfind.adb: Likewise.
	* gnatkr.adb: Likewise.
	* gnatkr.ads: Likewise.
	* gnatlink.adb: Likewise.
	* gnatlink.ads: Likewise.
	* gnatls.adb: Likewise.
	* gnatls.ads: Likewise.
	* gnatmake.adb: Likewise.
	* gnatmake.ads: Likewise.
	* gnatname.adb: Likewise.
	* gnatname.ads: Likewise.
	* gnatprep.adb: Likewise.
	* gnatprep.ads: Likewise.
	* gnatvsn.adb: Likewise.
	* gnatxref.adb: Likewise.
	* gprep.adb: Likewise.
	* gprep.ads: Likewise.
	* gsocket.h: Likewise.
	* hostparm.ads: Likewise.
	* impunit.adb: Likewise.
	* impunit.ads: Likewise.
	* indepsw-aix.adb: Likewise.
	* indepsw-darwin.adb: Likewise.
	* indepsw-gnu.adb: Likewise.
	* indepsw.adb: Likewise.
	* indepsw.ads: Likewise.
	* init.c: Likewise.
	* initialize.c: Likewise.
	* inline.adb: Likewise.
	* inline.ads: Likewise.
	* itypes.adb: Likewise.
	* itypes.ads: Likewise.
	* krunch.adb: Likewise.
	* krunch.ads: Likewise.
	* layout.adb: Likewise.
	* layout.ads: Likewise.
	* lib-list.adb: Likewise.
	* lib-load.adb: Likewise.
	* lib-load.ads: Likewise.
	* lib-sort.adb: Likewise.
	* lib-util.adb: Likewise.
	* lib-util.ads: Likewise.
	* lib-writ.adb: Likewise.
	* lib-writ.ads: Likewise.
	* lib-xref-spark_specific.adb: Likewise.
	* lib-xref.adb: Likewise.
	* lib-xref.ads: Likewise.
	* lib.adb: Likewise.
	* lib.ads: Likewise.
	* libgnarl/a-astaco.adb: Likewise.
	* libgnarl/a-dispat.adb: Likewise.
	* libgnarl/a-dynpri.adb: Likewise.
	* libgnarl/a-etgrbu.ads: Likewise.
	* libgnarl/a-exetim__darwin.adb: Likewise.
	* libgnarl/a-exetim__default.ads: Likewise.
	* libgnarl/a-exetim__mingw.adb: Likewise.
	* libgnarl/a-exetim__mingw.ads: Likewise.
	* libgnarl/a-exetim__posix.adb: Likewise.
	* libgnarl/a-interr.adb: Likewise.
	* libgnarl/a-interr.ads: Likewise.
	* libgnarl/a-intnam.ads: Likewise.
	* libgnarl/a-intnam__aix.ads: Likewise.
	* libgnarl/a-intnam__darwin.ads: Likewise.
	* libgnarl/a-intnam__dragonfly.ads: Likewise.
	* libgnarl/a-intnam__dummy.ads: Likewise.
	* libgnarl/a-intnam__freebsd.ads: Likewise.
	* libgnarl/a-intnam__hpux.ads: Likewise.
	* libgnarl/a-intnam__linux.ads: Likewise.
	* libgnarl/a-intnam__lynxos.ads: Likewise.
	* libgnarl/a-intnam__mingw.ads: Likewise.
	* libgnarl/a-intnam__qnx.ads: Likewise.
	* libgnarl/a-intnam__rtems.ads: Likewise.
	* libgnarl/a-intnam__solaris.ads: Likewise.
	* libgnarl/a-intnam__vxworks.ads: Likewise.
	* libgnarl/a-reatim.adb: Likewise.
	* libgnarl/a-reatim.ads: Likewise.
	* libgnarl/a-retide.adb: Likewise.
	* libgnarl/a-retide.ads: Likewise.
	* libgnarl/a-rttiev.adb: Likewise.
	* libgnarl/a-rttiev.ads: Likewise.
	* libgnarl/a-synbar.adb: Likewise.
	* libgnarl/a-synbar.ads: Likewise.
	* libgnarl/a-synbar__posix.adb: Likewise.
	* libgnarl/a-synbar__posix.ads: Likewise.
	* libgnarl/a-sytaco.adb: Likewise.
	* libgnarl/a-sytaco.ads: Likewise.
	* libgnarl/a-tasatt.adb: Likewise.
	* libgnarl/a-tasatt.ads: Likewise.
	* libgnarl/a-taside.adb: Likewise.
	* libgnarl/a-taside.ads: Likewise.
	* libgnarl/a-taster.adb: Likewise.
	* libgnarl/g-boubuf.adb: Likewise.
	* libgnarl/g-boubuf.ads: Likewise.
	* libgnarl/g-boumai.ads: Likewise.
	* libgnarl/g-semaph.adb: Likewise.
	* libgnarl/g-semaph.ads: Likewise.
	* libgnarl/g-signal.adb: Likewise.
	* libgnarl/g-signal.ads: Likewise.
	* libgnarl/g-tastus.ads: Likewise.
	* libgnarl/g-thread.adb: Likewise.
	* libgnarl/g-thread.ads: Likewise.
	* libgnarl/i-vxinco.adb: Likewise.
	* libgnarl/i-vxinco.ads: Likewise.
	* libgnarl/s-inmaop.ads: Likewise.
	* libgnarl/s-inmaop__dummy.adb: Likewise.
	* libgnarl/s-inmaop__posix.adb: Likewise.
	* libgnarl/s-inmaop__vxworks.adb: Likewise.
	* libgnarl/s-interr.adb: Likewise.
	* libgnarl/s-interr.ads: Likewise.
	* libgnarl/s-interr__dummy.adb: Likewise.
	* libgnarl/s-interr__hwint.adb: Likewise.
	* libgnarl/s-interr__sigaction.adb: Likewise.
	* libgnarl/s-interr__vxworks.adb: Likewise.
	* libgnarl/s-intman.ads: Likewise.
	* libgnarl/s-intman__android.adb: Likewise.
	* libgnarl/s-intman__dummy.adb: Likewise.
	* libgnarl/s-intman__lynxos.adb: Likewise.
	* libgnarl/s-intman__mingw.adb: Likewise.
	* libgnarl/s-intman__posix.adb: Likewise.
	* libgnarl/s-intman__qnx.adb: Likewise.
	* libgnarl/s-intman__solaris.adb: Likewise.
	* libgnarl/s-intman__susv3.adb: Likewise.
	* libgnarl/s-intman__vxworks.adb: Likewise.
	* libgnarl/s-intman__vxworks.ads: Likewise.
	* libgnarl/s-linux.ads: Likewise.
	* libgnarl/s-linux__alpha.ads: Likewise.
	* libgnarl/s-linux__android.ads: Likewise.
	* libgnarl/s-linux__hppa.ads: Likewise.
	* libgnarl/s-linux__mips.ads: Likewise.
	* libgnarl/s-linux__riscv.ads: Likewise.
	* libgnarl/s-linux__sparc.ads: Likewise.
	* libgnarl/s-linux__x32.ads: Likewise.
	* libgnarl/s-mudido.adb: Likewise.
	* libgnarl/s-mudido__affinity.adb: Likewise.
	* libgnarl/s-osinte__aix.adb: Likewise.
	* libgnarl/s-osinte__aix.ads: Likewise.
	* libgnarl/s-osinte__android.adb: Likewise.
	* libgnarl/s-osinte__android.ads: Likewise.
	* libgnarl/s-osinte__darwin.adb: Likewise.
	* libgnarl/s-osinte__darwin.ads: Likewise.
	* libgnarl/s-osinte__dragonfly.adb: Likewise.
	* libgnarl/s-osinte__dragonfly.ads: Likewise.
	* libgnarl/s-osinte__dummy.ads: Likewise.
	* libgnarl/s-osinte__freebsd.adb: Likewise.
	* libgnarl/s-osinte__freebsd.ads: Likewise.
	* libgnarl/s-osinte__gnu.adb: Likewise.
	* libgnarl/s-osinte__gnu.ads: Likewise.
	* libgnarl/s-osinte__hpux-dce.adb: Likewise.
	* libgnarl/s-osinte__hpux-dce.ads: Likewise.
	* libgnarl/s-osinte__hpux.ads: Likewise.
	* libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
	* libgnarl/s-osinte__linux.ads: Likewise.
	* libgnarl/s-osinte__lynxos178.adb: Likewise.
	* libgnarl/s-osinte__lynxos178e.ads: Likewise.
	* libgnarl/s-osinte__mingw.ads: Likewise.
	* libgnarl/s-osinte__posix.adb: Likewise.
	* libgnarl/s-osinte__qnx.adb: Likewise.
	* libgnarl/s-osinte__qnx.ads: Likewise.
	* libgnarl/s-osinte__rtems.adb: Likewise.
	* libgnarl/s-osinte__rtems.ads: Likewise.
	* libgnarl/s-osinte__solaris.adb: Likewise.
	* libgnarl/s-osinte__solaris.ads: Likewise.
	* libgnarl/s-osinte__vxworks.adb: Likewise.
	* libgnarl/s-osinte__vxworks.ads: Likewise.
	* libgnarl/s-osinte__x32.adb: Likewise.
	* libgnarl/s-proinf.adb: Likewise.
	* libgnarl/s-proinf.ads: Likewise.
	* libgnarl/s-qnx.ads: Likewise.
	* libgnarl/s-solita.adb: Likewise.
	* libgnarl/s-solita.ads: Likewise.
	* libgnarl/s-stusta.adb: Likewise.
	* libgnarl/s-stusta.ads: Likewise.
	* libgnarl/s-taasde.adb: Likewise.
	* libgnarl/s-taasde.ads: Likewise.
	* libgnarl/s-tadeca.adb: Likewise.
	* libgnarl/s-tadeca.ads: Likewise.
	* libgnarl/s-tadert.adb: Likewise.
	* libgnarl/s-tadert.ads: Likewise.
	* libgnarl/s-taenca.adb: Likewise.
	* libgnarl/s-taenca.ads: Likewise.
	* libgnarl/s-taprob.adb: Likewise.
	* libgnarl/s-taprob.ads: Likewise.
	* libgnarl/s-taprop.ads: Likewise.
	* libgnarl/s-taprop__dummy.adb: Likewise.
	* libgnarl/s-taprop__hpux-dce.adb: Likewise.
	* libgnarl/s-taprop__linux.adb: Likewise.
	* libgnarl/s-taprop__mingw.adb: Likewise.
	* libgnarl/s-taprop__posix.adb: Likewise.
	* libgnarl/s-taprop__qnx.adb: Likewise.
	* libgnarl/s-taprop__solaris.adb: Likewise.
	* libgnarl/s-taprop__vxworks.adb: Likewise.
	* libgnarl/s-tarest.adb: Likewise.
	* libgnarl/s-tarest.ads: Likewise.
	* libgnarl/s-tasdeb.adb: Likewise.
	* libgnarl/s-tasdeb.ads: Likewise.
	* libgnarl/s-tasinf.adb: Likewise.
	* libgnarl/s-tasinf.ads: Likewise.
	* libgnarl/s-tasinf__linux.adb: Likewise.
	* libgnarl/s-tasinf__linux.ads: Likewise.
	* libgnarl/s-tasinf__mingw.adb: Likewise.
	* libgnarl/s-tasinf__mingw.ads: Likewise.
	* libgnarl/s-tasinf__solaris.adb: Likewise.
	* libgnarl/s-tasinf__solaris.ads: Likewise.
	* libgnarl/s-tasinf__vxworks.ads: Likewise.
	* libgnarl/s-tasini.adb: Likewise.
	* libgnarl/s-tasini.ads: Likewise.
	* libgnarl/s-taskin.adb: Likewise.
	* libgnarl/s-taskin.ads: Likewise.
	* libgnarl/s-taspri__dummy.ads: Likewise.
	* libgnarl/s-taspri__hpux-dce.ads: Likewise.
	* libgnarl/s-taspri__lynxos.ads: Likewise.
	* libgnarl/s-taspri__mingw.ads: Likewise.
	* libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
	* libgnarl/s-taspri__posix.ads: Likewise.
	* libgnarl/s-taspri__solaris.ads: Likewise.
	* libgnarl/s-taspri__vxworks.ads: Likewise.
	* libgnarl/s-tasque.adb: Likewise.
	* libgnarl/s-tasque.ads: Likewise.
	* libgnarl/s-tasren.adb: Likewise.
	* libgnarl/s-tasren.ads: Likewise.
	* libgnarl/s-tasres.ads: Likewise.
	* libgnarl/s-tassta.adb: Likewise.
	* libgnarl/s-tassta.ads: Likewise.
	* libgnarl/s-tasuti.adb: Likewise.
	* libgnarl/s-tasuti.ads: Likewise.
	* libgnarl/s-tataat.adb: Likewise.
	* libgnarl/s-tataat.ads: Likewise.
	* libgnarl/s-tpinop.adb: Likewise.
	* libgnarl/s-tpinop.ads: Likewise.
	* libgnarl/s-tpoaal.adb: Likewise.
	* libgnarl/s-tpoben.adb: Likewise.
	* libgnarl/s-tpoben.ads: Likewise.
	* libgnarl/s-tpobmu.adb: Likewise.
	* libgnarl/s-tpobmu.ads: Likewise.
	* libgnarl/s-tpobop.adb: Likewise.
	* libgnarl/s-tpobop.ads: Likewise.
	* libgnarl/s-tpopmo.adb: Likewise.
	* libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
	* libgnarl/s-tpopsp__posix.adb: Likewise.
	* libgnarl/s-tpopsp__solaris.adb: Likewise.
	* libgnarl/s-tpopsp__tls.adb: Likewise.
	* libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
	* libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
	* libgnarl/s-tpopsp__vxworks.adb: Likewise.
	* libgnarl/s-tporft.adb: Likewise.
	* libgnarl/s-tposen.adb: Likewise.
	* libgnarl/s-tposen.ads: Likewise.
	* libgnarl/s-vxwext.adb: Likewise.
	* libgnarl/s-vxwext.ads: Likewise.
	* libgnarl/s-vxwext__kernel-smp.adb: Likewise.
	* libgnarl/s-vxwext__kernel.adb: Likewise.
	* libgnarl/s-vxwext__kernel.ads: Likewise.
	* libgnarl/s-vxwext__noints.adb: Likewise.
	* libgnarl/s-vxwext__rtp-smp.adb: Likewise.
	* libgnarl/s-vxwext__rtp.adb: Likewise.
	* libgnarl/s-vxwext__rtp.ads: Likewise.
	* libgnarl/s-vxwext__vthreads.ads: Likewise.
	* libgnarl/s-vxwork__aarch64.ads: Likewise.
	* libgnarl/s-vxwork__arm.ads: Likewise.
	* libgnarl/s-vxwork__ppc.ads: Likewise.
	* libgnarl/s-vxwork__x86.ads: Likewise.
	* libgnarl/thread.c: Likewise.
	* libgnat/a-assert.adb: Likewise.
	* libgnat/a-assert.ads: Likewise.
	* libgnat/a-btgbso.adb: Likewise.
	* libgnat/a-btgbso.ads: Likewise.
	* libgnat/a-calari.adb: Likewise.
	* libgnat/a-calari.ads: Likewise.
	* libgnat/a-calcon.adb: Likewise.
	* libgnat/a-calcon.ads: Likewise.
	* libgnat/a-caldel.adb: Likewise.
	* libgnat/a-caldel.ads: Likewise.
	* libgnat/a-calend.adb: Likewise.
	* libgnat/a-calend.ads: Likewise.
	* libgnat/a-calfor.adb: Likewise.
	* libgnat/a-calfor.ads: Likewise.
	* libgnat/a-catizo.adb: Likewise.
	* libgnat/a-cbdlli.adb: Likewise.
	* libgnat/a-cbdlli.ads: Likewise.
	* libgnat/a-cbhama.adb: Likewise.
	* libgnat/a-cbhama.ads: Likewise.
	* libgnat/a-cbhase.adb: Likewise.
	* libgnat/a-cbhase.ads: Likewise.
	* libgnat/a-cbmutr.adb: Likewise.
	* libgnat/a-cbmutr.ads: Likewise.
	* libgnat/a-cborma.adb: Likewise.
	* libgnat/a-cborma.ads: Likewise.
	* libgnat/a-cborse.adb: Likewise.
	* libgnat/a-cborse.ads: Likewise.
	* libgnat/a-cbprqu.adb: Likewise.
	* libgnat/a-cbprqu.ads: Likewise.
	* libgnat/a-cbsyqu.adb: Likewise.
	* libgnat/a-cbsyqu.ads: Likewise.
	* libgnat/a-cdlili.adb: Likewise.
	* libgnat/a-cdlili.ads: Likewise.
	* libgnat/a-cfdlli.adb: Likewise.
	* libgnat/a-cfdlli.ads: Likewise.
	* libgnat/a-cfhama.adb: Likewise.
	* libgnat/a-cfhama.ads: Likewise.
	* libgnat/a-cfhase.adb: Likewise.
	* libgnat/a-cfhase.ads: Likewise.
	* libgnat/a-cfinve.adb: Likewise.
	* libgnat/a-cfinve.ads: Likewise.
	* libgnat/a-cforma.adb: Likewise.
	* libgnat/a-cforma.ads: Likewise.
	* libgnat/a-cforse.adb: Likewise.
	* libgnat/a-cforse.ads: Likewise.
	* libgnat/a-cgaaso.adb: Likewise.
	* libgnat/a-cgaaso.ads: Likewise.
	* libgnat/a-cgarso.adb: Likewise.
	* libgnat/a-cgcaso.adb: Likewise.
	* libgnat/a-chacon.adb: Likewise.
	* libgnat/a-chacon.ads: Likewise.
	* libgnat/a-chahan.adb: Likewise.
	* libgnat/a-chahan.ads: Likewise.
	* libgnat/a-chlat9.ads: Likewise.
	* libgnat/a-chtgbk.adb: Likewise.
	* libgnat/a-chtgbk.ads: Likewise.
	* libgnat/a-chtgbo.adb: Likewise.
	* libgnat/a-chtgbo.ads: Likewise.
	* libgnat/a-chtgke.adb: Likewise.
	* libgnat/a-chtgke.ads: Likewise.
	* libgnat/a-chtgop.adb: Likewise.
	* libgnat/a-chtgop.ads: Likewise.
	* libgnat/a-chzla1.ads: Likewise.
	* libgnat/a-chzla9.ads: Likewise.
	* libgnat/a-cidlli.adb: Likewise.
	* libgnat/a-cidlli.ads: Likewise.
	* libgnat/a-cihama.adb: Likewise.
	* libgnat/a-cihama.ads: Likewise.
	* libgnat/a-cihase.adb: Likewise.
	* libgnat/a-cihase.ads: Likewise.
	* libgnat/a-cimutr.adb: Likewise.
	* libgnat/a-cimutr.ads: Likewise.
	* libgnat/a-ciorma.adb: Likewise.
	* libgnat/a-ciorma.ads: Likewise.
	* libgnat/a-ciormu.adb: Likewise.
	* libgnat/a-ciormu.ads: Likewise.
	* libgnat/a-ciorse.adb: Likewise.
	* libgnat/a-ciorse.ads: Likewise.
	* libgnat/a-clrefi.adb: Likewise.
	* libgnat/a-clrefi.ads: Likewise.
	* libgnat/a-coboho.adb: Likewise.
	* libgnat/a-coboho.ads: Likewise.
	* libgnat/a-cobove.adb: Likewise.
	* libgnat/a-cobove.ads: Likewise.
	* libgnat/a-cofove.adb: Likewise.
	* libgnat/a-cofove.ads: Likewise.
	* libgnat/a-cofuba.adb: Likewise.
	* libgnat/a-cofuba.ads: Likewise.
	* libgnat/a-cofuma.adb: Likewise.
	* libgnat/a-cofuma.ads: Likewise.
	* libgnat/a-cofuse.adb: Likewise.
	* libgnat/a-cofuse.ads: Likewise.
	* libgnat/a-cofuve.adb: Likewise.
	* libgnat/a-cofuve.ads: Likewise.
	* libgnat/a-cogeso.adb: Likewise.
	* libgnat/a-cogeso.ads: Likewise.
	* libgnat/a-cohama.adb: Likewise.
	* libgnat/a-cohama.ads: Likewise.
	* libgnat/a-cohase.adb: Likewise.
	* libgnat/a-cohase.ads: Likewise.
	* libgnat/a-cohata.ads: Likewise.
	* libgnat/a-coinho.adb: Likewise.
	* libgnat/a-coinho.ads: Likewise.
	* libgnat/a-coinho__shared.adb: Likewise.
	* libgnat/a-coinho__shared.ads: Likewise.
	* libgnat/a-coinve.adb: Likewise.
	* libgnat/a-coinve.ads: Likewise.
	* libgnat/a-colien.adb: Likewise.
	* libgnat/a-colien.ads: Likewise.
	* libgnat/a-colire.adb: Likewise.
	* libgnat/a-colire.ads: Likewise.
	* libgnat/a-comlin.adb: Likewise.
	* libgnat/a-comlin.ads: Likewise.
	* libgnat/a-comutr.adb: Likewise.
	* libgnat/a-comutr.ads: Likewise.
	* libgnat/a-conhel.adb: Likewise.
	* libgnat/a-conhel.ads: Likewise.
	* libgnat/a-convec.adb: Likewise.
	* libgnat/a-convec.ads: Likewise.
	* libgnat/a-coorma.adb: Likewise.
	* libgnat/a-coorma.ads: Likewise.
	* libgnat/a-coormu.adb: Likewise.
	* libgnat/a-coormu.ads: Likewise.
	* libgnat/a-coorse.adb: Likewise.
	* libgnat/a-coorse.ads: Likewise.
	* libgnat/a-coprnu.adb: Likewise.
	* libgnat/a-coprnu.ads: Likewise.
	* libgnat/a-crbltr.ads: Likewise.
	* libgnat/a-crbtgk.adb: Likewise.
	* libgnat/a-crbtgk.ads: Likewise.
	* libgnat/a-crbtgo.adb: Likewise.
	* libgnat/a-crbtgo.ads: Likewise.
	* libgnat/a-crdlli.adb: Likewise.
	* libgnat/a-crdlli.ads: Likewise.
	* libgnat/a-csquin.ads: Likewise.
	* libgnat/a-cuprqu.adb: Likewise.
	* libgnat/a-cuprqu.ads: Likewise.
	* libgnat/a-cusyqu.adb: Likewise.
	* libgnat/a-cusyqu.ads: Likewise.
	* libgnat/a-cwila1.ads: Likewise.
	* libgnat/a-cwila9.ads: Likewise.
	* libgnat/a-decima.adb: Likewise.
	* libgnat/a-decima.ads: Likewise.
	* libgnat/a-dhfina.adb: Likewise.
	* libgnat/a-dhfina.ads: Likewise.
	* libgnat/a-diocst.adb: Likewise.
	* libgnat/a-diocst.ads: Likewise.
	* libgnat/a-direct.adb: Likewise.
	* libgnat/a-direct.ads: Likewise.
	* libgnat/a-direio.adb: Likewise.
	* libgnat/a-direio.ads: Likewise.
	* libgnat/a-dirval.adb: Likewise.
	* libgnat/a-dirval.ads: Likewise.
	* libgnat/a-dirval__mingw.adb: Likewise.
	* libgnat/a-einuoc.adb: Likewise.
	* libgnat/a-einuoc.ads: Likewise.
	* libgnat/a-elchha.adb: Likewise.
	* libgnat/a-elchha.ads: Likewise.
	* libgnat/a-elchha__vxworks-ppc-full.adb: Likewise.
	* libgnat/a-envvar.adb: Likewise.
	* libgnat/a-excach.adb: Likewise.
	* libgnat/a-except.adb: Likewise.
	* libgnat/a-except.ads: Likewise.
	* libgnat/a-excpol.adb: Likewise.
	* libgnat/a-excpol__abort.adb: Likewise.
	* libgnat/a-exctra.adb: Likewise.
	* libgnat/a-exctra.ads: Likewise.
	* libgnat/a-exexda.adb: Likewise.
	* libgnat/a-exexpr.adb: Likewise.
	* libgnat/a-exextr.adb: Likewise.
	* libgnat/a-exstat.adb: Likewise.
	* libgnat/a-finali.adb: Likewise.
	* libgnat/a-finali.ads: Likewise.
	* libgnat/a-locale.adb: Likewise.
	* libgnat/a-locale.ads: Likewise.
	* libgnat/a-nbnbin.adb: Likewise.
	* libgnat/a-nbnbin__gmp.adb: Likewise.
	* libgnat/a-nbnbre.adb: Likewise.
	* libgnat/a-ngcefu.adb: Likewise.
	* libgnat/a-ngcoar.adb: Likewise.
	* libgnat/a-ngcoty.adb: Likewise.
	* libgnat/a-ngcoty.ads: Likewise.
	* libgnat/a-ngelfu.adb: Likewise.
	* libgnat/a-ngelfu.ads: Likewise.
	* libgnat/a-ngrear.adb: Likewise.
	* libgnat/a-ngrear.ads: Likewise.
	* libgnat/a-nudira.adb: Likewise.
	* libgnat/a-nudira.ads: Likewise.
	* libgnat/a-nuflra.adb: Likewise.
	* libgnat/a-nuflra.ads: Likewise.
	* libgnat/a-numaux.ads: Likewise.
	* libgnat/a-numaux__darwin.adb: Likewise.
	* libgnat/a-numaux__darwin.ads: Likewise.
	* libgnat/a-numaux__libc-x86.ads: Likewise.
	* libgnat/a-numaux__vxworks.ads: Likewise.
	* libgnat/a-numaux__x86.adb: Likewise.
	* libgnat/a-numaux__x86.ads: Likewise.
	* libgnat/a-rbtgbk.adb: Likewise.
	* libgnat/a-rbtgbk.ads: Likewise.
	* libgnat/a-rbtgbo.adb: Likewise.
	* libgnat/a-rbtgbo.ads: Likewise.
	* libgnat/a-rbtgso.adb: Likewise.
	* libgnat/a-rbtgso.ads: Likewise.
	* libgnat/a-sbecin.adb: Likewise.
	* libgnat/a-sbecin.ads: Likewise.
	* libgnat/a-sbhcin.adb: Likewise.
	* libgnat/a-sbhcin.ads: Likewise.
	* libgnat/a-sblcin.adb: Likewise.
	* libgnat/a-sblcin.ads: Likewise.
	* libgnat/a-secain.adb: Likewise.
	* libgnat/a-secain.ads: Likewise.
	* libgnat/a-sequio.adb: Likewise.
	* libgnat/a-sequio.ads: Likewise.
	* libgnat/a-sfecin.ads: Likewise.
	* libgnat/a-sfhcin.ads: Likewise.
	* libgnat/a-sflcin.ads: Likewise.
	* libgnat/a-shcain.adb: Likewise.
	* libgnat/a-shcain.ads: Likewise.
	* libgnat/a-siocst.adb: Likewise.
	* libgnat/a-siocst.ads: Likewise.
	* libgnat/a-slcain.adb: Likewise.
	* libgnat/a-slcain.ads: Likewise.
	* libgnat/a-ssicst.adb: Likewise.
	* libgnat/a-ssicst.ads: Likewise.
	* libgnat/a-stboha.adb: Likewise.
	* libgnat/a-stmaco.ads: Likewise.
	* libgnat/a-storio.adb: Likewise.
	* libgnat/a-strbou.adb: Likewise.
	* libgnat/a-strbou.ads: Likewise.
	* libgnat/a-stream.adb: Likewise.
	* libgnat/a-stream.ads: Likewise.
	* libgnat/a-strfix.adb: Likewise.
	* libgnat/a-strhas.adb: Likewise.
	* libgnat/a-strmap.adb: Likewise.
	* libgnat/a-strmap.ads: Likewise.
	* libgnat/a-strsea.adb: Likewise.
	* libgnat/a-strsea.ads: Likewise.
	* libgnat/a-strsup.adb: Likewise.
	* libgnat/a-strsup.ads: Likewise.
	* libgnat/a-strunb.adb: Likewise.
	* libgnat/a-strunb.ads: Likewise.
	* libgnat/a-strunb__shared.adb: Likewise.
	* libgnat/a-strunb__shared.ads: Likewise.
	* libgnat/a-ststio.adb: Likewise.
	* libgnat/a-ststio.ads: Likewise.
	* libgnat/a-stunau.adb: Likewise.
	* libgnat/a-stunau.ads: Likewise.
	* libgnat/a-stunau__shared.adb: Likewise.
	* libgnat/a-stunha.adb: Likewise.
	* libgnat/a-stuten.adb: Likewise.
	* libgnat/a-stwibo.adb: Likewise.
	* libgnat/a-stwibo.ads: Likewise.
	* libgnat/a-stwifi.adb: Likewise.
	* libgnat/a-stwiha.adb: Likewise.
	* libgnat/a-stwima.adb: Likewise.
	* libgnat/a-stwima.ads: Likewise.
	* libgnat/a-stwise.adb: Likewise.
	* libgnat/a-stwise.ads: Likewise.
	* libgnat/a-stwisu.adb: Likewise.
	* libgnat/a-stwisu.ads: Likewise.
	* libgnat/a-stwiun.adb: Likewise.
	* libgnat/a-stwiun.ads: Likewise.
	* libgnat/a-stwiun__shared.adb: Likewise.
	* libgnat/a-stwiun__shared.ads: Likewise.
	* libgnat/a-stzbou.adb: Likewise.
	* libgnat/a-stzbou.ads: Likewise.
	* libgnat/a-stzfix.adb: Likewise.
	* libgnat/a-stzhas.adb: Likewise.
	* libgnat/a-stzmap.adb: Likewise.
	* libgnat/a-stzmap.ads: Likewise.
	* libgnat/a-stzsea.adb: Likewise.
	* libgnat/a-stzsea.ads: Likewise.
	* libgnat/a-stzsup.adb: Likewise.
	* libgnat/a-stzsup.ads: Likewise.
	* libgnat/a-stzunb.adb: Likewise.
	* libgnat/a-stzunb.ads: Likewise.
	* libgnat/a-stzunb__shared.adb: Likewise.
	* libgnat/a-stzunb__shared.ads: Likewise.
	* libgnat/a-suecin.adb: Likewise.
	* libgnat/a-suecin.ads: Likewise.
	* libgnat/a-suenco.adb: Likewise.
	* libgnat/a-suenst.adb: Likewise.
	* libgnat/a-suewst.adb: Likewise.
	* libgnat/a-suezst.adb: Likewise.
	* libgnat/a-suhcin.adb: Likewise.
	* libgnat/a-suhcin.ads: Likewise.
	* libgnat/a-sulcin.adb: Likewise.
	* libgnat/a-sulcin.ads: Likewise.
	* libgnat/a-suteio.adb: Likewise.
	* libgnat/a-suteio.ads: Likewise.
	* libgnat/a-suteio__shared.adb: Likewise.
	* libgnat/a-swbwha.adb: Likewise.
	* libgnat/a-swmwco.ads: Likewise.
	* libgnat/a-swunau.adb: Likewise.
	* libgnat/a-swunau.ads: Likewise.
	* libgnat/a-swunau__shared.adb: Likewise.
	* libgnat/a-swuwha.adb: Likewise.
	* libgnat/a-swuwti.adb: Likewise.
	* libgnat/a-swuwti.ads: Likewise.
	* libgnat/a-swuwti__shared.adb: Likewise.
	* libgnat/a-szbzha.adb: Likewise.
	* libgnat/a-szmzco.ads: Likewise.
	* libgnat/a-szunau.adb: Likewise.
	* libgnat/a-szunau.ads: Likewise.
	* libgnat/a-szunau__shared.adb: Likewise.
	* libgnat/a-szuzha.adb: Likewise.
	* libgnat/a-szuzti.adb: Likewise.
	* libgnat/a-szuzti.ads: Likewise.
	* libgnat/a-szuzti__shared.adb: Likewise.
	* libgnat/a-tags.adb: Likewise.
	* libgnat/a-tags.ads: Likewise.
	* libgnat/a-teioed.adb: Likewise.
	* libgnat/a-teioed.ads: Likewise.
	* libgnat/a-textio.adb: Likewise.
	* libgnat/a-textio.ads: Likewise.
	* libgnat/a-tiboio.adb: Likewise.
	* libgnat/a-ticoau.adb: Likewise.
	* libgnat/a-ticoau.ads: Likewise.
	* libgnat/a-ticoio.adb: Likewise.
	* libgnat/a-ticoio.ads: Likewise.
	* libgnat/a-tideau.adb: Likewise.
	* libgnat/a-tideau.ads: Likewise.
	* libgnat/a-tideio.adb: Likewise.
	* libgnat/a-tideio.ads: Likewise.
	* libgnat/a-tienau.adb: Likewise.
	* libgnat/a-tienau.ads: Likewise.
	* libgnat/a-tienio.adb: Likewise.
	* libgnat/a-tifiio.adb: Likewise.
	* libgnat/a-tiflau.adb: Likewise.
	* libgnat/a-tiflau.ads: Likewise.
	* libgnat/a-tiflio.adb: Likewise.
	* libgnat/a-tiflio.ads: Likewise.
	* libgnat/a-tigeau.adb: Likewise.
	* libgnat/a-tigeau.ads: Likewise.
	* libgnat/a-tigeli.adb: Likewise.
	* libgnat/a-tiinau.adb: Likewise.
	* libgnat/a-tiinau.ads: Likewise.
	* libgnat/a-tiinio.adb: Likewise.
	* libgnat/a-tiinio.ads: Likewise.
	* libgnat/a-timoau.adb: Likewise.
	* libgnat/a-timoau.ads: Likewise.
	* libgnat/a-timoio.adb: Likewise.
	* libgnat/a-timoio.ads: Likewise.
	* libgnat/a-tiocst.adb: Likewise.
	* libgnat/a-tiocst.ads: Likewise.
	* libgnat/a-tirsfi.adb: Likewise.
	* libgnat/a-tirsfi.ads: Likewise.
	* libgnat/a-titest.adb: Likewise.
	* libgnat/a-undesu.adb: Likewise.
	* libgnat/a-wichha.adb: Likewise.
	* libgnat/a-wichun.adb: Likewise.
	* libgnat/a-wichun.ads: Likewise.
	* libgnat/a-witeio.adb: Likewise.
	* libgnat/a-witeio.ads: Likewise.
	* libgnat/a-wrstfi.adb: Likewise.
	* libgnat/a-wrstfi.ads: Likewise.
	* libgnat/a-wtcoau.adb: Likewise.
	* libgnat/a-wtcoau.ads: Likewise.
	* libgnat/a-wtcoio.adb: Likewise.
	* libgnat/a-wtcstr.adb: Likewise.
	* libgnat/a-wtcstr.ads: Likewise.
	* libgnat/a-wtdeau.adb: Likewise.
	* libgnat/a-wtdeau.ads: Likewise.
	* libgnat/a-wtdeio.adb: Likewise.
	* libgnat/a-wtedit.adb: Likewise.
	* libgnat/a-wtedit.ads: Likewise.
	* libgnat/a-wtenau.adb: Likewise.
	* libgnat/a-wtenau.ads: Likewise.
	* libgnat/a-wtenio.adb: Likewise.
	* libgnat/a-wtfiio.adb: Likewise.
	* libgnat/a-wtflau.adb: Likewise.
	* libgnat/a-wtflau.ads: Likewise.
	* libgnat/a-wtflio.adb: Likewise.
	* libgnat/a-wtgeau.adb: Likewise.
	* libgnat/a-wtgeau.ads: Likewise.
	* libgnat/a-wtinau.adb: Likewise.
	* libgnat/a-wtinau.ads: Likewise.
	* libgnat/a-wtinio.adb: Likewise.
	* libgnat/a-wtmoau.adb: Likewise.
	* libgnat/a-wtmoau.ads: Likewise.
	* libgnat/a-wtmoio.adb: Likewise.
	* libgnat/a-wtmoio.ads: Likewise.
	* libgnat/a-wttest.adb: Likewise.
	* libgnat/a-wwboio.adb: Likewise.
	* libgnat/a-zchhan.adb: Likewise.
	* libgnat/a-zchuni.adb: Likewise.
	* libgnat/a-zchuni.ads: Likewise.
	* libgnat/a-zrstfi.adb: Likewise.
	* libgnat/a-zrstfi.ads: Likewise.
	* libgnat/a-ztcoau.adb: Likewise.
	* libgnat/a-ztcoio.adb: Likewise.
	* libgnat/a-ztcstr.adb: Likewise.
	* libgnat/a-ztcstr.ads: Likewise.
	* libgnat/a-ztdeau.adb: Likewise.
	* libgnat/a-ztdeau.ads: Likewise.
	* libgnat/a-ztdeio.adb: Likewise.
	* libgnat/a-ztedit.adb: Likewise.
	* libgnat/a-ztedit.ads: Likewise.
	* libgnat/a-ztenau.adb: Likewise.
	* libgnat/a-ztenau.ads: Likewise.
	* libgnat/a-ztenio.adb: Likewise.
	* libgnat/a-ztexio.adb: Likewise.
	* libgnat/a-ztexio.ads: Likewise.
	* libgnat/a-ztfiio.adb: Likewise.
	* libgnat/a-ztflau.adb: Likewise.
	* libgnat/a-ztflau.ads: Likewise.
	* libgnat/a-ztflio.adb: Likewise.
	* libgnat/a-ztgeau.adb: Likewise.
	* libgnat/a-ztgeau.ads: Likewise.
	* libgnat/a-ztinau.adb: Likewise.
	* libgnat/a-ztinau.ads: Likewise.
	* libgnat/a-ztinio.adb: Likewise.
	* libgnat/a-ztmoau.adb: Likewise.
	* libgnat/a-ztmoau.ads: Likewise.
	* libgnat/a-ztmoio.adb: Likewise.
	* libgnat/a-zttest.adb: Likewise.
	* libgnat/a-zzboio.adb: Likewise.
	* libgnat/g-allein.ads: Likewise.
	* libgnat/g-alleve.adb: Likewise.
	* libgnat/g-alleve.ads: Likewise.
	* libgnat/g-alleve__hard.adb: Likewise.
	* libgnat/g-alleve__hard.ads: Likewise.
	* libgnat/g-altcon.adb: Likewise.
	* libgnat/g-altcon.ads: Likewise.
	* libgnat/g-altive.ads: Likewise.
	* libgnat/g-alveop.adb: Likewise.
	* libgnat/g-alveop.ads: Likewise.
	* libgnat/g-alvety.ads: Likewise.
	* libgnat/g-alvevi.ads: Likewise.
	* libgnat/g-arrspl.adb: Likewise.
	* libgnat/g-arrspl.ads: Likewise.
	* libgnat/g-awk.adb: Likewise.
	* libgnat/g-awk.ads: Likewise.
	* libgnat/g-binenv.adb: Likewise.
	* libgnat/g-binenv.ads: Likewise.
	* libgnat/g-brapre.ads: Likewise.
	* libgnat/g-bubsor.adb: Likewise.
	* libgnat/g-bubsor.ads: Likewise.
	* libgnat/g-busora.adb: Likewise.
	* libgnat/g-busora.ads: Likewise.
	* libgnat/g-busorg.adb: Likewise.
	* libgnat/g-busorg.ads: Likewise.
	* libgnat/g-byorma.adb: Likewise.
	* libgnat/g-byorma.ads: Likewise.
	* libgnat/g-bytswa.adb: Likewise.
	* libgnat/g-bytswa.ads: Likewise.
	* libgnat/g-calend.adb: Likewise.
	* libgnat/g-calend.ads: Likewise.
	* libgnat/g-casuti.adb: Likewise.
	* libgnat/g-casuti.ads: Likewise.
	* libgnat/g-catiio.adb: Likewise.
	* libgnat/g-catiio.ads: Likewise.
	* libgnat/g-cgi.adb: Likewise.
	* libgnat/g-cgi.ads: Likewise.
	* libgnat/g-cgicoo.adb: Likewise.
	* libgnat/g-cgicoo.ads: Likewise.
	* libgnat/g-cgideb.adb: Likewise.
	* libgnat/g-cgideb.ads: Likewise.
	* libgnat/g-comlin.adb: Likewise.
	* libgnat/g-comlin.ads: Likewise.
	* libgnat/g-comver.adb: Likewise.
	* libgnat/g-comver.ads: Likewise.
	* libgnat/g-cppexc.adb: Likewise.
	* libgnat/g-cppexc.ads: Likewise.
	* libgnat/g-crc32.adb: Likewise.
	* libgnat/g-crc32.ads: Likewise.
	* libgnat/g-ctrl_c.adb: Likewise.
	* libgnat/g-ctrl_c.ads: Likewise.
	* libgnat/g-curexc.ads: Likewise.
	* libgnat/g-debpoo.adb: Likewise.
	* libgnat/g-debpoo.ads: Likewise.
	* libgnat/g-debuti.adb: Likewise.
	* libgnat/g-debuti.ads: Likewise.
	* libgnat/g-decstr.adb: Likewise.
	* libgnat/g-decstr.ads: Likewise.
	* libgnat/g-deutst.ads: Likewise.
	* libgnat/g-diopit.adb: Likewise.
	* libgnat/g-diopit.ads: Likewise.
	* libgnat/g-dirope.adb: Likewise.
	* libgnat/g-dirope.ads: Likewise.
	* libgnat/g-dynhta.adb: Likewise.
	* libgnat/g-dynhta.ads: Likewise.
	* libgnat/g-dyntab.adb: Likewise.
	* libgnat/g-dyntab.ads: Likewise.
	* libgnat/g-eacodu.adb: Likewise.
	* libgnat/g-encstr.adb: Likewise.
	* libgnat/g-encstr.ads: Likewise.
	* libgnat/g-enutst.ads: Likewise.
	* libgnat/g-excact.adb: Likewise.
	* libgnat/g-excact.ads: Likewise.
	* libgnat/g-except.ads: Likewise.
	* libgnat/g-exctra.adb: Likewise.
	* libgnat/g-exctra.ads: Likewise.
	* libgnat/g-expect.adb: Likewise.
	* libgnat/g-expect.ads: Likewise.
	* libgnat/g-exptty.adb: Likewise.
	* libgnat/g-exptty.ads: Likewise.
	* libgnat/g-flocon.ads: Likewise.
	* libgnat/g-forstr.adb: Likewise.
	* libgnat/g-forstr.ads: Likewise.
	* libgnat/g-graphs.adb: Likewise.
	* libgnat/g-graphs.ads: Likewise.
	* libgnat/g-heasor.adb: Likewise.
	* libgnat/g-heasor.ads: Likewise.
	* libgnat/g-hesora.adb: Likewise.
	* libgnat/g-hesora.ads: Likewise.
	* libgnat/g-hesorg.adb: Likewise.
	* libgnat/g-hesorg.ads: Likewise.
	* libgnat/g-htable.adb: Likewise.
	* libgnat/g-htable.ads: Likewise.
	* libgnat/g-io-put__vxworks.adb: Likewise.
	* libgnat/g-io.adb: Likewise.
	* libgnat/g-io.ads: Likewise.
	* libgnat/g-io_aux.adb: Likewise.
	* libgnat/g-io_aux.ads: Likewise.
	* libgnat/g-lists.adb: Likewise.
	* libgnat/g-lists.ads: Likewise.
	* libgnat/g-locfil.adb: Likewise.
	* libgnat/g-locfil.ads: Likewise.
	* libgnat/g-mbdira.adb: Likewise.
	* libgnat/g-mbdira.ads: Likewise.
	* libgnat/g-mbflra.adb: Likewise.
	* libgnat/g-mbflra.ads: Likewise.
	* libgnat/g-md5.adb: Likewise.
	* libgnat/g-md5.ads: Likewise.
	* libgnat/g-memdum.adb: Likewise.
	* libgnat/g-memdum.ads: Likewise.
	* libgnat/g-moreex.adb: Likewise.
	* libgnat/g-moreex.ads: Likewise.
	* libgnat/g-os_lib.adb: Likewise.
	* libgnat/g-os_lib.ads: Likewise.
	* libgnat/g-pehage.adb: Likewise.
	* libgnat/g-pehage.ads: Likewise.
	* libgnat/g-rannum.adb: Likewise.
	* libgnat/g-rannum.ads: Likewise.
	* libgnat/g-regexp.adb: Likewise.
	* libgnat/g-regexp.ads: Likewise.
	* libgnat/g-regist.adb: Likewise.
	* libgnat/g-regist.ads: Likewise.
	* libgnat/g-regpat.adb: Likewise.
	* libgnat/g-regpat.ads: Likewise.
	* libgnat/g-rewdat.adb: Likewise.
	* libgnat/g-rewdat.ads: Likewise.
	* libgnat/g-sechas.adb: Likewise.
	* libgnat/g-sechas.ads: Likewise.
	* libgnat/g-sehamd.adb: Likewise.
	* libgnat/g-sehamd.ads: Likewise.
	* libgnat/g-sehash.adb: Likewise.
	* libgnat/g-sehash.ads: Likewise.
	* libgnat/g-sercom.adb: Likewise.
	* libgnat/g-sercom.ads: Likewise.
	* libgnat/g-sercom__linux.adb: Likewise.
	* libgnat/g-sercom__mingw.adb: Likewise.
	* libgnat/g-sestin.ads: Likewise.
	* libgnat/g-sets.adb: Likewise.
	* libgnat/g-sets.ads: Likewise.
	* libgnat/g-sha1.adb: Likewise.
	* libgnat/g-sha1.ads: Likewise.
	* libgnat/g-sha224.ads: Likewise.
	* libgnat/g-sha256.ads: Likewise.
	* libgnat/g-sha384.ads: Likewise.
	* libgnat/g-sha512.ads: Likewise.
	* libgnat/g-shsh32.adb: Likewise.
	* libgnat/g-shsh32.ads: Likewise.
	* libgnat/g-shsh64.adb: Likewise.
	* libgnat/g-shsh64.ads: Likewise.
	* libgnat/g-shshco.adb: Likewise.
	* libgnat/g-shshco.ads: Likewise.
	* libgnat/g-soccon.ads: Likewise.
	* libgnat/g-socket.adb: Likewise.
	* libgnat/g-socket.ads: Likewise.
	* libgnat/g-socket__dummy.adb: Likewise.
	* libgnat/g-socket__dummy.ads: Likewise.
	* libgnat/g-socthi.adb: Likewise.
	* libgnat/g-socthi.ads: Likewise.
	* libgnat/g-socthi__dummy.adb: Likewise.
	* libgnat/g-socthi__dummy.ads: Likewise.
	* libgnat/g-socthi__mingw.adb: Likewise.
	* libgnat/g-socthi__mingw.ads: Likewise.
	* libgnat/g-socthi__vxworks.adb: Likewise.
	* libgnat/g-socthi__vxworks.ads: Likewise.
	* libgnat/g-soliop.ads: Likewise.
	* libgnat/g-soliop__lynxos.ads: Likewise.
	* libgnat/g-soliop__mingw.ads: Likewise.
	* libgnat/g-soliop__qnx.ads: Likewise.
	* libgnat/g-soliop__solaris.ads: Likewise.
	* libgnat/g-sothco.adb: Likewise.
	* libgnat/g-sothco.ads: Likewise.
	* libgnat/g-sothco__dummy.adb: Likewise.
	* libgnat/g-sothco__dummy.ads: Likewise.
	* libgnat/g-souinf.ads: Likewise.
	* libgnat/g-spchge.adb: Likewise.
	* libgnat/g-spchge.ads: Likewise.
	* libgnat/g-speche.adb: Likewise.
	* libgnat/g-speche.ads: Likewise.
	* libgnat/g-spipat.adb: Likewise.
	* libgnat/g-spipat.ads: Likewise.
	* libgnat/g-spitbo.adb: Likewise.
	* libgnat/g-spitbo.ads: Likewise.
	* libgnat/g-sptabo.ads: Likewise.
	* libgnat/g-sptain.ads: Likewise.
	* libgnat/g-sptavs.ads: Likewise.
	* libgnat/g-sse.ads: Likewise.
	* libgnat/g-ssvety.ads: Likewise.
	* libgnat/g-sthcso.adb: Likewise.
	* libgnat/g-stheme.adb: Likewise.
	* libgnat/g-strhas.ads: Likewise.
	* libgnat/g-string.adb: Likewise.
	* libgnat/g-string.ads: Likewise.
	* libgnat/g-strspl.ads: Likewise.
	* libgnat/g-stseme.adb: Likewise.
	* libgnat/g-stsifd__sockets.adb: Likewise.
	* libgnat/g-table.adb: Likewise.
	* libgnat/g-table.ads: Likewise.
	* libgnat/g-tasloc.adb: Likewise.
	* libgnat/g-tasloc.ads: Likewise.
	* libgnat/g-timsta.adb: Likewise.
	* libgnat/g-timsta.ads: Likewise.
	* libgnat/g-traceb.adb: Likewise.
	* libgnat/g-traceb.ads: Likewise.
	* libgnat/g-trasym.adb: Likewise.
	* libgnat/g-trasym.ads: Likewise.
	* libgnat/g-tty.adb: Likewise.
	* libgnat/g-tty.ads: Likewise.
	* libgnat/g-u3spch.adb: Likewise.
	* libgnat/g-u3spch.ads: Likewise.
	* libgnat/g-utf_32.adb: Likewise.
	* libgnat/g-utf_32.ads: Likewise.
	* libgnat/g-wispch.adb: Likewise.
	* libgnat/g-wispch.ads: Likewise.
	* libgnat/g-wistsp.ads: Likewise.
	* libgnat/g-zspche.adb: Likewise.
	* libgnat/g-zspche.ads: Likewise.
	* libgnat/g-zstspl.ads: Likewise.
	* libgnat/gnat.ads: Likewise.
	* libgnat/i-c.adb: Likewise.
	* libgnat/i-cexten.ads: Likewise.
	* libgnat/i-cobol.adb: Likewise.
	* libgnat/i-cobol.ads: Likewise.
	* libgnat/i-cpoint.adb: Likewise.
	* libgnat/i-cpoint.ads: Likewise.
	* libgnat/i-cstrea.adb: Likewise.
	* libgnat/i-cstrea.ads: Likewise.
	* libgnat/i-cstrin.adb: Likewise.
	* libgnat/i-cstrin.ads: Likewise.
	* libgnat/i-fortra.adb: Likewise.
	* libgnat/i-pacdec.adb: Likewise.
	* libgnat/i-pacdec.ads: Likewise.
	* libgnat/i-vxwoio.adb: Likewise.
	* libgnat/i-vxwoio.ads: Likewise.
	* libgnat/i-vxwork.ads: Likewise.
	* libgnat/i-vxwork__x86.ads: Likewise.
	* libgnat/interfac.ads: Likewise.
	* libgnat/memtrack.adb: Likewise.
	* libgnat/s-addima.adb: Likewise.
	* libgnat/s-addima.ads: Likewise.
	* libgnat/s-addope.adb: Likewise.
	* libgnat/s-addope.ads: Likewise.
	* libgnat/s-aotase.adb: Likewise.
	* libgnat/s-aotase.ads: Likewise.
	* libgnat/s-arit64.adb: Likewise.
	* libgnat/s-arit64.ads: Likewise.
	* libgnat/s-assert.adb: Likewise.
	* libgnat/s-assert.ads: Likewise.
	* libgnat/s-atacco.adb: Likewise.
	* libgnat/s-atacco.ads: Likewise.
	* libgnat/s-atocou.adb: Likewise.
	* libgnat/s-atocou.ads: Likewise.
	* libgnat/s-atocou__builtin.adb: Likewise.
	* libgnat/s-atocou__x86.adb: Likewise.
	* libgnat/s-atoope.ads: Likewise.
	* libgnat/s-atopar.adb: Likewise.
	* libgnat/s-atopar.ads: Likewise.
	* libgnat/s-atopex.adb: Likewise.
	* libgnat/s-atopex.ads: Likewise.
	* libgnat/s-atopri.adb: Likewise.
	* libgnat/s-atopri.ads: Likewise.
	* libgnat/s-auxdec.adb: Likewise.
	* libgnat/s-auxdec.ads: Likewise.
	* libgnat/s-bignum.adb: Likewise.
	* libgnat/s-bignum.ads: Likewise.
	* libgnat/s-bitfie.ads: Likewise.
	* libgnat/s-bitops.adb: Likewise.
	* libgnat/s-bitops.ads: Likewise.
	* libgnat/s-bituti.adb: Likewise.
	* libgnat/s-bituti.ads: Likewise.
	* libgnat/s-boarop.ads: Likewise.
	* libgnat/s-boustr.adb: Likewise.
	* libgnat/s-boustr.ads: Likewise.
	* libgnat/s-bytswa.ads: Likewise.
	* libgnat/s-carsi8.adb: Likewise.
	* libgnat/s-carsi8.ads: Likewise.
	* libgnat/s-carun8.adb: Likewise.
	* libgnat/s-carun8.ads: Likewise.
	* libgnat/s-casi16.adb: Likewise.
	* libgnat/s-casi16.ads: Likewise.
	* libgnat/s-casi32.adb: Likewise.
	* libgnat/s-casi32.ads: Likewise.
	* libgnat/s-casi64.adb: Likewise.
	* libgnat/s-casi64.ads: Likewise.
	* libgnat/s-casuti.adb: Likewise.
	* libgnat/s-casuti.ads: Likewise.
	* libgnat/s-caun16.adb: Likewise.
	* libgnat/s-caun16.ads: Likewise.
	* libgnat/s-caun32.adb: Likewise.
	* libgnat/s-caun32.ads: Likewise.
	* libgnat/s-caun64.adb: Likewise.
	* libgnat/s-caun64.ads: Likewise.
	* libgnat/s-chepoo.ads: Likewise.
	* libgnat/s-commun.adb: Likewise.
	* libgnat/s-commun.ads: Likewise.
	* libgnat/s-conca2.adb: Likewise.
	* libgnat/s-conca2.ads: Likewise.
	* libgnat/s-conca3.adb: Likewise.
	* libgnat/s-conca3.ads: Likewise.
	* libgnat/s-conca4.adb: Likewise.
	* libgnat/s-conca4.ads: Likewise.
	* libgnat/s-conca5.adb: Likewise.
	* libgnat/s-conca5.ads: Likewise.
	* libgnat/s-conca6.adb: Likewise.
	* libgnat/s-conca6.ads: Likewise.
	* libgnat/s-conca7.adb: Likewise.
	* libgnat/s-conca7.ads: Likewise.
	* libgnat/s-conca8.adb: Likewise.
	* libgnat/s-conca8.ads: Likewise.
	* libgnat/s-conca9.adb: Likewise.
	* libgnat/s-conca9.ads: Likewise.
	* libgnat/s-crc32.adb: Likewise.
	* libgnat/s-crc32.ads: Likewise.
	* libgnat/s-crtl.ads: Likewise.
	* libgnat/s-dfmkio.ads: Likewise.
	* libgnat/s-dfmopr.ads: Likewise.
	* libgnat/s-dgmgop.ads: Likewise.
	* libgnat/s-diflio.adb: Likewise.
	* libgnat/s-diflio.ads: Likewise.
	* libgnat/s-diflmk.ads: Likewise.
	* libgnat/s-digemk.ads: Likewise.
	* libgnat/s-diinio.adb: Likewise.
	* libgnat/s-diinio.ads: Likewise.
	* libgnat/s-dilomk.ads: Likewise.
	* libgnat/s-dim.ads: Likewise.
	* libgnat/s-dimkio.ads: Likewise.
	* libgnat/s-dimmks.ads: Likewise.
	* libgnat/s-direio.adb: Likewise.
	* libgnat/s-direio.ads: Likewise.
	* libgnat/s-dlmkio.ads: Likewise.
	* libgnat/s-dlmopr.ads: Likewise.
	* libgnat/s-dmotpr.ads: Likewise.
	* libgnat/s-dsaser.ads: Likewise.
	* libgnat/s-dwalin.adb: Likewise.
	* libgnat/s-dwalin.ads: Likewise.
	* libgnat/s-elaall.adb: Likewise.
	* libgnat/s-elaall.ads: Likewise.
	* libgnat/s-excdeb.adb: Likewise.
	* libgnat/s-excdeb.ads: Likewise.
	* libgnat/s-except.adb: Likewise.
	* libgnat/s-except.ads: Likewise.
	* libgnat/s-excmac__arm.adb: Likewise.
	* libgnat/s-excmac__arm.ads: Likewise.
	* libgnat/s-excmac__gcc.adb: Likewise.
	* libgnat/s-excmac__gcc.ads: Likewise.
	* libgnat/s-exctab.adb: Likewise.
	* libgnat/s-exctab.ads: Likewise.
	* libgnat/s-exctra.adb: Likewise.
	* libgnat/s-exctra.ads: Likewise.
	* libgnat/s-exnint.adb: Likewise.
	* libgnat/s-exnint.ads: Likewise.
	* libgnat/s-exnllf.adb: Likewise.
	* libgnat/s-exnllf.ads: Likewise.
	* libgnat/s-exnlli.adb: Likewise.
	* libgnat/s-exnlli.ads: Likewise.
	* libgnat/s-expint.adb: Likewise.
	* libgnat/s-expint.ads: Likewise.
	* libgnat/s-explli.adb: Likewise.
	* libgnat/s-explli.ads: Likewise.
	* libgnat/s-expllu.adb: Likewise.
	* libgnat/s-expllu.ads: Likewise.
	* libgnat/s-expmod.adb: Likewise.
	* libgnat/s-expmod.ads: Likewise.
	* libgnat/s-expuns.adb: Likewise.
	* libgnat/s-expuns.ads: Likewise.
	* libgnat/s-fatflt.ads: Likewise.
	* libgnat/s-fatgen.adb: Likewise.
	* libgnat/s-fatgen.ads: Likewise.
	* libgnat/s-fatlfl.ads: Likewise.
	* libgnat/s-fatllf.ads: Likewise.
	* libgnat/s-fatsfl.ads: Likewise.
	* libgnat/s-ficobl.ads: Likewise.
	* libgnat/s-filatt.ads: Likewise.
	* libgnat/s-fileio.adb: Likewise.
	* libgnat/s-fileio.ads: Likewise.
	* libgnat/s-finmas.adb: Likewise.
	* libgnat/s-finmas.ads: Likewise.
	* libgnat/s-finroo.adb: Likewise.
	* libgnat/s-finroo.ads: Likewise.
	* libgnat/s-flocon.adb: Likewise.
	* libgnat/s-flocon.ads: Likewise.
	* libgnat/s-flocon__none.adb: Likewise.
	* libgnat/s-fore.adb: Likewise.
	* libgnat/s-fore.ads: Likewise.
	* libgnat/s-gearop.adb: Likewise.
	* libgnat/s-gearop.ads: Likewise.
	* libgnat/s-genbig.adb: Likewise.
	* libgnat/s-genbig.ads: Likewise.
	* libgnat/s-geveop.adb: Likewise.
	* libgnat/s-geveop.ads: Likewise.
	* libgnat/s-gloloc.adb: Likewise.
	* libgnat/s-gloloc.ads: Likewise.
	* libgnat/s-gloloc__mingw.adb: Likewise.
	* libgnat/s-htable.adb: Likewise.
	* libgnat/s-htable.ads: Likewise.
	* libgnat/s-imenne.adb: Likewise.
	* libgnat/s-imenne.ads: Likewise.
	* libgnat/s-imgbiu.adb: Likewise.
	* libgnat/s-imgbiu.ads: Likewise.
	* libgnat/s-imgboo.adb: Likewise.
	* libgnat/s-imgboo.ads: Likewise.
	* libgnat/s-imgcha.adb: Likewise.
	* libgnat/s-imgcha.ads: Likewise.
	* libgnat/s-imgdec.adb: Likewise.
	* libgnat/s-imgdec.ads: Likewise.
	* libgnat/s-imgenu.adb: Likewise.
	* libgnat/s-imgenu.ads: Likewise.
	* libgnat/s-imgint.adb: Likewise.
	* libgnat/s-imgint.ads: Likewise.
	* libgnat/s-imgllb.adb: Likewise.
	* libgnat/s-imgllb.ads: Likewise.
	* libgnat/s-imglld.adb: Likewise.
	* libgnat/s-imglld.ads: Likewise.
	* libgnat/s-imglli.adb: Likewise.
	* libgnat/s-imglli.ads: Likewise.
	* libgnat/s-imgllu.adb: Likewise.
	* libgnat/s-imgllu.ads: Likewise.
	* libgnat/s-imgllw.adb: Likewise.
	* libgnat/s-imgllw.ads: Likewise.
	* libgnat/s-imgrea.adb: Likewise.
	* libgnat/s-imgrea.ads: Likewise.
	* libgnat/s-imguns.adb: Likewise.
	* libgnat/s-imguns.ads: Likewise.
	* libgnat/s-imgwch.adb: Likewise.
	* libgnat/s-imgwch.ads: Likewise.
	* libgnat/s-imgwiu.adb: Likewise.
	* libgnat/s-imgwiu.ads: Likewise.
	* libgnat/s-io.adb: Likewise.
	* libgnat/s-io.ads: Likewise.
	* libgnat/s-llflex.ads: Likewise.
	* libgnat/s-maccod.ads: Likewise.
	* libgnat/s-mantis.adb: Likewise.
	* libgnat/s-mantis.ads: Likewise.
	* libgnat/s-mastop.adb: Likewise.
	* libgnat/s-mastop.ads: Likewise.
	* libgnat/s-memcop.ads: Likewise.
	* libgnat/s-memory.adb: Likewise.
	* libgnat/s-memory.ads: Likewise.
	* libgnat/s-mmap.adb: Likewise.
	* libgnat/s-mmap.ads: Likewise.
	* libgnat/s-mmauni__long.ads: Likewise.
	* libgnat/s-mmosin__mingw.adb: Likewise.
	* libgnat/s-mmosin__mingw.ads: Likewise.
	* libgnat/s-mmosin__unix.adb: Likewise.
	* libgnat/s-mmosin__unix.ads: Likewise.
	* libgnat/s-multip.adb: Likewise.
	* libgnat/s-objrea.adb: Likewise.
	* libgnat/s-objrea.ads: Likewise.
	* libgnat/s-optide.adb: Likewise.
	* libgnat/s-os_lib.adb: Likewise.
	* libgnat/s-os_lib.ads: Likewise.
	* libgnat/s-osprim.ads: Likewise.
	* libgnat/s-osprim__darwin.adb: Likewise.
	* libgnat/s-osprim__lynxos.ads: Likewise.
	* libgnat/s-osprim__mingw.adb: Likewise.
	* libgnat/s-osprim__posix.adb: Likewise.
	* libgnat/s-osprim__posix2008.adb: Likewise.
	* libgnat/s-osprim__rtems.adb: Likewise.
	* libgnat/s-osprim__solaris.adb: Likewise.
	* libgnat/s-osprim__unix.adb: Likewise.
	* libgnat/s-osprim__vxworks.adb: Likewise.
	* libgnat/s-osprim__x32.adb: Likewise.
	* libgnat/s-osvers__vxworks-653.ads: Likewise.
	* libgnat/s-pack03.adb: Likewise.
	* libgnat/s-pack03.ads: Likewise.
	* libgnat/s-pack05.adb: Likewise.
	* libgnat/s-pack05.ads: Likewise.
	* libgnat/s-pack06.adb: Likewise.
	* libgnat/s-pack06.ads: Likewise.
	* libgnat/s-pack07.adb: Likewise.
	* libgnat/s-pack07.ads: Likewise.
	* libgnat/s-pack09.adb: Likewise.
	* libgnat/s-pack09.ads: Likewise.
	* libgnat/s-pack10.adb: Likewise.
	* libgnat/s-pack10.ads: Likewise.
	* libgnat/s-pack11.adb: Likewise.
	* libgnat/s-pack11.ads: Likewise.
	* libgnat/s-pack12.adb: Likewise.
	* libgnat/s-pack12.ads: Likewise.
	* libgnat/s-pack13.adb: Likewise.
	* libgnat/s-pack13.ads: Likewise.
	* libgnat/s-pack14.adb: Likewise.
	* libgnat/s-pack14.ads: Likewise.
	* libgnat/s-pack15.adb: Likewise.
	* libgnat/s-pack15.ads: Likewise.
	* libgnat/s-pack17.adb: Likewise.
	* libgnat/s-pack17.ads: Likewise.
	* libgnat/s-pack18.adb: Likewise.
	* libgnat/s-pack18.ads: Likewise.
	* libgnat/s-pack19.adb: Likewise.
	* libgnat/s-pack19.ads: Likewise.
	* libgnat/s-pack20.adb: Likewise.
	* libgnat/s-pack20.ads: Likewise.
	* libgnat/s-pack21.adb: Likewise.
	* libgnat/s-pack21.ads: Likewise.
	* libgnat/s-pack22.adb: Likewise.
	* libgnat/s-pack22.ads: Likewise.
	* libgnat/s-pack23.adb: Likewise.
	* libgnat/s-pack23.ads: Likewise.
	* libgnat/s-pack24.adb: Likewise.
	* libgnat/s-pack24.ads: Likewise.
	* libgnat/s-pack25.adb: Likewise.
	* libgnat/s-pack25.ads: Likewise.
	* libgnat/s-pack26.adb: Likewise.
	* libgnat/s-pack26.ads: Likewise.
	* libgnat/s-pack27.adb: Likewise.
	* libgnat/s-pack27.ads: Likewise.
	* libgnat/s-pack28.adb: Likewise.
	* libgnat/s-pack28.ads: Likewise.
	* libgnat/s-pack29.adb: Likewise.
	* libgnat/s-pack29.ads: Likewise.
	* libgnat/s-pack30.adb: Likewise.
	* libgnat/s-pack30.ads: Likewise.
	* libgnat/s-pack31.adb: Likewise.
	* libgnat/s-pack31.ads: Likewise.
	* libgnat/s-pack33.adb: Likewise.
	* libgnat/s-pack33.ads: Likewise.
	* libgnat/s-pack34.adb: Likewise.
	* libgnat/s-pack34.ads: Likewise.
	* libgnat/s-pack35.adb: Likewise.
	* libgnat/s-pack35.ads: Likewise.
	* libgnat/s-pack36.adb: Likewise.
	* libgnat/s-pack36.ads: Likewise.
	* libgnat/s-pack37.adb: Likewise.
	* libgnat/s-pack37.ads: Likewise.
	* libgnat/s-pack38.adb: Likewise.
	* libgnat/s-pack38.ads: Likewise.
	* libgnat/s-pack39.adb: Likewise.
	* libgnat/s-pack39.ads: Likewise.
	* libgnat/s-pack40.adb: Likewise.
	* libgnat/s-pack40.ads: Likewise.
	* libgnat/s-pack41.adb: Likewise.
	* libgnat/s-pack41.ads: Likewise.
	* libgnat/s-pack42.adb: Likewise.
	* libgnat/s-pack42.ads: Likewise.
	* libgnat/s-pack43.adb: Likewise.
	* libgnat/s-pack43.ads: Likewise.
	* libgnat/s-pack44.adb: Likewise.
	* libgnat/s-pack44.ads: Likewise.
	* libgnat/s-pack45.adb: Likewise.
	* libgnat/s-pack45.ads: Likewise.
	* libgnat/s-pack46.adb: Likewise.
	* libgnat/s-pack46.ads: Likewise.
	* libgnat/s-pack47.adb: Likewise.
	* libgnat/s-pack47.ads: Likewise.
	* libgnat/s-pack48.adb: Likewise.
	* libgnat/s-pack48.ads: Likewise.
	* libgnat/s-pack49.adb: Likewise.
	* libgnat/s-pack49.ads: Likewise.
	* libgnat/s-pack50.adb: Likewise.
	* libgnat/s-pack50.ads: Likewise.
	* libgnat/s-pack51.adb: Likewise.
	* libgnat/s-pack51.ads: Likewise.
	* libgnat/s-pack52.adb: Likewise.
	* libgnat/s-pack52.ads: Likewise.
	* libgnat/s-pack53.adb: Likewise.
	* libgnat/s-pack53.ads: Likewise.
	* libgnat/s-pack54.adb: Likewise.
	* libgnat/s-pack54.ads: Likewise.
	* libgnat/s-pack55.adb: Likewise.
	* libgnat/s-pack55.ads: Likewise.
	* libgnat/s-pack56.adb: Likewise.
	* libgnat/s-pack56.ads: Likewise.
	* libgnat/s-pack57.adb: Likewise.
	* libgnat/s-pack57.ads: Likewise.
	* libgnat/s-pack58.adb: Likewise.
	* libgnat/s-pack58.ads: Likewise.
	* libgnat/s-pack59.adb: Likewise.
	* libgnat/s-pack59.ads: Likewise.
	* libgnat/s-pack60.adb: Likewise.
	* libgnat/s-pack60.ads: Likewise.
	* libgnat/s-pack61.adb: Likewise.
	* libgnat/s-pack61.ads: Likewise.
	* libgnat/s-pack62.adb: Likewise.
	* libgnat/s-pack62.ads: Likewise.
	* libgnat/s-pack63.adb: Likewise.
	* libgnat/s-pack63.ads: Likewise.
	* libgnat/s-parame.adb: Likewise.
	* libgnat/s-parame.ads: Likewise.
	* libgnat/s-parame__ae653.ads: Likewise.
	* libgnat/s-parame__hpux.ads: Likewise.
	* libgnat/s-parame__rtems.adb: Likewise.
	* libgnat/s-parame__vxworks.adb: Likewise.
	* libgnat/s-parame__vxworks.ads: Likewise.
	* libgnat/s-parint.adb: Likewise.
	* libgnat/s-parint.ads: Likewise.
	* libgnat/s-pooglo.adb: Likewise.
	* libgnat/s-pooglo.ads: Likewise.
	* libgnat/s-pooloc.adb: Likewise.
	* libgnat/s-pooloc.ads: Likewise.
	* libgnat/s-poosiz.adb: Likewise.
	* libgnat/s-poosiz.ads: Likewise.
	* libgnat/s-powtab.ads: Likewise.
	* libgnat/s-purexc.ads: Likewise.
	* libgnat/s-rannum.adb: Likewise.
	* libgnat/s-rannum.ads: Likewise.
	* libgnat/s-ransee.adb: Likewise.
	* libgnat/s-ransee.ads: Likewise.
	* libgnat/s-regexp.adb: Likewise.
	* libgnat/s-regexp.ads: Likewise.
	* libgnat/s-regpat.adb: Likewise.
	* libgnat/s-regpat.ads: Likewise.
	* libgnat/s-resfil.adb: Likewise.
	* libgnat/s-resfil.ads: Likewise.
	* libgnat/s-restri.adb: Likewise.
	* libgnat/s-restri.ads: Likewise.
	* libgnat/s-rident.ads: Likewise.
	* libgnat/s-rpc.adb: Likewise.
	* libgnat/s-rpc.ads: Likewise.
	* libgnat/s-scaval.adb: Likewise.
	* libgnat/s-scaval.ads: Likewise.
	* libgnat/s-secsta.adb: Likewise.
	* libgnat/s-secsta.ads: Likewise.
	* libgnat/s-sequio.adb: Likewise.
	* libgnat/s-sequio.ads: Likewise.
	* libgnat/s-shasto.adb: Likewise.
	* libgnat/s-shasto.ads: Likewise.
	* libgnat/s-soflin.adb: Likewise.
	* libgnat/s-soflin.ads: Likewise.
	* libgnat/s-soliin.adb: Likewise.
	* libgnat/s-soliin.ads: Likewise.
	* libgnat/s-sopco3.adb: Likewise.
	* libgnat/s-sopco3.ads: Likewise.
	* libgnat/s-sopco4.adb: Likewise.
	* libgnat/s-sopco4.ads: Likewise.
	* libgnat/s-sopco5.adb: Likewise.
	* libgnat/s-sopco5.ads: Likewise.
	* libgnat/s-spsufi.adb: Likewise.
	* libgnat/s-spsufi.ads: Likewise.
	* libgnat/s-stache.adb: Likewise.
	* libgnat/s-stache.ads: Likewise.
	* libgnat/s-stalib.adb: Likewise.
	* libgnat/s-stalib.ads: Likewise.
	* libgnat/s-stausa.adb: Likewise.
	* libgnat/s-stausa.ads: Likewise.
	* libgnat/s-stchop.adb: Likewise.
	* libgnat/s-stchop.ads: Likewise.
	* libgnat/s-stchop__limit.ads: Likewise.
	* libgnat/s-stchop__rtems.adb: Likewise.
	* libgnat/s-stchop__vxworks.adb: Likewise.
	* libgnat/s-stoele.adb: Likewise.
	* libgnat/s-stoele.ads: Likewise.
	* libgnat/s-stopoo.adb: Likewise.
	* libgnat/s-stopoo.ads: Likewise.
	* libgnat/s-stposu.adb: Likewise.
	* libgnat/s-stposu.ads: Likewise.
	* libgnat/s-stratt.adb: Likewise.
	* libgnat/s-stratt.ads: Likewise.
	* libgnat/s-stratt__xdr.adb: Likewise.
	* libgnat/s-strcom.adb: Likewise.
	* libgnat/s-strcom.ads: Likewise.
	* libgnat/s-strhas.adb: Likewise.
	* libgnat/s-strhas.ads: Likewise.
	* libgnat/s-string.adb: Likewise.
	* libgnat/s-string.ads: Likewise.
	* libgnat/s-strops.adb: Likewise.
	* libgnat/s-strops.ads: Likewise.
	* libgnat/s-ststop.adb: Likewise.
	* libgnat/s-ststop.ads: Likewise.
	* libgnat/s-tasloc.adb: Likewise.
	* libgnat/s-tasloc.ads: Likewise.
	* libgnat/s-thread.ads: Likewise.
	* libgnat/s-thread__ae653.adb: Likewise.
	* libgnat/s-traceb.adb: Likewise.
	* libgnat/s-traceb.ads: Likewise.
	* libgnat/s-traceb__hpux.adb: Likewise.
	* libgnat/s-traceb__mastop.adb: Likewise.
	* libgnat/s-traent.adb: Likewise.
	* libgnat/s-traent.ads: Likewise.
	* libgnat/s-trasym.adb: Likewise.
	* libgnat/s-trasym.ads: Likewise.
	* libgnat/s-trasym__dwarf.adb: Likewise.
	* libgnat/s-tsmona.adb: Likewise.
	* libgnat/s-tsmona__linux.adb: Likewise.
	* libgnat/s-tsmona__mingw.adb: Likewise.
	* libgnat/s-unstyp.ads: Likewise.
	* libgnat/s-utf_32.adb: Likewise.
	* libgnat/s-utf_32.ads: Likewise.
	* libgnat/s-valboo.adb: Likewise.
	* libgnat/s-valboo.ads: Likewise.
	* libgnat/s-valcha.adb: Likewise.
	* libgnat/s-valcha.ads: Likewise.
	* libgnat/s-valdec.adb: Likewise.
	* libgnat/s-valdec.ads: Likewise.
	* libgnat/s-valenu.adb: Likewise.
	* libgnat/s-valenu.ads: Likewise.
	* libgnat/s-valint.adb: Likewise.
	* libgnat/s-valint.ads: Likewise.
	* libgnat/s-vallld.adb: Likewise.
	* libgnat/s-vallld.ads: Likewise.
	* libgnat/s-vallli.adb: Likewise.
	* libgnat/s-vallli.ads: Likewise.
	* libgnat/s-valllu.adb: Likewise.
	* libgnat/s-valllu.ads: Likewise.
	* libgnat/s-valrea.adb: Likewise.
	* libgnat/s-valrea.ads: Likewise.
	* libgnat/s-valuns.adb: Likewise.
	* libgnat/s-valuns.ads: Likewise.
	* libgnat/s-valuti.adb: Likewise.
	* libgnat/s-valuti.ads: Likewise.
	* libgnat/s-valwch.adb: Likewise.
	* libgnat/s-valwch.ads: Likewise.
	* libgnat/s-veboop.adb: Likewise.
	* libgnat/s-veboop.ads: Likewise.
	* libgnat/s-vector.ads: Likewise.
	* libgnat/s-vercon.adb: Likewise.
	* libgnat/s-vercon.ads: Likewise.
	* libgnat/s-wchcnv.adb: Likewise.
	* libgnat/s-wchcnv.ads: Likewise.
	* libgnat/s-wchcon.adb: Likewise.
	* libgnat/s-wchcon.ads: Likewise.
	* libgnat/s-wchjis.adb: Likewise.
	* libgnat/s-wchjis.ads: Likewise.
	* libgnat/s-wchstw.adb: Likewise.
	* libgnat/s-wchstw.ads: Likewise.
	* libgnat/s-wchwts.adb: Likewise.
	* libgnat/s-wchwts.ads: Likewise.
	* libgnat/s-widboo.adb: Likewise.
	* libgnat/s-widboo.ads: Likewise.
	* libgnat/s-widcha.adb: Likewise.
	* libgnat/s-widcha.ads: Likewise.
	* libgnat/s-widenu.adb: Likewise.
	* libgnat/s-widenu.ads: Likewise.
	* libgnat/s-widlli.adb: Likewise.
	* libgnat/s-widlli.ads: Likewise.
	* libgnat/s-widllu.adb: Likewise.
	* libgnat/s-widllu.ads: Likewise.
	* libgnat/s-widwch.adb: Likewise.
	* libgnat/s-widwch.ads: Likewise.
	* libgnat/s-win32.ads: Likewise.
	* libgnat/s-winext.ads: Likewise.
	* libgnat/s-wwdcha.adb: Likewise.
	* libgnat/s-wwdcha.ads: Likewise.
	* libgnat/s-wwdenu.adb: Likewise.
	* libgnat/s-wwdenu.ads: Likewise.
	* libgnat/s-wwdwch.adb: Likewise.
	* libgnat/s-wwdwch.ads: Likewise.
	* libgnat/system-aix.ads: Likewise.
	* libgnat/system-darwin-arm.ads: Likewise.
	* libgnat/system-darwin-ppc.ads: Likewise.
	* libgnat/system-darwin-x86.ads: Likewise.
	* libgnat/system-djgpp.ads: Likewise.
	* libgnat/system-dragonfly-x86_64.ads: Likewise.
	* libgnat/system-freebsd.ads: Likewise.
	* libgnat/system-hpux-ia64.ads: Likewise.
	* libgnat/system-hpux.ads: Likewise.
	* libgnat/system-linux-alpha.ads: Likewise.
	* libgnat/system-linux-arm.ads: Likewise.
	* libgnat/system-linux-hppa.ads: Likewise.
	* libgnat/system-linux-ia64.ads: Likewise.
	* libgnat/system-linux-m68k.ads: Likewise.
	* libgnat/system-linux-mips.ads: Likewise.
	* libgnat/system-linux-ppc.ads: Likewise.
	* libgnat/system-linux-riscv.ads: Likewise.
	* libgnat/system-linux-s390.ads: Likewise.
	* libgnat/system-linux-sh4.ads: Likewise.
	* libgnat/system-linux-sparc.ads: Likewise.
	* libgnat/system-linux-x86.ads: Likewise.
	* libgnat/system-lynxos178-ppc.ads: Likewise.
	* libgnat/system-lynxos178-x86.ads: Likewise.
	* libgnat/system-mingw.ads: Likewise.
	* libgnat/system-qnx-aarch64.ads: Likewise.
	* libgnat/system-rtems.ads: Likewise.
	* libgnat/system-solaris-sparc.ads: Likewise.
	* libgnat/system-solaris-x86.ads: Likewise.
	* libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-arm-rtp.ads: Likewise.
	* libgnat/system-vxworks-arm.ads: Likewise.
	* libgnat/system-vxworks-e500-kernel.ads: Likewise.
	* libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-e500-rtp.ads: Likewise.
	* libgnat/system-vxworks-e500-vthread.ads: Likewise.
	* libgnat/system-vxworks-ppc-kernel.ads: Likewise.
	* libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
	* libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-ppc-rtp.ads: Likewise.
	* libgnat/system-vxworks-ppc-vthread.ads: Likewise.
	* libgnat/system-vxworks-ppc.ads: Likewise.
	* libgnat/system-vxworks-x86-kernel.ads: Likewise.
	* libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-x86-rtp.ads: Likewise.
	* libgnat/system-vxworks-x86-vthread.ads: Likewise.
	* libgnat/system-vxworks-x86.ads: Likewise.
	* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-aarch64.ads: Likewise.
	* libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-arm.ads: Likewise.
	* libgnat/system-vxworks7-e500-kernel.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp.ads: Likewise.
	* libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
	* libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
	* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-x86-kernel.ads: Likewise.
	* libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-x86-rtp.ads: Likewise.
	* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
	* libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
	* libgnat/system.ads: Likewise.
	* link.c: Likewise.
	* live.adb: Likewise.
	* live.ads: Likewise.
	* locales.c: Likewise.
	* make.adb: Likewise.
	* make.ads: Likewise.
	* make_util.adb: Likewise.
	* make_util.ads: Likewise.
	* makeusg.adb: Likewise.
	* makeusg.ads: Likewise.
	* mdll-fil.adb: Likewise.
	* mdll-fil.ads: Likewise.
	* mdll-utl.adb: Likewise.
	* mdll-utl.ads: Likewise.
	* mdll.adb: Likewise.
	* mdll.ads: Likewise.
	* mingw32.h: Likewise.
	* mkdir.c: Likewise.
	* namet-sp.adb: Likewise.
	* namet-sp.ads: Likewise.
	* namet.adb: Likewise.
	* namet.ads: Likewise.
	* namet.h: Likewise.
	* nlists.adb: Likewise.
	* nlists.ads: Likewise.
	* nlists.h: Likewise.
	* opt.adb: Likewise.
	* opt.ads: Likewise.
	* osint-b.adb: Likewise.
	* osint-b.ads: Likewise.
	* osint-c.adb: Likewise.
	* osint-c.ads: Likewise.
	* osint-l.adb: Likewise.
	* osint-l.ads: Likewise.
	* osint-m.adb: Likewise.
	* osint-m.ads: Likewise.
	* osint.adb: Likewise.
	* osint.ads: Likewise.
	* output.adb: Likewise.
	* output.ads: Likewise.
	* par-ch10.adb: Likewise.
	* par-ch11.adb: Likewise.
	* par-ch12.adb: Likewise.
	* par-ch13.adb: Likewise.
	* par-ch2.adb: Likewise.
	* par-ch3.adb: Likewise.
	* par-ch4.adb: Likewise.
	* par-ch5.adb: Likewise.
	* par-ch6.adb: Likewise.
	* par-ch7.adb: Likewise.
	* par-ch8.adb: Likewise.
	* par-ch9.adb: Likewise.
	* par-endh.adb: Likewise.
	* par-labl.adb: Likewise.
	* par-load.adb: Likewise.
	* par-prag.adb: Likewise.
	* par-sync.adb: Likewise.
	* par-tchk.adb: Likewise.
	* par-util.adb: Likewise.
	* par.adb: Likewise.
	* par.ads: Likewise.
	* par_sco.adb: Likewise.
	* par_sco.ads: Likewise.
	* pprint.adb: Likewise.
	* pprint.ads: Likewise.
	* prep.adb: Likewise.
	* prep.ads: Likewise.
	* prepcomp.adb: Likewise.
	* prepcomp.ads: Likewise.
	* put_scos.adb: Likewise.
	* put_scos.ads: Likewise.
	* raise-gcc.c: Likewise.
	* raise.c: Likewise.
	* raise.h: Likewise.
	* repinfo-input.adb: Likewise.
	* repinfo-input.ads: Likewise.
	* repinfo.adb: Likewise.
	* repinfo.ads: Likewise.
	* repinfo.h: Likewise.
	* restrict.adb: Likewise.
	* restrict.ads: Likewise.
	* rident.ads: Likewise.
	* rtfinal.c: Likewise.
	* rtinit.c: Likewise.
	* rtsfind.adb: Likewise.
	* rtsfind.ads: Likewise.
	* runtime.h: Likewise.
	* s-oscons-tmplt.c: Likewise.
	* sa_messages.adb: Likewise.
	* sa_messages.ads: Likewise.
	* scans.adb: Likewise.
	* scans.ads: Likewise.
	* scil_ll.adb: Likewise.
	* scil_ll.ads: Likewise.
	* scn.adb: Likewise.
	* scn.ads: Likewise.
	* scng.adb: Likewise.
	* scng.ads: Likewise.
	* scos.adb: Likewise.
	* scos.ads: Likewise.
	* scos.h: Likewise.
	* sdefault.ads: Likewise.
	* seh_init.c: Likewise.
	* sem.adb: Likewise.
	* sem.ads: Likewise.
	* sem_aggr.adb: Likewise.
	* sem_aggr.ads: Likewise.
	* sem_attr.adb: Likewise.
	* sem_attr.ads: Likewise.
	* sem_aux.adb: Likewise.
	* sem_aux.ads: Likewise.
	* sem_case.adb: Likewise.
	* sem_case.ads: Likewise.
	* sem_cat.adb: Likewise.
	* sem_cat.ads: Likewise.
	* sem_ch10.adb: Likewise.
	* sem_ch10.ads: Likewise.
	* sem_ch11.adb: Likewise.
	* sem_ch11.ads: Likewise.
	* sem_ch12.adb: Likewise.
	* sem_ch12.ads: Likewise.
	* sem_ch13.adb: Likewise.
	* sem_ch13.ads: Likewise.
	* sem_ch2.adb: Likewise.
	* sem_ch2.ads: Likewise.
	* sem_ch3.adb: Likewise.
	* sem_ch3.ads: Likewise.
	* sem_ch4.adb: Likewise.
	* sem_ch4.ads: Likewise.
	* sem_ch5.adb: Likewise.
	* sem_ch5.ads: Likewise.
	* sem_ch6.adb: Likewise.
	* sem_ch6.ads: Likewise.
	* sem_ch7.adb: Likewise.
	* sem_ch7.ads: Likewise.
	* sem_ch8.adb: Likewise.
	* sem_ch8.ads: Likewise.
	* sem_ch9.adb: Likewise.
	* sem_ch9.ads: Likewise.
	* sem_dim.adb: Likewise.
	* sem_dim.ads: Likewise.
	* sem_disp.adb: Likewise.
	* sem_disp.ads: Likewise.
	* sem_dist.adb: Likewise.
	* sem_dist.ads: Likewise.
	* sem_elab.adb: Likewise.
	* sem_elab.ads: Likewise.
	* sem_elim.adb: Likewise.
	* sem_elim.ads: Likewise.
	* sem_eval.adb: Likewise.
	* sem_eval.ads: Likewise.
	* sem_intr.adb: Likewise.
	* sem_intr.ads: Likewise.
	* sem_mech.adb: Likewise.
	* sem_mech.ads: Likewise.
	* sem_prag.adb: Likewise.
	* sem_prag.ads: Likewise.
	* sem_res.adb: Likewise.
	* sem_res.ads: Likewise.
	* sem_scil.adb: Likewise.
	* sem_scil.ads: Likewise.
	* sem_smem.adb: Likewise.
	* sem_smem.ads: Likewise.
	* sem_type.adb: Likewise.
	* sem_type.ads: Likewise.
	* sem_util.adb: Likewise.
	* sem_util.ads: Likewise.
	* sem_warn.adb: Likewise.
	* sem_warn.ads: Likewise.
	* set_targ.adb: Likewise.
	* set_targ.ads: Likewise.
	* sfn_scan.adb: Likewise.
	* sfn_scan.ads: Likewise.
	* sigtramp-armdroid.c: Likewise.
	* sigtramp-ios.c: Likewise.
	* sigtramp-qnx.c: Likewise.
	* sigtramp-vxworks.c: Likewise.
	* sigtramp.h: Likewise.
	* sinfo-cn.adb: Likewise.
	* sinfo-cn.ads: Likewise.
	* sinfo.adb: Likewise.
	* sinfo.ads: Likewise.
	* sinput-c.adb: Likewise.
	* sinput-c.ads: Likewise.
	* sinput-d.adb: Likewise.
	* sinput-d.ads: Likewise.
	* sinput-l.adb: Likewise.
	* sinput-l.ads: Likewise.
	* sinput.adb: Likewise.
	* sinput.ads: Likewise.
	* socket.c: Likewise.
	* spark_xrefs.adb: Likewise.
	* spark_xrefs.ads: Likewise.
	* sprint.adb: Likewise.
	* sprint.ads: Likewise.
	* stand.adb: Likewise.
	* stand.ads: Likewise.
	* stringt.adb: Likewise.
	* stringt.ads: Likewise.
	* stringt.h: Likewise.
	* style.adb: Likewise.
	* style.ads: Likewise.
	* styleg.adb: Likewise.
	* styleg.ads: Likewise.
	* stylesw.adb: Likewise.
	* stylesw.ads: Likewise.
	* switch-b.adb: Likewise.
	* switch-b.ads: Likewise.
	* switch-c.adb: Likewise.
	* switch-c.ads: Likewise.
	* switch-m.adb: Likewise.
	* switch-m.ads: Likewise.
	* switch.adb: Likewise.
	* switch.ads: Likewise.
	* symbols.adb: Likewise.
	* symbols.ads: Likewise.
	* sysdep.c: Likewise.
	* table.adb: Likewise.
	* table.ads: Likewise.
	* targext.c: Likewise.
	* targparm.adb: Likewise.
	* targparm.ads: Likewise.
	* tbuild.adb: Likewise.
	* tbuild.ads: Likewise.
	* tempdir.adb: Likewise.
	* tempdir.ads: Likewise.
	* terminals.c: Likewise.
	* tracebak.c: Likewise.
	* tree_gen.adb: Likewise.
	* tree_gen.ads: Likewise.
	* tree_in.adb: Likewise.
	* tree_in.ads: Likewise.
	* tree_io.adb: Likewise.
	* tree_io.ads: Likewise.
	* treepr.adb: Likewise.
	* treepr.ads: Likewise.
	* ttypes.ads: Likewise.
	* types.adb: Likewise.
	* types.ads: Likewise.
	* types.h: Likewise.
	* uintp.adb: Likewise.
	* uintp.ads: Likewise.
	* uintp.h: Likewise.
	* uname.adb: Likewise.
	* uname.ads: Likewise.
	* urealp.adb: Likewise.
	* urealp.ads: Likewise.
	* urealp.h: Likewise.
	* usage.adb: Likewise.
	* usage.ads: Likewise.
	* validsw.adb: Likewise.
	* validsw.ads: Likewise.
	* warnsw.adb: Likewise.
	* warnsw.ads: Likewise.
	* widechar.adb: Likewise.
	* widechar.ads: Likewise.
	* xeinfo.adb: Likewise.
	* xnmake.adb: Likewise.
	* xoscons.adb: Likewise.
	* xr_tabls.adb: Likewise.
	* xr_tabls.ads: Likewise.
	* xref_lib.adb: Likewise.
	* xref_lib.ads: Likewise.
	* xsinfo.adb: Likewise.
	* xsnamest.adb: Likewise.
	* xtreeprs.adb: Likewise.
	* xutil.adb: Likewise.
	* xutil.ads: Likewise.

2020-06-02  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): Set attribute
	Expansion_Delayed on aggregates that initialize an object that
	has aspect alignment or address clause. Done to allow ther
	initialization by means of multiple assignments.
	* exp_ch3.adb (Expand_N_Object_Declaration): Resolve delayed
	aggregates. This patch complements the patch applied to
	sem_ch3.adb

2020-06-02  Javier Miranda  <miranda@adacore.com>

	* sem_util.adb (Ensure_Minimum_Decoration): New subprogram that
	ensures the minimum decoration required by
	Requires_Transient_Scope() to provide its functionality when the
	entity is not frozen.

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

	* exp_ch4.adb (Expand_N_Op_Divide): Remove code dealing with
	the Treat_Fixed_As_Integer flag.
	(Expand_N_Op_Multiply): Likewise.
	* exp_fixd.adb (Build_Divide): Do the division in an integer
	type long enough to hold both operands and convert the result
	to the type of the LHS.  Do not set Treat_Fixed_As_Integer.
	(Build_Multiply): Do not set Treat_Fixed_As_Integer.
	(Build_Rem): Likewise.
	* sem_ch4.adb (Analyze_Arithmetic_Op): Remove code dealing with
	the Treat_Fixed_As_Integer flag.
	(Check_Arithmetic_Pair): Likewise.
	* sinfo.ads (Treat_Fixed_As_Integer): Delete.
	(N_Has_Treat_Fixed_As_Integer): Likewise.
	(Set_Treat_Fixed_As_Integer): Likewise.
	* sinfo.adb (Treat_Fixed_As_Integer): Likewise.
	(Set_Treat_Fixed_As_Integer): Likewise.
	* sprint.ads (Syntax Extensions): Remove '#' special character.
	* sprint.adb (Process_TFAI_RR_Flags): Delete.
	(Sprint_Node_Actual) <N_Op_Divide>: Print '@' manually.
	<N_Op_Multiply>: Likewise.
	<N_Op_Mod>: Do not print '#'.
	<N_Op_Rem>: Likewise.

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

	* exp_aggr.adb (Others_Check): In the positional case, use the
	general expression for the comparison only when needed.
	* exp_attr.adb (Expand_Fpt_Attribute;): Use a simple conversion
	to the target type instead of an unchecked conversion to the
	base type to do the range check, as in the other cases.
	(Expand_N_Attribute_Reference) <Attribute_Storage_Size>: Do the
	Max operation in the type of the storage size variable, and use
	Convert_To as in the other cases.
	* tbuild.adb (Convert_To): Do not get rid of an intermediate
	conversion to Universal_Integer here...
	* sem_res.adb  (Simplify_Type_Conversion): ...but here instead.

2020-06-02  Bob Duff  <duff@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Update documentation
	for --RM-style-spacing.

2020-06-02  Bob Duff  <duff@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
	--[no-]compact switch.

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

	* exp_aggr.adb (Build_Array_Aggr_Code): Set the type of the PAT
	on the zero used to clear the array.
	* exp_attr.adb (Expand_N_Attribute_Reference)
	<Attribute_Alignment>: In the CW case, directly convert from the
	alignment's type to the target type if the parent is an
	unchecked conversion.
	* sem_res.adb (Set_String_Literal_Subtype): In the dynamic case,
	use the general expression for the upper bound only when needed.
	Set the base type of the index as the type of the low bound.
	(Simplify_Type_Conversion): Do an intermediate conversion to the
	root type of the target type if the operand is an integer
	literal.
	* tbuild.adb (Convert_To): Get rid of an intermediate conversion
	to Universal_Integer if the inner expression has integer tyoe.
	* libgnat/a-sequio.adb (Byte_Swap): Make use of an equivalent
	static expression in the case statement.

2020-06-02  Thomas Quinot  <quinot@adacore.com>

	* par_sco.adb (Traverse_Degenerate_Subprogram): Set statement
	code to 'X'.
	* scos.ads: Update comment documenting SCO data.

2020-06-02  Gary Dismukes  <dismukes@adacore.com>

	* exp_unst.adb (Register_Subprogram): Test for Address_Taken (in
	addition to the existing test for In_Synchonized_Unit) when
	deciding whether to reset the Reachable flag on all subprograms
	enclosing the subprogram being registered.

2020-06-02  Justin Squirek  <squirek@adacore.com>

	* sem_ch6.adb (Check_Return_Obj_Accessibility): Avoid use of
	parent node pointers so we are not relying on expansion done in
	GNATprove mode.

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

	* exp_attr.adb (Expand_N_Attribute_Reference)
	<Attribute_Alignment>: Adjust comment and compare against proper
	type.

2020-06-02  Gary Dismukes  <dismukes@adacore.com>

	* exp_unst.adb (Visit_Node): When visiting array attribute
	nodes, apply Get_Referenced_Object to the attribute prefix, to
	handle prefixes denoting renamed objects by picking up the Etype
	of the renamed object rather than the possibly unconstrained
	nominal subtype of the renaming declaration's Entity.
	* sem_util.ads (Get_Referenced_Object): Update comment to
	clearly indicate that any kind of node can be passed to this
	function.
	* sem_util.adb (Get_Referenced_Object): Add test of Is_Object to
	the condition, to allow for passing names that denote types and
	subtypes.

2020-06-02  Bob Duff  <duff@adacore.com>

	* snames.ads-tmpl: Add comments explaining that enumeration
	types have to be kept in synch with subtypes of Name_Id.

2020-06-02  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Check_No_Hidden_State): Remove dead code.

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

	* exp_pakd.adb (Expand_Packed_Bit_Reference): Change type of
	reference from Universal_Integer to Standard_Natural.

2020-06-02  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Collect_States_And_Objects): Call itself on
	declaration of nested packages; append abstract states
	one-by-one, so that in recursive call we do not overwrite the
	ones that have been already collected.

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

	* exp_atag.ads (Build_Inherit_Predefined_Prims): Change type
	of Num_Predef_Prim parameter from Int to Nat.
	* exp_atag.adb (Build_Range): New procedure.
	(Build_Val): Likewise.
	(Build_CW_Membership): Call Build_Val.
	(Build_Get_Predefined_Prim_Op_Address): Likewise.
	(Build_Inherit_CPP_Prims): Likewise.
	(Build_Get_Prim_Op_Address): Likewise.
	(Build_Set_Predefined_Prim_Op_Address): Likewise.
	(Build_Inherit_Prims): Call Build_Range.
	(Build_Inherit_Predefined_Prims): Likewise.  Change type of
	Num_Predef_Prim parameter from Int to Nat.

2020-06-02  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb: Two typo fixes.

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

	* sem_ch3.adb (Replace_Discriminants): Preserve the Etype of the
	Name of N_Variant_Part nodes when rewriting it.

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

	* sem_ch3.adb (Signed_Integer_Type_Declaration): Change the type
	of the bounds from Universal_Integer to Implicit_Base.

2020-06-02  Arnaud Charlet  <charlet@adacore.com>

	* bcheck.adb, binde.adb, bindo-diagnostics.adb, checks.adb,
	exp_aggr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,
	exp_ch9.adb, gnatname.adb, sem_case.adb, sem_ch13.adb,
	sem_ch5.adb, sem_prag.adb, sem_util.adb, uintp.adb, urealp.adb,
	xoscons.adb, xr_tabls.adb, xref_lib.adb: Initialize objects more
	explicitly and add corresponding assertions. Remove dead code.
	Also add a few Annotate pragmas to help static analysis.
	* libgnat/a-caldel.adb, libgnat/a-calend.adb,
	libgnat/a-ngcoty.adb, libgnat/a-ngelfu.adb,
	libgnat/a-ngrear.adb, libgnat/a-strfix.adb,
	libgnat/g-calend.adb, libgnat/g-catiio.adb,
	libgnat/g-comlin.adb, libgnat/g-debpoo.adb,
	libgnat/g-dirope.adb, libgnat/g-hesorg.adb,
	libgnat/g-pehage.adb, libgnat/g-socket.adb, libgnat/i-cobol.adb,
	libgnat/s-dwalin.adb, libgnat/s-dwalin.ads,
	libgnat/s-fatgen.adb, libgnat/s-gearop.adb,
	libgnat/s-genbig.adb, libgnat/s-imgrea.adb,
	libgnat/s-os_lib.adb, libgnat/s-rannum.adb,
	libgnat/s-regpat.adb, libgnat/s-trasym__dwarf.adb,
	libgnat/s-valrea.adb: Ditto.

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

	* sem_ch3.adb (Replace_Components): Rename into...
	(Replace_Discriminants): ...this.  Replace girder discriminants
	with non-girder ones.  Do not replace components.
	* sem_ch13.adb (Check_Record_Representation_Clause): Deal with
	non-girder discriminants correctly.

2020-06-02  Piotr Trojanek  <trojanek@adacore.com>

	* lib-xref-spark_specific.adb (Create_Heap): use a new variant
	of Name_Enter to directly converts String to Make_Id.

2020-06-02  Gary Dismukes  <dismukes@adacore.com>

	* exp_attr.adb, par-ch4.adb, par-util.adb, scans.ads, scng.adb,
	sem_attr.adb, sem_ch4.adb, sinfo.ads: Typo corrections and minor
	reformatting.

2020-06-02  Arnaud Charlet  <charlet@adacore.com>

	* snames.ads-tmpl (Name_Img, Attribute_Img): Make it an
	attribute returning renamable functions.

2020-06-02  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb, sem_prag.ads (Set_Overflow_Mode): New procedure
	to set overflow mode.

2020-06-02  Piotr Trojanek  <trojanek@adacore.com>

	* contracts.adb, einfo.adb, exp_ch9.adb, sem_ch12.adb,
	sem_ch4.adb, sem_ch7.adb, sem_ch8.adb, sem_elab.adb,
	sem_type.adb, sem_util.adb: Reuse Is_Package_Or_Generic_Package
	where possible (similarly, reuse Is_Concurrent_Type if it was
	possible in the same expressions).

2020-05-30  Arnaud Charlet  <charlet@adacore.com>

	* Makefile.rtl (ADA_INCLUDE_SRCS): Replace Makefile.adalib by
	libada.gpr and associated project files.
	(g-debpoo.o): Add missing rule to ensure subprograms are not reordered.
	(setup-rts): Add generation of libgnat/libgnarl.lst.
	(LIBGNAT_SRCS): Remove thread.c which is part of libgnarl.
	* tracebak.c, tb-gcc.c: Merged the two files to simplify dependencies.
	* libgnarl/libgnarl.gpr, libgnat/libada.gpr,
	libgnat/libgnat.gpr, libgnat/libgnat_common.gpr: New files.
	* doc/gnat_ugn/the_gnat_compilation_model.rst: Makefile.adalib
	replaced by libada.gpr.
	* libgnat/system-mingw.ads: Remove obsolete comment.
	* gcc-interface/Makefile.in: Remove dependency on tb-gcc.c.

2020-05-27  Martin Liska  <mliska@suse.cz>

	* gnatvsn.ads: Bump Library_Version to 11.

2020-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/95333
	* gcc-interface/decl.c (gnat_to_gnu_param): Never make a variant of
	the type.

2020-05-26  Alexandre Oliva  <oliva@adacore.com>

	* gcc-interface/lang-specs.h (ADA_DUMPS_OPTIONS): Define in
	terms of DUMPS_OPTIONS.  Replace occurrences of %{d*} %:dumps
	with it.

2020-05-26  Alexandre Oliva  <oliva@adacore.com>

	* gcc-interface/lang-specs.h: Drop auxbase and auxbase-strip.
	Use %:dumps instead of -dumpbase.  Add %w for implicit .s
	primary output.
	* switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
	dumpbase-ext.  Drop auxbase and auxbase-strip.

2020-05-25  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Check_No_Hidden_State): Stop propagation at
	first block/task/entry.

2020-05-25  Yannick Moy  <moy@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst: Document
	changes to pragmas Compile_Time_Error/Compile_Time_Warning.
	* gnat_rm.texi: Regenerate.
	* libgnat/g-bytswa.adb: Change uses of Compile_Time_Error to
	Compile_Time_Warning, as the actual expression may not always be
	known statically.
	* sem_prag.adb (Analyze_Pragma): Handle differently pragma
	Compile_Time_Error in both compilation and in GNATprove mode.
	(Validate_Compile_Time_Warning_Or_Error): Issue an error or
	warning when the expression is not known at compile time.
	* usage.adb: Add missing documentation for warning switches _c
	and _r.
	* warnsw.ads: Update comment.

2020-05-25  Justin Squirek  <squirek@adacore.com>

	* sem_ch6.adb (Check_Return_Obj_Accessibility): Use original
	node to avoid looking at expansion done in GNATprove mode.

2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Add new local variable
	and use it throughout the function.
	<E_Variable>: Rename local variable and adjust accordingly.  In the
	case of a renaming, materialize the entity if the renamed object is
	an N_Expression_With_Actions node.
	<E_Procedure>: Use Alias accessor function consistently.

2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/misc.c (get_array_bit_stride): Get to the debug type,
	if any, before calling gnat_get_array_descr_info.

2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Tidy up.
	(build_variant_list): Add GNAT_VARIANT_PART parameter and annotate its
	variants if it is present.  Adjust the recursive call by passing the
	variant subpart of variants, if any.
	(copy_and_substitute_in_layout): Rename GNU_SUBST_LIST to SUBST_LIST
	and adjust throughout.  For a type, pass the variant part in the
	call to build_variant_list.

2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_component_type): Cap the alignment
	of the component type according to the component size.

2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Add a
	description of the various types associated with the unconstrained
	type.  Declare the fat pointer earlier.  Set the current function
	as context on the template type, and the fat pointer type on the
	array type.  Always mark the fat pointer type as artificial and set
	it as the context for the pointer type to the array.  Also reuse
	GNU_ENTITY_NAME.  Finish up the unconstrained type at the very end.
	* gcc-interface/misc.c (gnat_get_array_descr_info): Do not handle
	fat pointer types and tidy up accordingly.
	* gcc-interface/utils.c (build_unc_object_type): Do not set the
	context on the template type.
	(gnat_pushdecl): Mark the canonical fat pointer types as artificial.

2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (operand_type): New static inline function.
	* gcc-interface/trans.c (gnat_to_gnu): Do not suppress conversion
	to the resulty type at the end for array types.
	* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Do not
	remove conversions between array types on the LHS.

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

	* sem_aggr.ads (Is_Single_Aggregate): New function.
	* sem_aggr.adb (Is_Others_Aggregate): Use local variable.
	(Is_Single_Aggregate): New function to recognize an aggregate with
	a single association containing a single choice.
	* fe.h (Is_Others_Aggregate): Delete.
	(Is_Single_Aggregate): New declaration.
	* gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Call
	Is_Single_Aggregate instead of Is_Others_Aggregate.

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

	PR ada/95035
	* gcc-interface/utils.c (packable_type_hasher::equal): Also compare
	the scalar storage order.
	(hash_packable_type): Also hash the scalar storage order.
	(hash_pad_type): Likewise.

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

	* gcc-interface/*.[ch]: Update copyright year.

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

	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Assert that
	the prefix is not a type.

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

	* gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Rename into...
	(TYPE_BIT_PACKED_ARRAY_TYPE_P): ...this.
	(TYPE_IS_PACKED_ARRAY_TYPE_P): Rename into...
	(BIT_PACKED_ARRAY_TYPE_P): ...this.
	(TYPE_IMPL_PACKED_ARRAY_P): Adjust to above renaming.
	* gcc-interface/gigi.h (maybe_pad_type): Remove IS_USER_TYPE parameter.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Adjust call
	to maybe_pad_type.
	<E_Ordinary_Fixed_Point_Type>: Remove const qualifiers for tree.
	<E_Signed_Integer_Subtype>: Remove redundant test and redundant call
	to associate_original_type_to_packed_array.  Turn test into assertion.
	Call associate_original_type_to_packed_array and modify gnu_entity_name
	accordingly.  Explicitly set the parallel type for GNAT encodings.
	Call create_type_decl in the misaligned case before maybe_pad_type.
	<E_Array_Type>: Do not use the name of the implementation type for a
	packed array when not using GNAT encodings.
	<E_Array_Subtype>: Move around setting flags. Use the result of the
	call to associate_original_type_to_packed_array for gnu_entity_name.
	<E_Record_Subtype>: Create XVS type and XVZ variable only if debug
	info is requested for the type.
	Call create_type_decl if a padded type was created for a type entity.
	(gnat_to_gnu_component_type): Use local variable and adjust calls to
	maybe_pad_type.
	(gnat_to_gnu_subprog_type): Adjust call to maybe_pad_type.
	(gnat_to_gnu_field): Likewise.
	(validate_size): Adjust to renaming of macro.
	(set_rm_size): Likewise.
	(associate_original_type_to_packed_array): Adjust return type and
	return the name of the original type if GNAT encodings are not used.
	* gcc-interface/misc.c (gnat_get_debug_typ): Remove obsolete stuff.
	(gnat_get_fixed_point_type_info): Remove const qualifiers for tree.
	(gnat_get_array_descr_info): Likewise and set variables lazily.
	Remove call to maybe_debug_type.  Simplify a few computations.
	(enumerate_modes): Remove const qualifier for tree.
	* gcc-interface/utils.c (make_type_from_size): Adjust to renaming.
	(maybe_pad_type): Remove IS_USER_TYPE parameter and adjust.  Remove
	specific code for implementation types for packed arrays.
	(compute_deferred_decl_context): Remove const qualifier for tree.
	(convert): Adjust call to maybe_pad_type.
	(unchecked_convert): Likewise.
	* gcc-interface/utils2.c (is_simple_additive_expressio): Likewise.

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

	* gcc-interface/utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Use
	build_nonshared_array_type to build the common type and declare it.

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

	* gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the user
	for -fnon-call-exceptions in default mode.

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

	* gcc-interface/trans.c (lvalue_required_p) <N_Selected_Component>:
	Merge with N_Slice.
	<N_Allocator>: Move to...
	(lvalue_for_aggregate_p): ...here.  New function.
	(Identifier_to_gnu): For an identifier with aggregate type, also
	call lvalue_for_aggregate_p if lvalue_required_p returned false
	before substituting the identifier with the constant.

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

	* gcc-interface/trans.c (gnat_to_gnu): Do not wrap boolean values if
	they appear in any kind of attribute references.

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

	* gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Deal
	with qualified "others" aggregates in the memset case.

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

	* gcc-interface/decl.c (gnat_to_gnu_param): Also back-annotate the
	mechanism in the case of an Out parameter only passed by copy-out.

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

	* gcc-interface/gigi.h (change_qualified_type): Move around.
	(maybe_vector_array): Likewise.
	(maybe_padded_object): New static line function.
	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Component_Size>:
	Remove useless code.
	<Attr_Null_Parameter>: Remove obsolete code.
	(Call_to_gn): Likewise.  Use maybe_padded_object to remove padding.
	(gnat_to_gnu): Likewise.
	<N_String_Literal>: Do not add a useless null character at the end.
	<N_Indexed_Component>: Likewise and remove obsolete code.
	(add_decl_expr): Likewise.
	(maybe_implicit_deref): Likewise.
	* gcc-interface/utils.c (maybe_unconstrained_array): Likewise.
	* gcc-interface/utils2.c (gnat_invariant_expr): Likewise.

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

	* gcc-interface/utils2.c: Include builtins.h.
	(known_alignment) <ADDR_EXPR>: Use DECL_ALIGN for DECL_P operands
	and get_object_alignment for the rest.

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

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Force at
	least the unit size for an aliased object of a constrained nominal
	subtype whose size is variable.

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

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Deal
	with artificial maximally-sized types designed by access types.
	* gcc-interface/utils.c (packable_type_hash): New structure.
	(packable_type_hasher): Likewise.
	(packable_type_hash_table): New hash table.
	(init_gnat_utils): Initialize it.
	(destroy_gnat_utils): Destroy it.
	(packable_type_hasher::equal): New method.
	(hash_packable_type): New static function.
	(canonicalize_packable_type): Likewise.
	(make_packable_type): Make sure not to use too small a type for the
	size of the new fields.  Canonicalize the type if it is named.

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

	* gcc-interface/trans.c (Raise_Error_to_gnu): Always compute a lower
	bound and an upper bound for use by the -gnateE switch for range and
	comparison operators.

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

	* gcc-interface/decl.c (gnat_to_gnu_param): Do not make a variant of
	the type in LTO mode.

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.
