+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * configure: Regenerate.
+ * configure.ac: Add --bootstrap-hwasan option.
+
2020-11-23 Iain Sandoe <iain@sandoe.co.uk>
* config.guess: Import latest upstream.
+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * bootstrap-hwasan.mk: Disable random frame tags for stack-tagging
+ during bootstrap.
+
+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * bootstrap-hwasan.mk: New file.
+
2020-09-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Sync from binutils-gdb.
+2020-11-25 Martin Sebor <msebor@redhat.com>
+
+ PR bootstrap/97622
+ PR bootstrap/94982
+ * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
+ Avoid -Wformat-diag.
+ * digraph.cc (struct test_edge): Same.
+ * dumpfile.c (dump_loc): Same.
+ (dump_context::begin_scope): Same.
+ * edit-context.c (edited_file::print_diff): Same.
+ (edited_file::print_diff_hunk): Same.
+ * json.cc (object::print): Same.
+ * lto-wrapper.c (merge_and_complain): Same.
+ * reload.c (find_reloads): Same.
+ * tree-diagnostic-path.cc (print_path_summary_as_text): Same.
+ * ubsan.c (ubsan_type_descriptor): Same.
+
+2020-11-25 Jan Hubicka <jh@suse.cz>
+
+ * gimple.c (gimple_call_arg_flags): Also imply EAF_NODIRECTESCAPE.
+ * tree-core.h (EAF_NODRECTESCAPE): New flag.
+ * tree-ssa-structalias.c (make_indirect_escape_constraint): New
+ function.
+ (handle_rhs_call): Hanlde EAF_NODIRECTESCAPE.
+ * ipa-modref.c (dump_eaf_flags): Print EAF_NODIRECTESCAPE.
+ (deref_flags): Dereference is always EAF_NODIRECTESCAPE.
+ (modref_lattice::init): Also set EAF_NODIRECTESCAPE.
+ (analyze_ssa_name_flags): Pure functions do not affect
+ EAF_NODIRECTESCAPE.
+ (analyze_params): Likewise.
+ (ipa_merge_modref_summary_after_inlining): Likewise.
+ (modref_merge_call_site_flags): Likewise.
+
+2020-11-25 Jan Hubicka <jh@suse.cz>
+
+ * ipa-modref.c (modref_summaries::duplicate,
+ modref_summaries_lto::duplicate): Copy arg_flags.
+ (remap_arg_flags): Fix remapping of arg_flags.
+
+2020-11-25 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/97956
+ * gimple-fold.c (gimple_fold_builtin_memchr): Use sizetype for pointer
+ offsets.
+
+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * asan.c (asan_instrument_reads): New.
+ (asan_instrument_writes): New.
+ (asan_memintrin): New.
+ (handle_builtin_stack_restore): Account for HWASAN.
+ (handle_builtin_alloca): Account for HWASAN.
+ (get_mem_refs_of_builtin_call): Special case strlen for HWASAN.
+ (hwasan_instrument_reads): New.
+ (hwasan_instrument_writes): New.
+ (hwasan_memintrin): New.
+ (report_error_func): Assert not HWASAN.
+ (build_check_stmt): Make HWASAN_CHECK instead of ASAN_CHECK.
+ (instrument_derefs): HWASAN does not tag globals.
+ (instrument_builtin_call): Use new helper functions.
+ (maybe_instrument_call): Don't instrument `noreturn` functions.
+ (initialize_sanitizer_builtins): Add new type.
+ (asan_expand_mark_ifn): Account for HWASAN.
+ (asan_expand_check_ifn): Assert never called by HWASAN.
+ (asan_expand_poison_ifn): Account for HWASAN.
+ (asan_instrument): Branch based on whether using HWASAN or ASAN.
+ (pass_asan::gate): Return true if sanitizing HWASAN.
+ (pass_asan_O0::gate): Return true if sanitizing HWASAN.
+ (hwasan_check_func): New.
+ (hwasan_expand_check_ifn): New.
+ (hwasan_expand_mark_ifn): New.
+ (gate_hwasan): New.
+ * asan.h (hwasan_expand_check_ifn): New decl.
+ (hwasan_expand_mark_ifn): New decl.
+ (gate_hwasan): New decl.
+ (asan_intercepted_p): Always false for hwasan.
+ (asan_sanitize_use_after_scope): Account for HWASAN.
+ * builtin-types.def (BT_FN_PTR_CONST_PTR_UINT8): New.
+ * gimple-fold.c (gimple_build): New overload for building function
+ calls without arguments.
+ (gimple_build_round_up): New.
+ * gimple-fold.h (gimple_build): New decl.
+ (gimple_build): New inline function.
+ (gimple_build_round_up): New decl.
+ (gimple_build_round_up): New inline function.
+ * gimple-pretty-print.c (dump_gimple_call_args): Account for
+ HWASAN.
+ * gimplify.c (asan_poison_variable): Account for HWASAN.
+ (gimplify_function_tree): Remove requirement of
+ SANITIZE_ADDRESS, requiring asan or hwasan is accounted for in
+ `asan_sanitize_use_after_scope`.
+ * internal-fn.c (expand_HWASAN_CHECK): New.
+ (expand_HWASAN_ALLOCA_UNPOISON): New.
+ (expand_HWASAN_CHOOSE_TAG): New.
+ (expand_HWASAN_MARK): New.
+ (expand_HWASAN_SET_TAG): New.
+ * internal-fn.def (HWASAN_ALLOCA_UNPOISON): New.
+ (HWASAN_CHOOSE_TAG): New.
+ (HWASAN_CHECK): New.
+ (HWASAN_MARK): New.
+ (HWASAN_SET_TAG): New.
+ * sanitizer.def (BUILT_IN_HWASAN_LOAD1): New.
+ (BUILT_IN_HWASAN_LOAD2): New.
+ (BUILT_IN_HWASAN_LOAD4): New.
+ (BUILT_IN_HWASAN_LOAD8): New.
+ (BUILT_IN_HWASAN_LOAD16): New.
+ (BUILT_IN_HWASAN_LOADN): New.
+ (BUILT_IN_HWASAN_STORE1): New.
+ (BUILT_IN_HWASAN_STORE2): New.
+ (BUILT_IN_HWASAN_STORE4): New.
+ (BUILT_IN_HWASAN_STORE8): New.
+ (BUILT_IN_HWASAN_STORE16): New.
+ (BUILT_IN_HWASAN_STOREN): New.
+ (BUILT_IN_HWASAN_LOAD1_NOABORT): New.
+ (BUILT_IN_HWASAN_LOAD2_NOABORT): New.
+ (BUILT_IN_HWASAN_LOAD4_NOABORT): New.
+ (BUILT_IN_HWASAN_LOAD8_NOABORT): New.
+ (BUILT_IN_HWASAN_LOAD16_NOABORT): New.
+ (BUILT_IN_HWASAN_LOADN_NOABORT): New.
+ (BUILT_IN_HWASAN_STORE1_NOABORT): New.
+ (BUILT_IN_HWASAN_STORE2_NOABORT): New.
+ (BUILT_IN_HWASAN_STORE4_NOABORT): New.
+ (BUILT_IN_HWASAN_STORE8_NOABORT): New.
+ (BUILT_IN_HWASAN_STORE16_NOABORT): New.
+ (BUILT_IN_HWASAN_STOREN_NOABORT): New.
+ (BUILT_IN_HWASAN_TAG_MISMATCH4): New.
+ (BUILT_IN_HWASAN_HANDLE_LONGJMP): New.
+ (BUILT_IN_HWASAN_TAG_PTR): New.
+ * sanopt.c (sanopt_optimize_walker): Act for hwasan.
+ (pass_sanopt::execute): Act for hwasan.
+ * toplev.c (compile_file): Use `gate_hwasan` function.
+
+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * asan.c (struct hwasan_stack_var): New.
+ (hwasan_sanitize_p): New.
+ (hwasan_sanitize_stack_p): New.
+ (hwasan_sanitize_allocas_p): New.
+ (initialize_sanitizer_builtins): Define new builtins.
+ (ATTR_NOTHROW_LIST): New macro.
+ (hwasan_current_frame_tag): New.
+ (hwasan_frame_base): New.
+ (stack_vars_base_reg_p): New.
+ (hwasan_maybe_init_frame_base_init): New.
+ (hwasan_record_stack_var): New.
+ (hwasan_get_frame_extent): New.
+ (hwasan_increment_frame_tag): New.
+ (hwasan_record_frame_init): New.
+ (hwasan_emit_prologue): New.
+ (hwasan_emit_untag_frame): New.
+ (hwasan_finish_file): New.
+ (hwasan_truncate_to_tag_size): New.
+ * asan.h (hwasan_record_frame_init): New declaration.
+ (hwasan_record_stack_var): New declaration.
+ (hwasan_emit_prologue): New declaration.
+ (hwasan_emit_untag_frame): New declaration.
+ (hwasan_get_frame_extent): New declaration.
+ (hwasan_maybe_enit_frame_base_init): New declaration.
+ (hwasan_frame_base): New declaration.
+ (stack_vars_base_reg_p): New declaration.
+ (hwasan_current_frame_tag): New declaration.
+ (hwasan_increment_frame_tag): New declaration.
+ (hwasan_truncate_to_tag_size): New declaration.
+ (hwasan_finish_file): New declaration.
+ (hwasan_sanitize_p): New declaration.
+ (hwasan_sanitize_stack_p): New declaration.
+ (hwasan_sanitize_allocas_p): New declaration.
+ (HWASAN_TAG_SIZE): New macro.
+ (HWASAN_TAG_GRANULE_SIZE): New macro.
+ (HWASAN_STACK_BACKGROUND): New macro.
+ * builtin-types.def (BT_FN_VOID_PTR_UINT8_PTRMODE): New.
+ * builtins.def (DEF_SANITIZER_BUILTIN): Enable for HWASAN.
+ * cfgexpand.c (align_local_variable): When using hwasan ensure
+ alignment to tag granule.
+ (align_frame_offset): New.
+ (expand_one_stack_var_at): For hwasan use tag offset.
+ (expand_stack_vars): Record stack objects for hwasan.
+ (expand_one_stack_var_1): Record stack objects for hwasan.
+ (init_vars_expansion): Initialise hwasan state.
+ (expand_used_vars): Emit hwasan prologue and generate hwasan epilogue.
+ (pass_expand::execute): Emit hwasan base initialization if needed.
+ * doc/tm.texi (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE,
+ TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG,
+ TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG,
+ TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks.
+ * doc/tm.texi.in (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE,
+ TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG,
+ TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG,
+ TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks.
+ * explow.c (get_dynamic_stack_base): Take new `base` argument.
+ * explow.h (get_dynamic_stack_base): Take new `base` argument.
+ * sanitizer.def (BUILT_IN_HWASAN_INIT): New.
+ (BUILT_IN_HWASAN_TAG_MEM): New.
+ * target.def (target_memtag_tag_size,target_memtag_granule_size,
+ target_memtag_insert_random_tag,target_memtag_add_tag,
+ target_memtag_set_tag,target_memtag_extract_tag,
+ target_memtag_untagged_pointer): New hooks.
+ * targhooks.c (HWASAN_SHIFT): New.
+ (HWASAN_SHIFT_RTX): New.
+ (default_memtag_tag_size): New default hook.
+ (default_memtag_granule_size): New default hook.
+ (default_memtag_insert_random_tag): New default hook.
+ (default_memtag_add_tag): New default hook.
+ (default_memtag_set_tag): New default hook.
+ (default_memtag_extract_tag): New default hook.
+ (default_memtag_untagged_pointer): New default hook.
+ * targhooks.h (default_memtag_tag_size): New default hook.
+ (default_memtag_granule_size): New default hook.
+ (default_memtag_insert_random_tag): New default hook.
+ (default_memtag_add_tag): New default hook.
+ (default_memtag_set_tag): New default hook.
+ (default_memtag_extract_tag): New default hook.
+ (default_memtag_untagged_pointer): New default hook.
+ * toplev.c (compile_file): Call hwasan_finish_file when finished.
+
+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * common.opt (flag_sanitize_recover): Default for kernel
+ hwaddress.
+ (static-libhwasan): New cli option.
+ * config/aarch64/aarch64.c (aarch64_can_tag_addresses): New.
+ (TARGET_MEMTAG_CAN_TAG_ADDRESSES): New.
+ * config/gnu-user.h (LIBHWASAN_EARLY_SPEC): hwasan equivalent of
+ asan command line flags.
+ * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
+ Add hwasan equivalent of __SANITIZE_ADDRESS__.
+ * doc/invoke.texi: Document hwasan command line flags.
+ * doc/tm.texi: Document new hook.
+ * doc/tm.texi.in: Document new hook.
+ * flag-types.h (enum sanitize_code): New sanitizer values.
+ * gcc.c (STATIC_LIBHWASAN_LIBS): New macro.
+ (LIBHWASAN_SPEC): New macro.
+ (LIBHWASAN_EARLY_SPEC): New macro.
+ (SANITIZER_EARLY_SPEC): Update to include hwasan.
+ (SANITIZER_SPEC): Update to include hwasan.
+ (sanitize_spec_function): Use hwasan options.
+ * opts.c (finish_options): Describe conflicts between address
+ sanitizers.
+ (find_sanitizer_argument): New.
+ (report_conflicting_sanitizer_options): New.
+ (sanitizer_opts): Introduce new sanitizer flags.
+ (common_handle_option): Add defaults for kernel sanitizer.
+ * params.opt (hwasan--instrument-stack): New
+ (hwasan-random-frame-tag): New
+ (hwasan-instrument-allocas): New
+ (hwasan-instrument-reads): New
+ (hwasan-instrument-writes): New
+ (hwasan-instrument-mem-intrinsics): New
+ * target.def (HOOK_PREFIX): Add new hook.
+ (can_tag_addresses): Add new hook under memtag prefix.
+ * targhooks.c (default_memtag_can_tag_addresses): New.
+ * targhooks.h (default_memtag_can_tag_addresses): New decl.
+ * toplev.c (process_options): Ensure hwasan only on
+ architectures that advertise the possibility.
+
+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * doc/install.texi: Document new option.
+
+2020-11-25 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move):
+ Do not optimize LRA subregs.
+ * config/aarch64/aarch64-sve.md
+ (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): Tie the input to the
+ output.
+ (@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>): Likewise.
+ (*<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): Likewise.
+ (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise.
+ (*cnot<mode>): Likewise.
+ (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): Likewise.
+ (@aarch64_sve_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>):
+ Likewise.
+ (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
+ Likewise.
+ (@aarch64_sve_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>):
+ Likewise.
+ (@aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
+ Likewise.
+ (@aarch64_sve_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>):
+ Likewise.
+ (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>):
+ Likewise.
+ (@aarch64_sve_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>):
+ Likewise.
+ * config/aarch64/aarch64-sve2.md
+ (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise.
+ (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise.
+ (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise.
+ (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise.
+
+2020-11-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/95862
+ * internal-fn.c (get_min_precision): For narrowing conversion, recurse
+ on the operand and if the operand precision is smaller than the
+ current one, return that smaller precision.
+ (expand_mul_overflow): For s1 * u2 -> ur and s1 * s2 -> ur cases
+ if the sum of minimum precisions of both operands is smaller or equal
+ to the result precision, just perform normal multiplication and
+ set overflow to the sign bit of the multiplication result. For
+ u1 * u2 -> sr if both arguments have the MSB known zero, use
+ normal s1 * s2 -> sr expansion.
+
+2020-11-25 Jan Hubicka <jh@suse.cz>
+
+ * cfg.c (free_block): New function.
+ (clear_edges): Rename to ....
+ (free_cfg): ... this one; also free BBs and vectors.
+ (expunge_block): Update comment.
+ * cfg.h (clear_edges): Rename to ...
+ (free_cfg): ... this one.
+ * cgraph.c (release_function_body): Use free_cfg.
+
+2020-11-25 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/97579
+ * gimple-isel.cc (gimple_expand_vec_cond_expr): Lower
+ VECTOR_BOOLEAN_TYPE_P, non-vector mode VEC_COND_EXPRs.
+
+2020-11-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/97943
+ * gimple-fold.c (clear_padding_union, clear_padding_type): Error on and
+ ignore flexible array member fields. Ignore fields with
+ error_mark_node type.
+
2020-11-24 Ulrich Weigand <ulrich.weigand@de.ibm.com>
Revert:
+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
+2020-11-25 Martin Sebor <msebor@redhat.com>
+
+ PR bootstrap/94982
+ * c-attribs.c (handle_patchable_function_entry_attribute): Avoid
+ -Wformat-diag.
+
2020-11-24 Martin Sebor <msebor@redhat.com>
* c-warn.c (warn_parm_array_mismatch): Avoid invalid redeclarations.
+2020-11-25 Martin Sebor <msebor@redhat.com>
+
+ PR bootstrap/94982
+ * constraint.cc (debug_argument_list): Avoid -Wformat-diag.
+ * error.c (function_category): Same.
+ (print_template_differences): Same.
+ * logic.cc (debug): Same.
+ * name-lookup.c (lookup_using_decl): Same.
+ * parser.c (maybe_add_cast_fixit): Same.
+ (cp_parser_template_introduction): Same.
+ * typeck.c (access_failure_info::add_fixit_hint): Same.
+
+2020-11-25 Thomas Schwinge <thomas@codesourcery.com>
+
+ * pt.c (tsubst_omp_clauses): Handle 'OMP_CLAUSE__CACHE_'.
+ (tsubst_expr): Handle 'OACC_CACHE'.
+
2020-11-24 Jason Merrill <jason@redhat.com>
PR c++/97899
+2020-11-25 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/85796
+ * resolve.c (traverse_data_list): Fix copy&paste errors; catch
+ step=0 in implied do loop.
+
2020-11-20 Jakub Jelinek <jakub@redhat.com>
PR other/97911
+2020-11-25 Martin Sebor <msebor@redhat.com>
+
+ PR bootstrap/94982
+ * jit-recording.c (recording::function::dump_to_dot): Avoid
+ -Wformat-diag.
+ (recording::block::dump_to_dot): Same.
+
2020-11-20 Jakub Jelinek <jakub@redhat.com>
PR other/97911
+2020-11-25 Martin Sebor <msebor@redhat.com>
+
+ PR bootstrap/94982
+ * c-c++-common/patchable_function_entry-error-3.c: Adjust text
+ of expected warning.
+
+2020-11-25 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/lto/modref-3_0.c: New test.
+ * gcc.dg/lto/modref-3_1.c: New test.
+ * gcc.dg/lto/modref-4_0.c: New test.
+ * gcc.dg/lto/modref-4_1.c: New test.
+ * gcc.dg/tree-ssa/modref-5.c: New test.
+
+2020-11-25 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/85796
+ * gfortran.dg/pr85796.f90: New test.
+
+2020-11-25 Thomas Schwinge <thomas@codesourcery.com>
+
+ * g++.dg/gomp/map-1.C: New.
+ * g++.dg/gomp/map-2.C: Likewise.
+ * c-c++-common/gomp/map-1.c: Adjust.
+ * c-c++-common/gomp/map-2.c: Likewise.
+
+2020-11-25 Thomas Schwinge <thomas@codesourcery.com>
+
+ * c-c++-common/goacc/cache-1.c: Update.
+ * c-c++-common/goacc/cache-2.c: Likewise.
+ * g++.dg/goacc/cache-1.C: New.
+ * g++.dg/goacc/cache-2.C: Likewise.
+
+2020-11-25 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/97956
+ * gcc.dg/memchr-3.c: New test.
+
+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * c-c++-common/ubsan/sanitize-recover-7.c: Update error message format.
+ * lib/asan-dg.exp (asan_link_flags): Implement as a helper
+ function asan_link_flags_1 which asan_link_flags and
+ hwasan_link_flags use.
+ (asan_link_flags_1): Parametrised version of asan_link_flags.
+ * c-c++-common/hwasan/aligned-alloc.c: New test.
+ * c-c++-common/hwasan/alloca-array-accessible.c: New test.
+ * c-c++-common/hwasan/alloca-base-init.c: New test.
+ * c-c++-common/hwasan/alloca-gets-different-tag.c: New test.
+ * c-c++-common/hwasan/alloca-outside-caught.c: New test.
+ * c-c++-common/hwasan/arguments-1.c: New test.
+ * c-c++-common/hwasan/arguments-2.c: New test.
+ * c-c++-common/hwasan/arguments-3.c: New test.
+ * c-c++-common/hwasan/arguments.c: New test.
+ * c-c++-common/hwasan/asan-pr63316.c: New test.
+ * c-c++-common/hwasan/asan-pr70541.c: New test.
+ * c-c++-common/hwasan/asan-pr78106.c: New test.
+ * c-c++-common/hwasan/asan-pr79944.c: New test.
+ * c-c++-common/hwasan/asan-rlimit-mmap-test-1.c: New test.
+ * c-c++-common/hwasan/bitfield-1.c: New test.
+ * c-c++-common/hwasan/bitfield-2.c: New test.
+ * c-c++-common/hwasan/builtin-special-handling.c: New test.
+ * c-c++-common/hwasan/check-interface.c: New test.
+ * c-c++-common/hwasan/halt_on_error-1.c: New test.
+ * c-c++-common/hwasan/handles-poly_int-marked-vars.c: New test.
+ * c-c++-common/hwasan/heap-overflow.c: New test.
+ * c-c++-common/hwasan/hwasan-poison-optimisation.c: New test.
+ * c-c++-common/hwasan/hwasan-thread-access-parent.c: New test.
+ * c-c++-common/hwasan/hwasan-thread-basic-failure.c: New test.
+ * c-c++-common/hwasan/hwasan-thread-clears-stack.c: New test.
+ * c-c++-common/hwasan/hwasan-thread-success.c: New test.
+ * c-c++-common/hwasan/kernel-defaults.c: New test.
+ * c-c++-common/hwasan/large-aligned-0.c: New test.
+ * c-c++-common/hwasan/large-aligned-1.c: New test.
+ * c-c++-common/hwasan/large-aligned-untagging-0.c: New test.
+ * c-c++-common/hwasan/large-aligned-untagging-1.c: New test.
+ * c-c++-common/hwasan/large-aligned-untagging-2.c: New test.
+ * c-c++-common/hwasan/large-aligned-untagging-3.c: New test.
+ * c-c++-common/hwasan/large-aligned-untagging-4.c: New test.
+ * c-c++-common/hwasan/large-aligned-untagging-5.c: New test.
+ * c-c++-common/hwasan/large-aligned-untagging-6.c: New test.
+ * c-c++-common/hwasan/large-aligned-untagging-7.c: New test.
+ * c-c++-common/hwasan/macro-definition.c: New test.
+ * c-c++-common/hwasan/no-sanitize-attribute.c: New test.
+ * c-c++-common/hwasan/param-instrument-mem-intrinsics.c: New test.
+ * c-c++-common/hwasan/param-instrument-reads-and-writes.c: New test.
+ * c-c++-common/hwasan/param-instrument-reads.c: New test.
+ * c-c++-common/hwasan/param-instrument-writes.c: New test.
+ * c-c++-common/hwasan/random-frame-tag.c: New test.
+ * c-c++-common/hwasan/sanity-check-pure-c.c: New test.
+ * c-c++-common/hwasan/setjmp-longjmp-0.c: New test.
+ * c-c++-common/hwasan/setjmp-longjmp-1.c: New test.
+ * c-c++-common/hwasan/stack-tagging-basic-0.c: New test.
+ * c-c++-common/hwasan/stack-tagging-basic-1.c: New test.
+ * c-c++-common/hwasan/stack-tagging-disable.c: New test.
+ * c-c++-common/hwasan/unprotected-allocas-0.c: New test.
+ * c-c++-common/hwasan/unprotected-allocas-1.c: New test.
+ * c-c++-common/hwasan/use-after-free.c: New test.
+ * c-c++-common/hwasan/vararray-outside-caught.c: New test.
+ * c-c++-common/hwasan/vararray-stack-restore-correct.c: New test.
+ * c-c++-common/hwasan/very-large-objects.c: New test.
+ * g++.dg/hwasan/hwasan.exp: New test.
+ * g++.dg/hwasan/rvo-handled.C: New test.
+ * gcc.dg/hwasan/hwasan.exp: New test.
+ * gcc.dg/hwasan/nested-functions-0.c: New test.
+ * gcc.dg/hwasan/nested-functions-1.c: New test.
+ * gcc.dg/hwasan/nested-functions-2.c: New test.
+ * lib/hwasan-dg.exp: New file.
+
+2020-11-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/95862
+ * gcc.dg/builtin-artih-overflow-5.c: Renamed to ...
+ * gcc.dg/builtin-arith-overflow-5.c: ... this.
+
+2020-11-25 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc.target/aarch64/sve/acle/asm/abs_f16.c (abs_f16_x_untied): Expect
+ a MOVPRFX instruction.
+ * gcc.target/aarch64/sve/acle/asm/abs_f32.c (abs_f32_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/abs_f64.c (abs_f64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/abs_s16.c (abs_s16_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/abs_s32.c (abs_s32_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/abs_s64.c (abs_s64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/abs_s8.c (abs_s8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cls_s16.c (cls_s16_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cls_s32.c (cls_s32_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cls_s64.c (cls_s64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cls_s8.c (cls_s8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/clz_s16.c (clz_s16_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/clz_s32.c (clz_s32_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/clz_s64.c (clz_s64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/clz_s8.c (clz_s8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/clz_u16.c (clz_u16_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/clz_u32.c (clz_u32_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/clz_u64.c (clz_u64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/clz_u8.c (clz_u8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnot_s16.c (cnot_s16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnot_s32.c (cnot_s32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnot_s64.c (cnot_s64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnot_s8.c (cnot_s8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnot_u16.c (cnot_u16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnot_u32.c (cnot_u32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnot_u64.c (cnot_u64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnot_u8.c (cnot_u8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnt_bf16.c (cnt_bf16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnt_f16.c (cnt_f16_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnt_f32.c (cnt_f32_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnt_f64.c (cnt_f64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnt_s16.c (cnt_s16_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnt_s32.c (cnt_s32_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnt_s64.c (cnt_s64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnt_s8.c (cnt_s8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnt_u16.c (cnt_u16_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnt_u32.c (cnt_u32_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnt_u64.c (cnt_u64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cnt_u8.c (cnt_u8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cvt_bf16.c (cvt_bf16_f32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cvt_f16.c (cvt_f16_f32_x_untied)
+ (cvt_f16_f64_x_untied, cvt_f16_s16_x_untied, cvt_f16_s32_x_untied)
+ (cvt_f16_s64_x_untied, cvt_f16_u16_x_untied, cvt_f16_u32_x_untied)
+ (cvt_f16_u64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cvt_f32.c (cvt_f32_f16_x_untied)
+ (cvt_f32_f64_x_untied, cvt_f32_s16_x_untied, cvt_f32_s32_x_untied)
+ (cvt_f32_s64_x_untied, cvt_f32_u16_x_untied, cvt_f32_u32_x_untied)
+ (cvt_f32_u64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cvt_f64.c (cvt_f64_f16_x_untied)
+ (cvt_f64_f32_x_untied, cvt_f64_s16_x_untied, cvt_f64_s32_x_untied)
+ (cvt_f64_s64_x_untied, cvt_f64_u16_x_untied, cvt_f64_u32_x_untied)
+ (cvt_f64_u64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cvt_s16.c (cvt_s16_f16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cvt_s32.c (cvt_s32_f16_x_untied)
+ (cvt_s32_f32_x_untied, cvt_s32_s64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cvt_s64.c (cvt_s64_f16_x_untied)
+ (cvt_s64_f32_x_untied, cvt_s64_s64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cvt_u16.c (cvt_u16_f16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cvt_u32.c (cvt_u32_f16_x_untied)
+ (cvt_u32_f32_x_untied, cvt_u32_u64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/cvt_u64.c (cvt_u64_f16_x_untied)
+ (cvt_u64_f32_x_untied, cvt_u64_u64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/extb_s16.c (extb_s16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/extb_s32.c (extb_s32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/extb_s64.c (extb_s64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/exth_s32.c (exth_s32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/exth_s64.c (exth_s64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/extw_s64.c (extw_s64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/neg_f16.c (neg_f16_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/neg_f32.c (neg_f32_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/neg_f64.c (neg_f64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/neg_s16.c (neg_s16_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/neg_s32.c (neg_s32_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/neg_s64.c (neg_s64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/neg_s8.c (neg_s8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/not_s16.c (not_s16_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/not_s32.c (not_s32_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/not_s64.c (not_s64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/not_s8.c (not_s8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/not_u16.c (not_u16_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/not_u32.c (not_u32_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/not_u64.c (not_u64_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/not_u8.c (not_u8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rbit_s16.c (rbit_s16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rbit_s32.c (rbit_s32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rbit_s64.c (rbit_s64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rbit_s8.c (rbit_s8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rbit_u16.c (rbit_u16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rbit_u32.c (rbit_u32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rbit_u64.c (rbit_u64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rbit_u8.c (rbit_u8_x_untied): Ditto.
+ * gcc.target/aarch64/sve/acle/asm/recpx_f16.c (recpx_f16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/recpx_f32.c (recpx_f32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/recpx_f64.c (recpx_f64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/revb_s16.c (revb_s16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/revb_s32.c (revb_s32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/revb_s64.c (revb_s64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/revb_u16.c (revb_u16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/revb_u32.c (revb_u32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/revb_u64.c (revb_u64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/revh_s32.c (revh_s32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/revh_s64.c (revh_s64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/revh_u32.c (revh_u32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/revh_u64.c (revh_u64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/revw_s64.c (revw_s64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/revw_u64.c (revw_u64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rinta_f16.c (rinta_f16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rinta_f32.c (rinta_f32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rinta_f64.c (rinta_f64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rinti_f16.c (rinti_f16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rinti_f32.c (rinti_f32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rinti_f64.c (rinti_f64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintm_f16.c (rintm_f16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintm_f32.c (rintm_f32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintm_f64.c (rintm_f64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintn_f16.c (rintn_f16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintn_f32.c (rintn_f32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintn_f64.c (rintn_f64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintp_f16.c (rintp_f16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintp_f32.c (rintp_f32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintp_f64.c (rintp_f64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintx_f16.c (rintx_f16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintx_f32.c (rintx_f32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintx_f64.c (rintx_f64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintz_f16.c (rintz_f16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintz_f32.c (rintz_f32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/rintz_f64.c (rintz_f64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/sqrt_f16.c (sqrt_f16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/sqrt_f32.c (sqrt_f32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve/acle/asm/sqrt_f64.c (sqrt_f64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/cvtx_f32.c (cvtx_f32_f64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/logb_f16.c (logb_f16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/logb_f32.c (logb_f32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/logb_f64.c (logb_f64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/qabs_s16.c (qabs_s16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/qabs_s32.c (qabs_s32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/qabs_s64.c (qabs_s64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/qabs_s8.c (qabs_s8_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/qneg_s16.c (qneg_s16_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/qneg_s32.c (qneg_s32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/qneg_s64.c (qneg_s64_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/qneg_s8.c (qneg_s8_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/recpe_u32.c (recpe_u32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/rsqrte_u32.c (rsqrte_u32_x_untied):
+ Ditto.
+ * gcc.target/aarch64/sve2/acle/asm/cvtlt_f32.c
+ (cvtlt_f32_f16_x_untied): Expect a MOV instruction.
+ * gcc.target/aarch64/sve2/acle/asm/cvtlt_f64.c
+ (cvtlt_f64_f32_x_untied): Likewise.
+
+2020-11-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/95862
+ * gcc.dg/builtin-artih-overflow-5.c: New test.
+
+2020-11-25 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/97579
+ * gcc.dg/pr97579.c: New testcase.
+
+2020-11-25 Stam Markianos-Wright <stam.markianos-wright@arm.com>
+
+ PR target/91816
+ * gcc.target/arm/pr91816.c: New test.
+
+2020-11-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/97943
+ * c-c++-common/builtin-clear-padding-2.c: New test.
+ * c-c++-common/builtin-clear-padding-3.c: New test.
+ * g++.dg/ext/builtin-clear-padding-1.C: New test.
+ * gcc.dg/builtin-clear-padding-2.c: New test.
+
2020-11-24 Martin Sebor <msebor@redhat.com>
* gcc.dg/pr97955.c: New test.
+2020-11-25 Stefan Kanthak <stefan.kanthak@nexgo.de>
+
+ * libgcc2.c (absvSI2): Simplify/improve implementation by using
+ builtin_add_overflow.
+ (absvsi2, absvDI2): Likewise.
+
2020-11-20 Maciej W. Rozycki <macro@linux-mips.org>
* unwind-dw2-fde-dip.c [__OpenBSD__ || __NetBSD__]
+2020-11-25 Thomas Schwinge <thomas@codesourcery.com>
+
+ * testsuite/libgomp.oacc-c++/cache-1.C: New.
+ * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Update.
+
+2020-11-25 Andrew Stubbs <ams@codesourcery.com>
+
+ * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90 (main): Adjust
+ expected results.
+
2020-11-24 Andrew Stubbs <ams@codesourcery.com>
* plugin/plugin-gcn.c: Don't redefine relocations if elf.h has them.
+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * configure: Regenerate.
+ * configure.ac: Avoid using sanitizer.
+
2020-11-13 Eduard-Mihai Burtescu <eddyb@lyken.rs>
* rust-demangle.c (struct rust_demangler): Add
+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * LOCAL_PATCHES: Add one commit.
+
+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * Makefile.am: Condition Build hwasan directory.
+ * Makefile.in: Regenerate.
+ * configure: Regenerate.
+ * configure.ac: Set HWASAN_SUPPORTED based on target
+ architecture.
+ * configure.tgt: Likewise.
+
+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * Makefile.am: Build libhwasan.
+ * Makefile.in: Build libhwasan.
+ * asan/Makefile.in: Build libhwasan.
+ * configure: Build libhwasan.
+ * configure.ac: Build libhwasan.
+ * hwasan/Makefile.am: New file.
+ * hwasan/Makefile.in: New file.
+ * hwasan/libtool-version: New file.
+ * interception/Makefile.in: Build libhwasan.
+ * libbacktrace/Makefile.in: Build libhwasan.
+ * libsanitizer.spec.in: Build libhwasan.
+ * lsan/Makefile.in: Build libhwasan.
+ * sanitizer_common/Makefile.in: Build libhwasan.
+ * tsan/Makefile.in: Build libhwasan.
+ * ubsan/Makefile.in: Build libhwasan.
+
2020-11-21 Iain Sandoe <iain@sandoe.co.uk>
* configure.tgt: Allow x86_64 Darwin2x.
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/atomic_timed_wait.h (__cond_wait_until): Do not
+ perform redundant conversions to the same clock.
+
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
+ Do not define when _GLIBCXX_HAVE_LINUX_FUTEX is defined. Use
+ __condvar and mutex instead of __gthread_cond_t and
+ unique_lock<mutex>.
+ (__cond_wait_until): Likewise. Fix test for return value of
+ __cond_wait_until_impl.
+ (__timed_waiters::_M_do_wait_until): Use __condvar instead
+ of __gthread_cond_t.
+ * include/bits/atomic_wait.h: Remove <bits/unique_lock.h>
+ include. Only include <bits/std_mutex.h> if not using futexes.
+ (__platform_wait_max_value): Remove unused variable.
+ (__waiters::lock_t): Use lock_guard instead of unique_lock.
+ (__waiters::_M_cv): Use __condvar instead of __gthread_cond_t.
+ (__waiters::_M_do_wait(__platform_wait_t)): Likewise.
+ (__waiters::_M_notify()): Likewise. Use notify_one() if not
+ asked to notify all.
+ * include/bits/std_mutex.h (__condvar): New type.
+ * include/std/condition_variable (condition_variable::_M_cond)
+ (condition_variable::wait_until): Use __condvar instead of
+ __gthread_cond_t.
+ * src/c++11/condition_variable.cc (condition_variable): Define
+ default constructor and destructor as defaulted.
+ (condition_variable::wait, condition_variable::notify_one)
+ (condition_variable::notify_all): Forward to corresponding
+ member function of __condvar.
+
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97936
+ * testsuite/29_atomics/atomic/wait_notify/bool.cc: Re-eneable
+ test.
+ * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
+ * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
+ * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
+ * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
+ * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
+ * testsuite/util/atomic/wait_notify_util.h: Fix missed
+ notifications by making the new thread wait until the parent
+ thread is waiting on the condition variable.
+
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97935
+ * include/bits/iterator_concepts.h (__detail::__iter_without_category):
+ New helper concept.
+ (__iterator_traits::__cat): Use __detail::__iter_without_category.
+ * testsuite/24_iterators/associated_types/iterator.traits.cc: New test.
+
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/17_intro/names.cc: Do not test 'v' on AIX.
+
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97936
+ * include/bits/atomic_wait.h (__platform_wait): Check errno,
+ not just the value of EAGAIN.
+ (__waiters::__waiters()): Fix name of data member.
+
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97936
+ * include/bits/atomic_wait.h (__platform_wait): Return if futex
+ sets EAGAIN.
+ * testsuite/30_threads/latch/3.cc: Re-enable test.
+ * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
+
2020-11-24 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/97936
+2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * Makefile.am: Avoid using sanitizer.
+ * Makefile.in: Regenerate.
+
2020-09-10 Jonathan Yong <10walls@gmail.com>
* Makefile.am: drop versioning from libtool completely.