+2020-06-18 Felix Yang <felix.yang@huawei.com>
+
+ * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Call
+ vect_relevant_for_alignment_p to filter out data references in
+ the loop whose alignment is irrelevant when trying loop peeling
+ to force alignment.
+
+2020-06-18 Uroš Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*cmpqi_ext<mode>_1): Use SWI248 mode
+ iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
+ mode iterator for the first operand of ZERO_EXTRACT RTX.
+ Change ext_register_operand predicate to register_operand.
+ Rename from *cmpqi_ext_1.
+ (*cmpqi_ext<mode>_2): Ditto. Rename from *cmpqi_ext_2.
+ (*cmpqi_ext<mode>_3): Ditto. Rename from *cmpqi_ext_3.
+ (*cmpqi_ext<mode>_4): Ditto. Rename from *cmpqi_ext_4.
+ (cmpi_ext_3): Use HImode instead of SImode for ZERO_EXTRACT RTX.
+ (*extv<mode>): Use SWI24 mode iterator for the first operand
+ of ZERO_EXTRACT RTX. Change ext_register_operand predicate
+ to register_operand.
+ (*extzv<mode>): Use SWI248 mode iterator for the first operand
+ of ZERO_EXTRACT RTX. Change ext_register_operand predicate
+ to register_operand.
+ (*extzvqi): Use SWI248 mode iterator instead of SImode for
+ ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first operand
+ of ZERO_EXTRACT RTX. Change ext_register_operand predicate to
+ register_operand.
+ (*extzvqi_mem_rex64 and corresponding peephole2): Use SWI248 mode
+ iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
+ mode iterator for the first operand of ZERO_EXTRACT RTX.
+ Change ext_register_operand predicate to register_operand.
+ (@insv<mode>_1): Use SWI248 mode iterator for the first operand
+ of ZERO_EXTRACT RTX. Change ext_register_operand predicate to
+ register_operand.
+ (*insvqi_1): Use SWI248 mode iterator instead of SImode
+ for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the
+ first operand of ZERO_EXTRACT RTX. Change ext_register_operand
+ predicate to register_operand.
+ (*insvqi_2): Ditto.
+ (*insvqi_3): Ditto.
+ (*insvqi_1_mem_rex64 and corresponding peephole2): Use SWI248 mode
+ iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
+ mode iterator for the first operand of ZERO_EXTRACT RTX.
+ Change ext_register_operand predicate to register_operand.
+ (addqi_ext_1): New expander.
+ (*addqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
+ for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
+ operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
+ to register_operand. Rename from *addqi_ext_1.
+ (*addqi_ext<mode>_2): Ditto. Rename from *addqi_ext_2.
+ (divmodqi4): Use HImode instead of SImode for ZERO_EXTRACT RTX.
+ (udivmodqi4): Ditto.
+ (testqi_ext_1): Use HImode instead of SImode for ZERO_EXTRACT RTX.
+ (*testqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
+ for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
+ operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
+ to register_operand. Rename from *testqi_ext_1.
+ (*testqi_ext<mode>_2): Ditto. Rename from *testqi_ext_2.
+ (andqi_ext_1): New expander.
+ (*andqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
+ for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
+ operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
+ to register_operand. Rename from andqi_ext_1.
+ (*andqi_ext<mode>_1_cc): Ditto. Rename from *andqi_ext_1_cc.
+ (*andqi_ext<mode>_2): Ditto. Rename from *andqi_ext_2.
+ (*<code>qi_ext<mode>_1): Ditto. Rename from *<code>qi_ext_1.
+ (*<code>qi_ext<mode>_2): Ditto. Rename from *<code>qi_ext_2.
+ (xorqi_ext_1_cc): Use HImode instead of SImode for ZERO_EXTRACT RTX.
+ (*xorqi_ext<mode>_1_cc): Use SWI248 mode iterator instead of SImode
+ for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
+ operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
+ to register_operand. Rename from *xorqi_ext_1_cc.
+ * config/i386/i386-expand.c (ix86_split_idivmod): Emit ZERO_EXTRACT
+ in mode, matching its first operand.
+ (promote_duplicated_reg): Update for renamed insv<mode>_1.
+ * config/i386/predicates.md (ext_register_operand): Remove predicate.
+
+2020-06-18 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/95667
+ PR middle-end/92814
+ * builtins.c (compute_objsize): Remove call to
+ compute_builtin_object_size and instead compute conservative sizes
+ directly here.
+
+2020-06-18 Martin Liska <mliska@suse.cz>
+
+ * coretypes.h (struct iterator_range): New type.
+ * tree-vect-patterns.c (vect_determine_precisions): Use
+ range-based iterator.
+ (vect_pattern_recog): Likewise.
+ * tree-vect-slp.c (_bb_vec_info): Likewise.
+ (_bb_vec_info::~_bb_vec_info): Likewise.
+ (vect_slp_check_for_constructors): Likewise.
+ * tree-vectorizer.h:Add new iterators
+ and functions that use it.
+
+2020-06-18 Martin Liska <mliska@suse.cz>
+
+ * config/rs6000/rs6000-call.c (fold_build_vec_cmp):
+ Since 502d63b6d6141597bb18fd23c87736a1b384cf8f, first argument
+ of a VEC_COND_EXPR cannot be tcc_comparison and so that
+ a SSA_NAME needs to be created before we use it for the first
+ argument of the VEC_COND_EXPR.
+ (fold_compare_helper): Pass gsi to fold_build_vec_cmp.
+
+2020-06-18 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/95739
+ * internal-fn.c (expand_vect_cond_optab_fn): Move the result
+ to the target if necessary.
+ (expand_vect_cond_mask_optab_fn): Likewise.
+
+2020-06-18 Martin Liska <mliska@suse.cz>
+
+ * tree-ssa-reassoc.c (ovce_extract_ops): Replace *vcond with
+ vcond as we check for NULL pointer.
+
+2020-06-18 Tobias Burnus <tobias@codesourcery.com>
+
+ * gimple-pretty-print.c (dump_binary_rhs): Use braces to
+ silence empty-body warning with gcc_fallthrough.
+
+2020-06-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/95699
+ * tree-ssa-phiopt.c (minmax_replacement): Treat (signed int)x < 0
+ as x > INT_MAX and (signed int)x >= 0 as x <= INT_MAX. Move variable
+ declarations to the statements that set them where possible.
+
+2020-06-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/95713
+ * tree-ssa-forwprop.c (simplify_vector_constructor): Don't allow
+ scalar mode halfvectype other than vector boolean for
+ VEC_PACK_TRUNC_EXPR.
+
+2020-06-18 Richard Biener <rguenther@suse.de>
+
+ * varasm.c (assemble_variable): Make sure to not
+ defer output when outputting addressed constants.
+ (output_constant_def_contents): Likewise.
+ (add_constant_to_table): Take and pass on whether to
+ defer output.
+ (output_addressed_constants): Likewise.
+ (output_constant_def): Pass on whether to defer output
+ to add_constant_to_table.
+ (tree_output_constant_def): Defer output of constants.
+
+2020-06-18 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (_slp_tree::two_operators): Remove.
+ (_slp_tree::lane_permutation): New member.
+ (_slp_tree::code): Likewise.
+ (SLP_TREE_TWO_OPERATORS): Remove.
+ (SLP_TREE_LANE_PERMUTATION): New.
+ (SLP_TREE_CODE): Likewise.
+ (vect_stmt_dominates_stmt_p): Declare.
+ * tree-vectorizer.c (vect_stmt_dominates_stmt_p): New function.
+ * tree-vect-stmts.c (vect_model_simple_cost): Remove
+ SLP_TREE_TWO_OPERATORS handling.
+ * tree-vect-slp.c (_slp_tree::_slp_tree): Amend.
+ (_slp_tree::~_slp_tree): Likewise.
+ (vect_two_operations_perm_ok_p): Remove.
+ (vect_build_slp_tree_1): Remove verification of two-operator
+ permutation here.
+ (vect_build_slp_tree_2): When we have two different operators
+ build two computation SLP nodes and a blend.
+ (vect_print_slp_tree): Print the lane permutation if it exists.
+ (slp_copy_subtree): Copy it.
+ (vect_slp_rearrange_stmts): Re-arrange it.
+ (vect_slp_analyze_node_operations_1): Handle SLP_TREE_CODE
+ VEC_PERM_EXPR explicitely.
+ (vect_schedule_slp_instance): Likewise. Remove old
+ SLP_TREE_TWO_OPERATORS code.
+ (vectorizable_slp_permutation): New function.
+
+2020-06-18 Martin Liska <mliska@suse.cz>
+
+ * tree-vect-generic.c (expand_vector_condition): Check
+ for gassign before inspecting RHS.
+
2020-06-17 Thomas Schwinge <thomas@codesourcery.com>
* gimplify.c (omp_notice_threadprivate_variable)
+2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_ch4.adb (Get_Size_For_Range): Only make sure to return a
+ size lower than that of the original type if possible.
+ * libgnat/s-rannum.adb (Random_Discrete): Back out optimization
+ added for 32-bit types.
+
+2020-06-18 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_ch6.ads, sem_ch6.adb (Check_Formal_Conformance): New
+ subprogram.
+ (Check_Conformance): Move code to Check_Formal_Conformance.
+ * sem_ch8.adb (Analyze_Subprogram_Renaming): Check for formal
+ conformance when needed.
+
+2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_ch4.adb (Narrow_Large_Operation): New procedure to try
+ and narrow large arithmetic and comparison operations.
+ (Expand_N_In): Call it.
+ (Expand_N_Op_Abs): Likewise.
+ (Expand_N_Op_Add): Likewise.
+ (Expand_N_Op_Divide): Likewise.
+ (Expand_N_Op_Eq): Likewise.
+ (Expand_N_Op_Ge): Likewise.
+ (Expand_N_Op_Gt): Likewise.
+ (Expand_N_Op_Le): Likewise.
+ (Expand_N_Op_Lt): Likewise.
+ (Expand_N_Op_Minus): Likewise.
+ (Expand_N_Op_Mod): Likewise.
+ (Expand_N_Op_Multiply): Likewise.
+ (Expand_N_Op_Ne): Likewise.
+ (Expand_N_Op_Plus): Likewise.
+ (Expand_N_Op_Rem): Likewise.
+ (Expand_N_Op_Subtract): Likewise.
+ (Expand_N_Type_Conversion): Use Convert_To procedure.
+ * exp_ch9.adb (Is_Pure_Barrier) <N_Identifier>: Skip all
+ numeric types.
+ <N_Type_Conversion>: Use explicit criterion.
+
+2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_ch4.adb (Expand_Allocator_Expression): Apply constraint
+ and predicate checks for the qualified expression on entry,
+ followed by constraint and predicate checks for the allocator
+ itself, and return early if this results in a static error.
+ (Expand_N_Allocator): Do not do the same here. Instead apply
+ constraint and predicate checks for arrays in the subtype
+ indication case.
+ * exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
+ range checks to allocators here.
+
+2020-06-18 Javier Miranda <miranda@adacore.com>
+
+ * exp_ch6.adb (BIP_Suffix_Kind, Is_Build_In_Place_Entity): Move
+ declarations...
+ * exp_ch6.ads: Here.
+ * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Do not rely
+ on the name of the scope to locate the extra formal BIPalloc
+ since they are copied when the pointer type associated with
+ dispatching calls is built; rely on routines
+ Is_Build_In_Place_Entity and BIP_Suffix_Kind.
+ * exp_disp.adb (Expand_Dispatching_Call): Set the scope of the
+ first extra formal of the internally built pointer type.
+ * sem_ch3.adb (Derive_Subprogram): Do not inherit extra formals
+ from a limited interface parent since limitedness is not
+ inherited in such case (AI-419) and this affects the extra
+ formals.
+ * sprint.adb (Write_Itype): Output extra formals of subprogram
+ types.
+
+2020-06-18 Ghjuvan Lacambre <lacambre@adacore.com>
+
+ * errout.adb (Write_Error_Summary): Display number of warnings
+ treated as errors.
+ * errutil.ads: Update comment.
+
+2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_attr.adb (Analyze_Attribute) <Asm_{In,Out}put>: Alphabetize.
+ <Component_Size>: Add check for universal integer attribute.
+ <Aft>, <Bit_Order>, <Definite>, <Max_Alignment_For_Allocation>,
+ <Scalar_Storage_Order>: Raise Program_Error on them.
+ * sem_attr.adb (Eval_Attribute) <Component_Size>: Add comment on
+ the packed array case.
+
+2020-06-18 Steve Baird <baird@adacore.com>
+
+ * sem_util.adb (Object_Access_Level): Treat a 'Old attribute
+ reference like an aggregate in determining its static
+ accessibility level; after the evaluation of the relevant
+ post-condition, the implicitly declared constant associated with
+ an Old attribute reference ceases to exist. Similarly for
+ Loop_Entry attribute.
+ * exp_ch6.adb (Expand_Call_Helper): For an attribute reference
+ that is expanded into a reference to an implicitly declared
+ constant (e.g., a 'Old or 'Loop_Entry attribute), compute the
+ dynamic accessibility level of that constant by looking at the
+ declaration of the constant (as opposed to looking at the
+ attribute reference).
+
+2020-06-18 Steve Baird <baird@adacore.com>
+
+ * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a
+ default initial condition check for the declaration of an
+ imported object.
+
+2020-06-18 Arnaud Charlet <charlet@adacore.com>
+
+ * Makefile.rtl: Add s-statxd.o.
+ * bindgen.adb (Gen_Adainit): Add support for XDR_Stream.
+ * bindusg.adb (Display): Add mention of -xdr.
+ * gnatbind.adb: Process -xdr switch.
+ * init.c (__gl_xdr_stream): New.
+ * opt.ads (XDR_Stream): New.
+ * libgnat/s-stratt__xdr.adb: Rename to...
+ * libgnat/s-statxd.adb: this and adjust.
+ * libgnat/s-statxd.ads: New.
+ * libgnat/s-stratt.ads, libgnat/s-stratt.adb: Choose between
+ default and XDR implementation at runtime.
+ * libgnat/s-ststop.ads: Update comments.
+ * doc/gnat_rm/implementation_advice.rst: Update doc on XDR
+ streaming.
+ * gnat_rm.texi: Regenerate.
+
+2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * sem_attr.adb (Analyze_Attribute) <To_Address>: Use the address
+ size of the target instead of the host when checking the value of
+ a static expression. Also use standard idiom for exponentiation.
+
+2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * sem_prag.adb (Process_Convention): Give a warning on C_Variadic_n
+ being applied to a subprogram with exactly n parameters.
+
+2020-06-18 Arnaud Charlet <charlet@adacore.com>
+
+ * libgnarl/s-osinte__linux.ads, libgnat/g-io.adb,
+ libgnat/g-socket.adb, libgnat/g-socthi.adb,
+ libgnat/g-socthi.ads, libgnat/g-socthi__vxworks.adb,
+ libgnat/g-socthi__vxworks.ads, libgnat/g-sothco.ads,
+ libgnat/s-io.adb, libgnat/a-except.adb: Fix function profile
+ mismatch with imported C functions.
+
+2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_ch6.adb (Expand_Call_Helper): Remove superfluous calls
+ to Relocate_Node and merge calls to Analyze and Resolve in a
+ couple of places. Do not attempt to generate a range check
+ for an actual parameter against the formal's type of a derived
+ subprogram after generating a conversion to the formal's type
+ of the parent subprogram.
+
+2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * checks.adb (Compute_Range_For_Arithmetic_Op): New procedure to
+ compute a range for an arithmetical operation extracted from...
+ (Minimize_Eliminate_Overflows): ...here. Call it.
+ (Determine_Range_Cache_O): New cache for Original_Node nodes.
+ (Determine_Range): Call Compute_Range_For_Arithmetic_Op for all
+ arithmetic expressions. Use Attribute_Id in lieu of Attribute_Name
+ for attributes. Add handling for Range_Length alongside Length.
+ Add specific handling for Alignment, Bit, First_Bit, Last_Bit,
+ Max_Size_In_Storage_Elements, Position, Bit_Position,
+ Component_Size, Object_Size, Size, Value_Size, Descriptor_Size.
+ (Enable_Overflow_Check): Omit the check for Abs and Minus if the
+ operand cannot be the largest negative number.
+ (Selected_Length_Checks): Use Pos for Number_Dimensions.
+ * exp_attr.adb (Expand_N_Attribute_Reference): Move compile-time
+ handling of Bit_Position, Descriptor_Size, First_Bit, Last_Bit
+ and Position to...
+ * sem_attr.adb (Eval_Attribute): ...here. Move up Alignment for
+ objects and use Compile_Time_Known_Attribute in this case too.
+
+2020-06-18 Ghjuvan Lacambre <lacambre@adacore.com>
+
+ * erroutc.ads: Declare new Is_Compile_Time_Msg boolean,
+ add new Compile_Time_Pragma field to Error_Msg_Object type.
+ (Count_Compile_Time_Pragma_Warnings): New function.
+ * erroutc.adb (Count_Compile_Time_Pragma_Warnings): New
+ function.
+ (Compilation_Errors): Take Compile_Time warnings into account
+ when tallying Errors/Warnings.
+ * errout.ads (Error_Msg): New procedure.
+ * errout.adb (Error_Msg): New procedure.
+ (Error_Msg_Internal): Set new Compile_Time_Pragma field in
+ Error_Msg_Object.
+ * errutil.adb (Error_Msg): Set new Compile_Time_Pragma field in
+ Error_Msg_Object.
+ * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Pass
+ True to new Error_Msg procedure.
+ * doc/gnat_rm/implementation_defined_pragmas.rst: Update doc for
+ the Compile_Time_Warning pragma.
+ * gnat_rm.texi: Regenerate.
+ * opt.ads: Update comment.
+
+2020-06-18 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_ch4.adb (Check_Compatible_Profiles): Add explicit
+ initialization.
+
+2020-06-18 Piotr Trojanek <trojanek@adacore.com>
+
+ * checks.adb (Generate_Index_Checks): Handle
+ N_Subtype_Indication returned from Scalar_Range.
+
+2020-06-18 Piotr Trojanek <trojanek@adacore.com>
+
+ * checks.adb, sem_ch3.adb: Minor refactorings.
+ * sem_eval.adb (Eval_Qualified_Expression): Fix reference to RM
+ rule in comment; only set a local variable Hex in the branch
+ where it is used.
+
+2020-06-18 Piotr Trojanek <trojanek@adacore.com>
+
+ * sem_eval.adb (Check_Non_Static_Context): Use Is_RTE.
+
+2020-06-18 Arnaud Charlet <charlet@adacore.com>
+
+ * sem_ch4.adb (Find_Equality_Types.Check_Access_Object_Types):
+ New function, used to implement RM 4.5.2 (9.6/2).
+ (Find_Equality_Types.Check_Compatible_Profiles): New function,
+ used to implement RM 4.5.2(9.7/2).
+ (Find_Equality_Types.Reference_Anonymous_Access_Type): New
+ function.
+ (Find_Equality_Types.Try_One_Interp): Fix handling of anonymous
+ access types which was accepting both too much and too little.
+ Remove accumulated special and incomplete cases for
+ instantiations, replaced by Has_Compatible_Type.
+ (Analyze_Overloaded_Selected_Component): Use
+ Is_Anonymous_Access_Type instead of Ekind_In.
+ * sem_res.adb: Code cleanup and bug fix: use
+ Is_Anonymous_Access_Type instead of Ekind_In. Relax checking of
+ anonymous access parameter when universal_access "=" is
+ involved.
+ * sem_type.adb: Likewise.
+ (Find_Unique_Type): Move code from here...
+ (Specific_Type): ...to here. Also add missing handling of access
+ to class wide types.
+ * einfo.ads, einfo.adb (Is_Access_Object_Type): New.
+
+2020-06-18 Bob Duff <duff@adacore.com>
+
+ * libgnat/a-strsto.ads, libgnat/a-ststbo.adb,
+ libgnat/a-ststbo.ads, libgnat/a-ststun.adb,
+ libgnat/a-ststun.ads: New files, containing packages
+ Ada.Streams.Storage, Ada.Streams.Storage.Bounded, and
+ Ada.Streams.Storage.Unbounded.
+ * impunit.adb, Makefile.rtl: Add new file names.
+
+2020-06-18 Javier Miranda <miranda@adacore.com>
+
+ * sem_ch13.adb (Has_Good_Profile): Enforce strictness in the
+ check. Required to detect wrong profiles for Input and Output.
+ (Analyze_Stream_TSS_Definition): Minor enhancement in the text
+ of the error for class-wide attributes.
+
+2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_attr.adb (Get_Integer_Type): Pick an unsigned type based
+ on the Esize of the base type of the input type.
+
+2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_ch4.adb (Expand_Array_Equality): For the optimization of
+ the 2-element case, build new expression lists for the indices.
+
+2020-06-18 Richard Kenner <kenner@adacore.com>
+
+ * sem_util.adb (Enclosing_Subprogram): No longer need
+ Convention_Protected.
+
+2020-06-18 Claire Dross <dross@adacore.com>
+
+ * sem_util.adb (Is_OK_Volatile_Context): Return False on
+ definitions of constants declared in declare expressions.
+
+2020-06-18 Piotr Trojanek <trojanek@adacore.com>
+
+ * doc/gnat_rm/implementation_defined_aspects.rst
+ (Relaxed_Initialization): New implementation-defined aspect.
+ * doc/gnat_rm/implementation_defined_attributes.rst
+ (Initialized): New implementation-defined attribute.
+ * gnat_rm.texi: Regenerate.
+
+2020-06-18 Javier Miranda <miranda@adacore.com>
+
+ * exp_disp.adb (Expand_Dispatching_Call): Add missing decoration
+ of attribute Extra_Accessibility_Of_Result.
+ * freeze.adb (Check_Extra_Formals): No check required if
+ expansion is disabled; Adding check on
+ Extra_Accessibilty_Of_Result.
+ (Freeze_Subprogram): Fix decoration of
+ Extra_Accessibility_Of_Result.
+ * sem_ch3.adb (Derive_Subprogram): Fix decoration of
+ Extra_Accessibility_Of_Result
+
+2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_ch4.adb (Optimize_Length_Comparison): Accept 32-bit values
+ in the full unsigned range.
+
2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
* checks.adb (Apply_Universal_Integer_Attribute_Checks): Do not do