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>

	*