From d04ae83244d346b95c36c2e3d39918548310f142 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 3 Jan 2022 10:18:16 +0100 Subject: [PATCH] Rotate ChangeLog files - part 1 - add ChangeLog-2021. 2022-01-03 Jakub Jelinek gcc/ * ChangeLog-2021: Rotate ChangeLog. New file. gcc/ada/ * ChangeLog-2021: Rotate ChangeLog. New file. gcc/cp/ * ChangeLog-2021: Rotate ChangeLog. New file. gcc/d/ * ChangeLog-2021: Rotate ChangeLog. New file. gcc/fortran/ * ChangeLog-2021: Rotate ChangeLog. New file. gcc/testsuite/ * ChangeLog-2021: Rotate ChangeLog. New file. libgfortran/ * ChangeLog-2021: Rotate ChangeLog. New file. libstdc++-v3/ * ChangeLog-2021: Rotate ChangeLog. New file. --- gcc/ChangeLog-2021 | 35692 +++++++++++++++++++++++++++++++++++++++++ gcc/ada/ChangeLog-2021 | 12135 ++++++++++++++ gcc/cp/ChangeLog-2021 | 5512 +++++++ gcc/d/ChangeLog-2021 | 1068 ++ gcc/fortran/ChangeLog-2021 | 2563 +++ gcc/testsuite/ChangeLog-2021 | 20646 ++++++++++++++++++++++++ libgfortran/ChangeLog-2021 | 384 + libstdc++-v3/ChangeLog-2021 | 9013 +++++++++++ 8 files changed, 87013 insertions(+) create mode 100644 gcc/ChangeLog-2021 create mode 100644 gcc/ada/ChangeLog-2021 create mode 100644 gcc/cp/ChangeLog-2021 create mode 100644 gcc/d/ChangeLog-2021 create mode 100644 gcc/fortran/ChangeLog-2021 create mode 100644 gcc/testsuite/ChangeLog-2021 create mode 100644 libgfortran/ChangeLog-2021 create mode 100644 libstdc++-v3/ChangeLog-2021 diff --git a/gcc/ChangeLog-2021 b/gcc/ChangeLog-2021 new file mode 100644 index 0000000..3d36cb7 --- /dev/null +++ b/gcc/ChangeLog-2021 @@ -0,0 +1,35692 @@ +2021-12-30 Jakub Jelinek + + PR rtl-optimization/103756 + * regrename.c (find_rename_reg): Test noop_move_p on the first + non-debug insn in the chain rather than on the first insn. + +2021-12-30 Jakub Jelinek + + PR debug/103808 + * emit-rtl.c (gen_rtx_REG_offset): Use gen_raw_REG instead of + gen_rtx_REG. + +2021-12-30 Martin Liska + + * doc/cpp.texi: Add missing dash for argument. + +2021-12-30 Jakub Jelinek + + PR c++/103012 + * config/i386/i386-c.c (ix86_pragma_target_parse): Perform + cpp_define/cpp_undef calls with forced token locations + BUILTINS_LOCATION. + * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. + * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Likewise. + * config/s390/s390-c.c (s390_pragma_target_parse): Likewise. + +2021-12-30 Jakub Jelinek + + PR rtl-optimization/103860 + * shrink-wrap.c (try_shrink_wrapping): Make sure can_get_prologue is + called on pro even if nothing further is pushed into vec. + +2021-12-30 Xionghu Luo + + * loop-invariant.c (find_invariants_bb): Check profile count + before motion. + (find_invariants_body): Add argument. + +2021-12-29 Ian Lance Taylor + + PR go/103847 + * godump.c (go_force_record_alignment): Name the alignment + field "_". + +2021-12-29 Jakub Jelinek + + PR debug/103742 + * tree-ssa-dce.c (make_forwarders_with_degenerate_phis): If any phi + argument is not CONSTANT_CLASS_P or SSA_NAME and any arguments are + equal, change second from hash value to lowest dest_idx from the + edges which have equal argument and resort to ensure -fcompare-debug + stability. + +2021-12-29 Martin Liska + + * collect2.c (main): Add ld.mold. + * common.opt: Add -fuse-ld=mold. + * doc/invoke.texi: Document it. + * gcc.c (driver_handle_option): Handle -fuse-ld=mold. + * opts.c (common_handle_option): Likewise. + +2021-12-29 Uroš Bizjak + + * config/i386/sse.md (vec_pack_float_): + Perform gen_avx512dq_floatv2div2sf2 into a + pseudo and emit move insn into operands[0]. + (fix_truncv2sfv2di2): Use lowpart_subreg + instead of simplify_gen_subreg. + (trunc2): Perform + gen_avx512vl_truncatevqi2 into a + pseudo and emit move insn into operands[0]. + (trunc2): Perform + gen_avx512vl_truncatevhi2 into a + pseudo and emit move insn into operands[0]. + (truncv2div2si2): Perform gen_avx512vl_truncatev2div2si2 into a + pseudo and emit move insn into operands[0]. + (truncv8div8qi2): Perform gen_avx512f_truncatev8div16qi2 into a + pseudo and emit move insn into operands[0]. + (v8qiv8hi2): Use lowpart_subreg + instead of simplify_gen_subreg. + (v8qiv8si2): Ditto. + (v4qiv4si2): Ditto. + (v4hiv4si2): Ditto. + (v8qiv8di2): Ditto. + (v4qiv4di2): Ditto. + (v2qiv2di2): Ditto. + (v4hiv4di2): Ditto. + (v2hiv2di2): Ditto. + (v2siv2di2): Ditto. + +2021-12-29 Xionghu Luo + + PR tree-optimization/103793 + * tree-ssa-loop-split.c (fix_loop_bb_probability): New function. + (split_loop): Use multiply to scale loop1's exit probability. + (do_split_loop_on_cond): Call fix_loop_bb_probability. + +2021-12-28 Jason Merrill + + PR c++/99968 + * tree.c (verify_type): Allow enumerator with BOOLEAN_TYPE. + +2021-12-28 Jakub Jelinek + + PR middle-end/103813 + * fold-const.c (fold_truth_andor_1): Punt of const_binop LSHIFT_EXPR + or RSHIFT_EXPR returns NULL. Formatting fix. + +2021-12-28 Jakub Jelinek + + PR rtl-optimization/103837 + * loop-invariant.c (can_move_invariant_reg): Ignore DEBUG_INSNs in + the decisions whether to return false or continue and right before + returning true reset those debug insns that previously caused + returning false. + +2021-12-28 Jakub Jelinek + + PR debug/103838 + * optabs.c (expand_doubleword_mod, expand_doubleword_divmod): Only + check newly added insns for CALL_P, not the last insn of previous + code. + +2021-12-28 Martin Liska + + PR driver/103465 + * opts.c (finish_options): More part of diagnostics to ... + (diagnose_options): ... here. Call the function from both + finish_options and process_options. + * opts.h (diagnose_options): Declare. + * toplev.c (process_options): Call diagnose_options. + +2021-12-28 Martin Liska + + * doc/contrib.texi: Replace http:// with https. + * doc/contribute.texi: Likewise. + * doc/extend.texi: Likewise. + * doc/gccint.texi: Likewise. + * doc/gnu.texi: Likewise. + * doc/implement-c.texi: Likewise. + * doc/implement-cxx.texi: Likewise. + * doc/include/fdl.texi: Likewise. + * doc/include/gpl_v3.texi: Likewise. + * doc/install.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/passes.texi: Likewise. + * doc/service.texi: Likewise. + * doc/sourcebuild.texi: Likewise. + * doc/standards.texi: Likewise. + +2021-12-28 Jakub Jelinek + + PR target/103842 + * config/i386/mmx.md (divv2sf3): Use force_reg on op1. Always perform + divv4sf3 into a pseudo and emit_move_insn into operands[0]. + +2021-12-27 John David Anglin + + * config/pa/pa-protos.h: Delete + pa_maybe_emit_compare_and_swap_exchange_loop() declaration. + * config/pa/pa.c (pa_expand_compare_and_swap_loop): Delete. + (pa_maybe_emit_compare_and_swap_exchange_loop): Delete. + * config/pa/pa.md (atomic_storeq): Use __sync_lock_test_and_set + instead of pa_maybe_emit_compare_and_swap_exchange_loop. + (atomic_storehi, atomic_storesi, atomic_storedi): Likewise. + +2021-12-27 H.J. Lu + + PR target/103762 + * config/i386/constraints.md (BM): New constraint. + * config/i386/i386.md (m): New mode attribute. + Replace the 'm' constraint on with the '' + constraint. + Replace the 'm' constraint on x86_64_general_operand with the + 'BM' constraint. + +2021-12-26 H.J. Lu + + PR target/103785 + * config/i386/i386.md: Swap operand order in comments and check + AX input in any_mul_highpart peepholes. + +2021-12-24 Uroš Bizjak + + PR target/95046 + PR target/103797 + * config/i386/mmx.md (divv2sf3): New instruction pattern. + +2021-12-24 Iain Sandoe + + * config/darwin.c (darwin_override_options): Make a comment + more inclusive. + +2021-12-24 Iain Sandoe + + * config.gcc: Emit L2_MAX_OFILE_ALIGNMENT with suitable + values for the host. + * config/darwin.c (darwin_emit_common): Error for alignment + values > 32768. + * config/darwin.h (MAX_OFILE_ALIGNMENT): Rework to use the + configured L2_MAX_OFILE_ALIGNMENT. + +2021-12-24 Iain Sandoe + + * config/darwin.c (darwin_override_options): When checking for the + flag-reorder-and-partition case, also check that it is set on. + +2021-12-24 Iain Sandoe + + * config/darwin.h (OBJECT_FORMAT_MACHO): New. + +2021-12-23 Roger Sayle + Uroš Bizjak + + PR target/103773 + * config/i386/i386.md (*mov_and): New define_insn for + writing a zero to memory using AND. + (*mov_or): Extend to allow memory destination and HImode. + (*movdi_internal): Remove -Oz push/pop optimization from here. + (*movsi_internal): Likewise. + (peephole2): Perform -Oz push/pop optimization here, only for + register destinations, values other than zero, and in functions + that don't used the red zone. + (peephole2): With -Oz, convert writes of 0 or -1 to memory into + their clobber forms, i.e. *mov_and and *mov_or resp. + +2021-12-23 konglin1 + + * config/i386/avx512bf16intrin.h (_mm_cvtsbh_ss): Add new intrinsic. + (_mm512_cvtpbh_ps): Likewise. + (_mm512_maskz_cvtpbh_ps): Likewise. + (_mm512_mask_cvtpbh_ps): Likewise. + * config/i386/avx512bf16vlintrin.h (_mm_cvtness_sbh): Likewise. + (_mm_cvtpbh_ps): Likewise. + (_mm256_cvtpbh_ps): Likewise. + (_mm_maskz_cvtpbh_ps): Likewise. + (_mm256_maskz_cvtpbh_ps): Likewise. + (_mm_mask_cvtpbh_ps): Likewise. + (_mm256_mask_cvtpbh_ps): Likewise. + +2021-12-23 Feng Xue + + PR ipa/103786 + * tree.c (verify_type): Fix typo. + +2021-12-23 liuhongt + + PR target/103750 + * config/i386/sse.md + (*_cmp3_zero_extend): + New pre_reload define_insn_and_split. + (*_cmp3_zero_extend): + Ditto. + (*_ucmp3_zero_extend): + Ditto. + (*_ucmp3_zero_extend): + Ditto. + (*_cmp3_zero_extend_2): + Ditto. + (*_cmp3_zero_extend_2): + Ditto. + (*_ucmp3_zero_extend_2): + Ditto. + (*_ucmp3_zero_extend_2): + Ditto. + +2021-12-22 Murray Steele + + * config.gcc (arm*-*-*): Add arm-mve-builtins.o to extra_objs. + * config/arm/arm-c.c (arm_pragma_arm): Handle "#pragma GCC arm". + (arm_register_target_pragmas): Register it. + * config/arm/arm-protos.h: (arm_mve::arm_handle_mve_types_h): New + prototype. + * config/arm/arm_mve_types.h: Replace MVE type definitions with + new pragma. + * config/arm/t-arm: (arm-mve-builtins.o): New target rule. + * config/arm/arm-mve-builtins.cc: New file. + * config/arm/arm-mve-builtins.def: New file. + * config/arm/arm-mve-builtins.h: New file. + +2021-12-22 Murray Steele + + * config/arm/arm-builtins.c (enum arm_type_qualifiers): Move to + arm_builtins.h. + (enum arm_simd_type): Move to arm-builtins.h. + (struct arm_simd_type_info): Move to arm-builtins.h. + * config/arm/arm-builtins.h (enum arm_simd_type): Move from + arm-builtins.c. + (enum arm_type_qualifiers): Move from arm-builtins.c. + (struct arm_simd_type_info): Move from arm-builtins.c. + +2021-12-22 Martin Liska + + * doc/extend.texi: Unify all function declarations in examples + where some miss trailing ';'. + +2021-12-22 Martin Liska + + * doc/extend.texi: Unify all function declarations in examples + where some miss trailing ';'. + +2021-12-22 Martin Liska + + * doc/extend.texi: Unify all function declarations in examples + where some miss trailing ';'. + +2021-12-22 Martin Liska + + * doc/extend.texi: Use uppercase letters for SSEx. + +2021-12-21 Jiang Haochen + + * config/i386/bmiintrin.h (_tzcnt_u16): New intrinsic. + (_andn_u32): Ditto. + (_andn_u64): Ditto. + +2021-12-21 Xionghu Luo + + * tree-ssa-loop-im.c (bb_colder_than_loop_preheader): New + function. + (get_coldest_out_loop): New function. + (determine_max_movement): Use get_coldest_out_loop. + (move_computations_worker): Adjust and fix iteration udpate. + (class ref_in_loop_hot_body): New functor. + (ref_in_loop_hot_body::operator): New. + (can_sm_ref_p): Use for_all_locs_in_loop. + (fill_coldest_and_hotter_out_loop): New. + (tree_ssa_lim_finalize): Free coldest_outermost_loop and + hotter_than_inner_loop. + (loop_invariant_motion_in_fun): Call fill_coldest_and_hotter_out_loop. + +2021-12-21 Xionghu Luo + + * tree-ssa-loop-split.c (split_loop): Fix incorrect + profile_count and probability. + (do_split_loop_on_cond): Likewise. + +2021-12-21 Xionghu Luo + + PR middle-end/103270 + * predict.c (predict_extra_loop_exits): Add loop parameter. + (predict_loops): Call with loop argument. + +2021-12-21 Xionghu Luo + + * config/rs6000/altivec.md (altivec_vaddus): Replace + UNSPEC_VADDU with us_plus. + (altivec_vaddss): Replace UNSPEC_VADDS with ss_plus. + (altivec_vsubus): Replace UNSPEC_VSUBU with us_minus. + (altivec_vsubss): Replace UNSPEC_VSUBS with ss_minus. + (altivec_abss_): Likewise. + +2021-12-20 Uroš Bizjak + + PR target/103772 + * config/i386/sse.md (_pinsr): Add + earlyclobber to (x,x,x,i) alternative. + (_pinsr peephole2): Remove. + (_pinsr splitter): Use output + operand as a temporary register. Split after reload_completed. + +2021-12-20 Roger Sayle + Uroš Bizjak + + * config/i386/i386.md (any_mul_highpart): New code iterator. + (sgnprefix, s): Add attribute support for [su]mul_highpart. + (mul3_highpart): Delete expander. + (mul3_highpart, mulsi32_highpart_zext): + New define_insn patterns. + (define_peephole2): Tweak the register allocation for the above + instructions after reload. + +2021-12-20 Joel Sherrill + + * config.gcc: Obsolete m32c-*-rtems* target. + +2021-12-20 Martin Liska + + * opts.c (default_options_optimization): Support -Oz in -Ox option hints. + +2021-12-20 Jan Hubicka + + PR ipa/103669 + * ipa-modref.c (modref_eaf_analysis::analyze_ssa_name): Add deferred + parameter. + (modref_eaf_analysis::propagate): Use it. + +2021-12-20 liuhongt + + PR target/98468 + * config/i386/sse.md (*bit_and_float_vector_all_ones): New + pre-reload splitter. + +2021-12-19 Jan Hubicka + + PR ipa/103766 + * ipa-modref.c (modref_merge_call_site_flags): Fix early exit condition + +2021-12-19 Patrick Palka + + * print-tree.c (print_node) : Dump + DECL_LANG_FLAG_8. + +2021-12-19 Andrew Pinski + + * tree-ssa-phiopt.c (gimple_simplify_phiopt): Annotate the + new sequence with the location of the conditional statement. + +2021-12-18 Roger Sayle + Uroš Bizjak + + PR target/103611 + * config/i386/i386.md (any_or_plus): New code iterator. + (define_split): Split (HI<<32)|zext(LO) into piece-wise + move instructions on !TARGET_64BIT. + * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): + Restrict to TARGET_64BIT. + +2021-12-18 Roger Sayle + + PR target/32803 + * common.opt (Oz): New command line option. + * doc/invoke.texi: Document the new -Oz option. + * lto-wrapper.c (merge_and_complain, append_compiler_options): + Treat OPT_Oz as synonymous with OPT_Os. + * optc-save-gen.awk: Increase maximum value of optimize_size to 2. + * opts.c (default_options_optimization) [OPT_Oz]: Handle OPT_Oz + just like OPT_Os, except set opt->x_optimize_size to 2. + (common_handle_option): Skip OPT_Oz just like OPT_Os. + * config/i386/i386.md (*movdi_internal): Use a push/pop sequence + for suitable SImode TYPE_IMOV moves when optimize_size > 1. + (*movsi_internal): Likewise. + +2021-12-18 Siddhesh Poyarekar + + PR tree-optimization/103759 + * tree-object-size.c (unknown, initval): Remove functions. + (size_unknown, size_initval, size_unknown_p): Operate directly + on trees. + +2021-12-18 François-Xavier Coudert + + * config/darwin-driver.c: Make version code more future-proof. + * config.gcc: Homogeneize darwin versions. + * configure.ac: Homogeneize darwin versions. + * configure: Regenerate. + +2021-12-17 Marek Polacek + + PR c/103649 + * attribs.c (handle_ignored_attributes_option): Create the fake + attribute with max_length == -2. + (attribute_ignored_p): New overloads. + * attribs.h (attribute_ignored_p): Declare them. + * tree-core.h (struct attribute_spec): Document that max_length + can be -2. + +2021-12-17 Segher Boessenkool + + PR target/103624 + * config/rs6000/rs6000-builtins.def (__builtin_darn): Expand to + darn_64_di. Add {32bit} attribute. Return long. + (__builtin_darn_32): Expand to darn_32_di. Add {32bit} attribute. + Return long. + (__builtin_darn_raw): Expand to darn_raw_di. Add {32bit} attribute. + Return long. + * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Expand the darn + builtins to the _si variants for -m32. + * config/rs6000/rs6000.md (UNSPECV_DARN_32, UNSPECV_DARN_RAW): Delete. + (UNSPECV_DARN): Update comment. + (darn_32, darn_raw, darn): Delete. + (darn_32_, darn_64_, darn_raw_ for GPR): New. + (@darn for GPR): New. + +2021-12-17 Bill Schmidt + + * config/rs6000/rs6000-overload.def (__builtin_vec_promote): Add second + argument. + +2021-12-17 Richard Sandiford + + PR tree-optimization/103744 + * tree-vect-stmts.c (vectorizable_load): Handle multi-vector + SLP gather loads. + +2021-12-17 Martin Liska + + * doc/invoke.texi: Rename to -fstack-protector. + +2021-12-17 Martin Liska + + * doc/invoke.texi: Fix spelling issues. + +2021-12-17 Tamar Christina + + PR tree-optimization/103741 + * tree-vect-stmts.c (vectorizable_operation): Check for boolean. + +2021-12-17 Iain Sandoe + + * config/darwin-driver.c (darwin_driver_init): Exit from the + option handling early if the command line is definitely enpty. + * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Remove + setting for the default content of weak_reference_mismatches. + +2021-12-17 Iain Sandoe + + * config/rs6000/darwin.h: Drop trailing _x from the + builtin_decls array name. + +2021-12-17 Haochen Jiang + + PR target/100738 + * config/i386/sse.md (*avx_cmp3_lt, *avx_cmp3_ltint): + Remove MEM_P restriction and add force_reg for operands[2]. + (*avx_cmp3_ltint_not): Add new define_insn_and_split. + +2021-12-17 Siddhesh Poyarekar + + * builtins.def (BUILT_IN_DYNAMIC_OBJECT_SIZE): New builtin. + * tree-object-size.h: Move object size type bits enum from + tree-object-size.c and add new value OST_DYNAMIC. + * builtins.c (expand_builtin, fold_builtin_2): Handle it. + (fold_builtin_object_size): Handle new builtin and adjust for + change to compute_builtin_object_size. + * tree-object-size.c: Include builtins.h. + (compute_builtin_object_size): Adjust. + (early_object_sizes_execute_one, + dynamic_object_sizes_execute_one): New functions. + (object_sizes_execute): Rename insert_min_max_p argument to + early. Handle BUILT_IN_DYNAMIC_OBJECT_SIZE and call the new + functions. + * doc/extend.texi (__builtin_dynamic_object_size): Document new + builtin. + +2021-12-17 Siddhesh Poyarekar + + * tree-object-size.h (compute_builtin_object_size): Return tree + instead of HOST_WIDE_INT. + * builtins.c (fold_builtin_object_size): Adjust. + * gimple-fold.c (gimple_fold_builtin_strncat): Likewise. + * ubsan.c (instrument_object_size): Likewise. + * tree-object-size.c (object_size): New structure. + (object_sizes): Change type to vec. + (initval): New function. + (unknown): Use it. + (size_unknown_p, size_initval, size_unknown): New functions. + (object_sizes_unknown_p): Use it. + (object_sizes_get): Return tree. + (object_sizes_initialize): Rename from object_sizes_set_force + and set VAL parameter type as tree. Add new parameter WHOLEVAL. + (object_sizes_set): Set VAL parameter type as tree and adjust + implementation. Add new parameter WHOLEVAL. + (size_for_offset): New function. + (decl_init_size): Adjust comment. + (addr_object_size): Change PSIZE parameter to tree and adjust + implementation. Add new parameter PWHOLESIZE. + (alloc_object_size): Return tree. + (compute_builtin_object_size): Return tree in PSIZE. + (expr_object_size, call_object_size, unknown_object_size): + Adjust for object_sizes_set change. + (merge_object_sizes): Drop OFFSET parameter and adjust + implementation for tree change. + (plus_stmt_object_size): Call collect_object_sizes_for directly + instead of merge_object_size and call size_for_offset to get net + size. + (cond_expr_object_size, collect_object_sizes_for, + object_sizes_execute): Adjust for change of type from + HOST_WIDE_INT to tree. + (check_for_plus_in_loops_1): Likewise and skip non-positive + offsets. + +2021-12-17 Jason Merrill + + PR c++/103681 + * common.opt (fabi-version): Add v17. + +2021-12-16 Uroš Bizjak + + PR target/103571 + * config/i386/i386.h (VALID_AVX256_REG_MODE): Add V16HFmode. + (VALID_AVX256_REG_OR_OI_VHF_MODE): Replace with ... + (VALID_AVX256_REG_OR_OI_MODE): ... this. Remove V16HFmode. + (VALID_AVX512F_SCALAR_MODE): Remove HImode and HFmode. + (VALID_AVX512FP16_SCALAR_MODE): New. + (VALID_AVX512F_REG_MODE): Add V32HFmode. + (VALID_SSE2_REG_MODE): Add V8HFmode, V4HFmode and V2HFmode. + (VALID_SSE2_REG_VHF_MODE): Remove. + (VALID_INT_MODE_P): Add V2HFmode. + * config/i386/i386.c (function_arg_advance_64): + Remove explicit mention of V16HFmode and V32HFmode. + (ix86_hard_regno_mode_ok): Remove explicit mention of XImode + and V32HFmode, use VALID_AVX512F_REG_OR_XI_MODE instead. + Use VALID_AVX512FP_SCALAR_MODE for TARGET_aVX512FP16. + Use VALID_AVX256_REG_OR_OI_MODE instead of + VALID_AVX256_REG_OR_OI_VHF_MODE and VALID_SSE2_REG_MODE instead + of VALID_SSE2_REG_VHF_MODE. + (ix86_set_reg_reg_cost): Remove usge of VALID_AVX512FP16_REG_MODE. + (ix86_vector_mode_supported): Ditto. + +2021-12-16 Martin Liska + + PR c++/103696 + * attribs.c (decl_attributes): Check if + target_option_current_node is changed. + +2021-12-16 Martin Liska + + * doc/invoke.texi: Add missing dash. + +2021-12-16 Bill Schmidt + + * config/rs6000/rs6000-c.c (resolution): New enum. + (resolve_vec_mul): New function. + (resolve_vec_cmpne): Likewise. + (resolve_vec_adde_sube): Likewise. + (resolve_vec_addec_subec): Likewise. + (resolve_vec_splats): Likewise. + (resolve_vec_extract): Likewise. + (resolve_vec_insert): Likewise. + (resolve_vec_step): Likewise. + (find_instance): Likewise. + (altivec_resolve_overloaded_builtin): Many cleanups. Call factored-out + functions. Move variable declarations closer to uses. Add commentary. + Remove unnecessary levels of braces. Avoid use of gotos. Change + misleading variable names. Use switches over if-else-if chains. + +2021-12-16 Przemyslaw Wirkus + + PR target/103729 + * config/aarch64/aarch64-simd.md (aarch64_movv8di): Allow big endian + targets to move V8DI. + +2021-12-16 Tobias Burnus + + PR driver/103644 + * gcc.c (check_offload_target_name): Add 'default' and 'disable' + to the candidate list. + +2021-12-15 Iain Sandoe + + * configure: Regenerate. + +2021-12-15 Roger Sayle + + * config/nvptx/nvptx-opts.h (ptx_isa): PTX_ISA_SM75 and PTX_ISA_SM80 + ISA levels. + * config/nvptx/nvptx.opt: Add sm_75 and sm_80 to -misa. + * config/nvptx/nvptx.h (TARGET_SM75, TARGET_SM80): + New helper macros to conditionalize functionality on target ISA. + * config/nvptx/nvptx-c.c (nvptx_cpu_cpp_builtins): Add __PTX_SM__ + support for the new ISA levels. + * config/nvptx/nvptx.c (nvptx_file_start): Add support for TARGET_SM75 + and TARGET_SM80. + * config/nvptx/nvptx.md (define_c_enum "unspec"): New UNSPEC_TANH. + (define_mode_iterator HSFM): New iterator for HFmode and SFmode. + (exp2hf2): New define_insn controlled by TARGET_SM75. + (tanh2): New define_insn controlled by TARGET_SM75. + (sminhf3, smaxhf3): New define_isnns controlled by TARGET_SM80. + +2021-12-15 Tom de Vries + + * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_7_0. + * config/nvptx/nvptx.c (nvptx_file_start): Handle TARGET_PTX_7_0. + * config/nvptx/nvptx.h (TARGET_PTX_7_0): New macro. + * config/nvptx/nvptx.opt (ptx_version): Add 7.0. + +2021-12-15 Richard Sandiford + Tamar Christina + + PR target/103094 + * config/aarch64/aarch64.c (aarch64_short_vector_p): Return false + for structure modes, rather than ignoring the type in that case. + +2021-12-15 Tamar Christina + + PR rtl-optimization/103350 + * ree.c (add_removable_extension): Don't stop at first definition but + inspect all. + +2021-12-15 Jakub Jelinek + + PR debug/103619 + * dwarf2cfi.c (dwf_cfa_reg): Remove gcc_assert. + (operator==, operator!=): New overloaded operators. + (dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_offset, + dwarf2out_frame_debug_expr): Compare vars with cfa_reg type directly + with REG rtxes rather than with dwf_cfa_reg results on those REGs. + (create_cie_data): Use stack_pointer_rtx instead of + gen_rtx_REG (Pmode, STACK_POINTER_REGNUM). + (execute_dwarf2_frame): Use hard_frame_pointer_rtx instead of + gen_rtx_REG (Pmode, HARD_FRAME_POINTER_REGNUM). + +2021-12-15 Martin Liska + + PR target/103661 + * config/i386/i386-builtins.c (fold_builtin_cpu): Compare to 0 + as API expects that non-zero values are returned (do that + it mask == 31). + For "avx512vbmi2" argument, we return now 1 << 31, which is a + negative integer value. + +2021-12-15 Haochen Jiang + + PR target/101796 + * config/i386/predicates.md (const_vector_operand): + Add new predicate. + * config/i386/sse.md(3): + Add new define_split below. + +2021-12-15 Michael Meissner + + * config/rs6000/rs6000.md (UNSPEC_XXSPLTIDP_CONST): New unspec. + (UNSPEC_XXSPLTIW_CONST): New unspec. + (movsf_hardfloat): Add support for generating XXSPLTIDP. + (mov_hardfloat32): Likewise. + (mov_hardfloat64): Likewise. + (xxspltidp__internal): New insns. + (xxspltiw__internal): New insns. + (splitters for SF/DFmode): Add new splitters for XXSPLTIDP. + +2021-12-15 Michael Meissner + + * config/rs6000/predicates.md (easy_fp_constant): Add support for + generating XXSPLTIDP. + (vsx_prefixed_constant): Likewise. + (easy_vector_constant): Likewise. + * config/rs6000/rs6000-protos.h (constant_generates_xxspltidp): + New declaration. + * config/rs6000/rs6000.c (output_vec_const_move): Add support for + generating XXSPLTIDP. + (prefixed_xxsplti_p): Likewise. + (constant_generates_xxspltidp): New function. + * config/rs6000/rs6000.opt (-msplat-float-constant): New debug option. + +2021-12-15 Michael Meissner + + * config/rs6000/constraints.md (eP): Update comment. + * config/rs6000/predicates.md (easy_fp_constant): Add support for + generating XXSPLTIW. + (vsx_prefixed_constant): New predicate. + (easy_vector_constant): Add support for + generating XXSPLTIW. + * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): New + declaration. + (constant_generates_xxspltiw): Likewise. + * config/rs6000/rs6000.c (xxspltib_constant_p): Generate XXSPLTIW + if possible instead of XXSPLTIB and sign extending the constant. + (output_vec_const_move): Add support for XXSPLTIW. + (prefixed_xxsplti_p): New function. + (constant_generates_xxspltiw): New function. + * config/rs6000/rs6000.md (prefixed attribute): Add support to + mark XXSPLTI* instructions as being prefixed. + * config/rs6000/rs6000.opt (-msplat-word-constant): New debug + switch. + * config/rs6000/vsx.md (vsx_mov_64bit): Add support for + generating XXSPLTIW or XXSPLTIDP. + (vsx_mov_32bit): Likewise. + * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the + eP constraint. + +2021-12-15 Michael Meissner + + * config/rs6000/constraints.md (eQ): New constraint. + * config/rs6000/predicates.md (easy_fp_constant): Add support for + generating the LXVKQ instruction. + (easy_vector_constant_ieee128): New predicate. + (easy_vector_constant): Add support for generating the LXVKQ + instruction. + * config/rs6000/rs6000-protos.h (constant_generates_lxvkq): New + declaration. + * config/rs6000/rs6000.c (output_vec_const_move): Add support for + generating LXVKQ. + (constant_generates_lxvkq): New function. + * config/rs6000/rs6000.opt (-mieee128-constant): New debug + option. + * config/rs6000/vsx.md (vsx_mov_64bit): Add support for + generating LXVKQ. + (vsx_mov_32bit): Likewise. + * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the + eQ constraint. + +2021-12-15 Michael Meissner + + * config/rs6000/rs6000-protos.h (VECTOR_128BIT_BITS): New macro. + (VECTOR_128BIT_BYTES): Likewise. + (VECTOR_128BIT_HALF_WORDS): Likewise. + (VECTOR_128BIT_WORDS): Likewise. + (VECTOR_128BIT_DOUBLE_WORDS): Likewise. + (vec_const_128bit_type): New structure type. + (vec_const_128bit_to_bytes): New declaration. + * config/rs6000/rs6000.c (constant_int_to_128bit_vector): New + helper function. + (constant_fp_to_128bit_vector): New helper function. + (vec_const_128bit_to_bytes): New function. + +2021-12-15 Alexandre Oliva + + PR target/100518 + * builtins.c (try_store_by_multiple_pieces): Drop address + conversion to ptr_mode. + +2021-12-15 Alexandre Oliva + + PR middle-end/100843 + * builtins.c (try_store_by_multiple_pieces): Fail if min_len + is greater than max_len. + +2021-12-14 liuhongt + + PR target/103682 + * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Check + is_gimple_assign before gimple_assign_rhs_code. + +2021-12-14 Sören Tempel + + * ginclude/stddef.h (__DEFINED_ptrdiff_t): Add support for musl + libc typedef macro guard. + (__DEFINED_size_t): Ditto. + (__DEFINED_wchar_t): Ditto. + +2021-12-14 JoJo R + + * regrename.c (find_rename_reg): Return satisfied regno + if instruction is noop move. + +2021-12-14 Bill Schmidt + + * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Rename + rs6000_builtin_decls_x to rs6000_builtin_decls. + (altivec_resolve_overloaded_builtin): Likewise. Also rename + rs6000_builtin_info_x to rs6000_builtin_info. + * config/rs6000/rs6000-call.c (rs6000_invalid_builtin): Rename + rs6000_builtin_info_x to rs6000_builtin_info. + (rs6000_builtin_is_supported): Likewise. + (rs6000_gimple_fold_mma_builtin): Likewise. Also rename + rs6000_builtin_decls_x to rs6000_builtin_decls. + (rs6000_gimple_fold_builtin): Rename rs6000_builtin_info_x to + rs6000_builtin_info. + (cpu_expand_builtin): Likewise. + (rs6000_expand_builtin): Likewise. + (rs6000_init_builtins): Likewise. Also rename rs6000_builtin_decls_x + to rs6000_builtin_decls. + (rs6000_builtin_decl): Rename rs6000_builtin_decls_x to + rs6000_builtin_decls. + * config/rs6000/rs6000-gen-builtins.c (write_decls): In generated code, + rename rs6000_builtin_decls_x to rs6000_builtin_decls, and rename + rs6000_builtin_info_x to rs6000_builtin_info. + (write_bif_static_init): In generated code, rename + rs6000_builtin_info_x to rs6000_builtin_info. + (write_init_bif_table): In generated code, rename + rs6000_builtin_decls_x to rs6000_builtin_decls, and rename + rs6000_builtin_info_x to rs6000_builtin_info. + (write_init_ovld_table): In generated code, rename + rs6000_builtin_decls_x to rs6000_builtin_decls. + (write_init_file): Likewise. + * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): + Likewise. + (rs6000_builtin_md_vectorized_function): Likewise. + (rs6000_builtin_reciprocal): Likewise. + (add_condition_to_bb): Likewise. + (rs6000_atomic_assign_expand_fenv): Likewise. + +2021-12-14 Bill Schmidt + + * config/rs6000/rs6000-c.c (altivec_resolve_new_overloaded_builtin): + Remove forward declaration. + (rs6000_new_builtin_type_compatible): Rename to + rs6000_builtin_type_compatible. + (rs6000_builtin_type_compatible): Remove. + (altivec_resolve_overloaded_builtin): Remove. + (altivec_build_new_resolved_builtin): Rename to + altivec_build_resolved_builtin. + (altivec_resolve_new_overloaded_builtin): Rename to + altivec_resolve_overloaded_builtin. Remove static keyword. Adjust + called function names. + * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Remove + forward declaration. + (rs6000_gimple_fold_new_builtin): Likewise. + (rs6000_invalid_new_builtin): Rename to rs6000_invalid_builtin. + (rs6000_gimple_fold_builtin): Remove. + (rs6000_new_builtin_valid_without_lhs): Rename to + rs6000_builtin_valid_without_lhs. + (rs6000_new_builtin_is_supported): Rename to + rs6000_builtin_is_supported. + (rs6000_gimple_fold_new_mma_builtin): Rename to + rs6000_gimple_fold_mma_builtin. + (rs6000_gimple_fold_new_builtin): Rename to + rs6000_gimple_fold_builtin. Remove static keyword. Adjust called + function names. + (rs6000_expand_builtin): Remove. + (new_cpu_expand_builtin): Rename to cpu_expand_builtin. + (new_mma_expand_builtin): Rename to mma_expand_builtin. + (new_htm_spr_num): Rename to htm_spr_num. + (new_htm_expand_builtin): Rename to htm_expand_builtin. Change name + of called function. + (rs6000_expand_new_builtin): Rename to rs6000_expand_builtin. Remove + static keyword. Adjust called function names. + (rs6000_new_builtin_decl): Rename to rs6000_builtin_decl. Remove + static keyword. + (rs6000_builtin_decl): Remove. + * config/rs6000/rs6000-gen-builtins.c (write_decls): In gnerated code, + rename rs6000_new_builtin_is_supported to rs6000_builtin_is_supported. + * config/rs6000/rs6000-internal.h (rs6000_invalid_new_builtin): Rename + to rs6000_invalid_builtin. + * config/rs6000/rs6000.c (rs6000_new_builtin_vectorized_function): + Rename to rs6000_builtin_vectorized_function. + (rs6000_new_builtin_md_vectorized_function): Rename to + rs6000_builtin_md_vectorized_function. + (rs6000_builtin_vectorized_function): Remove. + (rs6000_builtin_md_vectorized_function): Remove. + +2021-12-14 Bill Schmidt + + * config/rs6000/rs6000-builtin.def: Delete. + * config/rs6000/rs6000-call.c (builtin_compatibility): Delete. + (builtin_description): Delete. + (builtin_hash_struct): Delete. + (builtin_hasher): Delete. + (builtin_hash_table): Delete. + (builtin_hasher::hash): Delete. + (builtin_hasher::equal): Delete. + (rs6000_builtin_info_type): Delete. + (rs6000_builtin_info): Delete. + (bdesc_compat): Delete. + (bdesc_3arg): Delete. + (bdesc_4arg): Delete. + (bdesc_dst): Delete. + (bdesc_2arg): Delete. + (bdesc_altivec_preds): Delete. + (bdesc_abs): Delete. + (bdesc_1arg): Delete. + (bdesc_0arg): Delete. + (bdesc_htm): Delete. + (bdesc_mma): Delete. + (rs6000_overloaded_builtin_p): Delete. + (rs6000_overloaded_builtin_name): Delete. + (htm_spr_num): Delete. + (rs6000_builtin_is_supported_p): Delete. + (rs6000_gimple_fold_mma_builtin): Delete. + (gt-rs6000-call.h): Remove include directive. + * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Delete. + (rs6000_builtin_is_supported_p): Delete. + (rs6000_overloaded_builtin_name): Delete. + * config/rs6000/rs6000.c (rs6000_builtin_decls): Delete. + (rs6000_debug_reg_global): Remove reference to RS6000_BUILTIN_COUNT. + * config/rs6000/rs6000.h (rs6000_builtins): Delete. + (altivec_builtin_types): Delete. + (rs6000_builtin_decls): Delete. + * config/rs6000/t-rs6000 (TM_H): Don't add rs6000-builtin.def. + +2021-12-14 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: Rename to... + * config/rs6000/rs6000-builtins.def: ...this. + * config/rs6000/rs6000-gen-builtins.c: Adjust header commentary. + * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Rename + rs6000-builtin-new.def to rs6000-builtins.def. + (rs6000-builtins.c): Likewise. + +2021-12-14 Bill Schmidt + + * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Remove. + * config/rs6000/rs6000.h (altivec_overloaded_builtins): Remove. + +2021-12-14 Peter Bergner + + PR target/103548 + * config/rs6000/mma.md (UNSPEC_MMA_ASSEMBLE): Rename unspec from this... + (UNSPEC_VSX_ASSEMBLE): ...to this. + (UNSPECV_MMA_ASSEMBLE): New unspecv. + (vsx_assemble_pair): Use UNSPEC_VSX_ASSEMBLE. + (*vsx_assemble_pair): Likewise. + (mma_assemble_acc): Use UNSPECV_MMA_ASSEMBLE. + (*mma_assemble_acc): Likewise. + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle + UNSPEC_VOLATILE. Use UNSPEC_VSX_ASSEMBLE and UNSPECV_MMA_ASSEMBLE. + +2021-12-14 Uroš Bizjak + + PR target/103571 + * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate) + : Implement for TARGET_SSE2. + : Implement for TARGET_AVX. + : Implement for TARGET_AVX512F. + (ix86_expand_vector_set_var): Handle V32HFmode + without TARGET_AVX512BW. + (ix86_expand_vector_extract) + : Implement for TARGET_SSE2. + : Implement for TARGET_AVX. + : Implement for TARGET_AVX512BW. + (expand_vec_perm_broadcast_1) : New. + * config/i386/sse.md (VI12HF_AVX512VL): Remove + TARGET_AVX512FP16 condition. + (V): Ditto. + (V_256_512): Ditto. + (avx_vbroadcastf128_): Use V_256H mode iterator. + +2021-12-14 Bill Schmidt + + * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Remove + test for new_builtins_are_live and simplify. + * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Remove + dead function. + (altivec_resolve_overloaded_builtin): Remove test for + new_builtins_are_live and simplify. + * config/rs6000/rs6000-call.c (altivec_init_builtins): Remove forward + declaration. + (builtin_function_type): Likewise. + (rs6000_common_init_builtins): Likewise. + (htm_init_builtins): Likewise. + (mma_init_builtins): Likewise. + (def_builtin): Remove dead function. + (rs6000_expand_zeroop_builtin): Likewise. + (rs6000_expand_mtfsf_builtin): Likewise. + (rs6000_expand_mtfsb_builtin): Likewise. + (rs6000_expand_set_fpscr_rn_builtin): Likewise. + (rs6000_expand_set_fpscr_drn_builtin): Likewise. + (rs6000_expand_unop_builtin): Likewise. + (altivec_expand_abs_builtin): Likewise. + (rs6000_expand_binop_builtin): Likewise. + (altivec_expand_lxvr_builtin): Likewise. + (altivec_expand_lv_builtin): Likewise. + (altivec_expand_stxvl_builtin): Likewise. + (altivec_expand_stv_builtin): Likewise. + (mma_expand_builtin): Likewise. + (htm_expand_builtin): Likewise. + (cpu_expand_builtin): Likewise. + (rs6000_expand_quaternop_builtin): Likewise. + (rs6000_expand_ternop_builtin): Likewise. + (altivec_expand_dst_builtin): Likewise. + (altivec_expand_vec_sel_builtin): Likewise. + (altivec_expand_builtin): Likewise. + (rs6000_invalid_builtin): Likewise. + (rs6000_builtin_valid_without_lhs): Likewise. + (rs6000_gimple_fold_builtin): Remove test for new_builtins_are_live and + simplify. + (rs6000_expand_builtin): Likewise. + (rs6000_init_builtins): Remove tests for new_builtins_are_live and + simplify. + (rs6000_builtin_decl): Likewise. + (altivec_init_builtins): Remove dead function. + (mma_init_builtins): Likewise. + (htm_init_builtins): Likewise. + (builtin_quaternary_function_type): Likewise. + (builtin_function_type): Likewise. + (rs6000_common_init_builtins): Likewise. + * config/rs6000/rs6000-gen-builtins.c (write_header_file): Don't + declare new_builtins_are_live. + (write_init_bif_table): In generated code, remove test for + new_builtins_are_live and simplify. + (write_init_ovld_table): Likewise. + (write_init_file): Don't initialize new_builtins_are_live. + * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove + test for new_builtins_are_live and simplify. + (rs6000_builtin_md_vectorized_function): Likewise. + (rs6000_builtin_reciprocal): Likewise. + (add_condition_to_bb): Likewise. + (rs6000_atomic_assign_expand_fenv): Likewise. + +2021-12-14 Bill Schmidt + + PR target/103625 + * config/rs6000/rs6000-builtin-new.def (__builtin_altivec_vcmpequd): + Move to power8-vector stanza. + (__builtin_altivec_vcmpequd_p): Likewise. + (__builtin_altivec_vcmpgtsd): Likewise. + (__builtin_altivec_vcmpgtsd_p): Likewise. + (__builtin_altivec_vcmpgtud): Likewise. + (__builtin_altivec_vcmpgtud_p): Likewise. + +2021-12-14 Bill Schmidt + + PR target/103623 + * config/rs6000/rs6000-builtin-new.def (__builtin_pack_longdouble): Add + ibmld attribute. + (__builtin_unpack_longdouble): Likewise. + * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Add special + handling for ibmld attribute. + * config/rs6000/rs6000-gen-builtins.c (attrinfo): Add isibmld. + (parse_bif_attrs): Handle ibmld. + (write_decls): Likewise. + (write_bif_static_init): Likewise. + +2021-12-14 Jan Hubicka + + PR ipa/103585 + * ipa-modref-tree.c (modref_access_node::range_info_useful_p): Handle + MODREF_GLOBAL_MEMORY_PARM. + (modref_access_node::dump): Likewise. + (modref_access_node::get_call_arg): Likewise. + * ipa-modref-tree.h (enum modref_special_parms): Add + MODREF_GLOBAL_MEMORY_PARM. + (modref_access_node::useful_for_kill): Handle + MODREF_GLOBAL_MEMORY_PARM. + (modref:tree::merge): Add promote_unknown_to_global. + * ipa-modref.c (verify_arg):New function. + (may_access_nonescaping_parm_p): New function. + (modref_access_analysis::record_global_memory_load): New member + function. + (modref_access_analysis::record_global_memory_store): Likewise. + (modref_access_analysis::process_fnspec): Distingush global and local + memory. + (modref_access_analysis::analyze_call): Likewise. + * tree-ssa-alias.c (ref_may_access_global_memory_p): New function. + (modref_may_conflict): Use it. + +2021-12-14 Przemyslaw Wirkus + + * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): + Define AARCH64_LS64_BUILTIN_LD64B, AARCH64_LS64_BUILTIN_ST64B, + AARCH64_LS64_BUILTIN_ST64BV, AARCH64_LS64_BUILTIN_ST64BV0. + (aarch64_init_ls64_builtin_decl): Helper function. + (aarch64_init_ls64_builtins): Helper function. + (aarch64_init_ls64_builtins_types): Helper function. + (aarch64_general_init_builtins): Init LS64 intrisics for + TARGET_LS64. + (aarch64_expand_builtin_ls64): LS64 intrinsics expander. + (aarch64_general_expand_builtin): Handle aarch64_expand_builtin_ls64. + (ls64_builtins_data): New helper struct. + (v8di_UP): New define. + * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define + __ARM_FEATURE_LS64. + * config/aarch64/aarch64.c (aarch64_classify_address): Enforce the + V8DI range (7-bit signed scaled) for both ends of the range. + * config/aarch64/aarch64-simd.md (movv8di): New pattern. + (aarch64_movv8di): New pattern. + * config/aarch64/aarch64.h (AARCH64_ISA_LS64): New define. + (TARGET_LS64): New define. + * config/aarch64/aarch64.md: Add UNSPEC_LD64B, UNSPEC_ST64B, + UNSPEC_ST64BV and UNSPEC_ST64BV0. + (ld64b): New define_insn. + (st64b): New define_insn. + (st64bv): New define_insn. + (st64bv0): New define_insn. + * config/aarch64/arm_acle.h (data512_t): New type derived from + __arm_data512_t. + (__arm_data512_t): New internal type. + (__arm_ld64b): New intrinsic. + (__arm_st64b): New intrinsic. + (__arm_st64bv): New intrinsic. + (__arm_st64bv0): New intrinsic. + * config/arm/types.md: Add new type ls64. + +2021-12-14 Olivier Hainque + + * config/i386/t-vxworks: Drop the fPIC multilibs. + +2021-12-14 Fred Konrad + + * config/rs6000/t-vxworks: Drop the fPIC multilib. + +2021-12-13 Vladimir N. Makarov + + PR target/99531 + * ira-costs.c (record_operand_costs): Do not take pseudo class + calculated on the 1st iteration into account when processing move + involving the pseudo and a hard register. + +2021-12-13 Roger Sayle + + * config/i386/i386.md (define_split any_or:SWI248 -> orb %?h): + Optimize the case where the integer constant operand is zero. + +2021-12-13 Doug Rupp + Olivier Hainque + + * config/vxworks.h (VXWORKS_LINK_OS_SPEC): New spec. + (VXWORKS_BASE_LINK_SPEC): New spec, using the former. + (VXWORKS_EXTRA_LINK_SPEC): New spec for old and new VxWorks. + (VXWORKS_LINK_SPEC): Combo of BASE and EXTRA specs. + * config/rs6000/vxworks.h (VXWORKS_LINK_OS_SPEC): Empty. + (LINK_OS_EXTRA_SPEC32): Use VXWORKS_LINK_SPEC. + (LINK_OS_EXTRA_SPEC64): Likewise. + +2021-12-13 Fred Konrad + Olivier Hainque + + * config/vxworks.h (VXWORKS_BASE_LIBS_RTP): Guard -lc_internal + on !shared+!non-static and document. + (VXWORKS_LIB_SPEC): Remove the bits intended to drag the + init/fini functions from libc_internal in the shared lib case. + (VX_CRTBEGIN_SPEC/VX_CRTEND_SPEC): Use vxcrtstuff objects also in + configurations with shared lib and INITFINI_ARRAY support. + +2021-12-13 Fred Konrad + Olivier Hainque + + * config/vx-common.h: Define REAL_LIBGCC_SPEC since the + '-non-static' option is not standard. + * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Implement the LIBGCC_SPEC + since REAL_LIBGCC_SPEC is used now. + (STARTFILE_PREFIX_SPEC): Use the PIC VSB when building shared libraries + or non-static binaries. + +2021-12-13 Jan Hubicka + + * common.opt: Add -fipa-strict-aliasing. + * doc/invoke.texi: Document -fipa-strict-aliasing. + * ipa-modref.c (modref_access_analysis::record_access): Honor + -fipa-strict-aliasing. + (modref_access_analysis::record_access_lto): Likewise. + +2021-12-13 Kyrylo Tkachov + + * config/aarch64/aarch64-arches.def (armv8.8-a): Define. + * config/aarch64/aarch64.h (AARCH64_FL_V8_8): Define. + (AARCH64_FL_FOR_ARCH8_8): Define. + * doc/invoke.texi: Document -march=armv8.8-a. + +2021-12-13 Kyrylo Tkachov + + * config/aarch64/aarch64.c (aarch64_expand_setmem_mops): Define. + (aarch64_expand_setmem): Adjust for TARGET_MOPS. + * config/aarch64/aarch64.h (CLEAR_RATIO): Adjust for TARGET_MOPS. + (SET_RATIO): Likewise. + * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_SETMEM. + (aarch64_setmemdi): Define. + (setmemdi): Adjust for TARGET_MOPS. + * config/aarch64/aarch64.opt (aarch64-mops-memset-size-threshold): + New param. + +2021-12-13 Kyrylo Tkachov + + * config/aarch64/aarch64.md (aarch64_movmemdi): Define. + (movmemdi): Define. + (unspec): Add UNSPEC_MOVMEM. + * config/aarch64/aarch64.opt (aarch64-mops-memmove-size-threshold): + New param. + +2021-12-13 Kyrylo Tkachov + + * config/aarch64/aarch64-option-extensions.def (mops): Define. + * config/aarch64/aarch64.c (aarch64_expand_cpymem_mops): Define. + (aarch64_expand_cpymem): Define. + * config/aarch64/aarch64.h (AARCH64_FL_MOPS): Define. + (AARCH64_ISA_MOPS): Define. + (TARGET_MOPS): Define. + (MOVE_RATIO): Adjust for TARGET_MOPS. + * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_CPYMEM. + (aarch64_cpymemdi): New pattern. + (cpymemdi): Adjust for TARGET_MOPS. + * config/aarch64/aarch64.opt (aarch64-mops-memcpy-size-threshol): + New param. + * doc/invoke.texi (AArch64 Options): Document +mops. + +2021-12-13 Martin Liska + + PR ipa/103636 + * ipa-inline.c (can_inline_edge_p): Move logic checking + no_profile_instrument_function logic to ... + (can_early_inline_edge_p): ... here. + +2021-12-13 Olivier Hainque + + * config/vxworks/_yvals.h: #include yvals.h also if + defined(__RTP__). + +2021-12-13 Olivier Hainque + + * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): Define + _C99 for C++. + +2021-12-13 Olivier Hainque + + * config/t-vxworks: Clear NATIVE_SYSTEM_HEADER_DIR. + * config/vxworks.h (SYSROOT_HEADERS_SUFFIX_SPEC): Define, for + VxWorks 7 and earlier. + (VXWORKS_ADDITIONAL_CPP_SPEC): Simplify accordingly. + (STARTFILE_PREFIX_SPEC): Adjust accordingly. + * config/rs6000/vxworks.h (STARTFILE_PREFIX_SPEC): Adjust. + +2021-12-13 Martin Liska + + * doc/extend.texi: Use @item for the first @itemx entry. + +2021-12-13 Jakub Jelinek + + * machmode.h (gt_pch_nx): Use gt_pointer_operator as type of second + argument instead of equivalent void (*) (void *, void *, void *). + * poly-int.h (gt_pch_nx): Likewise. + * wide-int.h (gt_pch_nx): Likewise. + * config/aarch64/aarch64-sve-builtins.cc (gt_pch_nx): Likewise. + +2021-12-13 Jan Hubicka + + PR ipa/103513 + * ipa-fnsummary.c (evaluate_conditions_for_known_args): Do not ICE + on ternary expression. + +2021-12-13 Kewen Lin + + PR target/103515 + * attribs.c (decl_attributes): Check if target options change and + create one node if so. + +2021-12-12 Jonathan Wakely + + * Makefile.in: Remove unique-ptr-tests.o. + * selftest-run-tests.c (selftest::run_tests): Remove + unique_ptr_tests_cc_tests. + * selftest.h (unique_ptr_tests_cc_tests): Remove. + * system.h: Check INCLUDE_MEMORY instead of INCLUDE_UNIQUE_PTR + and include instead of "unique-ptr.h". + * unique-ptr-tests.cc: Removed. + +2021-12-12 Roger Sayle + + * config/nvptx/nvptx-opts.h (ptx_isa): Add PTX_ISA_SM53 ISA level + to enumeration. + * config/nvptx/nvptx.opt: Add sm_53 to -misa. + * config/nvptx/nvptx-modes.def: Add support for HFmode. + * config/nvptx/nvptx.h (TARGET_SM53): + New helper macro to conditionalize functionality on target ISA. + * config/nvptx/nvptx-c.c (nvptx_cpu_cpp_builtins): Add __PTX_SM__ + support for the new ISA levels. + * config/nvptx/nvptx.c (nvtx_ptx_type_from_mode): Support new HFmode + with the ".f16" suffix/qualifier. + (nvptx_file_start): Add support for TARGET_SM53. + (nvptx_omp_device_kind_arch_isa): Add support for TARGET_SM53 + and tweak TARGET_SM35. + (nvptx_scalar_mode_supported_p): Target hook with conditional + HFmode support on TARGET_SM53 and higher. + (nvptx_libgcc_floating_mode_supported_p): Likewise. + (TARGET_SCALAR_MODE_SUPPORTED_P): Use nvptx_scalar_mode_supported_p. + (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Likewise, use new hook. + * config/nvptx/nvptx.md (*movhf_insn): New define_insn. + (movhf): New define_expand for HFmode moves. + (addhf3, subhf3, mulhf, extendhf2, trunchf2): New + instructions conditional on TARGET_SM53 (i.e. -misa=sm_53). + +2021-12-12 Jan Hubicka + + PR ipa/103665 + * ipa-modref.c (modref_access_analysis::analyze): Terminate BB + analysis on NULL memory access. + * ipa-pure-const.c (analyze_function): Likewise. + +2021-12-11 Jan Hubicka + + * ipa-profile.c (ipa_profile): Do not update hot bb threshold. + +2021-12-11 Jan Hubicka + + * ipa-modref.c (get_modref_function_summary): Use ultimate_alias_target. + (ignore_edge): Likewise. + (compute_parm_map): Likewise. + (modref_propagate_in_scc): Likewise. + (modref_propagate_flags_in_scc): Likewise. + +2021-12-10 Jason Merrill + + * symtab.c (symtab_node::equal_address_to): Fix comment typo. + +2021-12-10 Doug Rupp + + * config/vxworks.h (LINK_SPEC): Remove %(link_target). + Change %{v:-v} to %{v:-V}. + +2021-12-10 Olivier Hainque + + * config/t-vxworks: Remove assignment to STMP_FIXINC. + +2021-12-10 Martin Liska + + * params.opt: Add missing dot. + +2021-12-10 Roger Sayle + + PR ipa/103601 + * ipa-modref-tree.h (useful_for_kill_p): Zero width accesses aren't + useful for kill tracking. + +2021-12-10 Andrew Stubbs + + * config/gcn/mkoffload.c (process_asm): Process the variable table + completely differently. + (process_obj): Encode the varaible data differently. + +2021-12-10 Joel Hutton + + PR tree-optimization/103523 + * tree-vect-loop.c (vectorizable_induction): Check for + PLUS_EXPR/MINUS_EXPR support. + +2021-12-10 Cui,Lili + + * config/i386/i386.c (ix86_vector_costs::add_stmt_cost): Remove Tremont. + +2021-12-09 Jan Hubicka + + * doc/invoke.texi (max-inline-functions-called-once-loop-depth, + max-inline-functions-called-once-insns): New parameters. + * ipa-inline.c (check_callers): Handle + param_inline_functions_called_once_loop_depth and + param_inline_functions_called_once_insns. + (edge_badness): Fix linebreaks. + * params.opt (param=max-inline-functions-called-once-loop-depth, + param=max-inline-functions-called-once-insn): New params. + +2021-12-09 Martin Sebor + + PR tree-optimization/103215 + * pointer-query.cc (access_ref::merge_ref): Extend the offset and + size of the merged object instead of using the larger. + +2021-12-09 Martin Sebor + + PR middle-end/101751 + * doc/extend.texi (attribute access): Adjust. + * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes): + Treat access mode none on a void* argument as expecting as few as + zero bytes. + +2021-12-09 Jakub Jelinek + + PR pch/71934 + * config/aarch64/aarch64-sve-builtins.cc (gt_pch_nx): Change type of + second argument from function with 2 pointer arguments to function + with 3 pointer arguments. + +2021-12-09 Olivier Hainque + + * config/aarch64/aarch64-vxworks.h (TARGET_OS_CPP_BUILTINS): + Use VX_CPU_PREFIX in CPU definitions. + +2021-12-09 Martin Sebor + + * pointer-query.cc (access_ref::dump): Define new function + (pointer_query::dump): Call it. + * pointer-query.h (access_ref::dump): Declare new function. + +2021-12-09 Martin Sebor + + * pointer-query.cc (compute_objsize_r): Add an argument. + (gimple_call_return_array): Pass a new argument to compute_objsize_r. + (access_ref::merge_ref): Same. + (access_ref::inform_access): Add an argument and use it. + (access_data::access_data): Initialize new member. + (handle_min_max_size): Pass a new argument to compute_objsize_r. + (handle_decl): New function. + (handle_array_ref): Pass a new argument to compute_objsize_r. + Avoid incrementing deref. + (set_component_ref_size): New function. + (handle_component_ref): New function. + (handle_mem_ref): Pass a new argument to compute_objsize_r. + Only increment deref after successfully computing object size. + (handle_ssa_name): New function. + (compute_objsize_r): Move code into helpers and call them. + (compute_objsize): Pass a new argument to compute_objsize_r. + * pointer-query.h (access_ref::inform_access): Add an argument. + (access_data::ostype): New member. + +2021-12-09 Martin Sebor + + * pointer-query.cc (access_ref::merge_ref): Define new function. + (access_ref::get_ref): Move code into merge_ref and call it. + * pointer-query.h (access_ref::merge_ref): Declare new function. + +2021-12-09 Martin Sebor + + * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Pass + GIMPLE statement to compute_objsize. + * pointer-query.cc (compute_objsize): Add a statement argument. + * pointer-query.h (compute_objsize): Define a new overload. + +2021-12-09 Martin Sebor + + * gimple-ssa-warn-access.cc (check_access): Adjust to member name + change. + (pass_waccess::check_strncmp): Same. + * pointer-query.cc (access_ref::access_ref): Remove arguments. + Simpilfy. + (access_data::access_data): Define new ctors. + (access_data::set_bound): Define new member function. + (compute_objsize_r): Remove unnecessary code. + * pointer-query.h (struct access_ref): Remove ctor arguments. + (struct access_data): Declare ctor overloads. + (access_data::dst_bndrng): New member. + (access_data::src_bndrng): New member. + +2021-12-09 Martin Sebor + + PR middle-end/103143 + * pointer-query.cc (gimple_call_return_array): Call compute_objsize_r. + +2021-12-09 Olivier Hainque + Rasmus Villemoes + + * Makefile.in (T_STDINT_GCC_H): New variable, path to + stdint-gcc.h that a target configuration may override when + use_gcc_stdint is "provide". + (stmp-int-hdrs): Depend on it and copy that for + USE_GCC_INT=provide. + * config.gcc (vxworks): Revert to use_gcc_stdint=provide. + * config/t-vxworks (T_STDINT_GCC_H): Define, as vxw-stdint-gcc.h. + (vxw-stdint-gcc.h): New target, produced from the original + stdint-gcc.h. + (vxw-glimits.h): Use an automatic variable to designate the + first and only prerequisite. + * config/vxworks/stdint.h: Remove. + +2021-12-09 Iain Sandoe + + PR pch/71934 + * config/host-darwin.c (SAFE_ALLOC_SIZE): Remove. + (darwin_gt_pch_get_address): Rework for relocatable PCH. + (darwin_gt_pch_use_address): Likewise. + +2021-12-09 Jakub Jelinek + + PR pch/71934 + * config/host-darwin.c (darwin_gt_pch_use_address): When reading + manually the file into mapped area, update mapped_addr as + an automatic variable rather than addr which is a reference parameter. + * config/host-hpux.c (hpux_gt_pch_use_address): When reading + manually the file into mapped area, update addr as + an automatic variable rather than base which is a reference parameter. + +2021-12-09 Jakub Jelinek + + PR pch/71934 + * coretypes.h (gt_pointer_operator): Use 3 pointer arguments instead + of two. + * gengtype.c (struct walk_type_data): Add in_nested_ptr argument. + (walk_type): Temporarily set d->in_nested_ptr around nested_ptr + handling. + (write_types_local_user_process_field): Pass a new middle pointer + to gt_pointer_operator op calls, if d->in_nested_ptr pass there + address of d->prev_val[2], otherwise NULL. + (write_types_local_process_field): Likewise. + * ggc-common.c (relocate_ptrs): Add real_ptr_p argument. If equal + to ptr_p, do nothing, otherwise if NULL remember ptr_p's + or if non-NULL real_ptr_p's corresponding new address in + reloc_addrs_vec. + (reloc_addrs_vec): New variable. + (compare_ptr, read_uleb128, write_uleb128): New functions. + (gt_pch_save): When iterating over objects through relocate_ptrs, + save current i into state.ptrs_i. Sort reloc_addrs_vec and emit + it as uleb128 of differences between pointer addresses into the + PCH file. + (gt_pch_restore): Allow restoring of PCH to a different address + than the preferred one, in that case adjust global pointers by bias + and also adjust by bias addresses read from the relocation table + as uleb128 differences. Otherwise fseek over it. Perform + gt_pch_restore_stringpool only after adjusting callbacks and for + callback adjustments also take into account the bias. + (default_gt_pch_use_address): Change type of first argument from + void * to void *&. + (mmap_gt_pch_use_address): Likewise. + * ggc-tests.c (gt_pch_nx): Pass NULL as new middle argument to op. + * hash-map.h (hash_map::pch_nx_helper): Likewise. + (gt_pch_nx): Likewise. + * hash-set.h (gt_pch_nx): Likewise. + * hash-table.h (gt_pch_nx): Likewise. + * hash-traits.h (ggc_remove::pch_nx): Likewise. + * hosthooks-def.h (default_gt_pch_use_address): Change type of first + argument from void * to void *&. + (mmap_gt_pch_use_address): Likewise. + * hosthooks.h (struct host_hooks): Change type of first argument of + gt_pch_use_address hook from void * to void *&. + * machmode.h (gt_pch_nx): Expect a callback with 3 pointers instead of + two in the middle argument. + * poly-int.h (gt_pch_nx): Likewise. + * stringpool.c (gt_pch_nx): Pass NULL as new middle argument to op. + * tree-cfg.c (gt_pch_nx): Likewise, except for LOCATION_BLOCK pass + the same &(block) twice. + * value-range.h (gt_pch_nx): Pass NULL as new middle argument to op. + * vec.h (gt_pch_nx): Likewise. + * wide-int.h (gt_pch_nx): Likewise. + * config/host-darwin.c (darwin_gt_pch_use_address): Change type of + first argument from void * to void *&. + * config/host-darwin.h (darwin_gt_pch_use_address): Likewise. + * config/host-hpux.c (hpux_gt_pch_use_address): Likewise. + * config/host-linux.c (linux_gt_pch_use_address): Likewise. If + it couldn't succeed to mmap at the preferred location, set base + to the actual one. Update addr in the manual reading loop instead of + base. + * config/host-netbsd.c (netbsd_gt_pch_use_address): Change type of + first argument from void * to void *&. + * config/host-openbsd.c (openbsd_gt_pch_use_address): Likewise. + * config/host-solaris.c (sol_gt_pch_use_address): Likewise. + * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Likewise. + * config/rs6000/rs6000-gen-builtins.c (write_init_file): Pass NULL + as new middle argument to op in the generated code. + * doc/gty.texi: Adjust samples for the addition of middle pointer + to gt_pointer_operator callback. + +2021-12-09 Alexandre Oliva + + PR target/103097 + * reg-stack.c (convert_regs_1): Move any_malformed_asm + resetting... + (reg_to_stack): ... here. + +2021-12-09 Alexandre Oliva + + PR target/103302 + * expr.c (emit_move_multi_word): Skip clobber during lra. + +2021-12-09 Alexandre Oliva + + PR tree-optimization/103024 + PR middle-end/103530 + * gimple-harden-conditionals.cc (non_eh_succ_edge): New. + (pass_harden_compares::execute): Accept 1-bit integral types, + and cope with throwing compares. + +2021-12-08 Iain Sandoe + + * config/darwin.h (DARWIN_PIE_SPEC): Add -no_pie when + linking mdynamic-no-pic code on macOS > 10.7. + +2021-12-08 Dimitar Dimitrov + + * config/pru/pru.c (pru_section_type_flags): New function. + (TARGET_SECTION_TYPE_FLAGS): Wire it. + +2021-12-08 David Faust + + * config/bpf/bpf.c (handle_attr_preserve): Avoid calling + is_gimple_assign with a NULL pointer. + +2021-12-08 Martin Liska + + * profile-count.c (profile_count::dump): Add function + that can dump to a provided buffer. + (profile_probability::dump): Likewise. + * profile-count.h: Likewise. + * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): + Use dump_printf_loc infrastructure. + (tree_unswitch_outer_loop): Likewise. + (find_loop_guard): Likewise. + (hoist_guard): Likewise. + +2021-12-08 Chung-Lin Tang + + * gimplify.c (extract_base_bit_offset): Add 'tree *offsetp' parameter, + accomodate case where 'offset' return of get_inner_reference is + non-NULL. + (is_or_contains_p): Further robustify conditions. + (omp_target_reorder_clauses): In alloc/to/from sorting phase, also + move following GOMP_MAP_ALWAYS_POINTER maps along. Add new sorting + phase where we make sure pointers with an attach/detach map are ordered + correctly. + (gimplify_scan_omp_clauses): Add modifications to avoid creating + GOMP_MAP_STRUCT and associated alloc map for attach/detach maps. + +2021-12-08 Roger Sayle + + * config/nvptx/nvptx.md (*extend_trunc_2_qi, + *extend_trunc_2_hi, *extend_trunc_di2_si): New insns. + Use cvt to perform sign-extension of truncation in one step. + +2021-12-08 Chung-Lin Tang + + PR middle-end/92120 + * gimplify.c ("tree-hash-traits.h"): Add include. + (gimplify_scan_omp_clauses): Change struct_map_to_clause to type + hash_map *. Adjust struct map handling to handle + cases of *A and A->B expressions. Under !DECL_P case of + GOMP_CLAUSE_MAP handling, add STRIP_NOPS for indir_p case, add to + struct_deref_set for map(*ptr_to_struct) cases. Add MEM_REF case when + handling component_ref_p case. Add unshare_expr and gimplification + when created GOMP_MAP_STRUCT is not a DECL. Add code to add + firstprivate pointer for *pointer-to-struct case. + (gimplify_adjust_omp_clauses): Move GOMP_MAP_STRUCT removal code for + exit data directives code to earlier position. + * omp-low.c (lower_omp_target): + Handle GOMP_MAP_ATTACH_ZERO_LENGTH_ARRAY_SECTION, and + GOMP_MAP_POINTER_TO_ZERO_LENGTH_ARRAY_SECTION map kinds. + * tree-pretty-print.c (dump_omp_clause): Likewise. + +2021-12-08 Andrew Stubbs + Hafiz Abid Qadeer + + * dwarf2cfi.c (dw_stack_pointer_regnum): Change type to struct cfa_reg. + (dw_frame_pointer_regnum): Likewise. + (new_cfi_row): Use set_by_dwreg. + (get_cfa_from_loc_descr): Use set_by_dwreg. Support register spans. + handle DW_OP_bregx with DW_OP_breg{0-31}. Support DW_OP_lit*, + DW_OP_const*, DW_OP_minus, DW_OP_shl and DW_OP_plus. + (lookup_cfa_1): Use set_by_dwreg. + (def_cfa_0): Update for cfa_reg and support register spans. + (reg_save): Change sreg parameter to struct cfa_reg. Support register + spans. + (dwf_cfa_reg): New function. + (dwarf2out_flush_queued_reg_saves): Use dwf_cfa_reg instead of + dwf_regno. + (dwarf2out_frame_debug_def_cfa): Likewise. + (dwarf2out_frame_debug_adjust_cfa): Likewise. + (dwarf2out_frame_debug_cfa_offset): Likewise. Update reg_save usage. + (dwarf2out_frame_debug_cfa_register): Likewise. + (dwarf2out_frame_debug_expr): Likewise. + (create_pseudo_cfg): Use set_by_dwreg. + (initial_return_save): Use set_by_dwreg and dwf_cfa_reg, + (create_cie_data): Use dwf_cfa_reg. + (execute_dwarf2_frame): Use dwf_cfa_reg. + (dump_cfi_row): Use set_by_dwreg. + * dwarf2out.c (build_span_loc, build_breg_loc): New function. + (build_cfa_loc): Support register spans. + (build_cfa_aligned_loc): Update cfa_reg usage. + (convert_cfa_to_fb_loc_list): Use set_by_dwreg. + * dwarf2out.h (struct cfa_reg): New type. + (struct dw_cfa_location): Use struct cfa_reg. + (build_span_loc): New prototype. + +2021-12-08 Haochen Jiang + + PR target/100738 + * config/i386/sse.md + (*_blendv_not_ltint): + Add new define_insn_and_split. + +2021-12-08 Alexandre Oliva + + PR middle-end/103149 + * gimple-harden-conditionals.cc (detach_value): Use memory if + general regs won't do. + +2021-12-07 Martin Liska + + PR middle-end/103438 + * config/s390/s390.c (s390_valid_target_attribute_inner_p): + Use new enum CLVC_INTEGER. + * opt-functions.awk: Use new CLVC_INTEGER. + * opts-common.c (set_option): Likewise. + (option_enabled): Return -1,0,1 for CLVC_INTEGER. + (get_option_state): Use new CLVC_INTEGER. + (control_warning_option): Likewise. + * opts.h (enum cl_var_type): Likewise. + +2021-12-07 H.J. Lu + + PR target/103594 + * config/i386/i386.c (ix86_call_use_plt_p): Check FUNCTION_DECL + before calling cgraph_node::get. + +2021-12-07 Richard Biener + + PR tree-optimization/103596 + * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): + Note we are not propagating into a PHI argument to may_propagate_copy. + * tree-ssa-propagate.h (may_propagate_copy): Add + argument specifying whether we propagate into a PHI arg. + * tree-ssa-propagate.c (may_propagate_copy): Likewise. + When not doing so we can replace an abnormal with + something else. + (may_propagate_into_stmt): Update may_propagate_copy calls. + (replace_exp_1): Move propagation checking code to + propagate_value and rename to ... + (replace_exp): ... this and elide previous wrapper. + (propagate_value): Perform checking with adjusted + may_propagate_copy call and dispatch to replace_exp. + +2021-12-07 Matthias Kretz + + * hash-map.h (hash_map::traverse): Let both overloads behave the + same. + * predict.c (assert_is_empty): Return true, thus not changing + behavior. + +2021-12-07 YunQiang Su + + * config/mips/mips.h (ISA_HAS_UNALIGNED_ACCESS, STRICT_ALIGNMENT): + R6 can unaligned access. + * config/mips/mips.md (movmisalign): Likewise. + * config/mips/mips.opt: add -m(no-)unaligned-access + * doc/invoke.texi: Likewise. + +2021-12-07 Eugene Rozenfeld + + * auto-profile.c (afdo_propagate_edge): Improve count propagation algorithm. + +2021-12-06 Paul A. Clarke + + PR target/103545 + * config/rs6000/xmmintrin.h (_mm_movemask_ps): Replace "vector" with + "__vector". + +2021-12-06 Jose E. Marchesi + + * config/bpf/bpf.c (bpf_handle_preserve_access_index_attribute): + Mark arguments `args' and flags' as unused. + (bpf_core_newdecl): Remove unused local `newdecl'. + (bpf_core_newdecl): Remove unused argument `loc'. + (ctfc_debuginfo_early_finish_p): Remove unused function. + (TARGET_CTFC_DEBUGINFO_EARLY_FINISH_P): Remove definition. + (bpf_core_walk): Do not pass a location to bpf_core_newdecl. + +2021-12-06 Richard Sandiford + + * gimple-range-edge.cc (gimple_outgoing_range::edge_range_p): Add + a shortcut for blocks with single successors. + * gimple-range-gori.cc (gori_map::calculate_gori): Likewise. + +2021-12-06 Richard Sandiford + + * value-range.cc (irange::irange_union): Use quick_push rather + than safe_push. Use widest_int rather than wide_int. Avoid + assigning wi::to_* results to wide*_int temporaries. + +2021-12-06 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::fill_block_cache): Check for + a range from dominators before filling the cache. + (ranger_cache::range_from_dom): New. + * gimple-range-cache.h (ranger_cache::range_from_dom): Add prototype. + +2021-12-06 Andrew MacLeod + + * gimple-range-gori.h (class gori_compute):: Add prototypes. + * gimple-range-gori.cc (gori_compute::has_edge_range_p): Add alternate + API for basic block. Call for edge alterantive. + (gori_compute::may_recompute_p): Ditto. + +2021-12-06 Richard Biener + + PR tree-optimization/103581 + * tree-vect-stmts.c (vect_build_gather_load_calls): Properly + guard all the AVX512 mask cases. + +2021-12-06 Richard Biener + + PR tree-optimization/103544 + * tree-vect-slp.c (vect_analyze_slp): Only add a SLP reduction + opportunity if the stmt in question is the reduction root. + (dot_slp_tree): Add missing check for NULL child. + +2021-12-06 Jakub Jelinek + + PR pch/71934 + * config/avr/avr.c (avr_output_data_section_asm_op, + avr_output_bss_section_asm_op): Change argument type from const void * + to const char *. + +2021-12-06 Tamar Christina + + PR rtl-optimization/103404 + * cse.c (find_sets_in_insn): Don't select elements out of a V1 mode + subreg. + +2021-12-06 Hongtao Liu + Uroš Bizjak + + PR target/95740 + * config/i386/i386.c (ix86_preferred_reload_class): Allow + integer regs when moves between register units are cheap. + * config/i386/i386.h (INT_SSE_CLASS_P): New. + +2021-12-05 David Edelsohn + + * config/rs6000/rs6000-call.c (rs6000_init_builtins): Move + AIX math builtin initialization before new_builtins_are_live. + +2021-12-04 Jakub Jelinek + + * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY): Fix + comment typo, Preffer -> prefer. + * ipa-modref-tree.c (modref_access_node::closer_pair_p): Likewise. + +2021-12-04 Alexandre Oliva + + PR rtl-optimization/103028 + * ifcvt.c (find_cond_trap): Validate new insns more strictly + after reload. + +2021-12-03 Martin Liska + Peter Bergner + + PR target/101324 + * config/rs6000/rs6000.c (rs6000_option_override_internal): Move the + disabling of shrink-wrapping when using -mrop-protect from here... + (rs6000_override_options_after_change): ...to here. + +2021-12-03 H.J. Lu + + PR target/103269 + * config/i386/i386-expand.c (ix86_expand_builtin): Pass PVW_NONE + and PVW_NONE to ix86_target_string. + * config/i386/i386-options.c (ix86_target_string): Add arguments + for move_max and store_max. + (ix86_target_string::add_vector_width): New lambda. + (ix86_debug_options): Pass ix86_move_max and ix86_store_max to + ix86_target_string. + (ix86_function_specific_print): Pass ptr->x_ix86_move_max and + ptr->x_ix86_store_max to ix86_target_string. + (ix86_valid_target_attribute_tree): Handle x_ix86_move_max and + x_ix86_store_max. + (ix86_option_override_internal): Set the default x_ix86_move_max + and x_ix86_store_max. + * config/i386/i386-options.h (ix86_target_string): Add + prefer_vector_width and prefer_vector_width. + * config/i386/i386.h (TARGET_AVX256_MOVE_BY_PIECES): Removed. + (TARGET_AVX256_STORE_BY_PIECES): Likewise. + (MOVE_MAX): Use 64 if ix86_move_max or ix86_store_max == + PVW_AVX512. Use 32 if ix86_move_max or ix86_store_max >= + PVW_AVX256. + (STORE_MAX_PIECES): Use 64 if ix86_store_max == PVW_AVX512. + Use 32 if ix86_store_max >= PVW_AVX256. + * config/i386/i386.opt: Add -mmove-max=bits and -mstore-max=bits. + * config/i386/x86-tune.def (X86_TUNE_AVX512_MOVE_BY_PIECES): New. + (X86_TUNE_AVX512_STORE_BY_PIECES): Likewise. + * doc/invoke.texi: Document -mmove-max=bits and -mstore-max=bits. + +2021-12-03 Bill Schmidt + + * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Fix builtin + identifiers. + +2021-12-03 SiYu Wu + + * common/config/riscv/riscv-common.c (riscv_implied_info): + Add K-ext related entry. + (riscv_supported_std_ext): Add 'k'. + * config/riscv/arch-canonicalize (CANONICAL_ORDER): Add 'k'. + (IMPLIED_EXT): Add K-ext related entry. + +2021-12-03 SiYu Wu + + * common/config/riscv/riscv-common.c (riscv_ext_version_table): + Add zbk* and zk*. + * config/riscv/riscv-opts.h (MASK_ZBKB): New. + (MASK_ZBKC): Ditto. + (MASK_ZBKX): Ditto. + (MASK_ZKNE): Ditto. + (MASK_ZKND): Ditto. + (MASK_ZKNH): Ditto. + (MASK_ZKR): Ditto. + (MASK_ZKSED): Ditto. + (MASK_ZKSH): Ditto. + (MASK_ZKT): Ditto. + (TARGET_ZBKB): Ditto. + (TARGET_ZBKC): Ditto. + (TARGET_ZBKX): Ditto. + (TARGET_ZKNE): Ditto. + (TARGET_ZKND): Ditto. + (TARGET_ZKNH): Ditto. + (TARGET_ZKR): Ditto. + (TARGET_ZKSED): Ditto. + (TARGET_ZKSH): Ditto. + (TARGET_ZKT): Ditto. + * config/riscv/riscv.opt (riscv_zk_subext): New. + +2021-12-03 Tamar Christina + + * tree-vect-stmts.c (prepare_load_store_mask): Rename to... + (prepare_vec_mask): ...This and record operations that have already been + masked. + (vectorizable_call): Use it. + (vectorizable_operation): Likewise. + (vectorizable_store): Likewise. + (vectorizable_load): Likewise. + * tree-vectorizer.h (class _loop_vec_info): Add vec_cond_masked_set. + (vec_cond_masked_set_type, tree_cond_mask_hash): New. + +2021-12-03 H.J. Lu + + PR target/51469 + PR target/83782 + * target.def (ifunc_ref_local_ok): Add a target hook. + * varasm.c (default_binds_local_p_3): Force indirect function + resolver non-local only if targetm.ifunc_ref_local_ok returns + false. + * config/i386/i386-expand.c (ix86_expand_call): Call + ix86_call_use_plt_p to check if PLT should be used. + * config/i386/i386-protos.h (ix86_call_use_plt_p): New. + * config/i386/i386.c (output_pic_addr_const): Call + ix86_call_use_plt_p to check if "@PLT" is needed. + (ix86_call_use_plt_p): New. + (TARGET_IFUNC_REF_LOCAL_OK): New. + * doc/tm.texi.in: Add TARGET_IFUNC_REF_LOCAL_OK. + * doc/tm.texi: Regenerated. + +2021-12-03 Jakub Jelinek + + * attribs.h (simple_cst_list_equal): Declare. + * attribs.c (simple_cst_list_equal): No longer static. + * config/i386/i386-options.c (target_attribute_cache): New variable. + (ix86_valid_target_attribute_p): Cache DECL_FUNCTION_SPECIFIC_TARGET + and DECL_FUNCTION_SPECIFIC_OPTIMIZATION based on args. + +2021-12-03 Jakub Jelinek + + PR pch/71934 + * ggc.h (gt_pch_note_callback): Declare. + * gengtype.h (enum typekind): Add TYPE_CALLBACK. + (callback_type): Declare. + * gengtype.c (dbgprint_count_type_at): Handle TYPE_CALLBACK. + (callback_type): New variable. + (process_gc_options): Add CALLBACK argument, handle callback + option. + (set_gc_used_type): Adjust process_gc_options caller, if callback, + set type to &callback_type. + (output_mangled_typename): Handle TYPE_CALLBACK. + (walk_type): Likewise. Handle callback option. + (write_types_process_field): Handle TYPE_CALLBACK. + (write_types_local_user_process_field): Likewise. + (write_types_local_process_field): Likewise. + (write_root): Likewise. + (dump_typekind): Likewise. + (dump_type): Likewise. + * gengtype-state.c (type_lineloc): Handle TYPE_CALLBACK. + (state_writer::write_state_callback_type): New method. + (state_writer::write_state_type): Handle TYPE_CALLBACK. + (read_state_callback_type): New function. + (read_state_type): Handle TYPE_CALLBACK. + * ggc-common.c (callback_vec): New variable. + (gt_pch_note_callback): New function. + (gt_pch_save): Stream out gt_pch_save function address and relocation + table. + (gt_pch_restore): Stream in saved gt_pch_save function address and + relocation table and apply relocations if needed. + * doc/gty.texi (callback): Document new GTY option. + * varasm.c (get_unnamed_section): Change callback argument's type and + last argument's type from const void * to const char *. + (output_section_asm_op): Change argument's type from const void * + to const char *, remove unnecessary cast. + * tree-core.h (struct tree_translation_unit_decl): Drop GTY((skip)) + from language member. + * output.h (unnamed_section_callback): Change argument type from + const void * to const char *. + (struct unnamed_section): Use GTY((callback)) instead of GTY((skip)) + for callback member. Change data member type from const void * + to const char *. + (struct noswitch_section): Use GTY((callback)) instead of GTY((skip)) + for callback member. + (get_unnamed_section): Change callback argument's type and + last argument's type from const void * to const char *. + (output_section_asm_op): Change argument's type from const void * + to const char *. + * config/avr/avr.c (avr_output_progmem_section_asm_op): Likewise. + Remove unneeded cast. + * config/darwin.c (output_objc_section_asm_op): Change argument's type + from const void * to const char *. + * config/pa/pa.c (som_output_text_section_asm_op): Likewise. + (som_output_comdat_data_section_asm_op): Likewise. + * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op): + Likewise. + (rs6000_xcoff_output_readonly_section_asm_op): Likewise. Instead + of dereferencing directive hardcode variable names and decide based on + whether directive is NULL or not. + (rs6000_xcoff_output_readwrite_section_asm_op): Change argument's type + from const void * to const char *. + (rs6000_xcoff_output_tls_section_asm_op): Likewise. Instead + of dereferencing directive hardcode variable names and decide based on + whether directive is NULL or not. + (rs6000_xcoff_output_toc_section_asm_op): Change argument's type + from const void * to const char *. + (rs6000_xcoff_asm_init_sections): Adjust get_unnamed_section callers. + +2021-12-03 Richard Purdie + + * Makefile.in: Fix "argument list too long" from install-plugins. + +2021-12-03 Matt Jacobson + + * config.gcc: For the AVR target, populate TM_MULTILIB_CONFIG. + * config/avr/genmultilib.awk: Add ability to filter generated multilib + list. + * config/avr/t-avr: Pass TM_MULTILIB_CONFIG to genmultilib.awk. + * configure.ac: Update help string for --with-multilib-list. + * configure: Regenerate. + +2021-12-02 Ilya Lipnitskiy + + * configure: Regenerate. + * configure.ac: Define TARGET_LIBC_GNUSTACK on musl. + +2021-12-02 Iain Sandoe + + PR target/55610 + * config/host-darwin.c (TRY_EMPTY_VM_SPACE, + SAFE_ALLOC_SIZE): New. + (darwin_gt_pch_get_address): Rewrite to use nominated + memory segments rather than part of the compiler __DATA + segment. + (darwin_gt_pch_use_address): Likewise. + +2021-12-02 Gerald Pfeifer + + * doc/install.texi (*-*-freebsd*): Remove references to + FreeBSD 1 and FreeBSD 2. + +2021-12-02 Vladimir N. Makarov + + PR rtl-optimization/103437 + * ira-color.c (setup_allocno_priorities): Switch off backup code + for overflow if compiler has __builtin_smul_overflow. Use < + for comparison with -INT_MAX. + +2021-12-02 Bill Schmidt + + * config/rs6000/altivec.h: Delete a number of #defines that are now + superfluous. Alphabetize. Include rs6000-vecdefines.h. Include some + synonyms. + * config/rs6000/rs6000-builtin-new.def (CMPB): Flag as no32bit. + (BPERMD): Flag as 32bit (needing special handling for 32-bit). + (UNPACK_TD): Return unsigned long long instead of unsigned long. + (GET_TEXASR): Return unsigned long instead of unsigned long long. + (GET_TEXASRU): Likewise. + (GET_TFHAR): Likewise. + (GET_TFIAR): Likewise. + (SET_TEXASR): Pass unsigned long instead of unsigned long long. + (SET_TEXASRU): Likewise. + (SET_TFHAR): Likewise. + (SET_TFIAR): Likewise. + (TABORTDC): Likewise. + (TABORTDCI): Likewise. + * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Fix error + handling for no32bit. Add 32bit handling for RS6000_BIF_BPERMD. + * config/rs6000/rs6000-gen-builtins.c (write_init_file): Initialize + new_builtins_are_live to 1. + +2021-12-02 Vladimir N. Makarov + + PR rtl-optimization/103437 + * ira-color.c (setup_allocno_priorities): Use long long + multiplication as backup for overflow processing. + +2021-12-02 Tamar Christina + + * config/aarch64/aarch64-protos.h (aarch64_gen_shareable_zero): New. + * config/aarch64/aarch64-simd.md (aarch64_rshrn, + aarch64_rshrn2): Generate rounding half-ing add when appropriate. + * config/aarch64/aarch64.c (aarch64_gen_shareable_zero): New. + +2021-12-02 Vladimir N. Makarov + + PR rtl-optimization/103437 + * ira-color.c (setup_allocno_priorities): Process multiplication + overflow. + +2021-12-02 Martin Liska + + PR gcov-profile/96092 + * common.opt: New option. + * coverage.c (coverage_begin_function): Emit filename with + remap_profile_filename. + * doc/invoke.texi: Document the new option. + * file-prefix-map.c (add_profile_prefix_map): New. + (remap_profile_filename): Likewise. + * file-prefix-map.h (add_profile_prefix_map): Likewise. + (remap_profile_filename): Likewise. + * lto-opts.c (lto_write_options): Handle + OPT_fprofile_prefix_map_. + * opts-global.c (handle_common_deferred_options): Likewise. + * opts.c (common_handle_option): Likewise. + (gen_command_line_string): Likewise. + * profile.c (output_location): Emit filename with + remap_profile_filename. + +2021-12-02 Richard Biener + + PR middle-end/103271 + * internal-fn.c (expand_DEFERRED_INIT): When the base + of the LHS is a decl with matching constant size use + that as the initialization target instead of an + eventual VLA typed one. + +2021-12-02 Richard Biener + + PR tree-optimization/103527 + * tree-vect-stmts.c (vect_build_gather_load_calls): Always + use a truth type for building the vector mask. + +2021-12-02 Rasmus Villemoes + + * config/vxworks.h (LTO_PLUGIN_SPEC): Adapt to corrected + spelling of -linker-output-auto-nolto-rel. + +2021-12-01 Uroš Bizjak + + PR target/102811 + * config/i386/sse.md (VI2F): Remove mode iterator. + (VI2F_256_512): New mode iterator. + (vec_set_0): New insn pattern. + (vec_set_0>): Rename from vec_setmode. + Use VI2F_256_512 mode iterator instead of VI2F. + (*axv512fp16_movsh): Remove. + (_pinsr): Add (x,x,x) AVX2 alternative. + Do not disable V8HF mode insn on AVX2 targets. + (pinsrw -> pbroadcast + pblendw peephole2): New peephole. + (pinsrw -> pbroadcast + pblendw splitter): New post-reload splitter. + * config/i386/i386.md (extendhfsf): Call gen_vec_setv8hf_0. + * config/i386/i386-expand.c (ix86_expand_vector_set) + : Use vec_merge path for TARGET_AVX2. + +2021-12-01 Roger Sayle + Richard Biener + + * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): + Check if simplify_using_initial_conditions allows us to + simplify the expression for may_be_zero. + * match.pd (X != C ? -X : -C -> -X): New transform. + (X != C ? ~X : ~C -> ~X): Likewise. + ((X+1) > Y ? -X : 1 -> X >= Y ? -X : 1): Likewise. + +2021-12-01 Peter Bergner + + PR middle-end/103127 + * gimplify.c (is_var_need_auto_init): Handle opaque types. + +2021-12-01 Iain Buclaw + + * common.opt (static-libphobos): Add option. + * config/darwin.h (LINK_SPEC): Substitute -lgphobos with libgphobos.a + when linking statically. + * gcc.c (driver_handle_option): Set -static-libphobos as always valid. + +2021-12-01 Jason Merrill + + PR c++/103310 + * fold-const.c (maybe_nonzero_address): Use get_create or get + depending on folding_initializer. + (fold_binary_initializer_loc): New. + * fold-const.h (fold_binary_initializer_loc): Declare. + * varasm.c (mark_weak): Don't use the decl location. + * doc/invoke.texi: Document -fconstexpr-fp-except. + +2021-12-01 Bill Schmidt + + PR target/102347 + * config/rs6000/rs6000-c.c (rs6000-builtins.h): Stop including. + (rs6000-internal.h): Include. + (altivec_resolve_new_overloaded_builtin): Move call to + rs6000_invalid_new_builtin here from rs6000_new_builtin_decl. + * config/rs6000/rs6000-call.c (rs6000-builtins.h): Stop including. + (rs6000_invalid_new_builtin): Remove static qualifier. + (rs6000_new_builtin_decl): Remove test for supported builtin. + * config/rs6000/rs6000-internal.h (rs6000-builtins.h): Include. + (rs6000_invalid_new_builtin): Declare. + * config/rs6000/rs6000.c (rs6000-builtins.h): Don't include. + +2021-12-01 Aldy Hernandez + + PR tree-optimization/103409 + * gimple-range-path.cc (path_range_query::compute_ranges_in_phis): + Do all the work with just one ssa_global_cache. + * gimple-range-path.h: Remove m_tmp_phi_cache. + +2021-12-01 Richard Sandiford + + PR tree-optimization/103517 + * tree-vect-slp.c (vect_build_slp_tree_1): When allowing two + different component references, check the codes of both them, + rather than just the first. + +2021-12-01 Andrew MacLeod + + PR tree-optimization/103464 + * gimple-range.cc (gimple_ranger::prefill_name): Process phis also. + (gimple_ranger::prefill_stmt_dependencies): Ditto. + +2021-12-01 Iain Buclaw + + * doc/install.texi (Prerequisites): Add note that D front end now + requires GDC installed in order to bootstrap. + (Building): Add D compiler section, referencing prerequisites. + +2021-12-01 Jakub Jelinek + + * config/i386/x86-tune.def (X86_TUNE_SCHEDULE, + X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY, + X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Formatting fixes. + (X86_TUNE_USE_GATHER): Put m_GENERIC last for consistency. + +2021-12-01 Jakub Jelinek + + PR rtl-optimization/102356 + * rtl.h (simplify_context): Add assoc_count member and + max_assoc_count static member. + * simplify-rtx.c (simplify_associative_operation): Don't reassociate + more than max_assoc_count times within one outermost simplify_* call. + * dwarf2out.c (mem_loc_descriptor): Optimize binary operation + with both operands the same using DW_OP_dup. + +2021-12-01 Tamar Christina + + * match.pd: Move below pattern that rewrites to EQ, NE. + * tree.c (bitmask_inv_cst_vector_p): Correct do .. while indentation. + +2021-12-01 Siddhesh Poyarekar + Martin Liška + + PR tree-optimization/103456 + * tree-object-size.c (merge_object_sizes): Update osi->changed + only if object_sizes_set succeeded. + +2021-11-30 liuhongt + + PR target/103463 + PR target/103484 + * config/i386/i386.md (*x86_64_shld_1): Set_attr + length_immediate to 1. + (*x86_shld_1): Ditto. + (*x86_64_shrd_1): Ditto. + (*x86_shrd_1): Ditto. + +2021-11-30 Bill Schmidt + + * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): + Clarify diagnostic. + (altivec_resolve_new_overloaded_builtin): Likewise. + +2021-11-30 Martin Jambor + + PR ipa/103267 + * ipa-sra.c (scan_function): Also check ECF_LOOPING_CONST_OR_PURE flag. + +2021-11-30 Richard Sandiford + + PR tree-optimization/103494 + * tree-vect-stmts.c (vect_get_gather_scatter_ops): Remove ncopies + argument and calculate ncopies from gs_info->offset_vectype + where necessary. + (vectorizable_store, vectorizable_load): Update accordingly. + +2021-11-30 Iain Buclaw + + * Makefile.in (GDC): New variable. + (GDCFLAGS): New variable. + * configure: Regenerate. + * configure.ac: Add call to ACX_PROG_GDC. Substitute GDCFLAGS. + +2021-11-30 Martin Liska + Martin Jambor + + PR ipa/103449 + * ipa-param-manipulation.c + (ipa_param_body_adjustments::prepare_debug_expressions): Be + careful about hash_map reallocating itself. Simpify a return + which always returns true. + +2021-11-30 Andrew MacLeod + + PR tree-optimization/103440 + * gimple-range-fold.cc (fold_using_range::range_of_phi): Continue + normal param processing for equiv params. + +2021-11-30 Richard Biener + + * config/i386/i386.c (ix86_shift_rotate_cost): Remove + unreachable return. + * tree-chrec.c (evolution_function_is_invariant_rec_p): + Likewise. + * tree-if-conv.c (if_convertible_stmt_p): Likewise. + * tree-ssa-pre.c (fully_constant_expression): Likewise. + * tree-vrp.c (operand_less_p): Likewise. + * reload.c (reg_overlap_mentioned_for_reload_p): Remove + unreachable gcc_unreachable (). + * sel-sched-ir.h (bb_next_bb): Likewise. + * varasm.c (compare_constant): Likewise. + +2021-11-30 Richard Biener + + PR tree-optimization/103489 + * tree-vect-loop.c (vectorizable_phi): Verify argument + vector type compatibility to mitigate bool pattern recog + bug. + +2021-11-30 Thomas Schwinge + + * omp-offload.c (oacc_loop_auto_partitions): Remove erroneous + "Orphan reductions cannot have gang partitioning" handling. + +2021-11-30 Thomas Schwinge + + * omp-offload.c (oacc_loop_process): Implement "gang reduction on + an orphan loop" checking. + +2021-11-30 Cesar Philippidis + Thomas Schwinge + + * omp-general.h (enum oacc_loop_flags): Add OLF_REDUCTION enum. + * omp-low.c (lower_oacc_head_mark): Use it to mark OpenACC + reductions. + * omp-offload.c (oacc_loop_auto_partitions): Don't assign gang + level parallelism to orphan reductions. + +2021-11-30 Aldy Hernandez + + PR tree-optimization/103451 + * range-op.cc (operator_div::wi_fold): Remove + can_throw_non_call_exceptions special case. + * tree-ssa-sink.c (sink_code_in_bb): Same. + +2021-11-30 Richard Sandiford + + * tree-vect-slp.c (arg1_arg4_map): New variable. + (vect_get_operand_map): Handle IFN_MASK_GATHER_LOAD. + (vect_build_slp_tree_1): Likewise. + (vect_build_slp_tree_2): Likewise. + * tree-vect-stmts.c (vectorizable_load): Expect the mask to be + the last SLP child node rather than the first. + +2021-11-30 Richard Sandiford + + * tree-if-conv.c: Include tree-eh.h. + (predicate_statements): Remove pe argument. Don't hoist + statements here. + (combine_blocks): Remove pe argument. + (ifcvt_available_on_edge_p, ifcvt_can_hoist): New functions. + (ifcvt_hoist_invariants): Likewise. + (tree_if_conversion): Update call to combine_blocks. Call + ifcvt_hoist_invariants after VN. + +2021-11-30 Richard Sandiford + + PR tree-optimization/102467 + * doc/sourcebuild.texi (vect_gather_load_ifn): Document. + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): + Commonize safelen handling. Punt for anything involving + gathers and scatters unless safelen says otherwise. + * tree-vect-slp.c (arg1_map): New variable. + (vect_get_operand_map): Handle IFN_GATHER_LOAD. + (vect_build_slp_tree_1): Likewise. + (vect_build_slp_tree_2): Likewise. + (compatible_calls_p): If vect_get_operand_map returns nonnull, + check that any skipped arguments are equal. + (vect_slp_analyze_node_operations_1): Tighten reduction check. + * tree-vect-stmts.c (check_load_store_for_partial_vectors): Take + an ncopies argument. + (vect_get_gather_scatter_ops): Take slp_node and ncopies arguments. + Handle SLP nodes. + (vectorizable_store, vectorizable_load): Adjust accordingly. + +2021-11-30 Richard Sandiford + + * gimple.h (gimple_num_args, gimple_arg, gimple_arg_ptr): New + functions. + * tree-vect-slp.c (cond_expr_maps, arg2_map): New variables. + (vect_get_operand_map): New function. + (vect_get_and_check_slp_defs): Fix outdated comment. + Use vect_get_operand_map and new gimple argument accessors. + (vect_build_slp_tree_2): Likewise. + +2021-11-30 Richard Sandiford + + * tree-vect-slp.c (vect_build_slp_tree_1): Use code_helper + to record the operations performed by statements, only using + CALL_EXPR for things that don't map to built-in or internal + functions. For shifts, require all shift amounts to be equal + if optab_vector is not supported but optab_scalar is. + +2021-11-30 Richard Sandiford + + * tree-vect-data-refs.c (vect_check_gather_scatter): Continue + processing conversions if the current offset is a pointer. + +2021-11-30 Richard Sandiford + + * tree-vectorizer.h (vect_is_reduction): Use STMT_VINFO_REDUC_IDX. + +2021-11-30 Richard Sandiford + + * genopinit.c (main): Turn supports_vec_gather_load and + supports_vec_scatter_store into signed char arrays and remove + supports_vec_gather_load_cached and supports_vec_scatter_store_cached. + * optabs-query.c (supports_vec_convert_optab_p): Add a mode parameter. + If the mode is not VOIDmode, test only for that mode. + (supports_vec_gather_load_p): Likewise. + (supports_vec_scatter_store_p): Likewise. + * optabs-query.h (supports_vec_gather_load_p): Likewise. + (supports_vec_scatter_store_p): Likewise. + * tree-vect-data-refs.c (vect_check_gather_scatter): Pass the + vector mode to supports_vec_gather_load_p and + supports_vec_scatter_store_p. + +2021-11-30 Richard Sandiford + + * internal-fn.c (commutative_binary_fn_p): Handle IFN_ADD_OVERFLOW + and IFN_MUL_OVERFLOW. + +2021-11-30 Richard Sandiford + + * internal-fn.c (commutative_binary_fn_p): Handle IFN_UBSAN_CHECK_ADD + and IFN_UBSAN_CHECK_MUL. + +2021-11-30 Richard Sandiford + + * internal-fn.c (commutative_binary_fn_p): Handle IFN_COMPLEX_MUL. + +2021-11-30 Richard Sandiford + + * gimple-fold.c: Include internal-fn.h. + (fold_stmt_1): If a function maps to an internal one, use + first_commutative_argument to canonicalize the order of + commutative arguments. + * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3) + (gimple_resimplify4, gimple_resimplify5): Extend commutativity + checks to functions. + +2021-11-30 Richard Sandiford + + * doc/md.texi (reduc_fmin_scal_@var{m}): Document. + (reduc_fmax_scal_@var{m}): Likewise. + * optabs.def (reduc_fmax_scal_optab): New optab. + (reduc_fmin_scal_optab): Likewise + * internal-fn.def (REDUC_FMAX, REDUC_FMIN): New functions. + * tree-vect-loop.c (reduction_fn_for_scalar_code): Handle + CASE_CFN_FMAX and CASE_CFN_FMIN. + (neutral_op_for_reduction): Likewise. + (needs_fold_left_reduction_p): Likewise. + * config/aarch64/iterators.md (FMAXMINV): New iterator. + (fmaxmin): Handle UNSPEC_FMAXNMV and UNSPEC_FMINNMV. + * config/aarch64/aarch64-simd.md (reduc__scal_): Fix + unspec mode. + (reduc__scal_): New pattern. + * config/aarch64/aarch64-sve.md (reduc__scal_): + Likewise. + +2021-11-30 Richard Sandiford + + * builtins.h (associated_internal_fn): Declare overload that + takes a (combined_cfn, return type) pair. + * builtins.c (associated_internal_fn): Split new overload out + of original fndecl version. Also provide an overload that takes + a (combined_cfn, return type) pair. + * internal-fn.h (commutative_binary_fn_p): Declare. + (commutative_ternary_fn_p): Likewise. + (associative_binary_fn_p): Likewise. + * internal-fn.c (commutative_binary_fn_p, commutative_ternary_fn_p): + New functions, split out from... + (first_commutative_argument): ...here. + (associative_binary_fn_p): New function. + * gimple-match.h (code_helper): Add a constructor that takes + internal functions. + (commutative_binary_op_p): Declare. + (commutative_ternary_op_p): Likewise. + (first_commutative_argument): Likewise. + (associative_binary_op_p): Likewise. + (canonicalize_code): Likewise. + (directly_supported_p): Likewise. + (get_conditional_internal_fn): Likewise. + (gimple_build): New overloads that takes a code_helper. + * gimple-fold.c (gimple_build): Likewise. + * gimple-match-head.c (commutative_binary_op_p): New function. + (commutative_ternary_op_p): Likewise. + (first_commutative_argument): Likewise. + (associative_binary_op_p): Likewise. + (canonicalize_code): Likewise. + (directly_supported_p): Likewise. + (get_conditional_internal_fn): Likewise. + * tree-vectorizer.h: Include gimple-match.h. + (neutral_op_for_reduction): Take a code_helper instead of a tree_code. + (needs_fold_left_reduction_p): Likewise. + (reduction_fn_for_scalar_code): Likewise. + (vect_can_vectorize_without_simd_p): Declare a nNew overload that takes + a code_helper. + * tree-vect-loop.c: Include case-cfn-macros.h. + (fold_left_reduction_fn): Take a code_helper instead of a tree_code. + (reduction_fn_for_scalar_code): Likewise. + (neutral_op_for_reduction): Likewise. + (needs_fold_left_reduction_p): Likewise. + (use_mask_by_cond_expr_p): Likewise. + (build_vect_cond_expr): Likewise. + (vect_create_partial_epilog): Likewise. Use gimple_build rather + than gimple_build_assign. + (check_reduction_path): Handle calls and operate on code_helpers + rather than tree_codes. + (vect_is_simple_reduction): Likewise. + (vect_model_reduction_cost): Likewise. + (vect_find_reusable_accumulator): Likewise. + (vect_create_epilog_for_reduction): Likewise. + (vect_transform_cycle_phi): Likewise. + (vectorizable_reduction): Likewise. Make more use of + lane_reduc_code_p. + (vect_transform_reduction): Use gimple_extract_op but expect + a tree_code for now. + (vect_can_vectorize_without_simd_p): New overload that takes + a code_helper. + * tree-vect-stmts.c (vectorizable_call): Handle reductions in + fully-masked loops. + * tree-vect-patterns.c (vect_mark_pattern_stmts): Use + gimple_extract_op when updating STMT_VINFO_REDUC_IDX. + +2021-11-30 Richard Sandiford + + * gimple-match.h (code_helper): Provide == and != overloads. + (code_helper::operator tree_code): Make explicit. + (code_helper::operator combined_fn): Likewise. + * gimple-match-head.c (convert_conditional_op): Use explicit + conversions where necessary. + (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3): Likewise. + (maybe_push_res_to_seq, gimple_simplify): Likewise. + * gimple-fold.c (replace_stmt_with_simplification): Likewise. + +2021-11-30 Richard Sandiford + + * gimple-match.h (code_helper): Add functions for querying whether + the code represents an internal_fn or a built_in_function. + Provide explicit conversion operators for both cases. + (gimple_extract_op): Declare. + * gimple-match-head.c (gimple_extract): New function, extracted from... + (gimple_simplify): ...here. + (gimple_extract_op): New function. + +2021-11-30 Eric Botcazou + + PR target/103274 + * config/i386/i386.c (ix86_output_call_insn): Beef up comment about + nops emitted with SEH. + * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to + the cold section, emit a nop before the directive if the previous + active instruction is a call. + +2021-11-30 Roger Sayle + Uroš Bizjak + + PR target/100711 + * config/i386/sse.md (define_split): New splitters to simplify + not;vec_duplicate;and as vec_duplicate;andn. + +2021-11-30 Richard Biener + + PR middle-end/103485 + * match.pd (-((int)x >> (prec - 1)) to (unsigned)x >> (prec - 1)): + Use VIEW_CONVERT_EXPR for vectors. + +2021-11-30 Richard Biener + + * cfgrtl.c (skip_insns_after_block): Refactor code to + be more easily readable. + * expr.c (op_by_pieces_d::run): Remove unreachable + assert. + * sched-deps.c (sched_analyze): Remove unreachable + gcc_unreachable. + * sel-sched-ir.c (in_same_ebb_p): Likewise. + * tree-ssa-alias.c (nonoverlapping_refs_since_match_p): + Remove unreachable code. + * tree-vect-slp.c (vectorize_slp_instance_root_stmt): + Refactor to avoid unreachable loop iteration. + * tree.c (walk_tree_1): Remove unreachable break. + * vec-perm-indices.c (vec_perm_indices::series_p): Remove + unreachable return. + +2021-11-30 Kewen Lin + + PR target/102347 + * config/rs6000/rs6000-call.c (rs6000_builtin_decl): Remove builtin mask + check. + +2021-11-30 Kewen Lin + + * config/rs6000/rs6000.c + (rs6000_cost_data::update_target_cost_per_stmt): Adjust the way to + compute extra penalized cost. Remove useless parameter. + (rs6000_cost_data::rs6000_add_stmt_cost): Adjust the call to function + update_target_cost_per_stmt. + +2021-11-30 Kewen Lin + + Revert: + 2021-11-17 Kewen Lin + + * config/visium/visium.md (*add3_insn, *addsi3_insn, *addi3_insn, + *sub3_insn, *subsi3_insn, *subdi3_insn, *neg2_insn, + *negdi2_insn, *and3_insn, *ior3_insn, *xor3_insn, + *one_cmpl2_insn, *ashl3_insn, *ashr3_insn, + *lshr3_insn, *trunchiqi2_insn, *truncsihi2_insn, + *truncdisi2_insn, *extendqihi2_insn, *extendqisi2_insn, + *extendhisi2_insn, *extendsidi2_insn, *zero_extendqihi2_insn, + *zero_extendqisi2_insn, *zero_extendsidi2_insn): Fix split condition. + +2021-11-30 Andrew MacLeod + + PR tree-optimization/103467 + * gimple-range-gori.cc (range_def_chain::register_dependency): Don't + use an object reference after a potential resize. + +2021-11-29 Uroš Bizjak + + PR target/102811 + * config/i386/i386.md (*movhi_internal): Introduce (*v,C) alternative. + Do not allocate non-GPR registers. Optimize xmm->xmm moves when + optimizing for size. Fix vpinsrw insn template. + (*movhf_internal): Fix pinsrw and pextrw insn templates for + AVX targets. Use sselog1 type instead of sselog. Optimize GPR moves. + Optimize xmm->xmm moves for TARGET_SSE_PARTIAL_REG_DEPENDENCY + and TARGET_SSE_SPLIT_REGS targets. + +2021-11-29 Eric Gallager + + * configure: Re-regenerate. + +2021-11-29 Eric Gallager + + PR other/103021 + * Makefile.in: Substitute CTAGS, ETAGS, and CSCOPE + variables. Use ETAGS variable in TAGS target. + * configure: Regenerate. + * configure.ac: Allow CTAGS, ETAGS, and CSCOPE + variables to be overridden. + +2021-11-29 Paul A. Clarke + + * config/rs6000/xmmintrin.h (_mm_movemask_ps): Use vec_extractm + when _ARCH_PWR10. + * config/rs6000/emmintrin.h (_mm_movemask_pd): Likewise. + (_mm_movemask_epi8): Likewise. + +2021-11-29 Richard Biener + + * read-rtl-function.c (function_reader::read_rtx_operand): + Return only after resetting m_in_call_function_usage. + +2021-11-29 Roger Sayle + + * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Perform the + conversion via V2DImode using vec_extractv2didi on TARGET_SSE2. + * config/i386/sse.md (rotlv1ti3, rotrv1ti3): Change constraint + on QImode shift amounts from const_int_operand to general_operand. + +2021-11-29 Richard Biener + + * tree.h (reverse_storage_order_for_component_p): Remove + spurious gcc_unreachable. + * cfganal.c (dfs_find_deadend): Likewise. + * fold-const-call.c (fold_const_logb): Likewise. + (fold_const_significand): Likewise. + * gimple-ssa-store-merging.c (lhs_valid_for_store_merging_p): + Likewise. + +2021-11-29 Richard Biener + + * vec.c (qsort_chk): Do not return the void return value + from the noreturn qsort_chk_error. + * ccmp.c (expand_ccmp_expr_1): Remove unreachable return. + * df-scan.c (df_ref_equal_p): Likewise. + * dwarf2out.c (is_base_type): Likewise. + (add_const_value_attribute): Likewise. + * fixed-value.c (fixed_arithmetic): Likewise. + * gimple-fold.c (gimple_fold_builtin_fputs): Likewise. + * gimple-ssa-strength-reduction.c (stmt_cost): Likewise. + * graphite-isl-ast-to-gimple.c + (gcc_expression_from_isl_expr_op): Likewise. + (gcc_expression_from_isl_expression): Likewise. + * ipa-fnsummary.c (will_be_nonconstant_expr_predicate): + Likewise. + * lto-streamer-in.c (lto_input_mode_table): Likewise. + +2021-11-29 liuhongt + + PR target/102811 + * config/i386/i386.c (inline_secondary_memory_needed): HImode + move between GPR and SSE registers is supported under + TARGET_SSE2 and above. + * config/i386/i386.md (extendhfsf2): Optimize expander. + (truncsfhf2): Ditto. + * config/i386/sse.md (sse2p4_1): Adjust attr for V8HFmode to + align with V8HImode. + +2021-11-29 liuhongt + + PR target/102811 + PR target/103463 + * config/i386/i386.c (ix86_secondary_reload): Without + TARGET_SSE4_1, General register is needed to move HImode from + sse register to memory. + * config/i386/sse.md (*vec_extrachf): Use %vpextrw instead of + pextrw in output templates. + * config/i386/i386.md (movhi_internal): Ditto, also fix typo of + MEM_P (operands[1]) and adjust mode/prefix/type attribute for + alternatives related to sse register. + +2021-11-29 Richard Biener + + PR tree-optimization/103458 + * tree-ssa-dce.c (make_forwarders_with_degenerate_phis): Do not + create forwarders for blocks with abnormal predecessors. + +2021-11-29 Richard Biener + + * gimple-predicate-analysis.cc (can_be_invalidated_p): + Restore semantics to the one before the split from + tree-ssa-uninit.c. + +2021-11-28 Jan Hubicka + + * profile.c: Include sreal.h + (struct bb_stats): New. + (cmp_stats): New function. + (compute_branch_probabilities): Output bb stats. + +2021-11-28 Jan Hubicka + + * cfghooks.c: Include sreal.h, profile.h. + (profile_record_check_consistency): Fix checking of count counsistency; + record also dynamic mismatches. + * cfgrtl.c (rtl_account_profile_record): Similarly. + * tree-cfg.c (gimple_account_profile_record): Likewise. + * cfghooks.h (struct profile_record): Remove num_mismatched_freq_in, + num_mismatched_freq_out, turn time to double, add + dyn_mismatched_prob_out, dyn_mismatched_count_in, + num_mismatched_prob_out; remove num_mismatched_count_out. + * passes.c (account_profile_1): New function. + (account_profile_in_list): New function. + (pass_manager::dump_profile_report): Rewrite. + (execute_one_ipa_transform_pass): Check profile consistency after + running all passes. + (execute_all_ipa_transforms): Remove cfun test; record all transform + methods. + (execute_one_pass): Fix collecting of profile stats. + +2021-11-27 Jakub Jelinek + + PR middle-end/103431 + * config/i386/i386.md (x86_64_shld, x86_shld, x86_64_shrd, x86_shrd): + Change insn pattern to accurately describe the instructions. + (*x86_64_shld_1, *x86_shld_1, *x86_64_shrd_1, *x86_shrd_1): New + define_insn patterns. + (*x86_64_shld_2, *x86_shld_2, *x86_64_shrd_2, *x86_shrd_2): New + define_insn_and_split patterns. + (*ashl3_doubleword_mask, *ashl3_doubleword_mask_1, + *3_doubleword_mask, *3_doubleword_mask_1, + ix86_rotl3_doubleword, ix86_rotr3_doubleword): Adjust + splitters for x86_{,64_}sh{l,r}d pattern changes. + +2021-11-27 Jakub Jelinek + + PR tree-optimization/103435 + * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Avoid UB if + n->range - rsize == 8, just clear both *cmpnop and *cmpxchg in that + case. + +2021-11-27 Martin Jambor + + PR ipa/103441 + * ipa-prop.c (ipcp_transform_function): Call + delete_unreachable_blocks_update_callgraph instead of returning + TODO_cleanup_cfg. + +2021-11-26 Siddhesh Poyarekar + + * tree-object-size.c (object_sizes_grow, object_sizes_release, + object_sizes_unknown_p, object_sizes_get, object_size_set_force, + object_sizes_set): New functions. + (addr_object_size, compute_builtin_object_size, + expr_object_size, call_object_size, unknown_object_size, + merge_object_sizes, plus_stmt_object_size, + cond_expr_object_size, collect_object_sizes_for, + check_for_plus_in_loops_1, init_object_sizes, + fini_object_sizes): Adjust. + +2021-11-26 Siddhesh Poyarekar + + * tree-object-size.c: New enum. + (object_sizes, computed, addr_object_size, + compute_builtin_object_size, expr_object_size, call_object_size, + merge_object_sizes, plus_stmt_object_size, + collect_object_sizes_for, init_object_sizes, fini_object_sizes, + object_sizes_execute): Replace magic numbers with enums. + +2021-11-26 Roger Sayle + + * tree-ssa-loop-ivopts.c (cand_value_at): Take a class + tree_niter_desc* argument instead of just a tree for NITER. + If we require the iv candidate value at the end of the final + loop iteration, try using the original loop bound as the + NITER for sufficiently simple loops. + (may_eliminate_iv): Update (only) call to cand_value_at. + +2021-11-26 Jan Hubicka + + * ipa-modref.c (analyze_function): Drop parameter F and dump + cgraph node name rather than cfun name. + (modref_generate): Update. + (modref_summaries::insert):Update. + (modref_summaries_lto::insert):Update. + (pass_modref::execute):Update. + (ipa_merge_modref_summary_after_inlining): Improve combining of + ECF_FLAGS. + +2021-11-26 Jan Hubicka + + PR ipa/102943 + * ipa-modref.c (update_escape_summary_1): Fix handling of min_flags. + +2021-11-26 konglin1 + + PR target/102811 + * config/i386/i386.c (ix86_can_change_mode_class): Allow 16 bit data in XMM register + for TARGET_SSE2. + * config/i386/i386.md (extendhfsf2): Add extenndhfsf2 for TARGET_F16C. + (extendhfdf2): Restrict extendhfdf for TARGET_AVX512FP16 only. + (*extendhf2): Rename from extendhf2. + (truncsfhf2): Likewise. + (truncdfhf2): Likewise. + (*trunc2): Likewise. + +2021-11-26 liuhongt + + PR middle-end/103419 + * match.pd: Fix typo, use the type of second parameter, not + first one. + +2021-11-25 Jan Hubicka + + * ipa-cp.c (ipa_value_range_from_jfunc): Remove forgotten early return. + +2021-11-25 Roger Sayle + + PR middle-end/103406 + * match.pd (minus @0 @0): Check tree_expr_maybe_infinite_p. + +2021-11-25 Martin Jambor + + PR ipa/103227 + * ipa-prop.h (ipa_get_param): New overload. Move bits of the existing + one to the new one. + * ipa-param-manipulation.h (ipa_param_adjustments): New member + function get_updated_index_or_split. + * ipa-param-manipulation.c + (ipa_param_adjustments::get_updated_index_or_split): New function. + * ipa-prop.c (adjust_agg_replacement_values): Reimplement, add + capability to identify scalarized parameters and perform substitution + on them. + (ipcp_transform_function): Create descriptors earlier, handle new + return values of adjust_agg_replacement_values. + +2021-11-25 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::compute_ranges_defined): Remove. + (path_range_query::compute_ranges_in_block): Revert to bitmap order. + * gimple-range-path.h: Remove compute_ranges_defined. + +2021-11-25 Andrew Stubbs + + PR target/103396 + * config/gcn/gcn.c (move_callee_saved_registers): Ensure that the + number of spilled registers is counted correctly. + +2021-11-25 Jan Hubicka + + * ipa-prop.h (ipa_node_params::ipa_node_params): Initialize + node_is_self_scc. + +2021-11-25 Andrew MacLeod + + PR tree-optimization/103359 + * gimple-range-fold.cc (fold_using_range::range_of_phi): If arg is + equivalent to def, don't initially include it's range. + +2021-11-25 Jan Hubicka + + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Do not check + gimple_static_chain. + +2021-11-25 Richard Biener + + * cgraphunit.c (symbol_table::output_weakrefs): Remove + unreachable init. + (get_alias_symbol): Remove now unused function. + +2021-11-25 Richard Biener + + * cfgrtl.c (rtl_verify_fallthru): Do not stop verifying + with fatal_insn. + (skip_insns_after_block): Remove unreachable break and continue. + +2021-11-25 Richard Biener + + * cfgexpand.c (label_rtx_for_bb): Remove dead loop construct. + +2021-11-25 Richard Biener + + * regset.h (REG_SET_EMPTY_P): New macro. + * cfgcleanup.c (thread_jump): Use REG_SET_EMPTY_P. + +2021-11-25 Martin Liska + + * doc/invoke.texi: Use @option for -Wuninitialized. + +2021-11-25 Aldy Hernandez + + PR tree-optimization/103254 + * gimple-range-path.cc (path_range_query::compute_ranges): Move + exported boolean code... + (path_range_query::compute_imports): ...here. + +2021-11-25 Aldy Hernandez + + PR tree-optimization/103254 + * gimple-range-path.cc (path_range_query::compute_ranges_defined): New + (path_range_query::compute_ranges_in_block): Move to + compute_ranges_defined. + * gimple-range-path.h (compute_ranges_defined): New. + +2021-11-25 Jakub Jelinek + + PR tree-optimization/103417 + * match.pd ((X & Y) CMP 0): Only handle eq and ne. Commonalize + common tests. + +2021-11-25 Jakub Jelinek + + PR tree-optimization/103376 + * gimple-ssa-store-merging.c (perform_symbolic_merge): For + BIT_IOR_EXPR, if masked1 && masked2 && masked1 != masked2, don't + punt, but set the corresponding result byte to MARKER_BYTE_UNKNOWN. + For BIT_XOR_EXPR similarly and if masked1 == masked2 and the + byte isn't MARKER_BYTE_UNKNOWN, set the corresponding result byte to + 0. + +2021-11-25 Jakub Jelinek + + PR c++/102611 + * doc/invoke.texi (-Wcomma-subscript): Document that for + -std=c++20 the option isn't enabled by default with -Wno-deprecated + but for -std=c++23 it is. + +2021-11-24 Jan Hubicka + + * ipa-modref.c (implicit_eaf_flags_for_edge_and_arg): Break out from... + (modref_merge_call_site_flags): ... here. + (ipa_merge_modref_summary_after_inlining): Use it. + +2021-11-24 Thomas Schwinge + + * cfgloop.c (verify_loop_structure): Reduce scope of + 'class loop *loop' variable. + * ipa-fnsummary.c (analyze_function_body): Likewise. + * loop-init.c (fix_loop_structure): Likewise. + * loop-invariant.c (calculate_loop_reg_pressure): Likewise. + * predict.c (predict_loops): Likewise. + * tree-loop-distribution.c (loop_distribution::execute): Likewise. + * tree-vectorizer.c (pass_vectorize::execute): Likewise. + +2021-11-24 Andrew MacLeod + + PR tree-optimization/103231 + * gimple-range.cc (gimple_ranger::gimple_ranger): Create stmt stack. + (gimple_ranger::gimple_ranger): Delete stmt stack. + (gimple_ranger::range_of_stmt): Process depenedencies if they have no + global cache entry. + (gimple_ranger::prefill_name): New. + (gimple_ranger::prefill_stmt_dependencies): New. + * gimple-range.h (class gimple_ranger): Add prototypes. + +2021-11-24 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::get_global_range): Always + return a range, return if it came from the cache or not. + (get_non_stale_global_range): Rename to get_global_range, and return + the temporal state in a flag. + * gimple-range-cache.h (get_non_stale_global_range): Rename and adjust. + * gimple-range.cc (gimple_ranger::range_of_expr): No need to query + get_global_range. + (gimple_ranger::range_of_stmt): Adjust for global cache temporal state + returned in a flag. + +2021-11-24 Andrew MacLeod + + * gimple-range.cc (gimple_ranger::range_on_edge): Call trailer when + a constant is encountered to terminate the trace. + +2021-11-24 Maciej W. Rozycki + + PR middle-end/103059 + * reload.c (find_reloads_address_1): Also accept the ASHIFT form + of indexed addressing. + (find_reloads): Adjust accordingly. + +2021-11-24 Richard Biener + Jan Hubicka + + PR tree-optimization/103168 + * ipa-modref.h (struct modref_summary): Add load_accesses. + * ipa-modref.c (modref_summary::finalize): Initialize load_accesses. + * tree-ssa-sccvn.c (visit_reference_op_call): Use modref + info to walk the virtual use->def chain to CSE const/pure + function calls possibly reading from memory. + +2021-11-24 Thomas Schwinge + + PR middle-end/103244 + * gimplify.c (gimplify_adjust_omp_clauses): Restore previous + OpenACC behavior. + +2021-11-24 Richard Biener + + PR middle-end/103193 + * match.pd: Avoid canonicalizing (le/ge @0 @0) to (eq @0 @0) + with NaNs and -ftrapping-math. + +2021-11-24 Jakub Jelinek + + PR middle-end/103384 + * omp-general.c (omp_context_selector_matches): For ACCEL_COMPILER, + return 0 for kind(host) and continue for kind(nohost). + +2021-11-24 Jakub Jelinek + + PR middle-end/103365 + * attribs.h (lookup_attribute): Allow attr_name to start with + underscore, as long as canonicalize_attr_name returns false. + (lookup_attribute_by_prefix): Don't call get_attribute_name twice. + * attribs.c (extract_attribute_substring): Reimplement using + canonicalize_attr_name. + (register_scoped_attribute): Change gcc_assert into + gcc_checking_assert, verify !canonicalize_attr_name rather than + that str.str doesn't start with '_'. + +2021-11-24 Jakub Jelinek + + PR tree-optimization/103376 + * gimple-ssa-store-merging.c (perform_symbolic_merge): Add CODE + argument. If CODE is not BIT_IOR_EXPR, ensure that one of masked1 + or masked2 is 0. + (find_bswap_or_nop_1, find_bswap_or_nop, + imm_store_chain_info::try_coalesce_bswap): Adjust + perform_symbolic_merge callers. + +2021-11-24 Richard Biener + + * tree-ssa-loop-ivopts.c (find_givs): Take loop body as + argument instead of re-computing it. + (find_interesting_uses): Likewise. + (find_induction_variables): Pass through loop body. + (tree_ssa_iv_optimize_loop): Pass down loop body. + +2021-11-24 Tamar Christina + + * tree-ssa-phiopt.c (spaceship_replacement): Handle new canonical + codegen. + +2021-11-24 Tamar Christina + + * tree.c (bitmask_inv_cst_vector_p): New. + * tree.h (bitmask_inv_cst_vector_p): New. + * match.pd: Use it in new bitmask compare pattern. + +2021-11-24 Jason Merrill + + * timevar.h (class auto_cond_timevar): New. + +2021-11-24 Hongtao Liu + H.J. Lu + + PR tree-optimization/103194 + * match.pd (gimple_nop_atomic_bit_test_and_p): Extended to + match truncation. + * tree-ssa-ccp.c (gimple_nop_convert): Declare. + (optimize_atomic_bit_test_and): Enhance + optimize_atomic_bit_test_and to handle truncation. + +2021-11-23 Martin Sebor + + PR middle-end/88232 + * Makefile.in (OBJS): Add gimple-warn-recursion.o. + * common.opt: Add -Winfinite-recursion. + * doc/invoke.texi (-Winfinite-recursion): Document. + * passes.def (pass_warn_recursion): Schedule a new pass. + * tree-pass.h (make_pass_warn_recursion): Declare. + * gimple-warn-recursion.c: New file. + +2021-11-23 Bill Schmidt + + * config/rs6000/rs6000-call.c (rs6000_invalid_new_builtin): Change + error messages for ENB_P8V and ENB_P9V. + +2021-11-23 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: Add power6-64 stanza. Move + CMPB to power6-64 stanza. + * config/rs6000/rs6000-call.c (rs6000_invalid_new_builtin): Handle + ENB_P6_64 case. + (rs6000_new_builtin_is_supported): Likewise. + (rs6000_expand_new_builtin): Likewise. Clean up formatting. + (rs6000_init_builtins): Handle ENB_P6_64 case. + * config/rs6000/rs6000-gen-builtins.c (bif_stanza): Add BSTZ_P6_64. + (stanza_map): Add entry mapping power6-64 to BSTZ_P6_64. + (enable_string): Add "ENB_P6_64". + (write_decls): Add ENB_P6_64 to bif_enable enum. + +2021-11-23 Jan Hubicka + + * ipa-modref-tree.h (struct modref_tree): Remove max_bases, max_refs + and max_accesses. + (modref_tree::modref_tree): Remove parametr. + (modref_tree::insert_base): Add max_bases parameter. + (modref_tree::insert): Add max_bases, max_refs, max_accesses + parameters. + (modref_tree::insert): New member function. + (modref_tree::merge): Add max_bases, max_refs, max_accesses + parameters. + (modref_tree::insert): New member function. + * ipa-modref-tree.c (test_insert_search_collapse): Update. + (test_merge): Update. + * ipa-modref.c (dump_records): Don't dump max_refs and max_bases. + (dump_lto_records): Likewise. + (modref_summary::finalize): Fix whitespace. + (get_modref_function_summary): Likewise. + (modref_access_analysis::record_access): Update. + (modref_access_analysis::record_access_lto): Update. + (modref_access_analysis::process_fnspec): Update. + (analyze_function): Update. + (modref_summaries::duplicate): Update. + (modref_summaries_lto::duplicate): Update. + (write_modref_records): Update. + (read_modref_records): Update. + (read_section): Update. + (propagate_unknown_call): Update. + (modref_propagate_in_scc): Update. + (ipa_merge_modref_summary_after_inlining): Update. + +2021-11-23 Martin Liska + + * doc/invoke.texi: Remove 2 more duplicite param descriptions. + +2021-11-23 Richard Biener + + PR tree-optimization/103361 + * gimple-loop-jam.c (adjust_unroll_factor): Use lambda_int + for the dependence distance. + * tree-data-ref.c (print_lambda_vector): Properly print a lambda_int. + +2021-11-23 Jakub Jelinek + + * tree-inline.h (struct copy_body_data): Remove + transform_lang_insert_block member. + * tree-inline.c (remap_block): Don't call + id->transform_lang_insert_block. + (optimize_inline_calls, copy_gimple_seq_and_replace_locals, + tree_function_versioning, maybe_inline_call_in_expr, + copy_fn): Don't initialize id.transform_lang_insert_block. + * gimplify.c (gimplify_omp_loop): Likewise. + +2021-11-23 Jan Hubicka + + PR tree-optimization/103335 + * tree-ssa-dse.c (valid_ao_ref_for_dse): Rename to ... + (valid_ao_ref_kill_for_dse): ... this; do not check that boundaries + are divisible by BITS_PER_UNIT. + (get_byte_aligned_range_containing_ref): New function. + (get_byte_aligned_range_contained_in_ref): New function. + (normalize_ref): Rename to ... + (get_byte_range): ... this one; handle accesses not aligned to byte + boundary; return range in bytes rater than updating ao_ref. + (clear_live_bytes_for_ref): Take write ref by reference; simplify using + get_byte_access. + (setup_live_bytes_from_ref): Likewise. + (clear_bytes_written_by): Update. + (live_bytes_read): Update. + (dse_classify_store): Simplify tech before live_bytes_read checks. + +2021-11-23 Andrew Pinski + + PR tree-optimization/102216 + * gimple-fold.c (fold_stmt_1): Add canonicalization + of "&MEM[ssa_n, CST]" to "ssa_n p+ CST", note this + can only be done if !in_place. + +2021-11-23 Jakub Jelinek + + PR middle-end/102431 + * gimplify.c (replace_reduction_placeholders): Remove. + (note_no_context_vars): New function. + (gimplify_omp_loop): For OMP_PARALLEL's BIND_EXPR create a new + BLOCK. Use copy_tree_body_r with walk_tree instead of unshare_expr + and replace_reduction_placeholders for duplication of + OMP_CLAUSE_REDUCTION_{INIT,MERGE} expressions. Ensure all mentioned + automatic vars have DECL_CONTEXT set to non-NULL before doing so + and reset it afterwards for those vars and their corresponding + vars. + +2021-11-23 Haochen Gui + + PR target/100868 + * config/rs6000/altivec.md (altivec_vreve2 for VEC_K): Use + xxbrq for v16qi, xxbrq + xxbrh for v8hi and xxbrq + xxbrw for v4si + or v4sf when p9_vector is set. + (altivec_vreve2 for VEC_64): Defined. Implemented by xxswapd. + +2021-11-23 Navid Rahimi + + PR tree-optimization/102232 + * match.pd (x * (1 + y / x) - y) -> (x - y % x): New optimization. + +2021-11-23 Navid Rahimi + + PR tree-optimization/96779 + * match.pd (-x == x) -> (x == 0): New optimization. + +2021-11-22 Roger Sayle + + PR tree-optimization/98953 + PR tree-optimization/103345 + * gimple-ssa-store-merging.c (find_bswap_or_nop_1): Handle + BIT_XOR_EXPR and PLUS_EXPR the same as BIT_IOR_EXPR. + (pass_optimize_bswap::execute): Likewise. + +2021-11-22 Martin Liska + + * doc/invoke.texi: Remove duplicate documentation for 3 params. + +2021-11-22 Richard Biener + + PR tree-optimization/103351 + * tree-ssa-dce.c (sort_phi_args): Sort after e->dest_idx as + second key. + +2021-11-22 liuhongt + + PR target/103275 + * config/i386/constraints.md (Bk): New + define_memory_constraint. + * config/i386/i386-protos.h (ix86_gpr_tls_address_pattern_p): + Declare. + * config/i386/i386.c (ix86_gpr_tls_address_pattern_p): New + function. + * config/i386/i386.md (*movsi_internal): Don't allow + mask/sse/mmx move in TLS code sequences. + (*movdi_internal): Ditto. + +2021-11-22 Kewen Lin + + * config/xtensa/xtensa.md (movdi_internal, movdf_internal): Fix split + condition. + +2021-11-21 Jakub Jelinek + + PR c++/101180 + * config/i386/i386-options.c (ix86_valid_target_attribute_p): If + fndecl already has DECL_FUNCTION_SPECIFIC_TARGET, use that as base + instead of target_option_default_node. + +2021-11-21 Jan Hubicka + + PR ipa/103227 + * ipa-modref.c (parm_map_for_arg): Rename to ... + (parm_map_for_ptr): .. this one; handle static chain and calls to + malloc functions. + (modref_access_analysis::get_access): Use parm_map_for_ptr. + (modref_access_analysis::process_fnspec): Update. + (modref_access_analysis::analyze_load): Update. + (modref_access_analysis::analyze_store): Update. + +2021-11-21 Jan Hubicka + + * ipa-modref.c (ignore_nondeterminism_p): Move earlier in source + code. + (ignore_retval_p): Likewise. + (ignore_stores_p): Likewise. + (parm_map_for_arg): Likewise. + (class modref_access_analysis): New class. + (modref_access_analysis::set_side_effects): New member function. + (modref_access_analysis::set_nondeterministic): New member function. + (get_access): Turn to ... + (modref_access_analysis::get_access): ... this one. + (record_access): Turn to ... + (modref_access_analysis::record_access): ... this one. + (record_access_lto): Turn to ... + (modref_access_analysis::record_access_lto): ... This one. + (record_access_p): Turn to ... + (modref_access_analysis::record_access_p): ... This one + (modref_access_analysis::record_unknown_load): New member function. + (modref_access_analysis::record_unknown_store): New member function. + (get_access_for_fnspec): Turn to ... + (modref_access_analysis::get_access_for_fnspec): ... this one. + (merge_call_side_effects): Turn to ... + (moderf_access_analysis::merge_call_side_effects): Turn to ... + (collapse_loads): Move later in source code. + (collapse_stores): Move later in source code. + (process_fnspec): Turn to ... + (modref_access_analysis::process_fnspec): ... this one. + (analyze_call): Turn to ... + (modref_access_analysis::analyze_call): ... this one. + (struct summary_ptrs): Remove. + (analyze_load): Turn to ... + (modref_access_analysis::analyze_load): ... this one. + (analyze_store): Turn to ... + (modref_access_analysis::analyze_store): ... this one. + (analyze_stmt): Turn to ... + (modref_access_analysis::analyze_stmt): ... This one. + (remove_summary): Remove. + (modref_access_analysis::propagate): Break out from ... + (modref_access_analysis::analyze): Break out from ... + (analyze_function): ... here. + +2021-11-21 Roger Sayle + Robin Dapp + + PR target/102117 + * tree-ssa-math-opts.c (convert_mult_to_widen): Recognize + signed WIDEN_MULT_EXPR if the target supports umul_widen_optab. + +2021-11-20 Jan Hubicka + + PR ipa/103052 + * ipa-modref.c (ignore_nondeterminism_p): Allow looping pure/cont. + (merge_call_side_effects): Improve debug output. + +2021-11-20 Jan Hubicka + + PR ipa/103052 + * ipa-pure-const.c (propagate_pure_const): Fix merging of loping flag. + +2021-11-20 Jeff Law + + PR tree-optimization/103226 + * config/bfin/bfin.md (doloop pattern, splitter and expander): Clobber + CC. + +2021-11-20 Andrew Pinski + + PR tree-optimization/103220 + * match.pd ((type) X bitop CST): Don't check if CST + fits into the type if only the sign changes. + +2021-11-20 Alexandre Oliva + + PR tree-optimization/102988 + * gimple-harden-conditionals.cc (detach_value): Copy SSA_NAME + without decl sharing. + +2021-11-19 Iain Sandoe + + * doc/invoke.texi: Remove whitespace after an @option. + +2021-11-19 Paul A. Clarke + + * config/rs6000/emmintrin.h (_mm_sad_epu8): Use vec_absd when + _ARCH_PWR9, optimize vec_sum2s when LE. + +2021-11-19 Iain Sandoe + + PR target/80556 + * config/darwin-driver.c (darwin_driver_init): Handle exported + symbols and symbol lists (suppress automatic export of the TLS + symbols). + * config/darwin.c (darwin_rename_builtins): Remove workaround. + * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. + (REAL_LIBGCC_SPEC): Handle revised library uses. + * config/darwin.opt (nodefaultexport): New. + * config/i386/darwin.h (PR80556_WORKAROUND): Remove. + * config/i386/darwin32-biarch.h (PR80556_WORKAROUND): Likewise. + * config/i386/darwin64-biarch.h (PR80556_WORKAROUND): Likewise. + +2021-11-19 Martin Jambor + + * opts.c (default_options_table): Switch off + flag_semantic_interposition at Ofast. + * doc/invoke.texi (Optimize Options): Document that Ofast switches off + -fsemantic-interposition. + +2021-11-19 Jan Hubicka + + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Do not guard modref + by !gimple_call_chain. + +2021-11-19 Martin Sebor + + PR c++/33925 + PR c/102867 + * doc/invoke.texi (-Waddress): Update. + +2021-11-19 Andrew MacLeod + + PR tree-optimization/103254 + * gimple-range-gori.cc (range_def_chain::get_def_chain): Limit the + depth for all statements with multple ssa names. + +2021-11-19 Stefan Schulze Frielinghaus + + * config/s390/s390.md (define_peephole2): Variable insn points + to the first matched insn. Use peep2_next_insn(1) to refer to + the second matched insn. + +2021-11-19 Tamar Christina + + PR tree-optimization/103311 + PR target/103330 + * tree-vect-slp-patterns.c (vect_validate_multiplication): Fix CONJ + test to new codegen. + (complex_mul_pattern::matches): Move check downwards. + +2021-11-19 Martin Liska + + Revert: + 2021-11-19 Martin Liska + + * cfgexpand.c (pass_expand::execute): Use option directly. + * function.c (allocate_struct_function): Likewise. + * gimple-low.c (lower_function_body): Likewise. + (lower_stmt): Likewise. + * gimple-ssa-backprop.c (backprop::prepare_change): Likewise. + * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Likewise. + * ipa-split.c (split_function): Likewise. + * lto-streamer-in.c (input_function): Likewise. + * sese.c (sese_insert_phis_for_liveouts): Likewise. + * ssa-iterators.h (num_imm_uses): Likewise. + * tree-cfg.c (make_blocks): Likewise. + (gimple_merge_blocks): Likewise. + * tree-inline.c (tree_function_versioning): Likewise. + * tree-loop-distribution.c (generate_loops_for_partition): Likewise. + * tree-sra.c (analyze_access_subtree): Likewise. + * tree-ssa-dce.c (remove_dead_stmt): Likewise. + * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. + * tree-ssa-phiopt.c (spaceship_replacement): Likewise. + * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise. + * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise. + * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Likewise. + * tree-ssa.c (gimple_replace_ssa_lhs): Likewise. + (target_for_debug_bind): Likewise. + (insert_debug_temp_for_var_def): Likewise. + (insert_debug_temps_for_defs): Likewise. + (reset_debug_uses): Likewise. + * tree-ssanames.c (release_ssa_name_fn): Likewise. + * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Likewise. + (adjust_debug_stmts): Likewise. + (adjust_phi_and_debug_stmts): Likewise. + (vect_do_peeling): Likewise. + * tree-vect-loop.c (vect_transform_loop_stmt): Likewise. + (vect_transform_loop): Likewise. + * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Remove + (MAY_HAVE_DEBUG_BIND_STMTS): Remove. + (MAY_HAVE_DEBUG_STMTS): Use options directly. + +2021-11-19 Giuliano Belinassi + + * gcc.c (process_command): Skip dumpdir override if file is a + not_actual_file_p. + * doc/invoke.texi: Update -dumpdir documentation. + +2021-11-19 Andrew Pinski + + PR tree-optimization/103314 + * match.pd ((type) X op CST): Restrict the equal + TYPE_PRECISION case to GIMPLE only. + +2021-11-19 Martin Liska + + PR ipa/103230 + * ipa-modref-tree.h (struct modref_parm_map): Add default + constructor. + * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Use it. + +2021-11-19 Richard Biener + + PR middle-end/103248 + * tree-eh.c (operation_could_trap_helper_p): Properly handle + fixed-point RDIV_EXPR. + +2021-11-19 Richard Biener + + PR tree-optimization/102436 + * tree-ssa-loop-im.c (execute_sm_if_changed): Add mode + to just create the if structure and return the then block. + (execute_sm): Add flag to indicate the var will re-use + another flag var. + (hoist_memory_references): Support a single conditional + block with all stores as special case. + +2021-11-19 Andrew Pinski + + PR tree-optimization/103317 + * tree-ssa-phiopt.c (minmax_replacement): For the non empty + middle bb case, check to make sure it has a single predecessor. + +2021-11-19 Andrew Pinski + + PR tree-optimization/103257 + * match.pd + ((m1 >/=/<= m2) * d -> (m1 >/=/<= m2) ? d : 0): + Disable until !canonicalize_math_p (). + +2021-11-19 Marek Polacek + + PR c++/19808 + PR c++/96121 + * doc/invoke.texi: Update documentation for -Wuninitialized. + * tree.c (stabilize_reference): Set location. + +2021-11-19 liuhongt + + PR target/102543 + * config/i386/x86-tune-costs.h (skylake_cost): Reduce cost of + storing 256/512-bit SSE register to be equal to cost of + unaligned store to avoid odd alignment peeling. + (icelake_cost): Ditto. + +2021-11-18 David Edelsohn + + * config/rs6000/predicates.md (current_file_function_operand): + Add flag_semantic_interposition to call of decl_replaceable_p. + +2021-11-18 Martin Liska + + * ipa-modref.c (analyze_function): Do not execute the code + only if dump_file != NULL. + +2021-11-18 Martin Liska + + * ipa-modref.c (analyze_function): Use fnode instead of repeated + cgraph_node::get (current_function_decl). + +2021-11-18 Jan Hubicka + + * cgraph.c (cgraph_node::get_availability): Update call of + decl_replaceable_p. + (cgraph_node::verify_node): Verify that semantic_interposition flag + is set correclty. + * cgraph.h: (symtab_node): Add semantic_interposition flag. + * cgraphclones.c (set_new_clone_decl_and_node_flags): Clear + semantic_interposition flag. + * cgraphunit.c (cgraph_node::finalize_function): Set + semantic_interposition flag. + (cgraph_node::add_new_function): Likewise. + (varpool_node::finalize_decl): Likewise. + (cgraph_node::create_wrapper): Likewise. + * common.opt (fsemantic-interposition): Turn to optimization node. + * lto-cgraph.c (lto_output_node): Stream semantic_interposition. + (lto_output_varpool_node): Likewise. + (input_overwrite_node): Likewise. + (input_varpool_node): Likewise. + * symtab.c (symtab_node::dump_base): Dump new flag. + * varasm.c (decl_replaceable_p): Add semantic_interposition_p + parameter. + * varasm.h (decl_replaceable_p): Update declaration. + * varpool.c (varpool_node::ctor_useable_for_folding_p): + Use semantic_interposition flag. + (varpool_node::get_availability): Likewise. + (varpool_node::create_alias): Copy semantic_interposition flag. + +2021-11-18 Jan Hubicka + + PR ipa/103266 + * ipa-modref.c (modref_eaf_analysis::merge_call_lhs_flags): Unused + parameter may still be returned. + (modref_eaf_analysis::analyze_ssa_name): Call merge_call_lhs_flags + even for unused function args. + +2021-11-18 Tamar Christina + + PR tree-optimization/103311 + * tree-vect-slp-patterns.c (complex_mul_pattern::matches, + complex_fms_pattern::matches): Check for multiplications. + +2021-11-18 H.J. Lu + + PR target/102952 + * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): Emit + CS prefix for -mindirect-branch-cs-prefix. + (ix86_output_indirect_branch_via_reg): Likewise. + * config/i386/i386.opt: Add -mindirect-branch-cs-prefix. + * doc/invoke.texi: Document -mindirect-branch-cs-prefix. + +2021-11-18 David Edelsohn + + * config/rs6000/driver-rs6000.c (detect_processor_aix): Add + power10. + +2021-11-18 Tamar Christina + + PR tree-optimization/103253 + * tree-ssa-math-opts.c (convert_mult_to_fma): Check for LHS. + +2021-11-18 Matthias Kretz + + * doc/extend.texi: Document __builtin_assoc_barrier. + +2021-11-18 Martin Liska + + * cfgexpand.c (pass_expand::execute): Use option directly. + * function.c (allocate_struct_function): Likewise. + * gimple-low.c (lower_function_body): Likewise. + (lower_stmt): Likewise. + * gimple-ssa-backprop.c (backprop::prepare_change): Likewise. + * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Likewise. + * ipa-split.c (split_function): Likewise. + * lto-streamer-in.c (input_function): Likewise. + * sese.c (sese_insert_phis_for_liveouts): Likewise. + * ssa-iterators.h (num_imm_uses): Likewise. + * tree-cfg.c (make_blocks): Likewise. + (gimple_merge_blocks): Likewise. + * tree-inline.c (tree_function_versioning): Likewise. + * tree-loop-distribution.c (generate_loops_for_partition): Likewise. + * tree-sra.c (analyze_access_subtree): Likewise. + * tree-ssa-dce.c (remove_dead_stmt): Likewise. + * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. + * tree-ssa-phiopt.c (spaceship_replacement): Likewise. + * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise. + * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise. + * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Likewise. + * tree-ssa.c (gimple_replace_ssa_lhs): Likewise. + (target_for_debug_bind): Likewise. + (insert_debug_temp_for_var_def): Likewise. + (insert_debug_temps_for_defs): Likewise. + (reset_debug_uses): Likewise. + * tree-ssanames.c (release_ssa_name_fn): Likewise. + * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Likewise. + (adjust_debug_stmts): Likewise. + (adjust_phi_and_debug_stmts): Likewise. + (vect_do_peeling): Likewise. + * tree-vect-loop.c (vect_transform_loop_stmt): Likewise. + (vect_transform_loop): Likewise. + * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Remove + (MAY_HAVE_DEBUG_BIND_STMTS): Remove. + (MAY_HAVE_DEBUG_STMTS): Use options directly. + +2021-11-18 Richard Biener + + PR tree-optimization/103277 + * tree-ssa-dse.c (need_ab_cleanup): New. + (dse_optimize_redundant_stores): Adjust. + (delete_dead_or_redundant_assignment): Get extra + need_ab_cleanup argument and set when abnormal cleanup is + needed. + (dse_optimize_call): Adjust. + (dse_optimize_stmt): Likewise. + (pass_dse::execute): Allocate and deallocate need_ab_cleanup. + Perform abnormal cleanup. + * tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust. + +2021-11-18 Hongyu Wang + + * config/i386/i386-expand.c (ix86_expand_atomic_fetch_op_loop): + Adjust generated cfg to avoid infinite loop. + +2021-11-18 konglin1 + + * config/i386/avx512fp16intrin.h (_mm512_mul_pch): Add alias for _mm512_fmul_pch. + (_mm512_mask_mul_pch): Likewise. + (_mm512_maskz_mul_pch): Likewise. + (_mm512_mul_round_pch): Likewise. + (_mm512_mask_mul_round_pch): Likewise. + (_mm512_maskz_mul_round_pch): Likewise. + (_mm512_cmul_pch): Likewise. + (_mm512_mask_cmul_pch): Likewise. + (_mm512_maskz_cmul_pch): Likewise. + (_mm512_cmul_round_pch): Likewise. + (_mm512_mask_cmul_round_pch): Likewise. + (_mm512_maskz_cmul_round_pch): Likewise. + (_mm_mul_sch): Likewise. + (_mm_mask_mul_sch): Likewise. + (_mm_maskz_mul_sch): Likewise. + (_mm_mul_round_sch): Likewise. + (_mm_mask_mul_round_sch): Likewise. + (_mm_maskz_mul_round_sch): Likewise. + (_mm_cmul_sch): Likewise. + (_mm_mask_cmul_sch): Likewise. + (_mm_maskz_cmul_sch): Likewise. + (_mm_cmul_round_sch): Likewise. + (_mm_mask_cmul_round_sch): Likewise. + (_mm_maskz_cmul_round_sch): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm_mul_pch): Likewise. + (_mm_mask_mul_pch): Likewise. + (_mm_maskz_mul_pch): Likewise. + (_mm256_mul_pch): Likewise. + (_mm256_mask_mul_pch): Likewise. + (_mm256_maskz_mul_pch): Likewise. + (_mm_cmul_pch): Likewise. + (_mm_mask_cmul_pch): Likewise. + (_mm_maskz_cmul_pch): Likewise. + (_mm256_cmul_pch): Likewise. + (_mm256_mask_cmul_pch): Likewise. + (_mm256_maskz_cmul_pch): Likewise. + +2021-11-17 Andrew Pinski + + PR tree-optimization/103228 + PR tree-optimization/55177 + * match.pd ((type) X bitop CST): Also do this + transformation for nop conversions. + +2021-11-17 Martin Sebor + + PR tree-optimization/102759 + * gimple-array-bounds.cc (build_printable_array_type): Move... + * gimple-ssa-warn-access.cc (build_printable_array_type): Avoid + pathological function redeclarations that remove a previously + declared prototype. + Improve formatting of function arguments in informational notes. + * pointer-query.cc (build_printable_array_type): ...to here. + * pointer-query.h (build_printable_array_type): Declared. + +2021-11-17 H.J. Lu + + PR target/102952 + * config/i386/i386-opts.h (harden_sls): New enum. + * config/i386/i386.c (output_indirect_thunk): Mitigate against + SLS for function return. + (ix86_output_function_return): Likewise. + (ix86_output_jmp_thunk_or_indirect): Mitigate against indirect + branch. + (ix86_output_indirect_jmp): Likewise. + (ix86_output_call_insn): Likewise. + * config/i386/i386.opt: Add -mharden-sls=. + * doc/invoke.texi: Document -mharden-sls=. + +2021-11-17 H.J. Lu + + PR target/103307 + * config/i386/i386.c (ix86_code_end): Remove "%!" before ret. + (ix86_output_function_return): Likewise. + * config/i386/i386.md (simple_return_pop_internal): Likewise. + +2021-11-17 Jan Hubicka + + PR ipa/103246 + * ipa-modref.c (read_modref_records): Fix streaminig in of every_access + flag. + +2021-11-17 Uroš Bizjak + + * config/i386/i386.c (indirect_thunks_used): Redefine as HARD_REG_SET. + (ix86_code_end): Use TEST_HARD_REG_BIT on indirect_thunks_used. + (ix86_output_indirect_branch_via_reg): Use SET_HARD_REG_BIT + on indirect_thunks_used. + (ix86_output_indirect_function_return): Ditto. + +2021-11-17 Jan Hubicka + + * ipa-modref-tree.c: Include cgraph.h and tree-streamer.h. + (modref_access_node::stream_out): New member function. + (modref_access_node::stream_in): New member function. + * ipa-modref-tree.h (modref_access_node::stream_out, + modref_access_node::stream_in): Declare. + * ipa-modref.c (modref_summary_lto::useful_p): Free useless kills. + (modref_summary_lto::dump): Dump kills. + (analyze_store): Record kills for LTO + (analyze_stmt): Likewise. + (modref_summaries_lto::duplicate): Duplicate kills. + (write_modref_records): Use new stream_out member function. + (read_modref_records): Likewise. + (modref_write): Stream out kills. + (read_section): Stream in kills + (remap_kills): New function. + (update_signature): Use it. + +2021-11-17 Uroš Bizjak + + * config/i386/i386.h (LEGACY_SSE_REGNO_P): New predicate. + (SSE_REGNO_P): Use LEGACY_SSE_REGNO_P predicate. + * config/i386/i386.c (zero_all_vector_registers): + Use LEGACY_SSE_REGNO_P predicate. + (ix86_register_priority): Use REX_INT_REGNO_P, REX_SSE_REGNO_P + and EXT_REG_SSE_REGNO_P predicates. + (ix86_hard_regno_call_part_clobbered): Use REX_SSE_REGNO_P + and LEGACY_SSE_REGNO_P predicates. + +2021-11-17 Jason Merrill + + * doc/invoke.texi (C++ Dialect Options): Document + -fimplicit-constexpr. + +2021-11-17 Przemyslaw Wirkus + + * config/aarch64/aarch64-modes.def (VECTOR_MODE): New V8DI mode. + * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Handle + V8DImode. + * config/aarch64/iterators.md (define_mode_attr nunits): Add entry + for V8DI. + +2021-11-17 Martin Uecker + + PR c/91038 + PR c/29970 + * gimplify.c (gimplify_var_or_parm_decl): Update comment. + (gimplify_compound_lval): Gimplify base expression first. + (gimplify_target_expr): Add comment. + +2021-11-17 Jakub Jelinek + + PR tree-optimization/103192 + * tree-ssa-loop-im.c (move_computations_worker): Use + reset_flow_sensitive_info instead of manually clearing + SSA_NAME_RANGE_INFO and do it for all SSA_NAMEs, not just ones + with integral types. + +2021-11-17 Jakub Jelinek + + PR tree-optimization/103255 + * gimple-range-fold.cc (fold_using_range::range_of_address): Return + range_nonzero rather than unadjusted base's range. Formatting fixes. + +2021-11-17 Richard Sandiford + + * doc/md.texi (cond_fmin@var{mode}, cond_fmax@var{mode}): Document. + * optabs.def (cond_fmin_optab, cond_fmax_optab): New optabs. + * internal-fn.def (COND_FMIN, COND_FMAX): New functions. + * internal-fn.c (first_commutative_argument): Handle them. + (FOR_EACH_COND_FN_PAIR): Likewise. + * match.pd (UNCOND_BINARY, COND_BINARY): Likewise. + * config/aarch64/aarch64-sve.md (cond_): New + pattern. + +2021-11-17 Kewen Lin + + * config/i386/i386.md (*add3_doubleword, *addv4_doubleword, + *addv4_doubleword_1, *sub3_doubleword, + *subv4_doubleword, *subv4_doubleword_1, + *add3_doubleword_cc_overflow_1, *divmodsi4_const, + *neg2_doubleword, *tls_dynamic_gnu2_combine_64_): Fix split + condition. + +2021-11-17 Andrew Pinski + + PR tree-optimization/103288 + * tree-ssa-phiopt.c (value_replacement): Return early if middle + block has more than one pred. + +2021-11-17 Kewen Lin + + * config/visium/visium.md (*add3_insn, *addsi3_insn, *addi3_insn, + *sub3_insn, *subsi3_insn, *subdi3_insn, *neg2_insn, + *negdi2_insn, *and3_insn, *ior3_insn, *xor3_insn, + *one_cmpl2_insn, *ashl3_insn, *ashr3_insn, + *lshr3_insn, *trunchiqi2_insn, *truncsihi2_insn, + *truncdisi2_insn, *extendqihi2_insn, *extendqisi2_insn, + *extendhisi2_insn, *extendsidi2_insn, *zero_extendqihi2_insn, + *zero_extendqisi2_insn, *zero_extendsidi2_insn): Fix split condition. + +2021-11-17 Marek Polacek + + PR preprocessor/103026 + * doc/invoke.texi: Document -Wbidi-chars. + +2021-11-17 Jan Hubicka + + PR ipa/103246 + * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix clearing + of to_info_lto + +2021-11-16 Jan Hubicka + + * ipa-modref.c (get_modref_function_summary): Declare. + * ipa-modref.h (get_modref_function_summary): New function. + * tree-ssa-dse.c (clear_live_bytes_for_ref): Break out from ... + (clear_bytes_written_by): ... here; also clear memory killed by + calls. + +2021-11-16 Iain Sandoe + + * ggc-common.c (gt_pch_save): If we cannot find a suitable + memory segment for save, then error-out, do not try to + continue. + (gt_pch_restore): Save the existing line table, and when + the replacement is being read, use that when constructing + diagnostics. + +2021-11-16 Peter Bergner + + PR target/102976 + * config/rs6000/mma.md (*vsx_assemble_pair): Add early-clobber for + output operand. + (*mma_assemble_acc): Likewise. + +2021-11-16 Martin Sebor + + PR tree-optimization/102960 + * gimple-fold.c (get_range_strlen): Take bitmap as an argument rather + than a pointer to it. + (get_range_strlen_tree): Same. Remove bitmap allocation. Use + an auto_bitmap. + (get_maxval_strlen): Use an auto_bitmap. + * tree-ssa-strlen.c (get_range_strlen_dynamic): Factor out PHI + handling... + (get_range_strlen_phi): ...into this function. + Avoid assuming maximum string length is constant + (printf_strlen_execute): Dump pointer query cache contents when + details are requisted. + +2021-11-16 Jason Merrill + + * langhooks.h (struct lang_hooks): Adjust comment. + * print-tree.c (print_node): Also call print_xnode hook for + tcc_constant class. + +2021-11-16 Andrew Pinski + + PR tree-optimization/103218 + * match.pd: New pattern for "((type)(a<0)) << SIGNBITOFA". + +2021-11-16 Claudiu Zissulescu + + * config/arc/arc.md (maddhisi4): Use a single move to accumulator. + (umaddhisi4): Likewise. + (machi): Update pattern. + (umachi): Likewise. + +2021-11-16 Richard Biener + + PR tree-optimization/102880 + * tree-ssa-dce.c (sort_phi_args): New function. + (make_forwarders_with_degenerate_phis): Likewise. + (perform_tree_ssa_dce): Call + make_forwarders_with_degenerate_phis. + +2021-11-16 Richard Biener + + PR tree-optimization/102880 + * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Push + single_pred (bb1) condition to places that really need it. + (match_simplify_replacement): Likewise. + (value_replacement): Likewise. + (replace_phi_edge_with_variable): Deal with extra edges + into the middle BB. + +2021-11-16 Martin Jambor + + * cfgexpand.c (expand_gimple_basic_block): Use build_debug_expr_decl, + add a fixme note about the mode assignment perhaps being unnecessary. + * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): + Likewise. + (ipa_param_body_adjustments::mark_dead_statements): Likewise. + (ipa_param_body_adjustments::reset_debug_stmts): Likewise. + * tree-inline.c (remap_ssa_name): Likewise. + (tree_function_versioning): Likewise. + * tree-into-ssa.c (rewrite_debug_stmt_uses): Likewise. + * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. + * tree-ssa.c (insert_debug_temp_for_var_def): Likewise. + +2021-11-16 Jakub Jelinek + + PR tree-optimization/103208 + * omp-expand.c (expand_omp_build_cond): New function. + (expand_omp_for_init_counts, expand_omp_for_init_vars, + expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Use it. + +2021-11-16 Jakub Jelinek + + PR tree-optimization/102009 + * gimple-ssa-warn-access.cc (pass_waccess::check_alloc_size_call): + Punt if any of alloc_size arguments is out of bounds vs. number of + call arguments. + +2021-11-16 Roger Sayle + + * config/i386/i386.md (*bmi2_rorx_1): Make conditional + on !optimize_function_for_size_p. + (*3_1): Add preferred_for_size attribute. + (define_splits): Conditionalize on !optimize_function_for_size_p. + (*bmi2_rorxsi3_1_zext): Likewise. + (*si2_1_zext): Add preferred_for_size attribute. + (define_splits): Conditionalize on !optimize_function_for_size_p. + +2021-11-16 Jan Hubicka + + PR ipa/103262 + * ipa-modref.c (merge_call_side_effects): Fix uninitialized + access. + +2021-11-16 Andrew Pinski + + PR tree-optimization/103245 + * match.pd: Combine the abs pattern matching using multiplication. + Adding optional nop_convert too. + +2021-11-16 H.J. Lu + + PR middle-end/103268 + * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Add a missing + return. + +2021-11-15 Siddhesh Poyarekar + + * gimple-fold.c (gimple_fold_builtin_strncat): Use ranges to + determine if it is safe to transform to strcat. + (gimple_fold_builtin_snprintf): Likewise. + +2021-11-15 Siddhesh Poyarekar + + * gimple-fold.c (known_lower): New function. + (gimple_fold_builtin_strncat_chk, + gimple_fold_builtin_memory_chk, gimple_fold_builtin_stxcpy_chk, + gimple_fold_builtin_stxncpy_chk, + gimple_fold_builtin_snprintf_chk, + gimple_fold_builtin_sprintf_chk): Use it. + +2021-11-15 Siddhesh Poyarekar + + * gimple-fold.c (dump_transformation): New function. + (gimple_fold_builtin_stxcpy_chk, + gimple_fold_builtin_stxncpy_chk): Use it. Simplify to + BUILT_IN_STRNCPY if return value is not used. + +2021-11-15 H.J. Lu + + PR middle-end/103184 + * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Check optab + before transforming equivalent, but slighly different cases to + their canonical forms. + +2021-11-15 Iain Sandoe + + PR fortran/102992 + * config/darwin.h (TARGET_DTORS_FROM_CXA_ATEXIT): New. + * doc/tm.texi: Regenerated. + * doc/tm.texi.in: Add TARGET_DTORS_FROM_CXA_ATEXIT hook. + * ipa.c (cgraph_build_static_cdtor_1): Return the built + function decl. + (build_cxa_atexit_decl): New. + (build_dso_handle_decl): New. + (build_cxa_dtor_registrations): New. + (compare_cdtor_tu_order): New. + (build_cxa_atexit_fns): New. + (ipa_cdtor_merge): If dtors_from_cxa_atexit is set, + process the DTORs/CTORs accordingly. + (pass_ipa_cdtor_merge::gate): Also run if + dtors_from_cxa_atexit is set. + * target.def (dtors_from_cxa_atexit): New hook. + +2021-11-15 Iain Sandoe + + * config.in: Regenerate. + * configure: Regenerate. + * configure.ac: Test ld64 for -platform-version support. + +2021-11-15 Thomas Schwinge + + * diagnostic-spec.h (typedef xint_hash_t) + (typedef xint_hash_map_t): Replace with... + (typedef nowarn_map_t): ... this. + (nowarn_map): Adjust. + * diagnostic-spec.c (nowarn_map, suppress_warning_at): Likewise. + +2021-11-15 Thomas Schwinge + + * profile.c (branch_prob): Use 'location_hash' for + 'seen_locations'. + +2021-11-15 Aldy Hernandez + + PR tree-optimization/103207 + * value-range.cc (irange::set): Drop overflow. + +2021-11-15 Jakub Jelinek + + * gimplify.c (optimize_target_teams): Only add OMP_CLAUSE_THREAD_LIMIT + to OMP_TARGET_CLAUSES if it isn't there already. + +2021-11-15 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::internal_range_of_expr): + Remove useless code. + (path_range_query::ssa_defined_in_bb): New. + (path_range_query::ssa_range_in_phi): Avoid fold_range call that + could trigger additional lookups. + Do not use the cache for ARGs defined in this block. + (path_range_query::compute_ranges_in_block): Use ssa_defined_in_bb. + (path_range_query::maybe_register_phi_relation): Same. + (path_range_query::range_of_stmt): Adjust comment. + * gimple-range-path.h (ssa_defined_in_bb): New. + +2021-11-15 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::internal_range_of_expr): + Default to global range if nothing found. + +2021-11-15 Richard Biener + + PR tree-optimization/103237 + * tree-vect-loop.c (vect_is_simple_reduction): Fail for + double reductions with multiple inner loop LC PHI nodes. + +2021-11-15 Hongyu Wang + + PR target/103069 + * config/i386/i386-expand.c (ix86_expand_atomic_fetch_op_loop): + New expand function. + * config/i386/i386-options.c (ix86_target_string): Add + -mrelax-cmpxchg-loop flag. + (ix86_valid_target_attribute_inner_p): Likewise. + * config/i386/i386-protos.h (ix86_expand_atomic_fetch_op_loop): + New expand function prototype. + * config/i386/i386.opt: Add -mrelax-cmpxchg-loop. + * config/i386/sync.md (atomic_fetch_): New expander + for SI,HI,QI modes. + (atomic__fetch): Likewise. + (atomic_fetch_nand): Likewise. + (atomic_nand_fetch): Likewise. + (atomic_fetch_): New expander for DI,TI modes. + (atomic__fetch): Likewise. + (atomic_fetch_nand): Likewise. + (atomic_nand_fetch): Likewise. + * doc/invoke.texi: Document -mrelax-cmpxchg-loop. + +2021-11-15 Richard Biener + + PR tree-optimization/103219 + * gimple-loop-jam.c (tree_loop_unroll_and_jam): Use single_exit + to determine the exit for the VN region. + +2021-11-15 Prathamesh Kulkarni + + * tree-ssa-loop.c (pass_vectorize): Move to tree-vectorizer.c. + (pass_data_vectorize): Likewise. + (make_pass_vectorize): Likewise. + * tree-vectorizer.c (vectorize_loops): Merge with + pass_vectorize::execute and replace cfun occurences with fun param. + (adjust_simduid_builtins): Add fun param, replace cfun occurences with + fun, and adjust callers approrpiately. + (note_simd_array_uses): Likewise. + (vect_loop_dist_alias_call): Likewise. + (set_uid_loop_bbs): Likewise. + (vect_transform_loops): Likewise. + (try_vectorize_loop_1): Likewise. + (try_vectorize_loop): Likewise. + +2021-11-15 Jakub Jelinek + + PR target/103205 + * config/i386/sync.md (atomic_bit_test_and_set, + atomic_bit_test_and_complement, + atomic_bit_test_and_reset): Use OPTAB_WIDEN instead of + OPTAB_DIRECT. + +2021-11-15 Maciej W. Rozycki + + * config/vax/vax.c (vax_lra_p): New prototype and function. + (TARGET_LRA_P): Wire it. + * config/vax/vax.opt (mlra): New option. + * doc/invoke.texi (Option Summary, VAX Options): Document the + new option. + +2021-11-14 Jan Hubicka + + * ipa-modref.h (struct modref_summary): Add nondeterministic + and calls_interposable flags. + * ipa-modref.c (modref_summary::modref_summary): Initialize new flags. + (modref_summary::useful_p): Check new flags. + (struct modref_summary_lto): Add nondeterministic and + calls_interposable flags. + (modref_summary_lto::modref_summary_lto): Initialize new flags. + (modref_summary_lto::useful_p): Check new flags. + (modref_summary::dump): Dump new flags. + (modref_summary_lto::dump): Dump new flags. + (ignore_nondeterminism_p): New function. + (merge_call_side_effects): Merge new flags. + (process_fnspec): Likewise. + (analyze_load): Volatile access is nondeterministic. + (analyze_store): Liekwise. + (analyze_stmt): Volatile ASM is nondeterministic. + (analyze_function): Clear new flags. + (modref_summaries::duplicate): Duplicate new flags. + (modref_summaries_lto::duplicate): Duplicate new flags. + (modref_write): Stream new flags. + (read_section): Stream new flags. + (propagate_unknown_call): Update new flags. + (modref_propagate_in_scc): Propagate new flags. + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check + calls_interposable. + * tree-ssa-structalias.c (determine_global_memory_access): + Likewise. + +2021-11-14 Maciej W. Rozycki + + * config/vax/vax.h (SET_RATIO): New macro. + * config/vax/vax.md (UNSPEC_SETMEM_FILL): New constant. + (setmemhi): New expander. + (setmemhi1): New insn and splitter. + (*setmemhi1): New insn. + +2021-11-14 Jan Hubicka + + * ipa-modref-tree.c (modref_access_node::update_for_kills): New + member function. + (modref_access_node::merge_for_kills): Likewise. + (modref_access_node::insert_kill): Likewise. + * ipa-modref-tree.h (modref_access_node::update_for_kills, + modref_access_node::merge_for_kills, modref_access_node::insert_kill): + Declare. + (modref_access_node::useful_for_kill): New member function. + * ipa-modref.c (modref_summary::useful_p): Release useless kills. + (lto_modref_summary): Add kills. + (modref_summary::dump): Dump kills. + (record_access): Add mdoref_access_node parameter. + (record_access_lto): Likewise. + (merge_call_side_effects): Merge kills. + (analyze_call): Add ALWAYS_EXECUTED param and pass it around. + (struct summary_ptrs): Add always_executed filed. + (analyze_load): Update. + (analyze_store): Update; record kills. + (analyze_stmt): Add always_executed; record kills in clobbers. + (analyze_function): Track always_executed. + (modref_summaries::duplicate): Duplicate kills. + (update_signature): Release kills. + * ipa-modref.h (struct modref_summary): Add kills. + * tree-ssa-alias.c (alias_stats): Add kill stats. + (dump_alias_stats): Dump kill stats. + (store_kills_ref_p): Break out from ... + (stmt_kills_ref_p): Use it; handle modref info based kills. + +2021-11-14 Aldy Hernandez + + PR tree-optimization/103229 + * gimple-range-cache.cc (ssa_global_cache::clear): Do not pass + null value to memset. + +2021-11-14 Jan Hubicka + + * ipa-modref-tree.c (modref_access_node::get_call_arg): New member + function. + (modref_access_node::get_ao_ref): Likewise. + * ipa-modref-tree.h (modref_access_node::get_call_arg): Declare. + (modref_access_node::get_ao_ref): Declare. + * tree-ssa-alias.c (modref_may_conflict): Use new accessors. + * tree-ssa-dse.c (dse_optimize_call): Use new accessors. + +2021-11-13 Jan Hubicka + + PR lto/103211 + * dbgcnt.def (ipa_attr): New counters. + * ipa-pure-const.c: Include dbgcnt.c + (ipa_make_function_const): Use debug counter. + (ipa_make_function_pure): Likewise. + (propagate_pure_const): Fix bug in my previous change. + +2021-11-13 Jan Hubicka + + * ipa-modref-tree.c (modref_access_node::range_info_useful_p): + Offline from ipa-modref-tree.h. + (modref_access_node::dump): Move from ipa-modref.c; make member + function. + * ipa-modref-tree.h (modref_access_node::range_info_useful_p. + modref_access_node::dump): Declare. + * ipa-modref.c (dump_access): Remove. + (dump_records): Update. + (dump_lto_records): Update. + (record_access): Update. + (record_access_lto): Update. + +2021-11-13 Jan Hubicka + + * ipa-modref.c (modref_summary::modref_summary): Clear new flags. + (modref_summary::dump): Dump try_dse. + (modref_summary::finalize): Add FUN attribute; compute try-dse. + (analyze_function): Update. + (read_section): Update. + (update_signature): Update. + (pass_ipa_modref::execute): Update. + * ipa-modref.h (struct modref_summary): + * tree-ssa-alias.c (ao_ref_init_from_ptr_and_range): Export. + * tree-ssa-alias.h (ao_ref_init_from_ptr_and_range): Declare. + * tree-ssa-dse.c (dse_optimize_call): New function. + (dse_optimize_stmt): Use it. + +2021-11-13 Jan Hubicka + + * ipa-modref-tree.c: Move #if CHECKING_P to proper place. + +2021-11-13 Jan Hubicka + + * ipa-modref-tree.h + (struct modref_access_node): Move longer member functions to + ipa-modref-tree.c + (modref_ref_node::try_merge_with): Turn into modreef_acces_node member + function. + * ipa-modref-tree.c (modref_access_node::contains): Move here + from ipa-modref-tree.h. + (modref_access_node::update): Likewise. + (modref_access_node::merge): Likewise. + (modref_access_node::closer_pair_p): Likewise. + (modref_access_node::forced_merge): Likewise. + (modref_access_node::update2): Likewise. + (modref_access_node::combined_offsets): Likewise. + (modref_access_node::try_merge_with): Likewise. + (modref_access_node::insert): Likewise. + +2021-11-13 Jan Hubicka + + * ipa-modref.c (modref_summary::global_memory_read_p): Remove. + (modref_summary::global_memory_written_p): Remove. + (modref_summary::dump): Dump new flags. + (modref_summary::finalize): New member function. + (analyze_function): Call it. + (read_section): Call it. + (update_signature): Call it. + (pass_ipa_modref::execute): Call it. + * ipa-modref.h (struct modref_summary): Remove + global_memory_read_p and global_memory_written_p. + Add global_memory_read, global_memory_written. + * tree-ssa-structalias.c (determine_global_memory_access): + Update. + +2021-11-13 Jan Hubicka + + * ipa-fnsummary.c (compute_fn_summary): Use type_attribut_allowed_p + * ipa-param-manipulation.c + (ipa_param_adjustments::type_attribute_allowed_p): + New member function. + (drop_type_attribute_if_params_changed_p): New function. + (build_adjusted_function_type): Use it. + * ipa-param-manipulation.h: Add type_attribute_allowed_p. + +2021-11-13 David Malcolm + + * doc/invoke.texi (Static Analyzer Options): Add + -Wno-analyzer-tainted-allocation-size, + -Wno-analyzer-tainted-divisor, -Wno-analyzer-tainted-offset, and + -Wno-analyzer-tainted-size to list. Add + -Wanalyzer-tainted-allocation-size, -Wanalyzer-tainted-divisor, + -Wanalyzer-tainted-offset, and -Wanalyzer-tainted-size to list + of options effectively enabled by -fanalyzer. + (-Wanalyzer-tainted-allocation-size): New. + (-Wanalyzer-tainted-array-index): Tweak wording; add link to CWE. + (-Wanalyzer-tainted-divisor): New. + (-Wanalyzer-tainted-offset): New. + (-Wanalyzer-tainted-size): New. + +2021-11-13 Jan Hubicka + + * attr-fnspec.h (attr_fnspec::arg_eaf_flags): Break out from ... + * gimple.c (gimple_call_arg_flags): ... here. + * ipa-modref.c (analyze_parms): Record flags known from fnspec. + (modref_merge_call_site_flags): Use arg_eaf_flags. + +2021-11-13 Aldy Hernandez + + PR tree-optimization/103222 + * gimple-range-path.cc (path_range_query::compute_ranges_in_phis): + New. + (path_range_query::compute_ranges_in_block): Call + compute_ranges_in_phis. + * gimple-range-path.h (path_range_query::compute_ranges_in_phis): + New. + +2021-11-13 Jan Hubicka + + * ipa-fnsummary.c (compute_fn_summary): Do not give up on signature + changes on "fn spec" attribute; give up on varadic types. + * ipa-param-manipulation.c: Include attribs.h. + (build_adjusted_function_type): New parameter ARG_MODIFIED; if it is + true remove "fn spec" attribute. + (ipa_param_adjustments::build_new_function_type): Update. + (ipa_param_body_adjustments::modify_formal_parameters): update. + * ipa-sra.c: Include attribs.h. + (ipa_sra_preliminary_function_checks): Do not check for TYPE_ATTRIBUTES. + +2021-11-13 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::path_range_query): Merge + ctors. + (path_range_query::import_p): Move from header file. + (path_range_query::~path_range_query): Adjust for combined ctors. + * gimple-range-path.h: Merge ctors. + (path_range_query::import_p): Move to .cc file. + +2021-11-13 Jan Hubicka + + PR tree-optimization/103182 + * ipa-modref.c (callee_to_caller_flags): Fix merging of flags. + (modref_eaf_analysis::analyze_ssa_name): Fix merging of flags. + +2021-11-12 Stafford Horne + + * config/or1k/or1k-protos.h (or1k_profile_hook): New function. + * config/or1k/or1k.h (PROFILE_HOOK): Change macro to reference + new function or1k_profile_hook. + * config/or1k/or1k.c (struct machine_function): Add new field + set_mcount_arg_insn. + (or1k_profile_hook): New function. + (or1k_init_pic_reg): Update to inject pic rtx after _mcount arg + when profiling. + (or1k_frame_pointer_required): Frame pointer no longer needed + when profiling. + +2021-11-12 Jan Hubicka + + PR tree-optimization/103209 + * tree-ssa-structalias.c (find_func_aliases_for_call): Fix + use of handle_rhs_call + +2021-11-12 Aldy Hernandez + + PR tree-optimization/103202 + * gimple-range-path.cc + (path_range_query::compute_ranges_in_block): Solve PHI imports first. + +2021-11-12 Jan Hubicka + + * ipa-pure-const.c (propagate_pure_const): Remove redundant check; + fix call of ipa_make_function_const and ipa_make_function_pure. + +2021-11-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_vector_op::n_advsimd_ops): Delete. + (aarch64_vector_op::m_seen_loads): Likewise. + (aarch64_vector_costs::aarch64_vector_costs): Don't push to + m_advsimd_ops. + (aarch64_vector_op::count_ops): Remove vectype and factor parameters. + Remove code that tries to predict different vec_flags from the + current loop's. + (aarch64_vector_costs::add_stmt_cost): Update accordingly. + Remove m_advsimd_ops handling. + +2021-11-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_vector_costs::m_saw_sve_only_op) + (aarch64_sve_only_stmt_p): Delete. + (aarch64_vector_costs::prefer_unrolled_loop): New function, + extracted from adjust_body_cost. + (aarch64_vector_costs::better_main_loop_than_p): New function, + using heuristics extracted from adjust_body_cost and + adjust_body_cost_sve. + (aarch64_vector_costs::adjust_body_cost_sve): Remove + advsimd_cycles_per_iter and could_use_advsimd parameters. + Update after changes above. + (aarch64_vector_costs::adjust_body_cost): Update after changes above. + +2021-11-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_vec_op_count::m_vf_factor): + New member variable. + (aarch64_vec_op_count::aarch64_vec_op_count): Add a parameter for it. + (aarch64_vec_op_count::vf_factor): New function. + (aarch64_vector_costs::aarch64_vector_costs): When costing for + neoverse-512tvb, pass a vf_factor of 2 for the Neoverse V1 version + of an SVE loop. + (aarch64_vector_costs::adjust_body_cost): Read the vf factor + instead of hard-coding 2. + +2021-11-12 Richard Sandiford + + * config/aarch64/aarch64.c + (aarch64_vec_op_count::rename_cycles_per_iter): New function. + (aarch64_vec_op_count::min_nonpred_cycles_per_iter): Likewise. + (aarch64_vec_op_count::min_pred_cycles_per_iter): Likewise. + (aarch64_vec_op_count::min_cycles_per_iter): Likewise. + (aarch64_vec_op_count::dump): Move earlier in file. Dump the + above properties too. + (aarch64_estimate_min_cycles_per_iter): Delete. + (adjust_body_cost): Use aarch64_vec_op_count::min_cycles_per_iter + instead of aarch64_estimate_min_cycles_per_iter. Rely on the dump + routine to print CPI estimates. + (adjust_body_cost_sve): Likewise. Use the other functions above + instead of doing the work inline. + +2021-11-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_vec_op_count): Allow default + initialization. + (aarch64_vec_op_count::base_issue_info): Remove handling of null + issue_infos. + (aarch64_vec_op_count::simd_issue_info): Likewise. + (aarch64_vec_op_count::sve_issue_info): Likewise. + (aarch64_vector_costs::m_ops): Turn into a vector. + (aarch64_vector_costs::m_advsimd_ops): Likewise. + (aarch64_vector_costs::aarch64_vector_costs): Add entries to + the vectors based on aarch64_tune_params. + (aarch64_vector_costs::analyze_loop_vinfo): Update the pred_ops + of all entries in m_ops. + (aarch64_vector_costs::add_stmt_cost): Call count_ops for all + entries in m_ops. + (aarch64_estimate_min_cycles_per_iter): Remove issue_info + parameter and get the information from the ops instead. + (aarch64_vector_costs::adjust_body_cost_sve): Take a + aarch64_vec_issue_info instead of a aarch64_vec_op_count. + (aarch64_vector_costs::adjust_body_cost): Update call accordingly. + Exit earlier if m_ops is empty for either cost structure. + +2021-11-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_vector_costs::m_scalar_ops) + (aarch64_vector_costs::m_sve_ops): Replace with... + (aarch64_vector_costs::m_ops): ...this. + (aarch64_vector_costs::analyze_loop_vinfo): Update accordingly. + (aarch64_vector_costs::adjust_body_cost_sve): Likewise. + (aarch64_vector_costs::aarch64_vector_costs): Likewise. + Initialize m_vec_flags here rather than in add_stmt_cost. + (aarch64_vector_costs::count_ops): Test for scalar reductions too. + Allow vectype to be null. + (aarch64_vector_costs::add_stmt_cost): Call count_ops for scalar + code too. Don't require vectype to be nonnull. + (aarch64_vector_costs::adjust_body_cost): Take the loop_vec_info + and scalar costs as parameters. Use the scalar costs to determine + the cycles per iteration of the scalar loop, then multiply it + by the estimated VF. + (aarch64_vector_costs::finish_cost): Update call accordingly. + +2021-11-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_dr_type): New function. + (aarch64_vector_costs::count_ops): Use it rather than the + vectype to determine floatness. + +2021-11-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_sve_in_loop_reduction_latency): + Remove vectype parameter and get floatness from the type of the + stmt lhs instead. + (arch64_in_loop_reduction_latency): Likewise. + (aarch64_detect_vector_stmt_subtype): Update caller. + (aarch64_vector_costs::count_ops): Likewise. + +2021-11-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_sve_op_count): Fold into... + (aarch64_vec_op_count): ...this. Add a constructor. + (aarch64_vec_op_count::vec_flags): New function. + (aarch64_vec_op_count::base_issue_info): Likewise. + (aarch64_vec_op_count::simd_issue_info): Likewise. + (aarch64_vec_op_count::sve_issue_info): Likewise. + (aarch64_vec_op_count::m_issue_info): New member variable. + (aarch64_vec_op_count::m_vec_flags): Likewise. + (aarch64_vector_costs): Add a constructor. + (aarch64_vector_costs::m_sve_ops): Change type to aarch64_vec_op_count. + (aarch64_vector_costs::aarch64_vector_costs): New function. + Initialize m_scalar_ops, m_advsimd_ops and m_sve_ops. + (aarch64_vector_costs::count_ops): Remove vec_flags and + issue_info parameters, using the new aarch64_vec_op_count + functions instead. + (aarch64_vector_costs::add_stmt_cost): Update call accordingly. + (aarch64_sve_op_count::dump): Fold into... + (aarch64_vec_op_count::dump): ..here. + +2021-11-12 Richard Sandiford + + * config/aarch64/aarch64.c: Include tree-dfa.h. + (aarch64_check_consecutive_mems): New function that takes MEM_EXPR + and MEM_OFFSET into account. + (aarch64_swap_ldrstr_operands): Use it. + (aarch64_operands_ok_for_ldpstp): Likewise. Check that the + address of the second memory doesn't depend on the result of + the first load. + +2021-11-12 Jan Hubicka + + * ipa-pure-const.c (ipa_make_function_pure): Fix exit condition. + +2021-11-12 Jan Hubicka + + PR tree-optimization/103175 + * ipa-modref.c (modref_lattice::merge): Add sanity check. + (callee_to_caller_flags): Make flags adjustment sane. + (modref_eaf_analysis::analyze_ssa_name): Likewise. + +2021-11-12 Jan Hubicka + + PR ipa/103200 + * ipa-modref.c (analyze_function, modref_propagate_in_scc): Do + not mark pure/const function if there are side-effects. + +2021-11-12 Chung-Lin Tang + + * tree.h (OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P): New access macro for + 'implicit' bit, using 'base.deprecated_flag' field of tree_node. + * tree-pretty-print.c (dump_omp_clause): Add support for printing + implicit attribute in tree dumping. + * gimplify.c (gimplify_adjust_omp_clauses_1): + Set OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P to 1 if map clause is implicitly + created. + (gimplify_adjust_omp_clauses): Adjust place of adding implicitly created + clauses, from simple append, to starting of list, after non-map clauses. + * omp-low.c (lower_omp_target): Add GOMP_MAP_IMPLICIT bits into kind + values passed to libgomp for implicit maps. + +2021-11-12 Jakub Jelinek + + * omp-builtins.def (BUILT_IN_GOMP_TEAMS): Remove. + (BUILT_IN_GOMP_TEAMS4): New. + * builtin-types.def (BT_FN_VOID_UINT_UINT): Remove. + (BT_FN_BOOL_UINT_UINT_UINT_BOOL): New. + * omp-low.c (lower_omp_teams): Use GOMP_teams4 instead of + GOMP_teams, pass to it also num_teams lower-bound expression + or a dup of upper-bound if it is missing and a flag whether + it is the first call or not. + +2021-11-12 Martin Liska + + PR tree-optimization/102497 + * gimple-predicate-analysis.cc (add_pred): Remove unused + function: + +2021-11-12 Richard Biener + + PR tree-optimization/103204 + * tree-ssa-sccvn.c (valueize_refs_1): Re-valueize the + top operand after folding in an address. + +2021-11-11 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::path_range_query): New + ctor without a ranger. + (path_range_query::~path_range_query): Free ranger if necessary. + (path_range_query::range_on_path_entry): Adjust m_ranger for pointer. + (path_range_query::ssa_range_in_phi): Same. + (path_range_query::compute_ranges_in_block): Same. + (path_range_query::compute_imports): Same. + (path_range_query::compute_ranges): Same. + (path_range_query::range_of_stmt): Same. + (path_range_query::compute_outgoing_relations): Same. + * gimple-range-path.h (class path_range_query): New ctor. + * tree-ssa-loop-ch.c (ch_base::copy_headers): Remove gimple_ranger + as path_range_query allocates one. + * tree-ssa-threadbackward.c (class back_threader): Remove m_ranger. + (back_threader::~back_threader): Same. + +2021-11-11 Aldy Hernandez + + * tree-ssa-threadbackward.c + (back_threader_profitability::profitable_path_p): Remove loop + crossing restriction. + +2021-11-11 Jan Hubicka + + * ipa-modref.c (analyze_function): Do pure/const discovery, return + true on success. + (pass_modref::execute): If pure/const is discovered fixup cfg. + (ignore_edge): Do not ignore pure/const edges. + (modref_propagate_in_scc): Do pure/const discovery, return true if + cdtor was promoted pure/const. + (pass_ipa_modref::execute): If needed remove unreachable functions. + * ipa-pure-const.c (warn_function_noreturn): Fix whitespace. + (warn_function_cold): Likewise. + (skip_function_for_local_pure_const): Move earlier. + (ipa_make_function_const): Break out from ... + (ipa_make_function_pure): Break out from ... + (propagate_pure_const): ... here. + (pass_local_pure_const::execute): Use it. + * ipa-utils.h (ipa_make_function_const): Declare. + (ipa_make_function_pure): Declare. + * passes.def: Move early modref after pure-const. + +2021-11-11 David Malcolm + + PR other/103129 + * diagnostic-show-locus.c (def_policy): Use def_tabstop. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-builtins.c (TYPES_COMBINE): Delete. + (TYPES_COMBINEP): Delete. + * config/aarch64/aarch64-simd-builtins.def: Declare type- + qualified builtins for vcombine_* intrinsics. + * config/aarch64/arm_neon.h (vcombine_s8): Remove unnecessary + cast. + (vcombine_s16): Likewise. + (vcombine_s32): Likewise. + (vcombine_f32): Likewise. + (vcombine_u8): Use type-qualified builtin and remove casts. + (vcombine_u16): Likewise. + (vcombine_u32): Likewise. + (vcombine_u64): Likewise. + (vcombine_p8): Likewise. + (vcombine_p16): Likewise. + (vcombine_p64): Likewise. + (vcombine_bf16): Remove unnecessary cast. + * config/aarch64/iterators.md (VD_I): New mode iterator. + (VDC_P): New mode iterator. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-builtins.c (TYPES_LOAD1_U): Define. + (TYPES_LOAD1_P): Define. + (TYPES_STORE1_U): Define. + (TYPES_STORE1P): Rename to... + (TYPES_STORE1_P): This. + (get_mem_type_for_load_store): Add unsigned and poly types. + (aarch64_general_gimple_fold_builtin): Add unsigned and poly + type-qualified builtin declarations. + * config/aarch64/aarch64-simd-builtins.def: Declare type- + qualified builtins for LD1/ST1. + * config/aarch64/arm_neon.h (vld1_p8): Use type-qualified + builtin and remove cast. + (vld1_p16): Likewise. + (vld1_u8): Likewise. + (vld1_u16): Likewise. + (vld1_u32): Likewise. + (vld1q_p8): Likewise. + (vld1q_p16): Likewise. + (vld1q_p64): Likewise. + (vld1q_u8): Likewise. + (vld1q_u16): Likewise. + (vld1q_u32): Likewise. + (vld1q_u64): Likewise. + (vst1_p8): Likewise. + (vst1_p16): Likewise. + (vst1_u8): Likewise. + (vst1_u16): Likewise. + (vst1_u32): Likewise. + (vst1q_p8): Likewise. + (vst1q_p16): Likewise. + (vst1q_p64): Likewise. + (vst1q_u8): Likewise. + (vst1q_u16): Likewise. + (vst1q_u32): Likewise. + (vst1q_u64): Likewise. + * config/aarch64/iterators.md (VALLP_NO_DI): New iterator. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Declare unsigned + builtins for vector reduction. + * config/aarch64/arm_neon.h (vaddv_u8): Use type-qualified + builtin and remove casts. + (vaddv_u16): Likewise. + (vaddv_u32): Likewise. + (vaddvq_u8): Likewise. + (vaddvq_u16): Likewise. + (vaddvq_u32): Likewise. + (vaddvq_u64): Likewise. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: + * config/aarch64/arm_neon.h (vpaddq_u8): Use type-qualified + builtin and remove casts. + (vpaddq_u16): Likewise. + (vpaddq_u32): Likewise. + (vpaddq_u64): Likewise. + (vpadd_u8): Likewise. + (vpadd_u16): Likewise. + (vpadd_u32): Likewise. + (vpaddd_u64): Likewise. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Declare unsigned + builtins for [r]subhn[2]. + * config/aarch64/arm_neon.h (vsubhn_s16): Remove unnecessary + cast. + (vsubhn_s32): Likewise. + (vsubhn_s64): Likewise. + (vsubhn_u16): Use type-qualified builtin and remove casts. + (vsubhn_u32): Likewise. + (vsubhn_u64): Likewise. + (vrsubhn_s16): Remove unnecessary cast. + (vrsubhn_s32): Likewise. + (vrsubhn_s64): Likewise. + (vrsubhn_u16): Use type-qualified builtin and remove casts. + (vrsubhn_u32): Likewise. + (vrsubhn_u64): Likewise. + (vrsubhn_high_s16): Remove unnecessary cast. + (vrsubhn_high_s32): Likewise. + (vrsubhn_high_s64): Likewise. + (vrsubhn_high_u16): Use type-qualified builtin and remove + casts. + (vrsubhn_high_u32): Likewise. + (vrsubhn_high_u64): Likewise. + (vsubhn_high_s16): Remove unnecessary cast. + (vsubhn_high_s32): Likewise. + (vsubhn_high_s64): Likewise. + (vsubhn_high_u16): Use type-qualified builtin and remove + casts. + (vsubhn_high_u32): Likewise. + (vsubhn_high_u64): Likewise. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Declare unsigned + builtins for [r]addhn[2]. + * config/aarch64/arm_neon.h (vaddhn_s16): Remove unnecessary + cast. + (vaddhn_s32): Likewise. + (vaddhn_s64): Likewise. + (vaddhn_u16): Use type-qualified builtin and remove casts. + (vaddhn_u32): Likewise. + (vaddhn_u64): Likewise. + (vraddhn_s16): Remove unnecessary cast. + (vraddhn_s32): Likewise. + (vraddhn_s64): Likewise. + (vraddhn_u16): Use type-qualified builtin and remove casts. + (vraddhn_u32): Likewise. + (vraddhn_u64): Likewise. + (vaddhn_high_s16): Remove unnecessary cast. + (vaddhn_high_s32): Likewise. + (vaddhn_high_s64): Likewise. + (vaddhn_high_u16): Use type-qualified builtin and remove + casts. + (vaddhn_high_u32): Likewise. + (vaddhn_high_u64): Likewise. + (vraddhn_high_s16): Remove unnecessary cast. + (vraddhn_high_s32): Likewise. + (vraddhn_high_s64): Likewise. + (vraddhn_high_u16): Use type-qualified builtin and remove + casts. + (vraddhn_high_u32): Likewise. + (vraddhn_high_u64): Likewise. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type + qualifiers in generator macros for uhsub builtins. + * config/aarch64/arm_neon.h (vhsub_s8): Remove unnecessary + cast. + (vhsub_s16): Likewise. + (vhsub_s32): Likewise. + (vhsub_u8): Use type-qualified builtin and remove casts. + (vhsub_u16): Likewise. + (vhsub_u32): Likewise. + (vhsubq_s8): Remove unnecessary cast. + (vhsubq_s16): Likewise. + (vhsubq_s32): Likewise. + (vhsubq_u8): Use type-qualified builtin and remove casts. + (vhsubq_u16): Likewise. + (vhsubq_u32): Likewise. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type + qualifiers in generator macros for u[r]hadd builtins. + * config/aarch64/arm_neon.h (vhadd_s8): Remove unnecessary + cast. + (vhadd_s16): Likewise. + (vhadd_s32): Likewise. + (vhadd_u8): Use type-qualified builtin and remove casts. + (vhadd_u16): Likewise. + (vhadd_u32): Likewise. + (vhaddq_s8): Remove unnecessary cast. + (vhaddq_s16): Likewise. + (vhaddq_s32): Likewise. + (vhaddq_u8): Use type-qualified builtin and remove casts. + (vhaddq_u16): Likewise. + (vhaddq_u32): Likewise. + (vrhadd_s8): Remove unnecessary cast. + (vrhadd_s16): Likewise. + (vrhadd_s32): Likewise. + (vrhadd_u8): Use type-qualified builtin and remove casts. + (vrhadd_u16): Likewise. + (vrhadd_u32): Likewise. + (vrhaddq_s8): Remove unnecessary cast. + (vrhaddq_s16): Likewise. + (vrhaddq_s32): Likewise. + (vrhaddq_u8): Use type-wualified builtin and remove casts. + (vrhaddq_u16): Likewise. + (vrhaddq_u32): Likewise. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type + qualifiers in generator macros for usub[lw][2] builtins. + * config/aarch64/arm_neon.h (vsubl_s8): Remove unnecessary + cast. + (vsubl_s16): Likewise. + (vsubl_s32): Likewise. + (vsubl_u8): Use type-qualified builtin and remove casts. + (vsubl_u16): Likewise. + (vsubl_u32): Likewise. + (vsubl_high_s8): Remove unnecessary cast. + (vsubl_high_s16): Likewise. + (vsubl_high_s32): Likewise. + (vsubl_high_u8): Use type-qualified builtin and remove casts. + (vsubl_high_u16): Likewise. + (vsubl_high_u32): Likewise. + (vsubw_s8): Remove unnecessary casts. + (vsubw_s16): Likewise. + (vsubw_s32): Likewise. + (vsubw_u8): Use type-qualified builtin and remove casts. + (vsubw_u16): Likewise. + (vsubw_u32): Likewise. + (vsubw_high_s8): Remove unnecessary cast. + (vsubw_high_s16): Likewise. + (vsubw_high_s32): Likewise. + (vsubw_high_u8): Use type-qualified builtin and remove casts. + (vsubw_high_u16): Likewise. + (vsubw_high_u32): Likewise. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type + qualifiers in generator macros for uadd[lw][2] builtins. + * config/aarch64/arm_neon.h (vaddl_s8): Remove unnecessary + cast. + (vaddl_s16): Likewise. + (vaddl_s32): Likewise. + (vaddl_u8): Use type-qualified builtin and remove casts. + (vaddl_u16): Likewise. + (vaddl_u32): Likewise. + (vaddl_high_s8): Remove unnecessary cast. + (vaddl_high_s16): Likewise. + (vaddl_high_s32): Likewise. + (vaddl_high_u8): Use type-qualified builtin and remove casts. + (vaddl_high_u16): Likewise. + (vaddl_high_u32): Likewise. + (vaddw_s8): Remove unnecessary cast. + (vaddw_s16): Likewise. + (vaddw_s32): Likewise. + (vaddw_u8): Use type-qualified builtin and remove casts. + (vaddw_u16): Likewise. + (vaddw_u32): Likewise. + (vaddw_high_s8): Remove unnecessary cast. + (vaddw_high_s16): Likewise. + (vaddw_high_s32): Likewise. + (vaddw_high_u8): Use type-qualified builtin and remove casts. + (vaddw_high_u16): Likewise. + (vaddw_high_u32): Likewise. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Declare type- + qualified builtins for [R]SHRN[2]. + * config/aarch64/arm_neon.h (vshrn_n_u16): Use type-qualified + builtin and remove casts. + (vshrn_n_u32): Likewise. + (vshrn_n_u64): Likewise. + (vrshrn_high_n_u16): Likewise. + (vrshrn_high_n_u32): Likewise. + (vrshrn_high_n_u64): Likewise. + (vrshrn_n_u16): Likewise. + (vrshrn_n_u32): Likewise. + (vrshrn_n_u64): Likewise. + (vshrn_high_n_u16): Likewise. + (vshrn_high_n_u32): Likewise. + (vshrn_high_n_u64): Likewise. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Declare unsigned + type-qualified builtins for XTN[2]. + * config/aarch64/arm_neon.h (vmovn_high_u16): Use type- + qualified builtin and remove casts. + (vmovn_high_u32): Likewise. + (vmovn_high_u64): Likewise. + (vmovn_u16): Likewise. + (vmovn_u32): Likewise. + (vmovn_u64): Likewise. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Use poly type + qualifier in builtin generator macros. + * config/aarch64/arm_neon.h (vmul_p8): Use type-qualified + builtin and remove casts. + (vmulq_p8): Likewise. + (vmull_high_p8): Likewise. + (vmull_p8): Likewise. + +2021-11-11 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Declare type- + qualified builtin generators for unsigned MLA/MLS intrinsics. + * config/aarch64/arm_neon.h (vmla_n_u16): Use type-qualified + builtin. + (vmla_n_u32): Likewise. + (vmla_u8): Likewise. + (vmla_u16): Likewise. + (vmla_u32): Likewise. + (vmlaq_n_u16): Likewise. + (vmlaq_n_u32): Likewise. + (vmlaq_u8): Likewise. + (vmlaq_u16): Likewise. + (vmlaq_u32): Likewise. + (vmls_n_u16): Likewise. + (vmls_n_u32): Likewise. + (vmls_u8): Likewise. + (vmls_u16): Likewise. + (vmls_u32): Likewise. + (vmlsq_n_u16): Likewise. + (vmlsq_n_u32): Likewise. + (vmlsq_u8): Likewise. + (vmlsq_u16): Likewise. + (vmlsq_u32): Likewise. + +2021-11-11 Jan Hubicka + + * ipa-modref.c (modref_summary::useful_p): Check also for side-effects + with looping const/pure. + (modref_summary_lto::useful_p): Likewise. + (merge_call_side_effects): Merge side effects before early exit + for pure/const. + (process_fnspec): Also handle pure functions. + (analyze_call): Do not early exit on looping pure const. + (propagate_unknown_call): Also handle nontrivial SCC as side-effect. + (modref_propagate_in_scc): Update. + +2021-11-11 Richard Biener + + PR tree-optimization/103190 + * tree-ssa-reassoc.c (insert_stmt_after): Only assert on asm goto. + +2021-11-11 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::add_copies_to_imports): + Rename to... + (path_range_query::compute_imports): ...this. Adapt it so it can + be passed the imports bitmap instead of working on m_imports. + (path_range_query::compute_ranges): Call compute_imports in all + cases unless an imports bitmap is passed. + * gimple-range-path.h (path_range_query::compute_imports): New. + (path_range_query::add_copies_to_imports): Remove. + * tree-ssa-threadbackward.c (back_threader::resolve_def): Remove. + (back_threader::find_paths_to_names): Inline resolve_def. + (back_threader::find_paths): Call compute_imports. + (back_threader::resolve_phi): Adjust comment. + +2021-11-11 Richard Biener + + PR tree-optimization/103188 + * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): + Remove query parameter, split out check for size + optimization. + (ch_base::m_ranger, cb_base::m_query): Remove. + (ch_base::copy_headers): Split processing loop into + analysis around which we allocate and use ranger and + transform where we do not. + (pass_ch::execute): Do not allocate/free ranger here. + (pass_ch_vect::execute): Likewise. + +2021-11-11 Jan Hubicka + + * ipa-pure-const.c (propagate_pure_const): Self recursion is + a side effects. + +2021-11-11 Jan Hubicka + + * cgraph.c (set_noreturn_flag_1): New function. + (cgraph_node::set_noreturn_flag): New member function + * cgraph.h (cgraph_node::set_noreturn_flags): Declare. + * ipa-pure-const.c (pass_local_pure_const::execute): Use it. + +2021-11-11 Aldy Hernandez + Richard Biener + + * tree-ssa-loop-ch.c (entry_loop_condition_is_static): Resolve + statically to the edge remaining in the loop. + +2021-11-11 Richard Biener + + PR middle-end/103181 + * tree-eh.c (operation_could_trap_helper_p): Properly + check vector constants for a zero element for integer + division. Separate floating point and integer division code. + +2021-11-11 Jakub Jelinek + + PR debug/101378 + * dwarf2out.c (field_byte_offset): Do the PCC_BITFIELD_TYPE_MATTERS + handling only for DECL_BIT_FIELD_TYPE decls. + +2021-11-11 Prathamesh Kulkarni + + PR target/102376 + * config/aarch64/aarch64.c (aarch64_process_target_attr): Check if + token is arch extension without leading '+' and emit appropriate + diagnostic for the same. + +2021-11-11 Jakub Jelinek + + * tree.h (OMP_CLAUSE_NUM_TEAMS_EXPR): Rename to ... + (OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR): ... this. + (OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR): Define. + * tree.c (omp_clause_num_ops): Increase num ops for + OMP_CLAUSE_NUM_TEAMS to 2. + * tree-pretty-print.c (dump_omp_clause): Print optional lower bound + for OMP_CLAUSE_NUM_TEAMS. + * gimplify.c (gimplify_scan_omp_clauses): Gimplify + OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR if non-NULL. + (optimize_target_teams): Use OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR instead + of OMP_CLAUSE_NUM_TEAMS_EXPR. Handle OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR. + * omp-low.c (lower_omp_teams): Use OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR + instead of OMP_CLAUSE_NUM_TEAMS_EXPR. + * omp-expand.c (expand_teams_call, get_target_arguments): Likewise. + +2021-11-11 Richard Biener + + * cfganal.c (find_pdom): Remove. + (control_dependences::find_control_dependence): Remove + special-casing of entry block, call get_immediate_dominator + directly. + * gimple-predicate-analysis.cc (find_pdom): Remove. + (find_dom): Likewise. + (find_control_equiv_block): Call get_immediate_dominator + directly. + (compute_control_dep_chain): Likewise. + (predicate::init_from_phi_def): Likewise. + +2021-11-11 Richard Biener + + * cfganal.h (control_dependences::control_dependence_map): + Embed bitmap_head. + (control_dependences::m_bitmaps): New. + * cfganal.c (control_dependences::set_control_dependence_map_bit): + Adjust. + (control_dependences::clear_control_dependence_bitmap): + Likewise. + (control_dependences::find_control_dependence): Do not + find_edge for the abnormal edge test. + (control_dependences::control_dependences): Instead do not + add abnormal edges to the edge list. Adjust. + (control_dependences::~control_dependences): Likewise. + (control_dependences::get_edges_dependent_on): Likewise. + * function-tests.c: Include bitmap.h. + +2021-11-11 Kewen Lin + + * doc/invoke.texi: Change references to "future cpu" to "power10", + "-mcpu=future" to "-mcpu=power10". Adjust words for float128. + +2021-11-11 Cui,Lili + + * config/i386/i386-options.c (m_CORE_AVX2): Remove Alderlake + from m_CORE_AVX2. + (processor_cost_table): Use alderlake_cost for Alderlake. + * config/i386/i386.c (ix86_sched_init_global): Handle Alderlake. + * config/i386/x86-tune-costs.h (struct processor_costs): Add alderlake + cost. + * config/i386/x86-tune-sched.c (ix86_issue_rate): Change Alderlake + issue rate to 4. + (ix86_adjust_cost): Handle Alderlake. + * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Enable for Alderlake. + (X86_TUNE_PARTIAL_REG_DEPENDENCY): Likewise. + (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Likewise. + (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Likewise. + (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. + (X86_TUNE_MEMORY_MISMATCH_STALL): Likewise. + (X86_TUNE_USE_LEAVE): Likewise. + (X86_TUNE_PUSH_MEMORY): Likewise. + (X86_TUNE_USE_INCDEC): Likewise. + (X86_TUNE_INTEGER_DFMODE_MOVES): Likewise. + (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Likewise. + (X86_TUNE_USE_SAHF): Likewise. + (X86_TUNE_USE_BT): Likewise. + (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Likewise. + (X86_TUNE_ONE_IF_CONV_INSN): Likewise. + (X86_TUNE_AVOID_MFENCE): Likewise. + (X86_TUNE_USE_SIMODE_FIOP): Likewise. + (X86_TUNE_EXT_80387_CONSTANTS): Likewise. + (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Likewise. + (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise. + (X86_TUNE_SSE_TYPELESS_STORES): Likewise. + (X86_TUNE_SSE_LOAD0_BY_PXOR): Likewise. + (X86_TUNE_AVOID_4BYTE_PREFIXES): Likewise. + (X86_TUNE_USE_GATHER): Disable for Alderlake. + (X86_TUNE_AVX256_MOVE_BY_PIECES): Likewise. + (X86_TUNE_AVX256_STORE_BY_PIECES): Likewise. + +2021-11-11 liuhongt + + PR target/103151 + * config/i386/sse.md (V_128_256): Extend to V8HF/V16HF. + (avxsizesuffix): Ditto. + +2021-11-11 Kito Cheng + + * common/config/riscv/riscv-common.c (riscv_subset_list::to_string): Fix + wrong marco checking. + +2021-11-10 Aldy Hernandez + + PR tree-optimization/102906 + * tree-ssa-loop-ch.c (entry_loop_condition_is_static): New. + (should_duplicate_loop_header_p): Call entry_loop_condition_is_static. + (class ch_base): Add m_ranger and m_query. + (ch_base::copy_headers): Pass m_query to + entry_loop_condition_is_static. + (pass_ch::execute): Allocate and deallocate m_ranger and + m_query. + (pass_ch_vect::execute): Same. + +2021-11-10 Andrew Pinski + + PR target/103170 + * config/aarch64/aarch64-simd.md (aarch64_simd_dup): + Use vwcore iterator for the r constraint output string. + +2021-11-10 qing zhao + + * internal-fn.c (expand_DEFERRED_INIT): Apply pattern initialization + only when have_insn_for return true for the mode. Fix a memory leak. + +2021-11-10 Christophe Lyon + + * config/arm/arm.c (cortexa9_extra_costs, cortexa8_extra_costs, + cortexa5_extra_costs, cortexa7_extra_costs, + cortexa12_extra_costs, cortexa15_extra_costs, v7m_extra_costs): + Initialize movi, dup and extract costing fields. + +2021-11-10 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::path_range_query): Do + not init m_path. + (path_range_query::dump): Change m_path uses to non-pointer. + (path_range_query::defined_outside_path): Same. + (path_range_query::set_path): Same. + (path_range_query::add_copies_to_imports): Same. + (path_range_query::range_of_stmt): Same. + (path_range_query::compute_outgoing_relations): Same. + (path_range_query::compute_ranges): Imports are now optional. + Implement overload that takes an edge. + * gimple-range-path.h (class path_range_query): Make imports + optional for compute_ranges. Add compute_ranges(edge) overload. + Make m_path an auto_vec instead of a pointer and adjust + accordingly. + +2021-11-10 Tamar Christina + + * tree-vectorizer.h (struct scalar_cond_masked_key): Add inverted_p. + (default_hash_traits): Likewise. + * tree-vect-stmts.c (vectorizable_condition): Check if inverse of mask + is live. + * tree-vectorizer.c (scalar_cond_masked_key::get_cond_ops_from_tree): + Register mask inverses. + +2021-11-10 Tamar Christina + + * tree-vectorizer.c (vectorize_loops): Do local CSE through RPVN upon + successful vectorization. + +2021-11-10 Andrew MacLeod + + * gimple-range-cache.cc (sbr_vector::grow): New. + (sbr_vector::set_bb_range): Call grow. + (sbr_vector::get_bb_range): Same. + (sbr_vector::bb_range_p): Remove assert. + +2021-11-10 Tamar Christina + + * config/aarch64/aarch64-simd.md (*aarch64_topbits_shuffle_le + ,*aarch64_topbits_shuffle_be): Remove. + +2021-11-10 Jan Hubicka + + * ipa-modref.c: Include tree-eh.h + (modref_summary::modref_summary): Initialize side_effects. + (struct modref_summary_lto): New bool field side_effects. + (modref_summary_lto::modref_summary_lto): Initialize side_effects. + (modref_summary::dump): Dump side_effects. + (modref_summary_lto::dump): Dump side_effects. + (merge_call_side_effects): Merge side effects. + (process_fnspec): Calls to non-const/pure or looping + function is a side effect. + (analyze_call): Self-recursion is a side-effect; handle + special builtins. + (analyze_load): Watch for volatile and throwing memory. + (analyze_store): Likewise. + (analyze_stmt): Watch for volatitle asm. + (analyze_function): Handle side_effects. + (modref_summaries::duplicate): Duplicate side_effects. + (modref_summaries_lto::duplicate): Likewise. + (modref_write): Stream side_effects. + (read_section): Likewise. + (update_signature): Update. + (propagate_unknown_call): Handle side_effects. + (modref_propagate_in_scc): Likewise. + * ipa-modref.h (struct modref_summary): Add side_effects. + * ipa-pure-const.c (special_builtin_state): Rename to ... + (builtin_safe_for_const_function_p): ... this one. + (check_call): Update. + (finite_function_p): Break out from ... + (propagate_pure_const): ... here + * ipa-utils.h (finite_function): Declare. + +2021-11-10 Lucas A. M. Magalhães + + * config.gcc (powerpc*-*-*): Remove -rpath from + --with-advance-toolchain. + +2021-11-10 Marek Polacek + + PR c++/101940 + * attribs.c (struct scoped_attributes): Add a bool member. + (lookup_scoped_attribute_spec): Forward declare. + (register_scoped_attributes): New bool parameter, defaulted to + false. Use it. + (handle_ignored_attributes_option): New function. + (free_attr_data): New function. + (init_attributes): Call handle_ignored_attributes_option. + (attr_namespace_ignored_p): New function. + (decl_attributes): Check attr_namespace_ignored_p before + warning. + * attribs.h (free_attr_data): Declare. + (register_scoped_attributes): Adjust declaration. + (handle_ignored_attributes_option): Declare. + (canonicalize_attr_name): New function template. + (canonicalize_attr_name): Use it. + * common.opt (Wattributes=): New option with a variable. + * doc/extend.texi: Document #pragma GCC diagnostic ignored_attributes. + * doc/invoke.texi: Document -Wno-attributes=. + * opts.c (common_handle_option) : Handle. + * plugin.h (register_scoped_attributes): Adjust declaration. + * toplev.c (compile_file): Call free_attr_data. + +2021-11-10 Przemyslaw Wirkus + + * config/arm/arm-cpus.in (cortex-a710): New CPU. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm-tune.md: Regenerate. + * doc/invoke.texi: Update docs. + +2021-11-10 Andre Vieira + + * config/aarch64/aarch64-builtins.c + (aarch64_general_gimple_fold_builtin): Mark argument as unused. + +2021-11-10 Martin Liska + + * lto-wrapper.c (merge_and_complain): Make the first argument + a reference type. + +2021-11-10 Richard Sandiford + + * config/aarch64/iterators.md (optab): Use fmax_nan instead of + smax_nan and fmin_nan instead of smin_nan. + (maxmin_uns): Rename to... + (fmaxmin): ...this and make the same changes. Remove entries + unrelated to fmax* and fmin*. + * config/aarch64/aarch64.md (3): Rename to... + (3): ...this. + * config/aarch64/aarch64-simd.md (aarch64_p): + Rename to... + (aarch64_p): ...this. + (3): Rename to... + (3): ...this. + (reduc__scal_): Rename to... + (reduc__scal_): ...this and update gen* call. + (aarch64_reduc__internal): Rename to... + (aarch64_reduc__internal): ...this. + (aarch64_reduc__internalv2si): Rename to... + (aarch64_reduc__internalv2si): ...this. + * config/aarch64/aarch64-sve.md (3): Rename to... + (3): ...this. + * config/aarch64/aarch64-simd-builtins.def (smax_nan, smin_nan) + Rename to... + (fmax_nan, fmin_nan): ...this. + * config/aarch64/arm_neon.h (vmax_f32, vmax_f64, vmaxq_f32, vmaxq_f64) + (vmin_f32, vmin_f64, vminq_f32, vminq_f64, vmax_f16, vmaxq_f16) + (vmin_f16, vminq_f16): Update accordingly. + +2021-11-10 Richard Sandiford + + * tree-vectorizer.h (vector_costs::finish_cost): Take the + corresponding scalar costs as a parameter. + (finish_cost): Likewise. + * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost) + (vect_estimate_min_profitable_iters): Update accordingly. + * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Likewise. + * tree-vectorizer.c (vector_costs::finish_cost): Likewise. + * config/aarch64/aarch64.c (aarch64_vector_costs::finish_cost): + Likewise. + * config/rs6000/rs6000.c (rs6000_cost_data::finish_cost): Likewise. + +2021-11-10 Richard Sandiford + + * tree-vectorizer.h (_loop_vec_info::scalar_costs): New member + variable. + (_loop_vec_info::single_scalar_iteration_cost): Delete. + (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Delete. + (vector_costs::total_cost): New function. + * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Update + after above changes. + (_loop_vec_info::~_loop_vec_info): Delete scalar_costs. + (vect_compute_single_scalar_iteration_cost): Store the costs + in loop_vinfo->scalar_costs. + (vect_estimate_min_profitable_iters): Get the scalar cost from + loop_vinfo->scalar_costs. + +2021-11-10 Richard Sandiford + + * tree-vectorizer.h (vector_costs::better_main_loop_than_p) + (vector_costs::better_epilogue_loop_than_p) + (vector_costs::compare_inside_loop_cost) + (vector_costs::compare_outside_loop_cost): Likewise. + * tree-vectorizer.c (vector_costs::better_main_loop_than_p) + (vector_costs::better_epilogue_loop_than_p) + (vector_costs::compare_inside_loop_cost) + (vector_costs::compare_outside_loop_cost): New functions, + containing code moved from... + * tree-vect-loop.c (vect_better_loop_vinfo_p): ...here. + +2021-11-10 Richard Sandiford + + * tree-vectorizer.h (_loop_vec_info): Remove vec_outside_cost + and vec_inside_cost. + (vector_costs::outside_cost): New function. + * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Update + after above. + (vect_estimate_min_profitable_iters): Likewise. + (vect_better_loop_vinfo_p): Get the inside and outside costs + from the loop_vec_infos' vector_costs. + +2021-11-10 Richard Sandiford + + * tree-vectorizer.h (vec_info::target_cost_data): Replace with... + (_loop_vec_info::vector_costs): ...this. + (LOOP_VINFO_TARGET_COST_DATA): Delete. + * tree-vectorizer.c (vec_info::vec_info): Remove target_cost_data + initialization. + (vec_info::~vec_info): Remove corresponding delete. + * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize + vector_costs to null. + (_loop_vec_info::~_loop_vec_info): Delete vector_costs. + (vect_analyze_loop_operations): Update after above changes. + (vect_analyze_loop_2): Likewise. + (vect_estimate_min_profitable_iters): Likewise. + * tree-vect-slp.c (vect_slp_analyze_operations): Likewise. + +2021-11-10 Jan Hubicka + + * tree-core.h (EAF_DIRECT): Remove. + (EAF_NOCLOBBER): Remove. + (EAF_UNUSED): Remove. + (EAF_NOESCAPE): Remove. + (EAF_NO_DIRECT_CLOBBER): New. + (EAF_NO_INDIRECT_CLOBBER): New. + (EAF_NODIRECTESCAPE): Remove. + (EAF_NO_DIRECT_ESCAPE): New. + (EAF_NO_INDIRECT_ESCAPE): New. + (EAF_NOT_RETURNED): Remove. + (EAF_NOT_RETURNED_INDIRECTLY): New. + (EAF_NOREAD): Remove. + (EAF_NO_DIRECT_READ): New. + (EAF_NO_INDIRECT_READ): New. + * gimple.c (gimple_call_arg_flags): Update for new flags. + (gimple_call_retslot_flags): Update for new flags. + * ipa-modref.c (dump_eaf_flags): Likewise. + (remove_useless_eaf_flags): Likewise. + (deref_flags): Likewise. + (modref_lattice::init): Likewise. + (modref_lattice::merge): Likewise. + (modref_lattice::merge_direct_load): Likewise. + (modref_lattice::merge_direct_store): Likewise. + (modref_eaf_analysis::merge_call_lhs_flags): Likewise. + (callee_to_caller_flags): Likewise. + (modref_eaf_analysis::analyze_ssa_name): Likewise. + (modref_eaf_analysis::propagate): Likewise. + (modref_merge_call_site_flags): Likewise. + * ipa-modref.h (interposable_eaf_flags): Likewise. + * tree-ssa-alias.c: (ref_maybe_used_by_call_p_1) Likewise. + * tree-ssa-structalias.c (handle_call_arg): Likewise. + (handle_rhs_call): Likewise. + * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Likewise. + +2021-11-10 Tamar Christina + + * tree-vect-slp-patterns.c (complex_mul_pattern::matches): Remove l1node. + +2021-11-10 Andre Vieira + + * config/aarch64/aarch64-builtins.c + (aarch64_general_gimple_fold_builtin): Change pointer alignment and + alias. + +2021-11-10 Jan Hubicka + + * ipa-modref-tree.h (modref_tree::remap_params): Fix off-by-one error. + +2021-11-10 H.J. Lu + Hongtao Liu + + PR middle-end/102566 + * match.pd (nop_atomic_bit_test_and_p): New match. + * tree-ssa-ccp.c (convert_atomic_bit_not): New function. + (gimple_nop_atomic_bit_test_and_p): New prototype. + (optimize_atomic_bit_test_and): Transform equivalent, but slighly + different cases to their canonical forms. + +2021-11-10 liuhongt + + PR tree-optimization/103126 + * tree-vect-loop.c (neutral_op_for_reduction): Remove static. + * tree-vectorizer.h (neutral_op_for_reduction): Declare. + * tree-if-conv.c : Include tree-vectorizer.h. + (is_cond_scalar_reduction): Handle + BIT_XOR_EXPR/BIT_IOR_EXPR/BIT_AND_EXPR. + (convert_scalar_cond_reduction): Ditto. + +2021-11-10 konglin1 + + * config/i386/sse.md (cmul3): add new define_expand. + (cmla4): Likewise + +2021-11-10 Aldy Hernandez + + * tree-ssa-threadedge.c: Do not include + gimple-ssa-evrp-analyze.h. + * value-pointer-equiv.cc: Same. + +2021-11-10 Aldy Hernandez + + * tree-ssa-threadbackward.c + (back_threader::maybe_register_path_dump): Abstract path dumping... + (dump_path): ...here. + (back_threader::resolve_phi): Call dump_path. + (debug): Same. + +2021-11-10 konglin1 + + * config/i386/sse.md (fma___pair): + Add new define_insn. + (fma__fmaddc_bcst): Add new define_insn_and_split. + (fma__fcmaddc_bcst): Likewise + +2021-11-10 liuhongt + + PR target/102464 + * match.pd: Simplify (trunc)fmax/fmin((extend)a, (extend)b) to + MAX/MIN(a,b) + +2021-11-10 Andrew Pinski + + PR target/101529 + * config/aarch64/aarch64.c (aarch64_evpc_ins): Don't use target + as an input, use original one. + +2021-11-10 Sandra Loosemore + + * config/nios2/nios2.c (nios2_can_inline_p): New. + (TARGET_CAN_INLINE_P): Define. + +2021-11-09 Bill Schmidt + + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_builtin): + Disable gimple fold for RS6000_BIF_{XVMINDP,XVMINSP,VMINFP} and + RS6000_BIF_{XVMAXDP,XVMAXSP,VMAXFP} when fast-math is not set. + (lxvrse_expand_builtin): Modify the expansion for sign extension. + All extensions are done within VSX registers. + +2021-11-09 Andrew Pinski + + PR tree-optimization/10352 + * match.pd: Remove check of TYPE_PRECISION for + the a?0:pow2 case. + +2021-11-09 Andrew MacLeod + + * function.c (allocate_struct_function): Don't set x_range_query. + * function.h (get_range_query): Move to value-query.h. + * gimple-range.cc (enable_ranger): Check that query is currently NULL. + (disable_ranger): Clear function current query field. + * value-query.cc (get_global_range_query): Relocate to: + * value-query.h (get_global_range_query): Here and inline. + (get_range_query): Relocate here from function.h. + +2021-11-09 Aldy Hernandez + + * tree-ssa-threadbackward.c + (back_threader::maybe_register_path_dump): New. + (back_threader::maybe_register_path): Call maybe_register_path_dump. + +2021-11-09 Aldy Hernandez + + * tree-ssa-threadbackward.c (back_threader::maybe_register_path): + Return NULL when unprofitable. + +2021-11-09 Martin Jambor + + * tree.h (build_debug_expr_decl): Declare. + * tree.c (build_debug_expr_decl): New function. + * cfgexpand.c (avoid_deep_ter_for_debug): Use build_debug_expr_decl + instead of building a DEBUG_EXPR_DECL. + * ipa-param-manipulation.c + (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. + * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Likewise. + * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. + * tree-ssa-phiopt.c (spaceship_replacement): Likewise. + * tree-ssa-reassoc.c (make_new_ssa_for_def): Likewise. + +2021-11-09 Bill Schmidt + + * config/rs6000/rs6000-call.c (rs6000_type_string): New function. + (def_builtin): Change debug formatting for easier parsing and + include more information. + (rs6000_init_builtins): Add dump of autogenerated builtins. + (altivec_init_builtins): Dump __builtin_altivec_mask_for_load for + completeness. + +2021-11-09 Marek Polacek + + * ipa-modref.c (analyze_parms): Fix a typo. + +2021-11-09 Kito Cheng + + PR target/102957 + * common/config/riscv/riscv-common.c (multi_letter_subset_rank): Remove + assertion for Z*-ext. + +2021-11-09 Jan Hubicka + + * ipa-modref.c (analyze_parms): Add past_flags, past_retslot_flags + and past_static_chain; merge past summary with current one. + (analyze_function): Update. + +2021-11-09 Aldy Hernandez + + * doc/invoke.texi (Invoking GCC): Document --param=threader-debug. + +2021-11-09 Martin Liska + + * print-rtl.c (rtx_writer::rtx_writer): Make the compilation + conditional based on + * print-rtl.h (class rtx_writer): Likewise. + +2021-11-09 Thomas Schwinge + + * input.h (location_hash): Use 'BUILTINS_LOCATION' as spare value + for 'Deleted'. Turn into a '#define'. + +2021-11-09 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::dump): Clean up. + (path_range_query::compute_ranges): Same. + * value-relation.cc (path_oracle::dump): Same. + +2021-11-09 Aldy Hernandez + + * dumpfile.c (dump_options): Remove TDF_THREADING entry. + * dumpfile.h (enum dump_flag): Remove TDF_THREADING and adjust + remaining entries. + * flag-types.h (enum threader_debug): New. + * gimple-range-path.cc (DEBUG_SOLVER): Use param_threader_debug. + * params.opt: Add entry for --param=threader-debug=. + +2021-11-09 Thomas Schwinge + + PR middle-end/101204 + PR other/103157 + * diagnostic-spec.h (typedef xint_hash_t): Turn into... + (struct xint_hash_t): ... this. + * doc/gty.texi: Update. + +2021-11-09 Przemyslaw Wirkus + + * config/arm/arm-cpus.in (armv9): New define. + (ARMv9a): New group. + (armv9-a): New arch definition. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm.h (BASE_ARCH_9A): New arch enum value. + * config/arm/t-aprofile: Added armv9-a and armv9+simd. + * config/arm/t-arm-elf: Added arm9-a, v9_fps and all_v9_archs + to MULTILIB_MATCHES. + * config/arm/t-multilib: Added v9_a_nosimd_variants and + v9_a_simd_variants to MULTILIB_MATCHES. + * doc/invoke.texi: Update docs. + +2021-11-09 Martin Jambor + + PR ipa/103132 + * ipa-param-manipulation.c (replace_with_mapped_expr): Early + return with error_mark_mode when part of expression is mapped to + NULL. + (ipa_param_body_adjustments::remap_with_debug_expressions): Set + mapped value to NULL if walk_tree returns error_mark_mode. + +2021-11-09 Aldy Hernandez + + * tree-ssa-strlen.c (compare_nonzero_chars): Pass statement + context to ranger. + (get_addr_stridx): Same. + (get_stridx): Same. + (get_range_strlen_dynamic): Same. + (handle_builtin_strlen): Same. + (handle_builtin_strchr): Same. + (handle_builtin_strcpy): Same. + (maybe_diag_stxncpy_trunc): Same. + (handle_builtin_stxncpy_strncat): Same. + (handle_builtin_memcpy): Same. + (handle_builtin_strcat): Same. + (handle_alloc_call): Same. + (handle_builtin_memset): Same. + (handle_builtin_string_cmp): Same. + (handle_pointer_plus): Same. + (count_nonzero_bytes_addr): Same. + (count_nonzero_bytes): Same. + (handle_store): Same. + (fold_strstr_to_strncmp): Same. + (handle_integral_assign): Same. + (check_and_optimize_stmt): Same. + (class strlen_dom_walker): Replace evrp with ranger. + (strlen_dom_walker::before_dom_children): Remove evrp. + (strlen_dom_walker::after_dom_children): Remove evrp. + * gimple-ssa-warn-access.cc (maybe_check_access_sizes): + Restrict sprintf output. + +2021-11-09 Martin Liska + + * genconditions.c (write_one_condition): Add const qualifier + to pointer casting. + +2021-11-09 Jeff Law + + * match.pd: New pattern to simplify (1 << n) & M ==/!= 0 for M + being a power of 2. + +2021-11-08 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def (VEC_INIT_V16QI): Use + escape-newline support. + (VEC_INIT_V4SI): Likewise. + (VEC_INIT_V8HI): Likewise. + (PACK_V1TI): Likewise. + (DIVDEU): Likewise. + (VFIRSTMISMATCHOREOSINDEX_V16QI): Likewise. + (VFIRSTMISMATCHOREOSINDEX_V8HI): Likewise. + (VFIRSTMISMATCHOREOSINDEX_V4SI): Likewise. + (CMPRB2): Likewise. + (VSTDCP): Likewise. + (VSIEDP): Likewise. + (FMAF128_ODD): Likewise. + (VSCEQPUO): Likewise. + (VSIEQP): Likewise. + (VSIEQPF): Likewise. + (VSTDCQP): Likewise. + (PACK_TD): Likewise. + (TABORTDC): Likewise. + (TABORTDCI): Likewise. + (SE_LXVRBX): Likewise. + (SE_LXVRHX): Likewise. + (SE_LXVRWX): Likewise. + (SE_LXVRDX): Likewise. + (VREPLACE_UN_UV2DI): Likewise. + (VREPLACE_UN_UV4SI): Likewise. + (VREPLACE_UN_V2DI): Likewise. + (VREPLACE_ELT_UV2DI): Likewise. + (VREPLACE_ELT_V2DI): Likewise. + (ZE_LXVRBX): Likewise. + (ZE_LXVRHX): Likewise. + (ZE_LXVRWX): Likewise. + (ZE_LXVRDX): Likewise. + (CFUGED): Likewise. + (CNTLZDM): Likewise. + (CNTTZDM): Likewise. + (PDEPD): Likewise. + (PEXTD): Likewise. + (PMXVBF16GER2): Likewise. + (PMXVBF16GER2_INTERNAL): Likewise. + (PMXVBF16GER2NN): Likewise. + (PMXVBF16GER2NN_INTERNAL): Likewise. + (PMXVBF16GER2NP): Likewise. + (PMXVBF16GER2NP_INTERNAL): Likewise. + (PMXVBF16GER2PN): Likewise. + (PMXVBF16GER2PN_INTERNAL): Likewise. + (PMXVBF16GER2PP): Likewise. + (PMXVBF16GER2PP_INTERNAL): Likewise. + (PMXVF16GER2): Likewise. + (PMXVF16GER2_INTERNAL): Likewise. + (PMXVF16GER2NN): Likewise. + (PMXVF16GER2NN_INTERNAL): Likewise. + (PMXVF16GER2NP): Likewise. + (PMXVF16GER2NP_INTERNAL): Likewise. + (PMXVF16GER2PN): Likewise. + (PMXVF16GER2PN_INTERNAL): Likewise. + (PMXVF16GER2PP): Likewise. + (PMXVF16GER2PP_INTERNAL): Likewise. + (PMXVF32GER_INTERNAL): Likewise. + (PMXVF32GERNN): Likewise. + (PMXVF32GERNN_INTERNAL): Likewise. + (PMXVF32GERNP): Likewise. + (PMXVF32GERNP_INTERNAL): Likewise. + (PMXVF32GERPN): Likewise. + (PMXVF32GERPN_INTERNAL): Likewise. + (PMXVF32GERPP): Likewise. + (PMXVF32GERPP_INTERNAL): Likewise. + (PMXVF64GER): Likewise. + (PMXVF64GER_INTERNAL): Likewise. + (PMXVF64GERNN): Likewise. + (PMXVF64GERNN_INTERNAL): Likewise. + (PMXVF64GERNP): Likewise. + (PMXVF64GERNP_INTERNAL): Likewise. + (PMXVF64GERPN): Likewise. + (PMXVF64GERPN_INTERNAL): Likewise. + (PMXVF64GERPP): Likewise. + (PMXVF64GERPP_INTERNAL): Likewise. + (PMXVI16GER2): Likewise. + (PMXVI16GER2_INTERNAL): Likewise. + (PMXVI16GER2PP): Likewise. + (PMXVI16GER2PP_INTERNAL): Likewise. + (PMXVI16GER2S): Likewise. + (PMXVI16GER2S_INTERNAL): Likewise. + (PMXVI16GER2SPP): Likewise. + (PMXVI16GER2SPP_INTERNAL): Likewise. + (PMXVI4GER8): Likewise. + (PMXVI4GER8_INTERNAL): Likewise. + (PMXVI4GER8PP): Likewise. + (PMXVI4GER8PP_INTERNAL): Likewise. + (PMXVI8GER4): Likewise. + (PMXVI8GER4_INTERNAL): Likewise. + (PMXVI8GER4PP): Likewise. + (PMXVI8GER4PP_INTERNAL): Likewise. + (PMXVI8GER4SPP): Likewise. + (PMXVI8GER4SPP_INTERNAL): Likewise. + * config/rs6000/rs6000-gen-builtins.c (MAXLINES): New macro. + (linebuf): Increase size. + (lines): New variable. + (lastline): Likewise. + (real_line_pos): New function. + (diag): Change signature. + (bif_diag): Change signature; support escape-newline handling. + (ovld_diag): Likewise. + (fatal): Move earlier. + (consume_whitespace): Adjust diag call. + (advance_line): Add escape-newline handling; call fatal. + (safe_inc_pos): Adjust diag call. + (match_identifier): Likewise. + (match_integer): Likewise. + (match_to_right_bracket): Call fatal instead of diag; adjust diag + call. + (match_basetype): Adjust diag calls. + (match_bracketed_pair): Likewise. + (match_const_restriction): Likewise. + (match_type): Likewise. + (parse_args): Likewise. + (parse_bif_attrs): Likewise. + (complete_vector_type): Likewise. + (complete_base_type): Likewise. + (parse_prototype): Likewise. + (parse_bif_entry): Likewise. + (parse_bif_stanza): Likewise. + (parse_ovld_entry): Likewise. + (parse_ovld_stanza): Likewise. + (main): Allocate buffers for lines[]. + +2021-11-08 Eric Botcazou + + * config/i386/i386.c (legitimize_pic_address): Adjust comment and + use the REG argument on the CM_LARGE_PIC code path as well. + * config/i386/predicates.md (gotoff_operand): Do not treat VxWorks + specially with the large code models. + +2021-11-08 Jan Hubicka + + * gimple.c (gimple_call_static_chain_flags): Revert the workaround + allowing interposition since issues with binds_to_local_def were + hopefully solved. + +2021-11-08 Andrew MacLeod + + PR tree-optimization/103122 + * gimple-range.cc (gimple_ranger::range_of_expr): Request the cache + entry with "calulate new values" set to false. + +2021-11-08 Jan Hubicka + + * builtins.c (is_simple_builtin): Add builitin_dwarf_cfa + and builtin_return_address. + (builtin_fnspec): Annotate builtin_return, + bulitin_eh_pointer, builtin_eh_filter, builtin_unwind_resume, + builtin_cxa_end_cleanup, builtin_eh_copy_values, + builtin_frame_address, builtin_apply_args, + builtin_asan_before_dynamic_init, builtin_asan_after_dynamic_init, + builtin_prefetch, builtin_dwarf_cfa, builtin_return_addrss + as ".c" + * ipa-pure-const.c (special_builtin_state): Add builtin_dwarf_cfa + and builtin_return_address. + +2021-11-08 Jan Hubicka + + PR tree-optimization/103177 + * passes.def: Move uncprop after pure/const and modref. + +2021-11-08 Martin Jambor + + PR ipa/103099 + PR ipa/103107 + * tree-inline.c (remap_gimple_stmt): Unshare the expression without + location before invoking remap_with_debug_expressions on it. + * ipa-param-manipulation.c + (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. + +2021-11-08 David Edelsohn + + * config/rs6000/vsx.md (vsx_splat_v4si_di): Revert "wa" + constraint to "we". + +2021-11-08 Richard Biener + + * cfgloop.c (verify_loop_structure): Use a temporary BB flag + instead of an sbitmap to cache irreducible state. + +2021-11-08 Aldy Hernandez + + PR tree-optimization/103120 + * gimple-range-path.cc (path_range_query::range_defined_in_block): + Bail if there's a cache entry. + +2021-11-08 Bill Schmidt + + * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Use + rs6000_builtin_decls_x when appropriate. + (add_condition_to_bb): Likewise. + (rs6000_atomic_assign_expand_fenv): Likewise. + +2021-11-08 Bill Schmidt + + * config/rs6000/rs6000-call.c (rs6000_new_builtin_decl): New function. + (rs6000_builtin_decl): Call it. + +2021-11-08 Martin Liska + + * cgraph.c (cgraph_node::dump): Dump it from decl. + +2021-11-08 Martin Liska + + PR gcov-profile/100520 + * coverage.c (coverage_compute_profile_id): Strip .gk when + compare debug is used. + * system.h (endswith): New function. + +2021-11-08 Martin Liska + + * cgraph.c (cgraph_node::dump): Dump static_chain_decl. + +2021-11-08 Thomas Schwinge + + * config/rs6000/rbtree.c: Fix 'Copyright (C) 2020-21' into '2020-2021' + * config/rs6000/rbtree.h: Likewise. + * config/rs6000/rs6000-builtin-new.def: Likewise. + * config/rs6000/rs6000-gen-builtins.c: Likewise. + * config/rs6000/rs6000-overload.def: Likewise. + +2021-11-08 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_ldn_stn_vectors): New function. + (aarch64_address_cost): Use it instead of testing for CImode and + XImode directly. + +2021-11-08 Richard Sandiford + + * genmodes.c (emit_insn_modes_h): Define NUM_MODE_* macros. + * expmed.h (NUM_MODE_INT): Delete in favor of genmodes definitions. + (NUM_MODE_PARTIAL_INT, NUM_MODE_VECTOR_INT): Likewise. + * real.h (real_format_for_mode): Use NUM_MODE_FLOAT and + NUM_MODE_DECIMAL_FLOAT. + (REAL_MODE_FORMAT): Likewise. + +2021-11-08 Andre Vieira + + * tree-vect-loop.c (vect_better_loop_vinfo_p): Change how epilogue loop + costs are compared. + +2021-11-08 Richard Biener + + * tree-vectorizer.h (vect_create_loop_vinfo): Add main_loop_info + parameter. + * tree-vect-loop.c (vect_create_loop_vinfo): Likewise. Set + LOOP_VINFO_ORIG_LOOP_INFO and conditionalize set of + LOOP_VINFO_NITERS_ASSUMPTIONS. + (vect_analyze_loop_1): Adjust. + (vect_analyze_loop): Move loop constraint setting and + SCEV/niter reset here from vect_create_loop_vinfo to perform + it only once. + (vect_analyze_loop_form): Move dumping of symbolic niters + here from vect_create_loop_vinfo. + +2021-11-08 Jan Hubicka + + * ipa-modref-tree.h (enum modref_special_parms): New enum. + (struct modref_access_node): update for special parms. + (struct modref_ref_node): Likewise. + (struct modref_parm_map): Likewise. + (struct modref_tree): Likewise. + * ipa-modref.c (dump_access): Likewise. + (get_access): Detect static chain. + (parm_map_for_arg): Take tree as arg instead of + stmt and index. + (merge_call_side_effects): Compute map for static chain. + (process_fnspec): Update. + (struct escape_point): Remove retslot_arg and static_chain_arg. + (analyze_parms): Update. + (compute_parm_map): Update. + (propagate_unknown_call): Update. + (modref_propagate_in_scc): Update. + (modref_merge_call_site_flags): Update. + (ipa_merge_modref_summary_after_inlining): Update. + * tree-ssa-alias.c (modref_may_conflict): Handle static chain. + * ipa-modref-tree.c (test_merge): Update. + +2021-11-08 Haochen Gui + + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): Disable + gimple fold for VSX_BUILTIN_XVMINDP, ALTIVEC_BUILTIN_VMINFP, + VSX_BUILTIN_XVMAXDP, ALTIVEC_BUILTIN_VMAXFP when fast-math is not + set. + +2021-11-08 liuhongt + + PR tree-optimization/103077 + * doc/invoke.texi (Options That Control Optimization): + Update documentation for -ftree-loop-vectorize and + -ftree-slp-vectorize which are enabled by default at -02. + +2021-11-08 liuhongt + + PR target/102464 + * match.pd (Simplifcation (trunc)copysign((extend)a, (extend)b) + to .COPYSIGN (a, b)): Add !HONOR_SNANS. + +2021-11-08 liuhongt + + PR target/102464 + * match.pd: Simplify + (trunc)fma ((extend)a, (extend)b, (extend)c) to IFN_FMA (a, b, + c) under flag_unsafe_math_optimizations. + +2021-11-07 Jan Hubicka + + PR ipa/103055 + * params.opt (modref-max-depth): Add range. + (modref-max-adjustments): Fix range. + +2021-11-07 Aldy Hernandez + + * tree-pass.h (make_pass_vrp_threader): Remove. + * tree-ssa-threadbackward.c + (back_threader_profitability::profitable_path_p): Remove + ASSERT_EXPR references. + * tree-ssa-threadedge.c (jt_state::register_equivs_stmt): Same. + * tree-vrp.c (vrp_folder::simplify_casted_conds): Same. + (execute_vrp): Same. + (class hybrid_threader): Remove. + (hybrid_threader::hybrid_threader): Remove. + (hybrid_threader::~hybrid_threader): Remove. + (hybrid_threader::before_dom_children): Remove. + (hybrid_threader::after_dom_children): Remove. + (execute_vrp_threader): Remove. + (class pass_vrp_threader): Remove. + (make_pass_vrp_threader): Remove. + +2021-11-07 Jan Hubicka + + * gimple.c (gimple_call_arg_flags): Use interposable_eaf_flags. + (gimple_call_retslot_flags): Likewise. + (gimple_call_static_chain_flags): Likewise. + * ipa-modref.c (remove_useless_eaf_flags): Do not remove everything for + NOVOPS. + (modref_summary::useful_p): Likewise. + (modref_summary_lto::useful_p): Likewise. + (analyze_parms): Do not give up on NOVOPS. + (analyze_function): When dumping report chnages in EAF flags + between IPA and local pass. + (modref_merge_call_site_flags): Compute implicit eaf flags + based on callee ecf_flags and fnspec; if the function does not + bind to current defs use interposable_eaf_flags. + (modref_propagate_flags_in_scc): Update. + * ipa-modref.h (interposable_eaf_flags): New function. + +2021-11-07 Bill Schmidt + + * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): New + forward decl. + (rs6000_invalid_new_builtin): New function. + (rs6000_expand_builtin): Call rs6000_expand_new_builtin. + (rs6000_expand_ldst_mask): New function. + (new_cpu_expand_builtin): Likewise. + (elemrev_icode): Likewise. + (ldv_expand_builtin): Likewise. + (lxvrse_expand_builtin): Likewise. + (lxvrze_expand_builtin): Likewise. + (stv_expand_builtin): Likewise. + (new_mma_expand_builtin): Likewise. + (new_htm_spr_num): Likewise. + (new_htm_expand_builtin): Likewise. + (rs6000_expand_new_builtin): Likewise. + (rs6000_init_builtins): Initialize altivec_builtin_mask_for_load. + +2021-11-07 Jan Hubicka + + * ipa-modref.c (modref_lattice): Add do_dataflow, + changed and propagate_to fields. + (modref_lattice::release): Free propagate_to + (modref_lattice::merge): Do not give up early on unknown + lattice values. + (modref_lattice::merge_deref): Likewise. + (modref_eaf_analysis): Update toplevel comment. + (modref_eaf_analysis::analyze_ssa_name): Record postponned ssa names; + do optimistic dataflow initialization. + (modref_eaf_analysis::merge_with_ssa_name): Build dataflow graph. + (modref_eaf_analysis::propagate): New member function. + (analyze_parms): Update to new API of modref_eaf_analysis. + +2021-11-06 Jan Hubicka + + * cgraph.h (cgraph_node::can_be_discarded_p): Do not + return true on functions from other partition. + +2021-11-06 David Edelsohn + + * config/rs6000/vsx.md (vsx_splat_v4si): Change constraints to "wa". + (vsx_splat_v4si_di): Change constraint to "wa". + +2021-11-06 Aldy Hernandez + + PR tree-optimization/103061 + * value-relation.cc (path_oracle::path_oracle): Initialize + m_killed_defs. + (path_oracle::killing_def): Set m_killed_defs. + (path_oracle::query_relation): Do not look at the root oracle for + killed defs. + * value-relation.h (class path_oracle): Add m_killed_defs. + +2021-11-06 Aldy Hernandez + + * tree-ssa-threadbackward.c (back_threader::find_paths_to_names): + Remove gotos and other cleanups. + +2021-11-05 Jan Hubicka + + PR ipa/103073 + * ipa-modref-tree.h (modref_tree::insert): Do nothing for + paradoxical and zero sized accesses. + +2021-11-05 Jan Hubicka + + PR ipa/103082 + * ipa-modref-tree.h (struct modref_access_node): Avoid left shift + of negative value + +2021-11-05 Iain Sandoe + + * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Add LTRAMP + to the list of symbol prefixes that must be made linker- + visible. + +2021-11-05 Iain Sandoe + + * config.host: Add support for aarch64-*-darwin. + * config/aarch64/host-aarch64-darwin.c: New file. + * config/aarch64/x-darwin: New file. + +2021-11-05 Andrew MacLeod + + PR tree-optimization/103093 + * gimple-range-gori.cc (range_def_chain::get_imports): Remove assert. + +2021-11-05 Andrew MacLeod + + PR tree-optimization/102943 + * gimple-range-cache.cc (class update_list): New. + (update_list::add): Replace add_to_update. + (update_list::pop): New. + (ranger_cache::ranger_cache): Adjust. + (ranger_cache::~ranger_cache): Adjust. + (ranger_cache::add_to_update): Delete. + (ranger_cache::propagate_cache): Adjust to new class. + (ranger_cache::propagate_updated_value): Ditto. + (ranger_cache::fill_block_cache): Ditto. + * gimple-range-cache.h (class ranger_cache): Adjust to update class. + +2021-11-05 Richard Biener + + * tree-vect-loop.c (vect_analyze_loop): Remove obsolete + comment and expand on another one. Combine nested if. + +2021-11-05 John David Anglin + + PR libgomp/96661 + * config/pa/pa-modes.def: Add OImode integer type. + * config/pa/pa.c (pa_scalar_mode_supported_p): Allow TImode + for TARGET_64BIT. + * config/pa/pa.h (MIN_UNITS_PER_WORD) Define to MIN_UNITS_PER_WORD + to UNITS_PER_WORD if IN_LIBGCC2. + * config/pa/pa.md (addti3, addvti3, subti3, subvti3, negti2, + negvti2, ashlti3, shrpd_internal): New patterns. + Change some multi instruction types to multi. + +2021-11-05 Jakub Jelinek + + PR bootstrap/100246 + * config/i386/i386.h + (stringop_algs::stringop_strategy::stringop_strategy): Make the ctor + constexpr. + +2021-11-05 Wilco Dijkstra + + PR target/103085 + * config/aarch64/aarch64.c (aarch64_mov_operand_p): Strip the salt + first. + * config/aarch64/constraints.md: Support const in Usw. + +2021-11-05 John David Anglin + + * config/pa/pa.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2_DEBUG. + * config/pa/pa64-hpux.h (PREFERRED_DEBUGGING_TYPE): Remove define. + +2021-11-05 Richard Biener + + * tree-vectorizer.h (vec_info_shared::n_stmts): Add. + (LOOP_VINFO_N_STMTS): Likewise. + (vec_info_for_bb): Remove unused function. + * tree-vectorizer.c (vec_info_shared::vec_info_shared): + Initialize n_stmts member. + * tree-vect-loop.c: Remove INCLUDE_FUNCTIONAL. + (vect_create_loop_vinfo): Do not set loop->aux. + (vect_analyze_loop_2): Do not get n_stmts as argument, + instead use LOOP_VINFO_N_STMTS. Set LOOP_VINFO_VECTORIZABLE_P + here. + (vect_analyze_loop_1): Remove callback, get the mode iterator + and autodetected_vector_mode as argument, advancing the + iterator and initializing autodetected_vector_mode here. + (vect_analyze_loop): Split analysis loop into two, first + processing main loops only and then epilogues. + +2021-11-05 Martin Jambor + + * ipa-prop.c (compute_complex_assign_jump_func): Remove + unnecessary check for RECORD_TYPE. + +2021-11-05 Gerald Pfeifer + + * doc/install.texi2html: Do not generate old.html any longer. + +2021-11-05 Martin Liska + + PR debug/102955 + * opts.c (finish_options): Reset flag_gtoggle when it is used. + +2021-11-05 Jakub Jelinek + + PR debug/103046 + * dwarf2out.c (add_const_value_attribute): Add MODE argument, use it + in CONST_WIDE_INT handling. Adjust recursive calls. + (add_location_or_const_value_attribute): Pass DECL_MODE (decl) to + new add_const_value_attribute argument. + (tree_add_const_value_attribute): Pass TYPE_MODE (type) to new + add_const_value_attribute argument. + +2021-11-05 Rasmus Villemoes + + * config/vx-common.h: Test value of TARGET_VXWORKS7 rather + than definedness. + +2021-11-05 Richard Biener + + * tree-vectorizer.h (struct vect_loop_form_info): New. + (vect_analyze_loop_form): Adjust. + (vect_create_loop_vinfo): New. + * tree-parloops.c (gather_scalar_reductions): Adjust for + vect_analyze_loop_form API change. + * tree-vect-loop.c: Include . + (vect_analyze_loop_form_1): Rename to vect_analyze_loop_form, + take struct vect_loop_form_info as output parameter and adjust. + (vect_analyze_loop_form): Rename to vect_create_loop_vinfo and + split out call to the original vect_analyze_loop_form_1. + (vect_reanalyze_as_main_loop): Rename to... + (vect_analyze_loop_1): ... this, factor out the call to + vect_analyze_loop_form and generalize to be able to use it twice ... + (vect_analyze_loop): ... here. Perform vect_analyze_loop_form + once only and here. + +2021-11-05 Xionghu Luo + + PR target/102991 + * config/rs6000/fusion.md: Regenerate. + * config/rs6000/genfusion.pl: Fix incorrect clobber constraint. + +2021-11-04 Andreas Krebbel + + * config/s390/s390.h (STACK_CHECK_MOVING_SP): New macro + definition. + +2021-11-04 Tamar Christina + + * config/aarch64/aarch64-builtins.c + (aarch64_general_gimple_fold_builtin): Add ashl, sshl, ushl, ashr, + ashr_simd, lshr, lshr_simd. + * config/aarch64/aarch64-simd-builtins.def (lshr): Use USHIFTIMM. + * config/aarch64/arm_neon.h (vshr_n_u8, vshr_n_u16, vshr_n_u32, + vshrq_n_u8, vshrq_n_u16, vshrq_n_u32, vshrq_n_u64): Fix type hack. + +2021-11-04 Tamar Christina + + * match.pd: New negate+shift pattern. + +2021-11-04 Andrew MacLeod + + PR tree-optimization/103079 + * gimple-range-gori.cc (gimple_range_calc_op1): Treat undefined as + varying. + (gimple_range_calc_op2): Ditto. + +2021-11-04 Martin Jambor + + PR ipa/93385 + * ipa-param-manipulation.h (class ipa_param_body_adjustments): New + members remap_with_debug_expressions, m_dead_ssa_debug_equiv, + m_dead_stmt_debug_equiv and prepare_debug_expressions. Added + parameter to mark_dead_statements. + * ipa-param-manipulation.c: Include tree-phinodes.h and cfgexpand.h. + (ipa_param_body_adjustments::mark_dead_statements): New parameter + debugstack, push into it all SSA names used in debug statements, + produce m_dead_ssa_debug_equiv mapping for the removed param. + (replace_with_mapped_expr): New function. + (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise. + (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. + (ipa_param_body_adjustments::common_initialization): Gather and + procecc SSA which will be removed but are in debug statements. Simplify. + (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize + new members. + * tree-inline.c (remap_gimple_stmt): Create a debug bind when possible + when avoiding a copy of an unnecessary statement. Remap removed SSA + names in existing debug statements. + (tree_function_versioning): Do not create DEBUG_EXPR_DECL for removed + parameters if we have already done so. + +2021-11-04 Jan Hubicka + + PR ipa/103058 + * gimple.c (gimple_call_static_chain_flags): Handle case when + nested function does not bind locally. + +2021-11-04 Jonathan Wright + + * config/aarch64/aarch64.c (aarch64_function_value): Generate + a register rtx for Neon vector-tuple modes. + (aarch64_layout_arg): Likewise. + +2021-11-04 Jonathan Wright + + * lower-subreg.c (simple_move): Prevent decomposition if + modes are not tieable. + +2021-11-04 Jonathan Wright + Richard Sandiford + + * config/aarch64/aarch64-builtins.c (v2x8qi_UP): Define. + (v2x4hi_UP): Likewise. + (v2x4hf_UP): Likewise. + (v2x4bf_UP): Likewise. + (v2x2si_UP): Likewise. + (v2x2sf_UP): Likewise. + (v2x1di_UP): Likewise. + (v2x1df_UP): Likewise. + (v2x16qi_UP): Likewise. + (v2x8hi_UP): Likewise. + (v2x8hf_UP): Likewise. + (v2x8bf_UP): Likewise. + (v2x4si_UP): Likewise. + (v2x4sf_UP): Likewise. + (v2x2di_UP): Likewise. + (v2x2df_UP): Likewise. + (v3x8qi_UP): Likewise. + (v3x4hi_UP): Likewise. + (v3x4hf_UP): Likewise. + (v3x4bf_UP): Likewise. + (v3x2si_UP): Likewise. + (v3x2sf_UP): Likewise. + (v3x1di_UP): Likewise. + (v3x1df_UP): Likewise. + (v3x16qi_UP): Likewise. + (v3x8hi_UP): Likewise. + (v3x8hf_UP): Likewise. + (v3x8bf_UP): Likewise. + (v3x4si_UP): Likewise. + (v3x4sf_UP): Likewise. + (v3x2di_UP): Likewise. + (v3x2df_UP): Likewise. + (v4x8qi_UP): Likewise. + (v4x4hi_UP): Likewise. + (v4x4hf_UP): Likewise. + (v4x4bf_UP): Likewise. + (v4x2si_UP): Likewise. + (v4x2sf_UP): Likewise. + (v4x1di_UP): Likewise. + (v4x1df_UP): Likewise. + (v4x16qi_UP): Likewise. + (v4x8hi_UP): Likewise. + (v4x8hf_UP): Likewise. + (v4x8bf_UP): Likewise. + (v4x4si_UP): Likewise. + (v4x4sf_UP): Likewise. + (v4x2di_UP): Likewise. + (v4x2df_UP): Likewise. + (TYPES_GETREGP): Delete. + (TYPES_SETREGP): Likewise. + (TYPES_LOADSTRUCT_U): Define. + (TYPES_LOADSTRUCT_P): Likewise. + (TYPES_LOADSTRUCT_LANE_U): Likewise. + (TYPES_LOADSTRUCT_LANE_P): Likewise. + (TYPES_STORE1P): Move for consistency. + (TYPES_STORESTRUCT_U): Define. + (TYPES_STORESTRUCT_P): Likewise. + (TYPES_STORESTRUCT_LANE_U): Likewise. + (TYPES_STORESTRUCT_LANE_P): Likewise. + (aarch64_simd_tuple_types): Define. + (aarch64_lookup_simd_builtin_type): Handle tuple type lookup. + (aarch64_init_simd_builtin_functions): Update frontend lookup + for builtin functions after handling arm_neon.h pragma. + (register_tuple_type): Manually set modes of single-integer + tuple types. Record tuple types. + * config/aarch64/aarch64-modes.def + (ADV_SIMD_D_REG_STRUCT_MODES): Define D-register tuple modes. + (ADV_SIMD_Q_REG_STRUCT_MODES): Define Q-register tuple modes. + (SVE_MODES): Give single-vector modes priority over vector- + tuple modes. + (VECTOR_MODES_WITH_PREFIX): Set partial-vector mode order to + be after all single-vector modes. + * config/aarch64/aarch64-simd-builtins.def: Update builtin + generator macros to reflect modifications to the backend + patterns. + * config/aarch64/aarch64-simd.md (aarch64_simd_ld2): + Use vector-tuple mode iterator and rename to... + (aarch64_simd_ld2): This. + (aarch64_simd_ld2r): Use vector-tuple mode iterator and + rename to... + (aarch64_simd_ld2r): This. + (aarch64_vec_load_lanesoi_lane): Use vector-tuple mode + iterator and rename to... + (aarch64_vec_load_lanes_lane): This. + (vec_load_lanesoi): Use vector-tuple mode iterator and + rename to... + (vec_load_lanes): This. + (aarch64_simd_st2): Use vector-tuple mode iterator and + rename to... + (aarch64_simd_st2): This. + (aarch64_vec_store_lanesoi_lane): Use vector-tuple mode + iterator and rename to... + (aarch64_vec_store_lanes_lane): This. + (vec_store_lanesoi): Use vector-tuple mode iterator and + rename to... + (vec_store_lanes): This. + (aarch64_simd_ld3): Use vector-tuple mode iterator and + rename to... + (aarch64_simd_ld3): This. + (aarch64_simd_ld3r): Use vector-tuple mode iterator and + rename to... + (aarch64_simd_ld3r): This. + (aarch64_vec_load_lanesci_lane): Use vector-tuple mode + iterator and rename to... + (vec_load_lanesci): This. + (aarch64_simd_st3): Use vector-tuple mode iterator and + rename to... + (aarch64_simd_st3): This. + (aarch64_vec_store_lanesci_lane): Use vector-tuple mode + iterator and rename to... + (vec_store_lanesci): This. + (aarch64_simd_ld4): Use vector-tuple mode iterator and + rename to... + (aarch64_simd_ld4): This. + (aarch64_simd_ld4r): Use vector-tuple mode iterator and + rename to... + (aarch64_simd_ld4r): This. + (aarch64_vec_load_lanesxi_lane): Use vector-tuple mode + iterator and rename to... + (vec_load_lanesxi): This. + (aarch64_simd_st4): Use vector-tuple mode iterator and + rename to... + (aarch64_simd_st4): This. + (aarch64_vec_store_lanesxi_lane): Use vector-tuple mode + iterator and rename to... + (vec_store_lanesxi): This. + (mov): Define for Neon vector-tuple modes. + (aarch64_ld1x3): Use vector-tuple mode iterator + and rename to... + (aarch64_ld1x3): This. + (aarch64_ld1_x3_): Use vector-tuple mode iterator and + rename to... + (aarch64_ld1_x3_): This. + (aarch64_ld1x4): Use vector-tuple mode iterator + and rename to... + (aarch64_ld1x4): This. + (aarch64_ld1_x4_): Use vector-tuple mode iterator and + rename to... + (aarch64_ld1_x4_): This. + (aarch64_st1x2): Use vector-tuple mode iterator + and rename to... + (aarch64_st1x2): This. + (aarch64_st1_x2_): Use vector-tuple mode iterator and + rename to... + (aarch64_st1_x2_): This. + (aarch64_st1x3): Use vector-tuple mode iterator + and rename to... + (aarch64_st1x3): This. + (aarch64_st1_x3_): Use vector-tuple mode iterator and + rename to... + (aarch64_st1_x3_): This. + (aarch64_st1x4): Use vector-tuple mode iterator + and rename to... + (aarch64_st1x4): This. + (aarch64_st1_x4_): Use vector-tuple mode iterator and + rename to... + (aarch64_st1_x4_): This. + (*aarch64_mov): Define for vector-tuple modes. + (*aarch64_be_mov): Likewise. + (aarch64_ldr): Use vector-tuple + mode iterator and rename to... + (aarch64_ldr): This. + (aarch64_ld2_dreg): Use vector-tuple mode iterator and + rename to... + (aarch64_ld2_dreg): This. + (aarch64_ld3_dreg): Use vector-tuple mode iterator and + rename to... + (aarch64_ld3_dreg): This. + (aarch64_ld4_dreg): Use vector-tuple mode iterator and + rename to... + (aarch64_ld4_dreg): This. + (aarch64_ld): Use vector-tuple mode + iterator and rename to... + (aarch64_ld): Use vector-tuple mode + iterator and rename to... + (aarch64_ld): Use vector-tuple mode + (aarch64_ld1x2): Delete. + (aarch64_ld1x2): Use vector-tuple mode iterator and + rename to... + (aarch64_ld1x2): This. + (aarch64_ld_lane): Use vector- + tuple mode iterator and rename to... + (aarch64_ld_lane): This. + (aarch64_get_dreg): Delete. + (aarch64_get_qreg): Likewise. + (aarch64_st2_dreg): Use vector-tuple mode iterator and + rename to... + (aarch64_st2_dreg): This. + (aarch64_st3_dreg): Use vector-tuple mode iterator and + rename to... + (aarch64_st3_dreg): This. + (aarch64_st4_dreg): Use vector-tuple mode iterator and + rename to... + (aarch64_st4_dreg): This. + (aarch64_st): Use vector-tuple mode + iterator and rename to... + (aarch64_st): This. + (aarch64_st): Use vector-tuple mode + iterator and rename to aarch64_st. + (aarch64_st_lane): Use vector- + tuple mode iterator and rename to... + (aarch64_st_lane): This. + (aarch64_set_qreg): Delete. + (aarch64_simd_ld1_x2): Use vector-tuple mode iterator + and rename to... + (aarch64_simd_ld1_x2): This. + * config/aarch64/aarch64.c (aarch64_advsimd_struct_mode_p): + Refactor to include new vector-tuple modes. + (aarch64_classify_vector_mode): Add cases for new vector- + tuple modes. + (aarch64_advsimd_partial_struct_mode_p): Define. + (aarch64_advsimd_full_struct_mode_p): Likewise. + (aarch64_advsimd_vector_array_mode): Likewise. + (aarch64_sve_data_mode): Change location in file. + (aarch64_array_mode): Handle case of Neon vector-tuple modes. + (aarch64_hard_regno_nregs): Handle case of partial Neon + vector structures. + (aarch64_classify_address): Refactor to include handling of + Neon vector-tuple modes. + (aarch64_print_operand): Print "d" for "%R" for a partial + Neon vector structure. + (aarch64_expand_vec_perm_1): Use new vector-tuple mode. + (aarch64_modes_tieable_p): Prevent tieing Neon partial struct + modes with scalar machines modes larger than 8 bytes. + (aarch64_can_change_mode_class): Don't allow changes between + partial and full Neon vector-structure modes. + * config/aarch64/arm_neon.h (vst2_lane_f16): Use updated + builtin and remove boiler-plate code for opaque mode. + (vst2_lane_f32): Likewise. + (vst2_lane_f64): Likewise. + (vst2_lane_p8): Likewise. + (vst2_lane_p16): Likewise. + (vst2_lane_p64): Likewise. + (vst2_lane_s8): Likewise. + (vst2_lane_s16): Likewise. + (vst2_lane_s32): Likewise. + (vst2_lane_s64): Likewise. + (vst2_lane_u8): Likewise. + (vst2_lane_u16): Likewise. + (vst2_lane_u32): Likewise. + (vst2_lane_u64): Likewise. + (vst2q_lane_f16): Likewise. + (vst2q_lane_f32): Likewise. + (vst2q_lane_f64): Likewise. + (vst2q_lane_p8): Likewise. + (vst2q_lane_p16): Likewise. + (vst2q_lane_p64): Likewise. + (vst2q_lane_s8): Likewise. + (vst2q_lane_s16): Likewise. + (vst2q_lane_s32): Likewise. + (vst2q_lane_s64): Likewise. + (vst2q_lane_u8): Likewise. + (vst2q_lane_u16): Likewise. + (vst2q_lane_u32): Likewise. + (vst2q_lane_u64): Likewise. + (vst3_lane_f16): Likewise. + (vst3_lane_f32): Likewise. + (vst3_lane_f64): Likewise. + (vst3_lane_p8): Likewise. + (vst3_lane_p16): Likewise. + (vst3_lane_p64): Likewise. + (vst3_lane_s8): Likewise. + (vst3_lane_s16): Likewise. + (vst3_lane_s32): Likewise. + (vst3_lane_s64): Likewise. + (vst3_lane_u8): Likewise. + (vst3_lane_u16): Likewise. + (vst3_lane_u32): Likewise. + (vst3_lane_u64): Likewise. + (vst3q_lane_f16): Likewise. + (vst3q_lane_f32): Likewise. + (vst3q_lane_f64): Likewise. + (vst3q_lane_p8): Likewise. + (vst3q_lane_p16): Likewise. + (vst3q_lane_p64): Likewise. + (vst3q_lane_s8): Likewise. + (vst3q_lane_s16): Likewise. + (vst3q_lane_s32): Likewise. + (vst3q_lane_s64): Likewise. + (vst3q_lane_u8): Likewise. + (vst3q_lane_u16): Likewise. + (vst3q_lane_u32): Likewise. + (vst3q_lane_u64): Likewise. + (vst4_lane_f16): Likewise. + (vst4_lane_f32): Likewise. + (vst4_lane_f64): Likewise. + (vst4_lane_p8): Likewise. + (vst4_lane_p16): Likewise. + (vst4_lane_p64): Likewise. + (vst4_lane_s8): Likewise. + (vst4_lane_s16): Likewise. + (vst4_lane_s32): Likewise. + (vst4_lane_s64): Likewise. + (vst4_lane_u8): Likewise. + (vst4_lane_u16): Likewise. + (vst4_lane_u32): Likewise. + (vst4_lane_u64): Likewise. + (vst4q_lane_f16): Likewise. + (vst4q_lane_f32): Likewise. + (vst4q_lane_f64): Likewise. + (vst4q_lane_p8): Likewise. + (vst4q_lane_p16): Likewise. + (vst4q_lane_p64): Likewise. + (vst4q_lane_s8): Likewise. + (vst4q_lane_s16): Likewise. + (vst4q_lane_s32): Likewise. + (vst4q_lane_s64): Likewise. + (vst4q_lane_u8): Likewise. + (vst4q_lane_u16): Likewise. + (vst4q_lane_u32): Likewise. + (vst4q_lane_u64): Likewise. + (vtbl3_s8): Likewise. + (vtbl3_u8): Likewise. + (vtbl3_p8): Likewise. + (vtbl4_s8): Likewise. + (vtbl4_u8): Likewise. + (vtbl4_p8): Likewise. + (vld1_u8_x3): Likewise. + (vld1_s8_x3): Likewise. + (vld1_u16_x3): Likewise. + (vld1_s16_x3): Likewise. + (vld1_u32_x3): Likewise. + (vld1_s32_x3): Likewise. + (vld1_u64_x3): Likewise. + (vld1_s64_x3): Likewise. + (vld1_f16_x3): Likewise. + (vld1_f32_x3): Likewise. + (vld1_f64_x3): Likewise. + (vld1_p8_x3): Likewise. + (vld1_p16_x3): Likewise. + (vld1_p64_x3): Likewise. + (vld1q_u8_x3): Likewise. + (vld1q_s8_x3): Likewise. + (vld1q_u16_x3): Likewise. + (vld1q_s16_x3): Likewise. + (vld1q_u32_x3): Likewise. + (vld1q_s32_x3): Likewise. + (vld1q_u64_x3): Likewise. + (vld1q_s64_x3): Likewise. + (vld1q_f16_x3): Likewise. + (vld1q_f32_x3): Likewise. + (vld1q_f64_x3): Likewise. + (vld1q_p8_x3): Likewise. + (vld1q_p16_x3): Likewise. + (vld1q_p64_x3): Likewise. + (vld1_u8_x2): Likewise. + (vld1_s8_x2): Likewise. + (vld1_u16_x2): Likewise. + (vld1_s16_x2): Likewise. + (vld1_u32_x2): Likewise. + (vld1_s32_x2): Likewise. + (vld1_u64_x2): Likewise. + (vld1_s64_x2): Likewise. + (vld1_f16_x2): Likewise. + (vld1_f32_x2): Likewise. + (vld1_f64_x2): Likewise. + (vld1_p8_x2): Likewise. + (vld1_p16_x2): Likewise. + (vld1_p64_x2): Likewise. + (vld1q_u8_x2): Likewise. + (vld1q_s8_x2): Likewise. + (vld1q_u16_x2): Likewise. + (vld1q_s16_x2): Likewise. + (vld1q_u32_x2): Likewise. + (vld1q_s32_x2): Likewise. + (vld1q_u64_x2): Likewise. + (vld1q_s64_x2): Likewise. + (vld1q_f16_x2): Likewise. + (vld1q_f32_x2): Likewise. + (vld1q_f64_x2): Likewise. + (vld1q_p8_x2): Likewise. + (vld1q_p16_x2): Likewise. + (vld1q_p64_x2): Likewise. + (vld1_s8_x4): Likewise. + (vld1q_s8_x4): Likewise. + (vld1_s16_x4): Likewise. + (vld1q_s16_x4): Likewise. + (vld1_s32_x4): Likewise. + (vld1q_s32_x4): Likewise. + (vld1_u8_x4): Likewise. + (vld1q_u8_x4): Likewise. + (vld1_u16_x4): Likewise. + (vld1q_u16_x4): Likewise. + (vld1_u32_x4): Likewise. + (vld1q_u32_x4): Likewise. + (vld1_f16_x4): Likewise. + (vld1q_f16_x4): Likewise. + (vld1_f32_x4): Likewise. + (vld1q_f32_x4): Likewise. + (vld1_p8_x4): Likewise. + (vld1q_p8_x4): Likewise. + (vld1_p16_x4): Likewise. + (vld1q_p16_x4): Likewise. + (vld1_s64_x4): Likewise. + (vld1_u64_x4): Likewise. + (vld1_p64_x4): Likewise. + (vld1q_s64_x4): Likewise. + (vld1q_u64_x4): Likewise. + (vld1q_p64_x4): Likewise. + (vld1_f64_x4): Likewise. + (vld1q_f64_x4): Likewise. + (vld2_s64): Likewise. + (vld2_u64): Likewise. + (vld2_f64): Likewise. + (vld2_s8): Likewise. + (vld2_p8): Likewise. + (vld2_p64): Likewise. + (vld2_s16): Likewise. + (vld2_p16): Likewise. + (vld2_s32): Likewise. + (vld2_u8): Likewise. + (vld2_u16): Likewise. + (vld2_u32): Likewise. + (vld2_f16): Likewise. + (vld2_f32): Likewise. + (vld2q_s8): Likewise. + (vld2q_p8): Likewise. + (vld2q_s16): Likewise. + (vld2q_p16): Likewise. + (vld2q_p64): Likewise. + (vld2q_s32): Likewise. + (vld2q_s64): Likewise. + (vld2q_u8): Likewise. + (vld2q_u16): Likewise. + (vld2q_u32): Likewise. + (vld2q_u64): Likewise. + (vld2q_f16): Likewise. + (vld2q_f32): Likewise. + (vld2q_f64): Likewise. + (vld3_s64): Likewise. + (vld3_u64): Likewise. + (vld3_f64): Likewise. + (vld3_s8): Likewise. + (vld3_p8): Likewise. + (vld3_s16): Likewise. + (vld3_p16): Likewise. + (vld3_s32): Likewise. + (vld3_u8): Likewise. + (vld3_u16): Likewise. + (vld3_u32): Likewise. + (vld3_f16): Likewise. + (vld3_f32): Likewise. + (vld3_p64): Likewise. + (vld3q_s8): Likewise. + (vld3q_p8): Likewise. + (vld3q_s16): Likewise. + (vld3q_p16): Likewise. + (vld3q_s32): Likewise. + (vld3q_s64): Likewise. + (vld3q_u8): Likewise. + (vld3q_u16): Likewise. + (vld3q_u32): Likewise. + (vld3q_u64): Likewise. + (vld3q_f16): Likewise. + (vld3q_f32): Likewise. + (vld3q_f64): Likewise. + (vld3q_p64): Likewise. + (vld4_s64): Likewise. + (vld4_u64): Likewise. + (vld4_f64): Likewise. + (vld4_s8): Likewise. + (vld4_p8): Likewise. + (vld4_s16): Likewise. + (vld4_p16): Likewise. + (vld4_s32): Likewise. + (vld4_u8): Likewise. + (vld4_u16): Likewise. + (vld4_u32): Likewise. + (vld4_f16): Likewise. + (vld4_f32): Likewise. + (vld4_p64): Likewise. + (vld4q_s8): Likewise. + (vld4q_p8): Likewise. + (vld4q_s16): Likewise. + (vld4q_p16): Likewise. + (vld4q_s32): Likewise. + (vld4q_s64): Likewise. + (vld4q_u8): Likewise. + (vld4q_u16): Likewise. + (vld4q_u32): Likewise. + (vld4q_u64): Likewise. + (vld4q_f16): Likewise. + (vld4q_f32): Likewise. + (vld4q_f64): Likewise. + (vld4q_p64): Likewise. + (vld2_dup_s8): Likewise. + (vld2_dup_s16): Likewise. + (vld2_dup_s32): Likewise. + (vld2_dup_f16): Likewise. + (vld2_dup_f32): Likewise. + (vld2_dup_f64): Likewise. + (vld2_dup_u8): Likewise. + (vld2_dup_u16): Likewise. + (vld2_dup_u32): Likewise. + (vld2_dup_p8): Likewise. + (vld2_dup_p16): Likewise. + (vld2_dup_p64): Likewise. + (vld2_dup_s64): Likewise. + (vld2_dup_u64): Likewise. + (vld2q_dup_s8): Likewise. + (vld2q_dup_p8): Likewise. + (vld2q_dup_s16): Likewise. + (vld2q_dup_p16): Likewise. + (vld2q_dup_s32): Likewise. + (vld2q_dup_s64): Likewise. + (vld2q_dup_u8): Likewise. + (vld2q_dup_u16): Likewise. + (vld2q_dup_u32): Likewise. + (vld2q_dup_u64): Likewise. + (vld2q_dup_f16): Likewise. + (vld2q_dup_f32): Likewise. + (vld2q_dup_f64): Likewise. + (vld2q_dup_p64): Likewise. + (vld3_dup_s64): Likewise. + (vld3_dup_u64): Likewise. + (vld3_dup_f64): Likewise. + (vld3_dup_s8): Likewise. + (vld3_dup_p8): Likewise. + (vld3_dup_s16): Likewise. + (vld3_dup_p16): Likewise. + (vld3_dup_s32): Likewise. + (vld3_dup_u8): Likewise. + (vld3_dup_u16): Likewise. + (vld3_dup_u32): Likewise. + (vld3_dup_f16): Likewise. + (vld3_dup_f32): Likewise. + (vld3_dup_p64): Likewise. + (vld3q_dup_s8): Likewise. + (vld3q_dup_p8): Likewise. + (vld3q_dup_s16): Likewise. + (vld3q_dup_p16): Likewise. + (vld3q_dup_s32): Likewise. + (vld3q_dup_s64): Likewise. + (vld3q_dup_u8): Likewise. + (vld3q_dup_u16): Likewise. + (vld3q_dup_u32): Likewise. + (vld3q_dup_u64): Likewise. + (vld3q_dup_f16): Likewise. + (vld3q_dup_f32): Likewise. + (vld3q_dup_f64): Likewise. + (vld3q_dup_p64): Likewise. + (vld4_dup_s64): Likewise. + (vld4_dup_u64): Likewise. + (vld4_dup_f64): Likewise. + (vld4_dup_s8): Likewise. + (vld4_dup_p8): Likewise. + (vld4_dup_s16): Likewise. + (vld4_dup_p16): Likewise. + (vld4_dup_s32): Likewise. + (vld4_dup_u8): Likewise. + (vld4_dup_u16): Likewise. + (vld4_dup_u32): Likewise. + (vld4_dup_f16): Likewise. + (vld4_dup_f32): Likewise. + (vld4_dup_p64): Likewise. + (vld4q_dup_s8): Likewise. + (vld4q_dup_p8): Likewise. + (vld4q_dup_s16): Likewise. + (vld4q_dup_p16): Likewise. + (vld4q_dup_s32): Likewise. + (vld4q_dup_s64): Likewise. + (vld4q_dup_u8): Likewise. + (vld4q_dup_u16): Likewise. + (vld4q_dup_u32): Likewise. + (vld4q_dup_u64): Likewise. + (vld4q_dup_f16): Likewise. + (vld4q_dup_f32): Likewise. + (vld4q_dup_f64): Likewise. + (vld4q_dup_p64): Likewise. + (vld2_lane_u8): Likewise. + (vld2_lane_u16): Likewise. + (vld2_lane_u32): Likewise. + (vld2_lane_u64): Likewise. + (vld2_lane_s8): Likewise. + (vld2_lane_s16): Likewise. + (vld2_lane_s32): Likewise. + (vld2_lane_s64): Likewise. + (vld2_lane_f16): Likewise. + (vld2_lane_f32): Likewise. + (vld2_lane_f64): Likewise. + (vld2_lane_p8): Likewise. + (vld2_lane_p16): Likewise. + (vld2_lane_p64): Likewise. + (vld2q_lane_u8): Likewise. + (vld2q_lane_u16): Likewise. + (vld2q_lane_u32): Likewise. + (vld2q_lane_u64): Likewise. + (vld2q_lane_s8): Likewise. + (vld2q_lane_s16): Likewise. + (vld2q_lane_s32): Likewise. + (vld2q_lane_s64): Likewise. + (vld2q_lane_f16): Likewise. + (vld2q_lane_f32): Likewise. + (vld2q_lane_f64): Likewise. + (vld2q_lane_p8): Likewise. + (vld2q_lane_p16): Likewise. + (vld2q_lane_p64): Likewise. + (vld3_lane_u8): Likewise. + (vld3_lane_u16): Likewise. + (vld3_lane_u32): Likewise. + (vld3_lane_u64): Likewise. + (vld3_lane_s8): Likewise. + (vld3_lane_s16): Likewise. + (vld3_lane_s32): Likewise. + (vld3_lane_s64): Likewise. + (vld3_lane_f16): Likewise. + (vld3_lane_f32): Likewise. + (vld3_lane_f64): Likewise. + (vld3_lane_p8): Likewise. + (vld3_lane_p16): Likewise. + (vld3_lane_p64): Likewise. + (vld3q_lane_u8): Likewise. + (vld3q_lane_u16): Likewise. + (vld3q_lane_u32): Likewise. + (vld3q_lane_u64): Likewise. + (vld3q_lane_s8): Likewise. + (vld3q_lane_s16): Likewise. + (vld3q_lane_s32): Likewise. + (vld3q_lane_s64): Likewise. + (vld3q_lane_f16): Likewise. + (vld3q_lane_f32): Likewise. + (vld3q_lane_f64): Likewise. + (vld3q_lane_p8): Likewise. + (vld3q_lane_p16): Likewise. + (vld3q_lane_p64): Likewise. + (vld4_lane_u8): Likewise. + (vld4_lane_u16): Likewise. + (vld4_lane_u32): Likewise. + (vld4_lane_u64): Likewise. + (vld4_lane_s8): Likewise. + (vld4_lane_s16): Likewise. + (vld4_lane_s32): Likewise. + (vld4_lane_s64): Likewise. + (vld4_lane_f16): Likewise. + (vld4_lane_f32): Likewise. + (vld4_lane_f64): Likewise. + (vld4_lane_p8): Likewise. + (vld4_lane_p16): Likewise. + (vld4_lane_p64): Likewise. + (vld4q_lane_u8): Likewise. + (vld4q_lane_u16): Likewise. + (vld4q_lane_u32): Likewise. + (vld4q_lane_u64): Likewise. + (vld4q_lane_s8): Likewise. + (vld4q_lane_s16): Likewise. + (vld4q_lane_s32): Likewise. + (vld4q_lane_s64): Likewise. + (vld4q_lane_f16): Likewise. + (vld4q_lane_f32): Likewise. + (vld4q_lane_f64): Likewise. + (vld4q_lane_p8): Likewise. + (vld4q_lane_p16): Likewise. + (vld4q_lane_p64): Likewise. + (vqtbl2_s8): Likewise. + (vqtbl2_u8): Likewise. + (vqtbl2_p8): Likewise. + (vqtbl2q_s8): Likewise. + (vqtbl2q_u8): Likewise. + (vqtbl2q_p8): Likewise. + (vqtbl3_s8): Likewise. + (vqtbl3_u8): Likewise. + (vqtbl3_p8): Likewise. + (vqtbl3q_s8): Likewise. + (vqtbl3q_u8): Likewise. + (vqtbl3q_p8): Likewise. + (vqtbl4_s8): Likewise. + (vqtbl4_u8): Likewise. + (vqtbl4_p8): Likewise. + (vqtbl4q_s8): Likewise. + (vqtbl4q_u8): Likewise. + (vqtbl4q_p8): Likewise. + (vqtbx2_s8): Likewise. + (vqtbx2_u8): Likewise. + (vqtbx2_p8): Likewise. + (vqtbx2q_s8): Likewise. + (vqtbx2q_u8): Likewise. + (vqtbx2q_p8): Likewise. + (vqtbx3_s8): Likewise. + (vqtbx3_u8): Likewise. + (vqtbx3_p8): Likewise. + (vqtbx3q_s8): Likewise. + (vqtbx3q_u8): Likewise. + (vqtbx3q_p8): Likewise. + (vqtbx4_s8): Likewise. + (vqtbx4_u8): Likewise. + (vqtbx4_p8): Likewise. + (vqtbx4q_s8): Likewise. + (vqtbx4q_u8): Likewise. + (vqtbx4q_p8): Likewise. + (vst1_s64_x2): Likewise. + (vst1_u64_x2): Likewise. + (vst1_f64_x2): Likewise. + (vst1_s8_x2): Likewise. + (vst1_p8_x2): Likewise. + (vst1_s16_x2): Likewise. + (vst1_p16_x2): Likewise. + (vst1_s32_x2): Likewise. + (vst1_u8_x2): Likewise. + (vst1_u16_x2): Likewise. + (vst1_u32_x2): Likewise. + (vst1_f16_x2): Likewise. + (vst1_f32_x2): Likewise. + (vst1_p64_x2): Likewise. + (vst1q_s8_x2): Likewise. + (vst1q_p8_x2): Likewise. + (vst1q_s16_x2): Likewise. + (vst1q_p16_x2): Likewise. + (vst1q_s32_x2): Likewise. + (vst1q_s64_x2): Likewise. + (vst1q_u8_x2): Likewise. + (vst1q_u16_x2): Likewise. + (vst1q_u32_x2): Likewise. + (vst1q_u64_x2): Likewise. + (vst1q_f16_x2): Likewise. + (vst1q_f32_x2): Likewise. + (vst1q_f64_x2): Likewise. + (vst1q_p64_x2): Likewise. + (vst1_s64_x3): Likewise. + (vst1_u64_x3): Likewise. + (vst1_f64_x3): Likewise. + (vst1_s8_x3): Likewise. + (vst1_p8_x3): Likewise. + (vst1_s16_x3): Likewise. + (vst1_p16_x3): Likewise. + (vst1_s32_x3): Likewise. + (vst1_u8_x3): Likewise. + (vst1_u16_x3): Likewise. + (vst1_u32_x3): Likewise. + (vst1_f16_x3): Likewise. + (vst1_f32_x3): Likewise. + (vst1_p64_x3): Likewise. + (vst1q_s8_x3): Likewise. + (vst1q_p8_x3): Likewise. + (vst1q_s16_x3): Likewise. + (vst1q_p16_x3): Likewise. + (vst1q_s32_x3): Likewise. + (vst1q_s64_x3): Likewise. + (vst1q_u8_x3): Likewise. + (vst1q_u16_x3): Likewise. + (vst1q_u32_x3): Likewise. + (vst1q_u64_x3): Likewise. + (vst1q_f16_x3): Likewise. + (vst1q_f32_x3): Likewise. + (vst1q_f64_x3): Likewise. + (vst1q_p64_x3): Likewise. + (vst1_s8_x4): Likewise. + (vst1q_s8_x4): Likewise. + (vst1_s16_x4): Likewise. + (vst1q_s16_x4): Likewise. + (vst1_s32_x4): Likewise. + (vst1q_s32_x4): Likewise. + (vst1_u8_x4): Likewise. + (vst1q_u8_x4): Likewise. + (vst1_u16_x4): Likewise. + (vst1q_u16_x4): Likewise. + (vst1_u32_x4): Likewise. + (vst1q_u32_x4): Likewise. + (vst1_f16_x4): Likewise. + (vst1q_f16_x4): Likewise. + (vst1_f32_x4): Likewise. + (vst1q_f32_x4): Likewise. + (vst1_p8_x4): Likewise. + (vst1q_p8_x4): Likewise. + (vst1_p16_x4): Likewise. + (vst1q_p16_x4): Likewise. + (vst1_s64_x4): Likewise. + (vst1_u64_x4): Likewise. + (vst1_p64_x4): Likewise. + (vst1q_s64_x4): Likewise. + (vst1q_u64_x4): Likewise. + (vst1q_p64_x4): Likewise. + (vst1_f64_x4): Likewise. + (vst1q_f64_x4): Likewise. + (vst2_s64): Likewise. + (vst2_u64): Likewise. + (vst2_f64): Likewise. + (vst2_s8): Likewise. + (vst2_p8): Likewise. + (vst2_s16): Likewise. + (vst2_p16): Likewise. + (vst2_s32): Likewise. + (vst2_u8): Likewise. + (vst2_u16): Likewise. + (vst2_u32): Likewise. + (vst2_f16): Likewise. + (vst2_f32): Likewise. + (vst2_p64): Likewise. + (vst2q_s8): Likewise. + (vst2q_p8): Likewise. + (vst2q_s16): Likewise. + (vst2q_p16): Likewise. + (vst2q_s32): Likewise. + (vst2q_s64): Likewise. + (vst2q_u8): Likewise. + (vst2q_u16): Likewise. + (vst2q_u32): Likewise. + (vst2q_u64): Likewise. + (vst2q_f16): Likewise. + (vst2q_f32): Likewise. + (vst2q_f64): Likewise. + (vst2q_p64): Likewise. + (vst3_s64): Likewise. + (vst3_u64): Likewise. + (vst3_f64): Likewise. + (vst3_s8): Likewise. + (vst3_p8): Likewise. + (vst3_s16): Likewise. + (vst3_p16): Likewise. + (vst3_s32): Likewise. + (vst3_u8): Likewise. + (vst3_u16): Likewise. + (vst3_u32): Likewise. + (vst3_f16): Likewise. + (vst3_f32): Likewise. + (vst3_p64): Likewise. + (vst3q_s8): Likewise. + (vst3q_p8): Likewise. + (vst3q_s16): Likewise. + (vst3q_p16): Likewise. + (vst3q_s32): Likewise. + (vst3q_s64): Likewise. + (vst3q_u8): Likewise. + (vst3q_u16): Likewise. + (vst3q_u32): Likewise. + (vst3q_u64): Likewise. + (vst3q_f16): Likewise. + (vst3q_f32): Likewise. + (vst3q_f64): Likewise. + (vst3q_p64): Likewise. + (vst4_s64): Likewise. + (vst4_u64): Likewise. + (vst4_f64): Likewise. + (vst4_s8): Likewise. + (vst4_p8): Likewise. + (vst4_s16): Likewise. + (vst4_p16): Likewise. + (vst4_s32): Likewise. + (vst4_u8): Likewise. + (vst4_u16): Likewise. + (vst4_u32): Likewise. + (vst4_f16): Likewise. + (vst4_f32): Likewise. + (vst4_p64): Likewise. + (vst4q_s8): Likewise. + (vst4q_p8): Likewise. + (vst4q_s16): Likewise. + (vst4q_p16): Likewise. + (vst4q_s32): Likewise. + (vst4q_s64): Likewise. + (vst4q_u8): Likewise. + (vst4q_u16): Likewise. + (vst4q_u32): Likewise. + (vst4q_u64): Likewise. + (vst4q_f16): Likewise. + (vst4q_f32): Likewise. + (vst4q_f64): Likewise. + (vst4q_p64): Likewise. + (vtbx4_s8): Likewise. + (vtbx4_u8): Likewise. + (vtbx4_p8): Likewise. + (vld1_bf16_x2): Likewise. + (vld1q_bf16_x2): Likewise. + (vld1_bf16_x3): Likewise. + (vld1q_bf16_x3): Likewise. + (vld1_bf16_x4): Likewise. + (vld1q_bf16_x4): Likewise. + (vld2_bf16): Likewise. + (vld2q_bf16): Likewise. + (vld2_dup_bf16): Likewise. + (vld2q_dup_bf16): Likewise. + (vld3_bf16): Likewise. + (vld3q_bf16): Likewise. + (vld3_dup_bf16): Likewise. + (vld3q_dup_bf16): Likewise. + (vld4_bf16): Likewise. + (vld4q_bf16): Likewise. + (vld4_dup_bf16): Likewise. + (vld4q_dup_bf16): Likewise. + (vst1_bf16_x2): Likewise. + (vst1q_bf16_x2): Likewise. + (vst1_bf16_x3): Likewise. + (vst1q_bf16_x3): Likewise. + (vst1_bf16_x4): Likewise. + (vst1q_bf16_x4): Likewise. + (vst2_bf16): Likewise. + (vst2q_bf16): Likewise. + (vst3_bf16): Likewise. + (vst3q_bf16): Likewise. + (vst4_bf16): Likewise. + (vst4q_bf16): Likewise. + (vld2_lane_bf16): Likewise. + (vld2q_lane_bf16): Likewise. + (vld3_lane_bf16): Likewise. + (vld3q_lane_bf16): Likewise. + (vld4_lane_bf16): Likewise. + (vld4q_lane_bf16): Likewise. + (vst2_lane_bf16): Likewise. + (vst2q_lane_bf16): Likewise. + (vst3_lane_bf16): Likewise. + (vst3q_lane_bf16): Likewise. + (vst4_lane_bf16): Likewise. + (vst4q_lane_bf16): Likewise. + * config/aarch64/geniterators.sh: Modify iterator regex to + match new vector-tuple modes. + * config/aarch64/iterators.md (insn_count): Extend mode + attribute with vector-tuple type information. + (nregs): Likewise. + (Vendreg): Likewise. + (Vetype): Likewise. + (Vtype): Likewise. + (VSTRUCT_2D): New mode iterator. + (VSTRUCT_2DNX): Likewise. + (VSTRUCT_2DX): Likewise. + (VSTRUCT_2Q): Likewise. + (VSTRUCT_2QD): Likewise. + (VSTRUCT_3D): Likewise. + (VSTRUCT_3DNX): Likewise. + (VSTRUCT_3DX): Likewise. + (VSTRUCT_3Q): Likewise. + (VSTRUCT_3QD): Likewise. + (VSTRUCT_4D): Likewise. + (VSTRUCT_4DNX): Likewise. + (VSTRUCT_4DX): Likewise. + (VSTRUCT_4Q): Likewise. + (VSTRUCT_4QD): Likewise. + (VSTRUCT_D): Likewise. + (VSTRUCT_Q): Likewise. + (VSTRUCT_QD): Likewise. + (VSTRUCT_ELT): New mode attribute. + (vstruct_elt): Likewise. + * genmodes.c (VECTOR_MODE): Add default prefix and order + parameters. + (VECTOR_MODE_WITH_PREFIX): Define. + (make_vector_mode): Add mode prefix and order parameters. + +2021-11-04 Jonathan Wright + + * expmed.c (extract_bit_field_1): Ensure modes are tieable. + +2021-11-04 Jonathan Wright + + * expr.c (emit_group_load_1): Remove historic workaround. + +2021-11-04 Jonathan Wright + + * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins): + Factor out main loop to... + (aarch64_init_simd_builtin_functions): This new function. + (register_tuple_type): Define. + (aarch64_scalar_builtin_type_p): Define. + (handle_arm_neon_h): Define. + * config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): Handle + pragma for arm_neon.h. + * config/aarch64/aarch64-protos.h (aarch64_advsimd_struct_mode_p): + Declare. + (handle_arm_neon_h): Likewise. + * config/aarch64/aarch64.c (aarch64_advsimd_struct_mode_p): + Remove static modifier. + * config/aarch64/arm_neon.h (target): Remove Neon vector + structure type definitions. + +2021-11-04 Aldy Hernandez + + PR tree-optimization/102943 + * gimple-range-path.cc (path_range_query::range_on_path_entry): + Prefer range_of_expr unless there are no statements in the BB. + +2021-11-04 Aldy Hernandez + + PR tree-optimization/102943 + * tree-ssa-threadbackward.c (back_threader::find_paths_to_names): + Avoid duplicate calculation of paths. + +2021-11-04 Aldy Hernandez + + PR tree-optimization/102943 + * gimple-range-path.cc (path_range_query::compute_phi_relations): + Only compute relations for SSA names in the import list. + (path_range_query::compute_outgoing_relations): Same. + * gimple-range-path.h (path_range_query::import_p): New. + +2021-11-04 Richard Biener + + PR rtl-optimization/103075 + * simplify-rtx.c (exact_int_to_float_conversion_p): Return + false for a VOIDmode operand. + +2021-11-04 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_vector_costs): Make member + variables private and add "m_" to their names. Remove is_loop. + (aarch64_record_potential_advsimd_unrolling): Replace with... + (aarch64_vector_costs::record_potential_advsimd_unrolling): ...this. + (aarch64_analyze_loop_vinfo): Replace with... + (aarch64_vector_costs::analyze_loop_vinfo): ...this. + Move initialization of (m_)vec_flags to add_stmt_cost. + (aarch64_analyze_bb_vinfo): Delete. + (aarch64_count_ops): Replace with... + (aarch64_vector_costs::count_ops): ...this. + (aarch64_vector_costs::add_stmt_cost): Set m_vec_flags, + using m_costing_for_scalar to test whether we're costing + scalar or vector code. + (aarch64_adjust_body_cost_sve): Replace with... + (aarch64_vector_costs::adjust_body_cost_sve): ...this. + (aarch64_adjust_body_cost): Replace with... + (aarch64_vector_costs::adjust_body_cost): ...this. + (aarch64_vector_costs::finish_cost): Use m_vinfo instead of is_loop. + +2021-11-04 Richard Sandiford + + * target.def (targetm.vectorize.init_cost): Replace with... + (targetm.vectorize.create_costs): ...this. + (targetm.vectorize.add_stmt_cost): Delete. + (targetm.vectorize.finish_cost): Likewise. + (targetm.vectorize.destroy_cost_data): Likewise. + * doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): Replace with... + (TARGET_VECTORIZE_CREATE_COSTS): ...this. + (TARGET_VECTORIZE_ADD_STMT_COST): Delete. + (TARGET_VECTORIZE_FINISH_COST): Likewise. + (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. + * doc/tm.texi: Regenerate. + * tree-vectorizer.h (vec_info::vec_info): Remove target_cost_data + parameter. + (vec_info::target_cost_data): Change from a void * to a vector_costs *. + (vector_costs): New class. + (init_cost): Take a vec_info and return a vector_costs. + (dump_stmt_cost): Remove data parameter. + (add_stmt_cost): Replace vinfo and data parameters with a vector_costs. + (add_stmt_costs): Likewise. + (finish_cost): Replace data parameter with a vector_costs. + (destroy_cost_data): Delete. + * tree-vectorizer.c (dump_stmt_cost): Remove data argument and + don't print it. + (vec_info::vec_info): Remove the target_cost_data parameter and + initialize the member variable to null instead. + (vec_info::~vec_info): Delete target_cost_data instead of calling + destroy_cost_data. + (vector_costs::add_stmt_cost): New function. + (vector_costs::finish_cost): Likewise. + (vector_costs::record_stmt_cost): Likewise. + (vector_costs::adjust_cost_for_freq): Likewise. + * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Update + call to vec_info::vec_info. + (vect_compute_single_scalar_iteration_cost): Update after above + changes to costing interface. + (vect_analyze_loop_operations): Likewise. + (vect_estimate_min_profitable_iters): Likewise. + (vect_analyze_loop_2): Initialize LOOP_VINFO_TARGET_COST_DATA + at the start_over point, where it needs to be recreated after + trying without slp. Update retry code accordingly. + * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Update call + to vec_info::vec_info. + (vect_slp_analyze_operation): Update after above changes to costing + interface. + (vect_bb_vectorization_profitable_p): Likewise. + * targhooks.h (default_init_cost): Replace with... + (default_vectorize_create_costs): ...this. + (default_add_stmt_cost): Delete. + (default_finish_cost, default_destroy_cost_data): Likewise. + * targhooks.c (default_init_cost): Replace with... + (default_vectorize_create_costs): ...this. + (default_add_stmt_cost): Delete, moving logic to vector_costs instead. + (default_finish_cost, default_destroy_cost_data): Delete. + * config/aarch64/aarch64.c (aarch64_vector_costs): Inherit from + vector_costs. Add a constructor. + (aarch64_init_cost): Replace with... + (aarch64_vectorize_create_costs): ...this. + (aarch64_add_stmt_cost): Replace with... + (aarch64_vector_costs::add_stmt_cost): ...this. Use record_stmt_cost + to adjust the cost for inner loops. + (aarch64_finish_cost): Replace with... + (aarch64_vector_costs::finish_cost): ...this. + (aarch64_destroy_cost_data): Delete. + (TARGET_VECTORIZE_INIT_COST): Replace with... + (TARGET_VECTORIZE_CREATE_COSTS): ...this. + (TARGET_VECTORIZE_ADD_STMT_COST): Delete. + (TARGET_VECTORIZE_FINISH_COST): Likewise. + (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. + * config/i386/i386.c (ix86_vector_costs): New structure. + (ix86_init_cost): Replace with... + (ix86_vectorize_create_costs): ...this. + (ix86_add_stmt_cost): Replace with... + (ix86_vector_costs::add_stmt_cost): ...this. Use adjust_cost_for_freq + to adjust the cost for inner loops. + (ix86_finish_cost, ix86_destroy_cost_data): Delete. + (TARGET_VECTORIZE_INIT_COST): Replace with... + (TARGET_VECTORIZE_CREATE_COSTS): ...this. + (TARGET_VECTORIZE_ADD_STMT_COST): Delete. + (TARGET_VECTORIZE_FINISH_COST): Likewise. + (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. + * config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): Replace with... + (TARGET_VECTORIZE_CREATE_COSTS): ...this. + (TARGET_VECTORIZE_ADD_STMT_COST): Delete. + (TARGET_VECTORIZE_FINISH_COST): Likewise. + (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. + (rs6000_cost_data): Inherit from vector_costs. + Add a constructor. Drop loop_info, cost and costing_for_scalar + in favor of the corresponding vector_costs member variables. + Add "m_" to the names of the remaining member variables and + initialize them. + (rs6000_density_test): Replace with... + (rs6000_cost_data::density_test): ...this. + (rs6000_init_cost): Replace with... + (rs6000_vectorize_create_costs): ...this. + (rs6000_update_target_cost_per_stmt): Replace with... + (rs6000_cost_data::update_target_cost_per_stmt): ...this. + (rs6000_add_stmt_cost): Replace with... + (rs6000_cost_data::add_stmt_cost): ...this. Use adjust_cost_for_freq + to adjust the cost for inner loops. + (rs6000_adjust_vect_cost_per_loop): Replace with... + (rs6000_cost_data::adjust_vect_cost_per_loop): ...this. + (rs6000_finish_cost): Replace with... + (rs6000_cost_data::finish_cost): ...this. Group loop code + into a single if statement and pass the loop_vinfo down to + subroutines. + (rs6000_destroy_cost_data): Delete. + +2021-11-04 Aldy Hernandez + + PR tree-optimization/103062 + PR tree-optimization/103062 + * value-pointer-equiv.cc (ssa_equiv_stack::ssa_equiv_stack): + Increase size of allocation by 1. + (ssa_equiv_stack::push_replacement): Grow as needed. + (ssa_equiv_stack::get_replacement): Same. + (pointer_equiv_analyzer::pointer_equiv_analyzer): Same. + (pointer_equiv_analyzer::~pointer_equiv_analyzer): Remove delete. + (pointer_equiv_analyzer::set_global_equiv): Grow as needed. + (pointer_equiv_analyzer::get_equiv): Same. + (pointer_equiv_analyzer::get_equiv_expr): Remove const. + * value-pointer-equiv.h (class pointer_equiv_analyzer): Remove + const markers. Use auto_vec instead of tree *. + +2021-11-04 Richard Biener + + * tree-ssa-sccvn.c (vn_nary_op_insert_into): Remove always + true parameter and inline valueization. + (vn_nary_op_lookup_1): Inline valueization from ... + (vn_nary_op_compute_hash): ... here and remove it here. + * tree-ssa-pre.c (phi_translate_1): Do not valueize + before vn_nary_lookup_pieces. + (get_representative_for): Mark created SSA representatives + as visited. + +2021-11-04 Richard Sandiford + + * simplify-rtx.c (simplify_context::simplify_gen_vec_select): Assert + that the operand has a vector mode. Use subreg_lowpart_offset + to test whether an index corresponds to the low part. + +2021-11-04 Richard Sandiford + + * read-rtl.c: Remove dead !GENERATOR_FILE block. + * read-rtl-function.c (function_reader::consolidate_singletons): + Generate canonical CONST_VECTORs. + +2021-11-04 liuhongt + + PR target/101989 + * config/i386/predicates.md (reg_or_notreg_operand): Rename to .. + (regmem_or_bitnot_regmem_operand): .. and extend to handle + memory_operand. + * config/i386/sse.md (*_vpternlog_1): Force_reg + the operands which are required to be register_operand. + (*_vpternlog_2): Ditto. + (*_vpternlog_3): Ditto. + (*_vternlog_all): Disallow embeded broadcast for + vector HFmodes since it's not a real AVX512FP16 instruction. + +2021-11-04 liuhongt + + PR target/102464 + * match.pd: simplify (trunc)copysign((extend)a, (extend)b) to + .COPYSIGN (a,b) when a and b are same type as the truncation + type and has less precision than extend type. + +2021-11-04 Richard Biener + + * doc/generic.texi: Update TARGET_MEM_REF and MEM_REF + documentation. + +2021-11-04 Hongyu Wang + + * config/i386/sse.md (VI2_AVX512VNNIBW): New mode iterator. + (VI1_AVX512VNNI): Likewise. + (SDOT_VPDP_SUF): New mode_attr. + (VI1SI): Likewise. + (vi1si): Likewise. + (sdot_prod): Use VI2_AVX512F iterator, expand to + vpdpwssd when VNNI targets available. + (usdot_prod): New expander for vector QImode. + +2021-11-04 Hongyu Wang + + * config/i386/amxtileintrin.h (_tile_loadd_internal): Add + parentheses to base and stride. + (_tile_stream_loadd_internal): Likewise. + (_tile_stored_internal): Likewise. + +2021-11-03 Maciej W. Rozycki + + * config/riscv/riscv.c (riscv_class_max_nregs): Swap the + arguments to `reg_class_subset_p'. + +2021-11-03 Joseph Myers + + PR c/103031 + * fold-const.c (fold_init): New function. + * fold-const.h (fold_init): New prototype. + +2021-11-03 Andrew MacLeod + + * params.opt (param_vrp2_mode): Make ranger the default for VRP2. + +2021-11-03 Andrew MacLeod + + * gimple-range-fold.cc (fold_using_range::range_of_phi): Don't import + a range from edge if arg == phidef. + +2021-11-03 Andrew MacLeod + + * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Test + for constant before any other processing. + +2021-11-03 Andrew MacLeod + + * flag-types.h (RANGER_DEBUG_ALL): Fix values. + +2021-11-03 Andrew MacLeod + + * gimple-range.cc (gimple_ranger::gimple_ranger): Initialize current_bb. + (gimple_ranger::range_of_expr): Pick up range_on_entry when there is + no explcit context and current_bb is set. + (gimple_ranger::fold_stmt): New. + * gimple-range.h (current_bb, fold_stmt): New. + * tree-vrp.c (rvrp_folder::fold_stmt): Call ranger's fold_stmt. + +2021-11-03 Richard Biener + + PR tree-optimization/102970 + * tree-ssa-pre.c (phi_translate_1): Drop clique and base + when translating a MEM_REF over a backedge. + +2021-11-03 Philipp Tomsich + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): New Ampere-1 core. + * config/aarch64/aarch64-tune.md: Regenerate. + * config/aarch64/aarch64-cost-tables.h: Add extra costs for Ampere-1. + * config/aarch64/aarch64.c: Add tuning structures for Ampere-1. + * doc/invoke.texi: Add documentation for Ampere-1 core. + +2021-11-03 Wilco Dijkstra + + * config/aarch64/aarch64.md (movsi): Add alternative for GOT accesses. + (movdi): Likewise. + (ldr_got_small_): Remove pattern. + (ldr_got_small_sidi): Likewise. + * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Keep + GOT accesses as moves. + (aarch64_print_operand): Correctly print got_lo12 in L specifier. + (aarch64_mov_operand_p): Make GOT accesses valid move operands. + * config/aarch64/constraints.md: Add new constraint Usw for GOT access. + +2021-11-03 Martin Liska + + * gcov.c (read_line): Remove dead variable. + +2021-11-03 Martin Liska + + PR bootstrap/102828 + * ipa-fnsummary.c (edge_predicate_pool): Rename predicate class to ipa_predicate. + (ipa_fn_summary::account_size_time): Likewise. + (edge_set_predicate): Likewise. + (set_hint_predicate): Likewise. + (add_freqcounting_predicate): Likewise. + (evaluate_conditions_for_known_args): Likewise. + (evaluate_properties_for_edge): Likewise. + (remap_freqcounting_preds_after_dup): Likewise. + (ipa_fn_summary_t::duplicate): Likewise. + (set_cond_stmt_execution_predicate): Likewise. + (set_switch_stmt_execution_predicate): Likewise. + (compute_bb_predicates): Likewise. + (will_be_nonconstant_expr_predicate): Likewise. + (will_be_nonconstant_predicate): Likewise. + (phi_result_unknown_predicate): Likewise. + (predicate_for_phi_result): Likewise. + (analyze_function_body): Likewise. + (compute_fn_summary): Likewise. + (summarize_calls_size_and_time): Likewise. + (estimate_calls_size_and_time): Likewise. + (ipa_call_context::estimate_size_and_time): Likewise. + (remap_edge_summaries): Likewise. + (remap_freqcounting_predicate): Likewise. + (ipa_merge_fn_summary_after_inlining): Likewise. + (ipa_update_overall_fn_summary): Likewise. + (read_ipa_call_summary): Likewise. + (inline_read_section): Likewise. + * ipa-fnsummary.h (struct ipa_freqcounting_predicate): Likewise. + * ipa-predicate.c (predicate::add_clause): Likewise. + (ipa_predicate::add_clause): Likewise. + (predicate::or_with): Likewise. + (ipa_predicate::or_with): Likewise. + (predicate::evaluate): Likewise. + (ipa_predicate::evaluate): Likewise. + (predicate::probability): Likewise. + (ipa_predicate::probability): Likewise. + (dump_condition): Likewise. + (dump_clause): Likewise. + (predicate::dump): Likewise. + (ipa_predicate::dump): Likewise. + (predicate::debug): Likewise. + (ipa_predicate::debug): Likewise. + (predicate::remap_after_duplication): Likewise. + (ipa_predicate::remap_after_duplication): Likewise. + (predicate::remap_after_inlining): Likewise. + (ipa_predicate::remap_after_inlining): Likewise. + (predicate::stream_in): Likewise. + (ipa_predicate::stream_in): Likewise. + (predicate::stream_out): Likewise. + (ipa_predicate::stream_out): Likewise. + (add_condition): Likewise. + * ipa-predicate.h (class predicate): Likewise. + (class ipa_predicate): Likewise. + (add_condition): Likewise. + +2021-11-03 Richard Biener + + * bitmap.h (bitmap_bit_p): Change the return type to bool. + * bitmap.c (bitmap_bit_p): Likewise. + * sbitmap.h (bitmap_bit_p): Likewise. + (bitmap_set_bit): Return whether the bit changed. + (bitmap_clear_bit): Likewise. + * tree-ssa.c (verify_vssa): Make use of the changed state + from bitmap_set_bit. + +2021-11-03 Richard Biener + + PR middle-end/103033 + * internal-fn.c (expand_DEFERRED_INIT): Elide the + native_interpret_expr path in favor of folding the + VIEW_CONVERT_EXPR generated when punning the RHS. + +2021-11-03 Stefan Schulze Frielinghaus + + * config/s390/s390.c (s390_loop_unroll_adjust): In case of early + exit free bbs. + +2021-11-03 Jan Hubicka + + PR ipa/103040 + * ipa-modref.c (callee_to_caller_flags): New function. + (modref_eaf_analysis::analyze_ssa_name): Use it. + (ipa_merge_modref_summary_after_inlining): Fix whitespace. + +2021-11-02 Jan Hubicka + + * ipa-modref.c (modref_eaf_analysis::analyze_ssa_name): Revert + accidental commit. + +2021-11-02 Roger Sayle + Uroš Bizjak + + * config/i386/i386.md (ti3): Provide expansion for + rotations by non-constant amounts. + +2021-11-02 Jan Hubicka + + * ipa-modref.c: Fix anonymous namespace placement. + (class modref_eaf_analysis): New class. + (analyze_ssa_name_flags): Turn to ... + (modref_eaf_analysis::analyze_ssa_name): ... this one. + (merge_call_lhs_flags): Turn to ... + (modref_eaf_analysis::merge_call_lhs_flags): .. this one + (modref_eaf_analysis::merge_with_ssa_name): New member function. + (record_escape_points): Turn to ... + (modref_eaf_analysis::record_escape_points): ... this one. + (analyze_parms): Updat + (ipa_merge_modref_summary_after_inlining): Move to the end of file. + +2021-11-02 Jan Hubicka + + * gimple.c (gimple_call_static_chain_flags): New function. + * gimple.h (gimple_call_static_chain_flags): Declare + * ipa-modref.c (modref_summary::modref_summary): Initialize + static_chain_flags. + (modref_summary_lto::modref_summary_lto): Likewise. + (modref_summary::useful_p): Test static_chain_flags. + (modref_summary_lto::useful_p): Likewise. + (struct modref_summary_lto): Add static_chain_flags. + (modref_summary::dump): Dump static_chain_flags. + (modref_summary_lto::dump): Likewise. + (struct escape_point): Add static_cahin_arg. + (analyze_ssa_name_flags): Use gimple_call_static_chain_flags. + (analyze_parms): Handle static chains. + (modref_summaries::duplicate): Duplicate static_chain_flags. + (modref_summaries_lto::duplicate): Likewise. + (modref_write): Stream static_chain_flags. + (read_section): Likewise. + (modref_merge_call_site_flags): Handle static_chain_flags. + * ipa-modref.h (struct modref_summary): Add static_chain_flags. + * tree-ssa-structalias.c (handle_rhs_call): Use + gimple_static_chain_flags. + +2021-11-02 Richard Biener + + PR tree-optimization/103029 + * tree-vect-loop-manip.c (vect_loop_versioning): Ensure + the PHI nodes in the loop maintain their original operand + order. + +2021-11-02 Jan Hubicka + + * tree-core.h (EAF_NOT_RETURNED_DIRECTLY): New flag. + (EAF_NOREAD): Renumber. + * ipa-modref.c (dump_eaf_flags): Dump EAF_NOT_RETURNED_DIRECTLY. + (remove_useless_eaf_flags): Handle EAF_NOT_RETURNED_DIRECTLY + (deref_flags): Likewise. + (modref_lattice::init): Likewise. + (modref_lattice::merge): Likewise. + (merge_call_lhs_flags): Likewise. + (analyze_ssa_name_flags): Likewise. + (modref_merge_call_site_flags): Likewise. + * tree-ssa-structalias.c (handle_call_arg): Likewise. + +2021-11-02 Maciej W. Rozycki + + * config/riscv/riscv.c (riscv_rtx_costs): Correct a CONST_INT_P + check and remove an unused local variable with shNadd/shNadd.uw + pattern handling. + +2021-11-02 Tamar Christina + + PR tree-optimization/103007 + * tree-vect-slp-patterns.c (complex_fms_pattern::matches): Add elem + check. + +2021-11-02 Richard Biener + + PR middle-end/103038 + * fold-const.c (native_interpret_expr): Handle OFFSET_TYPE. + (can_native_interpret_type_p): Likewise. + * internal-fn.c (expand_DEFERRED_INIT): View-convert the + RHS if the LHS is an SSA name. + +2021-11-02 Richard Sandiford + + * langhooks.h (lang_hooks_for_types::simulate_record_decl): New hook. + * langhooks-def.h (lhd_simulate_record_decl): Declare. + (LANG_HOOKS_SIMULATE_RECORD_DECL): Define. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Include it. + * langhooks.c (lhd_simulate_record_decl): New function. + +2021-11-02 Jakub Jelinek + + PR target/103020 + * config/i386/i386.c (ix86_vector_mode_supported_p): Reject vector + modes with TImode inner mode if 32-bit. + +2021-11-02 liuhongt + + * doc/sourcebuild.texi (vect_slp_v4qi_store_unalign, + vect_slp_v2hi_store_unalign, vect_slp_v4hi_store_unalign, + vect_slp_v4si_store_unalign): Document efficient target. + (vect_slp_v4qi_store_unalign_1, vect_slp_v8qi_store_unalign_1, + vect_slp_v16qi_store_unalign_1): Ditto. + (vect_slp_v2hi_store_align,vect_slp_v2qi_store_align, + vect_slp_v2si_store_align, vect_slp_v4qi_store_align): Ditto. + (struct_4char_block_move, struct_8char_block_move, + struct_16char_block_move): Ditto. + +2021-11-02 Roger Sayle + Jakub Jelinek + + PR target/102986 + * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti, + ix86_expand_ti_to_v1ti): New helper functions. + (ix86_expand_v1ti_shift): Check if the amount operand is an + integer constant, and expand as a TImode shift if it isn't. + (ix86_expand_v1ti_rotate): Check if the amount operand is an + integer constant, and expand as a TImode rotate if it isn't. + (ix86_expand_v1ti_ashiftrt): New function to expand arithmetic + right shifts of V1TImode quantities. + * config/i386/i386-protos.h (ix86_expand_v1ti_ashift): Prototype. + * config/i386/sse.md (ashlv1ti3, lshrv1ti3): Change constraints + to QImode general_operand, and let the helper functions lower + shifts by non-constant operands, as TImode shifts. Make + conditional on TARGET_64BIT. + (ashrv1ti3): New expander calling ix86_expand_v1ti_ashiftrt. + (rotlv1ti3, rotrv1ti3): Change shift operand to QImode. + Make conditional on TARGET_64BIT. + +2021-11-02 Stefan Schulze Frielinghaus + + * config/s390/s390.md ("*cc_to_int", "tabort", "*tabort_1", + "*tabort_1_plus"): Remove operands non-null check. + +2021-11-01 Martin Liska + + * opt-functions.awk: Add new sanity checking. + * optc-gen.awk: Add new argument to integer_range_info. + * params.opt: Update 2 params which have negative IntegerRange. + +2021-11-01 qing zhao + + * gimplify.c (gimplify_decl_expr): Do not add call to + __builtin_clear_padding when a variable is a gimple register + or it might not have padding. + (gimplify_init_constructor): Likewise. + +2021-11-01 Tamar Christina + + * config/arm/aarch-common-protos.h (struct vector_cost_table): Add + movi, dup and extract costing fields. + * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs, + thunderx_extra_costs, thunderx2t99_extra_costs, + thunderx3t110_extra_costs, tsv110_extra_costs, a64fx_extra_costs): Use + them. + * config/arm/aarch-cost-tables.h (generic_extra_costs, + cortexa53_extra_costs, cortexa57_extra_costs, cortexa76_extra_costs, + exynosm1_extra_costs, xgene1_extra_costs): Likewise + * config/aarch64/aarch64-simd.md (aarch64_simd_dup): Add r->w dup. + * config/aarch64/aarch64.c (aarch64_rtx_costs): Add extra costs. + +2021-11-01 Tamar Christina + + * cse.c (add_to_set): New. + (find_sets_in_insn): Register constants in sets. + (canonicalize_insn): Use auto_vec instead. + (cse_insn): Try materializing using vec_dup. + * rtl.h (simplify_context::simplify_gen_vec_select, + simplify_gen_vec_select): New. + * simplify-rtx.c (simplify_context::simplify_gen_vec_select): New. + +2021-11-01 David Malcolm + + * common.opt (fdiagnostics-escape-format=): New. + (diagnostics_escape_format): New enum. + (DIAGNOSTICS_ESCAPE_FORMAT_UNICODE): New enum value. + (DIAGNOSTICS_ESCAPE_FORMAT_BYTES): Likewise. + * diagnostic-format-json.cc (json_end_diagnostic): Add + "escape-source" attribute. + * diagnostic-show-locus.c + (exploc_with_display_col::exploc_with_display_col): Replace + "tabstop" param with a cpp_char_column_policy and add an "aspect" + param. Use these to compute m_display_col accordingly. + (struct char_display_policy): New struct. + (layout::m_policy): New field. + (layout::m_escape_on_output): New field. + (def_policy): New function. + (make_range): Update for changes to exploc_with_display_col ctor. + (default_print_decoded_ch): New. + (width_per_escaped_byte): New. + (escape_as_bytes_width): New. + (escape_as_bytes_print): New. + (escape_as_unicode_width): New. + (escape_as_unicode_print): New. + (make_policy): New. + (layout::layout): Initialize new fields. Update m_exploc ctor + call for above change to ctor. + (layout::maybe_add_location_range): Update for changes to + exploc_with_display_col ctor. + (layout::calculate_x_offset_display): Update for change to + cpp_display_width. + (layout::print_source_line): Pass policy + to cpp_display_width_computation. Capture cpp_decoded_char when + calling process_next_codepoint. Move printing of source code to + m_policy.m_print_cb. + (line_label::line_label): Pass in policy rather than context. + (layout::print_any_labels): Update for change to line_label ctor. + (get_affected_range): Pass in policy rather than context, updating + calls to location_compute_display_column accordingly. + (get_printed_columns): Likewise, also for cpp_display_width. + (correction::correction): Pass in policy rather than tabstop. + (correction::compute_display_cols): Pass m_policy rather than + m_tabstop to cpp_display_width. + (correction::m_tabstop): Replace with... + (correction::m_policy): ...this. + (line_corrections::line_corrections): Pass in policy rather than + context. + (line_corrections::m_context): Replace with... + (line_corrections::m_policy): ...this. + (line_corrections::add_hint): Update to use m_policy rather than + m_context. + (line_corrections::add_hint): Likewise. + (layout::print_trailing_fixits): Likewise. + (selftest::test_display_widths): New. + (selftest::test_layout_x_offset_display_utf8): Update to use + policy rather than tabstop. + (selftest::test_one_liner_labels_utf8): Add test of escaping + source lines. + (selftest::test_diagnostic_show_locus_one_liner_utf8): Update to + use policy rather than tabstop. + (selftest::test_overlapped_fixit_printing): Likewise. + (selftest::test_overlapped_fixit_printing_utf8): Likewise. + (selftest::test_overlapped_fixit_printing_2): Likewise. + (selftest::test_tab_expansion): Likewise. + (selftest::test_escaping_bytes_1): New. + (selftest::test_escaping_bytes_2): New. + (selftest::diagnostic_show_locus_c_tests): Call the new tests. + * diagnostic.c (diagnostic_initialize): Initialize + context->escape_format. + (convert_column_unit): Update to use default character width policy. + (selftest::test_diagnostic_get_location_text): Likewise. + * diagnostic.h (enum diagnostics_escape_format): New enum. + (diagnostic_context::escape_format): New field. + * doc/invoke.texi (-fdiagnostics-escape-format=): New option. + (-fdiagnostics-format=): Add "escape-source" attribute to examples + of JSON output, and document it. + * input.c (location_compute_display_column): Pass in "policy" + rather than "tabstop", passing to + cpp_byte_column_to_display_column. + (selftest::test_cpp_utf8): Update to use cpp_char_column_policy. + * input.h (class cpp_char_column_policy): New forward decl. + (location_compute_display_column): Pass in "policy" rather than + "tabstop". + * opts.c (common_handle_option): Handle + OPT_fdiagnostics_escape_format_. + * selftest.c (temp_source_file::temp_source_file): New ctor + overload taking a size_t. + * selftest.h (temp_source_file::temp_source_file): Likewise. + +2021-11-01 Aldy Hernandez + + * dbgcnt.def: Add debug counter for back_thread[12] and + back_threadfull[12]. + * passes.def: Pass "first" argument to each back threading pass. + * tree-ssa-threadbackward.c (back_threader::back_threader): Add + first argument. + (back_threader::debug_counter): New. + (back_threader::maybe_register_path): Call debug_counter. + +2021-11-01 Aldy Hernandez + + * tree-ssa-threadbackward.c (BT_NONE): New. + (BT_SPEED): New. + (BT_RESOLVE): New. + (back_threader::back_threader): Add flags. + Move loop initialization here. + (back_threader::~back_threader): New. + (back_threader::find_taken_edge_switch): Change solver and ranger + to pointers. + (back_threader::find_taken_edge_cond): Same. + (back_threader::find_paths_to_names): Same. + (back_threader::find_paths): Same. + (back_threader::dump): Same. + (try_thread_blocks): Merge into thread_blocks. + (back_threader::thread_blocks): New. + (do_early_thread_jumps): Merge into thread_blocks. + (do_thread_jumps): Merge into thread_blocks. + (back_threader::thread_through_all_blocks): Remove. + +2021-11-01 Andrew MacLeod + + PR tree-optimization/103003 + * value-relation.cc (dom_oracle::register_relation): If the 2 + ssa names are the same, don't register any relation. + +2021-11-01 Dan Li + + * config/aarch64/aarch64.c (aarch64_expand_epilogue): Remove + redundant check for calls_eh_return. + * config/aarch64/aarch64.md (*do_return): Likewise. + +2021-11-01 Xionghu Luo + + * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Rename + duplicate_loop_to_header_edge to + duplicate_loop_body_to_header_edge. + (cfg_hook_duplicate_loop_body_to_header_edge): Likewise. + * cfghooks.h (struct cfg_hooks): Likewise. + (cfg_hook_duplicate_loop_body_to_header_edge): Likewise. + * cfgloopmanip.c (duplicate_loop_body_to_header_edge): Likewise. + (clone_loop_to_header_edge): Likewise. + * cfgloopmanip.h (duplicate_loop_body_to_header_edge): Likewise. + * cfgrtl.c (struct cfg_hooks): Likewise. + * doc/loop.texi: Likewise. + * loop-unroll.c (unroll_loop_constant_iterations): Likewise. + (unroll_loop_runtime_iterations): Likewise. + (unroll_loop_stupid): Likewise. + (apply_opt_in_copies): Likewise. + * tree-cfg.c (struct cfg_hooks): Likewise. + * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. + (try_peel_loop): Likewise. + * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise. + (gimple_duplicate_loop_body_to_header_edge): Likewise. + (tree_transform_and_unroll_loop): Likewise. + * tree-ssa-loop-manip.h (gimple_duplicate_loop_body_to_header_edge): + Likewise. + +2021-11-01 Xionghu Luo + + * cfgloopmanip.c (loop_version): Refactor loopify to + loop_version. Move condition generation after loopify. + (loopify): Delete. + * cfgloopmanip.h (loopify): Delete. + +2021-10-31 Jan Hubicka + + * ipa-fnsummary.c: Include tree-dfa.h. + (points_to_local_or_readonly_memory_p): Return true on return + slot writes. + * ipa-modref.c (analyze_ssa_name_flags): Fix handling of copy + statement. + +2021-10-30 Tobias Burnus + + PR middle-end/102972 + * omp-low.c (omp_runtime_api_call): Use DECL_ASSEMBLER_NAME to get + internal Fortran name; new permit_num_teams arg to permit + omp_get_num_teams and omp_get_team_num. + (scan_omp_1_stmt): Update call to it, add missing call for + reverse offload, and check for strictly nested API calls in teams. + +2021-10-30 Jakub Jelinek + + * gimplify.c (gimplify_omp_for): Diagnose threadprivate iterators. + +2021-10-29 David Malcolm + + * selftest.c (assert_streq): Add newlines when emitting non-equal + non-NULL strings. + +2021-10-29 David Malcolm + + * Makefile.in: Fix syntax for reference to LIBDEPS in + gengtype link rule. + +2021-10-29 Bernhard Reutner-Fischer + + * doc/install.texi: Bump required minimum DejaGnu version. + +2021-10-29 Aldy Hernandez + Andrew MacLeod + + * value-relation.cc (path_oracle::killing_def): Add a + self-equivalence so we don't look to the root oracle. + +2021-10-29 Aldy Hernandez + + * passes.def: Replace the pass_thread_jumps before VRP* with + pass_thread_jumps_full. Remove all pass_vrp_threader instances. + * tree-ssa-threadbackward.c (pass_data_thread_jumps_full): + Remove hyphen from "thread-full" name. + +2021-10-29 Andrew MacLeod + + PR tree-optimization/102983 + * gimple-range-cache.h (propagate_updated_value): Make public. + * gimple-range.cc (gimple_ranger::range_of_stmt): Propagate exports + when processing gcond stmts. + +2021-10-29 Jan Hubicka + + * gimple.c (gimple_call_retslot_flags): New function. + * gimple.h (gimple_call_retslot_flags): Declare. + * ipa-modref.c: Include tree-cfg.h. + (struct escape_entry): Turn parm_index to signed. + (modref_summary_lto::modref_summary_lto): Add retslot_flags. + (modref_summary::modref_summary): Initialize retslot_flags. + (struct modref_summary_lto): Likewise. + (modref_summary::useful_p): Check retslot_flags. + (modref_summary_lto::useful_p): Likewise. + (modref_summary::dump): Dump retslot_flags. + (modref_summary_lto::dump): Likewise. + (struct escape_point): Add hidden_args enum. + (analyze_ssa_name_flags): Ignore return slot return; + use gimple_call_retslot_flags. + (record_escape_points): Break out from ... + (analyze_parms): ... here; handle retslot_flags. + (modref_summaries::duplicate): Duplicate retslot_flags. + (modref_summaries_lto::duplicate): Likewise. + (modref_write_escape_summary): Stream parm_index as signed. + (modref_read_escape_summary): Likewise. + (modref_write): Stream retslot_flags. + (read_section): Likewise. + (struct escape_map): Fix typo in comment. + (update_escape_summary_1): Fix whitespace. + (ipa_merge_modref_summary_after_inlining): Drop retslot_flags. + (modref_merge_call_site_flags): Merge retslot_flags. + * ipa-modref.h (struct modref_summary): Add retslot_flags. + * tree-ssa-structalias.c (handle_rhs_call): Handle retslot_flags. + +2021-10-29 Tamar Christina + + PR tree-optimization/102977 + * tree-vect-slp-patterns.c (vect_match_call_p): Remove. + (vect_detect_pair_op): Add crosslane check. + (vect_match_call_complex_mla): Remove. + (class complex_mul_pattern): Update comment. + (complex_mul_pattern::matches): Update detection. + (class complex_fma_pattern): Remove. + (complex_fma_pattern::matches): Remove. + (complex_fma_pattern::recognize): Remove. + (complex_fma_pattern::build): Remove. + (class complex_fms_pattern): Update comment. + (complex_fms_pattern::matches): Remove. + (complex_operations_pattern::recognize): Remove complex_fma_pattern + +2021-10-29 Jakub Jelinek + + * gimple-fold.c (gimple_fold_builtin_memset): Copy over location from + call to store. + +2021-10-29 Xionghu Luo + + PR target/102868 + * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Add + patterns match and emit for VSX xxpermdi. + +2021-10-29 liuhongt + + PR target/102464 + * config/i386/i386-builtin-types.def (V8HF_FTYPE_V8HF): New + function type. + (V16HF_FTYPE_V16HF): Ditto. + (V32HF_FTYPE_V32HF): Ditto. + (V8HF_FTYPE_V8HF_ROUND): Ditto. + (V16HF_FTYPE_V16HF_ROUND): Ditto. + (V32HF_FTYPE_V32HF_ROUND): Ditto. + * config/i386/i386-builtin.def ( IX86_BUILTIN_FLOORPH, + IX86_BUILTIN_CEILPH, IX86_BUILTIN_TRUNCPH, + IX86_BUILTIN_FLOORPH256, IX86_BUILTIN_CEILPH256, + IX86_BUILTIN_TRUNCPH256, IX86_BUILTIN_FLOORPH512, + IX86_BUILTIN_CEILPH512, IX86_BUILTIN_TRUNCPH512): New builtin. + * config/i386/i386-builtins.c + (ix86_builtin_vectorized_function): Enable vectorization for + HFmode FLOOR/CEIL/TRUNC operation. + * config/i386/i386-expand.c (ix86_expand_args_builtin): Handle + new builtins. + * config/i386/sse.md (rint2, nearbyint2): Extend + to vector HFmodes. + +2021-10-28 Aldy Hernandez + Andrew MacLeod + + * value-relation.cc (path_oracle::killing_def): Walk the + equivalency list and remove SSA from any equivalencies. + +2021-10-28 Stafford Horne + + * config/or1k/or1k.h (PROFILE_HOOK): Add return address argument + to _mcount. + +2021-10-28 Jakub Jelinek + + PR tree-optimization/102951 + * fold-const.h (address_compare): Declare. + * fold-const.c (address_compare): New function. + * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Use + address_compare helper. + (minmax cmp (convert1?@2 addr@0) (convert2?@3 addr@1)): New + simplification. + +2021-10-28 Andrew MacLeod + + * vr-values.c (simplify_using_ranges::fold_cond): Change fold message. + +2021-10-28 Andrew MacLeod + + PR tree-optimization/102940 + * tree-vrp.c (execute_ranger_vrp): Reset scev. + +2021-10-28 Richard Purdie + + * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add musl linker + +2021-10-28 Richard Purdie + + * configure: Regenerate. + * configure.ac: Use CPPFLAGS_FOR_BUILD for GMPINC + +2021-10-28 Eric Botcazou + + * doc/invoke.texi (%X): Remove obsolete reference to -Wl. + +2021-10-28 Richard Biener + + PR middle-end/84407 + * fold-const.c (fold_convert_const): Avoid int to float + constant folding with -frounding-math and inexact result. + * simplify-rtx.c (simplify_const_unary_operation): Likewise + for both float and unsigned_float. + +2021-10-28 Aldy Hernandez + + * tree-ssa-threadbackward.c + (back_threader::find_taken_edge_switch): Use find_case_label_range + instead of find_taken_edge. + +2021-10-28 Aldy Hernandez + + * tree-ssa-threadbackward.c (class back_threader_registry): + Inherit from back_jt_path_registry. + (back_threader_registry::thread_through_all_blocks): Remove. + (back_threader_registry::register_path): Remove + m_lowlevel_registry prefix. + +2021-10-28 Richard Biener + + PR middle-end/57245 + * fold-const.c (fold_convert_const_real_from_real): Honor + -frounding-math if the conversion is not exact. + * simplify-rtx.c (simplify_const_unary_operation): Do not + simplify FLOAT_TRUNCATE with sign dependent rounding. + +2021-10-28 Richard Biener + + PR tree-optimization/102949 + * tree-vect-stmts.c (ensure_base_align): Look at the + dr_info of a group leader and assert we are looking at + one with analyzed alignment. + +2021-10-28 Kewen Lin + + PR target/102767 + * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Consider + V1T1 mode for unaligned load and store. + +2021-10-28 Kito Cheng + + * config/riscv/riscv.md (zero_extendsidi2_internal): Allow ZBB + use this pattern. + +2021-10-28 Kito Cheng + + * config/riscv/arch-canonicalize (CANONICAL_ORDER): Add `i` to + CANONICAL_ORDER. + +2021-10-28 Alexandre Oliva + + * common.opt (fharden-compares): New. + (fharden-conditional-branches): New. + * doc/invoke.texi: Document new options. + * gimple-harden-conditionals.cc: New. + * Makefile.in (OBJS): Build it. + * passes.def: Add new passes. + * tree-pass.h (make_pass_harden_compares): Declare. + (make_pass_harden_conditional_branches): Declare. + +2021-10-28 Xionghu Luo + + PR target/94613 + * config/rs6000/altivec.md: Add vsx register constraints. + * config/rs6000/vsx.md (vsx_xxsel): Delete. + (vsx_xxsel2): Likewise. + (vsx_xxsel3): Likewise. + (vsx_xxsel4): Likewise. + +2021-10-28 Xionghu Luo + + PR target/94613 + * config/rs6000/altivec.md (*altivec_vsel): Change to ... + (altivec_vsel): ... this and update define. + (*altivec_vsel_uns): Delete. + (altivec_vsel2): New define_insn. + (altivec_vsel3): Likewise. + (altivec_vsel4): Likewise. + * config/rs6000/rs6000-call.c (altivec_expand_vec_sel_builtin): New. + (altivec_expand_builtin): Call altivec_expand_vec_sel_builtin to expand + vel_sel. + * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use bit-wise + selection instead of per element. + * config/rs6000/vector.md: + * config/rs6000/vsx.md (*vsx_xxsel): Change to ... + (vsx_xxsel): ... this and update define. + (*vsx_xxsel_uns): Delete. + (vsx_xxsel2): New define_insn. + (vsx_xxsel3): Likewise. + (vsx_xxsel4): Likewise. + +2021-10-28 Hongyu Wang + + * config/i386/i386.c (use_rsqrt_p): Add mode parameter, enable + HFmode rsqrt without TARGET_SSE_MATH. + (ix86_optab_supported_p): Refactor rint, adjust floor, ceil, + btrunc condition to be restricted by -ftrapping-math, adjust + use_rsqrt_p function call. + * config/i386/i386.md (rcphf2): New define_insn. + (rsqrthf2): Likewise. + * config/i386/sse.md (div3): Change VF2H to VF2. + (div3): New expander for HF mode. + (rsqrt2): Likewise. + (*avx512fp16_vmrcpv8hf2): New define_insn for rpad pass. + (*avx512fp16_vmrsqrtv8hf2): Likewise. + +2021-10-27 Saagar Jha + + * config.gcc: Adjust for Darwin21. + * config/darwin-c.c (macosx_version_as_macro): Likewise. + * config/darwin-driver.c (validate_macosx_version_min): + Likewise. + (darwin_find_version_from_kernel): Likewise. + +2021-10-27 Aldy Hernandez + + * gimple-range-path.cc + (path_range_query::range_defined_in_block): Call killing_def. + +2021-10-27 Aldy Hernandez + + * gimple-range-fold.cc (fold_using_range::range_of_range_op): Dump + operands as well as relation. + * gimple-range-path.cc + (path_range_query::compute_ranges_in_block): Compute PHI relations + first. Compute outgoing relations at the end. + (path_range_query::compute_ranges): Remove call to compute_relations. + (path_range_query::compute_relations): Remove. + (path_range_query::maybe_register_phi_relation): New. + (path_range_query::compute_phi_relations): Abstract out + registering one PHI relation to... + (path_range_query::compute_outgoing_relations): ...here. + * gimple-range-path.h (class path_range_query): Remove + compute_relations. + Add maybe_register_phi_relation. + +2021-10-27 Aldy Hernandez + Andrew MacLeod + + * value-relation.cc (path_oracle::killing_def): Kill second + order relations. + +2021-10-27 Martin Jambor + + * ipa-cp.c (good_cloning_opportunity_p): Decide whether to use + profile feedback depending on their local availability. + +2021-10-27 Martin Jambor + + * params.opt (param_ipa_cp_profile_count_base): New parameter. + * doc/invoke.texi (Optimize Options): Add entry for + ipa-cp-profile-count-base. + * ipa-cp.c (max_count): Replace with base_count, replace all + occurrences too, unless otherwise stated. + (ipcp_cloning_candidate_p): identify mostly-directly called + functions based on their counts, not max_count. + (compare_edge_profile_counts): New function. + (ipcp_propagate_stage): Instead of setting max_count, find the + appropriate edge count in a sorted vector of counts of eligible + edges and make it the base_count. + +2021-10-27 Martin Jambor + + * ipa-cp.c (struct caller_statistics): New fields rec_count_sum, + n_nonrec_calls and itself, document all fields. + (init_caller_stats): Initialize the above new fields. + (gather_caller_stats): Gather self-recursive counts and calls number. + (get_info_about_necessary_edges): Gather counts of self-recursive and + other edges bringing in the requested value separately. + (dump_profile_updates): Rework to dump info about a single node only. + (lenient_count_portion_handling): New function. + (struct gather_other_count_struct): New type. + (gather_count_of_non_rec_edges): New function. + (struct desc_incoming_count_struct): New type. + (analyze_clone_icoming_counts): New function. + (adjust_clone_incoming_counts): Likewise. + (update_counts_for_self_gen_clones): Likewise. + (update_profiling_info): Rewritten. + (update_specialized_profile): Adjust call to dump_profile_updates. + (create_specialized_node): Do not update profiling info. + (decide_about_value): New parameter self_gen_clones, either push new + clones into it or updat their profile counts. For self-recursively + generated values, use a portion of the node count instead of count + from self-recursive edges to estimate goodness. + (decide_whether_version_node): Gather clones for self-generated values + in a new vector, update their profiles at once at the end. + +2021-10-27 Richard Biener + + * tree-vectorizer.c (vect_transform_loops): New function, + split out from ... + (try_vectorize_loop_1): ... here. Simplify as epilogues + are now fully handled in the split part. + +2021-10-27 Jakub Jelinek + + * omp-expand.c (expand_omp_for_init_counts): Handle non-rectangular + iterators with pointer types. + (expand_omp_for_init_vars, extract_omp_for_update_vars): Likewise. + +2021-10-26 Martin Sebor + + PR tree-optimization/102238 + PR tree-optimization/102919 + * gimple-ssa-sprintf.c (get_string_length): Add an argument. + (array_elt_at_offset): Move to pointer-query. + (set_aggregate_size_and_offset): New function. + (field_at_offset): Move to pointer-query. + (get_origin_and_offset): Rename... + (get_origin_and_offset_r): this. Add an argument. Make aggregate + handling more robust. + (get_origin_and_offset): New. + (alias_offset): Add an argument. + (format_string): Use subobject size determined by get_origin_and_offset. + * pointer-query.cc (field_at_offset): Move from gimple-ssa-sprintf.c. + Improve/correct handling of aggregates. + (array_elt_at_offset): Same. + * pointer-query.h (field_at_offset): Declare. + (array_elt_at_offset): Declare. + +2021-10-26 Martin Sebor + + * builtins.c (check_strncat_sizes): Pass access_data ctor additional + arguments. + (expand_builtin_memcmp): Move code to gimple-ssa-warn-access.cc. + (expand_builtin_fork_or_exec): Same. + * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Pass + compute_objsize additional arguments. + (inbounds_memaccess_p): Same. + (array_bounds_checker::check_array_bounds): Add an assert. Stash + statement in a member. + (check_array_bounds_dom_walker::before_dom_children): Same. + * gimple-array-bounds.h (array_bounds_checker::m_stmt): New member. + * gimple-ssa-sprintf.c (get_destination_size): Add an argument. + (handle_printf_call): Pass a new argument. + * gimple-ssa-warn-access.cc (get_size_range): Add an argument. + (check_access): Add an argument and pass it along to callees. + (check_read_access): Make a member function. + (pass_waccess::check_strcat): Pass access_data ctor additional + arguments. + (pass_waccess::check_strncat): Same. + (pass_waccess::check_stxcpy): Same. + (pass_waccess::check_stxncpy): Same. + (pass_waccess::check_strncmp): Same. + (pass_waccess::check_read_access): Same. + (pass_waccess::check_builtin): Same. + (pass_waccess::maybe_check_access_sizes): Same. + (pass_waccess::maybe_check_dealloc_call): Same. + * gimple-ssa-warn-access.h (check_read_access): Declare a new + member function. + * pointer-query.cc (compute_objsize_r): Add an argument. + (gimple_call_return_array): Same. + (gimple_call_alloc_size): Same. + (access_ref::access_ref): Same. + (access_ref::get_ref): Same. + (pointer_query::get_ref): Same. + (handle_min_max_size): Pass an arguments to callees. + (handle_array_ref): Add an argument. + (handle_mem_ref): Same. + (compute_objsize): Same. + * pointer-query.h (struct access_ref): Adjust signatures. + (struct access_data): Same. + (gimple_call_alloc_size): Add an argument. + (gimple_parm_array_size): Same. + (compute_objsize): Same. + * tree-ssa-strlen.c (strlen_pass::adjust_last_stmt): Pass an additional + argument to compute_objsize. + (strlen_pass::maybe_warn_overflow): Same. + (maybe_diag_stxncpy_trunc): Same. + +2021-10-26 Martin Sebor + + PR middle-end/102453 + * gimple-ssa-warn-access.cc (pass_waccess::check_atomic_builtin): New. + (pass_waccess::check_atomic_builtin): Call it. + +2021-10-26 Vladimir N. Makarov + + PR rtl-optimization/102842 + * lra-constraints.c (match_reload): Ignore out in checking values + of outs. + (curr_insn_transform): Collect outputs before doing reloads of operands. + +2021-10-26 Paul A. Clarke + + PR target/102719 + * config/rs6000/x86intrin.h: Move some included headers to new + headers. Include new immintrin.h instead of those headers. + * config/rs6000/immintrin.h: New. + * config/rs6000/x86gprintrin.h: New. + * config.gcc (powerpc*-*-*): Add new headers to extra_headers. + +2021-10-26 Richard Biener + + * tree-vectorizer.h (vect_create_addr_base_for_vector_ref): + Remove byte_offset parameter. + (vect_create_data_ref_ptr): Likewise. + * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): + Likewise. + (vect_create_data_ref_ptr): Likewise. + * tree-vect-stmts.c (vectorizable_store): Adjust. + (vectorizable_load): Likewise. + +2021-10-26 Richard Biener + + PR tree-optimization/96109 + * tree-vectorizer.h (dr_misalignment): Add optional offset + parameter. + * tree-vect-data-refs.c (dr_misalignment): Likewise. Remove + offset applied for negative stride accesses. + (vect_enhance_data_refs_alignment): Compute negative stride + access offset and pass it to dr_misalignment. + * tree-vect-stmts.c (get_negative_load_store_type): Pass + negative offset to dr_misalignment. + (get_group_load_store_type): Likewise. + (get_load_store_type): Likewise. + (vectorizable_store): Remove asserts about alignment. + (vectorizable_load): Likewise. + +2021-10-26 Kewen Lin + + PR tree-optimization/102897 + * tree-ssa-forwprop.c (simplify_permutation): Remove a wrong assertion. + +2021-10-26 Richard Biener + + * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): + Take offset in bytes. + (vect_create_data_ref_ptr): Likewise. + * tree-vect-loop-manip.c (get_misalign_in_elems): Multiply + offset by element size. + (vect_create_cond_for_align_checks): Likewise. + * tree-vect-stmts.c (get_negative_load_store_type): Likewise. + (vectorizable_load): Remove duplicate leftover from merge + conflict. + +2021-10-26 Roger Sayle + + * config/i386/i386-expand.c (ix86_expand_v1ti_shift): New helper + function to expand V1TI mode logical shifts by integer constants. + (ix86_expand_v1ti_rotate): New helper function to expand V1TI + mode rotations by integer constants. + * config/i386/i386-protos.h (ix86_expand_v1ti_shift, + ix86_expand_v1ti_rotate): Prototype new functions here. + * config/i386/sse.md (ashlv1ti3, lshrv1ti3, rotlv1ti3, rotrv1ti3): + New TARGET_SSE2 expanders to implement V1TI shifts and rotations. + +2021-10-26 Aldy Hernandez + + * tree-ssa-threadbackward.c (back_threader::maybe_register_path): + Avoid threading circular paths. + +2021-10-26 Aldy Hernandez + + * tree-ssa-threadbackward.c (back_threader::resolve_phi): + Attempt to resolve all incoming paths to a PHI. + (back_threader::resolve_def): Always return true for PHIs. + +2021-10-26 Aldy Hernandez + + * tree-ssa-threadbackward.c (back_threader::find_paths_to_names): + Always try to resolve path without looking back. + * tree-ssa-threadupdate.c (dump_jump_thread): Indidicate whether + edge is a back edge. + +2021-10-26 Kewen Lin + + PR tree-optimization/102789 + * tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not + update inits of simd_lane_access. + +2021-10-25 Andrew MacLeod + + * tree-vrp.c (vrp_simplify_cond_using_ranges): Add return type and + move to vr-values.c. + (simplify_casted_conds): Move to vrp_folder class. + (execute_vrp): Call via vrp_folder now. + * vr-values.c (simplify_cond_using_ranges_1): Call simplify_casted_cond. + (simplify_using_ranges::simplify_casted_cond): Relocate from tree-vrp.c. + * vr-values.h (simplify_casted_cond): Add prototype. + +2021-10-25 Andrew MacLeod + + * tree-vrp.c (rvrp_folder::fold_stmt): If simplification fails, try + to fold anyway. + +2021-10-25 Paul A. Clarke + + * config/rs6000/smmintrin.h (_mm_testz_si128): Add "extern" to + function signature. + (_mm_testc_si128): Likewise. + (_mm_testnzc_si128): Likewise. + (_mm_blend_ps): Likewise. + (_mm_blendv_ps): Likewise. + (_mm_blend_pd): Likewise. + (_mm_blendv_pd): Likewise. + (_mm_ceil_pd): Likewise. + (_mm_ceil_sd): Likewise. + (_mm_ceil_ps): Likewise. + (_mm_ceil_ss): Likewise. + (_mm_floor_pd): Likewise. + (_mm_floor_sd): Likewise. + (_mm_floor_ps): Likewise. + (_mm_floor_ss): Likewise. + (_mm_minpos_epu16): Likewise. + (_mm_mul_epi32): Likewise. + (_mm_cvtepi8_epi16): Likewise. + (_mm_packus_epi32): Likewise. + (_mm_cmpgt_epi64): Likewise. + +2021-10-25 Roger Sayle + + * simplify-rtx.c (simplify_binary_operation_1) [SS_ASHIFT]: Simplify + shifts of the mode's smin_value and smax_value when the bit count + operand doesn't have side-effects. + [US_ASHIFT]: Likewise, simplify shifts of the mode's umax_value + when the bit count operand doesn't have side-effects. + (simplify_const_binary_operation) [SS_ASHIFT, US_ASHIFT]: Perform + compile-time evaluation of saturating left shifts with constant + arguments. + +2021-10-25 Andrew MacLeod + + * gimple-range.cc (gimple_ranger::export_global_ranges): Remove check + for TDF_DETAILS. + +2021-10-25 Andrew MacLeod + + * flag-types.h (enum ranger_debug): Adjust values. + * params.opt (ranger_debug): Ditto. + +2021-10-25 Martin Jambor + + PR tree-optimization/102886 + * tree-sra.c (totally_scalarize_subtree): Fix the out of + access-condition. + +2021-10-25 Andrew Pinski + + * tree-ssa-dce.c (simple_dce_from_worklist): + Check stmt_unremovable_because_of_non_call_eh_p also + before removing the statement. + +2021-10-25 Richard Biener + + PR tree-optimization/102905 + * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): + Use vect_supportable_dr_alignment again to determine whether + an access is supported when not aligned. + +2021-10-25 Kito Cheng + + * config/riscv/riscv.c (riscv_rtx_costs): Handle cost model + for zbs extension. + +2021-10-25 Jim Wilson + Kito Cheng + Jia-Wei Chen + Shi-Hua Liao + + * config/riscv/bitmanip.md (shiftm1): New. + (*bset): Ditto. + (*bset_mask): Ditto. + (*bset_1): Ditto. + (*bset_1_mask): Ditto. + (*bseti): Ditto. + (*bclr): Ditto. + (*bclri): Ditto. + (*binv): Ditto. + (*binvi): Ditto. + (*bext): Ditto. + (*bexti): Ditto. + * config/riscv/predicates.md (splittable_const_int_operand): + Handle bseti. + (single_bit_mask_operand): New. + (not_single_bit_mask_operand): Ditto. + (const31_operand): Ditto. + (const63_operand): Ditto. + * config/riscv/riscv.c (riscv_build_integer_1): Handle bseti. + (riscv_output_move): Ditto. + (riscv_print_operand): Handle new operand type: T and S. + * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): New. + +2021-10-25 Jim Wilson + + * config/riscv/riscv.c (riscv_build_integer_1): Build integer + with rotate. + +2021-10-25 Kito Cheng + + * config/riscv/riscv.c (riscv_extend_cost): Handle cost model + for zbb extension. + (riscv_rtx_costs): Ditto. + +2021-10-25 Jim Wilson + Kito Cheng + Jia-Wei Chen + + * config/riscv/bitmanip.md (bitmanip_bitwise): New. + (bitmanip_minmax): New. + (clz_ctz_pcnt): New. + (bitmanip_optab): New. + (bitmanip_insn): New. + (*_not): New. + (*xor_not): New. + (si2): New. + (*disi2): New. + (di2): New. + (*zero_extendhi2_bitmanip): New. + (*extend2_zbb): New. + (*zero_extendhi2_zbb): New. + (rotrsi3): New. + (rotrdi3): New. + (rotrsi3_sext): New. + (rotlsi3): New. + (rotldi3): New. + (rotlsi3_sext): New. + (bswap2): New. + (3): New. + * config/riscv/riscv.md (type): Add rotate. + (zero_extendhi2): Change to define_expand pattern. + (*zero_extendhi2): New. + (extend2): Change to define_expand pattern. + (*extend2): New. + +2021-10-25 Kito Cheng + + * config/riscv/riscv.c (riscv_extend_cost): Handle cost model + for zba extension. + (riscv_rtx_costs): Ditto. + +2021-10-25 Jim Wilson + Kito Cheng + Jia-Wei Chen + + * config/riscv/bitmanip.md (*zero_extendsidi2_bitmanip): New. + (*shNadd): Ditto. + (*shNadduw): Ditto. + (*add.uw): Ditto. + (*slliuw): Ditto. + (riscv_rtx_costs): Ditto. + * config/riscv/riscv.md: Include bitmanip.md + (type): Add bitmanip bype. + (zero_extendsidi2): Change to define_expand pattern. + (*zero_extendsidi2_internal): New. + (zero_extendsidi2_shifted): Disable for ZBA. + +2021-10-25 Kito Cheng + + * common/config/riscv/riscv-common.c (riscv_ext_version_table): + Add zba, zbb, zbc and zbs. + (riscv_ext_flag_table): Ditto. + * config/riscv/riscv-opts.h (MASK_ZBA): New. + (MASK_ZBB): Ditto. + (MASK_ZBC): Ditto. + (MASK_ZBS): Ditto. + (TARGET_ZBA): Ditto. + (TARGET_ZBB): Ditto. + (TARGET_ZBC): Ditto. + (TARGET_ZBS): Ditto. + * config/riscv/riscv.opt (riscv_zb_subext): New. + +2021-10-25 liuhongt + + PR target/102464 + * match.pd: Simplify (_Float16) sqrtf((float) a) to .SQRT(a) + when direct_internal_fn_supported_p, similar for sqrt/sqrtl. + +2021-10-25 Richard Biener + + PR tree-optimization/102920 + * tree-ssa-sccvn.h (expressions_equal_p): Add argument + controlling VN_TOP matching behavior. + * tree-ssa-sccvn.c (expressions_equal_p): Likewise. + (vn_phi_eq): Do not optimistically match VN_TOP. + +2021-10-25 konglin1 + + * config/i386/sse.md (fma__fadd_fmul): Add new + define_insn_and_split. + (fma__fadd_fcmul):Likewise + (fma___fma_zero):Likewise + +2021-10-24 John David Anglin + + * config/pa/pa-d.c (pa_d_handle_target_float_abi): Don't check + TARGET_DISABLE_FPREGS. + * config/pa/pa.c (fix_range): Use MASK_SOFT_FLOAT instead of + MASK_DISABLE_FPREGS. + (hppa_rtx_costs): Don't check TARGET_DISABLE_FPREGS. Adjust + cost of hardware integer multiplication. + (pa_conditional_register_usage): Don't check TARGET_DISABLE_FPREGS. + * config/pa/pa.h (INT14_OK_STRICT): Likewise. + * config/pa/pa.md: Don't check TARGET_DISABLE_FPREGS. Check + TARGET_SOFT_FLOAT in patterns that use xmpyu instruction. + * config/pa/pa.opt (mdisable-fpregs): Change target mask to + SOFT_FLOAT. Revise comment. + (msoft-float): New option. + +2021-10-24 John David Anglin + + * config/pa/pa.md: Don't use 'G' constraint in integer move patterns. + +2021-10-24 Gerald Pfeifer + + * doc/install.texi (Specific): Remove obsolete details + around GNU/Linux on Itanium. + (Specific): Remove reference to Windows for Itanium. + +2021-10-23 Bernhard Reutner-Fischer + + * config/i386/x86-tune-sched-bd.c (dispatch_group): Commentary + typo fix. + +2021-10-23 Jan Hubicka + + * tree-ssa-structalias.c (compute_points_to_sets): Cleanup. + +2021-10-23 Roger Sayle + + * config/i386/sse.md (v1ti3): New define_insn to + implement V1TImode AND, IOR and XOR on TARGET_SSE2 (and above). + (one_cmplv1ti2): New define expand. + +2021-10-22 Eric Gallager + + PR other/102663 + * Makefile.in: Handle dvidir and install-dvi target. + * configure: Regenerate. + * configure.ac: Add install-dvi to target_list. + +2021-10-22 Gerald Pfeifer + + * doc/install.texi (Binaries): Convert mingw-w64.org to https. + (Specific): Ditto. + +2021-10-22 Richard Biener + + PR tree-optimization/102893 + * tree-ssa-dce.c (find_obviously_necessary_stmts): Fix the + test for an exit edge. + +2021-10-22 Aldy Hernandez + Andrew MacLeod + + * gimple-range-path.cc (path_range_query::compute_phi_relations): + Kill any global relations we may know before registering a new + one. + * value-relation.cc (path_oracle::killing_def): New. + * value-relation.h (path_oracle::killing_def): New. + +2021-10-22 Richard Biener + + PR bootstrap/102681 + * tree-ssa-sccvn.c (vn_phi_insert): For undefined SSA args + record VN_TOP. + (vn_phi_lookup): Likewise. + +2021-10-21 H.J. Lu + + PR target/98667 + * doc/invoke.texi: Document -fcf-protection requires i686 or + new. + +2021-10-21 Eric Botcazou + + PR middle-end/102764 + * cfgexpand.c (expand_gimple_basic_block): Robustify latest change. + +2021-10-21 Jonathan Wright + + * config/aarch64/arm_neon.h (__STRUCTN): Delete function + macro and all invocations. + +2021-10-21 Andrew MacLeod + + * doc/invoke.texi (ranger-debug): Document. + * flag-types.h (enum ranger_debug): New. + (enum evrp_mode): Remove debug values. + * gimple-range-cache.cc (DEBUG_RANGE_CACHE): Use new debug flag. + * gimple-range-gori.cc (gori_compute::gori_compute): Ditto. + * gimple-range.cc (gimple_ranger::gimple_ranger): Ditto. + * gimple-ssa-evrp.c (hybrid_folder::choose_value): Ditto. + (execute_early_vrp): Use evrp-mode directly. + * params.opt (enum evrp_mode): Remove debug values. + (ranger-debug): New. + (ranger-logical-depth): Relocate to be in alphabetical order. + +2021-10-21 Andrew MacLeod + + * doc/invoke.texi: (vrp1-mode, vrp2-mode): Document. + * flag-types.h: (enum vrp_mode): New. + * params.opt: (vrp1-mode, vrp2-mode): New. + * tree-vrp.c (vrp_pass_num): New. + (pass_vrp::pass_vrp): Set pass number. + (pass_vrp::execute): Choose which VRP mode to execute. + +2021-10-21 Andrew MacLeod + + * gimple-ssa-evrp.c (class rvrp_folder): Move to tree-vrp.c. + (execute_early_vrp): For ranger only mode, invoke ranger_vrp. + * tree-vrp.c (class rvrp_folder): Relocate here. + (execute_ranger_vrp): New. + * tree-vrp.h (execute_ranger_vrp): Export. + +2021-10-21 Martin Liska + + PR debug/102585 + PR bootstrap/102766 + * opts.c (finish_options): Process flag_var_tracking* options + here as they can be adjusted by optimize attribute. + Process also flag_syntax_only and flag_gtoggle. + * toplev.c (process_options): Remove it here. + * common.opt: Make debug_nonbind_markers_p as PerFunction + attribute as it depends on optimization level. + +2021-10-21 Martin Jambor + + PR tree-optimization/102505 + * tree-sra.c (totally_scalarize_subtree): Check that the + encountered field fits within the acces we would like to put it + in. + +2021-10-21 Aldy Hernandez + + * tree-ssa-threadbackward.c + (back_threader::maybe_register_path): Remove circular paths check. + +2021-10-21 Richard Biener + + * toplev.c (process_options): Move the initial debug_hooks + setting ... + (toplev::main): ... before the call of the post_options + langhook. + +2021-10-21 Richard Biener + + PR tree-optimization/102847 + * tree-vect-stmts.c (vect_model_load_cost): Add the scalar + load cost in the prologue for VMAT_INVARIANT. + +2021-10-21 Richard Biener + + PR tree-optimization/102847 + * tree-vect-stmts.c (vect_model_load_cost): Explicitely + handle VMAT_INVARIANT as a splat in the prologue. + +2021-10-21 Hongyu Wang + + PR target/102812 + * config/i386/i386.c (ix86_get_ssemov): Adjust HFmode vector + move to use the same logic as HImode. + +2021-10-21 Richard Biener + + * tree-vect-slp.c (vect_build_slp_tree_1): Remove + superfluous gimple_call_nothrow_p check. + +2021-10-21 Andrew Pinski + + * tree-cfg.c (maybe_remove_writeonly_store): Add dce_ssa_names argument. + Mark the ssa-name of the rhs as one to be removed. + (execute_fixup_cfg): Update call to maybe_remove_writeonly_store. + Call simple_dce_from_worklist at the end to a simple dce. + +2021-10-21 Andrew Pinski + + * tree-cfg.c (maybe_remove_writeonly_store): New function + factored out from ... + (execute_fixup_cfg): Here. Call maybe_remove_writeonly_store. + +2021-10-21 Andrew Pinski + + * tree-cfg.c (execute_fixup_cfg): Remove comment + about standalone pass. + +2021-10-21 Andrew Pinski + + * tree-cfg.c (execute_fixup_cfg): Output when the statement + is removed when it is a write only var. + +2021-10-21 Aldy Hernandez + + * tree-ssa-threadbackward.c (back_threader::maybe_register_path): + Avoid threading circular paths. + +2021-10-20 Alex Coplan + + * calls.c (initialize_argument_information): Remove some dead + code, remove handling for function_arg returning const_int. + * doc/tm.texi: Delete documentation for unused target hooks. + * doc/tm.texi.in: Likewise. + * target.def (load_bounds_for_arg): Delete. + (store_bounds_for_arg): Delete. + (load_returned_bounds): Delete. + (store_returned_bounds): Delete. + * targhooks.c (default_load_bounds_for_arg): Delete. + (default_store_bounds_for_arg): Delete. + (default_load_returned_bounds): Delete. + (default_store_returned_bounds): Delete. + * targhooks.h (default_load_bounds_for_arg): Delete. + (default_store_bounds_for_arg): Delete. + (default_load_returned_bounds): Delete. + (default_store_returned_bounds): Delete. + +2021-10-20 Jonathan Wakely + + * doc/extend.texi (Basic Asm): Clarify that asm is not an + extension in C++. + * doc/invoke.texi (-fno-asm): Fix description for C++. + +2021-10-20 Jonathan Wakely + + * doc/install.texi: Remove link to old.html + +2021-10-20 Tamar Christina + + * config/aarch64/aarch64-simd.md (*aarch64_cmtst_same_): New. + +2021-10-20 Tamar Christina + + * config/aarch64/aarch64-simd.md (*aarch64_narrow_trunc): New. + +2021-10-20 Tamar Christina + + * config/aarch64/aarch64-simd.md (aarch64_simd_ashr): Add case cmp + case. + * config/aarch64/constraints.md (D1): New. + +2021-10-20 Tamar Christina + + * config/aarch64/aarch64-simd.md + (*aarch64_topbits_shuffle_le): New. + (*aarch64_topbits_shuffle_le): New. + (*aarch64_topbits_shuffle_be): New. + (*aarch64_topbits_shuffle_be): New. + * config/aarch64/predicates.md + (aarch64_simd_shift_imm_vec_exact_top): New. + +2021-10-20 Tamar Christina + + * config/aarch64/aarch64-simd.md (*aarch64_shrn_vect, + *aarch64_shrn2_vect_le, + *aarch64_shrn2_vect_be): New. + * config/aarch64/iterators.md (srn_op): New. + +2021-10-20 Chung-Lin Tang + + * omp-low.c (omp_copy_decl_2): For !ctx, use record_vars to add new copy + as local variable. + (scan_sharing_clauses): Place copy of OMP_CLAUSE_IN_REDUCTION decl in + ctx->outer instead of ctx. + +2021-10-20 Martin Liska + + Revert: + 2021-10-19 Martin Liska + + PR target/102374 + * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): Strip whitespaces. + * system.h (strip_whilespaces): New function. + +2021-10-20 Martin Liska + + Revert: + 2021-10-19 Martin Liska + + PR target/102375 + * config/aarch64/aarch64.c (aarch64_process_one_target_attr): + Strip whitespaces. + +2021-10-20 Wilco Dijkstra + + * config/aarch64/aarch64.c (aarch64_case_values_threshold): + Change to 8 with -Os, 11 otherwise. + +2021-10-20 Wilco Dijkstra + + * config/aarch64/aarch64.c (neoversev1_tunings): + Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND. + (neoversen2_tunings): Likewise. + +2021-10-20 Wilco Dijkstra + + PR target/100966 + * config/aarch64/aarch64.md (frint_pattern): Update comment. + * config/aarch64/aarch64-simd-builtins.def: Change frintn to roundeven. + * config/aarch64/arm_fp16.h: Change frintn to roundeven. + * config/aarch64/arm_neon.h: Likewise. + * config/aarch64/iterators.md (frint_pattern): Use roundeven for FRINTN. + +2021-10-20 Martin Liska + + * config/arm/arm.c (arm_unwind_emit_sequence): Do not declare + already declared global variable. + (arm_unwind_emit_set): Use out_file as function argument. + (arm_unwind_emit): Likewise. + * config/darwin.c (machopic_output_data_section_indirection): Likewise. + (machopic_output_stub_indirection): Likewise. + (machopic_output_indirection): Likewise. + (machopic_finish): Likewise. + * config/i386/i386.c (ix86_asm_output_function_label): Likewise. + * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise. + * config/ia64/ia64.c (process_epilogue): Likewise. + (process_cfa_adjust_cfa): Likewise. + (process_cfa_register): Likewise. + (process_cfa_offset): Likewise. + (ia64_asm_unwind_emit): Likewise. + * config/s390/s390.c (s390_asm_output_function_label): Likewise. + +2021-10-20 Andre Simoes Dias Vieira + + * config/aarch64/aarch64-builtins.c + (aarch64_general_gimple_fold_builtin): + lower vld1 and vst1 variants of the neon builtins + * config/aarch64/aarch64-protos.h: + (aarch64_general_gimple_fold_builtin): Add gsi parameter. + * config/aarch64/aarch64.c (aarch64_general_gimple_fold_builtin): + Likwise. + +2021-10-20 Andre Simoes Dias Vieira + + * match.pd: Generate IFN_TRUNC. + +2021-10-20 Richard Biener + + PR tree-optimization/102853 + * tree-data-ref.c (split_constant_offset_1): Bail out + immediately if the expression traps on overflow. + +2021-10-20 Aldy Hernandez + + * tree-ssa-threadbackward.c (back_threader::~back_threader): Remove. + +2021-10-20 Aldy Hernandez + + * tree-ssa-threadupdate.c (back_jt_path_registry::adjust_paths_after_duplication): + Remove superflous debugging message. + (back_jt_path_registry::duplicate_thread_path): Same. + +2021-10-20 Aldy Hernandez + + * tree-ssa-threadbackward.c (back_threader_registry::back_threader_registry): + Remove. + (back_threader_registry::register_path): Remove m_threaded_paths. + +2021-10-20 Aldy Hernandez + + PR tree-optimization/102814 + * doc/invoke.texi: Document --param=max-fsm-thread-length. + * params.opt: Add --param=max-fsm-thread-length. + * tree-ssa-threadbackward.c + (back_threader_profitability::profitable_path_p): Fail on paths + longer than max-fsm-thread-length. + +2021-10-20 Eric Botcazou + + PR middle-end/102764 + * cfgexpand.c (expand_gimple_basic_block): Disregard a final debug + statement to reset the current location for the outgoing edges. + +2021-10-20 Aldy Hernandez + Richard Biener + + * tree-ssa-threadupdate.c (cancel_thread): Dump threading reason + on the same line as the threading cancellation. + (jt_path_registry::cancel_invalid_paths): Avoid rotating loops. + Avoid threading through loop headers where the path remains in the + loop. + +2021-10-20 Siddhesh Poyarekar + + * tree-object-size.c (unknown): Make into a function. Adjust + all uses. + (unknown_object_size): Simplify implementation. + +2021-10-20 Hongtao Liu + Kewen Lin + + * doc/sourcebuild.texi (Effective-Target Keywords): Document + vect_slp_v2qi_store, vect_slp_v4qi_store, vect_slp_v8qi_store, + vect_slp_v16qi_store, vect_slp_v2hi_store, + vect_slp_v4hi_store, vect_slp_v2si_store, vect_slp_v4si_store. + +2021-10-19 Jonathan Wakely + + * doc/extend.texi (Basic PowerPC Built-in Functions): Fix typo. + +2021-10-19 Paul A. Clarke + + PR target/101893 + PR target/102719 + * config/rs6000/emmintrin.h: Guard POWER8 intrinsics. + * config/rs6000/pmmintrin.h: Same. + * config/rs6000/smmintrin.h: Same. + * config/rs6000/tmmintrin.h: Same. + +2021-10-19 Paul A. Clarke + + * config.gcc (extra_headers): Add nmmintrin.h. + +2021-10-19 Richard Biener + + * tree-vectorizer.h (vect_supportable_dr_alignment): Add + misalignment parameter. + * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): + Do not change DR_MISALIGNMENT in place, instead pass the + adjusted misalignment to vect_supportable_dr_alignment. + (vect_peeling_supportable): Likewise. + (vect_peeling_hash_get_lowest_cost): Adjust. + (vect_enhance_data_refs_alignment): Likewise. + (vect_vfa_access_size): Likewise. + (vect_supportable_dr_alignment): Add misalignment + parameter and simplify. + * tree-vect-stmts.c (get_negative_load_store_type): Adjust. + (get_group_load_store_type): Likewise. + (get_load_store_type): Likewise. + +2021-10-19 Clément Chigot + + * config/rs6000/rs6000.c (rs6000_xcoff_file_end): Move + __tls_get_addr reference to .text csect. + +2021-10-19 Martin Liska + + PR target/102375 + * config/aarch64/aarch64.c (aarch64_process_one_target_attr): + Strip whitespaces. + +2021-10-19 Richard Biener + + * tree-vectorizer.h (vect_get_store_cost): Adjust signature. + (vect_get_load_cost): Likewise. + * tree-vect-data-refs.c (vect_get_data_access_cost): Get + alignment support scheme and misalignment as arguments + and pass them down. + (vect_get_peeling_costs_all_drs): Compute that info here + and note that we shouldn't need to. + * tree-vect-stmts.c (vect_model_store_cost): Get + alignment support scheme and misalignment as arguments. + (vect_get_store_cost): Likewise. + (vect_model_load_cost): Likewise. + (vect_get_load_cost): Likewise. + (vectorizable_store): Pass down alignment support scheme + and misalignment to costing. + (vectorizable_load): Likewise. + +2021-10-19 Richard Biener + + * tree-vect-stmts.c (get_negative_load_store_type): Add + offset output parameter and initialize it. + (get_group_load_store_type): Likewise. + (get_load_store_type): Likewise. + (vectorizable_store): Use offset as computed by + get_load_store_type. + (vectorizable_load): Likewise. + +2021-10-19 Richard Biener + + PR tree-optimization/102827 + * tree-if-conv.c (predicate_statements): Add pe parameter + and use that edge to insert invariant stmts on. + (combine_blocks): Pass through pe. + (tree_if_conversion): Compute the edge to insert invariant + stmts on and pass it along. + +2021-10-19 Roger Sayle + + PR target/102785 + * config/bfin/bfin.md (addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, + sssubaddv2hi3): Swap the order of operators in vec_concat. + +2021-10-19 Xionghu Luo + + * config/rs6000/altivec.md (*altivec_vmrghb_internal): Delete. + (altivec_vmrghb_direct): New. + (*altivec_vmrghh_internal): Delete. + (altivec_vmrghh_direct): New. + (*altivec_vmrghw_internal): Delete. + (altivec_vmrghw_direct_): New. + (altivec_vmrghw_direct): Delete. + (*altivec_vmrglb_internal): Delete. + (altivec_vmrglb_direct): New. + (*altivec_vmrglh_internal): Delete. + (altivec_vmrglh_direct): New. + (*altivec_vmrglw_internal): Delete. + (altivec_vmrglw_direct_): New. + (altivec_vmrglw_direct): Delete. + * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Adjust. + * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): + Adjust. + * config/rs6000/vsx.md (vsx_xxmrghw_): Adjust. + (vsx_xxmrglw_): Adjust. + +2021-10-19 Aldy Hernandez + + * passes.def: Change threading comment before pass_ccp pass. + +2021-10-19 Haochen Gui + + * config/rs6000/rs6000-call.c (altivec_expand_lxvr_builtin): + Modify the expansion for sign extension. All extensions are done + within VSX registers. + +2021-10-19 Richard Biener + + * tree-vect-stmts.c (get_group_load_store_type): Add + misalignment output parameter and initialize it. + (get_group_load_store_type): Likewise. + (vectorizable_store): Remove now redundant queries. + (vectorizable_load): Likewise. + +2021-10-19 Richard Biener + + * tree-vectorizer.h (vect_supportable_dr_alignment): Remove + check_aligned argument. + * tree-vect-data-refs.c (vect_supportable_dr_alignment): + Likewise. + (vect_peeling_hash_insert): Add supportable_if_not_aligned + argument and do not call vect_supportable_dr_alignment here. + (vect_peeling_supportable): Adjust. + (vect_enhance_data_refs_alignment): Compute whether the + access is supported with different alignment here and + pass that down to vect_peeling_hash_insert. + (vect_vfa_access_size): Adjust. + * tree-vect-stmts.c (vect_get_store_cost): Likewise. + (vect_get_load_cost): Likewise. + (get_negative_load_store_type): Likewise. + (get_group_load_store_type): Likewise. + (get_load_store_type): Likewise. + +2021-10-19 Martin Liska + + PR target/102374 + * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): Strip whitespaces. + * system.h (strip_whilespaces): New function. + +2021-10-19 dianhong xu + + * config/i386/avx512fp16intrin.h: + (_mm512_set1_pch): New intrinsic. + * config/i386/avx512fp16vlintrin.h: + (_mm256_set1_pch): New intrinsic. + (_mm_set1_pch): Ditto. + +2021-10-18 Andrew MacLeod + + PR tree-optimization/102796 + * gimple-range.cc (gimple_ranger::range_on_edge): Process EH edges + normally. Return get_tree_range for non gimple_range_ssa_p names. + (gimple_ranger::range_of_stmt): Use get_tree_range for non + gimple_range_ssa_p names. + +2021-10-18 Uroš Bizjak + + PR target/102761 + * config/i386/i386.c (ix86_print_operand_address): + Error out for non-address_operand asm operands. + +2021-10-18 Richard Biener + + * tree-vect-data-refs.c (vect_peeling_hash_insert): Do + not auto-convert dr_alignment_support to bool. + (vect_peeling_supportable): Likewise. + (vect_enhance_data_refs_alignment): Likewise. + (vect_supportable_dr_alignment): Commonize read/write case. + * tree-vect-stmts.c (vect_get_store_cost): Use + dr_alignment_support, not int, for the vect_supportable_dr_alignment + result. + (vect_get_load_cost): Likewise. + +2021-10-18 Siddhesh Poyarekar + + * tree-object-size.c (object_sizes_execute): Consolidate LHS + null check and do it early. + +2021-10-18 Richard Biener + + * tree-vect-stmts.c (vectorizable_store): Use the + computed alignment scheme instead of querying + aligned_access_p. + +2021-10-18 Richard Biener + + * tree-vect-stmts.c (vectorizable_store): Do not recompute + alignment scheme already determined by get_load_store_type. + +2021-10-18 Aldy Hernandez + + * tree-ssa-threadbackward.c (class pass_thread_jumps_full): + Clone corresponding pass. + +2021-10-18 Roger Sayle + + * combine.c (recog_for_combine): For an unrecognized move/set of + a constant, try force_const_mem to place it in the constant pool. + * cse.c (constant_pool_entries_cost, constant_pool_entries_regcost): + Delete global variables (that are no longer assigned a cost value). + (cse_insn): Simplify logic for deciding whether to place a folded + constant in the constant pool using force_const_mem. + (cse_main): Remove zero initialization of constant_pool_entries_cost + and constant_pool_entries_regcost. + * config/i386/i386.c (ix86_rtx_costs): Make memory accesses + fractionally more expensive, when optimizing for speed. + +2021-10-18 Martin Liska + + PR gcov-profile/102746 + PR gcov-profile/102747 + * gcov.c (main): Return return_code. + (output_gcov_file): Mark return_code when error happens. + (generate_results): Likewise. + (read_graph_file): Likewise. + (read_count_file): Likewise. + +2021-10-18 Roger Sayle + + * config/bfin/bfin.md (define_constants): Remove UNSPEC_ONES. + (define_insn "ones"): Replace UNSPEC_ONES with a truncate of + a popcount, allowing compile-time evaluation/simplification. + (popcountsi2, popcounthi2): New expanders using a "ones" insn. + +2021-10-18 Richard Biener + + PR tree-optimization/102788 + * tree-vect-patterns.c (vect_init_pattern_stmt): Allow + a NULL vectype. + (vect_pattern_recog_1): Likewise. + (vect_recog_bool_pattern): Continue matching the pattern + even if we do not have a vector type for a conversion + result. + +2021-10-18 Roger Sayle + + * simplify-rtx.c (simplify_const_unary_operation) [SS_NEG, SS_ABS]: + Evalute SS_NEG and SS_ABS of a constant argument. + +2021-10-18 prathamesh.kulkarni + + PR target/93183 + * gimple-match-head.c (try_conditional_simplification): Add case for single operand. + * internal-fn.def: Add entry for COND_NEG internal function. + * internal-fn.c (FOR_EACH_CODE_MAPPING): Add entry for + NEGATE_EXPR, COND_NEG mapping. + * optabs.def: Add entry for cond_neg_optab. + * match.pd (UNCOND_UNARY, COND_UNARY): New operator lists. + (vec_cond COND (foo A) B) -> (IFN_COND_FOO COND A B): New pattern. + (vec_cond COND B (foo A)) -> (IFN_COND_FOO ~COND A B): Likewise. + +2021-10-18 Aldy Hernandez + + * tree-ssa-strlen.c (class strlen_pass): Rename from + strlen_dom_walker. + (handle_builtin_stxncpy_strncat): Move to strlen_pass. + (handle_assign): Same. + (adjust_last_stmt): Same. + (maybe_warn_overflow): Same. + (handle_builtin_strlen): Same. + (handle_builtin_strchr): Same. + (handle_builtin_strcpy): Same. + (handle_builtin_strncat): Same. + (handle_builtin_stxncpy_strncat): Same. + (handle_builtin_memcpy): Same. + (handle_builtin_strcat): Same. + (handle_alloc_call): Same. + (handle_builtin_memset): Same. + (handle_builtin_memcmp): Same. + (get_len_or_size): Same. + (strxcmp_eqz_result): Same. + (handle_builtin_string_cmp): Same. + (handle_pointer_plus): Same. + (count_nonzero_bytes_addr): Same. + (count_nonzero_bytes): Same. + (handle_store): Same. + (strlen_check_and_optimize_call): Same. + (handle_integral_assign): Same. + (check_and_optimize_stmt): Same. + (printf_strlen_execute): Rename strlen_dom_walker to strlen_pass. + +2021-10-18 Richard Biener + + PR tree-optimization/102798 + * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): + Only copy points-to info to newly generated SSA names. + +2021-10-18 Martin Liska + + * dbgcnt.c (dbg_cnt_process_opt): Remove unused but set variable. + * gcov.c (get_cycles_count): Likewise. + * lto-compress.c (lto_compression_zlib): Likewise. + (lto_uncompression_zlib): Likewise. + * targhooks.c (default_pch_valid_p): Likewise. + +2021-10-17 Aldy Hernandez + + * tree-pass.h (make_pass_thread_jumps_full): New. + * tree-ssa-threadbackward.c (pass_thread_jumps::gate): Inline. + (try_thread_blocks): Add resolve and speed arguments. + (pass_thread_jumps::execute): Inline. + (do_early_thread_jumps): New. + (do_thread_jumps): New. + (make_pass_thread_jumps): Move. + (pass_early_thread_jumps::gate): Inline. + (pass_early_thread_jumps::execute): Inline. + (class pass_thread_jumps_full): New. + +2021-10-16 Piotr Kubaj + + * configure.ac: Treat powerpc64*-*-freebsd* the same as + powerpc64-*-freebsd*. + * configure: Regenerate. + +2021-10-16 H.J. Lu + + * value-query.cc (get_ssa_name_ptr_info_nonnull): Change + set_ptr_nonull to set_ptr_nonnull in comments. + +2021-10-16 Jan Hubicka + + PR tree-optimization/102720 + * tree-ssa-structalias.c (compute_points_to_sets): Fix producing + of call used and clobbered sets. + +2021-10-15 Iain Sandoe + + * config/darwin.h (LINK_COMMAND_SPEC_A): Update 'r' handling to + skip gomp and itm when r or nodefaultlibs is given. + (DSYMUTIL_SPEC): Do not call dsymutil for '-r' link lines. + Update ordering of exclusions, remove duplicate 'v' addition + (collect2 will add this from the main command line). + +2021-10-15 Iain Sandoe + + * config/darwin-driver.c (darwin_driver_init): Revise comments, handle + filelist and framework options in specs instead of code. + * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Update to handle link + specs that are really driver ones. + (DARWIN_CC1_SPEC): Likewise. + (CPP_SPEC): Likewise. + (SYSROOT_SPEC): Append space. + (LINK_SYSROOT_SPEC): Remove most driver link specs. + (STANDARD_STARTFILE_PREFIX_2): Update link-related specs. + (STARTFILE_SPEC): Likewise. + (ASM_MMACOSX_VERSION_MIN_SPEC): Fix line wrap. + (ASM_SPEC): Update driver-related specs. + (ASM_FINAL_SPEC): Likewise. + * config/darwin.opt: Remove now unused option aliases. + * config/i386/darwin.h (EXTRA_ASM_OPTS): Ensure space after opt. + (ASM_SPEC): Update driver-related specs. + +2021-10-15 Roger Sayle + + * config/i386/i386.c (ix86_hardreg_mov_ok): For vector modes, + allow standard_sse_constant_p immediate constants. + +2021-10-15 Iain Sandoe + + * config.gcc: Add tm-dwarf2.h to tm_d-file. + +2021-10-15 Andrew MacLeod + + * gimple-range-fold.h (gimple_range_ssa_p): Don't process names + that occur in abnormal phis. + * gimple-range.cc (gimple_ranger::range_on_edge): Return false for + abnormal and EH edges. + * gimple-ssa-evrp.c (rvrp_folder::value_of_expr): Ditto. + (rvrp_folder::value_on_edge): Ditto. + (rvrp_folder::value_of_stmt): Ditto. + (hybrid_folder::value_of_expr): Ditto for ranger queries. + (hybrid_folder::value_on_edge): Ditto. + (hybrid_folder::value_of_stmt): Ditto. + * value-query.cc (gimple_range_global): Always return a range if + the type is supported. + +2021-10-15 John David Anglin + + * config/pa/pa.md: Consistently use "rG" constraint for copy + instruction in move patterns. + +2021-10-15 Andrew Stubbs + + * config/gcn/gcn-hsa.h (S_FIJI): Set unconditionally. + (S_900): Likewise. + (S_906): Likewise. + * config/gcn/gcn.c: Hard code SRAM ECC settings for old architectures. + * config/gcn/mkoffload.c (ELFABIVERSION_AMDGPU_HSA): Rename to ... + (ELFABIVERSION_AMDGPU_HSA_V3): ... this. + (ELFABIVERSION_AMDGPU_HSA_V4): New. + (SET_SRAM_ECC_UNSUPPORTED): New. + (copy_early_debug_info): Create elf flags to match the other objects. + (main): Just let the attribute flags pass through. + +2021-10-15 Stefan Schulze Frielinghaus + + * tree-loop-distribution.c (reduction_var_overflows_first): + Pass the type of reduction_var as first argument as it is also + done for the load type. + (loop_distribution::transform_reduction_loop): Add missing + TREE_TYPE while determining precission of reduction_var. + +2021-10-15 Richard Biener + + * defaults.h (PREFERRED_DEBUGGING_TYPE): Choose DWARF2_DEBUG + when not set. + * toplev.c (process_options): Warn when STABS debugging is + enabled but not the preferred format. + * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Define to + DBX_DEBUG. + * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Likewise. + +2021-10-15 Richard Biener + + PR ipa/102762 + * tree-inline.c (copy_bb): Avoid underflowing nargs. + +2021-10-15 Hongyu Wang + + * config/i386/i386-expand.c (ix86_expand_vec_perm): Convert + HFmode input operand to HImode. + (ix86_vectorize_vec_perm_const): Likewise. + * config/i386/sse.md (*avx512bw_permvar_truncv16siv16hi_1_hf): + New define_insn. + (*avx512f_permvar_truncv8siv8hi_1_hf): + Likewise. + +2021-10-15 Richard Biener + + PR middle-end/102682 + * expmed.c (store_bit_field_1): Ensure a LHS subreg would + not create a paradoxical subreg. + +2021-10-15 Hongyu Wang + + * config/i386/i386-expand.c (ix86_expand_vector_init): + For half_vector concat for HFmode, handle them like HImode. + +2021-10-14 Aldy Hernandez + + * tree-ssa-threadbackward.c (class back_threader): Add m_resolve. + (back_threader::back_threader): Same. + (back_threader::resolve_phi): Try to solve without looking back if + possible. + (back_threader::find_paths_to_names): Same. + (try_thread_blocks): Pass resolve argument to back threader. + (pass_early_thread_jumps::execute): Same. + +2021-10-14 Aldy Hernandez + + * doc/invoke.texi: Remove max-fsm-thread-length, + max-fsm-thread-paths, and fsm-maximum-phi-arguments. + * params.opt: Same. + * tree-ssa-threadbackward.c (back_threader::back_threader): Remove + argument. + (back_threader_registry::back_threader_registry): Same. + (back_threader_profitability::profitable_path_p): Remove + param_max_fsm_thread-length. + (back_threader_registry::register_path): Remove + m_max_allowable_paths. + +2021-10-14 Aldy Hernandez + + * tree-ssa-threadbackward.c (class back_threader): Make m_imports + an auto_bitmap. + (back_threader::~back_threader): Do not release m_path. + +2021-10-14 Andrew MacLeod + + PR tree-optimization/102738 + * vr-values.c (simplify_using_ranges::simplify): Handle RSHIFT_EXPR. + +2021-10-14 Kwok Cheung Yeung + + * omp-general.c (omp_check_context_selector): Move from c-omp.c. + (omp_mark_declare_variant): Move from c-omp.c. + (omp_context_name_list_prop): Update for Fortran strings. + * omp-general.h (omp_check_context_selector): New prototype. + (omp_mark_declare_variant): New prototype. + +2021-10-14 Richard Sandiford + + * config/rs6000/rs6000.c (rs6000_density_test): Move early + exit test further up the function. + +2021-10-14 Richard Sandiford + + * config/arm/arm.c (arm_add_stmt_cost): Delete. + (TARGET_VECTORIZE_ADD_STMT_COST): Delete. + +2021-10-14 Martin Jambor + + * doc/invoke.texi (Optimize Options): Add entry for + ipa-cp-recursive-freq-factor. + +2021-10-14 Tamar Christina + + * match.pd: New rule. + +2021-10-14 Jan Hubicka + + PR ipa/102557 + * ipa-modref-tree.h (modref_access_node::update2): + Also check that parm_offset is unchanged. + (modref_ref_node::insert_access): Fix updating of + parameter. + +2021-10-14 Aldy Hernandez + + * tree-ssa-threadbackward.c (back_threader::resolve_phi): Add + FIXME note. + +2021-10-14 Richard Biener + + PR tree-optimization/102659 + * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Also + rewrite pointer typed undefined overflow operations. + (predicate_statements): Likewise. Make sure to emit invariant + conversions in the preheader. + * tree-vectorizer.c (vect_loop_vectorized_call): Look through + non-empty preheaders. + * tree-data-ref.c (dr_analyze_indices): Strip useless + conversions to the MEM_REF base type. + +2021-10-14 Martin Liska + + * common.opt: Stop using AUTODETECT_VALUE + and use EnabledBy where possible. + * opts.c: Enable OPT_fvar_tracking with optimize >= 1. + * toplev.c (AUTODETECT_VALUE): Remove macro. + (process_options): Simplify by using EnabledBy and + OPT_fvar_tracking. Use OPTION_SET_P macro instead of + AUTODETECT_VALUE. + +2021-10-14 Jonathan Wright + + * config/aarch64/arm_neon.h (vld1_s8_x3): Use signed type for + pointer parameter. + (vld1_s32_x3): Likewise. + +2021-10-14 Aldy Hernandez + + PR tree-optimization/102736 + PR tree-optimization/102736 + * gimple-range-path.cc (path_range_query::range_on_path_entry): + Assert that the requested range is defined outside the path. + (path_range_query::ssa_range_in_phi): Do not call + range_on_path_entry for SSA names that are defined within the + path. + +2021-10-14 Iain Sandoe + + * config/darwin-driver.c (darwin_find_version_from_kernel): + Quote internal identifiers and avoid contractions in + warnings. + (darwin_default_min_version): Likewise. + (darwin_driver_init): Likewise. + +2021-10-14 Martin Jambor + + * params.opt (ipa-cp-recursive-freq-factor): New. + * ipa-cp.c (ipcp_value): Switch to inline initialization. New members + scc_no, self_recursion_generated_level, same_scc and + self_recursion_generated_p. + (ipcp_lattice::add_value): Replaced parameter unlimited with + same_lat_gen_level, usit it determine limit of values and store it to + the value. + (ipcp_lattice::print): Dump the new fileds. + (allocate_and_init_ipcp_value): Take same_lat_gen_level as a new + parameter and store it to the new value. + (self_recursively_generated_p): Removed. + (propagate_vals_across_arith_jfunc): Use self_recursion_generated_p + instead of self_recursively_generated_p, store self generation level + to such values. + (value_topo_info::add_val): Set scc_no. + (value_topo_info::propagate_effects): Multiply frequencies of + recursively feeding values and self generated values by appropriate + new factors. + +2021-10-14 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Remove + redundant test for flag_vect_cost_model. + +2021-10-14 Aldy Hernandez + + * bitmap.c (debug): New overloaded function for auto_bitmaps. + * bitmap.h (debug): Same. + +2021-10-14 Hongyu Wang + + * config/i386/avx512fp16intrin.h (_mm512_mask_fcmadd_pch): + Adjust builtin call. + (_mm512_mask3_fcmadd_pch): Likewise. + (_mm512_mask_fmadd_pch): Likewise + (_mm512_mask3_fmadd_pch): Likewise + (_mm512_mask_fcmadd_round_pch): Likewise + (_mm512_mask3_fcmadd_round_pch): Likewise + (_mm512_mask_fmadd_round_pch): Likewise + (_mm512_mask3_fmadd_round_pch): Likewise + (_mm_mask_fcmadd_sch): Likewise + (_mm_mask3_fcmadd_sch): Likewise + (_mm_mask_fmadd_sch): Likewise + (_mm_mask3_fmadd_sch): Likewise + (_mm_mask_fcmadd_round_sch): Likewise + (_mm_mask3_fcmadd_round_sch): Likewise + (_mm_mask_fmadd_round_sch): Likewise + (_mm_mask3_fmadd_round_sch): Likewise + (_mm_fcmadd_round_sch): Likewise + * config/i386/avx512fp16vlintrin.h (_mm_mask_fmadd_pch): + Adjust builtin call. + (_mm_mask3_fmadd_pch): Likewise + (_mm256_mask_fmadd_pch): Likewise + (_mm256_mask3_fmadd_pch): Likewise + (_mm_mask_fcmadd_pch): Likewise + (_mm_mask3_fcmadd_pch): Likewise + (_mm256_mask_fcmadd_pch): Likewise + (_mm256_mask3_fcmadd_pch): Likewise + * config/i386/i386-builtin.def: Add mask3 builtin for complex + fma, and adjust mask_builtin to corresponding expander. + * config/i386/i386-expand.c (ix86_expand_round_builtin): + Skip eraseing embedded rounding for expanders that emits + multiple insns. + * config/i386/sse.md (complexmove): New mode_attr. + (_fmaddc__mask1): New expander. + (_fcmaddc__mask1): Likewise. + (avx512fp16_fmaddcsh_v8hf_mask1): Likewise. + (avx512fp16_fcmaddcsh_v8hf_mask1): Likewise. + (avx512fp16_fcmaddcsh_v8hf_mask3): Likewise. + (avx512fp16_fmaddcsh_v8hf_mask3): Likewise. + * config/i386/subst.md (round_embedded_complex): New subst. + +2021-10-14 John David Anglin + + * config/pa/pa.md (cbranchsf4): Disable if TARGET_SOFT_FLOAT. + (cbranchdf4): Likewise. + Add missing move patterns for TARGET_SOFT_FLOAT. + +2021-10-13 Roger Sayle + + * config/i386/i386-expand.c (ix86_expand_vector_move): Use a + pseudo intermediate when moving a SUBREG into a hard register, + by checking ix86_hardreg_mov_ok. + (ix86_expand_vector_extract): Store zero-extended SImode + intermediate in a pseudo, then set target using a SUBREG_PROMOTED + annotated subreg. + * config/i386/sse.md (mov_internal): Prevent CSE creating + complex (SUBREG) sets of (vector) hard registers before reload, by + checking ix86_hardreg_mov_ok. + +2021-10-13 Indu Bhagat + + * ctfc.h (enum ctf_dtu_d_union_enum): Remove redundant comma. + +2021-10-13 Indu Bhagat + + * dwarf2ctf.c (gen_ctf_array_type): Fix typo in comment. + +2021-10-13 Martin Sebor + + PR middle-end/102630 + * pointer-query.cc (compute_objsize_r): Handle named address spaces. + +2021-10-13 Iain Sandoe + + * collect2.c (is_lto_object_file): Release simple-object + resources, close files. + +2021-10-13 Andre Vieira + + * config/arm/arm.c (thumb2_legitimate_address_p): Use VALID_MVE_MODE + when checking mve addressing modes. + (mve_vector_mem_operand): Fix the way we handle pre, post and offset + addressing modes. + (arm_print_operand): Fix printing of POST_ and PRE_MODIFY. + * config/arm/mve.md: Use mve_memory_operand predicate everywhere where + there is a single Ux constraint. + +2021-10-13 John David Anglin + + * config/pa/pa.md (muldi3): Add support for inlining 64-bit + multiplication on 32-bit PA 1.1 and 2.0 targets. + +2021-10-13 Martin Liska + + PR gcov-profile/90364 + * coverage.c (build_info): Emit checksum to the global variable. + (build_info_type): Add new field for checksum. + (coverage_obj_finish): Pass object_checksum. + (coverage_init): Use 0 as checksum for .gcno files. + * gcov-dump.c (dump_gcov_file): Dump also new checksum field. + * gcov.c (read_graph_file): Read also checksum. + * doc/invoke.texi: Document the behaviour change. + +2021-10-13 Richard Biener + + * gimple-iterator.h (gsi_iterator_update): Add GSI_LAST_NEW_STMT, + start at integer value 2. + * gimple-iterator.c (gsi_insert_seq_nodes_before): Update + the iterator for GSI_LAST_NEW_STMT. + (gsi_insert_seq_nodes_after): Likewise. + * tree-if-conv.c (predicate_statements): Use GSI_LAST_NEW_STMT. + * tree-ssa.c (execute_update_addresses_taken): Correct bogus + arguments to gsi_replace. + +2021-10-13 Martin Liska + + PR target/102688 + * common.opt: Use EnabledBy instead of detection in + finish_options and process_options. + * opts.c (finish_options): Remove handling of + x_flag_unroll_all_loops. + * toplev.c (process_options): Likewise for flag_web and + flag_rename_registers. + +2021-10-13 Richard Biener + + PR tree-optimization/102659 + * tree-if-conv.c (need_to_rewrite_undefined): New flag. + (if_convertible_gimple_assign_stmt_p): Mark the loop for + rewrite when stmts with undefined behavior on integer + overflow appear. + (combine_blocks): Predicate also when we need to rewrite stmts. + (predicate_statements): Rewrite affected stmts to something + with well-defined behavior on overflow. + (tree_if_conversion): Initialize need_to_rewrite_undefined. + +2021-10-13 Richard Biener + + PR ipa/102714 + * ipa-sra.c (ptr_parm_has_nonarg_uses): Fix volatileness + check. + +2021-10-13 Jose E. Marchesi + + * dwarf2ctf.c: Fix typo in comment. + +2021-10-12 Bill Schmidt + + PR target/101985 + * config/rs6000/altivec.h (vec_cpsgn): Swap operand order. + * config/rs6000/rs6000-overload.def (VEC_COPYSIGN): Use SKIP to + avoid generating an automatic #define of vec_cpsgn. Use the + correct built-in for V4SFmode that doesn't depend on VSX. + +2021-10-12 Uroš Bizjak + + PR target/85730 + PR target/82524 + * config/i386/i386.md (*add_1_slp): Rewrite as + define_insn_and_split pattern. Add alternative 1 and split it + post reload to insert operand 1 into the low part of operand 0. + (*sub_1_slp): Ditto. + (*and_1_slp): Ditto. + (*_1_slp): Ditto. + (*ashl3_1_slp): Ditto. + (*3_1_slp): Ditto. + (*3_1_slp): Ditto. + (*neg_1_slp): New insn_and_split pattern. + (*one_cmpl_1_slp): Ditto. + +2021-10-12 David Edelsohn + + * doc/install.texi: Update MinGW and mingw-64 Binaries + download links. + +2021-10-12 Daniel Le Duc Khoi Nguyen + + * doc/extend.texi (Common Variable Attributes): Fix typos in + alloc_size documentation. + +2021-10-12 Richard Biener + + PR tree-optimization/102696 + * tree-vect-slp.c (vect_build_slp_tree_2): Properly mark + the tree fatally failed when we reject a BIT_FIELD_REF. + +2021-10-12 Richard Biener + + PR tree-optimization/102572 + * tree-vect-stmts.c (vect_build_gather_load_calls): When + gathering the vectorized defs for the mask pass in the + desired mask vector type so invariants will be handled + correctly. + +2021-10-12 Tamar Christina + + * config/aarch64/aarch64-sve.md (*fcm_bic_combine, + *fcm_nor_combine, *fcmuo_bic_combine, + *fcmuo_nor_combine): New. + +2021-10-12 Eric Botcazou + + PR target/102588 + * config/sparc/sparc-modes.def (OI): New integer mode. + +2021-10-12 Jakub Jelinek + + * gimple-fold.h (clear_padding_type_may_have_padding_p): Declare. + * gimple-fold.c (clear_padding_type_may_have_padding_p): No longer + static. + +2021-10-12 Jakub Jelinek + + * tree-vectorizer.h (loop_cost_model): New function. + (unlimited_cost_model): Use it. + * tree-vect-loop.c (vect_analyze_loop_costing): Use loop_cost_model + call instead of flag_vect_cost_model. + * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. + (vect_prune_runtime_alias_test_list): Likewise. Also use it instead + of flag_simd_cost_model. + +2021-10-12 liuhongt + + PR target/102483 + * config/i386/i386-expand.c (emit_reduc_half): Handle + V4QImode. + * config/i386/mmx.md (reduc__scal_v4qi): New expander. + (reduc_plus_scal_v4qi): Ditto. + +2021-10-12 Paul A. Clarke + + * config/rs6000/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64, + _mm_mullo_epi32, _mm_mul_epi32, _mm_packus_epi32): New. + * config/rs6000/nmmintrin.h: Copy from i386, tweak to suit. + +2021-10-12 Paul A. Clarke + + * config/rs6000/smmintrin.h (_mm_cvtepi8_epi16, _mm_cvtepi8_epi32, + _mm_cvtepi8_epi64, _mm_cvtepi16_epi32, _mm_cvtepi16_epi64, + _mm_cvtepi32_epi64, _mm_cvtepu8_epi16, _mm_cvtepu8_epi32, + _mm_cvtepu8_epi64, _mm_cvtepu16_epi32, _mm_cvtepu16_epi64, + _mm_cvtepu32_epi64): New. + +2021-10-12 Paul A. Clarke + + * config/rs6000/smmintrin.h (_mm_test_all_zeros, + _mm_test_all_ones, _mm_test_mix_ones_zeros): Rewrite as macro. + +2021-10-12 Paul A. Clarke + + * config/rs6000/smmintrin.h (_mm_min_epi8, _mm_min_epu16, + _mm_min_epi32, _mm_min_epu32, _mm_max_epi8, _mm_max_epu16, + _mm_max_epi32, _mm_max_epu32): New. + +2021-10-11 Jan Hubicka + + * ipa-modref-tree.h (struct modref_access_node): Revert + accidental change. + (struct modref_ref_node): Likewise. + +2021-10-11 Jan Hubicka + + * ipa-modref-tree.h (modref_tree::global_access_p): New member + function. + * ipa-modref.c: + (implicint_const_eaf_flags,implicit_pure_eaf_flags, + ignore_stores_eaf_flags): Move to ipa-modref.h + (remove_useless_eaf_flags): Remove early exit on NOCLOBBER. + (modref_summary::global_memory_read_p): New member function. + (modref_summary::global_memory_written_p): New member function. + * ipa-modref.h (modref_summary::global_memory_read_p, + modref_summary::global_memory_written_p): Declare. + (implicint_const_eaf_flags,implicit_pure_eaf_flags, + ignore_stores_eaf_flags): move here. + * tree-ssa-structalias.c: Include ipa-modref-tree.h, ipa-modref.h + and attr-fnspec.h. + (handle_rhs_call): Rewrite. + (handle_call_arg): New function. + (determine_global_memory_access): New function. + (handle_const_call): Remove + (handle_pure_call): Remove + (find_func_aliases_for_call): Update use of handle_rhs_call. + (compute_points_to_sets): Handle global memory acccesses + selectively + +2021-10-11 Diane Meirowitz + + * doc/invoke.texi: Add link to UndefinedBehaviorSanitizer + documentation, mention UBSAN_OPTIONS, similar to what is done + for AddressSanitizer. + +2021-10-11 Richard Biener + + PR middle-end/102683 + * internal-fn.c (expand_DEFERRED_INIT): Check for mode + availability before building an integer type for storage + purposes. + +2021-10-11 Richard Biener + + PR middle-end/101480 + * gimple.c (gimple_call_fnspec): Do not mark operator new/delete + as const. + +2021-10-11 Martin Liska + + * common.opt: Remove Init(2) for some options. + * toplev.c (process_options): Do not use AUTODETECT_VALUE, but + use rather OPTION_SET_P. + +2021-10-11 Martin Liska + + * common.opt: Remove usage of IRA_REGION_AUTODETECT. + * flag-types.h (enum ira_region): Likewise. + * toplev.c (process_options): Use OPTION_SET_P instead of + IRA_REGION_AUTODETECT. + +2021-10-11 Jakub Jelinek + + * omp-low.c (omp_runtime_api_call): Handle omp_get_max_teams, + omp_[sg]et_teams_thread_limit and omp_set_num_teams. + +2021-10-11 Stefan Schulze Frielinghaus + + * config/s390/s390-protos.h (s390_rawmemchr): Add prototype. + * config/s390/s390.c (s390_rawmemchr): New function. + * config/s390/s390.md (rawmemchr): New expander. + * config/s390/vector.md (@vec_vfees): Basically a copy of + the pattern vfees from vx-builtins.md. + * config/s390/vx-builtins.md (*vfees): Remove. + +2021-10-11 Stefan Schulze Frielinghaus + + * builtins.c (get_memory_rtx): Change to external linkage. + * builtins.h (get_memory_rtx): Add function prototype. + * doc/md.texi (rawmemchr): Document. + * internal-fn.c (expand_RAWMEMCHR): Define. + * internal-fn.def (RAWMEMCHR): Add. + * optabs.def (rawmemchr_optab): Add. + * tree-loop-distribution.c (find_single_drs): Change return code + behaviour by also returning true if no single store was found + but a single load. + (loop_distribution::classify_partition): Respect the new return + code behaviour of function find_single_drs. + (loop_distribution::execute): Call new function + transform_reduction_loop in order to replace rawmemchr or strlen + like loops by calls into builtins. + (generate_reduction_builtin_1): New function. + (generate_rawmemchr_builtin): New function. + (generate_strlen_builtin_1): New function. + (generate_strlen_builtin): New function. + (generate_strlen_builtin_using_rawmemchr): New function. + (reduction_var_overflows_first): New function. + (determine_reduction_stmt_1): New function. + (determine_reduction_stmt): New function. + (loop_distribution::transform_reduction_loop): New function. + +2021-10-11 Martin Liska + + * tree.c (cl_option_hasher::hash): Use cl_optimization_hash + and remove legacy hashing code. + +2021-10-11 Kito Cheng + + PR target/100316 + * builtins.c (maybe_emit_call_builtin___clear_cache): Allow + CONST_INT for BEGIN and END, and use gcc_assert rather than + error. + +2021-10-10 Jakub Jelinek + + PR debug/102441 + * var-tracking.c (add_stores): For cselib_sp_derived_value_p values + use MO_VAL_SET if loc is not sp. + +2021-10-10 Andrew Pinski + + PR tree-optimization/102622 + * match.pd: Swap the order of a?pow2cst:0 and a?-1:0 transformations. + Swap the order of a?0:pow2cst and a?0:-1 transformations. + +2021-10-09 liuhongt + + PR target/102639 + * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode): Handle + HFmode. + (ix86_use_mask_cmp_p): Ditto. + (ix86_expand_sse_movcc): Ditto. + * config/i386/i386.md (setcc_hf_mask): New define_insn. + (movhf_mask): Ditto. + (UNSPEC_MOVCC_MASK): New unspec. + * config/i386/sse.md (UNSPEC_PCMP): Move to i386.md. + +2021-10-08 Vladimir N. Makarov + + PR rtl-optimization/102627 + * lra-constraints.c (split_reg): Use at least natural mode of hard reg. + +2021-10-08 Aldy Hernandez + + * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Grow + bitmap if needed. + +2021-10-08 Aldy Hernandez + + * value-range.cc (irange::debug): New. + * value-range.h (irange::debug): New. + +2021-10-08 Richard Sandiford + + PR tree-optimization/102385 + * predict.h (change_edge_frequency): Declare. + * predict.c (change_edge_frequency): New function. + * tree-ssa-loop-manip.h (tree_transform_and_unroll_loop): Remove + edge argument. + (tree_unroll_loop): Likewise. + * gimple-loop-jam.c (tree_loop_unroll_and_jam): Update accordingly. + * tree-predcom.c (pcom_worker::tree_predictive_commoning_loop): + Likewise. + * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Likewise. + * tree-ssa-loop-manip.c (tree_unroll_loop): Likewise. + (tree_transform_and_unroll_loop): Likewise. Use single_dom_exit + to retrieve the exit edges. Make all the old profile update code + conditional on !single_loop_p -- the case it was written for -- + and use a different approach for the single-loop case. + +2021-10-08 Martin Liska + + * config/alpha/alpha.c (alpha_option_override): Use new macro + OPTION_SET_P. + * config/arc/arc.c (arc_override_options): Likewise. + * config/arm/arm.c (arm_option_override): Likewise. + * config/bfin/bfin.c (bfin_load_pic_reg): Likewise. + * config/c6x/c6x.c (c6x_option_override): Likewise. + * config/csky/csky.c: Likewise. + * config/darwin.c (darwin_override_options): Likewise. + * config/frv/frv.c (frv_option_override): Likewise. + * config/i386/djgpp.h: Likewise. + * config/i386/i386.c (ix86_stack_protect_guard): Likewise. + (ix86_max_noce_ifcvt_seq_cost): Likewise. + * config/ia64/ia64.c (ia64_option_override): Likewise. + (ia64_override_options_after_change): Likewise. + * config/m32c/m32c.c (m32c_option_override): Likewise. + * config/m32r/m32r.c (m32r_init): Likewise. + * config/m68k/m68k.c (m68k_option_override): Likewise. + * config/microblaze/microblaze.c (microblaze_option_override): Likewise. + * config/mips/mips.c (mips_option_override): Likewise. + * config/nios2/nios2.c (nios2_option_override): Likewise. + * config/nvptx/nvptx.c (nvptx_option_override): Likewise. + * config/pa/pa.c (pa_option_override): Likewise. + * config/riscv/riscv.c (riscv_option_override): Likewise. + * config/rs6000/aix71.h: Likewise. + * config/rs6000/aix72.h: Likewise. + * config/rs6000/aix73.h: Likewise. + * config/rs6000/rs6000.c (darwin_rs6000_override_options): Likewise. + (rs6000_override_options_after_change): Likewise. + (rs6000_linux64_override_options): Likewise. + (glibc_supports_ieee_128bit): Likewise. + (rs6000_option_override_internal): Likewise. + (rs6000_file_start): Likewise. + (rs6000_darwin_file_start): Likewise. + * config/rs6000/rtems.h: Likewise. + * config/rs6000/sysv4.h: Likewise. + * config/rs6000/vxworks.h (SUB3TARGET_OVERRIDE_OPTIONS): Likewise. + * config/s390/s390.c (s390_option_override): Likewise. + * config/sh/linux.h: Likewise. + * config/sh/netbsd-elf.h (while): Likewise. + * config/sh/sh.c (sh_option_override): Likewise. + * config/sol2.c (solaris_override_options): Likewise. + * config/sparc/sparc.c (sparc_option_override): Likewise. + * config/tilegx/tilegx.c (tilegx_option_override): Likewise. + * config/visium/visium.c (visium_option_override): Likewise. + * config/vxworks.c (vxworks_override_options): Likewise. + * lto-opts.c (lto_write_options): Likewise. + * omp-expand.c (expand_omp_simd): Likewise. + * omp-general.c (omp_max_vf): Likewise. + * omp-offload.c (oacc_xform_loop): Likewise. + * opts.h (OPTION_SET_P): Likewise. + * targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise. + * toplev.c (process_options): Likewise. + * tree-predcom.c: Likewise. + * tree-sra.c (analyze_all_variable_accesses): Likewise. + +2021-10-08 liuhongt + + PR target/102464 + * config/i386/i386.c (ix86_optab_supported_p): + Return true for HFmode. + * match.pd: Simplify (_Float16) ceil ((double) x) to + __builtin_ceilf16 (a) when a is _Float16 type and + direct_internal_fn_supported_p. + +2021-10-08 liuhongt + + PR target/102494 + * config/i386/i386-expand.c (emit_reduc_half): Hanlde V4HImode. + * config/i386/mmx.md (reduc_plus_scal_v4hi): New. + (reduc__scal_v4hi): New. + +2021-10-08 liuhongt + + * common.opt (ftree-vectorize): Add Var(flag_tree_vectorize). + * doc/invoke.texi (Options That Control Optimization): Update + documents. + * opts.c (default_options_table): Enable auto-vectorization at + O2 with very-cheap cost model. + (finish_options): Use cheap cost model for + explicit -ftree{,-loop}-vectorize. + +2021-10-07 Indu Bhagat + + * ctfc.c (ctfc_delete_container): Free hash table contents. + +2021-10-07 Indu Bhagat + + * toplev.c (process_options): Do not warn for GNU GIMPLE. + +2021-10-07 Siddhesh Poyarekar + + * tree-object-size.c (addr_object_size, + compute_builtin_object_size): Drop PDECL and POFF arguments. + (addr_object_size): Adjust calls. + * tree-object-size.h (compute_builtin_object_size): Drop PDECL + and POFF arguments. + +2021-10-07 Roger Sayle + + * rtl.def (SMUL_HIGHPART, UMUL_HIGHPART): New RTX codes for + representing signed and unsigned high-part multiplication resp. + * simplify-rtx.c (simplify_binary_operation_1) [SMUL_HIGHPART, + UMUL_HIGHPART]: Simplify high-part multiplications by zero. + [SS_PLUS, US_PLUS, SS_MINUS, US_MINUS, SS_MULT, US_MULT, + SS_DIV, US_DIV]: Similar simplifications for saturating + arithmetic. + (simplify_const_binary_operation) [SS_PLUS, US_PLUS, SS_MINUS, + US_MINUS, SS_MULT, US_MULT, SMUL_HIGHPART, UMUL_HIGHPART]: + Implement compile-time evaluation for constant operands. + * dwarf2out.c (mem_loc_descriptor): Skip SMUL_HIGHPART and + UMUL_HIGHPART. + * doc/rtl.texi (smul_highpart, umul_highpart): Document RTX codes. + * doc/md.texi (smul@var{m}3_highpart, umul@var{m3}_highpart): + Mention the new smul_highpart and umul_highpart RTX codes. + * doc/invoke.texi: Silence @xref "compilation" warnings. + +2021-10-07 Martin Jambor + + PR ipa/102388 + * ipa-prop.c (ipa_edge_args_sum_t::duplicate): Also handle the + case when the source reference description corresponds to a + referance taken in a function src->caller is inlined to. + +2021-10-07 Jan Hubicka + + PR ipa/102581 + * ipa-modref-tree.h (modref_access_node::contains_p): Handle offsets + better. + (modref_access_node::try_merge_with): Add sanity check that there + are no redundant entries in the list. + +2021-10-07 Richard Biener + + PR tree-optimization/102608 + * tree-ssa-sccvn.c (visit_stmt): Drop .DEFERRED_INIT to + varying. + +2021-10-07 Martin Liska + + * toplev.c (toplev::main): Make + save_opt_decoded_options a pointer type + * toplev.h: Likewise. + +2021-10-07 Andrew Stubbs + + * config/gcn/gcn-valu.md (gather_insn_2offsets): Apply + HAVE_GCN_ASM_GLOBAL_LOAD_FIXED. + (scatter_insn_2offsets): Likewise. + +2021-10-07 Andrew Stubbs + + * config/gcn/gcn-hsa.h (SRAMOPT): Include the whole option string. + Adjust for new -msram-ecc=any behaviour. + (ASM_SPEC): Adjust -mxnack and -msram-ecc usage. + * config/gcn/gcn.c (output_file_start): Implement -msram-ecc=any. + * config/gcn/mkoffload.c (EF_AMDGPU_XNACK): Rename to ... + (EF_AMDGPU_XNACK_V3): ... this. + (EF_AMDGPU_SRAM_ECC): Rename to ... + (EF_AMDGPU_SRAM_ECC_V3): ... this. + (EF_AMDGPU_FEATURE_XNACK_V4): New. + (EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4): New. + (EF_AMDGPU_FEATURE_XNACK_ANY_V4): New. + (EF_AMDGPU_FEATURE_XNACK_OFF_V4): New. + (EF_AMDGPU_FEATURE_XNACK_ON_V4): New. + (EF_AMDGPU_FEATURE_SRAMECC_V4): New. + (EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4): New. + (EF_AMDGPU_FEATURE_SRAMECC_ANY_V4): New. + (EF_AMDGPU_FEATURE_SRAMECC_OFF_V4): New. + (EF_AMDGPU_FEATURE_SRAMECC_ON_V4): New. + (SET_XNACK_ON): New. + (SET_XNACK_OFF): New. + (TEST_XNACK): New. + (SET_SRAM_ECC_ON): New. + (SET_SRAM_ECC_ANY): New. + (SET_SRAM_ECC_OFF): New. + (TEST_SRAM_ECC_ANY): New. + (TEST_SRAM_ECC_ON): New. + (main): Implement HSACOv4 and -msram-ecc=any. + +2021-10-07 Andrew Stubbs + + * config.in: Regenerate. + * config/gcn/gcn-hsa.h (X_FIJI): New macro. + (X_900): New macro. + (X_906): New macro. + (X_908): New macro. + (A_FIJI): Rename to ... + (S_FIJI): ... this. + (A_900): Rename to ... + (S_900): ... this. + (A_906): Rename to ... + (S_906): ... this. + (A_908): Rename to ... + (S_908): ... this. + (SRAMOPT): New macro. + (ASM_SPEC): Adjust xnack option usage. + * config/gcn/gcn.c (output_file_start): Adjust amdgcn_target usage. + * configure: Regenerate. + * configure.ac: Detect LLVM assembler dialect. + +2021-10-07 Richard Biener + + * tree-pretty-print.c (dump_generic_node): Do not elide + printing '&' when dumping with -gimple. + +2021-10-06 Andrew MacLeod + + * gimple-range-cache.cc (non_null_ref::adjust_range): Call new + intersect routine. + * gimple-range-fold.cc (adjust_pointer_diff_expr): Ditto. + (adjust_imagpart_expr): Ditto. + * value-range.cc (irange::irange_intersect): Call new routine if + RHS is a single pair. + (irange::intersect): New wide_int version. + * value-range.h (class irange): New prototype. + +2021-10-06 Andrew MacLeod + + * gimple-range-edge.cc (gimple_outgoing_range::gimple_outgoing_range): + Add parameter to limit size when recognizing switches. + (gimple_outgoing_range::edge_range_p): Check size limit. + * gimple-range-edge.h (gimple_outgoing_range): Add size field. + * gimple-range-gori.cc (gori_map::calculate_gori): Ignore switches + that exceed the size limit. + (gori_compute::gori_compute): Add initializer. + * params.opt (evrp-switch-limit): New. + * doc/invoke.texi: Update docs. + +2021-10-06 Andrew MacLeod + + * value-range.h (irange::set_varying): Use TYPE_MIN_VALUE and + TYPE_MAX_VALUE instead of creating new trees when possible. + +2021-10-06 Andrew MacLeod + + * gimple-range-cache.cc (non_null_ref::adjust_range): Check for + zero and non-zero more efficently. + +2021-10-06 Richard Biener + + PR c/102605 + * dumpfile.h (TDF_GIMPLE_VAL): New. + (dump_flag): Re-order and adjust TDF_* flags. Make + the enum uint32_t. Use std::underlying_type in the + operator overloads. + (optgroup_flag): Likewise for the operator overloads. + * tree-pretty-print.c (dump_generic_node): Wrap ADDR_EXPR + in _Literal if TDF_GIMPLE_VAL. + * gimple-pretty-print.c (dump_gimple_assign): Add + TDF_GIMPLE_VAL to flags when dumping operands where only + is_gimple_val are allowed. + (dump_gimple_cond): Likewise. + +2021-10-06 prathamesh.kulkarni + + * gimple-isel.cc (gimple_expand_vec_cond_expr): Remove redundant if + condition. + +2021-10-05 qing zhao + + PR middle-end/102359 + * gimplify.c (gimplify_decl_expr): Not add initialization for an + auto variable when it has been initialized by frontend. + +2021-10-05 Aldy Hernandez + + * tree-ssa-threadupdate.c (jt_path_registry::cancel_invalid_paths): + Loosen restrictions + +2021-10-05 Jan-Benedict Glaw + + * common/config/avr/avr-common.c (avr_handle_option): Mark + argument as ATTRIBUTE_UNUSED. + +2021-10-05 Jan-Benedict Glaw + + * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): + Undefine before redefinition. + +2021-10-05 Richard Biener + + * toplev.c (no_backend): Remove global var. + (process_options): Pass in no_backend, move post_options + langhook call to toplev::main. + (do_compile): Pass in no_backend, move process_options call + to toplev::main. + (toplev::run_self_tests): Check no_backend at the caller. + (toplev::main): Call post_options and process_options + split out from do_compile, do self-tests only if + no_backend is initialized. + +2021-10-05 Richard Biener + + * tree-cfg.c (dump_function_to_file): Dump the UID of the + function as part of the name when requested. + * tree-pretty-print.c (dump_function_name): Dump the UID when + requested and the langhook produced the actual name. + +2021-10-05 Richard Biener + + PR middle-end/102587 + PR middle-end/102285 + * internal-fn.c (expand_DEFERRED_INIT): Fall back to + zero-initialization as last resort, use the constant + size as given by the DEFERRED_INIT argument to build + the initializer. + +2021-10-04 Marek Polacek + + PR c++/97573 + * doc/invoke.texi: Document -Warray-compare. + +2021-10-04 Richard Biener + + * gimplify.c (is_var_need_auto_init): DECL_HARD_REGISTER + variables are not to be initialized. + +2021-10-04 Richard Biener + + * expr.h (non_mem_decl_p): Declare. + (mem_ref_refers_to_non_mem_p): Likewise. + * expr.c (non_mem_decl_p): Export. + (mem_ref_refers_to_non_mem_p): Likewise. + * internal-fn.c (expand_DEFERRED_INIT): Do not expand the LHS + but check the base with mem_ref_refers_to_non_mem_p + and non_mem_decl_p. + +2021-10-04 Richard Biener + + PR tree-optimization/102570 + * tree-ssa-sccvn.h (vn_reference_op_struct): Document + we are using clique for the internal function code. + * tree-ssa-sccvn.c (vn_reference_op_eq): Compare the + internal function code. + (print_vn_reference_ops): Print the internal function code. + (vn_reference_op_compute_hash): Hash it. + (copy_reference_ops_from_call): Record it. + (visit_stmt): Remove the restriction around internal function + calls. + (fully_constant_vn_reference_p): Use fold_const_call and handle + internal functions. + (vn_reference_eq): Compare call return types. + * tree-ssa-pre.c (create_expression_by_pieces): Handle + generating calls to internal functions. + (compute_avail): Remove the restriction around internal function + calls. + +2021-10-04 Aldy Hernandez + + PR tree-optimization/102560 + * gimple-ssa-warn-alloca.c (alloca_call_type): Remove static + marker for invalid_range. + +2021-10-04 Richard Biener + + PR middle-end/102587 + * internal-fn.c (expand_DEFERRED_INIT): Guard register + initialization path an avoid initializing VLA registers + with it. + +2021-10-04 Eric Botcazou + + * config/rs6000/vxworks.h (TARGET_INIT_LIBFUNCS): Delete. + +2021-10-03 Martin Liska + + * toplev.c (toplev::main): Check opt_index if it is a part + of cl_options. + +2021-10-02 Aldy Hernandez + + PR tree-optimization/102563 + * range-op.cc (operator_lshift::op1_range): Do not clobber + range. + +2021-10-02 Martin Liska + + * toplev.c (toplev::main): save_decoded_options[0] is program + name and so it should be skipped. + +2021-10-01 Aldy Hernandez + + PR tree-optimization/102546 + * range-op.cc (operator_lshift::op1_range): Teach range-ops that + X << Y is non-zero implies X is also non-zero. + +2021-10-01 Przemyslaw Wirkus + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): New + Cortex-X2 core. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/invoke.texi: Update docs. + +2021-10-01 Przemyslaw Wirkus + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): New + Cortex-A710 core. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/invoke.texi: Update docs. + +2021-10-01 Przemyslaw Wirkus + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): New + Cortex-A510 core. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/invoke.texi: Update docs. + +2021-10-01 Martin Sebor + + PR c/102103 + * doc/invoke.texi (-Waddress): Update. + * gengtype.c (write_types): Avoid -Waddress. + * poly-int.h (POLY_SET_COEFF): Avoid using null. + +2021-10-01 John David Anglin + + PR debug/102373 + * config/pa/pa.c (pa_option_override): Default to dwarf version 4 + on hppa64-hpux. + +2021-10-01 Przemyslaw Wirkus + + * config/aarch64/aarch64.h (AARCH64_FL_V9): Update value. + +2021-10-01 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::compute_ranges): Use + get_path_oracle. + * gimple-range-path.h (class path_range_query): Remove shadowed + m_oracle field. + (path_range_query::get_path_oracle): New. + +2021-10-01 Jakub Jelinek + Richard Biener + + PR sanitizer/102515 + * doc/invoke.texi (-fsanitize=integer-divide-by-zero): Remove + INT_MIN / -1 division detection from here ... + (-fsanitize=signed-integer-overflow): ... and add it here. + +2021-10-01 Przemyslaw Wirkus + + * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Added + armv9-a. + * config/aarch64/aarch64.h (AARCH64_FL_V9): New. + (AARCH64_FL_FOR_ARCH9): New flags for Armv9-A. + (AARCH64_ISA_V9): New ISA flag. + * doc/invoke.texi: Update docs. + +2021-10-01 Martin Liska + + * toplev.c (toplev::main): Save decoded optimization options. + * toplev.h (save_opt_decoded_options): New. + * doc/extend.texi: Be more clear about optimize and target + attributes. + +2021-10-01 Eric Botcazou + + * explow.c: Include langhooks.h. + (set_stack_check_libfunc): Build a proper function type. + +2021-10-01 Eric Botcazou + + PR c++/64697 + * config/i386/i386.c (legitimate_pic_address_disp_p): For PE-COFF do + not return true for external weak function symbols in medium model. + +2021-10-01 Jakub Jelinek + + * tree.h (OMP_CLAUSE_ORDER_REPRODUCIBLE): Define. + * tree-pretty-print.c (dump_omp_clause) : Print + reproducible: for OMP_CLAUSE_ORDER_REPRODUCIBLE. + * omp-general.c (omp_extract_for_data): If OMP_CLAUSE_ORDER is seen + without OMP_CLAUSE_ORDER_UNCONSTRAINED, overwrite sched_kind to + OMP_CLAUSE_SCHEDULE_STATIC. + +2021-10-01 Richard Biener + + PR middle-end/102518 + * tree-inline.c (setup_one_parameter): Avoid substituting + an invariant into contexts where a GIMPLE register is not valid. + +2021-09-30 Przemyslaw Wirkus + + * config/arm/arm-cpus.in: Add Cortex-R52+ CPU. + * config/arm/arm-tables.opt: Regenerate. + * config/arm/arm-tune.md: Regenerate. + * doc/invoke.texi: Update docs. + +2021-09-30 Uroš Bizjak + + PR target/89954 + * config/i386/i386.md + (sign_extend:WIDE (any_logic:NARROW (memory, immediate)) splitters): + New splitters. + +2021-09-30 Tobias Burnus + + * omp-low.c (omp_runtime_api_call): Add omp_aligned_{,c}alloc and + omp_{c,re}alloc, fix omp_alloc/omp_free. + +2021-09-30 Martin Liska + + * defaults.h (ASM_OUTPUT_ASCII): Do not hide global variable + asm_out_file and stream directly to MYFILE. + +2021-09-30 Richard Biener + + * tree-vect-data-refs.c (vect_update_misalignment_for_peel): + Restore and fix condition under which we apply npeel to + the DRs misalignment value. + +2021-09-30 Richard Biener + + * tree-vect-data-refs.c (vect_update_misalignment_for_peel): + Fix npeel check for variable amount of peeling. + +2021-09-30 Aldy Hernandez + + * lto-wrapper.c (run_gcc): Plug snprintf overflow. + +2021-09-30 Aldy Hernandez + + * gimple-range.cc (gimple_ranger::debug): New. + * gimple-range.h (class gimple_ranger): Add debug. + +2021-09-30 Aldy Hernandez + + PR middle-end/102519 + * tree-vrp.c (hybrid_threader::~hybrid_threader): Free m_query. + +2021-09-29 Indu Bhagat + + PR debug/102507 + * btfout.c (GTY): Add GTY (()) albeit for cosmetic only purpose. + (btf_finalize): Empty the hash_map btf_var_ids. + +2021-09-29 Aldy Hernandez + + * tree-vrp.c (thread_through_all_blocks): Return bool. + (execute_vrp_threader): Return TODO_* flags. + (pass_data_vrp_threader): Set todo_flags_finish to 0. + +2021-09-29 Aldy Hernandez + + * timevar.def (TV_TREE_VRP_THREADER): New. + * tree-vrp.c: Use TV_TREE_VRP_THREADER for VRP threader pass. + +2021-09-29 David Faust + + * config.gcc (bpf-*-*): Do not overwrite extra_headers. + +2021-09-29 Jonathan Wright + + * config/aarch64/aarch64-builtins.c (TYPES_BINOP_PPU): Define + new type qualifier enum. + (TYPES_TERNOP_SSSU): Likewise. + (TYPES_TERNOP_PPPU): Likewise. + * config/aarch64/aarch64-simd-builtins.def: Define PPU, SSU, + PPPU and SSSU builtin generator macros for qtbl1 and qtbx1 + Neon builtins. + * config/aarch64/arm_neon.h (vqtbl1_p8): Use type-qualified + builtin and remove casts. + (vqtbl1_s8): Likewise. + (vqtbl1q_p8): Likewise. + (vqtbl1q_s8): Likewise. + (vqtbx1_s8): Likewise. + (vqtbx1_p8): Likewise. + (vqtbx1q_s8): Likewise. + (vqtbx1q_p8): Likewise. + (vtbl1_p8): Likewise. + (vtbl2_p8): Likewise. + (vtbx2_p8): Likewise. + +2021-09-29 Richard Biener + + * tree-vect-data-refs.c (vect_dr_misalign_for_aligned_access): + New helper. + (vect_update_misalignment_for_peel): Use it to update + misaligned to the value necessary for an aligned access. + (vect_get_peeling_costs_all_drs): Likewise. + (vect_enhance_data_refs_alignment): Likewise. + +2021-09-29 Kyrylo Tkachov + + * config/aarch64/aarch64.c (aarch64_expand_cpymem): Count number of + emitted operations and adjust heuristic for code size. + +2021-09-29 Kyrylo Tkachov + + * config/aarch64/aarch64.c (aarch64_expand_setmem): Count number of + emitted operations and adjust heuristic for code size. + +2021-09-29 Jakub Jelinek + + PR middle-end/102504 + * gimplify.c (gimplify_scan_omp_clauses): Use omp_check_private even + in OMP_SCOPE clauses, not just on worksharing construct clauses. + +2021-09-28 Geng Qi + + * config/riscv/riscv.md (mulv4): Call gen_smul3_highpart. + (mulditi3): Call muldi3_highpart. + (muldi3_highpart): Rename to muldi3_highpart. + (mulsidi3): Call mulsi3_highpart. + (mulsi3_highpart): Rename to mulsi3_highpart. + +2021-09-28 Iain Sandoe + + * config/darwin.h (DSYMUTIL_SPEC): Recognize D sources. + +2021-09-28 Iain Sandoe + + * config/rs6000/darwin.h (FIXED_R13): Add for PPC64. + (FIRST_SAVED_GP_REGNO): Save from R13 even when it is one + of the fixed regs. + +2021-09-28 Kyrylo Tkachov + + * config/aarch64/aarch64.h (AARCH64_FL_LS64): Define + (AARCH64_FL_V8_7): Likewise. + (AARCH64_FL_FOR_ARCH8_7): Likewise. + * config/aarch64/aarch64-arches.def (armv8.7-a): Define. + * config/aarch64/aarch64-option-extensions.def (ls64): Define. + * doc/invoke.texi: Document the above. + +2021-09-28 Aldy Hernandez + + * dbgcnt.c (dbg_cnt_counter): New. + * dbgcnt.h (dbg_cnt_counter): New. + * dumpfile.c (dump_options): Add entry for TDF_THREADING. + * dumpfile.h (enum dump_flag): Add TDF_THREADING. + * gimple-range-path.cc (DEBUG_SOLVER): Use TDF_THREADING. + * tree-ssa-threadupdate.c (dump_jump_thread_path): Dump out + debug counter. + +2021-09-28 Aldy Hernandez + + * cfgcleanup.c (pass_jump::execute): Check + flag_expensive_optimizations. + (pass_jump_after_combine::gate): Same. + * doc/invoke.texi (-fthread-jumps): Enable for -O1. + * opts.c (default_options_table): Enable -fthread-jumps at -O1. + * tree-ssa-threadupdate.c + (fwd_jt_path_registry::remove_jump_threads_including): Bail unless + flag_thread_jumps. + +2021-09-28 Ilya Leoshkevich + + * tree-ssa-reassoc.c (biased_names): New global. + (propagate_bias_p): New function. + (loop_carried_phi): Remove. + (propagate_rank): Propagate bias along single uses. + (get_rank): Update biased_names when needed. + +2021-09-28 Ilya Leoshkevich + + * passes.def (pass_reassoc): Rename parameter to early_p. + * tree-ssa-reassoc.c (reassoc_bias_loop_carried_phi_ranks_p): + New variable. + (phi_rank): Don't bias loop-carried phi ranks + before vectorization pass. + (execute_reassoc): Add bias_loop_carried_phi_ranks_p parameter. + (pass_reassoc::pass_reassoc): Add bias_loop_carried_phi_ranks_p + initializer. + (pass_reassoc::set_param): Set bias_loop_carried_phi_ranks_p + value. + (pass_reassoc::execute): Pass bias_loop_carried_phi_ranks_p to + execute_reassoc. + (pass_reassoc::bias_loop_carried_phi_ranks_p): New member. + +2021-09-28 Jakub Jelinek + + PR target/102498 + * config/i386/i386.c (standard_80387_constant_p): Don't recognize + special 80387 instruction XFmode constants if flag_rounding_math. + +2021-09-28 Richard Biener + + PR tree-optimization/100112 + * tree-ssa-sccvn.c (visit_reference_op_load): Record the + referece into the hashtable twice in case last_vuse is + different from the original vuse on the stmt. + +2021-09-28 Jakub Jelinek + + PR middle-end/102492 + * gimplify.c (gimplify_adjust_omp_clauses_1): Don't call the + omp_finish_clause langhook on implicitly added OMP_CLAUSE_PRIVATE + clauses on SIMD constructs. + +2021-09-28 Aldy Hernandez + + PR tree-optimization/102511 + * gimple-range-path.cc (path_range_query::range_on_path_entry): + Return VARYING when nothing found. + +2021-09-28 Hongyu Wang + + PR target/102230 + * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Add + V2HF mode check. + (VALID_SSE2_REG_VHF_MODE): Add V4HFmode and V2HFmode. + (VALID_MMX_REG_MODE): Add V4HFmode. + (SSE_REG_MODE_P): Replace VALID_AVX512FP16_REG_MODE with + vector mode condition. + * config/i386/i386.c (classify_argument): Parse V4HF/V2HF + via sse regs. + (function_arg_32): Add V4HFmode. + (function_arg_advance_32): Likewise. + * config/i386/i386.md (mode): Add V4HF/V2HF. + (MODE_SIZE): Likewise. + * config/i386/mmx.md (MMXMODE): Add V4HF mode. + (V_32): Add V2HF mode. + (VHF_32_64): New mode iterator. + (*mov_internal): Adjust sse alternatives to support + V4HF mode move. + (*mov_internal): Adjust sse alternatives to support + V2HF mode move. + (3): New define_insn for add/sub/mul/div. + +2021-09-28 Aldy Hernandez + + * tree-ssa-threadbackward.c (pass_thread_jumps::gate): Check + flag_thread_jumps. + (pass_early_thread_jumps::gate): Same. + * tree-ssa-threadedge.c (jump_threader::thread_outgoing_edges): + Return if !flag_thread_jumps. + * tree-ssa-threadupdate.c + (jt_path_registry::register_jump_thread): Assert that + flag_thread_jumps is true. + +2021-09-28 liuhongt + + * simplify-rtx.c + (simplify_context::simplify_binary_operation_1): Relax + condition of simplifying (vec_concat:M (vec_select op0 + index0)(vec_select op1 index1)) to allow different modes + between op0 and M, but have same inner mode. + +2021-09-28 liuhongt + + * config/i386/i386-expand.c (emit_reduc_half): Handle + V8HF/V16HF/V32HFmode. + * config/i386/sse.md (REDUC_SSE_PLUS_MODE): Add V8HF. + (REDUC_SSE_SMINMAX_MODE): Ditto. + (REDUC_PLUS_MODE): Add V16HF and V32HF. + (REDUC_SMINMAX_MODE): Ditto. + +2021-09-27 Aldy Hernandez + + * gimple-range-path.cc + (path_range_query::precompute_ranges_in_block): Rename to... + (path_range_query::compute_ranges_in_block): ...this. + (path_range_query::precompute_ranges): Rename to... + (path_range_query::compute_ranges): ...this. + (path_range_query::precompute_relations): Rename to... + (path_range_query::compute_relations): ...this. + (path_range_query::precompute_phi_relations): Rename to... + (path_range_query::compute_phi_relations): ...this. + * gimple-range-path.h: Rename precompute* to compute*. + * tree-ssa-threadbackward.c + (back_threader::find_taken_edge_switch): Same. + (back_threader::find_taken_edge_cond): Same. + * tree-ssa-threadedge.c + (hybrid_jt_simplifier::compute_ranges_from_state): Same. + (hybrid_jt_state::register_equivs_stmt): Inline... + * tree-ssa-threadedge.h: ...here. + +2021-09-27 Aldy Hernandez + + * tree-vrp.c (lhs_of_dominating_assert): Remove. + (class vrp_jt_state): Remove. + (class vrp_jt_simplifier): Remove. + (vrp_jt_simplifier::simplify): Remove. + (class vrp_jump_threader): Remove. + (vrp_jump_threader::vrp_jump_threader): Remove. + (vrp_jump_threader::~vrp_jump_threader): Remove. + (vrp_jump_threader::before_dom_children): Remove. + (vrp_jump_threader::after_dom_children): Remove. + +2021-09-27 Aldy Hernandez + + * passes.def (pass_vrp_threader): New. + * tree-pass.h (make_pass_vrp_threader): Add make_pass_vrp_threader. + * tree-ssa-threadedge.c (hybrid_jt_state::register_equivs_stmt): New. + (hybrid_jt_simplifier::hybrid_jt_simplifier): New. + (hybrid_jt_simplifier::simplify): New. + (hybrid_jt_simplifier::compute_ranges_from_state): New. + * tree-ssa-threadedge.h (class hybrid_jt_state): New. + (class hybrid_jt_simplifier): New. + * tree-vrp.c (execute_vrp): Remove ASSERT_EXPR based jump + threader. + (class hybrid_threader): New. + (hybrid_threader::hybrid_threader): New. + (hybrid_threader::~hybrid_threader): New. + (hybrid_threader::before_dom_children): New. + (hybrid_threader::after_dom_children): New. + (execute_vrp_threader): New. + (class pass_vrp_threader): New. + (make_pass_vrp_threader): New. + +2021-09-27 Martin Liska + + * output.h (enum section_flag): New. + (SECTION_FORGET): Remove. + (SECTION_ENTSIZE): Make it (1UL << 8) - 1. + (SECTION_STYLE_MASK): Define it based on other enum + values. + * varasm.c (switch_to_section): Remove unused handling of + SECTION_FORGET. + +2021-09-27 Martin Liska + + * common.opt: Add new variable flag_default_complex_method. + * opts.c (finish_options): Handle flags related to + x_flag_complex_method. + * toplev.c (process_options): Remove option handling related + to flag_complex_method. + +2021-09-27 Richard Biener + + PR middle-end/102450 + * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid using + type_for_size, instead use int_mode_for_size. + +2021-09-27 Andrew Pinski + + PR c/94726 + * gimplify.c (gimplify_save_expr): Return early + if the type of val is error_mark_node. + +2021-09-27 Aldy Hernandez + + * tree-ssanames.c (ssa_name_has_boolean_range): Use + get_range_query. + +2021-09-27 Aldy Hernandez + + * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove + vrp_visit_cond_stmt. + * tree-ssa-dom.c (cprop_operand): Convert to range_query API. + (cprop_into_stmt): Same. + (dom_opt_dom_walker::optimize_stmt): Same. + +2021-09-27 Richard Biener + + PR tree-optimization/97351 + PR tree-optimization/97352 + PR tree-optimization/82426 + * tree-vectorizer.h (dr_misalignment): Add vector type + argument. + (aligned_access_p): Likewise. + (known_alignment_for_access_p): Likewise. + (vect_supportable_dr_alignment): Likewise. + (vect_known_alignment_in_bytes): Likewise. Refactor. + (DR_MISALIGNMENT): Remove. + (vect_update_shared_vectype): Likewise. + * tree-vect-data-refs.c (dr_misalignment): Refactor, handle + a vector type with larger alignment requirement and apply + the negative step adjustment here. + (vect_calculate_target_alignment): Remove. + (vect_compute_data_ref_alignment): Get explicit vector type + argument, do not apply a negative step alignment adjustment + here. + (vect_slp_analyze_node_alignment): Re-analyze alignment + when we re-visit the DR with a bigger desired alignment but + keep more precise results from smaller alignments. + * tree-vect-slp.c (vect_update_shared_vectype): Remove. + (vect_slp_analyze_node_operations_1): Do not update the + shared vector type on stmts. + * tree-vect-stmts.c (vect_analyze_stmt): Push/pop the + vector type of an SLP node to the representative stmt-info. + (vect_transform_stmt): Likewise. + +2021-09-27 liuhongt + + Revert: + 2021-09-09 liuhongt + + PR target/101059 + * config/i386/sse.md (reduc_plus_scal_): Split to .. + (reduc_plus_scal_v4sf): .. this, New define_expand. + (reduc_plus_scal_v2df): .. and this, New define_expand. + +2021-09-26 liuhongt + + * doc/extend.texi (Half-Precision): Remove storage only + description for _Float16 w/o avx512fp16. + +2021-09-25 Dimitar Dimitrov + + * config/pru/constraints.md (Rrio): New constraint. + * config/pru/predicates.md (regio_operand): New predicate. + * config/pru/pru-pragma.c (pru_register_pragmas): Register + the __regio_symbol address space. + * config/pru/pru-protos.h (pru_symref2ioregno): Declaration. + * config/pru/pru.c (pru_symref2ioregno): New helper function. + (pru_legitimate_address_p): Remove. + (pru_addr_space_legitimate_address_p): Use the address space + aware hook variant. + (pru_nongeneric_pointer_addrspace): New helper function. + (pru_insert_attributes): New function to validate __regio_symbol + usage. + (TARGET_INSERT_ATTRIBUTES): New macro. + (TARGET_LEGITIMATE_ADDRESS_P): Remove. + (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): New macro. + * config/pru/pru.h (enum reg_class): Add REGIO_REGS class. + * config/pru/pru.md (*regio_readsi): New pattern to read I/O + registers. + (*regio_nozext_writesi): New pattern to write to I/O registers. + (*regio_zext_write_r30): Ditto. + * doc/extend.texi: Document the new PRU Named Address Space. + +2021-09-24 Patrick Palka + + PR c++/98216 + PR c++/91292 + * real.c (encode_ieee_double): Avoid unwanted sign extension. + (encode_ieee_quad): Likewise. + +2021-09-24 Vladimir Makarov + + PR rtl-optimization/102147 + * ira-build.c (ira_conflict_vector_profitable_p): Make + profitability calculation independent of host compiler pointer and + IRA_INT_BITS sizes. + +2021-09-24 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::path_range_query): + Move debugging header... + (path_range_query::precompute_ranges): ...here. + (path_range_query::internal_range_of_expr): Do not call + range_on_path_entry if NAME is defined in the current block. + +2021-09-24 Richard Biener + + * cfghooks.c (verify_flow_info): Verify unallocated BB and + edge flags are not set. + +2021-09-24 Aldy Hernandez + + * tree-ssa-threadupdate.c (jt_path_registry::cancel_invalid_paths): + New. + (jt_path_registry::register_jump_thread): Call + cancel_invalid_paths. + * tree-ssa-threadupdate.h (class jt_path_registry): Add + cancel_invalid_paths. + +2021-09-24 Feng Xue + + PR tree-optimization/102400 + * tree-ssa-sccvn.c (vn_reference_insert_pieces): Initialize + result_vdef to zero value. + +2021-09-24 Feng Xue + + PR tree-optimization/102451 + * tree-ssa-dse.c (delete_dead_or_redundant_call): Record bb of stmt + before removal. + +2021-09-24 Hongyu Wang + + * config/i386/sse.md (cond_): Extend to support + vector HFmodes. + (cond_mul): Likewise. + (cond_div): Likewise. + (cond_): Likewise. + (cond_fma): Likewise. + (cond_fms): Likewise. + (cond_fnma): Likewise. + (cond_fnms): Likewise. + +2021-09-23 Andrew MacLeod + + PR tree-optimization/102463 + * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): If + there is no range-ops handler, don't look for a relation. + +2021-09-23 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::ranger_cache): Take + non-executable_edge flag as parameter. + * gimple-range-cache.h (ranger_cache): Adjust prototype. + * gimple-range-gori.cc (gori_compute::gori_compute): Take + non-executable_edge flag as parameter. + (gori_compute::outgoing_edge_range_p): Check new flag. + * gimple-range-gori.h (gori_compute): Adjust prototype. + * gimple-range.cc (gimple_ranger::gimple_ranger): Create new flag. + (gimple_ranger::range_on_edge): Check new flag. + * gimple-range.h (gimple_ranger::non_executable_edge_flag): New. + * gimple-ssa-evrp.c (rvrp_folder): Pass ranger flag to simplifer. + (hybrid_folder::hybrid_folder): Set ranger non-executable flag value. + (hybrid_folder::fold_stmt): Set flag value in the simplifer. + * vr-values.c (simplify_using_ranges::set_and_propagate_unexecutable): + Use not_executable flag if provided inmstead of EDGE_EXECUTABLE. + (simplify_using_ranges::simplify_switch_using_ranges): Clear + EDGE_EXECUTABLE like it originally did. + (simplify_using_ranges::cleanup_edges_and_switches): Clear any + NON_EXECUTABLE flags. + (simplify_using_ranges::simplify_using_ranges): Adjust. + * vr-values.h (class simplify_using_ranges): Adjust. + (simplify_using_ranges::set_range_query): Add non-executable flag param. + +2021-09-23 Bill Schmidt + + PR target/102024 + * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Detect + zero-width bit fields and return indicator. + (rs6000_discover_homogeneous_aggregate): Diagnose when the + presence of a zero-width bit field changes parameter passing in + GCC 12. + +2021-09-23 Aldy Hernandez + + * gimple-range-fold.cc (fold_using_range::range_of_phi): + Remove dominator check. + +2021-09-23 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::precompute_relations): + Hoist edge calculations before using EDGE_SUCC. + +2021-09-23 Jonathan Wakely + + * configure.ac: Fix --with-multilib-list description. + * configure: Regenerate. + +2021-09-23 Richard Biener + + PR tree-optimization/102448 + * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): + Clear alignment info copied from DR_PTR_INFO. + +2021-09-23 Hongyu Wang + + * config/i386/i386-expand.c (ix86_use_mask_cmp_p): Enable + HFmode mask_cmp. + * config/i386/sse.md (sseintvecmodelower): Add HF vector modes. + (_store_mask): Extend to support HF vector modes. + (vec_cmp): Likewise. + (vcond_mask_): Likewise. + (vcond): New expander. + (vcond): Likewise. + (vcond): Likewise. + (vcondu): Likewise. + +2021-09-23 Hongyu Wang + + * config/i386/sse.md (extend2): + New expander. + (extendv4hf2): Likewise. + (extendv2hfv2df2): Likewise. + (trunc2): Likewise. + (avx512fp16_vcvt2ph_): Rename to ... + (truncv4hf2): ... this, and drop constraints. + (avx512fp16_vcvtpd2ph_v2df): Rename to ... + (truncv2dfv2hf2): ... this, and likewise. + +2021-09-23 Hongyu Wang + + * config/i386/sse.md (float2): + New expander. + (avx512fp16_vcvt2ph_): + Rename to ... + (floatv4hf2): ... this, and drop constraints. + (avx512fp16_vcvtqq2ph_v2di): Rename to ... + (floatv2div2hf2): ... this, and likewise. + +2021-09-23 Hongyu Wang + + * config/i386/i386.md (fix_trunchf2): New expander. + (fixuns_trunchfhi2): Likewise. + (*fixuns_trunchfsi2zext): New define_insn. + * config/i386/sse.md (ssePHmodelower): New mode_attr. + (fix_trunc2): + New expander for same element vector fix_truncate. + (fix_trunc2): + Likewise for V4HF to V4SI/V4DI fix_truncate. + (fix_truncv2hfv2di2): + Likeise for V2HF to V2DI fix_truncate. + +2021-09-23 Hongyu Wang + + * config/i386/i386.md (hf3): New expander. + +2021-09-23 liuhongt + + * config/i386/sse.md (FMAMODEM): extend to handle FP16. + (VFH_SF_AVX512VL): Extend to handle HFmode. + (VF_SF_AVX512VL): Deleted. + +2021-09-23 liuhongt + + * config/i386/i386.md (rinthf2): New expander. + (nearbyinthf2): New expander. + +2021-09-23 Aldy Hernandez + + * tree-ssa-dom.c (class dom_jump_threader_simplifier): Rename... + (class dom_jt_state): ...this and provide virtual overrides. + (dom_jt_state::register_equiv): New. + (class dom_jt_simplifier): Rename from + dom_jump_threader_simplifier. + (dom_jump_threader_simplifier::simplify): Rename... + (dom_jt_simplifier::simplify): ...to this. + (pass_dominator::execute): Use dom_jt_simplifier and + dom_jt_state. + * tree-ssa-threadedge.c (jump_threader::jump_threader): + Clean-up. + (jt_state::register_equivs_stmt): Abstract out... + (jump_threader::record_temporary_equivalences_from_stmts_at_dest): + ...from here. + (jump_threader::thread_around_empty_blocks): Update state. + (jump_threader::thread_through_normal_block): Same. + (jt_state::jt_state): Remove. + (jt_state::push): Remove pass specific bits. Keep block vector + updated. + (jt_state::append_path): New. + (jt_state::pop): Remove pass specific bits. + (jt_state::register_equiv): Same. + (jt_state::record_ranges_from_stmt): Same. + (jt_state::register_equivs_on_edge): Same. Rename... + (jt_state::register_equivs_edge): ...to this. + (jt_state::dump): New. + (jt_state::debug): New. + (jump_threader_simplifier::simplify): Remove. + (jt_state::get_path): New. + * tree-ssa-threadedge.h (class jt_simplifier): Make into a base + class. Expose common functionality as virtual methods. + (class jump_threader_simplifier): Same. Rename... + (class jt_simplifier): ...to this. + * tree-vrp.c (class vrp_jump_threader_simplifier): Rename... + (class vrp_jt_simplifier): ...to this. Provide pass specific + overrides. + (class vrp_jt_state): New. + (vrp_jump_threader_simplifier::simplify): Rename... + (vrp_jt_simplifier::simplify): ...to this. Inline code from + what used to be the base class. + (vrp_jump_threader::vrp_jump_threader): Use vrp_jt_state and + vrp_jt_simplifier. + +2021-09-22 Tobias Burnus + + PR fortran/55534 + * doc/invoke.texi (-Wno-missing-include-dirs.): Document Fortran + behavior. + +2021-09-22 Roger Sayle + Richard Biener + + * match.pd (negation simplifications): Implement some negation + folding transformations from fold-const.c's fold_negate_expr. + * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Add a SIMPLIFY + argument, to control whether the op should be simplified prior + to looking up/assigning a value number. + (vn_nary_build_or_lookup): Update call to vn_nary_build_or_lookup_1. + (vn_nary_simplify): Likewise. + (visit_nary_op): Likewise, but when constructing a NEGATE_EXPR + now call vn_nary_build_or_lookup_1 disabling simplification. + +2021-09-22 Jiufu Guo + + PR tree-optimization/102087 + * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): + Update bound/cmp/control for niter. + +2021-09-22 Aldy Hernandez + + * gimple-range-fold.cc (fold_using_range::range_of_range_op): + Move check for non-empty BB here. + (fur_source::register_outgoing_edges): ...from here. + +2021-09-22 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::internal_range_of_expr): + Remove call to improve_range_with_equivs. + (path_range_query::improve_range_with_equivs): Remove + * gimple-range-path.h: Remove improve_range_with_equivs. + +2021-09-22 dianhong xu + + * config/i386/avx512fp16intrin.h: + (_mm512_mask_blend_ph): New intrinsic. + (_mm512_permutex2var_ph): Ditto. + (_mm512_permutexvar_ph): Ditto. + * config/i386/avx512fp16vlintrin.h: + (_mm256_mask_blend_ph): New intrinsic. + (_mm256_permutex2var_ph): Ditto. + (_mm256_permutexvar_ph): Ditto. + (_mm_mask_blend_ph): Ditto. + (_mm_permutex2var_ph): Ditto. + (_mm_permutexvar_ph): Ditto. + +2021-09-22 dianhong xu + + * config/i386/avx512fp16intrin.h: Add new intrinsics. + (_mm512_conj_pch): New intrinsic. + (_mm512_mask_conj_pch): Ditto. + (_mm512_maskz_conj_pch): Ditto. + * config/i386/avx512fp16vlintrin.h: Add new intrinsics. + (_mm256_conj_pch): New intrinsic. + (_mm256_mask_conj_pch): Ditto. + (_mm256_maskz_conj_pch): Ditto. + (_mm_conj_pch): Ditto. + (_mm_mask_conj_pch): Ditto. + (_mm_maskz_conj_pch): Ditto. + +2021-09-22 dianhong xu + + * config/i386/avx512fp16intrin.h (_MM512_REDUCE_OP): New macro + (_mm512_reduce_add_ph): New intrinsic. + (_mm512_reduce_mul_ph): Ditto. + (_mm512_reduce_min_ph): Ditto. + (_mm512_reduce_max_ph): Ditto. + * config/i386/avx512fp16vlintrin.h + (_MM256_REDUCE_OP/_MM_REDUCE_OP): New macro. + (_mm256_reduce_add_ph): New intrinsic. + (_mm256_reduce_mul_ph): Ditto. + (_mm256_reduce_min_ph): Ditto. + (_mm256_reduce_max_ph): Ditto. + (_mm_reduce_add_ph): Ditto. + (_mm_reduce_mul_ph): Ditto. + (_mm_reduce_min_ph): Ditto. + (_mm_reduce_max_ph): Ditto. + +2021-09-22 dianhong xu + + * config/i386/avx512fp16intrin.h (__m512h_u, __m256h_u, + __m128h_u): New typedef. + (_mm512_load_ph): New intrinsic. + (_mm256_load_ph): Ditto. + (_mm_load_ph): Ditto. + (_mm512_loadu_ph): Ditto. + (_mm256_loadu_ph): Ditto. + (_mm_loadu_ph): Ditto. + (_mm512_store_ph): Ditto. + (_mm256_store_ph): Ditto. + (_mm_store_ph): Ditto. + (_mm512_storeu_ph): Ditto. + (_mm256_storeu_ph): Ditto. + (_mm_storeu_ph): Ditto. + (_mm512_abs_ph): Ditto. + * config/i386/avx512fp16vlintrin.h + (_mm_abs_ph): Ditto. + (_mm256_abs_ph): Ditto. + +2021-09-22 Andreas Krebbel + + * config/s390/tpf.md (prologue_tpf, epilogue_tpf): Add cc clobber. + +2021-09-22 Andreas Krebbel + + PR target/102222 + * config/s390/s390.c (s390_expand_insv): Emit a normal move if it + is actually a full copy of the source operand into the target. + Don't emit a strict low part move if source and target mode match. + +2021-09-22 Jakub Jelinek + + PR middle-end/102415 + * omp-expand.c (expand_omp_single): If region->exit is NULL, + assert region->entry is GIMPLE_OMP_SCOPE region and return. + +2021-09-22 Jakub Jelinek + + * tree.h (OMP_CLAUSE_ALLOCATE_ALIGN): Define. + * tree.c (omp_clause_num_ops): Change number of OMP_CLAUSE_ALLOCATE + arguments from 2 to 3. + * tree-pretty-print.c (dump_omp_clause): Print allocator() around + allocate clause allocator and print align if present. + * omp-low.c (scan_sharing_clauses): Force allocate_map entry even + for omp_default_mem_alloc if align modifier is present. If align + modifier is present, use TREE_LIST to encode both allocator and + align. + (lower_private_allocate, lower_rec_input_clauses, create_task_copyfn): + Handle align modifier on allocator clause if present. + +2021-09-22 liuhongt + + * config/i386/i386.md (define_attr "isa"): Add + fma_or_avx512vl. + (define_attr "enabled"): Correspond fma_or_avx512vl to + TARGET_FMA || TARGET_AVX512VL. + * config/i386/mmx.md (fmav2sf4): Extend to AVX512 fma. + (fmsv2sf4): Ditto. + (fnmav2sf4): Ditto. + (fnmsv2sf4): Ditto. + +2021-09-22 liuhongt + + * config/i386/i386.md (cstorehf3): New define_expand. + +2021-09-22 liuhongt + + * config/i386/i386.md (hf2): New expander. + (sse4_1_round2): Extend from MODEF to MODEFH. + * config/i386/sse.md (*sse4_1_round): + Extend from VF_128 to VFH_128. + +2021-09-22 liuhongt + + * config/i386/i386-features.c (i386-features.c): Handle + E_HFmode. + * config/i386/i386.md (sqrthf2): New expander. + (*sqrthf2): New define_insn. + * config/i386/sse.md + (*_vmsqrt2): + Extend to VFH_128. + +2021-09-22 liuhongt + + * config/i386/avx512fp16intrin.h (_mm_mask_fcmadd_sch): + New intrinsic. + (_mm_mask3_fcmadd_sch): Likewise. + (_mm_maskz_fcmadd_sch): Likewise. + (_mm_fcmadd_sch): Likewise. + (_mm_mask_fmadd_sch): Likewise. + (_mm_mask3_fmadd_sch): Likewise. + (_mm_maskz_fmadd_sch): Likewise. + (_mm_fmadd_sch): Likewise. + (_mm_mask_fcmadd_round_sch): Likewise. + (_mm_mask3_fcmadd_round_sch): Likewise. + (_mm_maskz_fcmadd_round_sch): Likewise. + (_mm_fcmadd_round_sch): Likewise. + (_mm_mask_fmadd_round_sch): Likewise. + (_mm_mask3_fmadd_round_sch): Likewise. + (_mm_maskz_fmadd_round_sch): Likewise. + (_mm_fmadd_round_sch): Likewise. + (_mm_fcmul_sch): Likewise. + (_mm_mask_fcmul_sch): Likewise. + (_mm_maskz_fcmul_sch): Likewise. + (_mm_fmul_sch): Likewise. + (_mm_mask_fmul_sch): Likewise. + (_mm_maskz_fmul_sch): Likewise. + (_mm_fcmul_round_sch): Likewise. + (_mm_mask_fcmul_round_sch): Likewise. + (_mm_maskz_fcmul_round_sch): Likewise. + (_mm_fmul_round_sch): Likewise. + (_mm_mask_fmul_round_sch): Likewise. + (_mm_maskz_fmul_round_sch): Likewise. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/sse.md + (avx512fp16_fmaddcsh_v8hf_maskz): New expander. + (avx512fp16_fcmaddcsh_v8hf_maskz): Ditto. + (avx512fp16_fma_sh_v8hf): + New define insn. + (avx512fp16_sh_v8hf_mask): Ditto. + (avx512fp16_sh_v8hf): + Ditto. + * config/i386/subst.md (mask_scalarcz_name): New. + (mask_scalarc_name): Ditto. + (mask_scalarc_operand3): Ditto. + (mask_scalarcz_operand4): Ditto. + (round_scalarcz_name): Ditto. + (round_scalarc_mask_operand3): Ditto. + (round_scalarcz_mask_operand4): Ditto. + (round_scalarc_mask_op3): Ditto. + (round_scalarcz_mask_op4): Ditto. + (round_scalarcz_constraint): Ditto. + (round_scalarcz_nimm_predicate): Ditto. + (mask_scalarcz): Ditto. + (mask_scalarc): Ditto. + (round_scalarcz): Ditto. + +2021-09-22 liuhongt + + * config/i386/avx512fp16intrin.h (_mm512_fcmadd_pch): + New intrinsic. + (_mm512_mask_fcmadd_pch): Likewise. + (_mm512_mask3_fcmadd_pch): Likewise. + (_mm512_maskz_fcmadd_pch): Likewise. + (_mm512_fmadd_pch): Likewise. + (_mm512_mask_fmadd_pch): Likewise. + (_mm512_mask3_fmadd_pch): Likewise. + (_mm512_maskz_fmadd_pch): Likewise. + (_mm512_fcmadd_round_pch): Likewise. + (_mm512_mask_fcmadd_round_pch): Likewise. + (_mm512_mask3_fcmadd_round_pch): Likewise. + (_mm512_maskz_fcmadd_round_pch): Likewise. + (_mm512_fmadd_round_pch): Likewise. + (_mm512_mask_fmadd_round_pch): Likewise. + (_mm512_mask3_fmadd_round_pch): Likewise. + (_mm512_maskz_fmadd_round_pch): Likewise. + (_mm512_fcmul_pch): Likewise. + (_mm512_mask_fcmul_pch): Likewise. + (_mm512_maskz_fcmul_pch): Likewise. + (_mm512_fmul_pch): Likewise. + (_mm512_mask_fmul_pch): Likewise. + (_mm512_maskz_fmul_pch): Likewise. + (_mm512_fcmul_round_pch): Likewise. + (_mm512_mask_fcmul_round_pch): Likewise. + (_mm512_maskz_fcmul_round_pch): Likewise. + (_mm512_fmul_round_pch): Likewise. + (_mm512_mask_fmul_round_pch): Likewise. + (_mm512_maskz_fmul_round_pch): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm_fmadd_pch): + New intrinsic. + (_mm_mask_fmadd_pch): Likewise. + (_mm_mask3_fmadd_pch): Likewise. + (_mm_maskz_fmadd_pch): Likewise. + (_mm256_fmadd_pch): Likewise. + (_mm256_mask_fmadd_pch): Likewise. + (_mm256_mask3_fmadd_pch): Likewise. + (_mm256_maskz_fmadd_pch): Likewise. + (_mm_fcmadd_pch): Likewise. + (_mm_mask_fcmadd_pch): Likewise. + (_mm_mask3_fcmadd_pch): Likewise. + (_mm_maskz_fcmadd_pch): Likewise. + (_mm256_fcmadd_pch): Likewise. + (_mm256_mask_fcmadd_pch): Likewise. + (_mm256_mask3_fcmadd_pch): Likewise. + (_mm256_maskz_fcmadd_pch): Likewise. + (_mm_fmul_pch): Likewise. + (_mm_mask_fmul_pch): Likewise. + (_mm_maskz_fmul_pch): Likewise. + (_mm256_fmul_pch): Likewise. + (_mm256_mask_fmul_pch): Likewise. + (_mm256_maskz_fmul_pch): Likewise. + (_mm_fcmul_pch): Likewise. + (_mm_mask_fcmul_pch): Likewise. + (_mm_maskz_fcmul_pch): Likewise. + (_mm256_fcmul_pch): Likewise. + (_mm256_mask_fcmul_pch): Likewise. + (_mm256_maskz_fcmul_pch): Likewise. + * config/i386/i386-builtin-types.def (V8HF_FTYPE_V8HF_V8HF_V8HF, + V8HF_FTYPE_V16HF_V16HF_V16HF, V16HF_FTYPE_V16HF_V16HF_V16HF_UQI, + V32HF_FTYPE_V32HF_V32HF_V32HF_INT, + V32HF_FTYPE_V32HF_V32HF_V32HF_UHI_INT): Add new builtin types. + * config/i386/i386-builtin.def: Add new builtins. + * config/i386/i386-expand.c: Handle new builtin types. + * config/i386/subst.md (SUBST_CV): New. + (maskc_name): Ditto. + (maskc_operand3): Ditto. + (maskc): Ditto. + (sdc_maskz_name): Ditto. + (sdc_mask_op4): Ditto. + (sdc_mask_op5): Ditto. + (sdc_mask_mode512bit_condition): Ditto. + (sdc): Ditto. + (round_maskc_operand3): Ditto. + (round_sdc_mask_operand4): Ditto. + (round_maskc_op3): Ditto. + (round_sdc_mask_op4): Ditto. + (round_saeonly_sdc_mask_operand5): Ditto. + * config/i386/sse.md (unspec): Add complex fma unspecs. + (avx512fmaskcmode): New. + (UNSPEC_COMPLEX_F_C_MA): Ditto. + (UNSPEC_COMPLEX_F_C_MUL): Ditto. + (complexopname): Ditto. + (_fmaddc__maskz): New expander. + (_fcmaddc__maskz): Ditto. + (fma__): New + define insn. + (___mask): Ditto. + (__): Ditto. + +2021-09-22 Kewen Lin + + * config/rs6000/rs6000.opt (rs6000-density-pct-threshold, + rs6000-density-size-threshold, rs6000-density-penalty, + rs6000-density-load-pct-threshold, + rs6000-density-load-num-threshold): New parameter. + * config/rs6000/rs6000.c (rs6000_density_test): Adjust with + corresponding parameters. + +2021-09-21 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::defined_outside_path): + New. + (path_range_query::range_on_path_entry): New. + (path_range_query::internal_range_of_expr): Resolve unknowns + with ranger. + (path_range_query::improve_range_with_equivs): New. + (path_range_query::ssa_range_in_phi): Resolve unknowns with + ranger. + * gimple-range-path.h (class path_range_query): Add + defined_outside_path, range_on_path_entry, and + improve_range_with_equivs. + +2021-09-21 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::add_to_imports): New. + (path_range_query::add_copies_to_imports): New. + (path_range_query::precompute_ranges): Call + add_copies_to_imports. + * gimple-range-path.h (class path_range_query): Add prototypes + for add_copies_to_imports and add_to_imports. + +2021-09-21 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::range_defined_in_block): + Remove useless code. + +2021-09-21 Aldy Hernandez + + * gimple-range-fold.h (class fur_source): Make oracle protected. + * gimple-range-path.cc (path_range_query::path_range_query): Add + resolve argument. Initialize oracle. + (path_range_query::~path_range_query): Delete oracle. + (path_range_query::range_of_stmt): Adapt to use relations. + (path_range_query::precompute_ranges): Pre-compute relations. + (class jt_fur_source): New + (jt_fur_source::jt_fur_source): New. + (jt_fur_source::register_relation): New. + (jt_fur_source::query_relation): New. + (path_range_query::precompute_relations): New. + (path_range_query::precompute_phi_relations): New. + * gimple-range-path.h (path_range_query): Add resolve argument. + Add oracle, precompute_relations, precompute_phi_relations. + * tree-ssa-threadbackward.c (back_threader::back_threader): Pass + resolve argument to solver. + +2021-09-21 Aldy Hernandez + + * gimple-range-fold.cc (fold_using_range::range_of_range_op): + Rename postfold_gcond_edges to register_outgoing_edges and + adapt. + (fold_using_range::postfold_gcond_edges): Rename... + (fur_source::register_outgoing_edges): ...to this. + * gimple-range-fold.h (postfold_gcond_edges): Rename to + register_outgoing_edges and move to fur_source. + +2021-09-21 Aldy Hernandez + + * gimple-range-fold.cc (fold_using_range::range_of_phi): Check + dom_info_available_p. + +2021-09-21 Aldy Hernandez + + * gimple-range-cache.cc (non_null_ref::non_null_ref): Use create + and quick_grow_cleared instead of safe_grow_cleared. + +2021-09-21 Thomas Schwinge + + PR other/102408 + * omp-oacc-neuter-broadcast.cc (oacc_do_neutering): Evaluate + 'random ()' to '0'. + +2021-09-21 Richard Earnshaw + + * configure.ac: Detect when the assembler supports new-style + architecture extensions. + * common/config/arm/arm-common.c (arm_rewrite_mcpu): Return + the full CPU string if the assembler can grok it. + (arm_rewrite_march): Likewise but for the architecture. + * config.in: Regenerate. + * configure: Regenerate. + +2021-09-21 Richard Biener + + PR tree-optimization/102421 + * tree-vect-loop.c (vect_dissolve_slp_only_groups): Copy and + adjust alignment info. + +2021-09-21 Kewen Lin + + * ipa-fnsummary.c (ipa_fn_summary_write): Remove inconsistent + bitfield stream out. + +2021-09-20 Andrew MacLeod + + * gimple-range-fold.cc (fold_using_range::range_of_phi): Ignore + undefined edges, apply an equivalence if appropriate. + * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Return + UNDEFINED if EDGE_EXECUTABLE is not set. + * gimple-range.cc (gimple_ranger::gimple_ranger): Set all edges + as EXECUTABLE upon startup. + (gimple_ranger::range_on_edge): Return UNDEFINED for edges without + EDGE_EXECUTABLE set. + * vr-values.c (set_and_propagate_unexecutable): New. + (simplify_using_ranges::fold_cond): Call set_and_propagate. + (simplify_using_ranges::simplify_switch_using_ranges): Ditto. + * vr-values.h: Add prototype. + +2021-09-20 Andrew MacLeod + + * value-relation.cc (equiv_oracle::register_initial_def): New. + (equiv_oracle::register_relation): Call register_initial_def. + (equiv_oracle::add_equiv_to_block): New. Split register_relation. + (relation_oracle::register_stmt): Check def block of PHI arguments. + * value-relation.h (equiv_oracle): Add new prototypes. + +2021-09-20 Matthias Kretz + + * cppbuiltin.c (define_builtin_macros_for_compilation_flags): + Define __RECIPROCAL_MATH__, __NO_SIGNED_ZEROS__, + __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, and + __ROUNDING_MATH__ according to their corresponding flags. + * doc/cpp.texi: Document __RECIPROCAL_MATH__, + __NO_SIGNED_ZEROS__, __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, + and __ROUNDING_MATH__. + +2021-09-20 Richard Biener + + * tree-vect-stmts.c (vectorizable_load): Use the vectype + from the SLP node. + +2021-09-20 Richard Biener + + * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): + Do not compute alignment of the vectorized access here. + +2021-09-20 Richard Biener + + * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): + Store -1 for runtime alias peeling iterations. + +2021-09-20 Richard Biener + + * config.gcc: Obsolete hppa[12]*-*-hpux10* and hppa[12]*-*-hpux11*. + +2021-09-20 Thomas Schwinge + + * input.c (string_concat_db::record_string_concatenation) + (string_concat_db::get_string_concatenation): Skip for + 'RESERVED_LOCATION_P'. + +2021-09-20 Richard Biener + + PR tree-optimization/65206 + * tree-data-ref.h (struct data_reference): Add alt_indices, + order it last. + * tree-data-ref.c (free_data_ref): Release alt_indices. + (dr_analyze_indices): Work on struct indices and get DR_REF as tree. + (create_data_ref): Adjust. + (initialize_data_dependence_relation): Split into head + and tail. When the base objects fail to match up try + again with pointer-based analysis of indices. + * tree-vectorizer.c (vec_info_shared::check_datarefs): Do + not compare the lazily computed alternate set of indices. + +2021-09-20 Iain Sandoe + + * gcc.c: Test for execute OK when we find the + programs for assembler linker and dsymutil and those + were specified at configure-time. + +2021-09-19 Martin Sebor + + PR middle-end/102403 + * gimple-predicate-analysis.cc (predicate::init_from_control_deps): + Correct a function pre/postcondition. + +2021-09-19 Martin Sebor + + PR middle-end/102243 + * tree-ssa-strlen.c (get_range): Handle null cfun. + +2021-09-19 Iain Sandoe + + * config/darwin.h (LINK_COMMAND_SPEC_A): Use Darwin10 + unwinder shim as a convenience library. + +2021-09-19 Andrew Pinski + + * doc/install.texi: Add note about + binutils 2.35 is required for LTO usage. + +2021-09-19 Aldy Hernandez + + * tree-ssa-threadbackward.c + (back_threader_registry::register_path): Use push_edge. + * tree-ssa-threadedge.c + (jump_threader::thread_around_empty_blocks): Same. + (jump_threader::thread_through_normal_block): Same. + (jump_threader::thread_across_edge): Same. Also, use auto_bitmap. + Tidy up code. + * tree-ssa-threadupdate.c + (jt_path_registry::allocate_thread_edge): Remove. + (jt_path_registry::push_edge): New. + (dump_jump_thread_path): Make static. + * tree-ssa-threadupdate.h (allocate_thread_edge): Remove. + (push_edge): New. + +2021-09-19 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::path_range_query): Add + header. + (path_range_query::dump): Remove extern declaration of dump_ranger. + * gimple-range-trace.cc (dump_ranger): Add DEBUG_FUNCTION marker. + * gimple-range-trace.h (dump_ranger): Add prototype. + +2021-09-19 John Ericson + + * gcc.c (find_a_program): New function, factored out of... + (find_a_file): Here. + (execute): Use find_a_program when looking for programs rather + than find_a_file. + +2021-09-19 Matwey V. Kornilov + + * config/avr/avr-mcus.def: Add atmega324pb. + * doc/avr-mmcu.texi: Corresponding changes. + +2021-09-19 Roger Sayle + + PR middle-end/88173 + * match.pd (cmp @0 REAL_CST@1): When @0 is also REAL_CST, apply + the same transformations as to @1. For comparisons against NaN, + don't check HONOR_SNANS but confirm that neither operand is a + signaling NaN. + +2021-09-19 Benjamin Peterson + + * attribs.c (make_unique_name): Delete. + * attribs.h (make_unique_name): Delete. + +2021-09-19 Andrew Pinski + + * lra-constraints.c (check_and_process_move): Assert + that dclass and sclass are greater than or equal to NO_REGS. + +2021-09-18 Jakub Jelinek + + * tree.h (OMP_CLAUSE_ORDER_UNCONSTRAINED): Define. + * tree-pretty-print.c (dump_omp_clause): Print unconstrained: + for OMP_CLAUSE_ORDER_UNCONSTRAINED. + +2021-09-18 liuhongt + + * config/i386/i386-features.c (remove_partial_avx_dependency): + Restrict TARGET_USE_VECTOR_FP_CONVERTS and + TARGET_USE_VECTOR_CONVERTS to conversion instructions only. + +2021-09-18 Jakub Jelinek + + * gimplify.c (omp_default_clause): For C/C++ default({,first}private), + if file/namespace scope variable doesn't have predetermined sharing, + treat it as if there was default(none). + +2021-09-18 liuhongt + + * config/i386/avx512fp16intrin.h (_mm_fmadd_sh): + New intrinsic. + (_mm_mask_fmadd_sh): Likewise. + (_mm_mask3_fmadd_sh): Likewise. + (_mm_maskz_fmadd_sh): Likewise. + (_mm_fmadd_round_sh): Likewise. + (_mm_mask_fmadd_round_sh): Likewise. + (_mm_mask3_fmadd_round_sh): Likewise. + (_mm_maskz_fmadd_round_sh): Likewise. + (_mm_fnmadd_sh): Likewise. + (_mm_mask_fnmadd_sh): Likewise. + (_mm_mask3_fnmadd_sh): Likewise. + (_mm_maskz_fnmadd_sh): Likewise. + (_mm_fnmadd_round_sh): Likewise. + (_mm_mask_fnmadd_round_sh): Likewise. + (_mm_mask3_fnmadd_round_sh): Likewise. + (_mm_maskz_fnmadd_round_sh): Likewise. + (_mm_fmsub_sh): Likewise. + (_mm_mask_fmsub_sh): Likewise. + (_mm_mask3_fmsub_sh): Likewise. + (_mm_maskz_fmsub_sh): Likewise. + (_mm_fmsub_round_sh): Likewise. + (_mm_mask_fmsub_round_sh): Likewise. + (_mm_mask3_fmsub_round_sh): Likewise. + (_mm_maskz_fmsub_round_sh): Likewise. + (_mm_fnmsub_sh): Likewise. + (_mm_mask_fnmsub_sh): Likewise. + (_mm_mask3_fnmsub_sh): Likewise. + (_mm_maskz_fnmsub_sh): Likewise. + (_mm_fnmsub_round_sh): Likewise. + (_mm_mask_fnmsub_round_sh): Likewise. + (_mm_mask3_fnmsub_round_sh): Likewise. + (_mm_maskz_fnmsub_round_sh): Likewise. + * config/i386/i386-builtin-types.def + (V8HF_FTYPE_V8HF_V8HF_V8HF_UQI_INT): New builtin type. + * config/i386/i386-builtin.def: Add new builtins. + * config/i386/i386-expand.c: Handle new builtin type. + * config/i386/sse.md (fmai_vmfmadd_): + Ajdust to support FP16. + (fmai_vmfmsub_): Ditto. + (fmai_vmfnmadd_): Ditto. + (fmai_vmfnmsub_): Ditto. + (*fmai_fmadd_): Ditto. + (*fmai_fmsub_): Ditto. + (*fmai_fnmadd_): Ditto. + (*fmai_fnmsub_): Ditto. + (avx512f_vmfmadd__mask): Ditto. + (avx512f_vmfmadd__mask3): Ditto. + (avx512f_vmfmadd__maskz): Ditto. + (avx512f_vmfmadd__maskz_1): Ditto. + (*avx512f_vmfmsub__mask): Ditto. + (avx512f_vmfmsub__mask3): Ditto. + (*avx512f_vmfmsub__maskz_1): Ditto. + (*avx512f_vmfnmsub__mask): Ditto. + (*avx512f_vmfnmsub__mask3): Ditto. + (*avx512f_vmfnmsub__mask): Ditto. + (*avx512f_vmfnmadd__mask): Renamed to ... + (avx512f_vmfnmadd__mask) ... this, and + adjust to support FP16. + (avx512f_vmfnmadd__mask3): Ditto. + (avx512f_vmfnmadd__maskz_1): Ditto. + (avx512f_vmfnmadd__maskz): New + expander. + +2021-09-18 H.J. Lu + + * config/i386/sse.md (avx512fmaskmodelower): Extend to support + HF modes. + (maskload): Ditto. + (maskstore): Ditto. + +2021-09-18 H.J. Lu + + * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator): + Handle HFmode. + (ix86_expand_copysign): Ditto. + (ix86_expand_xorsign): Ditto. + * config/i386/i386.c (ix86_build_const_vector): Handle HF vector + modes. + (ix86_build_signbit_mask): Ditto. + (ix86_can_change_mode_class): Ditto. + * config/i386/i386.md + (SSEMODEF): Add HFmode. + (ssevecmodef): Ditto. + (hf2): New define_expand. + (*hf2_1): New define_insn_and_split. + (copysign): Extend to support HFmode under AVX512FP16. + (xorsign): Ditto. + * config/i386/sse.md (VFB): New mode iterator. + (VFB_128_256): Ditto. + (VFB_512): Ditto. + (sseintvecmode2): Support HF vector mode. + (2): Use new mode iterator. + (*2): Ditto. + (copysign3): Ditto. + (xorsign3): Ditto. + (3): Ditto. + (3): Ditto. + (_andnot3): Adjust for HF vector mode. + (_andnot3): Ditto. + (*3): Ditto. + (*3): Ditto. + +2021-09-18 liuhongt + + * config/i386/avx512fp16intrin.h (_mm512_mask_fmadd_ph): + New intrinsic. + (_mm512_mask3_fmadd_ph): Likewise. + (_mm512_maskz_fmadd_ph): Likewise. + (_mm512_fmadd_round_ph): Likewise. + (_mm512_mask_fmadd_round_ph): Likewise. + (_mm512_mask3_fmadd_round_ph): Likewise. + (_mm512_maskz_fmadd_round_ph): Likewise. + (_mm512_fnmadd_ph): Likewise. + (_mm512_mask_fnmadd_ph): Likewise. + (_mm512_mask3_fnmadd_ph): Likewise. + (_mm512_maskz_fnmadd_ph): Likewise. + (_mm512_fnmadd_round_ph): Likewise. + (_mm512_mask_fnmadd_round_ph): Likewise. + (_mm512_mask3_fnmadd_round_ph): Likewise. + (_mm512_maskz_fnmadd_round_ph): Likewise. + (_mm512_fmsub_ph): Likewise. + (_mm512_mask_fmsub_ph): Likewise. + (_mm512_mask3_fmsub_ph): Likewise. + (_mm512_maskz_fmsub_ph): Likewise. + (_mm512_fmsub_round_ph): Likewise. + (_mm512_mask_fmsub_round_ph): Likewise. + (_mm512_mask3_fmsub_round_ph): Likewise. + (_mm512_maskz_fmsub_round_ph): Likewise. + (_mm512_fnmsub_ph): Likewise. + (_mm512_mask_fnmsub_ph): Likewise. + (_mm512_mask3_fnmsub_ph): Likewise. + (_mm512_maskz_fnmsub_ph): Likewise. + (_mm512_fnmsub_round_ph): Likewise. + (_mm512_mask_fnmsub_round_ph): Likewise. + (_mm512_mask3_fnmsub_round_ph): Likewise. + (_mm512_maskz_fnmsub_round_ph): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm256_fmadd_ph): + New intrinsic. + (_mm256_mask_fmadd_ph): Likewise. + (_mm256_mask3_fmadd_ph): Likewise. + (_mm256_maskz_fmadd_ph): Likewise. + (_mm_fmadd_ph): Likewise. + (_mm_mask_fmadd_ph): Likewise. + (_mm_mask3_fmadd_ph): Likewise. + (_mm_maskz_fmadd_ph): Likewise. + (_mm256_fnmadd_ph): Likewise. + (_mm256_mask_fnmadd_ph): Likewise. + (_mm256_mask3_fnmadd_ph): Likewise. + (_mm256_maskz_fnmadd_ph): Likewise. + (_mm_fnmadd_ph): Likewise. + (_mm_mask_fnmadd_ph): Likewise. + (_mm_mask3_fnmadd_ph): Likewise. + (_mm_maskz_fnmadd_ph): Likewise. + (_mm256_fmsub_ph): Likewise. + (_mm256_mask_fmsub_ph): Likewise. + (_mm256_mask3_fmsub_ph): Likewise. + (_mm256_maskz_fmsub_ph): Likewise. + (_mm_fmsub_ph): Likewise. + (_mm_mask_fmsub_ph): Likewise. + (_mm_mask3_fmsub_ph): Likewise. + (_mm_maskz_fmsub_ph): Likewise. + (_mm256_fnmsub_ph): Likewise. + (_mm256_mask_fnmsub_ph): Likewise. + (_mm256_mask3_fnmsub_ph): Likewise. + (_mm256_maskz_fnmsub_ph): Likewise. + (_mm_fnmsub_ph): Likewise. + (_mm_mask_fnmsub_ph): Likewise. + (_mm_mask3_fnmsub_ph): Likewise. + (_mm_maskz_fnmsub_ph): Likewise. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/sse.md + (_fmadd__maskz): Adjust to + support HF vector modes. + (fma_fmadd_): + Ditto. + (*fma_fmadd__bcst_1): Ditto. + (*fma_fmadd__bcst_2): Ditto. + (*fma_fmadd__bcst_3): Ditto. + (_fmadd__mask): Ditto. + (_fmadd__mask3): Ditto. + (_fmsub__maskz): Ditto. + (fma_fmsub_): + Ditto. + (*fma_fmsub__bcst_1): Ditto. + (*fma_fmsub__bcst_2): Ditto. + (*fma_fmsub__bcst_3): Ditto. + (_fmsub__mask): Ditto. + (_fmsub__mask3): Ditto. + (fma_fnmadd_): + Ditto. + (*fma_fnmadd__bcst_1): Ditto. + (*fma_fnmadd__bcst_2): Ditto. + (*fma_fnmadd__bcst_3): Ditto. + (_fnmadd__mask): Ditto. + (_fnmadd__mask3): Ditto. + (_fnmsub__maskz): Ditto. + (fma_fnmsub_): + Ditto. + (*fma_fnmsub__bcst_1): Ditto. + (*fma_fnmsub__bcst_2): Ditto. + (*fma_fnmsub__bcst_3): Ditto. + (_fnmsub__mask): Ditto. + (_fnmsub__mask3): Ditto. + +2021-09-18 liuhongt + + * config/i386/avx512fp16intrin.h (_mm512_fmaddsub_ph): + New intrinsic. + (_mm512_mask_fmaddsub_ph): Likewise. + (_mm512_mask3_fmaddsub_ph): Likewise. + (_mm512_maskz_fmaddsub_ph): Likewise. + (_mm512_fmaddsub_round_ph): Likewise. + (_mm512_mask_fmaddsub_round_ph): Likewise. + (_mm512_mask3_fmaddsub_round_ph): Likewise. + (_mm512_maskz_fmaddsub_round_ph): Likewise. + (_mm512_mask_fmsubadd_ph): Likewise. + (_mm512_mask3_fmsubadd_ph): Likewise. + (_mm512_maskz_fmsubadd_ph): Likewise. + (_mm512_fmsubadd_round_ph): Likewise. + (_mm512_mask_fmsubadd_round_ph): Likewise. + (_mm512_mask3_fmsubadd_round_ph): Likewise. + (_mm512_maskz_fmsubadd_round_ph): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm256_fmaddsub_ph): + New intrinsic. + (_mm256_mask_fmaddsub_ph): Likewise. + (_mm256_mask3_fmaddsub_ph): Likewise. + (_mm256_maskz_fmaddsub_ph): Likewise. + (_mm_fmaddsub_ph): Likewise. + (_mm_mask_fmaddsub_ph): Likewise. + (_mm_mask3_fmaddsub_ph): Likewise. + (_mm_maskz_fmaddsub_ph): Likewise. + (_mm256_fmsubadd_ph): Likewise. + (_mm256_mask_fmsubadd_ph): Likewise. + (_mm256_mask3_fmsubadd_ph): Likewise. + (_mm256_maskz_fmsubadd_ph): Likewise. + (_mm_fmsubadd_ph): Likewise. + (_mm_mask_fmsubadd_ph): Likewise. + (_mm_mask3_fmsubadd_ph): Likewise. + (_mm_maskz_fmsubadd_ph): Likewise. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/sse.md (VFH_SF_AVX512VL): New mode iterator. + * (_fmsubadd__maskz): New expander. + * (_fmaddsub__maskz): Use + VFH_SF_AVX512VL. + * (fma_fmaddsub_): + Ditto. + * (_fmaddsub__mask): Ditto. + * (_fmaddsub__mask3): Ditto. + * (fma_fmsubadd_): + Ditto. + * (_fmsubadd__mask): Ditto. + * (_fmsubadd__mask3): Ditto. + +2021-09-18 liuhongt + + PR target/87767 + * config/i386/i386.c (ix86_print_operand): Handle + V8HF/V16HF/V32HFmode. + * config/i386/i386.h (VALID_BCST_MODE_P): Add HFmode. + * config/i386/sse.md (avx512bcst): Remove. + +2021-09-17 Martin Sebor + + * Makefile.in (OBJS): Add gimple-predicate-analysis.o. + * tree-ssa-uninit.c (max_phi_args): Move to gimple-predicate-analysis. + (MASK_SET_BIT, MASK_TEST_BIT, MASK_EMPTY): Same. + (check_defs): Add comment. + (can_skip_redundant_opnd): Update comment. + (compute_uninit_opnds_pos): Adjust to namespace change. + (find_pdom): Move to gimple-predicate-analysis.cc. + (find_dom): Same. + (struct uninit_undef_val_t): New. + (is_non_loop_exit_postdominating): Move to gimple-predicate-analysis.cc. + (find_control_equiv_block): Same. + (MAX_NUM_CHAINS, MAX_CHAIN_LEN, MAX_POSTDOM_CHECK): Same. + (MAX_SWITCH_CASES): Same. + (compute_control_dep_chain): Same. + (find_uninit_use): Use predicate analyzer. + (struct pred_info): Move to gimple-predicate-analysis. + (convert_control_dep_chain_into_preds): Same. + (find_predicates): Same. + (collect_phi_def_edges): Same. + (warn_uninitialized_phi): Use predicate analyzer. + (find_def_preds): Move to gimple-predicate-analysis. + (dump_pred_info): Same. + (dump_pred_chain): Same. + (dump_predicates): Same. + (destroy_predicate_vecs): Remove. + (execute_late_warn_uninitialized): New. + (get_cmp_code): Move to gimple-predicate-analysis. + (is_value_included_in): Same. + (value_sat_pred_p): Same. + (find_matching_predicate_in_rest_chains): Same. + (is_use_properly_guarded): Same. + (prune_uninit_phi_opnds): Same. + (find_var_cmp_const): Same. + (use_pred_not_overlap_with_undef_path_pred): Same. + (pred_equal_p): Same. + (is_neq_relop_p): Same. + (is_neq_zero_form_p): Same. + (pred_expr_equal_p): Same. + (is_pred_expr_subset_of): Same. + (is_pred_chain_subset_of): Same. + (is_included_in): Same. + (is_superset_of): Same. + (pred_neg_p): Same. + (simplify_pred): Same. + (simplify_preds_2): Same. + (simplify_preds_3): Same. + (simplify_preds_4): Same. + (simplify_preds): Same. + (push_pred): Same. + (push_to_worklist): Same. + (get_pred_info_from_cmp): Same. + (is_degenerated_phi): Same. + (normalize_one_pred_1): Same. + (normalize_one_pred): Same. + (normalize_one_pred_chain): Same. + (normalize_preds): Same. + (can_one_predicate_be_invalidated_p): Same. + (can_chain_union_be_invalidated_p): Same. + (uninit_uses_cannot_happen): Same. + (pass_late_warn_uninitialized::execute): Define. + * gimple-predicate-analysis.cc: New file. + * gimple-predicate-analysis.h: New file. + +2021-09-17 Julian Brown + + * config/gcn/gcn.c (gimple.h): Include. + (gcn_fork_join): Emit barrier for worker-level joins. + * omp-oacc-neuter-broadcast.cc (find_local_vars_to_propagate): Add + writes_gang_private bitmap parameter. Set bit for blocks + containing gang-private variable writes. + (worker_single_simple): Don't emit barrier after predicated block. + (worker_single_copy): Don't emit barrier if we're not broadcasting + anything and the block contains no gang-private writes. + (neuter_worker_single): Don't predicate blocks that only contain + NOPs or internal marker functions. Pass has_gang_private_write + argument to worker_single_copy. + (oacc_do_neutering): Add writes_gang_private bitmap handling. + +2021-09-17 Julian Brown + + * config/gcn/gcn-protos.h + (gcn_goacc_create_worker_broadcast_record): Update prototype. + * config/gcn/gcn-tree.c (gcn_goacc_get_worker_red_decl): Use + preallocated block of LDS memory. Do not cache/share decls for + reduction temporaries between invocations. + (gcn_goacc_reduction_teardown): Unshare VAR on second use. + (gcn_goacc_create_worker_broadcast_record): Add OFFSET parameter + and return temporary LDS space at that offset. Return pointer in + "sender" case. + * config/gcn/gcn.c (acc_lds_size, gang_private_hwm, lds_allocs): + New global vars. + (ACC_LDS_SIZE): Define as acc_lds_size. + (gcn_init_machine_status): Don't initialise lds_allocated, + lds_allocs, reduc_decls fields of machine function struct. + (gcn_option_override): Handle default size for gang-private + variables and -mgang-private-size option. + (gcn_expand_prologue): Use LDS_SIZE instead of LDS_SIZE-1 when + initialising M0_REG. + (gcn_shared_mem_layout): New function. + (gcn_print_lds_decl): Update comment. Use global lds_allocs map and + gang_private_hwm variable. + (TARGET_GOACC_SHARED_MEM_LAYOUT): Define target hook. + * config/gcn/gcn.h (machine_function): Remove lds_allocated, + lds_allocs, reduc_decls. Add reduction_base, reduction_limit. + * config/gcn/gcn.opt (gang_private_size_opt): New global. + (mgang-private-size=): New option. + * doc/tm.texi.in (TARGET_GOACC_SHARED_MEM_LAYOUT): Place + documentation hook. + * doc/tm.texi: Regenerate. + * omp-oacc-neuter-broadcast.cc (targhooks.h, diagnostic-core.h): + Add includes. + (build_sender_ref): Handle sender_decl being pointer. + (worker_single_copy): Add PLACEMENT and ISOLATE_BROADCASTS + parameters. Pass placement argument to + create_worker_broadcast_record hook invocations. Handle + sender_decl being pointer and isolate_broadcasts inserting extra + barriers. + (blk_offset_map_t): Add typedef. + (neuter_worker_single): Add BLK_OFFSET_MAP parameter. Pass + preallocated range to worker_single_copy call. + (dfs_broadcast_reachable_1): New function. + (idx_decl_pair_t, used_range_vec_t): New typedefs. + (sort_size_descending): New function. + (addr_range): New class. + (splay_tree_compare_addr_range, splay_tree_free_key) + (first_fit_range, merge_ranges_1, merge_ranges): New functions. + (execute_omp_oacc_neuter_broadcast): Rename to... + (oacc_do_neutering): ... this. Add BOUNDS_LO, BOUNDS_HI + parameters. Arrange layout of shared memory for broadcast + operations. + (execute_omp_oacc_neuter_broadcast): New function. + (pass_omp_oacc_neuter_broadcast::gate): Remove num_workers==1 + handling from here. Enable pass for all OpenACC routines in order + to call shared memory-layout hook. + * target.def (create_worker_broadcast_record): Add OFFSET + parameter. + (shared_mem_layout): New hook. + +2021-09-17 Julian Brown + Thomas Schwinge + + * omp-oacc-neuter-broadcast.cc + (pass_omp_oacc_neuter_broadcast::gate): Disable if num_workers is + 1. + (execute_omp_oacc_neuter_broadcast): Adjust. + +2021-09-17 Andrew MacLeod + + * value-relation.cc (class equiv_chain): Move to header file. + (path_oracle::path_oracle): New. + (path_oracle::~path_oracle): New. + (path_oracle::register_relation): New. + (path_oracle::query_relation): New. + (path_oracle::reset_path): New. + (path_oracle::dump): New. + * value-relation.h (class equiv_chain): Move to here. + (class path_oracle): New. + +2021-09-17 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a DOM + based oracle. + * gimple-range-fold.cc (fur_depend::register_relation): Use + register_stmt/edge routines. + * value-relation.cc (equiv_chain::find): Relocate from equiv_oracle. + (equiv_oracle::equiv_oracle): Create self equivalence cache. + (equiv_oracle::~equiv_oracle): Release same. + (equiv_oracle::equiv_set): Return entry from self equiv cache if there + are no equivalences. + (equiv_oracle::find_equiv_block): Move list find to equiv_chain. + (equiv_oracle::register_relation): Rename from register_equiv. + (relation_chain_head::find_relation): Relocate from dom_oracle. + (relation_oracle::register_stmt): New. + (relation_oracle::register_edge): New. + (dom_oracle::*): Rename from relation_oracle. + (dom_oracle::register_relation): Adjust to call equiv_oracle. + (dom_oracle::set_one_relation): Split from register_relation. + (dom_oracle::register_transitives): Consolidate 2 methods. + (dom_oracle::find_relation_block): Move core to relation_chain. + (dom_oracle::query_relation): Rename from find_relation_dom and adjust. + * value-relation.h (class relation_oracle): New pure virtual base. + (class equiv_oracle): Inherit from relation_oracle and adjust. + (class dom_oracle): Rename from old relation_oracle and adjust. + +2021-09-17 Martin Sebor + + PR middle-end/102200 + * pointer-query.cc (access_ref::inform_access): Handle MIN/MAX_EXPR. + (handle_min_max_size): Change argument. Store original SSA_NAME for + operands to potentially distinct (sub)objects. + (compute_objsize_r): Adjust call to the above. + +2021-09-17 Bill Schmidt + + * config/rs6000/rs6000.c (rs6000-builtins.h): New include. + (rs6000_new_builtin_vectorized_function): New function. + (rs6000_new_builtin_md_vectorized_function): Likewise. + (rs6000_builtin_vectorized_function): Call + rs6000_new_builtin_vectorized_function. + (rs6000_builtin_md_vectorized_function): Call + rs6000_new_builtin_md_vectorized_function. + +2021-09-17 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def (ASSEMBLE_ACC): Add mmaint flag. + (ASSEMBLE_PAIR): Likewise. + (BUILD_ACC): Likewise. + (DISASSEMBLE_ACC): Likewise. + (DISASSEMBLE_PAIR): Likewise. + (PMXVBF16GER2): Likewise. + (PMXVBF16GER2NN): Likewise. + (PMXVBF16GER2NP): Likewise. + (PMXVBF16GER2PN): Likewise. + (PMXVBF16GER2PP): Likewise. + (PMXVF16GER2): Likewise. + (PMXVF16GER2NN): Likewise. + (PMXVF16GER2NP): Likewise. + (PMXVF16GER2PN): Likewise. + (PMXVF16GER2PP): Likewise. + (PMXVF32GER): Likewise. + (PMXVF32GERNN): Likewise. + (PMXVF32GERNP): Likewise. + (PMXVF32GERPN): Likewise. + (PMXVF32GERPP): Likewise. + (PMXVF64GER): Likewise. + (PMXVF64GERNN): Likewise. + (PMXVF64GERNP): Likewise. + (PMXVF64GERPN): Likewise. + (PMXVF64GERPP): Likewise. + (PMXVI16GER2): Likewise. + (PMXVI16GER2PP): Likewise. + (PMXVI16GER2S): Likewise. + (PMXVI16GER2SPP): Likewise. + (PMXVI4GER8): Likewise. + (PMXVI4GER8PP): Likewise. + (PMXVI8GER4): Likewise. + (PMXVI8GER4PP): Likewise. + (PMXVI8GER4SPP): Likewise. + (XVBF16GER2): Likewise. + (XVBF16GER2NN): Likewise. + (XVBF16GER2NP): Likewise. + (XVBF16GER2PN): Likewise. + (XVBF16GER2PP): Likewise. + (XVF16GER2): Likewise. + (XVF16GER2NN): Likewise. + (XVF16GER2NP): Likewise. + (XVF16GER2PN): Likewise. + (XVF16GER2PP): Likewise. + (XVF32GER): Likewise. + (XVF32GERNN): Likewise. + (XVF32GERNP): Likewise. + (XVF32GERPN): Likewise. + (XVF32GERPP): Likewise. + (XVF64GER): Likewise. + (XVF64GERNN): Likewise. + (XVF64GERNP): Likewise. + (XVF64GERPN): Likewise. + (XVF64GERPP): Likewise. + (XVI16GER2): Likewise. + (XVI16GER2PP): Likewise. + (XVI16GER2S): Likewise. + (XVI16GER2SPP): Likewise. + (XVI4GER8): Likewise. + (XVI4GER8PP): Likewise. + (XVI8GER4): Likewise. + (XVI8GER4PP): Likewise. + (XVI8GER4SPP): Likewise. + (XXMFACC): Likewise. + (XXMTACC): Likewise. + (XXSETACCZ): Likewise. + (ASSEMBLE_PAIR_V): Likewise. + (BUILD_PAIR): Likewise. + (DISASSEMBLE_PAIR_V): Likewise. + (LXVP): New. + (STXVP): New. + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_mma_builtin): + Handle RS6000_BIF_LXVP and RS6000_BIF_STXVP. + * config/rs6000/rs6000-gen-builtins.c (attrinfo): Add ismmaint. + (parse_bif_attrs): Handle ismmaint. + (write_decls): Add bif_mmaint_bit and bif_is_mmaint. + (write_bif_static_init): Handle ismmaint. + +2021-09-17 Bill Schmidt + + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_builtin): New + forward decl. + (rs6000_gimple_fold_builtin): Call rs6000_gimple_fold_new_builtin. + (rs6000_new_builtin_valid_without_lhs): New function. + (rs6000_gimple_fold_new_mma_builtin): Likewise. + (rs6000_gimple_fold_new_builtin): Likewise. + +2021-09-17 Thomas Schwinge + + * hash-table.h (hash_table::expand): + Destruct stale Value objects. + * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor_expand): + Update. + +2021-09-17 Roger Sayle + + PR c/102245 + * match.pd (shift optimizations): Disable recent sign-changing + optimization for shifts by zero, these will be folded later. + +2021-09-17 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def (__builtin_mffsl): Move from + [power9] to [always]. + +2021-09-17 Richard Biener + + * tree-vect-stmts.c (vectorizable_load): Do not frob + stmt_info for SLP. + +2021-09-17 H.J. Lu + + * config/i386/i386-features.c (remove_partial_avx_dependency): + Also check TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY and + and TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY before generating + vxorps. + * config/i386/i386.h (TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): + New. + (TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. + * config/i386/i386.md (SSE FP to FP splitters): Replace + TARGET_SSE_PARTIAL_REG_DEPENDENCY with + TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY. + (SSE INT to FP splitter): Replace TARGET_SSE_PARTIAL_REG_DEPENDENCY + with TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY. + * config/i386/x86-tune.def + (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): New. + (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. + +2021-09-17 H.J. Lu + + PR target/101900 + * config/i386/i386-features.c (remove_partial_avx_dependency): + Check TARGET_USE_VECTOR_FP_CONVERTS and TARGET_USE_VECTOR_CONVERTS + before generating vxorps. + +2021-09-17 H.J. Lu + + * config/i386/i386-options.c (processor_cost_table): Use + tremont_cost for Tremont. + * config/i386/x86-tune-costs.h (tremont_memcpy): New. + (tremont_memset): Likewise. + (tremont_cost): Likewise. + * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): + Enable for Tremont. + +2021-09-17 H.J. Lu + + * common/config/i386/i386-common.c: Use Haswell scheduling model + for Tremont. + * config/i386/i386.c (ix86_sched_init_global): Prepare for Tremont + scheduling pass. + * config/i386/x86-tune-sched.c (ix86_issue_rate): Change Tremont + issue rate to 4. + (ix86_adjust_cost): Handle Tremont. + * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): + Enable for Tremont. + (X86_TUNE_USE_LEAVE): Likewise. + (X86_TUNE_PUSH_MEMORY): Likewise. + (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Likewise. + (X86_TUNE_USE_CLTD): Likewise. + (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Likewise. + (X86_TUNE_AVOID_MFENCE): Likewise. + (X86_TUNE_SSE_TYPELESS_STORES): Likewise. + (X86_TUNE_SSE_LOAD0_BY_PXOR): Likewise. + (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Disable for Tremont. + (X86_TUNE_FOUR_JUMP_LIMIT): Likewise. + (X86_TUNE_OPT_AGU): Likewise. + (X86_TUNE_AVOID_LEA_FOR_ADDR): Likewise. + (X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE): Likewise. + (X86_TUNE_EXPAND_ABS): Likewise. + (X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS): Likewise. + (X86_TUNE_SLOW_PSHUFB): Likewise. + +2021-09-17 Eric Botcazou + + PR rtl-optimization/102306 + * combine.c (try_combine): Abort the combination if we are about to + duplicate volatile references. + +2021-09-17 liuhongt + + * config/i386/avx512fp16intrin.h (_mm_undefined_ph): + New intrinsic. + (_mm256_undefined_ph): Likewise. + (_mm512_undefined_ph): Likewise. + (_mm_cvtsh_h): Likewise. + (_mm256_cvtsh_h): Likewise. + (_mm512_cvtsh_h): Likewise. + (_mm512_castph_ps): Likewise. + (_mm512_castph_pd): Likewise. + (_mm512_castph_si512): Likewise. + (_mm512_castph512_ph128): Likewise. + (_mm512_castph512_ph256): Likewise. + (_mm512_castph128_ph512): Likewise. + (_mm512_castph256_ph512): Likewise. + (_mm512_zextph128_ph512): Likewise. + (_mm512_zextph256_ph512): Likewise. + (_mm512_castps_ph): Likewise. + (_mm512_castpd_ph): Likewise. + (_mm512_castsi512_ph): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm_castph_ps): + New intrinsic. + (_mm256_castph_ps): Likewise. + (_mm_castph_pd): Likewise. + (_mm256_castph_pd): Likewise. + (_mm_castph_si128): Likewise. + (_mm256_castph_si256): Likewise. + (_mm_castps_ph): Likewise. + (_mm256_castps_ph): Likewise. + (_mm_castpd_ph): Likewise. + (_mm256_castpd_ph): Likewise. + (_mm_castsi128_ph): Likewise. + (_mm256_castsi256_ph): Likewise. + (_mm256_castph256_ph128): Likewise. + (_mm256_castph128_ph256): Likewise. + (_mm256_zextph128_ph256): Likewise. + +2021-09-17 liuhongt + + * config/i386/avx512fp16intrin.h (_mm_cvtsh_ss): + New intrinsic. + (_mm_mask_cvtsh_ss): Likewise. + (_mm_maskz_cvtsh_ss): Likewise. + (_mm_cvtsh_sd): Likewise. + (_mm_mask_cvtsh_sd): Likewise. + (_mm_maskz_cvtsh_sd): Likewise. + (_mm_cvt_roundsh_ss): Likewise. + (_mm_mask_cvt_roundsh_ss): Likewise. + (_mm_maskz_cvt_roundsh_ss): Likewise. + (_mm_cvt_roundsh_sd): Likewise. + (_mm_mask_cvt_roundsh_sd): Likewise. + (_mm_maskz_cvt_roundsh_sd): Likewise. + (_mm_cvtss_sh): Likewise. + (_mm_mask_cvtss_sh): Likewise. + (_mm_maskz_cvtss_sh): Likewise. + (_mm_cvtsd_sh): Likewise. + (_mm_mask_cvtsd_sh): Likewise. + (_mm_maskz_cvtsd_sh): Likewise. + (_mm_cvt_roundss_sh): Likewise. + (_mm_mask_cvt_roundss_sh): Likewise. + (_mm_maskz_cvt_roundss_sh): Likewise. + (_mm_cvt_roundsd_sh): Likewise. + (_mm_mask_cvt_roundsd_sh): Likewise. + (_mm_maskz_cvt_roundsd_sh): Likewise. + * config/i386/i386-builtin-types.def + (V8HF_FTYPE_V2DF_V8HF_V8HF_UQI_INT, + V8HF_FTYPE_V4SF_V8HF_V8HF_UQI_INT, + V2DF_FTYPE_V8HF_V2DF_V2DF_UQI_INT, + V4SF_FTYPE_V8HF_V4SF_V4SF_UQI_INT): Add new builtin types. + * config/i386/i386-builtin.def: Add corrresponding new builtins. + * config/i386/i386-expand.c: Handle new builtin types. + * config/i386/sse.md (VF48_128): New mode iterator. + (avx512fp16_vcvtsh2): + New. + (avx512fp16_vcvt2sh): + Ditto. + +2021-09-17 liuhongt + + * config/i386/avx512fp16intrin.h (_mm512_cvtph_pd): + New intrinsic. + (_mm512_mask_cvtph_pd): Likewise. + (_mm512_maskz_cvtph_pd): Likewise. + (_mm512_cvt_roundph_pd): Likewise. + (_mm512_mask_cvt_roundph_pd): Likewise. + (_mm512_maskz_cvt_roundph_pd): Likewise. + (_mm512_cvtxph_ps): Likewise. + (_mm512_mask_cvtxph_ps): Likewise. + (_mm512_maskz_cvtxph_ps): Likewise. + (_mm512_cvtx_roundph_ps): Likewise. + (_mm512_mask_cvtx_roundph_ps): Likewise. + (_mm512_maskz_cvtx_roundph_ps): Likewise. + (_mm512_cvtxps_ph): Likewise. + (_mm512_mask_cvtxps_ph): Likewise. + (_mm512_maskz_cvtxps_ph): Likewise. + (_mm512_cvtx_roundps_ph): Likewise. + (_mm512_mask_cvtx_roundps_ph): Likewise. + (_mm512_maskz_cvtx_roundps_ph): Likewise. + (_mm512_cvtpd_ph): Likewise. + (_mm512_mask_cvtpd_ph): Likewise. + (_mm512_maskz_cvtpd_ph): Likewise. + (_mm512_cvt_roundpd_ph): Likewise. + (_mm512_mask_cvt_roundpd_ph): Likewise. + (_mm512_maskz_cvt_roundpd_ph): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm_cvtph_pd): + New intrinsic. + (_mm_mask_cvtph_pd): Likewise. + (_mm_maskz_cvtph_pd): Likewise. + (_mm256_cvtph_pd): Likewise. + (_mm256_mask_cvtph_pd): Likewise. + (_mm256_maskz_cvtph_pd): Likewise. + (_mm_cvtxph_ps): Likewise. + (_mm_mask_cvtxph_ps): Likewise. + (_mm_maskz_cvtxph_ps): Likewise. + (_mm256_cvtxph_ps): Likewise. + (_mm256_mask_cvtxph_ps): Likewise. + (_mm256_maskz_cvtxph_ps): Likewise. + (_mm_cvtxps_ph): Likewise. + (_mm_mask_cvtxps_ph): Likewise. + (_mm_maskz_cvtxps_ph): Likewise. + (_mm256_cvtxps_ph): Likewise. + (_mm256_mask_cvtxps_ph): Likewise. + (_mm256_maskz_cvtxps_ph): Likewise. + (_mm_cvtpd_ph): Likewise. + (_mm_mask_cvtpd_ph): Likewise. + (_mm_maskz_cvtpd_ph): Likewise. + (_mm256_cvtpd_ph): Likewise. + (_mm256_mask_cvtpd_ph): Likewise. + (_mm256_maskz_cvtpd_ph): Likewise. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/i386-builtin-types.def: Add corresponding builtin types. + * config/i386/i386-expand.c: Handle new builtin types. + * config/i386/sse.md + (VF4_128_8_256): New. + (VF48H_AVX512VL): Ditto. + (ssePHmode): Add HF vector modes. + (castmode): Add new convertable modes. + (qq2phsuff): Ditto. + (ph2pssuffix): New. + (avx512fp16_vcvt2ph_): Ditto. + (avx512fp16_vcvt2ph_): Ditto. + (*avx512fp16_vcvt2ph_): Ditto. + (avx512fp16_vcvt2ph__mask): Ditto. + (*avx512fp16_vcvt2ph__mask): Ditto. + (*avx512fp16_vcvt2ph__mask_1): Ditto. + (avx512fp16_float_extend_ph2): + Ditto. + (avx512fp16_float_extend_ph2): Ditto. + (*avx512fp16_float_extend_ph2_load): Ditto. + (avx512fp16_float_extend_phv2df2): Ditto. + (*avx512fp16_float_extend_phv2df2_load): Ditto. + +2021-09-17 liuhongt + + * config/i386/avx512fp16intrin.h (_mm_cvttsh_i32): + New intrinsic. + (_mm_cvttsh_u32): Likewise. + (_mm_cvtt_roundsh_i32): Likewise. + (_mm_cvtt_roundsh_u32): Likewise. + (_mm_cvttsh_i64): Likewise. + (_mm_cvttsh_u64): Likewise. + (_mm_cvtt_roundsh_i64): Likewise. + (_mm_cvtt_roundsh_u64): Likewise. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/sse.md + (avx512fp16_fix_trunc2): + New. + +2021-09-17 liuhongt + + * config/i386/avx512fp16intrin.h (_mm512_cvttph_epi32): + New intrinsic. + (_mm512_mask_cvttph_epi32): Likewise. + (_mm512_maskz_cvttph_epi32): Likewise. + (_mm512_cvtt_roundph_epi32): Likewise. + (_mm512_mask_cvtt_roundph_epi32): Likewise. + (_mm512_maskz_cvtt_roundph_epi32): Likewise. + (_mm512_cvttph_epu32): Likewise. + (_mm512_mask_cvttph_epu32): Likewise. + (_mm512_maskz_cvttph_epu32): Likewise. + (_mm512_cvtt_roundph_epu32): Likewise. + (_mm512_mask_cvtt_roundph_epu32): Likewise. + (_mm512_maskz_cvtt_roundph_epu32): Likewise. + (_mm512_cvttph_epi64): Likewise. + (_mm512_mask_cvttph_epi64): Likewise. + (_mm512_maskz_cvttph_epi64): Likewise. + (_mm512_cvtt_roundph_epi64): Likewise. + (_mm512_mask_cvtt_roundph_epi64): Likewise. + (_mm512_maskz_cvtt_roundph_epi64): Likewise. + (_mm512_cvttph_epu64): Likewise. + (_mm512_mask_cvttph_epu64): Likewise. + (_mm512_maskz_cvttph_epu64): Likewise. + (_mm512_cvtt_roundph_epu64): Likewise. + (_mm512_mask_cvtt_roundph_epu64): Likewise. + (_mm512_maskz_cvtt_roundph_epu64): Likewise. + (_mm512_cvttph_epi16): Likewise. + (_mm512_mask_cvttph_epi16): Likewise. + (_mm512_maskz_cvttph_epi16): Likewise. + (_mm512_cvtt_roundph_epi16): Likewise. + (_mm512_mask_cvtt_roundph_epi16): Likewise. + (_mm512_maskz_cvtt_roundph_epi16): Likewise. + (_mm512_cvttph_epu16): Likewise. + (_mm512_mask_cvttph_epu16): Likewise. + (_mm512_maskz_cvttph_epu16): Likewise. + (_mm512_cvtt_roundph_epu16): Likewise. + (_mm512_mask_cvtt_roundph_epu16): Likewise. + (_mm512_maskz_cvtt_roundph_epu16): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm_cvttph_epi32): + New intirnsic. + (_mm_mask_cvttph_epi32): Likewise. + (_mm_maskz_cvttph_epi32): Likewise. + (_mm256_cvttph_epi32): Likewise. + (_mm256_mask_cvttph_epi32): Likewise. + (_mm256_maskz_cvttph_epi32): Likewise. + (_mm_cvttph_epu32): Likewise. + (_mm_mask_cvttph_epu32): Likewise. + (_mm_maskz_cvttph_epu32): Likewise. + (_mm256_cvttph_epu32): Likewise. + (_mm256_mask_cvttph_epu32): Likewise. + (_mm256_maskz_cvttph_epu32): Likewise. + (_mm_cvttph_epi64): Likewise. + (_mm_mask_cvttph_epi64): Likewise. + (_mm_maskz_cvttph_epi64): Likewise. + (_mm256_cvttph_epi64): Likewise. + (_mm256_mask_cvttph_epi64): Likewise. + (_mm256_maskz_cvttph_epi64): Likewise. + (_mm_cvttph_epu64): Likewise. + (_mm_mask_cvttph_epu64): Likewise. + (_mm_maskz_cvttph_epu64): Likewise. + (_mm256_cvttph_epu64): Likewise. + (_mm256_mask_cvttph_epu64): Likewise. + (_mm256_maskz_cvttph_epu64): Likewise. + (_mm_cvttph_epi16): Likewise. + (_mm_mask_cvttph_epi16): Likewise. + (_mm_maskz_cvttph_epi16): Likewise. + (_mm256_cvttph_epi16): Likewise. + (_mm256_mask_cvttph_epi16): Likewise. + (_mm256_maskz_cvttph_epi16): Likewise. + (_mm_cvttph_epu16): Likewise. + (_mm_mask_cvttph_epu16): Likewise. + (_mm_maskz_cvttph_epu16): Likewise. + (_mm256_cvttph_epu16): Likewise. + (_mm256_mask_cvttph_epu16): Likewise. + (_mm256_maskz_cvttph_epu16): Likewise. + * config/i386/i386-builtin.def: Add new builtins. + * config/i386/sse.md + (avx512fp16_fix_trunc2): + New. + (avx512fp16_fix_trunc2): Ditto. + (*avx512fp16_fix_trunc2_load): Ditto. + (avx512fp16_fix_truncv2di2): Ditto. + (avx512fp16_fix_truncv2di2_load): Ditto. + +2021-09-17 liuhongt + + * config/i386/avx512fp16intrin.h (_mm_cvtsh_i32): New intrinsic. + (_mm_cvtsh_u32): Likewise. + (_mm_cvt_roundsh_i32): Likewise. + (_mm_cvt_roundsh_u32): Likewise. + (_mm_cvtsh_i64): Likewise. + (_mm_cvtsh_u64): Likewise. + (_mm_cvt_roundsh_i64): Likewise. + (_mm_cvt_roundsh_u64): Likewise. + (_mm_cvti32_sh): Likewise. + (_mm_cvtu32_sh): Likewise. + (_mm_cvt_roundi32_sh): Likewise. + (_mm_cvt_roundu32_sh): Likewise. + (_mm_cvti64_sh): Likewise. + (_mm_cvtu64_sh): Likewise. + (_mm_cvt_roundi64_sh): Likewise. + (_mm_cvt_roundu64_sh): Likewise. + * config/i386/i386-builtin-types.def: Add corresponding builtin types. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/i386-expand.c (ix86_expand_round_builtin): + Handle new builtin types. + * config/i386/sse.md + (avx512fp16_vcvtsh2si): + New define_insn. + (avx512fp16_vcvtsh2si_2): Likewise. + (avx512fp16_vcvtsi2sh): Likewise. + +2021-09-16 Bill Schmidt + + * config/rs6000/rs6000-c.c (rs6000-builtins.h): New include. + (altivec_resolve_new_overloaded_builtin): New forward decl. + (rs6000_new_builtin_type_compatible): New function. + (altivec_resolve_overloaded_builtin): Call + altivec_resolve_new_overloaded_builtin. + (altivec_build_new_resolved_builtin): New function. + (altivec_resolve_new_overloaded_builtin): Likewise. + * config/rs6000/rs6000-call.c (rs6000_new_builtin_is_supported): + Likewise. + * config/rs6000/rs6000-gen-builtins.c (write_decls): Remove _p from + name of rs6000_new_builtin_is_supported. + +2021-09-16 Uroš Bizjak + + * config/i386/i386-protos.h (ix86_decompose_address): + Change return type to bool. + * config/i386/i386.c (ix86_decompose_address): Ditto. + +2021-09-16 Tobias Burnus + + PR target/102353 + * config/rs6000/t-rs6000 (build/rs6000-gen-builtins.o, build/rbtree.o): + Added 'build/' to target, use build/%.o rule. + (build/rs6000-gen-builtins$(build_exeext)): Add 'build/' and + '$(build_exeext)' to target and 'build/' for the *.o files. + (rs6000-builtins.c): Update for those changes; run rs6000-gen-builtins + with $(RUN_GEN). + +2021-09-16 Martin Jambor + + * cgraph.c (cgraph_node::dump): Do not check caller count sums if + the body has been removed. Remove trailing whitespace. + +2021-09-16 Richard Biener + + PR middle-end/102360 + * internal-fn.c (expand_DEFERRED_INIT): Make pattern-init + of non-memory more robust. + +2021-09-16 Daniel Cederman + + * config/sparc/sparc-opts.h (enum sparc_processor_type): Add LEON5 + * config/sparc/sparc.c (struct processor_costs): Add LEON5 costs + (leon5_adjust_cost): Increase cost of store with data dependency + on ALU instruction and FPU anti-dependencies. + (sparc_option_override): Add LEON5 costs + (sparc_adjust_cost): Add LEON5 cost adjustments + * config/sparc/sparc.h: Add LEON5 + * config/sparc/sparc.md: Include LEON5 scheduling information + * config/sparc/sparc.opt: Add LEON5 + * doc/invoke.texi: Add LEON5 + * config/sparc/leon5.md: New file. + +2021-09-16 Daniel Cederman + + * config/sparc/sparc.md (stack_protect_set32): Add NOP to prevent + sensitive sequence for B2BST errata workaround. + +2021-09-16 Daniel Cederman + + * config/sparc/sparc.c (sparc_do_work_around_errata): Do not begin + functions with atomic instruction in the UT700 errata workaround. + +2021-09-16 Daniel Cederman + + * config/sparc/sparc.c (next_active_non_empty_insn): New function + that returns next active non empty assembly instruction. + (sparc_do_work_around_errata): Use new function. + +2021-09-16 Daniel Cederman + + * config/sparc/sparc.c (store_insn_p): Add predicate for store + attributes. + (load_insn_p): Add predicate for load attributes. + (sparc_do_work_around_errata): Use new predicates. + +2021-09-16 Andreas Larsson + + * config/sparc/sparc.c (dump_target_flag_bits): Print bit names for + LEON and LEON3. + +2021-09-16 Martin Liska + + * config/mips/netbsd.h: Fix typo in name of a macro. + +2021-09-16 liuhongt + + PR middle-end/102080 + * match.pd: Check mask type when doing cond_op related gimple + simplification. + * tree.c (is_truth_type_for): New function. + * tree.h (is_truth_type_for): New declaration. + +2021-09-16 liuhongt + + * config/i386/avx512fp16intrin.h (_mm512_cvtepi32_ph): New + intrinsic. + (_mm512_mask_cvtepi32_ph): Likewise. + (_mm512_maskz_cvtepi32_ph): Likewise. + (_mm512_cvt_roundepi32_ph): Likewise. + (_mm512_mask_cvt_roundepi32_ph): Likewise. + (_mm512_maskz_cvt_roundepi32_ph): Likewise. + (_mm512_cvtepu32_ph): Likewise. + (_mm512_mask_cvtepu32_ph): Likewise. + (_mm512_maskz_cvtepu32_ph): Likewise. + (_mm512_cvt_roundepu32_ph): Likewise. + (_mm512_mask_cvt_roundepu32_ph): Likewise. + (_mm512_maskz_cvt_roundepu32_ph): Likewise. + (_mm512_cvtepi64_ph): Likewise. + (_mm512_mask_cvtepi64_ph): Likewise. + (_mm512_maskz_cvtepi64_ph): Likewise. + (_mm512_cvt_roundepi64_ph): Likewise. + (_mm512_mask_cvt_roundepi64_ph): Likewise. + (_mm512_maskz_cvt_roundepi64_ph): Likewise. + (_mm512_cvtepu64_ph): Likewise. + (_mm512_mask_cvtepu64_ph): Likewise. + (_mm512_maskz_cvtepu64_ph): Likewise. + (_mm512_cvt_roundepu64_ph): Likewise. + (_mm512_mask_cvt_roundepu64_ph): Likewise. + (_mm512_maskz_cvt_roundepu64_ph): Likewise. + (_mm512_cvtepi16_ph): Likewise. + (_mm512_mask_cvtepi16_ph): Likewise. + (_mm512_maskz_cvtepi16_ph): Likewise. + (_mm512_cvt_roundepi16_ph): Likewise. + (_mm512_mask_cvt_roundepi16_ph): Likewise. + (_mm512_maskz_cvt_roundepi16_ph): Likewise. + (_mm512_cvtepu16_ph): Likewise. + (_mm512_mask_cvtepu16_ph): Likewise. + (_mm512_maskz_cvtepu16_ph): Likewise. + (_mm512_cvt_roundepu16_ph): Likewise. + (_mm512_mask_cvt_roundepu16_ph): Likewise. + (_mm512_maskz_cvt_roundepu16_ph): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm_cvtepi32_ph): New + intrinsic. + (_mm_mask_cvtepi32_ph): Likewise. + (_mm_maskz_cvtepi32_ph): Likewise. + (_mm256_cvtepi32_ph): Likewise. + (_mm256_mask_cvtepi32_ph): Likewise. + (_mm256_maskz_cvtepi32_ph): Likewise. + (_mm_cvtepu32_ph): Likewise. + (_mm_mask_cvtepu32_ph): Likewise. + (_mm_maskz_cvtepu32_ph): Likewise. + (_mm256_cvtepu32_ph): Likewise. + (_mm256_mask_cvtepu32_ph): Likewise. + (_mm256_maskz_cvtepu32_ph): Likewise. + (_mm_cvtepi64_ph): Likewise. + (_mm_mask_cvtepi64_ph): Likewise. + (_mm_maskz_cvtepi64_ph): Likewise. + (_mm256_cvtepi64_ph): Likewise. + (_mm256_mask_cvtepi64_ph): Likewise. + (_mm256_maskz_cvtepi64_ph): Likewise. + (_mm_cvtepu64_ph): Likewise. + (_mm_mask_cvtepu64_ph): Likewise. + (_mm_maskz_cvtepu64_ph): Likewise. + (_mm256_cvtepu64_ph): Likewise. + (_mm256_mask_cvtepu64_ph): Likewise. + (_mm256_maskz_cvtepu64_ph): Likewise. + (_mm_cvtepi16_ph): Likewise. + (_mm_mask_cvtepi16_ph): Likewise. + (_mm_maskz_cvtepi16_ph): Likewise. + (_mm256_cvtepi16_ph): Likewise. + (_mm256_mask_cvtepi16_ph): Likewise. + (_mm256_maskz_cvtepi16_ph): Likewise. + (_mm_cvtepu16_ph): Likewise. + (_mm_mask_cvtepu16_ph): Likewise. + (_mm_maskz_cvtepu16_ph): Likewise. + (_mm256_cvtepu16_ph): Likewise. + (_mm256_mask_cvtepu16_ph): Likewise. + (_mm256_maskz_cvtepu16_ph): Likewise. + * config/i386/i386-builtin-types.def: Add corresponding builtin types. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/i386-expand.c + (ix86_expand_args_builtin): Handle new builtin types. + (ix86_expand_round_builtin): Ditto. + * config/i386/i386-modes.def: Declare V2HF and V6HF. + * config/i386/sse.md (VI2H_AVX512VL): New. + (qq2phsuff): Ditto. + (sseintvecmode): Add HF vector modes. + (avx512fp16_vcvt2ph_): + New. + (avx512fp16_vcvt2ph_): Ditto. + (*avx512fp16_vcvt2ph_): Ditto. + (avx512fp16_vcvt2ph__mask): Ditto. + (*avx512fp16_vcvt2ph__mask): Ditto. + (*avx512fp16_vcvt2ph__mask_1): Ditto. + (avx512fp16_vcvtqq2ph_v2di): Ditto. + (*avx512fp16_vcvtqq2ph_v2di): Ditto. + (avx512fp16_vcvtqq2ph_v2di_mask): Ditto. + (*avx512fp16_vcvtqq2ph_v2di_mask): Ditto. + (*avx512fp16_vcvtqq2ph_v2di_mask_1): Ditto. + * config/i386/subst.md (round_qq2phsuff): New subst_attr. + +2021-09-16 liuhongt + + * config/i386/avx512fp16intrin.h (_mm512_cvtph_epi32): + New intrinsic/ + (_mm512_mask_cvtph_epi32): Likewise. + (_mm512_maskz_cvtph_epi32): Likewise. + (_mm512_cvt_roundph_epi32): Likewise. + (_mm512_mask_cvt_roundph_epi32): Likewise. + (_mm512_maskz_cvt_roundph_epi32): Likewise. + (_mm512_cvtph_epu32): Likewise. + (_mm512_mask_cvtph_epu32): Likewise. + (_mm512_maskz_cvtph_epu32): Likewise. + (_mm512_cvt_roundph_epu32): Likewise. + (_mm512_mask_cvt_roundph_epu32): Likewise. + (_mm512_maskz_cvt_roundph_epu32): Likewise. + (_mm512_cvtph_epi64): Likewise. + (_mm512_mask_cvtph_epi64): Likewise. + (_mm512_maskz_cvtph_epi64): Likewise. + (_mm512_cvt_roundph_epi64): Likewise. + (_mm512_mask_cvt_roundph_epi64): Likewise. + (_mm512_maskz_cvt_roundph_epi64): Likewise. + (_mm512_cvtph_epu64): Likewise. + (_mm512_mask_cvtph_epu64): Likewise. + (_mm512_maskz_cvtph_epu64): Likewise. + (_mm512_cvt_roundph_epu64): Likewise. + (_mm512_mask_cvt_roundph_epu64): Likewise. + (_mm512_maskz_cvt_roundph_epu64): Likewise. + (_mm512_cvtph_epi16): Likewise. + (_mm512_mask_cvtph_epi16): Likewise. + (_mm512_maskz_cvtph_epi16): Likewise. + (_mm512_cvt_roundph_epi16): Likewise. + (_mm512_mask_cvt_roundph_epi16): Likewise. + (_mm512_maskz_cvt_roundph_epi16): Likewise. + (_mm512_cvtph_epu16): Likewise. + (_mm512_mask_cvtph_epu16): Likewise. + (_mm512_maskz_cvtph_epu16): Likewise. + (_mm512_cvt_roundph_epu16): Likewise. + (_mm512_mask_cvt_roundph_epu16): Likewise. + (_mm512_maskz_cvt_roundph_epu16): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm_cvtph_epi32): + New intrinsic. + (_mm_mask_cvtph_epi32): Likewise. + (_mm_maskz_cvtph_epi32): Likewise. + (_mm256_cvtph_epi32): Likewise. + (_mm256_mask_cvtph_epi32): Likewise. + (_mm256_maskz_cvtph_epi32): Likewise. + (_mm_cvtph_epu32): Likewise. + (_mm_mask_cvtph_epu32): Likewise. + (_mm_maskz_cvtph_epu32): Likewise. + (_mm256_cvtph_epu32): Likewise. + (_mm256_mask_cvtph_epu32): Likewise. + (_mm256_maskz_cvtph_epu32): Likewise. + (_mm_cvtph_epi64): Likewise. + (_mm_mask_cvtph_epi64): Likewise. + (_mm_maskz_cvtph_epi64): Likewise. + (_mm256_cvtph_epi64): Likewise. + (_mm256_mask_cvtph_epi64): Likewise. + (_mm256_maskz_cvtph_epi64): Likewise. + (_mm_cvtph_epu64): Likewise. + (_mm_mask_cvtph_epu64): Likewise. + (_mm_maskz_cvtph_epu64): Likewise. + (_mm256_cvtph_epu64): Likewise. + (_mm256_mask_cvtph_epu64): Likewise. + (_mm256_maskz_cvtph_epu64): Likewise. + (_mm_cvtph_epi16): Likewise. + (_mm_mask_cvtph_epi16): Likewise. + (_mm_maskz_cvtph_epi16): Likewise. + (_mm256_cvtph_epi16): Likewise. + (_mm256_mask_cvtph_epi16): Likewise. + (_mm256_maskz_cvtph_epi16): Likewise. + (_mm_cvtph_epu16): Likewise. + (_mm_mask_cvtph_epu16): Likewise. + (_mm_maskz_cvtph_epu16): Likewise. + (_mm256_cvtph_epu16): Likewise. + (_mm256_mask_cvtph_epu16): Likewise. + (_mm256_maskz_cvtph_epu16): Likewise. + * config/i386/i386-builtin-types.def: Add new builtin types. + * config/i386/i386-builtin.def: Add new builtins. + * config/i386/i386-expand.c + (ix86_expand_args_builtin): Handle new builtin types. + (ix86_expand_round_builtin): Ditto. + * config/i386/sse.md (sseintconvert): New. + (ssePHmode): Ditto. + (UNSPEC_US_FIX_NOTRUNC): Ditto. + (sseintconvertsignprefix): Ditto. + (avx512fp16_vcvtph2_): + Ditto. + +2021-09-16 liuhongt + + * config/i386/avx512fp16intrin.h: (_mm_cvtsi16_si128): + New intrinsic. + (_mm_cvtsi128_si16): Likewise. + (_mm_mask_load_sh): Likewise. + (_mm_maskz_load_sh): Likewise. + (_mm_mask_store_sh): Likewise. + (_mm_move_sh): Likewise. + (_mm_mask_move_sh): Likewise. + (_mm_maskz_move_sh): Likewise. + * config/i386/i386-builtin-types.def: Add corresponding builtin types. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/i386-expand.c + (ix86_expand_special_args_builtin): Handle new builtin types. + (ix86_expand_vector_init_one_nonzero): Adjust for FP16 target. + * config/i386/sse.md (VI2F): New mode iterator. + (vec_set_0): Use new mode iterator. + (avx512f_mov_mask): Adjust for HF vector mode. + (avx512f_store_mask): Ditto. + +2021-09-16 Kewen Lin + + * config/rs6000/rs6000.opt (-mtoc-fusion): Remove. + +2021-09-15 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_xcoff_encode_section_info): + Proceed if no symbol summary or the symbol alias flag is false. + +2021-09-15 Jakub Jelinek + + PR c++/88578 + PR c++/102295 + * varasm.c (output_constructor_regular_field): Instead of assertion + that array_size_for_constructor result is equal to size of + TREE_TYPE (local->val) in bytes, assert that the type size is greater + or equal to array_size_for_constructor result and use type size as + fieldsize. + +2021-09-15 Martin Liska + + PR target/102351 + * config/i386/vxworks.h: Use new macro TARGET_CPU_P. + +2021-09-15 Martin Liska + + PR target/102349 + * config/rs6000/rs6000.c (rs6000_xcoff_encode_section_info): + Check that we have a symbol summary for a symbol. + +2021-09-15 Richard Biener + + PR target/102348 + * config/rs6000/lynx.h: Remove undef of PREFERRED_DEBUGGING_TYPE + to inherit from elfos.h + +2021-09-15 liuhongt + + PR target/102327 + * config/i386/i386-expand.c + (ix86_expand_vector_init_interleave): Use puncklwd to pack 2 + HFmodes. + (ix86_expand_vector_set): Use blendw instead of pinsrw. + * config/i386/i386.c (ix86_can_change_mode_class): Adjust for + AVX512FP16 which supports 16bit vector load. + * config/i386/sse.md (avx512bw_interleave_highv32hi): + Rename to .. + (avx512bw_interleave_high): .. this, and + extend to V32HFmode. + (avx2_interleave_highv16hi): Rename to .. + (avx2_interleave_high): .. this, and extend + to V16HFmode. + (vec_interleave_highv8hi): Rename to .. + (vec_interleave_high): .. this, and extend to V8HFmode. + (avx512bw_interleave_lowv32hi): + Rename to .. + (avx512bw_interleave_low): + this, and extend to V32HFmode. + (avx2_interleave_lowv16hi): Rename to .. + (avx2_interleave_low): .. this, and extend to V16HFmode. + (vec_interleave_lowv8hi): Rename to .. + (vec_interleave_low): .. this, and extend to V8HFmode. + (sse4_1_pblendw): Rename to .. + (sse4_1_pblend): .. this, and extend to V8HFmode. + (avx2_pblendph): New define_expand. + (_pinsr): Refactor, use + sseintmodesuffix instead of ssemodesuffix. + (blendsuf): New mode attr. + +2021-09-15 Richard Biener + + * tree-vectorizer.h (dr_misalignment): Move out of line. + (dr_target_alignment): New. + (DR_TARGET_ALIGNMENT): Wrap dr_target_alignment. + (set_dr_target_alignment): New. + (SET_DR_TARGET_ALIGNMENT): Wrap set_dr_target_alignment. + * tree-vect-data-refs.c (dr_misalignment): Compute and + return the group members misalignment. + (vect_compute_data_ref_alignment): Use SET_DR_TARGET_ALIGNMENT. + (vect_analyze_data_refs_alignment): Compute alignment only + for the first element of a DR group. + (vect_slp_analyze_node_alignment): Likewise. + +2021-09-15 Hongyu Wang + + * config/i386/avx512fp16intrin.h: Adjust all builtin calls. + * config/i386/avx512fp16vlintrin.h: Likewise. + * config/i386/i386-builtin.def: Adjust builtin name and + enumeration to match AVX512F style. + +2021-09-15 Richard Biener + + PR tree-optimization/102318 + * tree-vect-loop.c (vect_transform_cycle_phi): Revert + previous change and do the mode conversion separately from + the sign conversion. + +2021-09-15 Hongtao Liu + Peter Cordes + + PR target/91103 + * config/i386/sse.md (extract_suf): Add V8SF/V8SI/V4DF/V4DI. + (*vec_extract_valign): Output + vextract{i,f}{32x4,64x2} instruction when byte_offset % 16 == + 0. + +2021-09-15 Richard Biener + + * config.gcc: Remove vax-*-openbsd* configuration. + +2021-09-15 Richard Biener + + * config.gcc: Remove m68k-openbsd. + +2021-09-15 Max Filippov + + PR target/102336 + * config/xtensa/t-xtensa (TM_H): Add include/xtensa-config.h. + +2021-09-14 Peter Bergner + + * config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_XXSETACCZ. + (unspecv): Add UNSPECV_MMA_XXSETACCZ. + (*mma_xxsetaccz): Delete. + (mma_xxsetaccz): Change to define_insn. Remove operand 1. + Use UNSPECV_MMA_XXSETACCZ. Update comment. + * config/rs6000/rs6000.c (rs6000_rtx_costs): Use UNSPECV_MMA_XXSETACCZ. + +2021-09-14 Iain Sandoe + + * Makefile.in: Remove variables related to applying no-PIE + to the exes on $build. + * configure: Regenerate. + * configure.ac: Remove configuration related to applying + no-PIE to the exes on $build. + +2021-09-14 Claudiu Zissulescu + + * config/arc/arc.md (doloop_end): Add missing mode. + (loop_end): Likewise. + +2021-09-14 Jakub Jelinek + + * gimplify.c (goa_stabilize_expr): Add depth argument, propagate + it to recursive calls, for depth above 7 just gimplify or return. + Perform a test even for MODIFY_EXPR, ADDR_EXPR, COMPOUND_EXPR with + __builtin_clear_padding and TARGET_EXPR. + (gimplify_omp_atomic): Adjust goa_stabilize_expr callers. + +2021-09-14 liuhongt + + * config/i386/avx512fp16intrin.h (_mm_fpclass_sh_mask): + New intrinsic. + (_mm_mask_fpclass_sh_mask): Likewise. + (_mm512_mask_fpclass_ph_mask): Likewise. + (_mm512_fpclass_ph_mask): Likewise. + (_mm_getexp_sh): Likewise. + (_mm_mask_getexp_sh): Likewise. + (_mm_maskz_getexp_sh): Likewise. + (_mm512_getexp_ph): Likewise. + (_mm512_mask_getexp_ph): Likewise. + (_mm512_maskz_getexp_ph): Likewise. + (_mm_getexp_round_sh): Likewise. + (_mm_mask_getexp_round_sh): Likewise. + (_mm_maskz_getexp_round_sh): Likewise. + (_mm512_getexp_round_ph): Likewise. + (_mm512_mask_getexp_round_ph): Likewise. + (_mm512_maskz_getexp_round_ph): Likewise. + (_mm_getmant_sh): Likewise. + (_mm_mask_getmant_sh): Likewise. + (_mm_maskz_getmant_sh): Likewise. + (_mm512_getmant_ph): Likewise. + (_mm512_mask_getmant_ph): Likewise. + (_mm512_maskz_getmant_ph): Likewise. + (_mm_getmant_round_sh): Likewise. + (_mm_mask_getmant_round_sh): Likewise. + (_mm_maskz_getmant_round_sh): Likewise. + (_mm512_getmant_round_ph): Likewise. + (_mm512_mask_getmant_round_ph): Likewise. + (_mm512_maskz_getmant_round_ph): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm_mask_fpclass_ph_mask): + New intrinsic. + (_mm_fpclass_ph_mask): Likewise. + (_mm256_mask_fpclass_ph_mask): Likewise. + (_mm256_fpclass_ph_mask): Likewise. + (_mm256_getexp_ph): Likewise. + (_mm256_mask_getexp_ph): Likewise. + (_mm256_maskz_getexp_ph): Likewise. + (_mm_getexp_ph): Likewise. + (_mm_mask_getexp_ph): Likewise. + (_mm_maskz_getexp_ph): Likewise. + (_mm256_getmant_ph): Likewise. + (_mm256_mask_getmant_ph): Likewise. + (_mm256_maskz_getmant_ph): Likewise. + (_mm_getmant_ph): Likewise. + (_mm_mask_getmant_ph): Likewise. + (_mm_maskz_getmant_ph): Likewise. + * config/i386/i386-builtin-types.def: Add corresponding builtin types. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/i386-expand.c + (ix86_expand_args_builtin): Handle new builtin types. + (ix86_expand_round_builtin): Ditto. + * config/i386/sse.md (vecmemsuffix): Add HF vector modes. + (_getexp): Adjust + to support HF vector modes. + (avx512f_sgetexp): Ditto. + (avx512dq_vmfpclass): Ditto. + (_getmant): Ditto. + (avx512f_vgetmant): + Ditto. + +2021-09-14 liuhongt + + * config/i386/avx512fp16intrin.h (_mm512_reduce_ph): + New intrinsic. + (_mm512_mask_reduce_ph): Likewise. + (_mm512_maskz_reduce_ph): Likewise. + (_mm512_reduce_round_ph): Likewise. + (_mm512_mask_reduce_round_ph): Likewise. + (_mm512_maskz_reduce_round_ph): Likewise. + (_mm_reduce_sh): Likewise. + (_mm_mask_reduce_sh): Likewise. + (_mm_maskz_reduce_sh): Likewise. + (_mm_reduce_round_sh): Likewise. + (_mm_mask_reduce_round_sh): Likewise. + (_mm_maskz_reduce_round_sh): Likewise. + (_mm512_roundscale_ph): Likewise. + (_mm512_mask_roundscale_ph): Likewise. + (_mm512_maskz_roundscale_ph): Likewise. + (_mm512_roundscale_round_ph): Likewise. + (_mm512_mask_roundscale_round_ph): Likewise. + (_mm512_maskz_roundscale_round_ph): Likewise. + (_mm_roundscale_sh): Likewise. + (_mm_mask_roundscale_sh): Likewise. + (_mm_maskz_roundscale_sh): Likewise. + (_mm_roundscale_round_sh): Likewise. + (_mm_mask_roundscale_round_sh): Likewise. + (_mm_maskz_roundscale_round_sh): Likewise. + * config/i386/avx512fp16vlintrin.h: (_mm_reduce_ph): + New intrinsic. + (_mm_mask_reduce_ph): Likewise. + (_mm_maskz_reduce_ph): Likewise. + (_mm256_reduce_ph): Likewise. + (_mm256_mask_reduce_ph): Likewise. + (_mm256_maskz_reduce_ph): Likewise. + (_mm_roundscale_ph): Likewise. + (_mm_mask_roundscale_ph): Likewise. + (_mm_maskz_roundscale_ph): Likewise. + (_mm256_roundscale_ph): Likewise. + (_mm256_mask_roundscale_ph): Likewise. + (_mm256_maskz_roundscale_ph): Likewise. + * config/i386/i386-builtin-types.def: Add corresponding builtin types. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/i386-expand.c + (ix86_expand_args_builtin): Handle new builtin types. + (ix86_expand_round_builtin): Ditto. + * config/i386/sse.md (reducep): + Renamed to ... + (reducep): + ... this, and adjust for round operands. + (reduces): Likewise, with ... + (reduces_rndscale): + Adjust for HF vector modes. + (avx512f_rndscale): + Ditto. + (*avx512f_rndscale): Ditto. + +2021-09-14 liuhongt + + * config/i386/avx512fp16intrin.h: (_mm512_rcp_ph): + New intrinsic. + (_mm512_mask_rcp_ph): Likewise. + (_mm512_maskz_rcp_ph): Likewise. + (_mm_rcp_sh): Likewise. + (_mm_mask_rcp_sh): Likewise. + (_mm_maskz_rcp_sh): Likewise. + (_mm512_scalef_ph): Likewise. + (_mm512_mask_scalef_ph): Likewise. + (_mm512_maskz_scalef_ph): Likewise. + (_mm512_scalef_round_ph): Likewise. + (_mm512_mask_scalef_round_ph): Likewise. + (_mm512_maskz_scalef_round_ph): Likewise. + (_mm_scalef_sh): Likewise. + (_mm_mask_scalef_sh): Likewise. + (_mm_maskz_scalef_sh): Likewise. + (_mm_scalef_round_sh): Likewise. + (_mm_mask_scalef_round_sh): Likewise. + (_mm_maskz_scalef_round_sh): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm_rcp_ph): + New intrinsic. + (_mm256_rcp_ph): Likewise. + (_mm_mask_rcp_ph): Likewise. + (_mm256_mask_rcp_ph): Likewise. + (_mm_maskz_rcp_ph): Likewise. + (_mm256_maskz_rcp_ph): Likewise. + (_mm_scalef_ph): Likewise. + (_mm256_scalef_ph): Likewise. + (_mm_mask_scalef_ph): Likewise. + (_mm256_mask_scalef_ph): Likewise. + (_mm_maskz_scalef_ph): Likewise. + (_mm256_maskz_scalef_ph): Likewise. + * config/i386/i386-builtin.def: Add new builtins. + * config/i386/sse.md (VFH_AVX512VL): New. + (avx512fp16_rcp2): Ditto. + (avx512fp16_vmrcpv8hf2): Ditto. + (avx512f_vmscalef): + Adjust to support HF vector modes. + (_scalef): Ditto. + +2021-09-14 liuhongt + + * config/i386/avx512fp16intrin.h: (_mm512_sqrt_ph): + New intrinsic. + (_mm512_mask_sqrt_ph): Likewise. + (_mm512_maskz_sqrt_ph): Likewise. + (_mm512_sqrt_round_ph): Likewise. + (_mm512_mask_sqrt_round_ph): Likewise. + (_mm512_maskz_sqrt_round_ph): Likewise. + (_mm512_rsqrt_ph): Likewise. + (_mm512_mask_rsqrt_ph): Likewise. + (_mm512_maskz_rsqrt_ph): Likewise. + (_mm_rsqrt_sh): Likewise. + (_mm_mask_rsqrt_sh): Likewise. + (_mm_maskz_rsqrt_sh): Likewise. + (_mm_sqrt_sh): Likewise. + (_mm_mask_sqrt_sh): Likewise. + (_mm_maskz_sqrt_sh): Likewise. + (_mm_sqrt_round_sh): Likewise. + (_mm_mask_sqrt_round_sh): Likewise. + (_mm_maskz_sqrt_round_sh): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm_sqrt_ph): New intrinsic. + (_mm256_sqrt_ph): Likewise. + (_mm_mask_sqrt_ph): Likewise. + (_mm256_mask_sqrt_ph): Likewise. + (_mm_maskz_sqrt_ph): Likewise. + (_mm256_maskz_sqrt_ph): Likewise. + (_mm_rsqrt_ph): Likewise. + (_mm256_rsqrt_ph): Likewise. + (_mm_mask_rsqrt_ph): Likewise. + (_mm256_mask_rsqrt_ph): Likewise. + (_mm_maskz_rsqrt_ph): Likewise. + (_mm256_maskz_rsqrt_ph): Likewise. + * config/i386/i386-builtin-types.def: Add corresponding builtin types. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/i386-expand.c + (ix86_expand_args_builtin): Handle new builtins. + (ix86_expand_round_builtin): Ditto. + * config/i386/sse.md (VF_AVX512FP16VL): New. + (sqrt2): Adjust for HF vector modes. + (_sqrt2): Likewise. + (_vmsqrt2): + Likewise. + (_rsqrt2): New. + (avx512fp16_vmrsqrtv8hf2): Likewise. + +2021-09-13 Thomas Schwinge + + PR bootstrap/101574 + * diagnostic-spec.c (warning_suppressed_at, copy_warning): Handle + 'RESERVED_LOCATION_P' locations. + * warning-control.cc (get_nowarn_spec, suppress_warning) + (copy_warning): Likewise. + +2021-09-13 Thomas Schwinge + + * diagnostic-spec.h (typedef xint_hash_t): Use 'location_t' instead of... + (typedef key_type_t): ... this. Remove. + (nowarn_map): Document. + * diagnostic-spec.c (nowarn_map): Likewise. + * warning-control.cc (convert_to_key): Evolve functions into... + (get_location): ... these. Adjust all users. + +2021-09-13 Thomas Schwinge + + * warning-control.cc (copy_warning): Remove 'nowarn_map' setup. + +2021-09-13 Jason Merrill + + * params.opt: Add destructive-interference-size and + constructive-interference-size. + * doc/invoke.texi: Document them. + * config/aarch64/aarch64.c (aarch64_override_options_internal): + Set them. + * config/arm/arm.c (arm_option_override): Set them. + * config/i386/i386-options.c (ix86_option_override_internal): + Set them. + +2021-09-13 Martin Liska + H.J. Lu + + PR target/101696 + * common/config/i386/cpuinfo.h (cpu_indicator_init): Add support + for x86-64 micro levels for __builtin_cpu_supports. + * common/config/i386/i386-cpuinfo.h (enum feature_priority): + Add priorities for the micro-arch levels. + (enum processor_features): Add new features. + * common/config/i386/i386-isas.h: Add micro-arch features. + * config/i386/i386-builtins.c (get_builtin_code_for_version): + Support the micro-arch levels by callsing + __builtin_cpu_supports. + * doc/extend.texi: Document that the levels are support by + __builtin_cpu_supports. + +2021-09-13 Andrew Pinski + + PR target/95969 + * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin_lane_check): + New function. + (aarch64_general_fold_builtin): Handle AARCH64_SIMD_BUILTIN_LANE_CHECK. + (aarch64_general_gimple_fold_builtin): Likewise. + +2021-09-13 Andrew Pinski + + * config.gcc: Add m32r-*-linux* and m32rle-*-linux* + to the Unsupported targets list. + Remove support for m32r-*-linux* and m32rle-*-linux*. + * config/m32r/linux.h: Removed. + * config/m32r/t-linux: Removed. + +2021-09-13 Kyrylo Tkachov + + PR target/102252 + * config/aarch64/aarch64.c (aarch64_classify_address): Don't allow + register index for SVE predicate modes. + +2021-09-13 Aldy Hernandez + + * tree-ssa-threadbackward.c + (back_threader_profitability::profitable_path_p): Remove FSM + references. + (back_threader_registry::register_path): Same. + * tree-ssa-threadedge.c + (jump_threader::simplify_control_stmt_condition): Same. + * tree-ssa-threadupdate.c (jt_path_registry::jt_path_registry): + Add backedge_threads argument. + (fwd_jt_path_registry::fwd_jt_path_registry): Pass + backedge_threads argument. + (back_jt_path_registry::back_jt_path_registry): Same. + (dump_jump_thread_path): Adjust for FSM removal. + (back_jt_path_registry::rewire_first_differing_edge): Same. + (back_jt_path_registry::adjust_paths_after_duplication): Same. + (back_jt_path_registry::update_cfg): Same. + (jt_path_registry::register_jump_thread): Same. + * tree-ssa-threadupdate.h (enum jump_thread_edge_type): Remove + EDGE_FSM_THREAD. + (class back_jt_path_registry): Add backedge_threads to + constructor. + +2021-09-13 Martin Liska + + PR c++/101331 + * asan.h (sanitize_coverage_p): Handle when fn == NULL. + +2021-09-13 H.J. Lu + + PR target/101935 + * config/i386/i386.h (TARGET_AVX256_MOVE_BY_PIECES): New. + (TARGET_AVX256_STORE_BY_PIECES): Likewise. + (MOVE_MAX): Check TARGET_AVX256_MOVE_BY_PIECES and + TARGET_AVX256_STORE_BY_PIECES instead of + TARGET_AVX256_SPLIT_UNALIGNED_LOAD and + TARGET_AVX256_SPLIT_UNALIGNED_STORE. + (STORE_MAX_PIECES): Check TARGET_AVX256_STORE_BY_PIECES instead + of TARGET_AVX256_SPLIT_UNALIGNED_STORE. + * config/i386/x86-tune.def (X86_TUNE_AVX256_MOVE_BY_PIECES): New. + (X86_TUNE_AVX256_STORE_BY_PIECES): Likewise. + +2021-09-13 liuhongt + + PR bootstrap/102302 + * expmed.c (extract_bit_field_using_extv): Use + gen_lowpart_if_possible instead of gen_lowpart to avoid ICE. + +2021-09-13 Aldy Hernandez + + * Makefile.in (OBJS): Add value-pointer-equiv.o. + * gimple-ssa-evrp.c (class ssa_equiv_stack): Move to + value-pointer-equiv.*. + (ssa_equiv_stack::ssa_equiv_stack): Same. + (ssa_equiv_stack::enter): Same. + (ssa_equiv_stack::leave): Same. + (ssa_equiv_stack::push_replacement): Same. + (ssa_equiv_stack::get_replacement): Same. + (is_pointer_ssa): Same. + (class pointer_equiv_analyzer): Same. + (pointer_equiv_analyzer::pointer_equiv_analyzer): Same. + (pointer_equiv_analyzer::~pointer_equiv_analyzer): Same. + (pointer_equiv_analyzer::set_global_equiv): Same. + (pointer_equiv_analyzer::set_cond_equiv): Same. + (pointer_equiv_analyzer::get_equiv): Same. + (pointer_equiv_analyzer::enter): Same. + (pointer_equiv_analyzer::leave): Same. + (pointer_equiv_analyzer::get_equiv_expr): Same. + (pta_valueize): Same. + (pointer_equiv_analyzer::visit_stmt): Same. + (pointer_equiv_analyzer::visit_edge): Same. + (hybrid_folder::value_of_expr): Same. + (hybrid_folder::value_on_edge): Same. + * value-pointer-equiv.cc: New file. + * value-pointer-equiv.h: New file. + +2021-09-13 Richard Earnshaw + + PR target/102125 + * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding + memcpy if the size is not more than MOVE_MAX * MOVE_RATIO. + +2021-09-13 Richard Earnshaw + + PR target/102125 + * config/arm/arm.md (movmisaligndi): New define_expand. + * config/arm/vec-common.md (movmisalign): Iterate over VDQ mode. + +2021-09-13 Richard Earnshaw + + PR target/102125 + * emit-rtl.c (gen_highpart): Use adjust_address to handle + MEM rather than calling simplify_gen_subreg. + +2021-09-13 Jan-Benedict Glaw + + * config/alpha/vms.h (INIT_CUMULATIVE_ARGS): Wrap multi-statment + define into a block. + +2021-09-13 Richard Biener + + * config/darwin.h (DARWIN_PREFER_DWARF): Do not define. + * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Do not + change based on DARWIN_PREFER_DWARF not being defined. + +2021-09-13 Richard Biener + + * config/i386/lynx.h: Remove undef of PREFERRED_DEBUGGING_TYPE + to inherit from elfos.h + +2021-09-13 Richard Biener + + * config.gcc: Add cr16-*-* to the list of obsoleted targets. + +2021-09-13 Richard Biener + + * config/avr/elf.h (PREFERRED_DEBUGGING_TYPE): Remove + override, pick up DWARF2_DEBUG define from elfos.h + +2021-09-13 Richard Biener + + * config/rx/rx.h (PREFERRED_DEBUGGING_TYPE): Always define to + DWARF2_DEBUG. + +2021-09-13 Richard Biener + + * config/alpha/vms.h (PREFERRED_DEBUGGING_TYPE): Define to + DWARF2_DEBUG. + +2021-09-13 Richard Biener + + * config/i386/cygming.h: Always default to DWARF2 debugging. + Do not define DBX_DEBUGGING_INFO, that's done via dbxcoff.h + already. + * doc/install.texi: Document binutils 2.16 as minimum + requirement for mingw. + +2021-09-13 Kewen Lin + + * config/rs6000/rs6000.c (struct rs6000_cost_data): New members + nstmts, nloads and extra_ctor_cost. + (rs6000_density_test): Add load density related heuristics. Do + extra costing on vector construction statements if need. + (rs6000_init_cost): Init new members. + (rs6000_update_target_cost_per_stmt): New function. + (rs6000_add_stmt_cost): Factor vect_nonmem hunk out to function + rs6000_update_target_cost_per_stmt and call it. + +2021-09-13 Kewen Lin + + * config/rs6000/rs6000.c (struct rs6000_cost_data): Remove typedef. + (rs6000_init_cost): Adjust. + +2021-09-13 liuhongt + + * config/i386/i386.md: (UNSPEC_COPYSIGN): Remove. + (UNSPEC_XORSIGN): Ditto. + +2021-09-12 Roger Sayle + + * expr.c (convert_move): Preserve SUBREG_PROMOTED_VAR_P when + creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P + subreg. + +2021-09-11 Aldy Hernandez + + * tree-ssa-threadbackward.c (class back_threader_registry): Use + back_jt_path_registry. + * tree-ssa-threadedge.c (jump_threader::jump_threader): Use + fwd_jt_path_registry. + * tree-ssa-threadedge.h (class jump_threader): Same.. + * tree-ssa-threadupdate.c + (jump_thread_path_registry::jump_thread_path_registry): Rename... + (jt_path_registry::jt_path_registry): ...to this. + (jump_thread_path_registry::~jump_thread_path_registry): Rename... + (jt_path_registry::~jt_path_registry): ...this. + (fwd_jt_path_registry::fwd_jt_path_registry): New. + (fwd_jt_path_registry::~fwd_jt_path_registry): New. + (jump_thread_path_registry::allocate_thread_edge): Rename... + (jt_path_registry::allocate_thread_edge): ...to this. + (jump_thread_path_registry::allocate_thread_path): Rename... + (jt_path_registry::allocate_thread_path): ...to this. + (jump_thread_path_registry::lookup_redirection_data): Rename... + (fwd_jt_path_registry::lookup_redirection_data): ...to this. + (jump_thread_path_registry::thread_block_1): Rename... + (fwd_jt_path_registry::thread_block_1): ...to this. + (jump_thread_path_registry::thread_block): Rename... + (fwd_jt_path_registry::thread_block): ...to this. + (jt_path_registry::thread_through_loop_header): Rename... + (fwd_jt_path_registry::thread_through_loop_header): ...to this. + (jump_thread_path_registry::mark_threaded_blocks): Rename... + (fwd_jt_path_registry::mark_threaded_blocks): ...to this. + (jump_thread_path_registry::debug_path): Rename... + (jt_path_registry::debug_path): ...to this. + (jump_thread_path_registry::dump): Rename... + (jt_path_registry::debug): ...to this. + (jump_thread_path_registry::rewire_first_differing_edge): Rename... + (back_jt_path_registry::rewire_first_differing_edge): ...to this. + (jump_thread_path_registry::adjust_paths_after_duplication): Rename... + (back_jt_path_registry::adjust_paths_after_duplication): ...to this. + (jump_thread_path_registry::duplicate_thread_path): Rename... + (back_jt_path_registry::duplicate_thread_path): ...to this. Also, + drop ill-formed candidates. + (jump_thread_path_registry::remove_jump_threads_including): Rename... + (fwd_jt_path_registry::remove_jump_threads_including): ...to this. + (jt_path_registry::thread_through_all_blocks): New. + (back_jt_path_registry::update_cfg): New. + (fwd_jt_path_registry::update_cfg): New. + (jump_thread_path_registry::register_jump_thread): Rename... + (jt_path_registry::register_jump_thread): ...to this. + * tree-ssa-threadupdate.h (class jump_thread_path_registry): + Abstract to... + (class jt_path_registry): ...here. + (class fwd_jt_path_registry): New. + (class back_jt_path_registry): New. + +2021-09-10 liuhongt + + Revert: + 2021-09-01 liuhongt + + * emit-rtl.c (validate_subreg): Get rid of all float-int + special cases. + +2021-09-10 Jakub Jelinek + + * tree-core.h (enum omp_memory_order): Add OMP_MEMORY_ORDER_MASK, + OMP_FAIL_MEMORY_ORDER_UNSPECIFIED, OMP_FAIL_MEMORY_ORDER_RELAXED, + OMP_FAIL_MEMORY_ORDER_ACQUIRE, OMP_FAIL_MEMORY_ORDER_RELEASE, + OMP_FAIL_MEMORY_ORDER_ACQ_REL, OMP_FAIL_MEMORY_ORDER_SEQ_CST and + OMP_FAIL_MEMORY_ORDER_MASK enumerators. + (OMP_FAIL_MEMORY_ORDER_SHIFT): Define. + * gimple-pretty-print.c (dump_gimple_omp_atomic_load, + dump_gimple_omp_atomic_store): Print [weak] for weak atomic + load/store. + * gimple.h (enum gf_mask): Change GF_OMP_ATOMIC_MEMORY_ORDER + to 6-bit mask, adjust GF_OMP_ATOMIC_NEED_VALUE value and add + GF_OMP_ATOMIC_WEAK. + (gimple_omp_atomic_weak_p, gimple_omp_atomic_set_weak): New inline + functions. + * tree.h (OMP_ATOMIC_WEAK): Define. + * tree-pretty-print.c (dump_omp_atomic_memory_order): Adjust for + fail memory order being encoded in the same enum and also print + fail clause if present. + (dump_generic_node): Print weak clause if OMP_ATOMIC_WEAK. + * gimplify.c (goa_stabilize_expr): Add target_expr and rhs arguments, + handle pre_p == NULL case as a test mode that only returns value + but doesn't change gimplify nor change anything otherwise, adjust + recursive calls, add MODIFY_EXPR, ADDR_EXPR, COND_EXPR, TARGET_EXPR + and CALL_EXPR handling, adjust COMPOUND_EXPR handling for + __builtin_clear_padding calls, for !rhs gimplify as lvalue rather + than rvalue. + (gimplify_omp_atomic): Adjust goa_stabilize_expr caller. Handle + COND_EXPR rhs. Set weak flag on gimple load/store for + OMP_ATOMIC_WEAK. + * omp-expand.c (omp_memory_order_to_fail_memmodel): New function. + (omp_memory_order_to_memmodel): Adjust for fail clause encoded + in the same enum. + (expand_omp_atomic_cas): New function. + (expand_omp_atomic_pipeline): Use omp_memory_order_to_fail_memmodel + function. + (expand_omp_atomic): Attempt to optimize atomic compare and exchange + using expand_omp_atomic_cas. + +2021-09-10 Aldy Hernandez + Michael Matz + + * tree-pass.h (PROP_loop_opts_done): New. + * gimple-range-path.cc (path_range_query::internal_range_of_expr): + Intersect with global range. + * tree-ssa-loop.c (tree_ssa_loop_done): Set PROP_loop_opts_done. + * tree-ssa-threadbackward.c + (back_threader_profitability::profitable_path_p): Disable + threading through latches until after loop optimizations have run. + +2021-09-10 David Faust + + * doc/invoke.texi: Document BPF -mcpu, -mjmpext, -mjmp32 and -malu32 + options. + +2021-09-10 David Faust + + * config/bpf/bpf-opts.h (bpf_isa_version): New enum. + * config/bpf/bpf-protos.h (bpf_expand_cbranch): New. + * config/bpf/bpf.c (bpf_option_override): Handle -mcpu option. + (bpf_expand_cbranch): New function. + * config/bpf/bpf.md (AM mode iterator): Conditionalize support for SI + mode. + (zero_extendsidi2): Only use mov32 instruction if it is available. + (SIM mode iterator): Conditionalize support for SI mode. + (JM mode iterator): New. + (cbranchdi4): Update name, use new JM iterator. Use bpf_expand_cbranch. + (*branch_on_di): Update name, use new JM iterator. + * config/bpf/bpf.opt: (mjmpext): New option. + (malu32): Likewise. + (mjmp32): Likewise. + (mcpu): Likewise. + (bpf_isa): New enum. + +2021-09-10 David Faust + + * config/bpf/bpf.md (zero_extendhidi2): Add new output template + for register-to-register extensions. + (zero_extendqidi2): Likewise. + +2021-09-10 Richard Biener + + PR middle-end/102273 + * internal-fn.c (expand_DEFERRED_INIT): Always expand non-SSA vars. + +2021-09-10 Richard Biener + + PR middle-end/102269 + * gimplify.c (is_var_need_auto_init): Empty types do not need + initialization. + +2021-09-10 Richard Biener + + * configure.ac (--with-stabs): Remove. + * configure: Regenerate. + * doc/install.texi: Remove --with-stabs documentation. + +2021-09-10 liuhongt + + * config/i386/avx512fp16intrin.h: (_mm512_cmp_ph_mask): + New intrinsic. + (_mm512_mask_cmp_ph_mask): Likewise. + (_mm512_cmp_round_ph_mask): Likewise. + (_mm512_mask_cmp_round_ph_mask): Likewise. + (_mm_cmp_sh_mask): Likewise. + (_mm_mask_cmp_sh_mask): Likewise. + (_mm_cmp_round_sh_mask): Likewise. + (_mm_mask_cmp_round_sh_mask): Likewise. + (_mm_comieq_sh): Likewise. + (_mm_comilt_sh): Likewise. + (_mm_comile_sh): Likewise. + (_mm_comigt_sh): Likewise. + (_mm_comige_sh): Likewise. + (_mm_comineq_sh): Likewise. + (_mm_ucomieq_sh): Likewise. + (_mm_ucomilt_sh): Likewise. + (_mm_ucomile_sh): Likewise. + (_mm_ucomigt_sh): Likewise. + (_mm_ucomige_sh): Likewise. + (_mm_ucomineq_sh): Likewise. + (_mm_comi_round_sh): Likewise. + (_mm_comi_sh): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm_cmp_ph_mask): New intrinsic. + (_mm_mask_cmp_ph_mask): Likewise. + (_mm256_cmp_ph_mask): Likewise. + (_mm256_mask_cmp_ph_mask): Likewise. + * config/i386/i386-builtin-types.def: Add corresponding builtin types. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/i386-expand.c + (ix86_expand_args_builtin): Handle new builtin types. + (ix86_expand_round_builtin): Ditto. + * config/i386/i386.md (ssevecmode): Add HF mode. + (MODEFH): New mode iterator. + * config/i386/sse.md + (V48H_AVX512VL): New mode iterator to support HF vector modes. + Ajdust corresponding description. + (ssecmpintprefix): New. + (VI12_AVX512VL): Adjust to support HF vector modes. + (cmp_imm_predicate): Likewise. + (_cmp3): + Likewise. + (avx512f_vmcmp3): Likewise. + (avx512f_vmcmp3_mask): Likewise. + (_comi): Likewise. + +2021-09-10 liuhongt + + * config/i386/avx512fp16intrin.h: (_mm512_max_ph): New intrinsic. + (_mm512_mask_max_ph): Likewise. + (_mm512_maskz_max_ph): Likewise. + (_mm512_min_ph): Likewise. + (_mm512_mask_min_ph): Likewise. + (_mm512_maskz_min_ph): Likewise. + (_mm512_max_round_ph): Likewise. + (_mm512_mask_max_round_ph): Likewise. + (_mm512_maskz_max_round_ph): Likewise. + (_mm512_min_round_ph): Likewise. + (_mm512_mask_min_round_ph): Likewise. + (_mm512_maskz_min_round_ph): Likewise. + (_mm_max_sh): Likewise. + (_mm_mask_max_sh): Likewise. + (_mm_maskz_max_sh): Likewise. + (_mm_min_sh): Likewise. + (_mm_mask_min_sh): Likewise. + (_mm_maskz_min_sh): Likewise. + (_mm_max_round_sh): Likewise. + (_mm_mask_max_round_sh): Likewise. + (_mm_maskz_max_round_sh): Likewise. + (_mm_min_round_sh): Likewise. + (_mm_mask_min_round_sh): Likewise. + (_mm_maskz_min_round_sh): Likewise. + * config/i386/avx512fp16vlintrin.h (_mm_max_ph): New intrinsic. + (_mm256_max_ph): Likewise. + (_mm_mask_max_ph): Likewise. + (_mm256_mask_max_ph): Likewise. + (_mm_maskz_max_ph): Likewise. + (_mm256_maskz_max_ph): Likewise. + (_mm_min_ph): Likewise. + (_mm256_min_ph): Likewise. + (_mm_mask_min_ph): Likewise. + (_mm256_mask_min_ph): Likewise. + (_mm_maskz_min_ph): Likewise. + (_mm256_maskz_min_ph): Likewise. + * config/i386/i386-builtin-types.def: Add corresponding builtin types. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/i386-expand.c + (ix86_expand_args_builtin): Handle new builtin types. + * config/i386/sse.md + (3): Adjust to + support HF vector modes. + (*3): Likewise. + (ieee_3): + Likewise. + (_vm3): + Likewise. + * config/i386/subst.md (round_saeonly_mode512bit_condition): + Adjust for HF vector modes. + +2021-09-10 Liu, Hongtao + + * config/i386/avx512fp16intrin.h (_mm_add_sh): New intrinsic. + (_mm_mask_add_sh): Likewise. + (_mm_maskz_add_sh): Likewise. + (_mm_sub_sh): Likewise. + (_mm_mask_sub_sh): Likewise. + (_mm_maskz_sub_sh): Likewise. + (_mm_mul_sh): Likewise. + (_mm_mask_mul_sh): Likewise. + (_mm_maskz_mul_sh): Likewise. + (_mm_div_sh): Likewise. + (_mm_mask_div_sh): Likewise. + (_mm_maskz_div_sh): Likewise. + (_mm_add_round_sh): Likewise. + (_mm_mask_add_round_sh): Likewise. + (_mm_maskz_add_round_sh): Likewise. + (_mm_sub_round_sh): Likewise. + (_mm_mask_sub_round_sh): Likewise. + (_mm_maskz_sub_round_sh): Likewise. + (_mm_mul_round_sh): Likewise. + (_mm_mask_mul_round_sh): Likewise. + (_mm_maskz_mul_round_sh): Likewise. + (_mm_div_round_sh): Likewise. + (_mm_mask_div_round_sh): Likewise. + (_mm_maskz_div_round_sh): Likewise. + * config/i386/i386-builtin-types.def: Add corresponding builtin types. + * config/i386/i386-builtin.def: Add corresponding new builtins. + * config/i386/i386-expand.c + (ix86_expand_round_builtin): Handle new builtins. + * config/i386/sse.md (VF_128): Change description. + (_vm3): + Adjust to support HF vector modes. + (_vm3): + Likewise. + +2021-09-10 H.J. Lu + + * config/i386/i386-expand.c + (ix86_avx256_split_vector_move_misalign): Handle V16HF mode. + * config/i386/i386.c + (ix86_preferred_simd_mode): Handle HF mode. + * config/i386/sse.md (V_256H): New mode iterator. + (avx_vextractf128): Use it. + (VEC_INIT_MODE): Align vector HFmode condition to vector + HImodes since there're no real HF instruction used. + (VEC_INIT_HALF_MODE): Ditto. + (VIHF): Ditto. + (VIHF_AVX512BW): Ditto. + (*vec_extracthf): Ditto. + (VEC_EXTRACT_MODE): Ditto. + +2021-09-10 Richard Biener + + PR target/102255 + * config/dbx.h: Remove. + * config/dbxcoff.h: Do not define PREFERRED_DEBUGGING_TYPE. + * config/lynx.h: Likewise. + +2021-09-10 liuhongt + + * config/i386/i386-expand.c (ix86_expand_copysign): Expand + right into ANDNOT + AND + IOR, using paradoxical subregs. + (ix86_split_copysign_const): Remove. + (ix86_split_copysign_var): Ditto. + * config/i386/i386-protos.h (ix86_split_copysign_const): Dotto. + (ix86_split_copysign_var): Ditto. + * config/i386/i386.md (@copysign3_const): Ditto. + (@copysign3_var): Ditto. + +2021-09-09 qing zhao + + * builtins.c (expand_builtin_memset): Make external visible. + * builtins.h (expand_builtin_memset): Declare extern. + * common.opt (ftrivial-auto-var-init=): New option. + * doc/extend.texi: Document the uninitialized attribute. + * doc/invoke.texi: Document -ftrivial-auto-var-init. + * flag-types.h (enum auto_init_type): New enumerated type + auto_init_type. + * gimple-fold.c (clear_padding_type): Add one new parameter. + (clear_padding_union): Likewise. + (clear_padding_emit_loop): Likewise. + (clear_type_padding_in_mask): Likewise. + (gimple_fold_builtin_clear_padding): Handle this new parameter. + * gimplify.c (gimple_add_init_for_auto_var): New function. + (gimple_add_padding_init_for_auto_var): New function. + (is_var_need_auto_init): New function. + (gimplify_decl_expr): Add initialization to automatic variables per + users' requests. + (gimplify_call_expr): Add one new parameter for call to + __builtin_clear_padding. + (gimplify_init_constructor): Add padding initialization in the end. + * internal-fn.c (INIT_PATTERN_VALUE): New macro. + (expand_DEFERRED_INIT): New function. + * internal-fn.def (DEFERRED_INIT): New internal function. + * tree-cfg.c (verify_gimple_call): Verify calls to .DEFERRED_INIT. + * tree-sra.c (generate_subtree_deferred_init): New function. + (scan_function): Avoid setting cannot_scalarize_away_bitmap for + calls to .DEFERRED_INIT. + (sra_modify_deferred_init): New function. + (sra_modify_function_body): Handle calls to DEFERRED_INIT specially. + * tree-ssa-structalias.c (find_func_aliases_for_call): Likewise. + * tree-ssa-uninit.c (warn_uninit): Handle calls to DEFERRED_INIT + specially. + (check_defs): Likewise. + (warn_uninitialized_vars): Likewise. + * tree-ssa.c (ssa_undefined_value_p): Likewise. + * tree.c (build_common_builtin_nodes): Build tree node for + BUILT_IN_CLEAR_PADDING when needed. + +2021-09-09 Richard Biener + + * tree-ssa-loop-im.c (fill_always_executed_in_1): Walk + into all subloops. + +2021-09-09 Richard Biener + + * tree-ssa-loop-im.c (fill_always_executed_in_1): Integrate + DOM walk from get_loop_body_in_dom_order using a worklist + approach. + +2021-09-09 liuhongt + + * config.gcc: Add avx512fp16vlintrin.h. + * config/i386/avx512fp16intrin.h: (_mm512_add_ph): New intrinsic. + (_mm512_mask_add_ph): Likewise. + (_mm512_maskz_add_ph): Likewise. + (_mm512_sub_ph): Likewise. + (_mm512_mask_sub_ph): Likewise. + (_mm512_maskz_sub_ph): Likewise. + (_mm512_mul_ph): Likewise. + (_mm512_mask_mul_ph): Likewise. + (_mm512_maskz_mul_ph): Likewise. + (_mm512_div_ph): Likewise. + (_mm512_mask_div_ph): Likewise. + (_mm512_maskz_div_ph): Likewise. + (_mm512_add_round_ph): Likewise. + (_mm512_mask_add_round_ph): Likewise. + (_mm512_maskz_add_round_ph): Likewise. + (_mm512_sub_round_ph): Likewise. + (_mm512_mask_sub_round_ph): Likewise. + (_mm512_maskz_sub_round_ph): Likewise. + (_mm512_mul_round_ph): Likewise. + (_mm512_mask_mul_round_ph): Likewise. + (_mm512_maskz_mul_round_ph): Likewise. + (_mm512_div_round_ph): Likewise. + (_mm512_mask_div_round_ph): Likewise. + (_mm512_maskz_div_round_ph): Likewise. + * config/i386/avx512fp16vlintrin.h: New header. + * config/i386/i386-builtin-types.def (V16HF, V8HF, V32HF): + Add new builtin types. + * config/i386/i386-builtin.def: Add corresponding builtins. + * config/i386/i386-expand.c + (ix86_expand_args_builtin): Handle new builtin types. + (ix86_expand_round_builtin): Likewise. + * config/i386/immintrin.h: Include avx512fp16vlintrin.h + * config/i386/sse.md (VFH): New mode_iterator. + (VF2H): Likewise. + (avx512fmaskmode): Add HF vector modes. + (avx512fmaskhalfmode): Likewise. + (3): Adjust to for + HF vector modes. + (*3): Likewise. + (mul3): Likewise. + (*mul3): Likewise. + (div3): Likewise. + (_div3): Likewise. + * config/i386/subst.md (SUBST_V): Add HF vector modes. + (SUBST_A): Likewise. + (round_mode512bit_condition): Adjust for V32HFmode. + +2021-09-09 liuhongt + + PR target/101059 + * config/i386/sse.md (reduc_plus_scal_): Split to .. + (reduc_plus_scal_v4sf): .. this, New define_expand. + (reduc_plus_scal_v2df): .. and this, New define_expand. + +2021-09-09 liuhongt + + PR target/91103 + * config/i386/sse.md (*vec_extract_valign): + New define_insn. + +2021-09-08 Jonathan Wakely + + PR c++/60318 + * doc/trouble.texi (Copy Assignment): Fix description of + behaviour and fix code in example. + +2021-09-08 Segher Boessenkool + + PR target/102107 + * config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): For ELFv2 use + r11 instead of r12 for restoring CR. + +2021-09-08 Jakub Jelinek + liuhongt + + PR target/89984 + * config/i386/i386.md (@xorsign3_1): Remove. + * config/i386/i386-expand.c (ix86_expand_xorsign): Expand right away + into AND with mask and XOR, using paradoxical subregs. + (ix86_split_xorsign): Remove. + * config/i386/i386-protos.h (ix86_split_xorsign): Remove. + +2021-09-08 Di Zhao + + * tree-ssa-sccvn.c (vn_nary_op_insert_into): fix result compare + +2021-09-08 Jakub Jelinek + + PR target/102224 + * config/i386/i386.md (xorsign3): If operands[1] is equal to + operands[2], emit abs2 instead. + (@xorsign3_1): Add early-clobbers for output operand, enable + first alternative even for avx, add another alternative with + =&Yv <- 0, Yv, Yvm constraints. + * config/i386/i386-expand.c (ix86_split_xorsign): If op0 is equal + to op1, emit vpandn instead. + +2021-09-08 liuhongt + + * config/i386/avx512fp16intrin.h (_mm_set_ph): New intrinsic. + (_mm256_set_ph): Likewise. + (_mm512_set_ph): Likewise. + (_mm_setr_ph): Likewise. + (_mm256_setr_ph): Likewise. + (_mm512_setr_ph): Likewise. + (_mm_set1_ph): Likewise. + (_mm256_set1_ph): Likewise. + (_mm512_set1_ph): Likewise. + (_mm_setzero_ph): Likewise. + (_mm256_setzero_ph): Likewise. + (_mm512_setzero_ph): Likewise. + (_mm_set_sh): Likewise. + (_mm_load_sh): Likewise. + (_mm_store_sh): Likewise. + * config/i386/i386-builtin-types.def (V8HF): New type. + (DEF_FUNCTION_TYPE (V8HF, V8HI)): New builtin function type + * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): + Support vector HFmodes. + (ix86_expand_vector_init_one_nonzero): Likewise. + (ix86_expand_vector_init_one_var): Likewise. + (ix86_expand_vector_init_interleave): Likewise. + (ix86_expand_vector_init_general): Likewise. + (ix86_expand_vector_set): Likewise. + (ix86_expand_vector_extract): Likewise. + (ix86_expand_vector_init_concat): Likewise. + (ix86_expand_sse_movcc): Handle vector HFmodes. + (ix86_expand_vector_set_var): Ditto. + * config/i386/i386-modes.def: Add HF vector modes in comment. + * config/i386/i386.c (classify_argument): Add HF vector modes. + (ix86_hard_regno_mode_ok): Allow HF vector modes for AVX512FP16. + (ix86_vector_mode_supported_p): Likewise. + (ix86_set_reg_reg_cost): Handle vector HFmode. + (ix86_get_ssemov): Handle vector HFmode. + (function_arg_advance_64): Pass unamed V16HFmode and V32HFmode + by stack. + (function_arg_advance_32): Pass V8HF/V16HF/V32HF by sse reg for 32bit + mode. + (function_arg_advance_32): Ditto. + * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): New. + (VALID_AVX256_REG_OR_OI_MODE): Rename to .. + (VALID_AVX256_REG_OR_OI_VHF_MODE): .. this, and add V16HF. + (VALID_SSE2_REG_VHF_MODE): New. + (VALID_AVX512VL_128_REG_MODE): Add V8HF and TImode. + (SSE_REG_MODE_P): Add vector HFmode. + * config/i386/i386.md (mode): Add HF vector modes. + (MODE_SIZE): Likewise. + (ssemodesuffix): Add ph suffix for HF vector modes. + * config/i386/sse.md (VFH_128): New mode iterator. + (VMOVE): Adjust for HF vector modes. + (V): Likewise. + (V_256_512): Likewise. + (avx512): Likewise. + (avx512fmaskmode): Likewise. + (shuffletype): Likewise. + (sseinsnmode): Likewise. + (ssedoublevecmode): Likewise. + (ssehalfvecmode): Likewise. + (ssehalfvecmodelower): Likewise. + (ssePScmode): Likewise. + (ssescalarmode): Likewise. + (ssescalarmodelower): Likewise. + (sseintprefix): Likewise. + (i128): Likewise. + (bcstscalarsuff): Likewise. + (xtg_mode): Likewise. + (VI12HF_AVX512VL): New mode_iterator. + (VF_AVX512FP16): Likewise. + (VIHF): Likewise. + (VIHF_256): Likewise. + (VIHF_AVX512BW): Likewise. + (V16_256): Likewise. + (V32_512): Likewise. + (sseintmodesuffix): New mode_attr. + (sse): Add scalar and vector HFmodes. + (ssescalarmode): Add vector HFmode mapping. + (ssescalarmodesuffix): Add sh suffix for HFmode. + (*_vm3): Use VFH_128. + (*_vm3): Likewise. + (*ieee_3): Likewise. + (_blendm): New define_insn. + (vec_setv8hf): New define_expand. + (vec_set_0): New define_insn for HF vector set. + (*avx512fp16_movsh): Likewise. + (avx512fp16_movsh): Likewise. + (vec_extract_lo_v32hi): Rename to ... + (vec_extract_lo_): ... this, and adjust to allow HF + vector modes. + (vec_extract_hi_v32hi): Likewise. + (vec_extract_hi_): Likewise. + (vec_extract_lo_v16hi): Likewise. + (vec_extract_lo_): Likewise. + (vec_extract_hi_v16hi): Likewise. + (vec_extract_hi_): Likewise. + (vec_set_hi_v16hi): Likewise. + (vec_set_hi_): Likewise. + (vec_set_lo_v16hi): Likewise. + (vec_set_lo_): Likewise. + (*vec_extract_0): New define_insn_and_split for HF + vector extract. + (*vec_extracthf): New define_insn. + (VEC_EXTRACT_MODE): Add HF vector modes. + (PINSR_MODE): Add V8HF. + (sse2p4_1): Likewise. + (pinsr_evex_isa): Likewise. + (_pinsr): Adjust to support + insert for V8HFmode. + (pbroadcast_evex_isa): Add HF vector modes. + (AVX2_VEC_DUP_MODE): Likewise. + (VEC_INIT_MODE): Likewise. + (VEC_INIT_HALF_MODE): Likewise. + (avx2_pbroadcast): Adjust to support HF vector mode + broadcast. + (avx2_pbroadcast_1): Likewise. + (_vec_dup_1): Likewise. + (_vec_dup): Likewise. + (_vec_dup_gpr): + Likewise. + +2021-09-08 Guo, Xuepeng + H.J. Lu + Liu Hongtao + Wang Hongyu + Xu Dianhong + + * common/config/i386/cpuinfo.h (get_available_features): + Detect FEATURE_AVX512FP16. + * common/config/i386/i386-common.c + (OPTION_MASK_ISA_AVX512FP16_SET, + OPTION_MASK_ISA_AVX512FP16_UNSET, + OPTION_MASK_ISA2_AVX512FP16_SET, + OPTION_MASK_ISA2_AVX512FP16_UNSET): New. + (OPTION_MASK_ISA2_AVX512BW_UNSET, + OPTION_MASK_ISA2_AVX512BF16_UNSET): Add AVX512FP16. + (ix86_handle_option): Handle -mavx512fp16. + * common/config/i386/i386-cpuinfo.h (enum processor_features): + Add FEATURE_AVX512FP16. + * common/config/i386/i386-isas.h: Add entry for AVX512FP16. + * config.gcc: Add avx512fp16intrin.h. + * config/i386/avx512fp16intrin.h: New intrinsic header. + * config/i386/cpuid.h: Add bit_AVX512FP16. + * config/i386/i386-builtin-types.def: (FLOAT16): New primitive type. + * config/i386/i386-builtins.c: Support _Float16 type for i386 + backend. + (ix86_register_float16_builtin_type): New function. + (ix86_float16_type_node): New. + * config/i386/i386-c.c (ix86_target_macros_internal): Define + __AVX512FP16__. + * config/i386/i386-expand.c (ix86_expand_branch): Support + HFmode. + (ix86_prepare_fp_compare_args): Adjust TARGET_SSE_MATH && + SSE_FLOAT_MODE_P to SSE_FLOAT_MODE_SSEMATH_OR_HF_P. + (ix86_expand_fp_movcc): Ditto. + * config/i386/i386-isa.def: Add PTA define for AVX512FP16. + * config/i386/i386-options.c (isa2_opts): Add -mavx512fp16. + (ix86_valid_target_attribute_inner_p): Add avx512fp16 attribute. + * config/i386/i386.c (ix86_get_ssemov): Use + vmovdqu16/vmovw/vmovsh for HFmode/HImode scalar or vector. + (ix86_get_excess_precision): Use + FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when TARGET_AVX512FP16 + existed. + (sse_store_index): Use SFmode cost for HFmode cost. + (inline_memory_move_cost): Add HFmode, and perfer SSE cost over + GPR cost for HFmode. + (ix86_hard_regno_mode_ok): Allow HImode in sse register. + (ix86_mangle_type): Add manlging for _Float16 type. + (inline_secondary_memory_needed): No memory is needed for + 16bit movement between gpr and sse reg under + TARGET_AVX512FP16. + (ix86_multiplication_cost): Adjust TARGET_SSE_MATH && + SSE_FLOAT_MODE_P to SSE_FLOAT_MODE_SSEMATH_OR_HF_P. + (ix86_division_cost): Ditto. + (ix86_rtx_costs): Ditto. + (ix86_add_stmt_cost): Ditto. + (ix86_optab_supported_p): Ditto. + * config/i386/i386.h (VALID_AVX512F_SCALAR_MODE): Add HFmode. + (SSE_FLOAT_MODE_SSEMATH_OR_HF_P): Add HFmode. + (PTA_SAPPHIRERAPIDS): Add PTA_AVX512FP16. + * config/i386/i386.md (mode): Add HFmode. + (MODE_SIZE): Add HFmode. + (isa): Add avx512fp16. + (enabled): Handle avx512fp16. + (ssemodesuffix): Add sh suffix for HFmode. + (comm): Add mult, div. + (plusminusmultdiv): New code iterator. + (insn): Add mult, div. + (*movhf_internal): Adjust for avx512fp16 instruction. + (*movhi_internal): Ditto. + (*cmpihf): New define_insn for HFmode. + (*ieee_shf3): Likewise. + (extendhf2): Likewise. + (trunchf2): Likewise. + (floathf2): Likewise. + (*hf): Likewise. + (cbranchhf4): New expander. + (movhfcc): Likewise. + (hf3): Likewise. + (mulhf3): Likewise. + (divhf3): Likewise. + * config/i386/i386.opt: Add mavx512fp16. + * config/i386/immintrin.h: Include avx512fp16intrin.h. + * doc/invoke.texi: Add mavx512fp16. + * doc/extend.texi: Add avx512fp16 Usage Notes. + +2021-09-08 liuhongt + + * common.opt: Support -fexcess-precision=16. + * config/aarch64/aarch64.c (aarch64_excess_precision): Return + FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when + EXCESS_PRECISION_TYPE_FLOAT16. + * config/arm/arm.c (arm_excess_precision): Ditto. + * config/i386/i386.c (ix86_get_excess_precision): Ditto. + * config/m68k/m68k.c (m68k_excess_precision): Issue an error + when EXCESS_PRECISION_TYPE_FLOAT16. + * config/s390/s390.c (s390_excess_precision): Ditto. + * coretypes.h (enum excess_precision_type): Add + EXCESS_PRECISION_TYPE_FLOAT16. + * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Update documents. + * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): Ditto. + * doc/extend.texi (Half-Precision): Document + -fexcess-precision=16. + * flag-types.h (enum excess_precision): Add + EXCESS_PRECISION_FLOAT16. + * target.def (excess_precision): Update document. + * tree.c (excess_precision_type): Set excess_precision_type to + EXCESS_PRECISION_FLOAT16 when -fexcess-precision=16. + +2021-09-08 liuhongt + + * doc/extend.texi: (@node Floating Types): Adjust the wording. + (@node Half-Precision): Ditto. + +2021-09-07 Takayuki 'January June' Suwa + + PR target/102115 + * config/xtensa/xtensa.c (xtensa_emit_move_sequence): Add + 'CONST_INT_P (src)' to the condition of the block that tries to + eliminate literal when loading integer contant. + +2021-09-07 David Faust + + * doc/extend.texi (BPF Type Attributes) New node. + Document new preserve_access_index attribute. + Document new preserve_access_index builtin. + * doc/invoke.texi: Document -mco-re and -mno-co-re options. + +2021-09-07 David Faust + + * config/bpf/bpf.c: Adjust includes. + (bpf_handle_preserve_access_index_attribute): New function. + (bpf_attribute_table): Use it here. + (bpf_builtins): Add BPF_BUILTIN_PRESERVE_ACCESS_INDEX. + (bpf_option_override): Handle "-mco-re" option. + (bpf_asm_init_sections): New. + (TARGET_ASM_INIT_SECTIONS): Redefine. + (bpf_file_end): New. + (TARGET_ASM_FILE_END): Redefine. + (bpf_init_builtins): Add "__builtin_preserve_access_index". + (bpf_core_compute, bpf_core_get_index): New. + (is_attr_preserve_access): New. + (bpf_expand_builtin): Handle new builtins. + (bpf_core_newdecl, bpf_core_is_maybe_aggregate_access): New. + (bpf_core_walk): New. + (bpf_resolve_overloaded_builtin): New. + (TARGET_RESOLVE_OVERLOADED_BUILTIN): Redefine. + (handle_attr): New. + (pass_bpf_core_attr): New RTL pass. + * config/bpf/bpf-passes.def: New file. + * config/bpf/bpf-protos.h (make_pass_bpf_core_attr): New. + * config/bpf/coreout.c: New file. + * config/bpf/coreout.h: Likewise. + * config/bpf/t-bpf (TM_H): Add $(srcdir)/config/bpf/coreout.h. + (coreout.o): New rule. + (PASSES_EXTRA): Add $(srcdir)/config/bpf/bpf-passes.def. + * config.gcc (bpf): Add coreout.h to extra_headers. + Add coreout.o to extra_objs. + Add $(srcdir)/config/bpf/coreout.c to target_gtfiles. + +2021-09-07 David Faust + + * btfout.c (get_btf_id): Function is no longer static. + * ctfc.h: Expose it here. + +2021-09-07 David Faust + + * ctfc.c (ctf_lookup_tree_type): New function. + * ctfc.h: Likewise. + +2021-09-07 David Faust + + * ctfc.c (ctf_dtd_lookup): Function is no longer static. + * ctfc.h: Analogous change. + +2021-09-07 David Faust + + * dwarf2out.c (lookup_type_die): Function is no longer static. + * dwarf2out.h: Expose it here. + +2021-09-07 Indu Bhagat + + * dwarf2ctf.c (ctf_debug_finalize): Make it static. + (ctf_debug_early_finish): New definition. + (ctf_debug_finish): Likewise. + * dwarf2ctf.h (ctf_debug_finalize): Remove declaration. + (ctf_debug_early_finish): New declaration. + (ctf_debug_finish): Likewise. + * dwarf2out.c (dwarf2out_finish): Invoke ctf_debug_finish. + (dwarf2out_early_finish): Invoke ctf_debug_early_finish. + +2021-09-07 Indu Bhagat + + * config/bpf/bpf.c (bpf_option_override): For BPF backend, disable LTO + support when compiling for CO-RE. + * config/bpf/bpf.opt: Add new command line option -mco-re. + +2021-09-07 Indu Bhagat + + * flag-types.h (enum debug_info_type): Add new enum + DINFO_TYPE_BTF_WITH_CORE. + (BTF_WITH_CORE_DEBUG): New bitmask. + * flags.h (btf_with_core_debuginfo_p): New declaration. + * opts.c (btf_with_core_debuginfo_p): New definition. + +2021-09-07 Jason Merrill + + * tree.h (error_operand_p): Change to inline function. + +2021-09-07 Aldy Hernandez + + * tree-ssa-threadedge.c (forwarder_block_p): Rename to... + (empty_block_with_phis_p): ...this. + (potentially_threadable_block): Same. + (jump_threader::thread_through_normal_block): Same. + +2021-09-07 Eric Botcazou + + PR debug/101947 + * dwarf2out.c (mark_base_types): New overloaded function. + (dwarf2out_early_finish): Invoke it on the COMDAT type list as well + as the compilation unit, and call move_marked_base_types afterward. + +2021-09-07 H.J. Lu + + PR target/85819 + * config/i386/i386-expand.c (ix86_expand_convert_uns_sisf_sse): + Enable FMA. + (ix86_expand_vector_convert_uns_vsivsf): Likewise. + +2021-09-07 Richard Biener + + PR tree-optimization/102226 + * tree-vect-loop.c (vect_transform_cycle_phi): Record + the converted value for the epilogue PHI use. + +2021-09-07 Martin Liska + + PR gcov-profile/80223 + * ipa-inline.c (can_inline_edge_p): Similarly to sanitizer + options, do not inline when no_profile_instrument_function + attributes are different in early inliner. It's fine to inline + it after PGO instrumentation. + +2021-09-07 Richard Biener + + PR tree-optimization/101555 + * tree-ssa-pre.c (translate_vuse_through_block): Do not + perform an alias walk to determine the validity of the + mem at the start of the block which is already guaranteed + by means of prune_clobbered_mems. + (phi_translate_1): Pass edge to translate_vuse_through_block. + +2021-09-07 Xionghu Luo + + PR target/97142 + * config/rs6000/rs6000.md (fmod3): New define_expand. + (remainder3): Likewise. + +2021-09-07 YunQiang Su + + * config/mips/mips.c (mips_file_start): add .module for + arch and ase. + +2021-09-06 Roger Sayle + + * wide-int.cc (wi::clz): Reorder tests to ensure the result + is zero for all negative values. + +2021-09-06 Tobias Burnus + + * doc/invoke.texi (-foffload-options): Fix @opindex. + +2021-09-06 H.J. Lu + + PR target/89984 + * config/i386/i386-expand.c (ix86_split_xorsign): Use operands[2]. + * config/i386/i386.md (@xorsign3_1): Add non-destructive + source alternative for AVX. + +2021-09-06 liuhongt + + PR middle-end/102182 + * optabs.c (expand_fix): Add from1 to avoid from being + overwritten. + +2021-09-06 Eric Botcazou + + * dwarf2out.c (modified_type_die): Deal with all array types earlier + and use local variable consistently throughout the function. + +2021-09-06 Jakub Jelinek + + PR tree-optimization/102207 + * match.pd: Don't demote operands of IFN_{ADD,SUB,MUL}_OVERFLOW if they + were promoted from signed to wider unsigned type. + +2021-09-06 Andrew Pinski + + PR tree-optimization/63184 + * match.pd: Add simplification of pointer_diff of two pointer_plus + with addr_expr in the first operand of each pointer_plus. + Add simplificatoin of ne/eq of two pointer_plus with addr_expr + in the first operand of each pointer_plus. + +2021-09-06 Richard Biener + + PR tree-optimization/102176 + * tree-vect-slp.c (vect_slp_gather_vectorized_scalar_stmts): + New function. + (vect_bb_slp_scalar_cost): Use the computed set of + vectorized scalar stmts instead of relying on the out-of-date + and not accurate PURE_SLP_STMT. + (vect_bb_vectorization_profitable_p): Compute the set + of vectorized scalar stmts. + +2021-09-05 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::range_of_stmt): Remove + GIMPLE_COND special casing. + (path_range_query::range_defined_in_block): Use range_of_stmt + instead of calling fold_range directly. + +2021-09-05 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::range_of_expr): Set + m_undefined_path when appropriate. + (path_range_query::internal_range_of_expr): Copy from range_of_expr. + (path_range_query::unreachable_path_p): New. + (path_range_query::precompute_ranges): Set m_undefined_path. + * gimple-range-path.h (path_range_query::unreachable_path_p): New. + (path_range_query::internal_range_of_expr): New. + * tree-ssa-threadbackward.c (back_threader::find_taken_edge_cond): + Use unreachable_path_p. + +2021-09-05 Aldy Hernandez + + * tree-ssa-threadbackward.c (back_threader::maybe_register_path): + Remove argument and call find_taken_edge. + (back_threader::resolve_phi): Do not calculate taken edge before + calling maybe_register_path. + (back_threader::find_paths_to_names): Same. + +2021-09-05 Jeff Law + + * config/h8300/h8300.md (QHSI2 mode iterator): New mode iterator. + * config/h8300/testcompare.md (store_c): Update name, use new + QHSI2 iterator. + (store_neg_c, store_shifted_c): New patterns. + +2021-09-03 Segher Boessenkool + + PR target/102107 + * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): On ELFv2 use r11 + instead of r12 for CR save, in all cases. + +2021-09-03 Andrew Pinski + + * config/aarch64/aarch64-sve-builtins.cc (register_vector_type): + Handle error_mark_node as the type of the type_decl. + +2021-09-03 Andrew Pinski + + * config/aarch64/aarch64-builtins.c (struct aarch64_simd_type_info): + Mark with GTY. + (aarch64_simd_types): Likewise. + (aarch64_simd_intOI_type_node): Likewise. + (aarch64_simd_intCI_type_node): Likewise. + (aarch64_simd_intXI_type_node): Likewise. + * config/aarch64/aarch64.h (aarch64_fp16_type_node): Likewise. + (aarch64_fp16_ptr_type_node): Likewise. + (aarch64_bf16_type_node): Likewise. + (aarch64_bf16_ptr_type_node): Likewise. + +2021-09-03 Aldy Hernandez + + * range-op.cc (operator_minus::op1_op2_relation_effect): Abstract + out to... + (minus_op1_op2_relation_effect): ...here. + (class operator_pointer_diff): New. + (operator_pointer_diff::op1_op2_relation_effect): Call + minus_op1_op2_relation_effect. + (integral_table::integral_table): Add entry for POINTER_DIFF_EXPR. + +2021-09-03 Aldy Hernandez + + * tree-ssa-threadbackward.c (back_threader::thread_through_all_blocks): + Add may_peel_loop_headers. + (back_threader_registry::thread_through_all_blocks): Same. + (try_thread_blocks): Pass may_peel_loop_headers argument. + (pass_early_thread_jumps::execute): Same. + +2021-09-03 Aldy Hernandez + + * tree-ssa-threadedge.c (has_phis_p): New. + (forwarder_block_p): New. + (potentially_threadable_block): Call forwarder_block_p. + (jump_threader::thread_around_empty_blocks): Call has_phis_p. + (jump_threader::thread_through_normal_block): Call + forwarder_block_p. + +2021-09-03 Aldy Hernandez + + * tree-ssa-threadbackward.c (back_threader::dump): New. + (back_threader::debug): New. + (back_threader_profitability::profitable_path_p): Dump blocks + even if we are bailing early. + +2021-09-03 Aldy Hernandez + + * tree-ssa-threadupdate.c (cancel_thread): New. + (jump_thread_path_registry::thread_block_1): Use cancel_thread. + (jump_thread_path_registry::mark_threaded_blocks): Same. + (jump_thread_path_registry::register_jump_thread): Same. + +2021-09-03 Aldy Hernandez + + * tree-ssa-threadedge.c (jt_state::push): Only call methods for + which objects are available. + (jt_state::pop): Same. + (jt_state::register_equiv): Same. + (jt_state::register_equivs_on_edge): Same. + +2021-09-03 Aldy Hernandez + + * tree-ssa-threadedge.c (jump_threader::thread_across_edge): + Move pop until after a thread is registered. + +2021-09-03 Aldy Hernandez + + * tree-ssa-threadupdate.c (debug): New. + +2021-09-03 Aldy Hernandez + + * gimple-range-trace.cc (push_dump_file::push_dump_file): New. + (push_dump_file::~push_dump_file): New. + (dump_ranger): Change dump_file temporarily while dumping + ranger. + * gimple-range-trace.h (class push_dump_file): New. + +2021-09-03 Aldy Hernandez + + * gimple-range-trace.cc (debug_seed_ranger): Remove static. + (dump_ranger): Dump function name. + +2021-09-03 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::range_defined_in_block): + Adjust for non-null. + (path_range_query::adjust_for_non_null_uses): New. + (path_range_query::precompute_ranges): Call + adjust_for_non_null_uses. + * gimple-range-path.h: Add m_non_null and + adjust_for_non_null_uses. + +2021-09-03 Aldy Hernandez + + * gimple-range-path.cc (path_range_query::dump): Dump path + length. + (path_range_query::precompute_ranges): Dump entire path. + +2021-09-03 Aldy Hernandez + + * value-relation.cc (relation_oracle::debug): New. + * value-relation.h (relation_oracle::debug): New. + +2021-09-03 Aldy Hernandez + + * tree-ssa-loop-ch.c: Remove unnecessary include file. + +2021-09-03 Aldy Hernandez + + * gimple-range-fold.cc (fold_using_range::postfold_gcond_edges): + Skip statements with no defining BB. + * gimple-range-path.cc (path_range_query::range_defined_in_block): + Do not get confused by statements with no defining BB. + +2021-09-03 Aldy Hernandez + + * gimple-range-fold.cc (adjust_imagpart_expr): Move from + gimple_range_adjustment. Add support for constants. + (adjust_realpart_expr): New. + (gimple_range_adjustment): Move IMAGPART_EXPR code to + adjust_imagpart_expr. + * range-op.cc (integral_table::integral_table): Add entry for + REALPART_CST. + +2021-09-03 Jakub Jelinek + + * omp-expand.c (expand_omp_atomic_pipeline): Use + IFN_ATOMIC_COMPARE_EXCHANGE instead of + BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_? so that memory order + can be provided. + +2021-09-03 Jakub Jelinek + + PR target/102024 + * tree.h (DECL_FIELD_ABI_IGNORED): Changed into rvalue only macro + that is false if DECL_BIT_FIELD. + (SET_DECL_FIELD_ABI_IGNORED, DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD, + SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD): Define. + * tree-streamer-out.c (pack_ts_decl_common_value_fields): For + DECL_BIT_FIELD stream DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead + of DECL_FIELD_ABI_IGNORED. + * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use + SET_DECL_FIELD_ABI_IGNORED instead of writing to + DECL_FIELD_ABI_IGNORED and for DECL_BIT_FIELD use + SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead. + * lto-streamer-out.c (hash_tree): For DECL_BIT_FIELD hash + DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead of DECL_FIELD_ABI_IGNORED. + +2021-09-03 liuhongt + + PR target/102166 + * config/i386/amxbf16intrin.h : Remove macro check for __AMX_BF16__. + * config/i386/amxint8intrin.h : Remove macro check for __AMX_INT8__. + * config/i386/amxtileintrin.h : Remove macro check for __AMX_TILE__. + +2021-09-02 Martin Sebor + + PR tree-optimization/17506 + PR testsuite/37182 + * tree-ssa-uninit.c (warn_uninit): Remove conditional guarding note. + +2021-09-02 Richard Biener + + * tree-ssa-loop-im.c (fill_always_executed_in_1): Refine + fix for PR78185 and continue processing when leaving + finite inner loops. + +2021-09-02 Jakub Jelinek + + PR tree-optimization/99591 + * match.pd: Demote operands of IFN_{ADD,SUB,MUL}_OVERFLOW if they + were promoted. + +2021-09-02 Richard Biener + + Revert: + 2021-09-02 Richard Biener + + PR tree-optimization/102155 + * tree-ssa-loop-im.c (fill_always_executed_in_1): Iterate + over a part of the RPO array and do not recurse here. + Dump blocks marked as always executed. + (fill_always_executed_in): Walk over the RPO array and + process loops whose header we run into. + (loop_invariant_motion_in_fun): Compute the first RPO + using rev_post_order_and_mark_dfs_back_seme in iteration + order and pass that to fill_always_executed_in. + +2021-09-02 liuhongt + + * config/i386/i386-modes.def (FLOAT_MODE): Define ieee HFmode. + * config/i386/i386.c (enum x86_64_reg_class): Add + X86_64_SSEHF_CLASS. + (merge_classes): Handle X86_64_SSEHF_CLASS. + (examine_argument): Ditto. + (construct_container): Ditto. + (classify_argument): Ditto, and set HFmode/HCmode to + X86_64_SSEHF_CLASS. + (function_value_32): Return _FLoat16/Complex Float16 by + %xmm0. + (function_value_64): Return _Float16/Complex Float16 by SSE + register. + (ix86_print_operand): Handle CONST_DOUBLE HFmode. + (ix86_secondary_reload): Require gpr as intermediate register + to store _Float16 from sse register when sse4 is not + available. + (ix86_libgcc_floating_mode_supported_p): Enable _FLoat16 under + sse2. + (ix86_scalar_mode_supported_p): Ditto. + (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Defined. + * config/i386/i386.h (VALID_SSE2_REG_MODE): Add HFmode. + (VALID_INT_MODE_P): Add HFmode and HCmode. + * config/i386/i386.md (*pushhf_rex64): New define_insn. + (*pushhf): Ditto. + (*movhf_internal): Ditto. + * doc/extend.texi (Half-Precision Floating Point): Documemt + _Float16 for x86. + +2021-09-02 Richard Biener + + PR tree-optimization/102155 + * tree-ssa-loop-im.c (fill_always_executed_in_1): Iterate + over a part of the RPO array and do not recurse here. + Dump blocks marked as always executed. + (fill_always_executed_in): Walk over the RPO array and + process loops whose header we run into. + (loop_invariant_motion_in_fun): Compute the first RPO + using rev_post_order_and_mark_dfs_back_seme in iteration + order and pass that to fill_always_executed_in. + +2021-09-02 YunQiang Su + + Revert: + 2021-08-31 YunQiang Su + + * config/mips/mips.c (mips_module_isa_name): New. + mips_file_start: add .module mipsREV to all asm output + +2021-09-01 Jeff Law + + PR tree-optimization/102152 + * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Reduce a vector + comparison to a scalar comparison before calling + update_stmt_if_modified. + +2021-09-01 Andrew Pinski + + PR target/101934 + * config/aarch64/aarch64.c (aarch64_expand_setmem): + Check STRICT_ALIGNMENT before creating an overlapping + store. + +2021-09-01 Martin Sebor + + * gimple-ssa-warn-access.cc (get_size_range): Add argument. + (check_access): Pass additional argument. + (check_memop_access): Remove template and make a member function. + (maybe_check_dealloc_call): Make a pass_waccess member function. + (class pass_waccess): Add, rename, and remove members. + (pass_waccess::pass_waccess): Adjust to name change. + (pass_waccess::~pass_waccess): Same. + (check_alloca): Make a member function. + (check_alloc_size_call): Same. + (check_strcat): Same. + (check_strncat): Same. + (check_stxcpy): Same. + (check_stxncpy): Same. + (check_strncmp): Same. + (maybe_warn_rdwr_sizes): Rename... + (pass_waccess::maybe_check_access_sizes): ...to this. + (pass_waccess::check_call): Adjust to name changes. + (pass_waccess::maybe_check_dealloc_call): Make a pass_waccess member + function. + (pass_waccess::execute): Adjust to name changes. + * gimple-ssa-warn-access.h (check_memop_access): Remove. + * pointer-query.cc (access_ref::phi): Handle null pointer. + (access_ref::inform_access): Same. + (pointer_query::put_ref): Modify a cached value, not a copy of it. + (pointer_query::dump): New function. + (compute_objsize_r): Avoid overwriting access_ref::bndrng. Cache + more results. + * pointer-query.h (pointer_query::dump): Declare. + * tree-ssa-strlen.c (get_range): Simplify. Use function query. + (dump_strlen_info): Use function query. + (printf_strlen_execute): Factor code out into pointer_query::put_ref. + +2021-09-01 Thomas Schwinge + + * tree.c (walk_tree_1) : Simplify. + +2021-09-01 Iain Sandoe + + * doc/extend.texi: Document unavailable attribute. + * print-tree.c (print_node): Handle unavailable attribute. + * tree-core.h (struct tree_base): Add a bit to carry unavailability. + * tree.c (error_unavailable_use): New. + * tree.h (TREE_UNAVAILABLE): New. + (error_unavailable_use): New. + +2021-09-01 Jakub Jelinek + + PR tree-optimization/102124 + * tree-vect-patterns.c (vect_recog_widen_op_pattern): For ORIG_CODE + MINUS_EXPR, if itype is unsigned with smaller precision than type, + add an extra cast to signed variant of itype to ensure sign-extension. + +2021-09-01 Martin Liska + + * graph.c (draw_cfg_node_succ_edges): Do not color fallthru + edges and rather use colors for TRUE and FALSE edges. + +2021-09-01 Richard Biener + + PR tree-optimization/93491 + * tree-ssa-pre.c (compute_avail): Set BB_MAY_NOTRETURN + after processing the stmt itself. Do not consider + pure functions possibly not returning. Properly avoid + adding possibly trapping calls to EXP_GEN when there's + a preceeding possibly not returning call. + * tree-ssa-sccvn.c (vn_reference_may_trap): Conservatively + not handle calls. + +2021-09-01 Richard Biener + + PR tree-optimization/102139 + * tree-vectorizer.h (vec_base_alignments): Adjust hash-map + type to record a std::pair of the stmt-info and the innermost + loop behavior. + (dr_vec_info::group): New member. + * tree-vect-data-refs.c (vect_record_base_alignment): Adjust. + (vect_compute_data_ref_alignment): Verify the recorded + base alignment can be used. + (data_ref_pair): Remove. + (dr_group_sort_cmp): Adjust. + (vect_analyze_data_ref_accesses): Store the group-ID in the + dr_vec_info and operate on a vector of dr_vec_infos. + +2021-09-01 YunQiang Su + + * read-md.c (md_reader::handle_enum): support value assignation. + * doc/md.texi: record define_c_enum value assignation support. + +2021-09-01 Jakub Jelinek + + PR tree-optimization/102141 + * gimple-ssa-store-merging.c (bswap_view_convert): Add BEFORE + argument. If false, emit stmts after gsi instead of before, and + with GSI_NEW_STMT. + (bswap_replace): Adjust callers. When converting output of bswap, + emit VIEW_CONVERT prepratation stmts after a copy of gsi instead + of before it. + +2021-09-01 liuhongt + + * emit-rtl.c (validate_subreg): Get rid of all float-int + special cases. + +2021-09-01 liuhongt + + Revert: + 2021-08-30 liuhongt + + * expmed.c (extract_bit_field_1): Make sure we're playing with + integral modes before call extract_integral_bit_field. + (extract_integral_bit_field): Add a parameter of type + scalar_int_mode which corresponds to of tmode. + And call extract_and_convert_fixed_bit_field instead of + extract_fixed_bit_field and convert_extracted_bit_field. + (extract_and_convert_fixed_bit_field): New function, it's a + combination of extract_fixed_bit_field and + convert_extracted_bit_field. + +2021-08-31 Thomas Schwinge + + * tree.c (walk_tree_1) : Handle three operands. + +2021-08-31 Thomas Schwinge + + * omp-general.h (omp_is_reference): Rename to... + (omp_privatize_by_reference): ... this. Adjust all users... + * omp-general.c: ... here, ... + * gimplify.c: ... here, ... + * omp-expand.c: ... here, ... + * omp-low.c: ... here. + +2021-08-31 Martin Sebor + + * gimple-ssa-warn-access.cc (maybe_warn_alloc_args_overflow): Test + pointer element for equality to zero, not that of the cotaining + array. + +2021-08-31 Martin Sebor + + * gcc-rich-location.h (gcc_rich_location): Make ctor explicit. + +2021-08-31 Martin Sebor + + * function.h (function): Add comments. + (get_range_query): Same. Add attribute returns nonnull. + +2021-08-31 Roger Sayle + + * expr.c (convert_modes): Don't use subreg_promoted_mode on a + SUBREG if it can't be guaranteed to a SUBREG_PROMOTED_VAR_P set. + Instead use the standard (safer) is_a idiom. + +2021-08-31 Jeff Law + + * config.gcc (cris-*-elf, cris-*-none): Remove dbxelf.h from + tm_file. + (m32r-*-elf, m32rle-*-elf, m32r-*-linux): Likewise. + (mn10300-*-*, am33_2.0-*-linux*): Likewise. + (xtensa*-*-elf, xtensa*-*-linux, xtensa*-*-uclinux): Likewise. + (m32c-*-elf*, m32c-*-rtems*): Likewise. + * config/cris/cris.h (DBX_NO_XREFS): Remove. + (DBX_CONTIN_LENGTH, DBX_CONTIN_CHAR): Likewise. + * config/m32r/m32r.h (DBXOUT_SOURCE_LINE): Likewise. + (DBX_DEBUGGING_INFO, DBX_CONTIN_LENGTH): Likewise. + * config/mn10300/mn10300.h (DEFAULT_GDB_EXTENSIONS): Likewise. + * config/mn10300/linux.h (DBX_REGISTER_NAMES): Likewise. + +2021-08-31 Marcel Vollweiler + + * gimplify.c (gimplify_scan_omp_clauses): Error handling. 'ancestor' only + allowed on target constructs and only with particular other clauses. + * omp-expand.c (expand_omp_target): Output of 'sorry, not supported' if + 'ancestor' is used. + * omp-low.c (check_omp_nesting_restrictions): Error handling. No nested OpenMP + structs when 'ancestor' is used. + (scan_omp_1_stmt): No usage of OpenMP runtime routines in a target region when + 'ancestor' is used. + * tree-pretty-print.c (dump_omp_clause): Append 'ancestor'. + * tree.h (OMP_CLAUSE_DEVICE_ANCESTOR): Define macro. + +2021-08-31 Roger Sayle + + * expr.c (convert_modes): Preserve SUBREG_PROMOTED_VAR_P when + creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P + subreg. + * simplify-rtx.c (simplify_unary_operation_1) [SIGN_EXTEND]: + Likewise, preserve SUBREG_PROMOTED_VAR_P when creating a (wider) + partial subreg from a SUBREG_PROMOTED_VAR_P subreg. Generate + SIGN_EXTEND of the SUBREG_REG when a subreg would be paradoxical. + [ZERO_EXTEND]: Likewise, preserve SUBREG_PROMOTED_VAR_P when + creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P + subreg. Generate ZERO_EXTEND of the SUBREG_REG when a subreg + would be paradoxical. + +2021-08-31 Roger Sayle + + * combine.c (combine_simplify_rtx): Avoid converting an explicit + TRUNCATE into a lowpart SUBREG on !TRULY_NOOP_TRUNCATION targets. + * simplify-rtx.c (simplify_unary_operation_1): Likewise. + +2021-08-31 Richard Biener + + PR tree-optimization/102142 + * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Fix + condition under which to unset the visited flag. + +2021-08-31 Richard Biener + + PR middle-end/102129 + * tree-ssa-ter.c (find_replaceable_in_bb): Do not move + possibly trapping expressions across calls. + +2021-08-31 Jakub Jelinek + + PR tree-optimization/102134 + * tree-ssa-ccp.c (bit_value_binop) : If sgn is + UNSIGNED and r1val | r1mask has MSB set, ensure lzcount doesn't + become negative. + +2021-08-31 Andrew Pinski + + PR driver/79181 + * collect-utils.c (setup_signals): New declaration. + * collect-utils.h (setup_signals): New function. + * collect2.c (handler): Delete. + (main): Instead of manually setting up the signals, + just call setup_signals. + * lto-wrapper.c (main): Likewise. + +2021-08-31 Andrew Pinski + + PR target/56337 + * config/i386/i386-protos.h (x86_output_aligned_bss): + Change align argument to unsigned type. + (x86_elf_aligned_decl_common): Likewise. + * config/i386/i386.c (x86_elf_aligned_decl_common): Likewise. + (x86_output_aligned_bss): Likewise. + +2021-08-31 YunQiang Su + + * config/mips/mips.c (mips_module_isa_name): New. + mips_file_start: add .module mipsREV to all asm output + +2021-08-31 YunQiang Su + + * config/mips/mips.h (struct mips_cpu_info): define enum mips_isa; + use enum instead of int for 'isa' member. + * config.gcc, config/mips/mips.c, config/mips/mips-cpus.def, + config/mips/netbsd.h: replace hardcoded numbers with enum. + +2021-08-31 liuhongt + + * config/i386/sse.md (*_ucmp3_1): Change from + define_split to define_insn_and_split. + (*avx2_eq3): Removed. + (_eq3): Adjust pattern + (_eq3_1): Rename to .. + (*_eq3_1): .. this, and + adjust pattern. + (*avx2_gt3): Removed. + (_gt3): Change from + define_insn to define_expand, and adjust pattern. + (UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT): Removed. + +2021-08-30 David Malcolm + + PR analyzer/99260 + * Makefile.in (ANALYZER_OBJS): Add analyzer/call-info.o. + +2021-08-30 Jason Merrill + + * doc/invoke.texi: Document -Wmissing-requires. + +2021-08-30 Bill Schmidt + + * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove + TARGET_EXTRA_BUILTINS guard. + +2021-08-30 Bill Schmidt + + * config/rs6000/rs6000-call.c (rs6000_init_builtins): Change + initialization of V2DI_type_node and unsigned_V2DI_type_node. + +2021-08-30 Bill Schmidt + + * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Use the new + decl when new_builtins_are_live. + * config/rs6000/rs6000-builtin-new.def (__builtin_cfstring): New + built-in. + +2021-08-30 Pat Haugen + + * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Add + OPTION_MASK_P10_FUSION_2STORE. + (POWERPC_MASKS): Likewise. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable + store fusion for Power10. + (is_fusable_store): New. + (power10_sched_reorder): Likewise. + (rs6000_sched_reorder): Do Power10 specific reordering. + (rs6000_sched_reorder2): Likewise. + * config/rs6000/rs6000.opt: Add new option. + +2021-08-30 Richard Biener + + PR tree-optimization/102128 + * tree-vect-slp.c (vect_bb_vectorization_profitable_p): + Move scanning for if-converted scalar code to the caller + and instead delay clearing the visited flag for profitable + subgraphs. + (vect_slp_region): Cost all subgraphs before scheduling. + For if-converted BB vectorization scan for scalar COND_EXPRs + and do not vectorize if any found and the cost model is + very-cheap. + +2021-08-30 Richard Biener + + * common.opt (fexceptions): Mark + EnabledBy(fnon-call-exceptions). + * doc/invoke.texi (fnon-call-exceptions): Document this + enables -fexceptions. + +2021-08-30 Sebastian Huber + + * tsystem.h (abort): Define abort() if inhibit_libc is defined and it + is not already defined. + +2021-08-30 liuhongt + + * expmed.c (extract_bit_field_1): Make sure we're playing with + integral modes before call extract_integral_bit_field. + (extract_integral_bit_field): Add a parameter of type + scalar_int_mode which corresponds to of tmode. + And call extract_and_convert_fixed_bit_field instead of + extract_fixed_bit_field and convert_extracted_bit_field. + (extract_and_convert_fixed_bit_field): New function, it's a + combination of extract_fixed_bit_field and + convert_extracted_bit_field. + +2021-08-29 Iain Sandoe + + * config/darwin.c (darwin_libc_has_function): Do not run + the checks for x86 or modern Darwin. Make sure that there + is a value set for darwin_macosx_version_min before testing. + +2021-08-29 Iain Sandoe + + * config/i386/darwin.h (CLEAR_INSN_CACHE): New. + +2021-08-28 Jan Hubicka + + * ipa-modref-tree.h (modref_access_node::merge): Break out + logic combining offsets and logic merging ranges to ... + (modref_access_node::combined_offsets): ... here + (modref_access_node::update2): ... here + (modref_access_node::closer_pair_p): New member function. + (modref_access_node::forced_merge): New member function. + (modre_ref_node::insert): Do merging when table is full. + +2021-08-28 YunQiang Su + + PR target/102089 + * config.gcc: MIPS: use N64 ABI by default if the triple end + with -gnuabi64, which is used by Debian since 2013. + +2021-08-28 Alexandre Oliva + + * ipa-modref.c (analyze_function): Skip debug stmts. + * tree-inline.c (estimate_num_insn): Consider builtins even + without a cgraph_node. + +2021-08-27 Jeff Law + + * config/h8300/bitfield.md (cstore4): Remove expander. + * config/h8300/h8300.c (h8300_expand_branch): Remove function. + * config/h8300/h8300-protos.h (h8300_expadn_branch): Remove prototype. + * config/h8300/h8300.md (eqne): New code iterator. + (geultu, geultu_to_c): Similarly. + * config/h8300/testcompare.md (cstore4): Dummy expander. + (store_c_, store_c_i_): New define_insn_and_splits + (cmp_c): New pattern + +2021-08-27 Jeff Law + + * tree-ssa-dom.c (reduce_vector_comparison_to_scalar_comparison): New + function. + (dom_opt_dom_walker::optimize_stmt): Use it. + +2021-08-27 Iain Sandoe + + * config/darwin.c (finalize_ctors): Add a section-start linker- + visible symbol. + (finalize_dtors): Likewise. + * config/darwin.h (MIN_LD64_INIT_TERM_START_LABELS): New. + +2021-08-27 Bill Schmidt + + * config/rs6000/rs6000-call.c (rs6000-builtins.h): New #include. + (rs6000_init_builtins): Call rs6000_init_generated_builtins. Skip the + old initialization logic when new builtins are enabled. + * config/rs6000/rs6000-gen-builtins.c (write_decls): Rename + rs6000_autoinit_builtins to rs6000_init_generated_builtins. + (write_init_file): Likewise. + +2021-08-27 Iain Sandoe + + * configure.ac (darwin2[[0-9]]* | darwin19*): Alter use of + gcc_GAS_CHECK_FEATURE to remove an extraneous parameter. + (amdgcn-* | gcn-*) Likewise. + +2021-08-27 Anthony Sharp + + * symbol-summary.h: Added missing template keyword. + +2021-08-27 Richard Biener + + PR tree-optimization/45178 + * tree-ssa-dce.c (find_obviously_necessary_stmts): For + infinite loops without exit do not mark control dependent + edges of the latch necessary. + +2021-08-27 konglin1 + + PR target/101472 + * config/i386/sse.md: (scattersi): Add mask operand to + UNSPEC_VSIBADDR. + (scattersi): Likewise. + (*avx512f_scattersi): Merge mask operand to set_dest. + (*avx512f_scatterdi): Likewise + +2021-08-27 Kewen Lin + + * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function): Add + support for built-in functions MISC_BUILTIN_DIVWE, MISC_BUILTIN_DIVWEU, + MISC_BUILTIN_DIVDE, MISC_BUILTIN_DIVDEU, P10_BUILTIN_CFUGED, + P10_BUILTIN_CNTLZDM, P10_BUILTIN_CNTTZDM, P10_BUILTIN_PDEPD and + P10_BUILTIN_PEXTD on Power10. + +2021-08-27 Kewen Lin + + * config/rs6000/rs6000-call.c (builtin_function_type): Add unsigned + signedness for some Power10 bifs. + +2021-08-27 David Edelsohn + + PR target/102068 + * config/rs6000/rs6000.c (rs6000_adjust_field_align): Use + computed alignment if the entire struct has attribute packed. + +2021-08-27 liuhongt + + PR target/98167 + PR target/43147 + * config/i386/i386.c (ix86_gimple_fold_builtin): Fold + IX86_BUILTIN_SHUFPD512, IX86_BUILTIN_SHUFPS512, + IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS, + IX86_BUILTIN_SHUFPS256. + (ix86_masked_all_ones): New function. + +2021-08-26 Uroš Bizjak + + * config/i386/i386.md (*btr_1): Call force_reg unconditionally. + (conditional moves with memory inputs splitters): Ditto. + * config/i386/sse.md (one_cmpl2): Simplify. + +2021-08-26 Jan Hubicka + + * ipa-modref-tree.h (modref_access_node::try_merge_with): Restart + search after merging. + +2021-08-26 Bill Schmidt + + * config/rs6000/rs6000-overload.def: Add remaining overloads. + +2021-08-26 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: Add cell stanza. + +2021-08-26 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: Add ieee128-hw, dfp, + crypto, and htm stanzas. + +2021-08-26 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: Add mma stanza. + +2021-08-26 Martin Sebor + + * tree-ssa-uninit.c (warn_uninit): Refactor and simplify. + (warn_uninit_phi_uses): Remove argument from calls to warn_uninit. + (warn_uninitialized_vars): Same. Reduce visibility of locals. + (warn_uninitialized_phi): Same. + +2021-08-26 Roger Sayle + + * tree-ssa-ccp.c (get_individual_bits): Helper function to + extract the individual bits from a widest_int constant (mask). + (gray_code_bit_flips): New read-only table for effiently + enumerating permutations/combinations of bits. + (bit_value_binop) [LROTATE_EXPR, RROTATE_EXPR]: Handle rotates + by unknown counts that are guaranteed less than the target + precision and four or fewer unknown bits by enumeration. + [LSHIFT_EXPR, RSHIFT_EXPR]: Likewise, also handle shifts by + enumeration under the same conditions. Handle remaining + shifts as a mask based upon the minimum possible shift value. + +2021-08-26 Roger Sayle + Richard Biener + + * match.pd (shift transformations): Remove a redundant + !POINTER_TYPE_P check. + +2021-08-26 Uroš Bizjak + + PR target/102057 + * config/i386/i386.md (cmove reg-reg move elimination peephole2s): + Set all_regs to true in the call to replace_rtx. + +2021-08-26 Jan Hubicka + + * ipa-modref-tree.c (test_insert_search_collapse): Update test. + * ipa-modref-tree.h (modref_base_node::insert): Be smarter when + hiting --param modref-max-refs limit. + (modref_tree:insert_base): Be smarter when hitting + --param modref-max-bases limit. Add new parameter REF. + (modref_tree:insert): Update. + (modref_tree:merge): Update. + * ipa-modref.c (read_modref_records): Update. + +2021-08-26 Jan Hubicka + + * params.opt: (modref-max-adjustments): Add full stop. + +2021-08-26 Jan Hubicka + + * ipa-modref-tree.h (modref_ref_node::verify): New member + functoin. + (modref_ref_node::insert): Use it. + (modref_ref_node::try_mere_with): Fix off by one error. + +2021-08-26 Martin Liska + Stefan Kneifel + + * cgraph.h (create_version_clone_with_body): Add new parameter. + * cgraphclones.c: Likewise. + * multiple_target.c (create_dispatcher_calls): Do not use + numbered suffixes. + (create_target_clone): Likewise here. + +2021-08-26 Jonathan Yong <10walls@gmail.com> + + * doc/extend.texi: Add note about reserved priorities + to the constructor attribute. + +2021-08-25 Martin Sebor + + * gimple-range-cache.cc (ssa_global_cache::dump): Avoid printing + range table header alone. + * gimple-range.cc (gimple_ranger::export_global_ranges): Same. + +2021-08-25 Jan Hubicka + + * doc/invoke.texi: Document --param modref-max-adjustments. + * ipa-modref-tree.c (test_insert_search_collapse): Update. + (test_merge): Update. + * ipa-modref-tree.h (struct modref_access_node): Add adjustments; + (modref_access_node::operator==): Fix handling of access ranges. + (modref_access_node::contains): Constify parameter; handle also + mismatched parm offsets. + (modref_access_node::update): New function. + (modref_access_node::merge): New function. + (unspecified_modref_access_node): Update constructor. + (modref_ref_node::insert_access): Add record_adjustments parameter; + handle merging. + (modref_ref_node::try_merge_with): New private function. + (modref_tree::insert): New record_adjustments parameter. + (modref_tree::merge): New record_adjustments parameter. + (modref_tree::copy_from): Update. + * ipa-modref.c (dump_access): Dump adjustments field. + (get_access): Update constructor. + (record_access): Update call of insert. + (record_access_lto): Update call of insert. + (merge_call_side_effects): Add record_adjustments parameter. + (get_access_for_fnspec): Update. + (process_fnspec): Update. + (analyze_call): Update. + (analyze_function): Update. + (read_modref_records): Update. + (ipa_merge_modref_summary_after_inlining): Update. + (propagate_unknown_call): Update. + (modref_propagate_in_scc): Update. + * params.opt (param-max-modref-adjustments=): New. + +2021-08-25 Michael Meissner + + * config/rs6000/vsx.md (UNSPEC_XXSPLTIDP): Rename from + UNSPEC_XXSPLTID. + (xxspltiw_v4si): Use vecperm type attribute. + (xxspltiw_v4si_inst): Use vecperm type attribute. + (xxspltiw_v4sf_inst): Likewise. + (xxspltidp_v2df): Use vecperm type attribute. Use + UNSPEC_XXSPLTIDP instead of UNSPEC_XXSPLTID. + (xxspltidp_v2df_inst): Likewise. + (xxsplti32dx_v4si): Use vecperm type attribute. + (xxsplti32dx_v4si_inst): Likewise. + (xxsplti32dx_v4sf_inst): Likewise. + (xxblend_): Likewise. + (xxpermx): Likewise. + (xxpermx_inst): Likewise. + (xxeval): Likewise. + +2021-08-25 Lewis Hyatt + + PR other/93067 + * coretypes.h (typedef diagnostic_input_charset_callback): Declare. + * diagnostic.c (diagnostic_initialize_input_context): New function. + * diagnostic.h (diagnostic_initialize_input_context): Declare. + * input.c (default_charset_callback): New function. + (file_cache::initialize_input_context): New function. + (file_cache_slot::create): Added ability to convert the input + according to the input context. + (file_cache::file_cache): Initialize the new input context. + (class file_cache_slot): Added new m_alloc_offset member. + (file_cache_slot::file_cache_slot): Initialize the new member. + (file_cache_slot::~file_cache_slot): Handle potentially offset buffer. + (file_cache_slot::maybe_grow): Likewise. + (file_cache_slot::needs_read_p): Handle NULL fp, which is now possible. + (file_cache_slot::get_next_line): Likewise. + * input.h (class file_cache): Added input context member. + +2021-08-25 Richard Biener + + PR tree-optimization/102046 + * tree-vect-slp.c (vect_build_slp_tree_2): Conservatively + update ->any_pattern when swapping operands. + +2021-08-25 Hongyu Wang + + PR target/101716 + * config/i386/i386.c (ix86_live_on_entry): Adjust comment. + (ix86_decompose_address): Remove retval check for ASHIFT, + allow non-canonical zero extend if AND mask covers ASHIFT + count. + (ix86_legitimate_address_p): Adjust condition for decompose. + (ix86_rtx_costs): Adjust cost for lea with non-canonical + zero-extend. + Co-Authored by: Uros Bizjak + +2021-08-25 Jiufu Guo + + PR tree-optimization/101145 + * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): + New function. + (number_of_iterations_lt): Invoke above function. + (adjust_cond_for_loop_until_wrap): + Merge to number_of_iterations_until_wrap. + (number_of_iterations_cond): Update invokes for + adjust_cond_for_loop_until_wrap and number_of_iterations_lt. + +2021-08-25 konglin1 + + PR target/101471 + * config/i386/avx512dqintrin.h (_mm512_fpclass_ps_mask): Fix + macro define in O0. + (_mm512_mask_fpclass_ps_mask): Ditto. + +2021-08-25 Kewen Lin + + * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Remove. + (vec_unpacku_hi_v8hi): Likewise. + (vec_unpacku_lo_v16qi): Likewise. + (vec_unpacku_lo_v8hi): Likewise. + (vec_unpacku_hi_): New define_expand. + (vec_unpacku_lo_): Likewise. + +2021-08-24 David Edelsohn + + * config/rs6000/aix.h (SYSTEM_IMPLICIT_EXTERN_C): Delete. + * config/rs6000/aix71.h (SYSTEM_IMPLICIT_EXTERN_C): Define. + * config/rs6000/aix72.h (SYSTEM_IMPLICIT_EXTERN_C): Define. + * config/rs6000/aix73.h (TARGET_AIX_VERSION): Increase to 73. + +2021-08-24 Roger Sayle + + PR middle-end/102031 + * simplify-rtx.c (simplify_truncation): When comparing precisions + use "subreg_prec" variable, not "subreg_mode". + +2021-08-24 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: Add power10 and power10-64 + stanzas. + +2021-08-24 Bill Schmidt + + * config/rs6000/rs6000-call.c (rs6000_init_builtins): Initialize + various pointer type nodes. + * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add enum + values for various pointer types. + (ptr_V16QI_type_node): New macro. + (ptr_V1TI_type_node): New macro. + (ptr_V2DI_type_node): New macro. + (ptr_V2DF_type_node): New macro. + (ptr_V4SI_type_node): New macro. + (ptr_V4SF_type_node): New macro. + (ptr_V8HI_type_node): New macro. + (ptr_unsigned_V16QI_type_node): New macro. + (ptr_unsigned_V1TI_type_node): New macro. + (ptr_unsigned_V8HI_type_node): New macro. + (ptr_unsigned_V4SI_type_node): New macro. + (ptr_unsigned_V2DI_type_node): New macro. + (ptr_bool_V16QI_type_node): New macro. + (ptr_bool_V8HI_type_node): New macro. + (ptr_bool_V4SI_type_node): New macro. + (ptr_bool_V2DI_type_node): New macro. + (ptr_bool_V1TI_type_node): New macro. + (ptr_pixel_type_node): New macro. + (ptr_intQI_type_node): New macro. + (ptr_uintQI_type_node): New macro. + (ptr_intHI_type_node): New macro. + (ptr_uintHI_type_node): New macro. + (ptr_intSI_type_node): New macro. + (ptr_uintSI_type_node): New macro. + (ptr_intDI_type_node): New macro. + (ptr_uintDI_type_node): New macro. + (ptr_intTI_type_node): New macro. + (ptr_uintTI_type_node): New macro. + (ptr_long_integer_type_node): New macro. + (ptr_long_unsigned_type_node): New macro. + (ptr_float_type_node): New macro. + (ptr_double_type_node): New macro. + (ptr_long_double_type_node): New macro. + (ptr_dfloat64_type_node): New macro. + (ptr_dfloat128_type_node): New macro. + (ptr_ieee128_type_node): New macro. + (ptr_ibm128_type_node): New macro. + (ptr_vector_pair_type_node): New macro. + (ptr_vector_quad_type_node): New macro. + (ptr_long_long_integer_type_node): New macro. + (ptr_long_long_unsigned_type_node): New macro. + +2021-08-24 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: Add power9-vector, power9, + and power9-64 stanzas. + +2021-08-24 Roger Sayle + Tom de Vries + + * config.gcc (nvptx-*-*): Define {c,c++}_target_objs. + * config/nvptx/nvptx-protos.h (nvptx_cpu_cpp_builtins): Prototype. + * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Implement with + a call to the new nvptx_cpu_cpp_builtins function in nvptx-c.c. + * config/nvptx/t-nvptx (nvptx-c.o): New rule. + * config/nvptx/nvptx-c.c: New source file. + (nvptx_cpu_cpp_builtins): Move implementation here. + +2021-08-24 Martin Sebor + + PR middle-end/101600 + PR middle-end/101977 + * gimple-ssa-warn-access.cc (maybe_warn_for_bound): Tighten up + the phrasing of a warning. + (check_access): Use the remaining size after subtracting any offset + rather than the whole object size. + * pointer-query.cc (access_ref::get_ref): Clear BASE0 flag if it's + clear for any nonnull PHI argument. + (compute_objsize): Clear argument. + +2021-08-24 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: Add power8-vector stanza. + +2021-08-24 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: Add power7 and power7-64 + stanzas. + +2021-08-24 Andrew MacLeod + + * value-relation.cc (rr_transitive_table): New. + (relation_transitive): New. + (value_relation::swap): Remove. + (value_relation::apply_transitive): New. + (relation_oracle::relation_oracle): Allocate a new tmp bitmap. + (relation_oracle::register_relation): Call register_transitives. + (relation_oracle::register_transitives): New. + * value-relation.h (relation_oracle): Add new temporary bitmap and + methods. + +2021-08-24 H.J. Lu + + PR target/102021 + * config/i386/i386-expand.c (ix86_expand_vector_move): Broadcast + from integer to a pseudo vector register. + +2021-08-24 Richard Biener + + PR tree-optimization/100089 + * tree-vectorizer.h (vect_slp_bb): Rename to ... + (vect_slp_if_converted_bb): ... this and get the original + loop as new argument. + * tree-vectorizer.c (try_vectorize_loop_1): Revert previous fix, + pass original loop to vect_slp_if_converted_bb. + * tree-vect-slp.c (vect_bb_vectorization_profitable_p): + If orig_loop was passed scan the not vectorized stmts + for COND_EXPRs and force not profitable if found. + (vect_slp_region): Pass down all SLP instances to costing + if orig_loop was specified. + (vect_slp_bbs): Pass through orig_loop. + (vect_slp_bb): Rename to ... + (vect_slp_if_converted_bb): ... this and get the original + loop as new argument. + (vect_slp_function): Adjust. + +2021-08-24 Richard Earnshaw + + PR target/102035 + * config/arm/arm.md (attribute arch): Add fix_vlldm. + (arch_enabled): Use it. + * config/arm/vfp.md (lazy_store_multiple_insn): Add alternative to + use when erratum mitigation is needed. + +2021-08-24 Richard Earnshaw + + PR target/102035 + * config/arm/arm.opt (mfix-cmse-cve-2021-35465): New option. + * doc/invoke.texi (Arm Options): Document it. + * config/arm/arm-cpus.in (quirk_vlldm): New feature bit. + (ALL_QUIRKS): Add quirk_vlldm. + (cortex-m33): Add quirk_vlldm. + (cortex-m35p, cortex-m55): Likewise. + * config/arm/arm.c (arm_option_override): Enable fix_vlldm if + targetting an affected CPU and not explicitly controlled on + the command line. + +2021-08-24 Richard Earnshaw + + * config/arm/vfp.md (lazy_store_multiple_insn): Rewrite as valid RTL. + (lazy_load_multiple_insn): Likewise. + +2021-08-24 liuhongt + + PR target/101989 + * config/i386/sse.md (_vternlog): + Enable avx512 embedded broadcast. + (*_vternlog_all): Ditto. + (_vternlog_mask): Ditto. + +2021-08-24 liuhongt + + PR target/101989 + * config/i386/i386.c (ix86_rtx_costs): Define cost for + UNSPEC_VTERNLOG. + * config/i386/i386.h (STRIP_UNARY): New macro. + * config/i386/predicates.md (reg_or_notreg_operand): New + predicate. + * config/i386/sse.md (*_vternlog_all): New define_insn. + (*_vternlog_1): New pre_reload + define_insn_and_split. + (*_vternlog_2): Ditto. + (*_vternlog_3): Ditto. + (any_logic1,any_logic2): New code iterator. + (logic_op): New code attribute. + (ternlogsuffix): Extend to VNxDF and VNxSF. + +2021-08-24 Richard Biener + + * doc/invoke.texi (vect-inner-loop-cost-factor): Adjust. + * params.opt (--param vect-inner-loop-cost-factor): Adjust + maximum value. + * tree-vect-loop.c (vect_analyze_loop_form): Initialize + inner_loop_cost_factor to the minimum of the estimated number + of iterations of the inner loop and vect-inner-loop-cost-factor. + +2021-08-24 Roger Sayle + Richard Biener + + * config/i386/i386-features.c (compute_convert_gain): Provide + more accurate values for CONST_INT, when optimizing for size. + * config/i386/i386.c (COSTS_N_BYTES): Move definition from here... + * config/i386/i386.h (COSTS_N_BYTES): to here. + +2021-08-24 Roger Sayle + Jakub Jelinek + + PR middle-end/102029 + * match.pd (shift transformations): Add an additional check for + !POINTER_TYPE_P in the recently added left shift transformation. + +2021-08-24 liuhongt + + PR tree-optimization/100089 + * tree-vectorizer.c (try_vectorize_loop_1): Disable slp in + loop vectorizer when cost model is very-cheap. + +2021-08-23 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (parse_bif_entry): Don't call + asprintf, which is not available on AIX. + +2021-08-23 Bill Schmidt + + * config.gcc (target_gtfiles): Add ./rs6000-builtins.h. + * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Set. + +2021-08-23 Bill Schmidt + + * config.gcc (powerpc*-*-*): Add rs6000-builtins.o to extra_objs. + * config/rs6000/rs6000-gen-builtins.c (main): Close init_file + last. + * config/rs6000/t-rs6000 (rs6000-gen-builtins.o): New target. + (rbtree.o): Likewise. + (rs6000-gen-builtins): Likewise. + (rs6000-builtins.c): Likewise. + (rs6000-builtins.h): Likewise. + (rs6000.o): Add dependency. + (EXTRA_HEADERS): Add rs6000-vecdefines.h. + (rs6000-vecdefines.h): New target. + (rs6000-builtins.o): Likewise. + (rs6000-call.o): Add rs6000-builtins.h as a dependency. + (rs6000-c.o): Likewise. + +2021-08-23 Bill Schmidt + + PR target/101830 + * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): + Diagnose buffer overrun. + (safe_inc_pos): Fix overrun detection. + (match_identifier): Diagnose buffer overrun. + (match_integer): Likewise. + (match_to_right_bracket): Likewise. + +2021-08-23 Jan Hubicka + + * ipa-modref-tree.h (modref_access_node::range_info_useful_p): + Improve range compare. + (modref_access_node::contains): New member function. + (modref_access_node::search): Remove. + (modref_access_node::insert): Be smarter about subaccesses. + +2021-08-23 Thomas Schwinge + + * config/i386/i386-options.c (ix86_omp_device_kind_arch_isa) + [ACCEL_COMPILER]: Match "intel_mic". + * config/i386/t-omp-device (omp-device-properties-i386) : + Add "intel_mic". + +2021-08-23 Jeff Law + + * config/h8300/h8300-protos.h (h8300_expand_epilogue): Add new + argument. + * config/h8300/jumpcall.md (call, call_value): Restrict to + !SIBLING_CALL_P cases. + (subcall, sibcall_value): New patterns & expanders. + * config/h8300/proepi.md (epilogue): Pass new argument to + h8300_expand_epilogue. + (sibcall_epilogue): New expander. + * config/h8300/h8300.c (h8300_expand_epilogue): Handle sibcall + epilogues too. + (h8300_ok_for_sibcall_p): New function. + (TARGET_FUNCTION_OK_FOR_SIBCALL): define. + +2021-08-23 Roger Sayle + + * simplify-rtx.c (simplify_unary_operation_1): [TRUNCATE]: + Handle case where the operand is already the desired mode. + +2021-08-23 Richard Biener + + PR ipa/97565 + * tree-ssa-structalias.c (ipa_pta_execute): Check in_other_partition + in addition to has_gimple_body. + +2021-08-23 Jan Hubicka + + PR middle-end/101949 + * ipa-modref.c (analyze_ssa_name_flags): Fix merging of + EAF_NOCLOBBER + +2021-08-23 Martin Liska + + * doc/invoke.texi: Put the option out of -mxl-mode-app-model + table. + +2021-08-23 Richard Biener + + * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): + Properly scale the inner loop cost only once. + +2021-08-23 Roger Sayle + + * tree-ssa-ccp.c (bit_value_binop) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: + Provide bounds for unsigned (and signed with non-negative operands) + division and modulus. + +2021-08-23 Roger Sayle + + * simplify-rtx.c (simplify_truncation): Generalize simplification + of (truncate:A (subreg:B X)). + (simplify_unary_operation_1) [FLOAT_TRUNCATE, FLOAT_EXTEND, + SIGN_EXTEND, ZERO_EXTEND]: Handle cases where the operand + already has the desired machine mode. + (test_scalar_int_ops): Add tests that useless extensions and + truncations are optimized away. + (test_scalar_int_ext_ops): New self-test function to confirm + that truncations of extensions are correctly simplified. + (test_scalar_int_ext_ops2): New self-test function to check + truncations of truncations, extensions of extensions, and + truncations of extensions. + (test_scalar_ops): Call the above two functions with a + representative sampling of integer machine modes. + +2021-08-23 Roger Sayle + + * match.pd (shift transformations): Change the sign of an + LSHIFT_EXPR if it reduces the number of explicit conversions. + +2021-08-23 Jakub Jelinek + + PR tree-optimization/86723 + * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Add + cast64_to_32 argument, set *cast64_to_32 to false, unless n is + non-memory permutation of 64-bit src which only has bytes of + 0 or [5..8] and n->range is 4. + (find_bswap_or_nop): Add cast64_to_32 and mask arguments, adjust + find_bswap_or_nop_finalize caller, support bswap with some bytes + zeroed, as long as at least two bytes are not zeroed. + (bswap_replace): Add mask argument and handle masking of bswap + result. + (maybe_optimize_vector_constructor): Adjust find_bswap_or_nop + caller, punt if cast64_to_32 or mask is not all ones. + (pass_optimize_bswap::execute): Adjust find_bswap_or_nop_finalize + caller, for now punt if cast64_to_32. + +2021-08-23 Richard Biener + + PR tree-optimization/79334 + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record + a type also for COMPONENT_REFs. + (vn_reference_may_trap): Check ARRAY_REF with constant index + against the array domain. + +2021-08-23 liuhongt + + PR target/102016 + * config/i386/sse.md (*avx512f_pshufb_truncv8hiv8qi_1): Add + TARGET_AVX512BW to condition. + +2021-08-23 Jakub Jelinek + + PR debug/101905 + * dwarf2out.c (gen_variable_die): Add DW_AT_location for global + register variables already during early_dwarf if possible. + +2021-08-23 Christophe Lyon + + * config/arm/arm_mve.h: Fix __arm_vctp16q return type. + +2021-08-23 Christophe Lyon + + PR target/100856 + * config/arm/arm.opt: Fix typo. + * config/arm/t-rmprofile: Fix typo. + +2021-08-23 Jakub Jelinek + + * tree.h (OMP_CLAUSE_GRAINSIZE_STRICT): Define. + (OMP_CLAUSE_NUM_TASKS_STRICT): Define. + * tree-pretty-print.c (dump_omp_clause) : Print strict: modifier. + * omp-expand.c (expand_task_call): Use GOMP_TASK_FLAG_STRICT in iflags + if either grainsize or num_tasks clause has the strict modifier. + +2021-08-23 Martin Liska + + * dbgcnt.def (DEBUG_COUNTER): New counter. + * gimple.c (gimple_call_arg_flags): Use it in IPA PTA. + +2021-08-23 Jan Hubicka + + * ipa-modref.c (analyze_ssa_name_flags): Improve handling of return slot. + +2021-08-23 Xi Ruoyao + + PR target/101922 + * config/mips/mips-protos.h (mips_msa_output_shift_immediate): + Declare. + * config/mips/mips.c (mips_msa_output_shift_immediate): New + function. + * config/mips/mips-msa.md (vashl3, vashr3, + vlshr3): Call it. + +2021-08-22 Jan Hubicka + Martin Liska + + PR middle-end/101949 + * ipa-modref.c (analyze_ssa_name_flags): Indirect call implies + ~EAF_NOCLOBBER. + +2021-08-21 Dragan Mladjenovic + + * config/mips/mips.c (mips_function_rodata_section, + TARGET_ASM_FUNCTION_RODATA_SECTION): Removed. + +2021-08-21 John David Anglin + + * config/pa/pa.c (pa_asm_output_aligned_common): Remove warning. + +2021-08-20 Serge Belyshev + + * configure.ac (thread-local storage support): Remove tls_first_major + and tls_first_minor. Use "$conftest_s" to check support. + * configure: Regenerate. + +2021-08-20 Serge Belyshev + + * configure.ac: Fixup formatting. + +2021-08-20 Serge Belyshev + + * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Remove third argument and ... + * configure.ac: ... update all callers. + +2021-08-20 Serge Belyshev + + PR target/91602 + * acinclude.m4 (_gcc_COMPUTE_GAS_VERSION, _gcc_GAS_VERSION_GTE_IFELSE) + (gcc_GAS_VERSION_GTE_IFELSE): Remove. + (gcc_GAS_CHECK_FEATURE): Do not handle in-tree case specially. + * configure.ac: Remove gcc_cv_gas_major_version, gcc_cv_gas_minor_version. + Remove remaining checks for in-tree assembler. + * configure: Regenerate. + +2021-08-20 Jeff Law + + * config/h8300/h8300.c (shift_alg_hi): Improve arithmetic shift right + by 15 bits for H8/300H and H8/S. Improve logical shifts by 12 + bits for H8/S. + (shift_alg_si): Improve arithmetic right shift by 28-30 bits for + H8/300H. Improve arithmetic shift right by 15 bits for H8/S. + Improve logical shifts by 27 bits for H8/S. + (get_shift_alg): Corresponding changes. + (h8300_option_override): Revert to loops for -Os when profitable. + +2021-08-20 Richard Biener + + * tree-vect-data-refs.c (dr_group_sort_cmp): Do not compare + BBs. + (vect_analyze_data_ref_accesses): Likewise. Assign the BB + index as group_id when dataref_groups were not computed. + * tree-vect-slp.c (vect_slp_bbs): Bump current_group when + we advace to the next BB. + +2021-08-20 Jakub Jelinek + + * omp-builtins.def (BUILT_IN_GOMP_WARNING, BUILT_IN_GOMP_ERROR): New + builtins. + +2021-08-20 Martin Liska + + PR gcov-profile/89961 + * gcov.c (make_gcov_file_name): Rewrite using std::string. + (mangle_name): Simplify, do not used the second argument. + (strip_extention): New function. + (get_md5sum): Likewise. + (get_gcov_intermediate_filename): Handle properly -p and -x + options. + (output_gcov_file): Use string type. + (generate_results): Likewise. + (md5sum_to_hex): Remove. + +2021-08-20 Michael Meissner + + * config/rs6000/altivec.md (UNSPEC_XXEVAL): Move to vsx.md. + (UNSPEC_XXSPLTIW): Move to vsx.md. + (UNSPEC_XXSPLTID): Move to vsx.md. + (UNSPEC_XXSPLTI32DX): Move to vsx.md. + (UNSPEC_XXBLEND): Move to vsx.md. + (UNSPEC_XXPERMX): Move to vsx.md. + (VM3): Move to vsx.md. + (VM3_char): Move to vsx.md. + (xxspltiw_v4si): Move to vsx.md. + (xxspltiw_v4sf): Move to vsx.md. + (xxspltiw_v4sf_inst): Move to vsx.md. + (xxspltidp_v2df): Move to vsx.md. + (xxspltidp_v2df_inst): Move to vsx.md. + (xxsplti32dx_v4si_inst): Move to vsx.md. + (xxsplti32dx_v4sf): Move to vsx.md. + (xxsplti32dx_v4sf_inst): Move to vsx.md. + (xxblend_): Move to vsx.md. + (xxpermx): Move to vsx.md. + (xxpermx_inst): Move to vsx.md. + * config/rs6000/vsx.md (UNSPEC_XXEVAL): Move from altivec.md. + (UNSPEC_XXSPLTIW): Move from altivec.md. + (UNSPEC_XXSPLTID): Move from altivec.md. + (UNSPEC_XXSPLTI32DX): Move from altivec.md. + (UNSPEC_XXBLEND): Move from altivec.md. + (UNSPEC_XXPERMX): Move from altivec.md. + (VM3): Move from altivec.md. + (VM3_char): Move from altivec.md. + (xxspltiw_v4si): Move from altivec.md. + (xxspltiw_v4sf): Move from altivec.md. + (xxspltiw_v4sf_inst): Move from altivec.md. + (xxspltidp_v2df): Move from altivec.md. + (xxspltidp_v2df_inst): Move from altivec.md. + (xxsplti32dx_v4si_inst): Move from altivec.md. + (xxsplti32dx_v4sf): Move from altivec.md. + (xxsplti32dx_v4sf_inst): Move from altivec.md. + (xxblend_): Move from altivec.md. + (xxpermx): Move from altivec.md. + (xxpermx_inst): Move from altivec.md. + +2021-08-19 Roger Sayle + + * tree-vect-generic.c (expand_vector_operations_1): Use either + gimplify_build1 or gimplify_build2 instead of gimple_build_assign + when constructing scalar splat expressions. + +2021-08-19 Peter Bergner + + PR target/101849 + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Cast + pointer to __vector_pair *. + +2021-08-19 Martin Sebor + + * gimple-range.cc: Add comments. + * gimple-range.h: Same. + +2021-08-19 Martin Sebor + + PR middle-end/101984 + * gimple-ssa-warn-access.cc (pass_waccess::execute): Also call + disable_ranger. + +2021-08-19 Jeff Law + + * config.gcc (h8300-*-elf*): Do not include dbxelf.h. + (h8300-*-linux*, v850-*-rtems*, v850*-elf*): Likewise. + * config/v850/v850.h (DEFAULT_GDB_EXTENSIONS): Remove. + +2021-08-19 Jakub Jelinek + + PR middle-end/101950 + * optabs.c (expand_clrsb_using_clz): New function. + (expand_unop): Use it as another clrsb expansion fallback. + +2021-08-19 liuhongt + + Revert: + 2021-07-28 liuhongt + + PR target/99881 + * config/i386/i386.h (processor_costs): Add new member + integer_to_sse. + * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost, + i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost, + geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost, + bdver_cost, znver1_cost, znver2_cost, znver3_cost, + btver1_cost, btver2_cost, btver3_cost, pentium4_cost, + nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost, + generic_cost, core_cost): Initialize integer_to_sse same value + as sse_op. + (skylake_cost): Initialize integer_to_sse twice as much as sse_op. + * config/i386/i386.c (ix86_builtin_vectorization_cost): + Use integer_to_sse instead of sse_op to calculate the cost of + vec_construct. + +2021-08-18 Iain Sandoe + + * config.gcc: Include rpath.opt for Darwin. + * config/darwin.h (DRIVER_SELF_SPECS): Handle -rpath. + +2021-08-18 Thomas Schwinge + + PR bootstrap/101959 + * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor_expand): + Use an 'int_hash'. + +2021-08-18 Jonathan Wright + + * config/aarch64/arm_neon.h (vld3_lane_f64): Use float RTL + pattern and type cast. + (vld4_lane_f32): Use float RTL pattern. + (vld4q_lane_f64): Use float type cast. + +2021-08-18 Jan Hubicka + + * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Check also + EAF_NOREAD. + +2021-08-18 Thomas Schwinge + + * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): Extend. + (test_map_of_type_with_ctor_and_dtor_expand): Add function. + (hash_map_tests_c_tests): Call it. + +2021-08-18 Thomas Schwinge + + * ggc.h (enum ggc_collect): New. + (ggc_collect): Use it. + * ggc-page.c: Adjust. + * ggc-common.c: Likewise. + * ggc-tests.c: Likewise. + * read-rtl-function.c: Likewise. + * selftest-run-tests.c: Likewise. + * doc/gty.texi (Invoking the garbage collector): Likewise. + +2021-08-18 liuhongt + + PR target/97147 + * config/i386/i386.h (TARGET_V2DF_REDUCTION_PREFER_HADDPD): + New macro. + * config/i386/sse.md (*sse3_haddv2df3_low): Add + TARGET_V2DF_REDUCTION_PREFER_HADDPD. + (*sse3_hsubv2df3_low): Ditto. + * config/i386/x86-tune.def + (X86_TUNE_V2DF_REDUCTION_PREFER_HADDPD): New tune. + +2021-08-17 Andrew MacLeod + + * gimple-range-gori.cc (gori_compute::gori_compute): Enable tracing. + (gori_compute::compute_operand_range): Add tracing. + (gori_compute::logical_combine): Ditto. + (gori_compute::compute_logical_operands): Ditto. + (gori_compute::compute_operand1_range): Ditto. + (gori_compute::compute_operand2_range): Ditto. + (gori_compute::outgoing_edge_range_p): Ditto. + * gimple-range-gori.h (class gori_compute): Add range_tracer. + +2021-08-17 Andrew MacLeod + + * flag-types.h (enum evrp_mode): Adjust evrp-mode values. + * gimple-range-cache.cc (DEBUG_RANGE_CACHE): Relocate from. + * gimple-range-trace.h (DEBUG_RANGE_CACHE): Here. + * params.opt (--param=evrp-mode): Adjust options. + +2021-08-17 Andrew MacLeod + + * Makefile.in (OBJS): Add gimple-range-trace.o. + * gimple-range-cache.h (enable_new_values): Remove unused prototype. + * gimple-range-fold.cc: Adjust headers. + * gimple-range-trace.cc: New. + * gimple-range-trace.h: New. + * gimple-range.cc (gimple_ranger::gimple_ranger): Enable tracer. + (gimple_ranger::range_of_expr): Add tracing. + (gimple_ranger::range_on_entry): Ditto. + (gimple_ranger::range_on_exit): Ditto. + (gimple_ranger::range_on_edge): Ditto. + (gimple_ranger::fold_range_internal): Ditto. + (gimple_ranger::dump_bb): Do not calculate edge range twice. + (trace_ranger::*): Remove. + (enable_ranger): Never create a trace_ranger. + (debug_seed_ranger): Move to gimple-range-trace.cc. + (dump_ranger): Ditto. + (debug_ranger): Ditto. + * gimple-range.h: Include gimple-range-trace.h. + (range_on_entry, range_on_exit): No longer virtual. + (class trace_ranger): Remove. + (DEBUG_RANGE_CACHE): Move to gimple-range-trace.h. + +2021-08-17 Martin Sebor + + PR middle-end/101854 + * builtins.c (expand_builtin_alloca): Move warning code to check_alloca + in gimple-ssa-warn-access.cc. + * calls.c (alloc_max_size): Move code to check_alloca. + (get_size_range): Move to pointer-query.cc. + (maybe_warn_alloc_args_overflow): Move to gimple-ssa-warn-access.cc. + (get_attr_nonstring_decl): Move to tree.c. + (fntype_argno_type): Move to gimple-ssa-warn-access.cc. + (append_attrname): Same. + (maybe_warn_rdwr_sizes): Same. + (initialize_argument_information): Move code to + gimple-ssa-warn-access.cc. + * calls.h (maybe_warn_alloc_args_overflow): Move to + gimple-ssa-warn-access.h. + (get_attr_nonstring_decl): Move to tree.h. + (maybe_warn_nonstring_arg): Move to gimple-ssa-warn-access.h. + (enum size_range_flags): Move to pointer-query.h. + (get_size_range): Same. + * gimple-ssa-warn-access.cc (has_location): Remove unused overload + to avoid Clang -Wunused-function. + (get_size_range): Declare static. + (maybe_emit_free_warning): Rename... + (maybe_check_dealloc_call): ...to this for consistency. + (class pass_waccess): Add members. + (pass_waccess::~pass_waccess): Defined. + (alloc_max_size): Move here from calls.c. + (maybe_warn_alloc_args_overflow): Same. + (check_alloca): New function. + (check_alloc_size_call): New function. + (check_strncat): Handle another warning flag. + (pass_waccess::check_builtin): Handle alloca. + (fntype_argno_type): Move here from calls.c. + (append_attrname): Same. + (maybe_warn_rdwr_sizes): Same. + (pass_waccess::check_call): Define. + (check_nonstring_args): New function. + (pass_waccess::check): Call new member functions. + (pass_waccess::execute): Enable ranger. + * gimple-ssa-warn-access.h (get_size_range): Move here from calls.h. + (maybe_warn_nonstring_arg): Same. + * gimple-ssa-warn-restrict.c: Remove #include. + * pointer-query.cc (get_size_range): Move here from calls.c. + * pointer-query.h (enum size_range_flags): Same. + (get_size_range): Same. + * tree.c (get_attr_nonstring_decl): Move here from calls.c. + * tree.h (get_attr_nonstring_decl): Move here from calls.h. + +2021-08-17 Thomas Schwinge + + * ggc.h (ggc_collect): Add 'force_collect' parameter. + * ggc-page.c (ggc_collect): Use that one instead of global + 'ggc_force_collect'. Adjust all users. + * doc/gty.texi (Invoking the garbage collector): Update. + * ggc-internal.h (ggc_force_collect): Remove. + * ggc-common.c (ggc_force_collect): Likewise. + * selftest.h (forcibly_ggc_collect): Remove. + * ggc-tests.c (selftest::forcibly_ggc_collect): Likewise. + * read-rtl-function.c (test_loading_labels): Adjust. + * selftest-run-tests.c (run_tests): Likewise. + +2021-08-17 Iain Sandoe + + * config/darwin.c (darwin_file_end): Reset and reclaim the + section names table at the end of compile. + +2021-08-17 Iain Sandoe + + PR target/100340 + * config.in: Regenerate. + * config/i386/darwin.h (EXTRA_ASM_OPTS): New + (ASM_SPEC): Pass options to disable branch shortening where + needed. + * configure: Regenerate. + * configure.ac: Detect versions of 'as' that support the + optimisation which has the bug. + +2021-08-17 Richard Biener + + * optabs-query.c (supports_vec_gather_load_p): Also check + for masked optabs. + (supports_vec_scatter_store_p): Likewise. + * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Fall + back to masked variants if non-masked are not supported. + * tree-vect-patterns.c (vect_recog_gather_scatter_pattern): + When we need to use masked gather/scatter but do not have + a mask set up a constant true one. + * tree-vect-stmts.c (vect_check_scalar_mask): Also allow + non-SSA_NAME masks. + +2021-08-17 Roger Sayle + + * tree-ssa-ccp.c (bit_value_binop) [MINUS_EXPR]: Use same + algorithm as PLUS_EXPR to improve subtraction bit bounds. + [POINTER_DIFF_EXPR]: Treat as synonymous with MINUS_EXPR. + +2021-08-17 Roger Sayle + + * tree-ssa-ccp.c (bit_value_mult_const): New helper function to + calculate the mask-value pair result of a multiplication by an + unsigned constant. + (bit_value_binop) [MULT_EXPR]: Call it from here for + multiplications by (sparse) non-negative constants. + +2021-08-17 Christophe Lyon + + PR target/100896 + * config.gcc (gcc_cv_initfini_array): Leave undefined for + uclinuxfdpiceabi targets. + +2021-08-17 Alexandre Oliva + + * tree-inline.c (maybe_move_debug_stmts_to_successors): Don't + reverse debug stmts. + +2021-08-17 Alexandre Oliva + + * tree-cfg.c (dump_function_to_file): Use fun, not cfun. + +2021-08-17 Jonathan Wright + + * config/aarch64/arm_neon.h (__LD4_LANE_FUNC): Delete. + (__LD4Q_LANE_FUNC): Likewise. + (vld4_lane_u8): Define without macro. + (vld4_lane_u16): Likewise. + (vld4_lane_u32): Likewise. + (vld4_lane_u64): Likewise. + (vld4_lane_s8): Likewise. + (vld4_lane_s16): Likewise. + (vld4_lane_s32): Likewise. + (vld4_lane_s64): Likewise. + (vld4_lane_f16): Likewise. + (vld4_lane_f32): Likewise. + (vld4_lane_f64): Likewise. + (vld4_lane_p8): Likewise. + (vld4_lane_p16): Likewise. + (vld4_lane_p64): Likewise. + (vld4q_lane_u8): Likewise. + (vld4q_lane_u16): Likewise. + (vld4q_lane_u32): Likewise. + (vld4q_lane_u64): Likewise. + (vld4q_lane_s8): Likewise. + (vld4q_lane_s16): Likewise. + (vld4q_lane_s32): Likewise. + (vld4q_lane_s64): Likewise. + (vld4q_lane_f16): Likewise. + (vld4q_lane_f32): Likewise. + (vld4q_lane_f64): Likewise. + (vld4q_lane_p8): Likewise. + (vld4q_lane_p16): Likewise. + (vld4q_lane_p64): Likewise. + (vld4_lane_bf16): Likewise. + (vld4q_lane_bf16): Likewise. + +2021-08-17 Jonathan Wright + + * config/aarch64/arm_neon.h (__LD3_LANE_FUNC): Delete. + (__LD3Q_LANE_FUNC): Delete. + (vld3_lane_u8): Define without macro. + (vld3_lane_u16): Likewise. + (vld3_lane_u32): Likewise. + (vld3_lane_u64): Likewise. + (vld3_lane_s8): Likewise. + (vld3_lane_s16): Likewise. + (vld3_lane_s32): Likewise. + (vld3_lane_s64): Likewise. + (vld3_lane_f16): Likewise. + (vld3_lane_f32): Likewise. + (vld3_lane_f64): Likewise. + (vld3_lane_p8): Likewise. + (vld3_lane_p16): Likewise. + (vld3_lane_p64): Likewise. + (vld3q_lane_u8): Likewise. + (vld3q_lane_u16): Likewise. + (vld3q_lane_u32): Likewise. + (vld3q_lane_u64): Likewise. + (vld3q_lane_s8): Likewise. + (vld3q_lane_s16): Likewise. + (vld3q_lane_s32): Likewise. + (vld3q_lane_s64): Likewise. + (vld3q_lane_f16): Likewise. + (vld3q_lane_f32): Likewise. + (vld3q_lane_f64): Likewise. + (vld3q_lane_p8): Likewise. + (vld3q_lane_p16): Likewise. + (vld3q_lane_p64): Likewise. + (vld3_lane_bf16): Likewise. + (vld3q_lane_bf16): Likewise. + +2021-08-17 Jonathan Wright + + * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Delete. + (__LD2Q_LANE_FUNC): Likewise. + (vld2_lane_u8): Define without macro. + (vld2_lane_u16): Likewise. + (vld2_lane_u32): Likewise. + (vld2_lane_u64): Likewise. + (vld2_lane_s8): Likewise. + (vld2_lane_s16): Likewise. + (vld2_lane_s32): Likewise. + (vld2_lane_s64): Likewise. + (vld2_lane_f16): Likewise. + (vld2_lane_f32): Likewise. + (vld2_lane_f64): Likewise. + (vld2_lane_p8): Likewise. + (vld2_lane_p16): Likewise. + (vld2_lane_p64): Likewise. + (vld2q_lane_u8): Likewise. + (vld2q_lane_u16): Likewise. + (vld2q_lane_u32): Likewise. + (vld2q_lane_u64): Likewise. + (vld2q_lane_s8): Likewise. + (vld2q_lane_s16): Likewise. + (vld2q_lane_s32): Likewise. + (vld2q_lane_s64): Likewise. + (vld2q_lane_f16): Likewise. + (vld2q_lane_f32): Likewise. + (vld2q_lane_f64): Likewise. + (vld2q_lane_p8): Likewise. + (vld2q_lane_p16): Likewise. + (vld2q_lane_p64): Likewise. + (vld2_lane_bf16): Likewise. + (vld2q_lane_bf16): Likewise. + +2021-08-17 Maxim Kuvyrkov + + * haifa-sched.c (advance_one_cycle): Output more context-synchronization + lines for diff. + +2021-08-17 Maxim Kuvyrkov + + * haifa-sched.c (enum rfs_decision, rfs_str): Add RFS_AUTOPREF. + (rank_for_schedule): Use it. + +2021-08-17 Maxim Kuvyrkov + + PR rtl-optimization/91598 + * haifa-sched.c (autopref_rank_for_schedule): Prioritize "irrelevant" + insns after memory reads and before memory writes. + +2021-08-17 Alistair_Lee + + * rtl.h (CONST_VECTOR_P): New macro. + * config/aarch64/aarch64.c (aarch64_get_sve_pred_bits): Use RTL + code testing macros. + (aarch64_ptrue_all_mode): Likewise. + (aarch64_expand_mov_immediate): Likewise. + (aarch64_const_vec_all_in_range_p): Likewise. + (aarch64_rtx_costs): Likewise. + (aarch64_legitimate_constant_p): Likewise. + (aarch64_simd_valid_immediate): Likewise. + (aarch64_simd_make_constant): Likewise. + (aarch64_convert_mult_to_shift): Likewise. + (aarch64_expand_sve_vec_perm): Likewise. + (aarch64_vec_fpconst_pow_of_2): Likewise. + +2021-08-17 Andrew MacLeod + + PR tree-optimization/101938 + * range-op.cc (operator_abs::op1_range): Special case + -TYPE_MIN_VALUE for flag_wrapv. + +2021-08-17 Kewen Lin + + * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Add the cost for + value extraction. + +2021-08-17 Jakub Jelinek + + * tree.def (OMP_SCOPE): New tree code. + * tree.h (OMP_SCOPE_BODY, OMP_SCOPE_CLAUSES): Define. + * tree-nested.c (convert_nonlocal_reference_stmt, + convert_local_reference_stmt, convert_gimple_call): Handle + GIMPLE_OMP_SCOPE. + * tree-pretty-print.c (dump_generic_node): Handle OMP_SCOPE. + * gimple.def (GIMPLE_OMP_SCOPE): New gimple code. + * gimple.c (gimple_build_omp_scope): New function. + (gimple_copy): Handle GIMPLE_OMP_SCOPE. + * gimple.h (gimple_build_omp_scope): Declare. + (gimple_has_substatements): Handle GIMPLE_OMP_SCOPE. + (gimple_omp_scope_clauses, gimple_omp_scope_clauses_ptr, + gimple_omp_scope_set_clauses): New inline functions. + (CASE_GIMPLE_OMP): Add GIMPLE_OMP_SCOPE. + * gimple-pretty-print.c (dump_gimple_omp_scope): New function. + (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCOPE. + * gimple-walk.c (walk_gimple_stmt): Likewise. + * gimple-low.c (lower_stmt): Likewise. + * gimplify.c (is_gimple_stmt): Handle OMP_MASTER. + (gimplify_scan_omp_clauses): For task reductions, handle OMP_SCOPE + like ORT_WORKSHARE constructs. Adjust diagnostics for % + allowing task reductions. Reject inscan reductions on scope. + (omp_find_stores_stmt): Handle GIMPLE_OMP_SCOPE. + (gimplify_omp_workshare, gimplify_expr): Handle OMP_SCOPE. + * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_SCOPE. + (estimate_num_insns): Likewise. + * omp-low.c (build_outer_var_ref): Look through GIMPLE_OMP_SCOPE + contexts if var isn't privatized there. + (check_omp_nesting_restrictions): Handle GIMPLE_OMP_SCOPE. + (scan_omp_1_stmt): Likewise. + (maybe_add_implicit_barrier_cancel): Look through outer + scope constructs. + (lower_omp_scope): New function. + (lower_omp_task_reductions): Handle OMP_SCOPE. + (lower_omp_1): Handle GIMPLE_OMP_SCOPE. + (diagnose_sb_1, diagnose_sb_2): Likewise. + * omp-expand.c (expand_omp_single): Support also GIMPLE_OMP_SCOPE. + (expand_omp): Handle GIMPLE_OMP_SCOPE. + (omp_make_gimple_edges): Likewise. + * omp-builtins.def (BUILT_IN_GOMP_SCOPE_START): New built-in. + +2021-08-17 Richard Biener + + PR tree-optimization/101925 + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Set + reverse on COMPONENT_REF and ARRAY_REF according to + what reverse_storage_order_for_component_p does. + (vn_reference_eq): Compare reversed on reference ops. + (reverse_storage_order_for_component_p): New overload. + (vn_reference_lookup_3): Check reverse_storage_order_for_component_p + on the reference looked up. + +2021-08-17 Jeff Law + + * config/h8300/h8300.c (shift_alg_si): Avoid loops for most SImode + shifts on the H8/S. + (h8300_option_override): Use loops on H8/S more often when optimizing + for size. + (get_shift_alg): Handle new "special" cases on H8/S. Simplify + accordingly. Handle various arithmetic right shifts with special + sequences that we couldn't handle before. + +2021-08-16 Jeff Law + + * config.gcc (rl78-*-elf*): Do not include dbxelf.h. + +2021-08-16 Sebastian Huber + + * config/sparc/rtemself.h (SPARC_GCOV_TYPE_SIZE): Define. + * config/sparc/sparc.c (sparc_gcov_type_size): New. + (TARGET_GCOV_TYPE_SIZE): Redefine if SPARC_GCOV_TYPE_SIZE is defined. + * coverage.c (get_gcov_type): Use targetm.gcov_type_size(). + * doc/tm.texi (TARGET_GCOV_TYPE_SIZE): Add hook under "Misc". + * doc/tm.texi.in: Regenerate. + * target.def (gcov_type_size): New target hook. + * targhooks.c (default_gcov_type_size): New. + * targhooks.h (default_gcov_type_size): Declare. + * tree-profile.c (gimple_gen_edge_profiler): Use precision of + gcov_type_node. + (gimple_gen_time_profiler): Likewise. + +2021-08-16 Eric Botcazou + + * dwarf2out.c (add_scalar_info): Deal with DW_AT_data_bit_offset. + +2021-08-16 Tobias Burnus + + PR middle-end/101931 + * omp-low.c (omp_runtime_api_call): Update for routines + added in the meanwhile. + +2021-08-16 Martin Liska + + PR tree-optimization/100393 + * tree-switch-conversion.c (group_cluster::dump): Use + get_comparison_count. + (jump_table_cluster::find_jump_tables): Pre-compute number of + comparisons and then decrement it. Cache also max_ratio. + (jump_table_cluster::can_be_handled): Change signature. + * tree-switch-conversion.h (get_comparison_count): New. + +2021-08-16 Eric Botcazou + + * dwarf2out.c (add_data_member_location_attribute): Use GNAT + encodings only when -fgnat-encodings=all is specified. + (add_bound_info): Likewise. + (add_byte_size_attribute): Likewise. + (gen_member_die): Likewise. + +2021-08-16 Thomas Schwinge + + * omp-oacc-neuter-broadcast.cc + (execute_omp_oacc_neuter_broadcast): Plug 'par' memory leak. + +2021-08-16 Thomas Schwinge + + * omp-oacc-neuter-broadcast.cc + (execute_omp_oacc_neuter_broadcast): Clarify memory management for + 'prop_set'. + +2021-08-16 Thomas Schwinge + + * omp-oacc-neuter-broadcast.cc (field_map): Move variable into... + (execute_omp_oacc_neuter_broadcast): ... here. + (install_var_field, build_receiver_ref, build_sender_ref): Take + 'field_map_t *' parameter. Adjust all users. + (worker_single_copy, neuter_worker_single): Take a + 'record_field_map_t *' parameter. Adjust all users. + +2021-08-16 liuhongt + + PR target/101930 + * config/i386/i386.md (ldexp3): Force operands[1] to + reg. + +2021-08-16 Martin Liska + + PR ipa/101726 + * multiple_target.c (create_dispatcher_calls): Make default + function local only if it is a definition. + +2021-08-16 Martin Liska + + PR ipa/100600 + * ipa-icf-gimple.c (func_checker::compare_ssa_name): Do not + consider equal SSA_NAMEs when one is a param. + +2021-08-16 liuhongt + + PR target/101846 + * config/i386/i386-expand.c (ix86_expand_vec_perm_vpermt2): + Support vpermi2b for V32QI/V16QImode. + (ix86_extract_perm_from_pool_constant): New function. + (ix86_expand_vec_one_operand_perm_avx512): Support + vpermw/vpermb under TARGET_AVX512BW/TARGET_AVX512VBMI. + (expand_vec_perm_1): Adjust comments for upper. + * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): + New declare. + * config/i386/predicates.md (permvar_truncate_operand): New predicate. + (pshufb_truncv4siv4hi_operand): Ditto. + (pshufb_truncv8hiv8qi_operand): Ditto. + * config/i386/sse.md (*avx512bw_permvar_truncv16siv16hi_1): + New pre_reload define_insn_and_split. + (*avx512f_permvar_truncv8siv8hi_1): Ditto. + (*avx512f_vpermvar_truncv8div8si_1): Ditto. + (*avx512f_permvar_truncv32hiv32qi_1): Ditto. + (*avx512f_permvar_truncv16hiv16qi_1): Ditto. + (*avx512f_permvar_truncv4div4si_1): Ditto. + (*avx512f_pshufb_truncv8hiv8qi_1): Ditto. + (*avx512f_pshufb_truncv4siv4hi_1): Ditto. + (*avx512f_pshufd_truncv2div2si_1): Ditto. + +2021-08-16 Kito Cheng + + * config/riscv/multilib-generator: Support code model option for + multi-lib. + * doc/install.texi: Add document of new option for + --with-multilib-generator. + +2021-08-15 Clément Chigot + + * config/rs6000/rs6000.c (xcoff_tls_exec_model_detected): New. + (rs6000_legitimize_tls_address_aix): Use it. + (rs6000_xcoff_file_end): Add ".ref __tls_get_addr" when + xcoff_tls_exec_model_detected is true. + +2021-08-15 Jeff Law + + * config/h8300/h8300.c (shift_alg_si): Retune H8/300H shifts + to allow a bit more code growth, saving many dozens of cycles. + (h8300_option_override): Adjus shift_alg_si if optimizing for + code size. + (get_shift_alg): Use special + inline shifts for residuals + in more cases. + +2021-08-14 Stafford Horne + + PR target/99783 + * config/or1k/or1k-opts.h: New file. + * config/or1k/or1k.c (or1k_legitimize_address_1, print_reloc): + Support generating gotha relocations if -mcmodel=large is + specified. + * config/or1k/or1k.h (TARGET_CMODEL_SMALL, TARGET_CMODEL_LARGE): + New macros. + * config/or1k/or1k.opt (mcmodel=): New option. + * doc/invoke.texi (OpenRISC Options): Document mcmodel. + +2021-08-14 Martin Sebor + + PR middle-end/101791 + * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Use new argument + to valid_new_delete_pair_p. + * tree.c (valid_new_delete_pair_p): Add argument. + * tree.h (valid_new_delete_pair_p): Same. + +2021-08-14 Jakub Jelinek + + PR target/101896 + * config/i386/i386-expand.c (expand_vec_perm_broadcast_1) + : For this mode assert + !TARGET_AVX512BW || d->perm[0] rather than !TARGET_AVX2 || d->perm[0]. + +2021-08-13 Michael Meissner + + PR target/99921 + * config/rs6000/altivec.md (xxeval): Use register_predicate + instead of altivec_register_predicate. + +2021-08-13 Martin Sebor + + PR middle-end/101734 + * tree-ssa-uninit.c (maybe_warn_read_write_only): New function. + (maybe_warn_operand): Call it. + +2021-08-13 Martin Liska + + PR ipa/101354 + * attribs.c (decl_attributes): Make naked functions "noipa" + functions. + +2021-08-13 Martin Liska + + PR ipa/101261 + * symtab.c (symtab_node::noninterposable_alias): Do not create + local aliases for target_clone functions as the clonning pass + rejects aliases. + +2021-08-13 Martin Liska + + * opts.c (LIVE_PATCHING_OPTION): Define. + (control_options_for_live_patching): Use it in error messages. + +2021-08-13 Jan Hubicka + + * ipa-modref.c (dump_eaf_flags): Dump EAF_NOREAD. + (implicit_const_eaf_flags, implicit_pure_eaf_flags, + ignore_stores_eaf_flags): New constants. + (remove_useless_eaf_flags): New function. + (eaf_flags_useful_p): Use it. + (deref_flags): Add EAF_NOT_RETURNED if flag is unused; + handle EAF_NOREAD. + (modref_lattice::init): Add EAF_NOREAD. + (modref_lattice::add_escape_point): Do not reacord escape point if + result is unused. + (modref_lattice::merge): EAF_NOESCAPE implies EAF_NODIRECTESCAPE; + use remove_useless_eaf_flags. + (modref_lattice::merge_deref): Use ignore_stores_eaf_flags. + (modref_lattice::merge_direct_load): Add EAF_NOREAD + (analyze_ssa_name_flags): Fix handling EAF_NOT_RETURNED + (analyze_parms): Use remove_useless_eaf_flags. + (ipa_merge_modref_summary_after_inlining): Use ignore_stores_eaf_flags. + (modref_merge_call_site_flags): Add caller and ecf_flags parameter; + use remove_useless_eaf_flags. + (modref_propagate_flags_in_scc): Update. + * ipa-modref.h: Turn eaf_flags_t back to char. + * tree-core.h (EAF_NOT_RETURNED): Fix. + (EAF_NOREAD): New constant + * tree-ssa-alias.c: (ref_maybe_used_by_call_p_1): Check for + EAF_NOREAD. + * tree-ssa-structalias.c (handle_rhs_call): Handle new flags. + (handle_pure_call): Likewise. + +2021-08-12 Jakub Jelinek + + * tree.def (OMP_MASKED): New tree code. + * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_FILTER. + * tree.h (OMP_MASKED_BODY, OMP_MASKED_CLAUSES, OMP_MASKED_COMBINED, + OMP_CLAUSE_FILTER_EXPR): Define. + * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FILTER entry. + (omp_clause_code_name): Likewise. + (walk_tree_1): Handle OMP_CLAUSE_FILTER. + * tree-nested.c (convert_nonlocal_omp_clauses, + convert_local_omp_clauses): Handle OMP_CLAUSE_FILTER. + (convert_nonlocal_reference_stmt, convert_local_reference_stmt, + convert_gimple_call): Handle GIMPLE_OMP_MASTER. + * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FILTER. + (dump_generic_node): Handle OMP_MASTER. + * gimple.def (GIMPLE_OMP_MASKED): New gimple code. + * gimple.c (gimple_build_omp_masked): New function. + (gimple_copy): Handle GIMPLE_OMP_MASKED. + * gimple.h (gimple_build_omp_masked): Declare. + (gimple_has_substatements): Handle GIMPLE_OMP_MASKED. + (gimple_omp_masked_clauses, gimple_omp_masked_clauses_ptr, + gimple_omp_masked_set_clauses): New inline functions. + (CASE_GIMPLE_OMP): Add GIMPLE_OMP_MASKED. + * gimple-pretty-print.c (dump_gimple_omp_masked): New function. + (pp_gimple_stmt_1): Handle GIMPLE_OMP_MASKED. + * gimple-walk.c (walk_gimple_stmt): Likewise. + * gimple-low.c (lower_stmt): Likewise. + * gimplify.c (is_gimple_stmt): Handle OMP_MASTER. + (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_FILTER. For clauses + that take one expression rather than decl or constant, force + gimplification of that into a SSA_NAME or temporary unless min + invariant. + (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_FILTER. + (gimplify_expr): Handle OMP_MASKED. + * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_MASKED. + (estimate_num_insns): Likewise. + * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FILTER. + (check_omp_nesting_restrictions): Handle GIMPLE_OMP_MASKED. Adjust + diagnostics for existence of masked construct. + (scan_omp_1_stmt, lower_omp_master, lower_omp_1, diagnose_sb_1, + diagnose_sb_2): Handle GIMPLE_OMP_MASKED. + * omp-expand.c (expand_omp_synch, expand_omp, omp_make_gimple_edges): + Likewise. + +2021-08-12 Uroš Bizjak + + PR target/98309 + * config/i386/i386.md (avx512f_scalef2): New insn pattern. + (ldexp3): Use avx512f_scalef2. + (UNSPEC_SCALEF): Move from ... + * config/i386/sse.md (UNSPEC_SCALEF): ... here. + +2021-08-12 Jan Hubicka + + * ipa-split.c (consider_split): Fix condition testing void functions. + +2021-08-12 Aldy Hernandez + + * doc/invoke.texi: Remove docs for threader-mode param. + * flag-types.h (enum threader_mode): Remove. + * params.opt: Remove threader-mode param. + * tree-ssa-threadbackward.c (class back_threader): Remove + path_is_unreachable_p. + Make find_paths private. + Add maybe_thread and thread_through_all_blocks. + Remove reference marker for m_registry. + Remove reference marker for m_profit. + (back_threader::back_threader): Adjust for registry and profit not + being references. + (dump_path): Move down. + (debug): Move down. + (class thread_jumps): Remove. + (class back_threader_registry): Remove m_all_paths. + Remove destructor. + (thread_jumps::thread_through_all_blocks): Move to back_threader + class. + (fsm_find_thread_path): Remove + (back_threader::maybe_thread): New. + (back_threader::thread_through_all_blocks): Move from + thread_jumps. + (back_threader_registry::back_threader_registry): Remove + m_all_paths. + (back_threader_registry::~back_threader_registry): Remove. + (thread_jumps::find_taken_edge): Remove. + (thread_jumps::check_subpath_and_update_thread_path): Remove. + (thread_jumps::maybe_register_path): Remove. + (thread_jumps::handle_phi): Remove. + (handle_assignment_p): Remove. + (thread_jumps::handle_assignment): Remove. + (thread_jumps::fsm_find_control_statement_thread_paths): Remove. + (thread_jumps::find_jump_threads_backwards): Remove. + (thread_jumps::find_jump_threads_backwards_with_ranger): Remove. + (try_thread_blocks): Rename find_jump_threads_backwards to + maybe_thread. + (pass_early_thread_jumps::execute): Same. + +2021-08-12 Tobias Burnus + + * tree-core.h (omp_clause_proc_bind_kind): Add + OMP_CLAUSE_PROC_BIND_PRIMARY. + * tree-pretty-print.c (dump_omp_clause): Add TODO comment to + change 'master' to 'primary' in proc_bind for OpenMP 5.1. + +2021-08-12 Claudiu Zissulescu + + * common/config/arc/arc-common.c (arc_option_init_struct): Remove + fno-common reference. + * config/arc/arc.c (arc_override_options): Remove overriding of + flag_no_common. + +2021-08-12 Jakub Jelinek + + PR target/101860 + * config/i386/i386-expand.c (ix86_expand_vec_one_operand_perm_avx512): + If d->testing_p, return true after performing checks instead of + actually expanding the insn. + (expand_vec_perm_broadcast_1): Handle V32HImode - assert + !TARGET_AVX512BW and return false. + +2021-08-12 Eric Botcazou + + * configure.ac (PE linker --disable-dynamicbase support): New check. + * configure: Regenerate. + * config.in: Likewise. + * config/i386/mingw32.h (LINK_SPEC_DISABLE_DYNAMICBASE): New define. + (LINK_SPEC): Use it. + * config/i386/mingw-w64.h (LINK_SPEC_DISABLE_DYNAMICBASE): Likewise. + (LINK_SPEC): Likewise. + +2021-08-12 liuhongt + + PR target/101846 + * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_2): New + post_reload define_insn_and_split. + (*avx512bw_zero_extendv32qiv32hi2_2): Ditto. + (*sse4_1_zero_extendv8qiv8hi2_4): Ditto. + (*avx512f_zero_extendv16hiv16si2_2): Ditto. + (*avx2_zero_extendv8hiv8si2_2): Ditto. + (*sse4_1_zero_extendv4hiv4si2_4): Ditto. + (*avx512f_zero_extendv8siv8di2_2): Ditto. + (*avx2_zero_extendv4siv4di2_2): Ditto. + (*sse4_1_zero_extendv2siv2di2_4): Ditto. + (VI248_256, VI248_512, VI148_512, VI148_256, VI148_128): New + mode iterator. + +2021-08-11 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: Add always, power5, and + power6 stanzas. + +2021-08-11 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: Add vsx stanza. + +2021-08-11 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: Finish altivec stanza. + * config/rs6000/rs6000-call.c (rs6000_init_builtins): Move + initialization of pcvoid_type_node here... + (altivec_init_builtins): ...from here. + * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add + RS6000_BTI_const_ptr_void. + (pcvoid_type_node): New macro. + +2021-08-11 Richard Biener + + PR target/101877 + * tree-ssa-forwprop.c (pass_forwprop::execute): Do not decompose + hard-register accesses. + +2021-08-11 Richard Biener + + * tree-ssa-operands.c (operands_scanner::get_expr_operands): + Do not look at COMPONENT_REF FIELD_DECLs TREE_THIS_VOLATILE + to determine has_volatile_ops. + +2021-08-11 Eric Botcazou + + * cfgexpand.c (expand_used_vars): Reuse attribs local variable. + +2021-08-11 Jan Hubicka + Alexandre Oliva + + * ipa-modref.c (modref_lattice::dump): Fix escape_point's min_flags + dumping. + (modref_lattice::merge_deref): Fix handling of indirect scape points. + (update_escape_summary_1): Likewise. + (update_escape_summary): Likewise. + (ipa_merge_modref_summary_after_inlining): Likewise. + +2021-08-11 Richard Biener + + PR middle-end/101858 + * fold-const.c (fold_binary_loc): Guard simplification + of X < (cast) (1 << Y) to integer types. + +2021-08-11 Richard Biener + + PR tree-optimization/101861 + * tree-vect-stmts.c (vectorizable_load): Fix error in + previous change with regard to gather vectorization. + +2021-08-11 prathamesh.kulkarni + + PR target/66791 + * config/arm/arm_neon.h (vdup_n_s8): Replace call to builtin + with constructor. + (vdup_n_s16): Likewise. + (vdup_n_s32): Likewise. + (vdup_n_s64): Likewise. + (vdup_n_u8): Likewise. + (vdup_n_u16): Likewise. + (vdup_n_u32): Likewise. + (vdup_n_u64): Likewise. + (vdup_n_p8): Likewise. + (vdup_n_p16): Likewise. + (vdup_n_p64): Likewise. + (vdup_n_f16): Likewise. + (vdup_n_f32): Likewise. + (vdupq_n_s8): Likewise. + (vdupq_n_s16): Likewise. + (vdupq_n_s32): Likewise. + (vdupq_n_s64): Likewise. + (vdupq_n_u8): Likewise. + (vdupq_n_u16): Likewise. + (vdupq_n_u32): Likewise. + (vdupq_n_u64): Likewise. + (vdupq_n_p8): Likewise. + (vdupq_n_p16): Likewise. + (vdupq_n_p64): Likewise. + (vdupq_n_f16): Likewise. + (vdupq_n_f32): Likewise. + (vmov_n_s8): Replace call to builtin with call to corresponding + vdup_n intrinsic. + (vmov_n_s16): Likewise. + (vmov_n_s32): Likewise. + (vmov_n_s64): Likewise. + (vmov_n_u8): Likewise. + (vmov_n_u16): Likewise. + (vmov_n_u32): Likewise. + (vmov_n_u64): Likewise. + (vmov_n_p8): Likewise. + (vmov_n_p16): Likewise. + (vmov_n_f16): Likewise. + (vmov_n_f32): Likewise. + (vmovq_n_s8): Likewise. + (vmovq_n_s16): Likewise. + (vmovq_n_s32): Likewise. + (vmovq_n_s64): Likewise. + (vmovq_n_u8): Likewise. + (vmovq_n_u16): Likewise. + (vmovq_n_u32): Likewise. + (vmovq_n_u64): Likewise. + (vmovq_n_p8): Likewise. + (vmovq_n_p16): Likewise. + (vmovq_n_f16): Likewise. + (vmovq_n_f32): Likewise. + * config/arm/arm_neon_builtins.def: Remove entries for vdup_n. + +2021-08-11 liuhongt + + PR target/98309 + * config/i386/i386.md (ldexp3): Extend to vscalefs[sd] + when TARGET_AVX512F and TARGET_SSE_MATH. + +2021-08-10 Jakub Jelinek + + PR target/80355 + * config/i386/i386-expand.c (expand_vec_perm_even_odd): Return false + for V32HImode if !TARGET_AVX512BW. + (ix86_vectorize_vec_perm_const) : + If !TARGET_AVX512BW and TARGET_AVX512F and d.testing_p, don't fail + early, but actually check the permutation. + +2021-08-10 Richard Biener + + PR tree-optimization/101809 + * tree-vect-stmts.c (get_load_store_type): Allow emulated + gathers with offset vector nunits being a constant multiple + of the data vector nunits. + (vect_get_gather_scatter_ops): Use the appropriate nunits + for the offset vector defs. + (vectorizable_store): Adjust call to + vect_get_gather_scatter_ops. + (vectorizable_load): Likewise. Handle the case of less + offset vectors than data vectors. + +2021-08-10 Jakub Jelinek + + PR target/80355 + * config/i386/sse.md (*avx512f_shuf_64x2_1_1, + *avx512f_shuf_32x4_1_1): New define_insn + patterns. + +2021-08-10 Richard Biener + + PR tree-optimization/101801 + PR tree-optimization/101819 + * tree-vectorizer.h (vect_emulated_vector_p): Declare. + * tree-vect-loop.c (vect_emulated_vector_p): New function. + (vectorizable_reduction): Re-instantiate a check for emulated + operations. + * tree-vect-stmts.c (vectorizable_shift): Likewise. + (vectorizable_operation): Likewise. Cost emulated vector + operations according to the scalar sequence synthesized by + vector lowering. + +2021-08-10 Richard Biener + + PR middle-end/101824 + * tree-nested.c (get_frame_field): Mark the COMPONENT_REF as + volatile in case the variable was. + +2021-08-10 H.J. Lu + + PR target/101804 + * config/i386/constraints.md (BC): Document for integer SSE + constant all bits set operand. + (BF): New constraint for const floating-point all bits set + vectors. + * config/i386/i386.c (standard_sse_constant_p): Likewise. + (standard_sse_constant_opcode): Likewise. + * config/i386/sse.md (sseconstm1): New mode attribute. + (mov_internal): Replace BC with . + +2021-08-10 liuhongt + + * config/i386/sse.md (cond_): New expander. + (VI248_AVX512VLBW): New mode iterator. + * config/i386/predicates.md + (nonimmediate_or_const_vec_dup_operand): New predicate. + +2021-08-09 Andrew MacLeod + + PR tree-optimization/101741 + * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Check + type of parameter for toupper/tolower. + +2021-08-09 Martin Jambor + + PR testsuite/101654 + * ipa-prop.c (propagate_controlled_uses): Removed a spurious space. + +2021-08-09 Pat Haugen + + * config/rs6000/rs6000.c (is_load_insn1): Verify destination is a + register. + (is_store_insn1): Verify source is a register. + +2021-08-09 Uroš Bizjak + + PR target/101812 + * config/i386/mmx.md (v2sf3): + Rename from *mmx_v2sf3 + +2021-08-09 Thomas Schwinge + + * config/nvptx/nvptx.c: Cross-reference parts adapted in + 'gcc/omp-oacc-neuter-broadcast.cc'. + * omp-low.c: Likewise. + * omp-oacc-neuter-broadcast.cc: Cross-reference parts adapted from + the above files. + +2021-08-09 Julian Brown + Kwok Cheung Yeung + Thomas Schwinge + + * config/gcn/gcn.c (gcn_init_builtins): Override decls for + BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START, + BUILT_IN_GOACC_SINGLE_COPY_END and BUILT_IN_GOACC_BARRIER. + (gcn_goacc_validate_dims): Turn on worker partitioning unconditionally. + (gcn_fork_join): Update comment. + * config/gcn/gcn.opt (flag_worker_partitioning): Remove. + (macc_experimental_workers): Remove unused option. + +2021-08-09 Julian Brown + Nathan Sidwell (via 'gcc/config/nvptx/nvptx.c' master) + Kwok Cheung Yeung + Thomas Schwinge + + * Makefile.in (OBJS): Add omp-oacc-neuter-broadcast.o. + * doc/tm.texi.in (TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD): + Add documentation hook. + * doc/tm.texi: Regenerate. + * omp-oacc-neuter-broadcast.cc: New file. + * omp-builtins.def (BUILT_IN_GOACC_BARRIER) + (BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START) + (BUILT_IN_GOACC_SINGLE_COPY_END): New builtins. + * passes.def (pass_omp_oacc_neuter_broadcast): Add pass. + * target.def (goacc.create_worker_broadcast_record): Add target + hook. + * tree-pass.h (make_pass_omp_oacc_neuter_broadcast): Add + prototype. + * config/gcn/gcn-protos.h (gcn_goacc_adjust_propagation_record): + Rename prototype to... + (gcn_goacc_create_worker_broadcast_record): ... this. + * config/gcn/gcn-tree.c (gcn_goacc_adjust_propagation_record): Rename + function to... + (gcn_goacc_create_worker_broadcast_record): ... this. + * config/gcn/gcn.c (TARGET_GOACC_ADJUST_PROPAGATION_RECORD): + Rename to... + (TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD): ... this. + +2021-08-09 Tejas Belagod + + PR target/101609 + * config/aarch64/aarch64-simd.md (vlshr3, vashr3): Use + the right iterator. + +2021-08-09 Thomas Schwinge + + * Makefile.in (GTFILES): Remove '$(srcdir)/omp-offload.c'. + +2021-08-09 Thomas Schwinge + + * builtins.def (DEF_GOACC_BUILTIN, DEF_GOMP_BUILTIN): Don't + consider '-foffload-abi'. + * common.opt (-foffload-abi): Remove 'Var', 'Init'. + * opts.c (common_handle_option) <-foffload-abi> [ACCEL_COMPILER]: + Ignore. + +2021-08-09 Thomas Schwinge + + * optc-gen.awk: Sanity check that 'Init' doesn't appear without + 'Var'. + +2021-08-09 Thomas Schwinge + + * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE): Remove. + +2021-08-09 Thomas Schwinge + + * doc/gty.texi (Files): Update. + +2021-08-09 Thomas Schwinge + + * doc/gty.texi (Files): Fix GTY header file example. + +2021-08-09 Roger Sayle + + * tree-ssa-ccp.c (value_mask_to_min_max): Helper function to + determine the upper and lower bounds from a mask-value pair. + (bit_value_unop) [ABS_EXPR, ABSU_EXPR]: Add support for + absolute value and unsigned absolute value expressions. + (bit_value_binop): Initialize *VAL's precision. + [LT_EXPR, LE_EXPR]: Use value_mask_to_min_max to determine + upper and lower bounds of operands. Add LE_EXPR/GE_EXPR + support when the operands are unknown but potentially equal. + [MIN_EXPR, MAX_EXPR]: Support minimum/maximum expressions. + +2021-08-09 Bin Cheng + + * config/aarch64/aarch64.md + (*extend2_aarch64): Use %0. + +2021-08-08 Sergei Trofimovich + + * lra-constraints.c: Fix s/otput/output/ typo. + +2021-08-06 Martin Sebor + + * builtins.c (expand_builtin_memchr): Move to gimple-ssa-warn-access.cc. + (expand_builtin_strcat): Same. + (expand_builtin_stpncpy): Same. + (expand_builtin_strncat): Same. + (check_read_access): Same. + (check_memop_access): Same. + (expand_builtin_strlen): Move checks to gimple-ssa-warn-access.cc. + (expand_builtin_strnlen): Same. + (expand_builtin_memcpy): Same. + (expand_builtin_memmove): Same. + (expand_builtin_mempcpy): Same. + (expand_builtin_strcpy): Same. + (expand_builtin_strcpy_args): Same. + (expand_builtin_stpcpy_1): Same. + (expand_builtin_strncpy): Same. + (expand_builtin_memset): Same. + (expand_builtin_bzero): Same. + (expand_builtin_strcmp): Same. + (expand_builtin_strncmp): Same. + (expand_builtin): Remove handlers. + (fold_builtin_strlen): Add a comment. + * builtins.h (check_access): Move to gimple-ssa-warn-access.cc. + * calls.c (maybe_warn_nonstring_arg): Same. + * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Add warning option. + * gimple-fold.c (gimple_fold_builtin_strcpy): Pass argument to callee. + (gimple_fold_builtin_stpcpy): Same. + * gimple-ssa-warn-access.cc (has_location): New function. + (get_location): Same. + (get_callee_fndecl): Same. + (call_nargs): Same. + (call_arg): Same. + (warn_string_no_nul): Define. + (unterminated_array): Same. + (check_nul_terminated_array): Same. + (maybe_warn_nonstring_arg): Same. + (maybe_warn_for_bound): Same. + (warn_for_access): Same. + (check_access): Same. + (check_memop_access): Same. + (check_read_access): Same. + (warn_dealloc_offset): Use helper functions. + (maybe_emit_free_warning): Same. + (class pass_waccess): Add members. + (check_strcat): New function. + (check_strncat): New function. + (check_stxcpy): New function. + (check_stxncpy): New function. + (check_strncmp): New function. + (pass_waccess::check_builtin): New function. + (pass_waccess::check): Call it. + * gimple-ssa-warn-access.h (warn_string_no_nul): Move here from + builtins.h. + (maybe_warn_for_bound): Same. + (check_access): Same. + (check_memop_access): Same. + (check_read_access): Same. + * pointer-query.h (struct access_data): Define a ctor overload. + +2021-08-06 Richard Biener + + PR tree-optimization/101801 + * tree-vectorizer.h (vect_worthwhile_without_simd_p): Rename... + (vect_can_vectorize_without_simd_p): ... to this. + * tree-vect-loop.c (vect_worthwhile_without_simd_p): Rename... + (vect_can_vectorize_without_simd_p): ... to this and fold + in vect_min_worthwhile_factor. + (vect_min_worthwhile_factor): Remove. + (vectorizable_reduction): Adjust and remove the cost part. + * tree-vect-stmts.c (vectorizable_shift): Likewise. + (vectorizable_operation): Likewise. + +2021-08-06 Uroš Bizjak + + PR target/101797 + * config/i386/i386.md (cmove reg-to-reg move elimination peephole2s): + Add general_gr_operand predicate to operand 3. + +2021-08-06 Roger Sayle + + * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern): Use + CFN_BUILT_IN_CLRSB* instead of BUILT_IN_CLRSB* for consistency. + +2021-08-06 Tamar Christina + + * config/aarch64/aarch64-sve-builtins.cc (register_svpattern, + register_svprfop): Pass vec<> by pointer. + * langhooks-def.h (lhd_simulate_enum_decl): Likewise. + * langhooks.c (lhd_simulate_enum_decl): Likewise. + * langhooks.h (struct lang_hooks_for_types): Likewise. + +2021-08-06 Jonathan Wright + + * config/aarch64/arm_neon.h (vst1_bf16_x2): Use + __builtin_memcpy instead of constructing an additional + __builtin_aarch64_simd_oi one vector at a time. + (vst1q_bf16_x2): Likewise. + (vst1_bf16_x3): Use __builtin_memcpy instead of constructing + an additional __builtin_aarch64_simd_ci one vector at a time. + (vst1q_bf16_x3): Likewise. + (vst1_bf16_x4): Use __builtin_memcpy instead of a union. + (vst1q_bf16_x4): Likewise. + (vst2_bf16): Use __builtin_memcpy instead of constructing an + additional __builtin_aarch64_simd_oi one vector at a time. + (vst2q_bf16): Likewise. + (vst3_bf16): Use __builtin_memcpy instead of constructing an + additional __builtin_aarch64_simd_ci mode one vector at a + time. + (vst3q_bf16): Likewise. + (vst4_bf16): Use __builtin_memcpy instead of constructing an + additional __builtin_aarch64_simd_xi one vector at a time. + (vst4q_bf16): Likewise. + +2021-08-06 Jonathan Wright + + * config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Delete. + (__ST2Q_LANE_FUNC): Delete. + (vst2_lane_f16): Use __builtin_memcpy to copy vector + structure instead of constructing __builtin_aarch64_simd_oi + one vector at a time. + (vst2_lane_f32): Likewise. + (vst2_lane_f64): Likewise. + (vst2_lane_p8): Likewise. + (vst2_lane_p16): Likewise. + (vst2_lane_p64): Likewise. + (vst2_lane_s8): Likewise. + (vst2_lane_s16): Likewise. + (vst2_lane_s32): Likewise. + (vst2_lane_s64): Likewise. + (vst2_lane_u8): Likewise. + (vst2_lane_u16): Likewise. + (vst2_lane_u32): Likewise. + (vst2_lane_u64): Likewise. + (vst2_lane_bf16): Likewise. + (vst2q_lane_f16): Use __builtin_memcpy to copy vector + structure instead of using a union. + (vst2q_lane_f32): Likewise. + (vst2q_lane_f64): Likewise. + (vst2q_lane_p8): Likewise. + (vst2q_lane_p16): Likewise. + (vst2q_lane_p64): Likewise. + (vst2q_lane_s8): Likewise. + (vst2q_lane_s16): Likewise. + (vst2q_lane_s32): Likewise. + (vst2q_lane_s64): Likewise. + (vst2q_lane_u8): Likewise. + (vst2q_lane_u16): Likewise. + (vst2q_lane_u32): Likewise. + (vst2q_lane_u64): Likewise. + (vst2q_lane_bf16): Likewise. + +2021-08-06 Jonathan Wright + + * config/aarch64/arm_neon.h (__ST3_LANE_FUNC): Delete. + (__ST3Q_LANE_FUNC): Delete. + (vst3_lane_f16): Use __builtin_memcpy to copy vector + structure instead of constructing __builtin_aarch64_simd_ci + one vector at a time. + (vst3_lane_f32): Likewise. + (vst3_lane_f64): Likewise. + (vst3_lane_p8): Likewise. + (vst3_lane_p16): Likewise. + (vst3_lane_p64): Likewise. + (vst3_lane_s8): Likewise. + (vst3_lane_s16): Likewise. + (vst3_lane_s32): Likewise. + (vst3_lane_s64): Likewise. + (vst3_lane_u8): Likewise. + (vst3_lane_u16): Likewise. + (vst3_lane_u32): Likewise. + (vst3_lane_u64): Likewise. + (vst3_lane_bf16): Likewise. + (vst3q_lane_f16): Use __builtin_memcpy to copy vector + structure instead of using a union. + (vst3q_lane_f32): Likewise. + (vst3q_lane_f64): Likewise. + (vst3q_lane_p8): Likewise. + (vst3q_lane_p16): Likewise. + (vst3q_lane_p64): Likewise. + (vst3q_lane_s8): Likewise. + (vst3q_lane_s16): Likewise. + (vst3q_lane_s32): Likewise. + (vst3q_lane_s64): Likewise. + (vst3q_lane_u8): Likewise. + (vst3q_lane_u16): Likewise. + (vst3q_lane_u32): Likewise. + (vst3q_lane_u64): Likewise. + (vst3q_lane_bf16): Likewise. + +2021-08-06 Jonathan Wright + + * config/aarch64/arm_neon.h (__ST4_LANE_FUNC): Delete. + (__ST4Q_LANE_FUNC): Delete. + (vst4_lane_f16): Use __builtin_memcpy to copy vector + structure instead of constructing __builtin_aarch64_simd_xi + one vector at a time. + (vst4_lane_f32): Likewise. + (vst4_lane_f64): Likewise. + (vst4_lane_p8): Likewise. + (vst4_lane_p16): Likewise. + (vst4_lane_p64): Likewise. + (vst4_lane_s8): Likewise. + (vst4_lane_s16): Likewise. + (vst4_lane_s32): Likewise. + (vst4_lane_s64): Likewise. + (vst4_lane_u8): Likewise. + (vst4_lane_u16): Likewise. + (vst4_lane_u32): Likewise. + (vst4_lane_u64): Likewise. + (vst4_lane_bf16): Likewise. + (vst4q_lane_f16): Use __builtin_memcpy to copy vector + structure instead of using a union. + (vst4q_lane_f32): Likewise. + (vst4q_lane_f64): Likewise. + (vst4q_lane_p8): Likewise. + (vst4q_lane_p16): Likewise. + (vst4q_lane_p64): Likewise. + (vst4q_lane_s8): Likewise. + (vst4q_lane_s16): Likewise. + (vst4q_lane_s32): Likewise. + (vst4q_lane_s64): Likewise. + (vst4q_lane_u8): Likewise. + (vst4q_lane_u16): Likewise. + (vst4q_lane_u32): Likewise. + (vst4q_lane_u64): Likewise. + (vst4q_lane_bf16): Likewise. + +2021-08-06 Martin Liska + + * config/rs6000/rs6000.c (rs6000_option_override_internal): When + a target option is restored, it can have + rs6000_long_double_type_size set to FLOAT_PRECISION_TFmode + and error should not be emitted. + +2021-08-06 Sebastian Huber + + * gcov-io.h (gcov_write): Declare. + * gcov-io.c (gcov_write): New. + (gcov_write_counter): Remove. + (gcov_write_tag_length): Likewise. + (gcov_write_summary): Replace gcov_write_tag_length() with calls to + gcov_write_unsigned(). + * doc/invoke.texi (fprofile-info-section): Mention + __gcov_info_to_gdca(). + +2021-08-06 Martin Sebor + + * dominance.c (prune_bbs_to_update_dominators): Adjust by-value vec + arguments to by-reference. + (iterate_fix_dominators): Same. + * dominance.h (iterate_fix_dominators): Same. + * ipa-prop.h: Call auto_vec::to_vec_legacy. + * tree-data-ref.c (dump_data_dependence_relation): Adjust by-value vec + arguments to by-reference. + (debug_data_dependence_relation): Same. + (dump_data_dependence_relations): Same. + * tree-data-ref.h (debug_data_dependence_relation): Same. + (dump_data_dependence_relations): Same. + * tree-predcom.c (dump_chains): Same. + (initialize_root_vars_lm): Same. + (determine_unroll_factor): Same. + (replace_phis_by_defined_names): Same. + (insert_init_seqs): Same. + (pcom_worker::tree_predictive_commoning_loop): Call + auto_vec::to_vec_legacy. + * tree-ssa-pre.c (insert_into_preds_of_block): Adjust by-value vec + arguments to by-reference. + * tree-ssa-threadbackward.c (populate_worklist): Same. + (back_threader::resolve_def): Same. + * tree-vect-data-refs.c (vect_check_nonzero_value): Same. + (vect_enhance_data_refs_alignment): Same. + (vect_check_lower_bound): Same. + (vect_prune_runtime_alias_test_list): Same. + (vect_permute_store_chain): Same. + * tree-vect-slp-patterns.c (vect_normalize_conj_loc): Same. + * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Same. + * tree-vectorizer.h (vect_permute_store_chain): Same. + * vec.c (test_init): New function. + (vec_c_tests): Call new function. + * vec.h (vec): Declare ctors, dtor, and assignment. + (auto_vec::vec_to_legacy): New function. + (vec::copy): Adjust initialization. + +2021-08-05 H.J. Lu + + PR target/99744 + * config/i386/i386.c (ix86_can_inline_p): Ignore MASK_80387 if + callee only uses GPRs. + * config/i386/ia32intrin.h: Revert commit 5463cee2770. + * config/i386/serializeintrin.h: Revert commit 71958f740f1. + * config/i386/x86gprintrin.h: Add + #pragma GCC target("general-regs-only") and #pragma GCC pop_options + to disable non-GPR ISAs. + +2021-08-05 Richard Sandiford + + PR middle-end/101787 + * doc/md.texi (cond_ashl, cond_ashr, cond_lshr): Document. + +2021-08-05 Richard Sandiford + + * tree-vectorizer.h (vect_is_store_elt_extraction, vect_is_reduction) + (vect_reduc_type, vect_embedded_comparison_type, vect_comparison_type) + (vect_is_extending_load, vect_is_integer_truncation): New functions, + moved from aarch64.c but given different names. + * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction) + (aarch64_is_reduction, aarch64_reduc_type) + (aarch64_embedded_comparison_type, aarch64_comparison_type) + (aarch64_extending_load_p, aarch64_integer_truncation_p): Delete + in favor of the above. Update callers accordingly. + +2021-08-05 Richard Earnshaw + + PR target/101723 + * config/arm/arm-cpus.in (generic-armv7-a): Add quirk to suppress + writing .cpu directive in asm output. + * config/arm/arm.c (arm_identify_fpu_from_isa): New variable. + (arm_last_printed_arch_string): Delete. + (arm_last-printed_fpu_string): Delete. + (arm_configure_build_target): If use of floating-point/SIMD is + disabled, remove all fp/simd related features from the target ISA. + (last_arm_targ_options): New variable. + (arm_print_asm_arch_directives): Add new parameters. Change order + of emitted directives and handle all cases here. + (arm_file_start): Always call arm_print_asm_arch_directives, move + all generation of .arch/.arch_extension here. + (arm_file_end): Call arm_print_asm_arch. + (arm_declare_function_name): Call arm_print_asm_arch_directives + instead of printing .arch/.fpu directives directly. + +2021-08-05 Richard Earnshaw + + * config/arm/arm.c (arm_configure_build_target): Don't call + arm_option_reconfigure_globals. + (arm_option_restore): Call arm_option_reconfigure_globals after + reconfiguring the target. + * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. + +2021-08-05 Richard Earnshaw + + * config/arm/arm.c (arm_configure_build_target): Ensure the target's + arch_name is always set. + +2021-08-05 Jonathan Wright + + * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost + of vec_select high-half from being added into Neon subtract + cost. + +2021-08-05 Jonathan Wright + + * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost + of vec_select high-half from being added into Neon add cost. + +2021-08-05 Kewen Lin + + * cfgloop.h (loops_list::loops_list): Add one optional argument + root and adjust accordingly, update loop tree walking and factor + out to ... + * cfgloop.c (loops_list::walk_loop_tree): ... this. New function. + +2021-08-05 Eric Botcazou + + PR tree-optimization/101626 + * tree-sra.c (propagate_subaccesses_from_rhs): Do not set the + reverse scalar storage order on a pointer or vector component. + +2021-08-05 liuhongt + + * config/i386/sse.md (cond_): New expander. + +2021-08-05 liuhongt + + * config/i386/sse.md (cond_): New expander. + +2021-08-05 liuhongt + + * config/i386/sse.md (cond_): New expander. + +2021-08-04 David Malcolm + + PR analyzer/101570 + * Makefile.in (ANALYZER_OBJS): Add analyzer/region-model-asm.o. + +2021-08-04 H.J. Lu + + PR target/101742 + * config/i386/i386.h (STORE_MAX_PIECES): Allow 16/32/64 bytes + only if TARGET_INTER_UNIT_MOVES_TO_VEC is true. + +2021-08-04 H.J. Lu + + PR target/101772 + * config/i386/i386-expand.c (ix86_expand_vector_move): Call + ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy + data with SSE register from one memory location to another. + +2021-08-04 Andreas Krebbel + + * config/s390/s390.c (expand_perm_with_vpdi): New function. + (vectorize_vec_perm_const_1): Call expand_perm_with_vpdi. + * config/s390/vector.md (*vpdi1, @vpdi1): Enable a + parameterized expander. + (*vpdi4, @vpdi4): Likewise. + +2021-08-04 Andreas Krebbel + + * config/s390/s390.c (MAX_VECT_LEN): Define macro. + (struct expand_vec_perm_d): Define struct. + (expand_perm_with_merge): New function. + (vectorize_vec_perm_const_1): New function. + (s390_vectorize_vec_perm_const): New function. + (TARGET_VECTORIZE_VEC_PERM_CONST): Define target macro. + +2021-08-04 Andreas Krebbel + + * config/s390/vector.md (V_HW_64): Remove mode iterator. + (*vec_load_pair): Use V_HW_2 instead of V_HW_64. + * config/s390/vx-builtins.md + (vec_scatter_element_SI): Use V_HW_2 instead of + V_HW_64. + +2021-08-04 Andreas Krebbel + + * config/s390/s390.md (UNSPEC_VEC_PERMI): Remove constant + definition. + * config/s390/vector.md (*vpdi1, *vpdi4): New pattern + definitions. + * config/s390/vx-builtins.md (*vec_permi): Emit generic rtx + instead of an unspec. + +2021-08-04 Andreas Krebbel + + * config/s390/s390-modes.def: Add more vector modes to support + concatenation of two vectors. + * config/s390/s390-protos.h (s390_expand_merge_perm_const): Add + prototype. + (s390_expand_merge): Likewise. + * config/s390/s390.c (s390_expand_merge_perm_const): New function. + (s390_expand_merge): New function. + * config/s390/s390.md (UNSPEC_VEC_MERGEH, UNSPEC_VEC_MERGEL): + Remove constant definitions. + * config/s390/vector.md (V_HW_2): Add mode iterators. + (VI_HW_4, V_HW_4): Rename VI_HW_4 to V_HW_4. + (vec_2x_nelts, vec_2x_wide): New mode attributes. + (*vmrhb, *vmrlb, *vmrhh, *vmrlh, *vmrhf, *vmrlf, *vmrhg, *vmrlg): + New pattern definitions. + (vec_widen_umult_lo_, vec_widen_umult_hi_) + (vec_widen_smult_lo_, vec_widen_smult_hi_) + (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf, vec_unpacks_lo_v2df) + (vec_unpacks_hi_v2df): Adjust expanders to emit non-unspec RTX for + vec merge. + * config/s390/vx-builtins.md (V_HW_4): Remove mode iterator. Now + in vector.md. + (vec_mergeh, vec_mergel): Use s390_expand_merge to + emit vec merge pattern. + +2021-08-04 Jonathan Wright + + * config/aarch64/aarch64.c (aarch64_strip_extend_vec_half): + Define. + (aarch64_rtx_mult_cost): Traverse RTL tree to prevent cost of + vec_select high-half from being added into Neon multiply + cost. + * rtlanal.c (vec_series_highpart_p): Define. + * rtlanal.h (vec_series_highpart_p): Declare. + +2021-08-04 Jonathan Wright + + * config/aarch64/aarch64.c (aarch64_strip_duplicate_vec_elt): + Define. + (aarch64_rtx_mult_cost): Traverse RTL tree to prevent + vec_select cost from being added into Neon multiply cost. + +2021-08-04 Richard Sandiford + + * tree-vect-loop.c (vect_better_loop_vinfo_p): Detect cases in + which old_loop_vinfo is an epilogue loop that handles a constant + number of iterations. + +2021-08-04 Richard Sandiford + + * tree-vect-loop.c (vect_analyze_loop): Print a dump message + when a reanalyzed loop fails to be cheaper than the current + main loop. + +2021-08-04 Richard Sandiford + + * config/aarch64/aarch64.c: Fix a typo. + +2021-08-04 Vincent Lefèvre + + PR gcov-profile/101773 + * gcov-io.c (gcov_close): Check return code of a fclose. + +2021-08-04 Bernd Edlinger + + PR ada/101575 + * dwarf2out.c (dwarf2out_assembly_start): Emit a dummy + .file statement when needed. + +2021-08-04 Richard Biener + + * tree-vect-data-refs.c (vect_check_gather_scatter): + Include widening conversions only when the result is + still handed by native gather or the current offset + size not already matches the data size. + Also succeed analysis in case there's no native support, + noted by a IFN_LAST ifn and a NULL decl. + (vect_analyze_data_refs): Always consider gathers. + * tree-vect-patterns.c (vect_recog_gather_scatter_pattern): + Test for no IFN gather rather than decl gather. + * tree-vect-stmts.c (vect_model_load_cost): Pass in the + gather-scatter info and cost emulated gathers accordingly. + (vect_truncate_gather_scatter_offset): Properly test for + no IFN gather. + (vect_use_strided_gather_scatters_p): Likewise. + (get_load_store_type): Handle emulated gathers and its + restrictions. + (vectorizable_load): Likewise. Emulate them by extracting + scalar offsets, doing scalar loads and a vector construct. + +2021-08-04 H.J. Lu + + PR target/101742 + * expr.c (op_by_pieces_d::op_by_pieces_d): Add a max_pieces + argument to set m_max_size. + (move_by_pieces_d): Pass MOVE_MAX_PIECES to op_by_pieces_d. + (store_by_pieces_d): Pass STORE_MAX_PIECES to op_by_pieces_d. + (compare_by_pieces_d): Pass COMPARE_MAX_PIECES to op_by_pieces_d. + +2021-08-04 Roger Sayle + Marc Glisse + + * match.pd (bit_ior, bit_xor): Canonicalize (X*C1)|(X*C2) and + (X*C1)^(X*C2) as X*(C1+C2), and related variants, using + tree_nonzero_bits to ensure that operands are bit-wise disjoint. + +2021-08-04 Richard Biener + + * tree-ssa-forwprop.c (pass_forwprop::execute): Split + out code to decompose vector loads ... + (optimize_vector_load): ... here. Generalize it to + handle intermediate widening and TARGET_MEM_REF loads + and apply it to loads with a supported vector mode as well. + +2021-08-04 Richard Biener + + PR tree-optimization/101756 + * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Make sure + the result of the reduction epilogue is compatible to the original + scalar result. + +2021-08-04 liuhongt + + PR target/101743 + * config/i386/i386.md (peephole2): Refine predicate from + register_operand to general_reg_operand. + +2021-08-04 Aldy Hernandez + + * gimple-range-path.h (path_range_query::dump): Mark override. + +2021-08-04 Richard Biener + + PR tree-optimization/101769 + * tree-tailcall.c (eliminate_tail_call): Add the created loop + for the first recursion and return it via the new output parameter. + (optimize_tail_call): Pass through new output param. + (tree_optimize_tail_calls_1): After creating all latches, + add the created loop to the loop tree. Do not mark loops for fixup. + +2021-08-04 Martin Liska + + * doc/invoke.texi: Document threader-mode param. + +2021-08-04 liuhongt + + * config/i386/sse.md (cond_fma): New expander. + (cond_fms): Ditto. + (cond_fnma): Ditto. + (cond_fnms): Ditto. + +2021-08-03 Segher Boessenkool + + * config/rs6000/vsx.md (*vsx_le_perm_store_): Use && instead of &. + +2021-08-03 Segher Boessenkool + + * config/rs6000/constraints.md: Remove "e" from the list of available + constraint characters. + +2021-08-03 Eugene Rozenfeld + + PR gcov-profile/71672 + * auto-profile.c (afdo_indirect_call): Fix setup of the historgram value for indirect calls. + +2021-08-03 Paul A. Clarke + + * config/rs6000/smmintrin.h (_mm_minpos_epu16): New. + +2021-08-03 H.J. Lu + + * config/i386/i386.c (ix86_gen_scratch_sse_rtx): In 64-bit mode, + try XMM31 to avoid vzeroupper. + +2021-08-03 Richard Sandiford + + * doc/invoke.texi: Document -mtune=neoverse-512tvb and + -mcpu=neoverse-512tvb. + * config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry. + * config/aarch64/aarch64-tune.md: Regenerate. + * config/aarch64/aarch64.c (neoverse512tvb_sve_vector_cost) + (neoverse512tvb_sve_issue_info, neoverse512tvb_vec_issue_info) + (neoverse512tvb_vector_cost, neoverse512tvb_tunings): New structures. + (aarch64_adjust_body_cost_sve): Handle -mtune=neoverse-512tvb. + (aarch64_adjust_body_cost): Likewise. + +2021-08-03 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Only + record issue information for operations that occur in the + innermost loop. + +2021-08-03 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_multiply_add_p): Add a vec_flags + parameter. Detect cases in which an Advanced SIMD MLA would almost + certainly require a MOV. + (aarch64_count_ops): Update accordingly. + +2021-08-03 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction): New + function, split out from... + (aarch64_detect_vector_stmt_subtype): ...here. + (aarch64_add_stmt_cost): Treat extracting element 0 as free. + +2021-08-03 Richard Sandiford + + * config/aarch64/aarch64-protos.h (sve_vec_cost): + Add gather_load_x32_cost and gather_load_x64_cost. + * config/aarch64/aarch64.c (generic_sve_vector_cost) + (a64fx_sve_vector_cost, neoversev1_sve_vector_cost): Update + accordingly, using the values given by the scalar_load * number + of elements calculation that we used previously. + (aarch64_detect_vector_stmt_subtype): Use the new fields. + +2021-08-03 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_adjust_body_cost_sve): New + function, split out from... + (aarch64_adjust_body_cost): ...here. + +2021-08-03 Richard Sandiford + + * config/aarch64/fractional-cost.h: New file. + * config/aarch64/aarch64.c: Include (indirectly) + and cost_fraction.h. + (vec_cost_fraction): New typedef. + (aarch64_detect_scalar_stmt_subtype): Use it for statement costs. + (aarch64_detect_vector_stmt_subtype): Likewise. + (aarch64_sve_adjust_stmt_cost, aarch64_adjust_stmt_cost): Likewise. + (aarch64_estimate_min_cycles_per_iter): Use vec_cost_fraction + for cycle counts. + (aarch64_adjust_body_cost): Likewise. + (aarch64_test_cost_fraction): New function. + (aarch64_run_selftests): Call it. + +2021-08-03 Richard Sandiford + + * config/aarch64/aarch64-protos.h (tune_params::sve_width): Turn + into a bitmask. + * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Update + accordingly. + (aarch64_estimated_poly_value): Likewise. Use the least significant + set bit for the minimum and likely values. Use the most significant + set bit for the maximum value. + +2021-08-03 liuhongt + + * config/i386/sse.md (cond_): New expander. + (cond_mul): Ditto. + +2021-08-03 Kewen Lin + + * tree-cfg.c (move_sese_region_to_fn): Fix typos on dloop. + +2021-08-03 liuhongt + + * config/i386/sse.md (cond_):New expander. + (cond_mul): Ditto. + (cond_div): Ditto. + +2021-08-02 H.J. Lu + + * config/i386/i386.c (ix86_finalize_stack_frame_flags): Also + check stack_realign_needed for stack realignment. + (ix86_legitimate_constant_p): Always allow CONST_WIDE_INT smaller + than the largest integer supported by vector register. + * config/i386/i386.h (MAX_MOVE_MAX): New. Set to 64. + (MOVE_MAX): Set to bytes of the largest integer supported by + vector register. + (STORE_MAX_PIECES): New. + +2021-08-02 H.J. Lu + + * config/i386/i386-expand.c (ix86_expand_vector_move): Call + ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy + data from one memory location to another. + +2021-08-02 H.J. Lu + + PR middle-end/90773 + * config/i386/i386.c (TARGET_GEN_MEMSET_SCRATCH_RTX): New. + +2021-08-02 Aldy Hernandez + + PR tree-optimization/101724 + * params.opt: Remove --param=threader-iterative. + * tree-ssa-threadbackward.c (pass_thread_jumps::execute): Remove + iterative mode. + +2021-08-02 Tom de Vries + + PR middle-end/101665 + * doc/extend.texi (nonnull attribute): Improve documentation. + +2021-08-02 Andrew Pinski + + PR rtl-optimization/101683 + * rtlanal.c (may_trap_p_1): Handle UNSIGNED_FIX. + +2021-08-02 Roger Sayle + + * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern): + Renamed from cond_removal_in_popcount_clz_ctz_pattern. + Add support for BSWAP, FFS, PARITY and CLRSB builtins. + (tree_ssa_phiop_worker): Update call to function above. + +2021-08-01 H.J. Lu + + PR target/78103 + * config/i386/i386.md (bsr_rex64_1_zext): New. + (combine splitter for constant - clzll): Replace gen_bsr_rex64_1 + with gen_bsr_rex64_1_zext. + +2021-07-31 Jakub Jelinek + + PR target/78103 + * config/i386/i386.md (bsr_rex64_1, bsr_1, bsr_zext_1): New + define_insn patterns. + (*bsr_rex64_2, *bsr_2): New define_insn_and_split patterns. + Add combine splitters for constant - clz. + (clz2): Use a temporary pseudo for bsr result. + +2021-07-30 Paul A. Clarke + + * config/rs6000/smmintrin.h (_mm_floor_pd, _mm_floor_ps, + _mm_floor_sd, _mm_floor_ss): New. + +2021-07-30 Paul A. Clarke + + * config/rs6000/smmintrin.h (_mm_ceil_pd, _mm_ceil_ps, + _mm_ceil_sd, _mm_ceil_ss): New. + +2021-07-30 Paul A. Clarke + + * config/rs6000/smmintrin.h (_mm_blend_pd, _mm_blendv_pd, + _mm_blend_ps, _mm_blendv_ps): New. + +2021-07-30 Roger Sayle + Uroš Bizjak + + * config/i386/i386.md (*dec_cmov): New define_insn_and_split + to generate a conditional move using the carry flag after sub $1. + (peephole2): Eliminate a register-to-register move by inverting + the condition of a conditional move. + +2021-07-30 Hans-Peter Nilsson + + * config/mmix/mmix.md ("call", "call_value", "*call_real") + ("*call_value_real"): Don't generate rtx mentioning the generic + operands 1 and 2 to "call", and similarly for "call_value". + * config/mmix/mmix.c (mmix_print_operand_punct_valid_p) + (mmix_print_operand): Use '!' instead of 'p'. + +2021-07-30 Hans-Peter Nilsson + + * doc/md.texi (call): Correct information about operand 2. + * config/mmix/mmix.md ("call", "call_value"): Remove fixed FIXMEs. + +2021-07-30 Andrew MacLeod + + * range-op.cc (operator_trunc_mod::wi_fold): Fold constants. + +2021-07-30 Andrew MacLeod + + * range-op.cc (operator_div::wi_fold): Return UNDEFINED for [0, 0] divisor. + +2021-07-30 Andrew MacLeod + + * gimple-range-cache.cc (*::set_bb_range): Change const basic_block to + const_basic_block.. + (*::get_bb_range): Ditto. + (*::bb_range_p): Ditto. + * gimple-range-cache.h: Change prototypes. + +2021-07-30 H.J. Lu + + PR middle-end/90773 + * builtins.c (builtin_memcpy_read_str): Change the mode argument + from scalar_int_mode to fixed_size_mode. + (builtin_strncpy_read_str): Likewise. + (gen_memset_value_from_prev): New function. + (builtin_memset_read_str): Change the mode argument from + scalar_int_mode to fixed_size_mode. Use gen_memset_value_from_prev + and support CONST_VECTOR. + (builtin_memset_gen_str): Likewise. + (try_store_by_multiple_pieces): Use by_pieces_constfn to declare + constfun. + * builtins.h (builtin_strncpy_read_str): Replace scalar_int_mode + with fixed_size_mode. + (builtin_memset_read_str): Likewise. + * expr.c (widest_int_mode_for_size): Renamed to ... + (widest_fixed_size_mode_for_size): Add a bool argument to + indicate if QI vector mode can be used. + (by_pieces_ninsns): Call widest_fixed_size_mode_for_size + instead of widest_int_mode_for_size. + (pieces_addr::adjust): Change the mode argument from + scalar_int_mode to fixed_size_mode. + (op_by_pieces_d): Make m_len read-only. Add a bool member, + m_qi_vector_mode, to indicate that QI vector mode can be used. + (op_by_pieces_d::op_by_pieces_d): Add a bool argument to + initialize m_qi_vector_mode. Call widest_fixed_size_mode_for_size + instead of widest_int_mode_for_size. + (op_by_pieces_d::get_usable_mode): Change the mode argument from + scalar_int_mode to fixed_size_mode. Call + widest_fixed_size_mode_for_size instead of + widest_int_mode_for_size. + (op_by_pieces_d::smallest_fixed_size_mode_for_size): New member + function to return the smallest integer or QI vector mode. + (op_by_pieces_d::run): Call widest_fixed_size_mode_for_size + instead of widest_int_mode_for_size. Call + smallest_fixed_size_mode_for_size instead of + smallest_int_mode_for_size. + (store_by_pieces_d::store_by_pieces_d): Add a bool argument to + indicate that QI vector mode can be used and pass it to + op_by_pieces_d::op_by_pieces_d. + (can_store_by_pieces): Call widest_fixed_size_mode_for_size + instead of widest_int_mode_for_size. Pass memsetp to + widest_fixed_size_mode_for_size to support QI vector mode. + Allow all CONST_VECTORs for memset if vec_duplicate is supported. + (store_by_pieces): Pass memsetp to + store_by_pieces_d::store_by_pieces_d. + (clear_by_pieces_1): Removed. + (clear_by_pieces): Replace clear_by_pieces_1 with + builtin_memset_read_str and pass true to store_by_pieces_d to + support vector mode broadcast. + (string_cst_read_str): Change the mode argument from + scalar_int_mode to fixed_size_mode. + * expr.h (by_pieces_constfn): Change scalar_int_mode to + fixed_size_mode. + (by_pieces_prev): Likewise. + * rtl.h (lowpart_subreg_regno): New. + * rtlanal.c (lowpart_subreg_regno): New. A wrapper around + simplify_subreg_regno. + * target.def (gen_memset_scratch_rtx): New hook. + * doc/tm.texi.in: Add TARGET_GEN_MEMSET_SCRATCH_RTX. + * doc/tm.texi: Regenerated. + +2021-07-30 Xi Ruoyao + + PR target/94780 + * config/mips/mips.c (mips_atomic_assign_expand_fenv): Use + TARGET_EXPR instead of MODIFY_EXPR. + +2021-07-30 Xi Ruoyao + + PR target/101132 + * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Declare. + * config/mips/mips.c (mips_expand_vec_cmp_expr): New function. + * config/mips/mips-msa.md (vec_cmp): New + expander. + (vec_cmpu): New expander. + +2021-07-30 H.J. Lu + + PR target/101685 + * config/i386/i386-options.c (ix86_option_override_internal): + Don't enable LZCNT/POPCNT if they have been disabled explicitly. + +2021-07-30 prathamesh.kulkarni + + PR target/66791 + * config/arm/arm_neon.h (vld1_p64): Replace call to builtin by + explicitly dereferencing __a. + (vld1_s64): Likewise. + (vld1_u64): Likewise. + * config/arm/arm_neon_builtins.def (vld1): Remove entry for di + and change to VAR13. + +2021-07-30 Aldy Hernandez + + * gimple-loop-versioning.cc (lv_dom_walker::lv_dom_walker): Remove + use of m_range_analyzer. + (loop_versioning::lv_dom_walker::before_dom_children): Same. + (loop_versioning::lv_dom_walker::after_dom_children): Remove. + (loop_versioning::prune_loop_conditions): Replace vr_values use + with range_query interface. + (pass_loop_versioning::execute): Use ranger. + +2021-07-30 Xi Ruoyao + + PR ipa/101396 + * ipa-devirt.c (ipa_odr_read_section): Compare the precision of + enum values, and emit a warning if they mismatch. + +2021-07-30 Kewen Lin + + * cfgloop.h (as_const): New function. + (class loop_iterator): Rename to ... + (class loops_list): ... this. + (loop_iterator::next): Rename to ... + (loops_list::Iter::fill_curr_loop): ... this and adjust. + (loop_iterator::loop_iterator): Rename to ... + (loops_list::loops_list): ... this and adjust. + (loops_list::Iter): New class. + (loops_list::iterator): New type. + (loops_list::const_iterator): New type. + (loops_list::begin): New function. + (loops_list::end): Likewise. + (loops_list::begin const): Likewise. + (loops_list::end const): Likewise. + (FOR_EACH_LOOP): Remove. + (FOR_EACH_LOOP_FN): Remove. + * cfgloop.c (flow_loops_dump): Adjust FOR_EACH_LOOP* with range-based + for loop with loops_list instance. + (sort_sibling_loops): Likewise. + (disambiguate_loops_with_multiple_latches): Likewise. + (verify_loop_structure): Likewise. + * cfgloopmanip.c (create_preheaders): Likewise. + (force_single_succ_latches): Likewise. + * config/aarch64/falkor-tag-collision-avoidance.c + (execute_tag_collision_avoidance): Likewise. + * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Likewise. + * config/s390/s390.c (s390_adjust_loops): Likewise. + * doc/loop.texi: Likewise. + * gimple-loop-interchange.cc (pass_linterchange::execute): Likewise. + * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise. + * gimple-loop-versioning.cc (loop_versioning::analyze_blocks): Likewise. + (loop_versioning::make_versioning_decisions): Likewise. + * gimple-ssa-split-paths.c (split_paths): Likewise. + * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Likewise. + * graphite.c (canonicalize_loop_form): Likewise. + (graphite_transform_loops): Likewise. + * ipa-fnsummary.c (analyze_function_body): Likewise. + * ipa-pure-const.c (analyze_function): Likewise. + * loop-doloop.c (doloop_optimize_loops): Likewise. + * loop-init.c (loop_optimizer_finalize): Likewise. + (fix_loop_structure): Likewise. + * loop-invariant.c (calculate_loop_reg_pressure): Likewise. + (move_loop_invariants): Likewise. + * loop-unroll.c (decide_unrolling): Likewise. + (unroll_loops): Likewise. + * modulo-sched.c (sms_schedule): Likewise. + * predict.c (predict_loops): Likewise. + (pass_profile::execute): Likewise. + * profile.c (branch_prob): Likewise. + * sel-sched-ir.c (sel_finish_pipelining): Likewise. + (sel_find_rgns): Likewise. + * tree-cfg.c (replace_loop_annotate): Likewise. + (replace_uses_by): Likewise. + (move_sese_region_to_fn): Likewise. + * tree-if-conv.c (pass_if_conversion::execute): Likewise. + * tree-loop-distribution.c (loop_distribution::execute): Likewise. + * tree-parloops.c (parallelize_loops): Likewise. + * tree-predcom.c (tree_predictive_commoning): Likewise. + * tree-scalar-evolution.c (scev_initialize): Likewise. + (scev_reset): Likewise. + * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise. + * tree-ssa-live.c (remove_unused_locals): Likewise. + * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise. + * tree-ssa-loop-im.c (analyze_memory_references): Likewise. + (tree_ssa_lim_initialize): Likewise. + * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise. + * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Likewise. + * tree-ssa-loop-manip.c (get_loops_exits): Likewise. + * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): Likewise. + (free_numbers_of_iterations_estimates): Likewise. + * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise. + * tree-ssa-loop-split.c (tree_ssa_split_loops): Likewise. + * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Likewise. + * tree-ssa-loop.c (gate_oacc_kernels): Likewise. + (pass_scev_cprop::execute): Likewise. + * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise. + * tree-ssa-sccvn.c (do_rpo_vn): Likewise. + * tree-ssa-threadupdate.c + (jump_thread_path_registry::thread_through_all_blocks): Likewise. + * tree-vectorizer.c (vectorize_loops): Likewise. + * tree-vrp.c (vrp_asserts::find_assert_locations): Likewise. + +2021-07-29 Hans-Peter Nilsson + + * config/mmix/mmix.c (mmix_function_arg_1): Avoid + generating a VOIDmode register for e.g the + function_arg_info::end_marker. + +2021-07-29 Jeff Law + + * config/h8300/h8300-modes.def: Add CCZ, CCV and CCC, drop CCZNV. + * config/h8300/h8300.md (H8cc mode iterator): Add CCZ. + (cc mode_attr): Similarly. + (ccz subst_attr): Similarly. + * config/h8300/jumpcall.md: Add new patterns for branch-on-bit. + * config/h8300/testcompare.md: Remove various cc0 based patterns + that had been commented out. Add pattern to set CCZ from a bit + test. + +2021-07-29 Thomas Schwinge + Julian Brown + Kwok Cheung Yeung + + * omp-offload.c (oacc_loop_xform_head_tail, oacc_loop_process): + 'update_stmt' after modification. + (pass_oacc_loop_designation): New function, extracted out of... + (pass_oacc_device_lower): ... this. + (pass_data_oacc_loop_designation, pass_oacc_loop_designation) + (make_pass_oacc_loop_designation): New + * passes.def: Add it. + * tree-parloops.c (create_parallel_loop): Adjust. + * tree-pass.h (make_pass_oacc_loop_designation): New. + +2021-07-29 Aldy Hernandez + + * flag-types.h (enum threader_mode): New. + * params.opt: Add entry for --param=threader-mode. + * tree-ssa-threadbackward.c (THREADER_ITERATIVE_MODE): New. + (class back_threader): New. + (back_threader::back_threader): New. + (back_threader::~back_threader): New. + (back_threader::maybe_register_path): New. + (back_threader::find_taken_edge): New. + (back_threader::find_taken_edge_switch): New. + (back_threader::find_taken_edge_cond): New. + (back_threader::resolve_def): New. + (back_threader::resolve_phi): New. + (back_threader::find_paths_to_names): New. + (back_threader::find_paths): New. + (dump_path): New. + (debug): New. + (thread_jumps::find_jump_threads_backwards): Call ranger threader. + (thread_jumps::find_jump_threads_backwards_with_ranger): New. + (pass_thread_jumps::execute): Abstract out code... + (try_thread_blocks): ...here. + * tree-ssa-threadedge.c (jump_threader::thread_outgoing_edges): + Abstract out threading candidate code to... + (single_succ_to_potentially_threadable_block): ...here. + * tree-ssa-threadedge.h (single_succ_to_potentially_threadable_block): + New. + * tree-ssa-threadupdate.c (register_jump_thread): Return boolean. + * tree-ssa-threadupdate.h (class jump_thread_path_registry): + Return bool from register_jump_thread. + +2021-07-29 Andreas Krebbel + + * target.def: in0 and in1 do not need to be registers. + * doc/tm.texi: Regenerate. + +2021-07-29 liuhongt + + PR target/39821 + * config/i386/i386.c (ix86_widen_mult_cost): New function. + (ix86_add_stmt_cost): Use ix86_widen_mult_cost for + WIDEN_MULT_EXPR. + +2021-07-29 Jiufu Guo + + PR target/61837 + * config/rs6000/rs6000.c (TARGET_PREFERRED_DOLOOP_MODE): New hook. + (rs6000_preferred_doloop_mode): New hook. + * doc/tm.texi: Regenerate. + * doc/tm.texi.in: Add hook preferred_doloop_mode. + * target.def (preferred_doloop_mode): New hook. + * targhooks.c (default_preferred_doloop_mode): New hook. + * targhooks.h (default_preferred_doloop_mode): New hook. + * tree-ssa-loop-ivopts.c (compute_doloop_base_on_mode): New function. + (add_iv_candidate_for_doloop): Call targetm.preferred_doloop_mode + and compute_doloop_base_on_mode. + +2021-07-28 Martin Sebor + + PR middle-end/101494 + * tree-ssa-uninit.c (maybe_warn_operand): Correct object offset + and size computation. + +2021-07-28 Martin Sebor + + PR middle-end/101601 + * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Remove + a pointless test. + Handle pointers to functions. + +2021-07-28 Martin Sebor + + * Makefile.in (OBJS): Add gimple-ssa-warn-access.o and pointer-query.o. + * attribs.h (fndecl_dealloc_argno): Move fndecl_dealloc_argno to tree.h. + * builtins.c (compute_objsize_r): Move to pointer-query.cc. + (access_ref::access_ref): Same. + (access_ref::phi): Same. + (access_ref::get_ref): Same. + (access_ref::size_remaining): Same. + (access_ref::offset_in_range): Same. + (access_ref::add_offset): Same. + (access_ref::inform_access): Same. + (ssa_name_limit_t::visit_phi): Same. + (ssa_name_limit_t::leave_phi): Same. + (ssa_name_limit_t::next): Same. + (ssa_name_limit_t::next_phi): Same. + (ssa_name_limit_t::~ssa_name_limit_t): Same. + (pointer_query::pointer_query): Same. + (pointer_query::get_ref): Same. + (pointer_query::put_ref): Same. + (pointer_query::flush_cache): Same. + (warn_string_no_nul): Move to gimple-ssa-warn-access.cc. + (check_nul_terminated_array): Same. + (unterminated_array): Same. + (maybe_warn_for_bound): Same. + (check_read_access): Same. + (warn_for_access): Same. + (get_size_range): Same. + (check_access): Same. + (gimple_call_alloc_size): Move to tree.c. + (gimple_parm_array_size): Move to pointer-query.cc. + (get_offset_range): Same. + (gimple_call_return_array): Same. + (handle_min_max_size): Same. + (handle_array_ref): Same. + (handle_mem_ref): Same. + (compute_objsize): Same. + (gimple_call_alloc_p): Move to gimple-ssa-warn-access.cc. + (call_dealloc_argno): Same. + (fndecl_dealloc_argno): Same. + (new_delete_mismatch_p): Same. + (matching_alloc_calls_p): Same. + (warn_dealloc_offset): Same. + (maybe_emit_free_warning): Same. + * builtins.h (check_nul_terminated_array): Move to + gimple-ssa-warn-access.h. + (check_nul_terminated_array): Same. + (warn_string_no_nul): Same. + (unterminated_array): Same. + (class ssa_name_limit_t): Same. + (class pointer_query): Same. + (struct access_ref): Same. + (class range_query): Same. + (struct access_data): Same. + (gimple_call_alloc_size): Same. + (gimple_parm_array_size): Same. + (compute_objsize): Same. + (class access_data): Same. + (maybe_emit_free_warning): Same. + * calls.c (initialize_argument_information): Remove call to + maybe_emit_free_warning. + * gimple-array-bounds.cc: Include new header.. + * gimple-fold.c: Same. + * gimple-ssa-sprintf.c: Same. + * gimple-ssa-warn-restrict.c: Same. + * passes.def: Add pass_warn_access. + * tree-pass.h (make_pass_warn_access): Declare. + * tree-ssa-strlen.c: Include new headers. + * tree.c (fndecl_dealloc_argno): Move here from builtins.c. + * tree.h (fndecl_dealloc_argno): Move here from attribs.h. + * gimple-ssa-warn-access.cc: New file. + * gimple-ssa-warn-access.h: New file. + * pointer-query.cc: New file. + * pointer-query.h: New file. + +2021-07-28 Jakub Jelinek + + PR middle-end/101624 + * ubsan.c (maybe_instrument_pointer_overflow, + instrument_object_size): Only test DECL_REGISTER on VAR_DECLs, + PARM_DECLs or RESULT_DECLs. + * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise. + +2021-07-28 Jakub Jelinek + + PR middle-end/101642 + * match.pd (bswap16 (x) == bswap16 (y)): Cast both operands + to type of bswap16 for comparison. + (bswap16 (x) == cst): Cast bswap16 operand to type of cst. + +2021-07-28 Richard Biener + + PR tree-optimization/101615 + * tree-vect-slp.c (vect_optimize_slp): Materialize permutes + at CTOR SLP graph entries. + +2021-07-28 Kyrylo Tkachov + + * config/aarch64/aarch64.md (*extend2_aarch64): + Add "r,w" alternative. + +2021-07-28 H.J. Lu + + PR target/101456 + * config/i386/i386.c (ix86_avx_u128_mode_needed): Don't set + AVX_U128_DIRTY when all bits are zero. + +2021-07-28 Richard Biener + + PR tree-optimization/101615 + * tree-vect-slp.c (vect_optimize_slp): Pre-existing vector + external nodes cannot be permuted so make them perm_out 0. + +2021-07-28 Andrew Stubbs + + PR target/100208 + * config.in: Regenerate. + * config/gcn/gcn-hsa.h (A_FIJI): New define. + (A_900): New define. + (A_906): New define. + (A_908): New define. + (ASM_SPEC): Use A_FIJI, A_900, A_906 and A_908. + * config/gcn/gcn.c (output_file_start): Adjust attributes according + to the assembler capabilities. + * config/gcn/mkoffload.c (main): Likewise. + * configure: Regenerate. + * configure.ac: Add tests for LLVM assembler attribute features. + +2021-07-28 Andrew MacLeod + + * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Check for + cond_false and cond_true on branches. + +2021-07-28 Bin Cheng + + * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): use + gcc_stablesort. + +2021-07-28 Bin Cheng + + * alias.c (init_alias_analysis): Don't skip prologue/epilogue. + +2021-07-28 Jakub Jelinek + + PR target/101611 + * config/i386/sse.md (vashr3): Split into vashrv8di3 expander + and vashrv4di3 expander, where the latter requires just TARGET_AVX2 + and has special !TARGET_AVX512VL expansion. + (vashrv2di3): Rename to ... + (vashrv2di3): ... this. Change condition to TARGET_XOP || TARGET_AVX2 + and add special !TARGET_XOP && !TARGET_AVX512VL expansion. + +2021-07-28 Martin Uecker + + * calls.c (maybe_warn_rdwr_sizes): Correct argument + numbers in warning that were switched. + +2021-07-28 Kewen Lin + + PR tree-optimization/101596 + * tree-vect-patterns.c (vect_recog_mulhs_pattern): Fix wrong check + by using new_type's precision instead. + +2021-07-28 liuhongt + + PR target/99881 + * config/i386/i386.h (processor_costs): Add new member + integer_to_sse. + * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost, + i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost, + geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost, + bdver_cost, znver1_cost, znver2_cost, znver3_cost, + btver1_cost, btver2_cost, btver3_cost, pentium4_cost, + nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost, + generic_cost, core_cost): Initialize integer_to_sse same value + as sse_op. + (skylake_cost): Initialize integer_to_sse twice as much as sse_op. + * config/i386/i386.c (ix86_builtin_vectorization_cost): + Use integer_to_sse instead of sse_op to calculate the cost of + vec_construct. + +2021-07-27 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (write_ovld_static_init): New + function. + (write_init_file): Call write_ovld_static_init. + +2021-07-27 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (write_bif_static_init): New + function. + (write_init_file): Call write_bif_static_init. + +2021-07-27 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (typemap): New struct. + (TYPE_MAP_SIZE): New macro. + (type_map): New initialized variable. + (typemap_cmp): New function. + (write_type_node): Likewise. + (write_fntype_init): Implement. + +2021-07-27 Martin Sebor + + PR tree-optimization/101584 + * tree-ssa-uninit.c (builtin_call_nomodifying_p): New function. + (check_defs): Call it. + +2021-07-27 Aldy Hernandez + + * tree-ssa-dom.c (dom_jump_threader_simplifier): + Put avail_exprs_stack in the class, instead of passing it to + jump_threader_simplifier. + (dom_jump_threader_simplifier::simplify): Add state argument. + (dom_opt_dom_walker): Add state. + (pass_dominator::execute): Pass state to threader. + (dom_opt_dom_walker::before_dom_children): Use state. + * tree-ssa-threadedge.c (jump_threader::jump_threader): Replace + arguments by state. + (jump_threader::record_temporary_equivalences_from_phis): + Register equivalences through the state variable. + (jump_threader::record_temporary_equivalences_from_stmts_at_dest): + Record ranges in a statement through the state variable. + (jump_threader::simplify_control_stmt_condition): Pass state to + simplify. + (jump_threader::simplify_control_stmt_condition_1): Same. + (jump_threader::thread_around_empty_blocks): Remove obsolete + comment. + (jump_threader::thread_through_normal_block): Record equivalences + on edge through the state variable. + (jump_threader::thread_across_edge): Abstract state pushing. + (jt_state::jt_state): New. + (jt_state::push): New. + (jt_state::pop): New. + (jt_state::register_equiv): New. + (jt_state::record_ranges_from_stmt): New. + (jt_state::register_equivs_on_edge): New. + (jump_threader_simplifier::jump_threader_simplifier): Move from + header. + (jump_threader_simplifier::simplify): Add state argument. + * tree-ssa-threadedge.h (class jt_state): New. + (class jump_threader): Add state to constructor. + (class jump_threader_simplifier): Add state to simplify. Remove + avail_exprs_stack from class. + * tree-vrp.c (vrp_jump_threader_simplifier::simplify): Add state + argument. + (vrp_jump_threader::vrp_jump_threader): Add state. + (vrp_jump_threader::~vrp_jump_threader): Cleanup state. + +2021-07-27 Aldy Hernandez + + * Makefile.in (OBJS): Add gimple-range-path.o. + * gimple-range-path.cc: New file. + * gimple-range-path.h: New file. + +2021-07-27 Jonathan Wright + + * config/aarch64/aarch64-simd.md: Push sign/zero-extension + inside vec_duplicate for all patterns. + * simplify-rtx.c (simplify_context::simplify_unary_operation_1): + Push sign/zero-extension inside vec_duplicate. + +2021-07-27 Richard Biener + + PR tree-optimization/101573 + * tree-ssa-uninit.c (warn_uninit_phi_uses): New function + looking at uninitialized PHI arg defs in some constrained cases. + (warn_uninitialized_vars): Call it. + (execute_early_warn_uninitialized): Calculate dominators. + +2021-07-27 Richard Biener + + PR tree-optimization/39821 + * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Use + vector_stmt for widening arithmetic. + (vectorizable_conversion): Adjust. + +2021-07-27 Martin Jambor + + * cgraph.h (ipa_replace_map): New field force_load_ref. + * ipa-prop.h (ipa_param_descriptor): Reduce precision of move_cost, + aded new flag load_dereferenced, adjusted comments. + (ipa_get_param_dereferenced): New function. + (ipa_set_param_dereferenced): Likewise. + * cgraphclones.c (cgraph_node::create_virtual_clone): Follow it. + * ipa-cp.c: Include gimple.h. + (ipcp_discover_new_direct_edges): Take into account dereferenced flag. + (get_replacement_map): New parameter force_load_ref, set the + appropriate flag in ipa_replace_map if set. + (struct symbol_and_index_together): New type. + (adjust_refs_in_act_callers): New function. + (adjust_references_in_caller): Likewise. + (create_specialized_node): When appropriate, call + adjust_references_in_caller and force only load references. + * ipa-prop.c (load_from_dereferenced_name): New function. + (ipa_analyze_controlled_uses): Also detect loads from a + dereference, harden testing of call statements. + (ipa_write_node_info): Stream the dereferenced flag. + (ipa_read_node_info): Likewise. + (ipa_set_jf_constant): Also create refdesc when jump function + references a variable. + (cgraph_node_for_jfunc): Rename to symtab_node_for_jfunc, work + also on references of variables and return a symtab_node. Adjust + all callers. + (propagate_controlled_uses): Also remove references to VAR_DECLs. + +2021-07-27 Jakub Jelinek + + PR middle-end/101586 + * gimple-fold.c (clear_padding_type): Ignore FIELD_DECLs with byte + positions above or equal to sz except for diagnostics of flexible + array members. + +2021-07-26 Andrew MacLeod + + PR tree-optimization/78888 + * gimple-range-fold.cc (get_letter_range): New. + (fold_using_range::range_of_builtin_call): Call get_letter_range. + +2021-07-26 Andrew MacLeod + + PR tree-optimization/78888 + * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Add cases + for CFN_BUILT_IN_TOUPPER and CFN_BUILT_IN_TOLOWER. + +2021-07-26 Roger Sayle + Marc Glisse + + * match.pd (rotate): Simplify equality/inequality of rotations. + (bswap): Simplify equality/inequality tests of byte swapping. + +2021-07-26 Aldy Hernandez + + * range-op.cc (operator_bitwise_xor::op1_op2_relation_effect): + New. + +2021-07-26 Aldy Hernandez + + * range-op.cc (operator_lshift::fold_range): Pass rel to + base class fold_range. + (operator_rshift::fold_range): Same. + +2021-07-26 Ashimida + + PR driver/101447 + * toplev.h (min_align_loops_log): Remove declaration. + (min_align_jumps_log, min_align_labels_log): Likewise. + (min_align_functions_log): Likewise. + +2021-07-26 Aldy Hernandez + + * tree-vrp.c (vrp_simplify_cond_using_ranges): Rename vr_values + with range_query. + (execute_vrp): Abstract out simplification of conditionals... + (simplify_casted_conds): ...here. + +2021-07-26 Aldy Hernandez + + * gimple-array-bounds.cc (array_bounds_checker::get_value_range): + Add gimple argument. + (array_bounds_checker::check_array_ref): Same. + (array_bounds_checker::check_addr_expr): Same. + (array_bounds_checker::check_array_bounds): Pass statement to + check_array_bounds and check_addr_expr. + * gimple-array-bounds.h (check_array_bounds): Add gimple argument. + (check_addr_expr): Same. + (get_value_range): Same. + +2021-07-26 Tamar Christina + + * config/aarch64/aarch64-simd-builtins.def (sdot, udot): Rename to.. + (sdot_prod, udot_prod): ... This. + * config/aarch64/aarch64-simd.md (aarch64_dot): Merged + into... + (dot_prod): ... this. + (aarch64_dot_lane, aarch64_dot_laneq): + Change operands order. + (sadv16qi): Use new operands order. + * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, + vdotq_s32): Use new RTL ordering. + +2021-07-26 Tamar Christina + + * config/aarch64/aarch64-builtins.c (TYPES_TERNOP_SUSS, + aarch64_types_ternop_suss_qualifiers): New. + * config/aarch64/aarch64-simd-builtins.def (usdot_prod): Use it. + * config/aarch64/aarch64-simd.md (usdot_prod): Re-organize RTL. + * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Use it. + +2021-07-23 Jakub Jelinek + + PR rtl-optimization/101562 + * expmed.c (store_integral_bit_field): Only use movstrict_optab + if the operand isn't paradoxical. + +2021-07-23 Aldy Hernandez + + * gimple-array-bounds.h (class array_bounds_checker): Change + ranges type to range_query. + +2021-07-23 Jonathan Wright + + * config/aarch64/arm_neon.h (vst1_s64_x2): Use + __builtin_memcpy instead of constructing + __builtin_aarch64_simd_oi one vector at a time. + (vst1_u64_x2): Likewise. + (vst1_f64_x2): Likewise. + (vst1_s8_x2): Likewise. + (vst1_p8_x2): Likewise. + (vst1_s16_x2): Likewise. + (vst1_p16_x2): Likewise. + (vst1_s32_x2): Likewise. + (vst1_u8_x2): Likewise. + (vst1_u16_x2): Likewise. + (vst1_u32_x2): Likewise. + (vst1_f16_x2): Likewise. + (vst1_f32_x2): Likewise. + (vst1_p64_x2): Likewise. + (vst1q_s8_x2): Likewise. + (vst1q_p8_x2): Likewise. + (vst1q_s16_x2): Likewise. + (vst1q_p16_x2): Likewise. + (vst1q_s32_x2): Likewise. + (vst1q_s64_x2): Likewise. + (vst1q_u8_x2): Likewise. + (vst1q_u16_x2): Likewise. + (vst1q_u32_x2): Likewise. + (vst1q_u64_x2): Likewise. + (vst1q_f16_x2): Likewise. + (vst1q_f32_x2): Likewise. + (vst1q_f64_x2): Likewise. + (vst1q_p64_x2): Likewise. + +2021-07-23 Jonathan Wright + + * config/aarch64/arm_neon.h (vst1_s64_x3): Use + __builtin_memcpy instead of constructing + __builtin_aarch64_simd_ci one vector at a time. + (vst1_u64_x3): Likewise. + (vst1_f64_x3): Likewise. + (vst1_s8_x3): Likewise. + (vst1_p8_x3): Likewise. + (vst1_s16_x3): Likewise. + (vst1_p16_x3): Likewise. + (vst1_s32_x3): Likewise. + (vst1_u8_x3): Likewise. + (vst1_u16_x3): Likewise. + (vst1_u32_x3): Likewise. + (vst1_f16_x3): Likewise. + (vst1_f32_x3): Likewise. + (vst1_p64_x3): Likewise. + (vst1q_s8_x3): Likewise. + (vst1q_p8_x3): Likewise. + (vst1q_s16_x3): Likewise. + (vst1q_p16_x3): Likewise. + (vst1q_s32_x3): Likewise. + (vst1q_s64_x3): Likewise. + (vst1q_u8_x3): Likewise. + (vst1q_u16_x3): Likewise. + (vst1q_u32_x3): Likewise. + (vst1q_u64_x3): Likewise. + (vst1q_f16_x3): Likewise. + (vst1q_f32_x3): Likewise. + (vst1q_f64_x3): Likewise. + (vst1q_p64_x3): Likewise. + +2021-07-23 H.J. Lu + + PR target/101504 + * config/i386/i386.c (ix86_gen_scratch_sse_rtx): Don't return + hard register when LRA is in progress. + +2021-07-23 Jonathan Wright + + * config/aarch64/arm_neon.h (vst1_s8_x4): Use + __builtin_memcpy instead of using a union. + (vst1q_s8_x4): Likewise. + (vst1_s16_x4): Likewise. + (vst1q_s16_x4): Likewise. + (vst1_s32_x4): Likewise. + (vst1q_s32_x4): Likewise. + (vst1_u8_x4): Likewise. + (vst1q_u8_x4): Likewise. + (vst1_u16_x4): Likewise. + (vst1q_u16_x4): Likewise. + (vst1_u32_x4): Likewise. + (vst1q_u32_x4): Likewise. + (vst1_f16_x4): Likewise. + (vst1q_f16_x4): Likewise. + (vst1_f32_x4): Likewise. + (vst1q_f32_x4): Likewise. + (vst1_p8_x4): Likewise. + (vst1q_p8_x4): Likewise. + (vst1_p16_x4): Likewise. + (vst1q_p16_x4): Likewise. + (vst1_s64_x4): Likewise. + (vst1_u64_x4): Likewise. + (vst1_p64_x4): Likewise. + (vst1q_s64_x4): Likewise. + (vst1q_u64_x4): Likewise. + (vst1q_p64_x4): Likewise. + (vst1_f64_x4): Likewise. + (vst1q_f64_x4): Likewise. + +2021-07-23 Jonathan Wrightt + + * config/aarch64/arm_neon.h (vst2_s64): Use __builtin_memcpy + instead of constructing __builtin_aarch64_simd_oi one vector + at a time. + (vst2_u64): Likewise. + (vst2_f64): Likewise. + (vst2_s8): Likewise. + (vst2_p8): Likewise. + (vst2_s16): Likewise. + (vst2_p16): Likewise. + (vst2_s32): Likewise. + (vst2_u8): Likewise. + (vst2_u16): Likewise. + (vst2_u32): Likewise. + (vst2_f16): Likewise. + (vst2_f32): Likewise. + (vst2_p64): Likewise. + (vst2q_s8): Likewise. + (vst2q_p8): Likewise. + (vst2q_s16): Likewise. + (vst2q_p16): Likewise. + (vst2q_s32): Likewise. + (vst2q_s64): Likewise. + (vst2q_u8): Likewise. + (vst2q_u16): Likewise. + (vst2q_u32): Likewise. + (vst2q_u64): Likewise. + (vst2q_f16): Likewise. + (vst2q_f32): Likewise. + (vst2q_f64): Likewise. + (vst2q_p64): Likewise. + +2021-07-23 Jonathan Wright + + * config/aarch64/arm_neon.h (vst3_s64): Use __builtin_memcpy + instead of constructing __builtin_aarch64_simd_ci one vector + at a time. + (vst3_u64): Likewise. + (vst3_f64): Likewise. + (vst3_s8): Likewise. + (vst3_p8): Likewise. + (vst3_s16): Likewise. + (vst3_p16): Likewise. + (vst3_s32): Likewise. + (vst3_u8): Likewise. + (vst3_u16): Likewise. + (vst3_u32): Likewise. + (vst3_f16): Likewise. + (vst3_f32): Likewise. + (vst3_p64): Likewise. + (vst3q_s8): Likewise. + (vst3q_p8): Likewise. + (vst3q_s16): Likewise. + (vst3q_p16): Likewise. + (vst3q_s32): Likewise. + (vst3q_s64): Likewise. + (vst3q_u8): Likewise. + (vst3q_u16): Likewise. + (vst3q_u32): Likewise. + (vst3q_u64): Likewise. + (vst3q_f16): Likewise. + (vst3q_f32): Likewise. + (vst3q_f64): Likewise. + (vst3q_p64): Likewise. + +2021-07-23 Jonathan Wright + + * config/aarch64/arm_neon.h (vst4_s64): Use __builtin_memcpy + instead of constructing __builtin_aarch64_simd_xi one vector + at a time. + (vst4_u64): Likewise. + (vst4_f64): Likewise. + (vst4_s8): Likewise. + (vst4_p8): Likewise. + (vst4_s16): Likewise. + (vst4_p16): Likewise. + (vst4_s32): Likewise. + (vst4_u8): Likewise. + (vst4_u16): Likewise. + (vst4_u32): Likewise. + (vst4_f16): Likewise. + (vst4_f32): Likewise. + (vst4_p64): Likewise. + (vst4q_s8): Likewise. + (vst4q_p8): Likewise. + (vst4q_s16): Likewise. + (vst4q_p16): Likewise. + (vst4q_s32): Likewise. + (vst4q_s64): Likewise. + (vst4q_u8): Likewise. + (vst4q_u16): Likewise. + (vst4q_u32): Likewise. + (vst4q_u64): Likewise. + (vst4q_f16): Likewise. + (vst4q_f32): Likewise. + (vst4q_f64): Likewise. + (vst4q_p64): Likewise. + +2021-07-23 Jonathan Wright + + * config/aarch64/arm_neon.h (vtbx4_s8): Use __builtin_memcpy + instead of constructing __builtin_aarch64_simd_oi one vector + at a time. + (vtbx4_u8): Likewise. + (vtbx4_p8): Likewise. + +2021-07-23 Jonathan Wright + + * config/aarch64/arm_neon.h (vtbl3_s8): Use __builtin_memcpy + instead of constructing __builtin_aarch64_simd_oi one vector + at a time. + (vtbl3_u8): Likewise. + (vtbl3_p8): Likewise. + (vtbl4_s8): Likewise. + (vtbl4_u8): Likewise. + (vtbl4_p8): Likewise. + +2021-07-23 Jonathan Wright + + * config/aarch64/arm_neon.h (vqtbx2_s8): Use __builtin_memcpy + instead of constructing __builtin_aarch64_simd_oi one vector + at a time. + (vqtbx2_u8): Likewise. + (vqtbx2_p8): Likewise. + (vqtbx2q_s8): Likewise. + (vqtbx2q_u8): Likewise. + (vqtbx2q_p8): Likewise. + (vqtbx3_s8): Use __builtin_memcpy instead of constructing + __builtin_aarch64_simd_ci one vector at a time. + (vqtbx3_u8): Likewise. + (vqtbx3_p8): Likewise. + (vqtbx3q_s8): Likewise. + (vqtbx3q_u8): Likewise. + (vqtbx3q_p8): Likewise. + (vqtbx4_s8): Use __builtin_memcpy instead of constructing + __builtin_aarch64_simd_xi one vector at a time. + (vqtbx4_u8): Likewise. + (vqtbx4_p8): Likewise. + (vqtbx4q_s8): Likewise. + (vqtbx4q_u8): Likewise. + (vqtbx4q_p8): Likewise. + +2021-07-23 Jonathan Wright + + * config/aarch64/arm_neon.h (vqtbl2_s8): Use __builtin_memcpy + instead of constructing __builtin_aarch64_simd_oi one vector + at a time. + (vqtbl2_u8): Likewise. + (vqtbl2_p8): Likewise. + (vqtbl2q_s8): Likewise. + (vqtbl2q_u8): Likewise. + (vqtbl2q_p8): Likewise. + (vqtbl3_s8): Use __builtin_memcpy instead of constructing + __builtin_aarch64_simd_ci one vector at a time. + (vqtbl3_u8): Likewise. + (vqtbl3_p8): Likewise. + (vqtbl3q_s8): Likewise. + (vqtbl3q_u8): Likewise. + (vqtbl3q_p8): Likewise. + (vqtbl4_s8): Use __builtin_memcpy instead of constructing + __builtin_aarch64_simd_xi one vector at a time. + (vqtbl4_u8): Likewise. + (vqtbl4_p8): Likewise. + (vqtbl4q_s8): Likewise. + (vqtbl4q_u8): Likewise. + (vqtbl4q_p8): Likewise. + +2021-07-23 Haochen Gui + + PR target/100952 + * config/rs6000/rs6000.md (cstore4): Fix wrong fall through. + +2021-07-22 Andrew Pinski + + PR tree-optimization/10153 + * tree-tailcall.c (create_tailcall_accumulator): + Don't call fold_convert as the type should be correct already. + (tree_optimize_tail_calls_1): Use build_{one,zero}_cst instead + of integer_{one,zero}_node for the call of create_tailcall_accumulator. + +2021-07-22 Aldy Hernandez + + * gimple-range-cache.cc (non_null_ref::adjust_range): Replace + varying_p check for null/non-null check. + +2021-07-22 Andrew MacLeod + + PR tree-optimization/101511 + * value-relation.cc (relation_oracle::query_relation): Check if ssa1 + is in ssa2's equiv set, and don't trap if so. + +2021-07-22 Andrew MacLeod + + PR tree-optimization/101497 + * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Check + for undefined. + +2021-07-22 Andrew MacLeod + + PR tree-optimization/101496 + * vr-values.c (simplify_using_ranges::fold_cond): Call range_of_stmt + first, then vrp_visit_cond_Stmt. + +2021-07-22 liuhongt + + * config/i386/i386-expand.c + (ix86_broadcast_from_integer_constant): Rename to .. + (ix86_broadcast_from_constant): .. this, and extend it to + handle float mode. + (ix86_expand_vector_move): Extend to float mode. + * config/i386/i386-features.c + (replace_constant_pool_with_broadcast): Remove. + (remove_partial_avx_dependency_gate): Ditto. + (constant_pool_broadcast): Ditto. + (class pass_constant_pool_broadcast): Ditto. + (make_pass_constant_pool_broadcast): Ditto. + (remove_partial_avx_dependency): Adjust gate. + * config/i386/i386-passes.def: Remove pass_constant_pool_broadcast. + * config/i386/i386-protos.h + (make_pass_constant_pool_broadcast): Remove. + +2021-07-22 liuhongt + + * config/i386/constraints.md (Wb): New constraint. + (Ww): Ditto. + * config/i386/i386.md (*ashlhi3_1): Extend to avx512 mask + shift. + (*ashlqi3_1): Ditto. + (*3_1): Split to .. + (*ashr3_1): this, ... + (*lshr3_1): and this, also extend this pattern to avx512 + mask registers. + (*3_1): Split to .. + (*ashr3_1): this, ... + (*lshrqi3_1): and this, also extend this pattern to avx512 + mask registers. + (*lshrhi3_1): And this, also extend this pattern to avx512 + mask registers. + * config/i386/sse.md (k): New define_split after + it to convert generic shift pattern to mask shift ones. + +2021-07-21 Thomas Schwinge + Joseph Myers + Cesar Philippidis + + * tree-core.h (omp_clause_code): Add 'OMP_CLAUSE_NOHOST'. + * tree.c (omp_clause_num_ops, omp_clause_code_name, walk_tree_1): + Handle it. + * tree-pretty-print.c (dump_omp_clause): Likewise. + * omp-general.c (oacc_verify_routine_clauses): Likewise. + * gimplify.c (gimplify_scan_omp_clauses) + (gimplify_adjust_omp_clauses): Likewise. + * tree-nested.c (convert_nonlocal_omp_clauses) + (convert_local_omp_clauses): Likewise. + * omp-low.c (scan_sharing_clauses): Likewise. + * omp-offload.c (execute_oacc_device_lower): Update. + +2021-07-21 Martin Sebor + + * tree-ssa-alias.c (walk_aliased_vdefs_1): Fix typos in a comment. + +2021-07-21 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table): + Implement. + +2021-07-21 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (write_fntype): New + callback function. + (write_fntype_init): New stub function. + (write_init_bif_table): Likewise. + (write_init_ovld_table): New function. + (write_init_file): Implement. + +2021-07-21 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c + (write_autogenerated_header): New function. + (write_decls): Likewise. + (write_extern_fntype): New callback function. + (write_header_file): Implement. + +2021-07-21 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (write_defines_file): + Implement. + +2021-07-21 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New + function. + (complete_base_type): Likewise. + (construct_fntype_id): Likewise. + (parse_bif_entry): Call contruct_fntype_id. + (parse_ovld_entry): Likewise. + +2021-07-21 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct. + (MAXOVLDSTANZAS): New macro. + (ovld_stanzas): New variable. + (curr_ovld_stanza): Likewise. + (MAXOVLDS): New macro. + (ovlddata): New struct. + (ovlds): New variable. + (curr_ovld): Likewise. + (max_ovld_args): Likewise. + (parse_ovld_entry): New function. + (parse_ovld_stanza): Likewise. + (parse_ovld): Implement. + +2021-07-21 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs): + Implement. + +2021-07-21 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (parse_args): New function. + (parse_prototype): Implement. + +2021-07-21 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum. + (curr_bif_stanza): New variable. + (stanza_entry): New struct. + (stanza_map): New initialized variable. + (enable_string): Likewise. + (fnkinds): New enum. + (typelist): New struct. + (attrinfo): Likewise. + (MAXRESTROPNDS): New macro. + (prototype): New struct. + (MAXBIFS): New macro. + (bifdata): New struct. + (bifs): New variable. + (curr_bif): Likewise. + (bif_order): Likewise. + (bif_index): Likewise. + (fatal): New function. + (stanza_name_to_stanza): Likewise. + (parse_bif_attrs): New stub function. + (parse_prototype): Likewise. + (parse_bif_entry): New function. + (parse_bif_stanza): Likewise. + (parse_bif): Implement. + (set_bif_order): New function. + (create_bif_order): Implement. + +2021-07-21 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include. + (num_bifs): New variable. + (num_ovld_stanzas): Likewise. + (num_ovlds): Likewise. + (parse_codes): New enum. + (bif_rbt): New variable. + (ovld_rbt): Likewise. + (fntype_rbt): Likewise. + (bifo_rbt): Likewise. + (parse_bif): New stub function. + (create_bif_order): Likewise. + (parse_ovld): Likewise. + (write_header_file): Likewise. + (write_init_file): Likewise. + (write_defines_file): Likewise. + (delete_output_files): New function. + (main): Likewise. + +2021-07-21 H.J. Lu + + PR target/101549 + * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2 + from CRC32 _builtin functions. + +2021-07-21 Sebastian Huber + + * coverage.c (build_gcov_info_var_registration): Mark the object placed + in the linker set as referenced so that it does not get optimized away. + +2021-07-21 Kito Cheng + + Revert: + 2021-07-20 Kito Cheng + + * config.gcc (riscv*-*-*): Detect which python is available. + +2021-07-21 Jakub Jelinek + + PR middle-end/101535 + * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA + contexts in which decl isn't privatized and for ORT_TARGET return + false if decl is mapped. + +2021-07-21 Richard Sandiford + + * gimple-loop-jam.c: Include tree-ssa-sccvn.h. + (tree_loop_unroll_and_jam): Run value-numbering on a loop that + has been successfully unrolled. + +2021-07-21 Richard Sandiford + + * tree-ssa-loop-manip.c (determine_exit_conditions): Return a null + exit condition if no tail loop is needed, and if the original exit + condition should therefore be kept as-is. + (tree_transform_and_unroll_loop): Handle that case here too. + +2021-07-21 Kewen Lin + + * tree-data-ref.c (free_dependence_relations): Adjust to pass vec + by reference. + (free_data_refs): Likewise. + * tree-data-ref.h (free_dependence_relations): Likewise. + (free_data_refs): Likewise. + * tree-predcom.c (struct chain): Use auto_vec instead of vec for + members. + (struct component): Likewise. + (pcom_worker::pcom_worker): Adjust for auto_vec and renaming changes. + (pcom_worker::~pcom_worker): Likewise. + (pcom_worker::release_chain): Adjust as auto_vec changes. + (pcom_worker::loop): Rename to ... + (pcom_worker::m_loop): ... this. + (pcom_worker::datarefs): Rename to ... + (pcom_worker::m_datarefs): ... this. Use auto_vec instead of vec. + (pcom_worker::dependences): Rename to ... + (pcom_worker::m_dependences): ... this. Use auto_vec instead of vec. + (pcom_worker::chains): Rename to ... + (pcom_worker::m_chains): ... this. Use auto_vec instead of vec. + (pcom_worker::looparound_phis): Rename to ... + (pcom_worker::m_looparound_phis): ... this. Use auto_vec instead of + vec. + (pcom_worker::cache): Rename to ... + (pcom_worker::m_cache): ... this. Use auto_vec instead of vec. + (pcom_worker::release_chain): Adjust for auto_vec changes. + (pcom_worker::release_chains): Adjust for auto_vec and renaming + changes. + (release_component): Remove. + (release_components): Adjust for release_component removal. + (component_of): Adjust to use vec. + (merge_comps): Likewise. + (pcom_worker::aff_combination_dr_offset): Adjust for renaming changes. + (pcom_worker::determine_offset): Likewise. + (class comp_ptrs): Remove. + (pcom_worker::split_data_refs_to_components): Adjust for renaming + changes, for comp_ptrs removal with auto_vec. + (pcom_worker::suitable_component_p): Adjust for renaming changes. + (pcom_worker::filter_suitable_components): Adjust for release_component + removal. + (pcom_worker::valid_initializer_p): Adjust for renaming changes. + (pcom_worker::find_looparound_phi): Likewise. + (pcom_worker::add_looparound_copies): Likewise. + (pcom_worker::determine_roots_comp): Likewise. + (pcom_worker::single_nonlooparound_use): Likewise. + (pcom_worker::execute_pred_commoning_chain): Likewise. + (pcom_worker::execute_pred_commoning): Likewise. + (pcom_worker::try_combine_chains): Likewise. + (pcom_worker::prepare_initializers_chain): Likewise. + (pcom_worker::prepare_initializers): Likewise. + (pcom_worker::prepare_finalizers_chain): Likewise. + (pcom_worker::prepare_finalizers): Likewise. + (pcom_worker::tree_predictive_commoning_loop): Likewise. + +2021-07-20 Martin Sebor + + PR middle-end/101397 + * builtins.c (gimple_call_return_array): Add argument. Correct + offsets for memchr, mempcpy, stpcpy, and stpncpy. + (compute_objsize_r): Adjust offset computation for argument returning + built-ins. + +2021-07-20 Martin Sebor + + PR middle-end/101300 + * tree-ssa-uninit.c (check_defs): Handle UBSAN built-ins. + +2021-07-20 Jeff Law + + * function.c (assign_parm_setup_block): Use adjust_address instead + of change_address to preserve MEM_EXPR and friends. + +2021-07-20 Martin Sebor + + * cfgloop.h (single_likely_exit): Adjust by-value argument to + by-const-reference. + * cfgloopanal.c (single_likely_exit): Same. + * cgraph.h (struct cgraph_node): Same. + * cgraphclones.c (cgraph_node::create_virtual_clone): Same. + * genautomata.c (merge_states): Same. + * genextract.c (VEC_char_to_string): Same. + * genmatch.c (dt_node::gen_kids_1): Same. + (walk_captures): Adjust by-value argument to by-reference. + * gimple-ssa-store-merging.c (check_no_overlap): Adjust by-value argument + to by-const-reference. + * gimple.c (gimple_build_call_vec): Same. + (gimple_build_call_internal_vec): Same. + (gimple_build_switch): Same. + (sort_case_labels): Same. + (preprocess_case_label_vec_for_gimple): Adjust by-value argument to + by-reference. + * gimple.h (gimple_build_call_vec): Adjust by-value argument to + by-const-reference. + (gimple_build_call_internal_vec): Same. + (gimple_build_switch): Same. + (sort_case_labels): Same. + (preprocess_case_label_vec_for_gimple): Adjust by-value argument to + by-reference. + * haifa-sched.c (calc_priorities): Adjust by-value argument to + by-const-reference. + (sched_init_luids): Same. + (haifa_init_h_i_d): Same. + * ipa-cp.c (ipa_get_indirect_edge_target_1): Same. + (adjust_callers_for_value_intersection): Adjust by-value argument to + by-reference. + (find_more_scalar_values_for_callers_subset): Adjust by-value argument to + by-const-reference. + (find_more_contexts_for_caller_subset): Same. + (find_aggregate_values_for_callers_subset): Same. + (copy_useful_known_contexts): Same. + * ipa-fnsummary.c (remap_edge_summaries): Same. + (remap_freqcounting_predicate): Same. + * ipa-inline.c (add_new_edges_to_heap): Adjust by-value argument to + by-reference. + * ipa-predicate.c (predicate::remap_after_inlining): Adjust by-value argument + to by-const-reference. + * ipa-predicate.h (predicate::remap_after_inlining): Same. + * ipa-prop.c (ipa_find_agg_cst_for_param): Same. + * ipa-prop.h (ipa_find_agg_cst_for_param): Same. + * ira-build.c (ira_loop_tree_body_rev_postorder): Same. + * read-rtl.c (add_overload_instance): Same. + * rtl.h (native_decode_rtx): Same. + (native_decode_vector_rtx): Same. + * sched-int.h (sched_init_luids): Same. + (haifa_init_h_i_d): Same. + * simplify-rtx.c (native_decode_vector_rtx): Same. + (native_decode_rtx): Same. + * tree-call-cdce.c (gen_shrink_wrap_conditions): Same. + (shrink_wrap_one_built_in_call_with_conds): Same. + (shrink_wrap_conditional_dead_built_in_calls): Same. + * tree-data-ref.c (create_runtime_alias_checks): Same. + (compute_all_dependences): Same. + * tree-data-ref.h (compute_all_dependences): Same. + (create_runtime_alias_checks): Same. + (index_in_loop_nest): Same. + * tree-if-conv.c (mask_exists): Same. + * tree-loop-distribution.c (class loop_distribution): Same. + (loop_distribution::create_rdg_vertices): Same. + (dump_rdg_partitions): Same. + (debug_rdg_partitions): Same. + (partition_contains_all_rw): Same. + (loop_distribution::distribute_loop): Same. + * tree-parloops.c (oacc_entry_exit_ok_1): Same. + (oacc_entry_exit_single_gang): Same. + * tree-ssa-loop-im.c (hoist_memory_references): Same. + (loop_suitable_for_sm): Same. + * tree-ssa-loop-niter.c (bound_index): Same. + * tree-ssa-reassoc.c (update_ops): Same. + (swap_ops_for_binary_stmt): Same. + (rewrite_expr_tree): Same. + (rewrite_expr_tree_parallel): Same. + * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Same. + * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Same. + * tree-ssa-structalias.c (process_all_all_constraints): Same. + (make_constraints_to): Same. + (handle_lhs_call): Same. + (find_func_aliases_for_builtin_call): Same. + (sort_fieldstack): Same. + (check_for_overlaps): Same. + * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Same. + (vect_create_cond_for_unequal_addrs): Same. + (vect_create_cond_for_lower_bounds): Same. + (vect_create_cond_for_alias_checks): Same. + * tree-vect-slp-patterns.c (vect_validate_multiplication): Same. + * tree-vect-slp.c (vect_analyze_slp_instance): Same. + (vect_make_slp_decision): Same. + (vect_slp_bbs): Same. + (duplicate_and_interleave): Same. + (vect_transform_slp_perm_load): Same. + (vect_schedule_slp): Same. + * tree-vectorizer.h (vect_transform_slp_perm_load): Same. + (vect_schedule_slp): Same. + (duplicate_and_interleave): Same. + * tree.c (build_vector_from_ctor): Same. + (build_vector): Same. + (check_vector_cst): Same. + (check_vector_cst_duplicate): Same. + (check_vector_cst_fill): Same. + (check_vector_cst_stepped): Same. + * tree.h (build_vector_from_ctor): Same. + +2021-07-20 Jakub Jelinek + + PR target/101384 + * config/rs6000/rs6000-protos.h (easy_altivec_constant): Change return + type from bool to int. + * config/rs6000/rs6000.c (vspltis_constant): Fix up handling the + EASY_VECTOR_MSB case if either step or copies is not 1. + (vspltis_shifted): Fix comment typo. + (easy_altivec_constant): Change return type from bool to int, instead + of returning true return byte size of the element mode that should be + used to synthetize the constant. + * config/rs6000/predicates.md (easy_vector_constant_msb): Require + that vspltis_shifted is 0, handle the case where easy_altivec_constant + assumes using different vector mode from CONST_VECTOR's mode. + * config/rs6000/altivec.md (easy_vector_constant_msb splitter): Use + easy_altivec_constant to determine mode in which -1 >> -1 should be + performed, use rs6000_expand_vector_init instead of gen_vec_initv4sisi. + +2021-07-20 Richard Biener + + PR debug/101473 + * dwarf2out.h (dwarf_file_data): Add key member. + * dwarf2out.c (dwarf_file_hasher::equal): Compare key. + (dwarf_file_hasher::hash): Hash key. + (lookup_filename): Remap the filename and store it in the + filename member of dwarf_file_data when creating a new + dwarf_file_data. + (file_name_acquire): Do not remap the filename again. + (maybe_emit_file): Likewise. + +2021-07-20 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Use two variant + generators for all TBL/TBX intrinsics and rename to + consistent forms: qtbl[1234] or qtbx[1234]. + * config/aarch64/aarch64-simd.md (aarch64_tbl1): + Rename to... + (aarch64_qtbl1): This. + (aarch64_tbx1): Rename to... + (aarch64_qtbx1): This. + (aarch64_tbl2v16qi): Delete. + (aarch64_tbl3): Rename to... + (aarch64_qtbl2): This. + (aarch64_tbx4): Rename to... + (aarch64_qtbx2): This. + * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Use + renamed qtbl1 and qtbl2 RTL patterns. + * config/aarch64/arm_neon.h (vqtbl1_p8): Use renamed qtbl1 + RTL pattern. + (vqtbl1_s8): Likewise. + (vqtbl1_u8): Likewise. + (vqtbl1q_p8): Likewise. + (vqtbl1q_s8): Likewise. + (vqtbl1q_u8): Likewise. + (vqtbx1_s8): Use renamed qtbx1 RTL pattern. + (vqtbx1_u8): Likewise. + (vqtbx1_p8): Likewise. + (vqtbx1q_s8): Likewise. + (vqtbx1q_u8): Likewise. + (vqtbx1q_p8): Likewise. + (vtbl1_s8): Use renamed qtbl1 RTL pattern. + (vtbl1_u8): Likewise. + (vtbl1_p8): Likewise. + (vtbl2_s8): Likewise + (vtbl2_u8): Likewise. + (vtbl2_p8): Likewise. + (vtbl3_s8): Use renamed qtbl2 RTL pattern. + (vtbl3_u8): Likewise. + (vtbl3_p8): Likewise. + (vtbl4_s8): Likewise. + (vtbl4_u8): Likewise. + (vtbl4_p8): Likewise. + (vtbx2_s8): Use renamed qtbx2 RTL pattern. + (vtbx2_u8): Likewise. + (vtbx2_p8): Likewise. + (vqtbl2_s8): Use renamed qtbl2 RTL pattern. + (vqtbl2_u8): Likewise. + (vqtbl2_p8): Likewise. + (vqtbl2q_s8): Likewise. + (vqtbl2q_u8): Likewise. + (vqtbl2q_p8): Likewise. + (vqtbx2_s8): Use renamed qtbx2 RTL pattern. + (vqtbx2_u8): Likewise. + (vqtbx2_p8): Likewise. + (vqtbx2q_s8): Likewise. + (vqtbx2q_u8): Likewise. + (vqtbx2q_p8): Likewise. + (vtbx4_s8): Likewise. + (vtbx4_u8): Likewise. + (vtbx4_p8): Likewise. + +2021-07-20 Uroš Bizjak + + PR target/100182 + * config/i386/sync.md (define_peephole2 atomic_storedi_fpu): + Remove. + (define_peephole2 atomic_loaddi_fpu): Ditto. + +2021-07-20 Kito Cheng + + * config.gcc (riscv*-*-*): Detect which python is available. + +2021-07-20 Kewen Lin + + * config/rs6000/vsx.md (mulhs_): Rename to... + (smul3_highpart): ... this. + (mulhu_): Rename to... + (umul3_highpart): ... this. + * config/rs6000/rs6000-builtin.def (MULHS_V2DI, MULHS_V4SI, + MULHU_V2DI, MULHU_V4SI): Adjust. + +2021-07-20 Kewen Lin + + PR tree-optimization/100696 + * internal-fn.c (first_commutative_argument): Add info for IFN_MULH. + * internal-fn.def (IFN_MULH): New internal function. + * tree-vect-patterns.c (vect_recog_mulhs_pattern): Add support to + recog normal multiply highpart as IFN_MULH. + * config/i386/i386.c (ix86_add_stmt_cost): Adjust for combined + function CFN_MULH. + +2021-07-19 Indu Bhagat + + * config/elfos.h (CTF_DEBUGGING_INFO): New definition. + (BTF_DEBUGGING_INFO): Likewise. + * doc/tm.texi.in: Document the new macros. + * doc/tm.texi: Regenerated. + * toplev.c: Guard initialization of debug hooks. + +2021-07-19 Indu Bhagat + + * flags.h (ctf_debuginfo_p): New function declaration. + * opts.c (ctf_debuginfo_p): New function definition. + +2021-07-19 Andrew Stubbs + + PR target/100208 + * config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New. + (ASM_SPEC): Set -mattr for xnack and sram-ecc. + * config/gcn/gcn-opts.h (enum sram_ecc_type): New. + * config/gcn/gcn-valu.md: Add a warning comment. + * config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack. + (output_file_start): Add xnack and sram-ecc state to ".amdgcn_target". + * config/gcn/gcn.md: Add a warning comment. + * config/gcn/gcn.opt: Add -mxnack and -msram-ecc. + * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove + SRAM-ECC flag. + (EF_AMDGPU_XNACK): New. + (EF_AMDGPU_SRAM_ECC): New. + (elf_flags): New. + (copy_early_debug_info): Use elf_flags. + (main): Handle -mxnack and -msram-ecc options. + * doc/invoke.texi: Document -mxnack and -msram-ecc. + +2021-07-19 Andrew Pinski + + PR target/101205 + * config/aarch64/aarch64.md (csneg3_uxtw_insn): Rename to ... + (*cs3_uxtw_insn4): and extend to NEG_NOT. + +2021-07-19 Richard Biener + + PR tree-optimization/101505 + * tree-vect-patterns.c (vect_determine_precisions): Walk + PHIs also for loop vectorization. + +2021-07-19 Richard Biener + + * gimple.h (gimple_expr_type): Remove. + * doc/gimple.texi: Remove gimple_expr_type documentation. + +2021-07-19 Richard Biener + + * tree-ssa-sccvn.c (vn_reference_eq): Handle NULL vr->type. + (ao_ref_init_from_vn_reference): Likewise. + (fully_constant_reference): Likewise. + (vn_reference_lookup_call): Do not set vr->type to random + values. + * tree-ssa-pre.c (compute_avail): Do not try to PRE calls + without a value. + * tree-vect-generic.c (expand_vector_piecewise): Pass in + whether we expanded parallel. + (expand_vector_parallel): Adjust. + (expand_vector_addition): Likewise. + (expand_vector_comparison): Likewise. + (expand_vector_operation): Likewise. + (expand_vector_scalar_condition): Likewise. + (expand_vector_conversion): Likewise. + +2021-07-19 Richard Biener + + * tree-vrp.c (register_edge_assert_for_2): Use the + type from the LHS. + (vrp_folder::fold_predicate_in): Likewise. + * vr-values.c (gimple_assign_nonzero_p): Likewise. + (vr_values::extract_range_from_comparison): Likewise. + (vr_values::extract_range_from_ubsan_builtin): Use the + type of the first operand. + (vr_values::extract_range_basic): Push down type + computation, use the appropriate LHS. + (vr_values::extract_range_from_assignment): Use the + type of the LHS. + +2021-07-18 H.J. Lu + + PR target/101492 + * common/config/i386/i386-common.c (ix86_handle_option): For + -mgeneral-regs-only, enable the GPR only instructions which are + enabled implicitly by SSE ISAs unless they have been disabled + explicitly. + +2021-07-18 H.J. Lu + + PR target/101495 + * config/i386/i386.c (ix86_check_avx_upper_stores): Moved before + ix86_avx_u128_mode_needed. + (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY if callee + returns AVX register. + +2021-07-17 Jan Hubicka + + * tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED. + (handle_const_call): Liekise + (handle_pure_call): Liekise + +2021-07-17 Andrew MacLeod + + PR tree-optimization/96542 + * range-op.cc (range_operator::wi_fold_in_parts): New. + (range_operator::fold_range): Call wi_fold_in_parts. + (operator_lshift::wi_fold): Fix broken lshift by [0,0]. + * range-op.h (wi_fold_in_parts): Add prototype. + +2021-07-16 David Malcolm + + * doc/analyzer.texi: Add __analyzer_dump_state. + +2021-07-16 Bill Schmidt + + * config/rs6000/rbtree.c: New file. + * config/rs6000/rbtree.h: New file. + +2021-07-16 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (restriction): New enum. + (typeinfo): Add restr field. + (match_bracketed_pair): New function. + (match_const_restriction): Implement. + +2021-07-16 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement. + +2021-07-16 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (void_status): New enum. + (basetype): Likewise. + (typeinfo): Likewise. + (handle_pointer): New function. + (match_basetype): New stub function. + (match_const_restriction): Likewise. + (match_type): New function. + +2021-07-16 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New + function. + (advance_line): Likewise. + (safe_inc_pos): Likewise. + (match_identifier): Likewise. + (match_integer): Likewise. + (match_to_right_bracket): Likewise. + +2021-07-16 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c (bif_file): New variable. + (ovld_file): Likewise. + (header_file): Likewise. + (init_file): Likewise. + (defines_file): Likewise. + (pgm_path): Likewise. + (bif_path): Likewise. + (ovld_path): Likewise. + (header_path): Likewise. + (init_path): Likewise. + (defines_path): Likewise. + (LINELEN): New macro. + (linebuf): New variable. + (line): Likewise. + (pos): Likewise. + (diag): Likewise. + (bif_diag): New function. + (ovld_diag): Likewise. + +2021-07-16 Bill Schmidt + + * config/rs6000/rs6000-builtin-new.def: New. + * config/rs6000/rs6000-overload.def: New. + +2021-07-16 Bill Schmidt + + * config/rs6000/rs6000-gen-builtins.c: New. + +2021-07-16 Bill Schmidt + + * Makefile.in (EXTRA_GTYPE_DEPS): New variable. + (s-gtype): Depend on EXTRA_GTYPE_DEPS. + * gengtype-state.c (state_writer::write_state_file_list): Add a + parameter to the fileslist expression for the number of build + headers to scan. + (read_state_files_list): Detect build headers and strip the + initial "./" or ".\" from their names. + * gengtype.c (build_headers): New global variable. + (num_build_headers): Likewise. + (open_base_files): Emit #include for each build header. + (main): Detect and count build headers. + * gengtype.h (build_headers): New extern variable. + (num_build_headers): Likewise. + +2021-07-16 Richard Biener + + * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use + the type of the LHS. + (find_bswap_or_nop_1): Likewise. + (find_bswap_or_nop): Likewise. + * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust + prototype. + * tree-vect-data-refs.c (vect_get_smallest_scalar_type): + Remove unused parameters, pass in the scalar type. Fix + internal store function handling. + * tree-vect-stmts.c (vect_analyze_stmt): Remove assert. + (vect_get_vector_types_for_stmt): Move down check for + existing vector stmt after we've determined a scalar type. + Pass down the used scalar type to vect_get_smallest_scalar_type. + * tree-vect-generic.c (expand_vector_condition): Use + the type of the LHS. + (expand_vector_scalar_condition): Likewise. + (expand_vector_operations_1): Likewise. + * tree-vect-patterns.c (vect_widened_op_tree): Likewise. + (vect_recog_dot_prod_pattern): Likewise. + (vect_recog_sad_pattern): Likewise. + (vect_recog_widen_op_pattern): Likewise. + (vect_recog_widen_sum_pattern): Likewise. + (vect_recog_mixed_size_cond_pattern): Likewise. + +2021-07-16 Jan Hubicka + + * ipa-modref.c (struct escape_entry): Use eaf_fleags_t. + (dump_eaf_flags): Dump EAF_NOT_RETURNED + (eaf_flags_useful_p): Use eaf_fleags_t; handle const functions + and EAF_NOT_RETURNED. + (modref_summary::useful_p): Likewise. + (modref_summary_lto::useful_p): Likewise. + (struct) modref_summary_lto: Use eaf_fleags_t. + (deref_flags): Handle EAF_NOT_RETURNED. + (struct escape_point): Use min_flags. + (modref_lattice::init): Add EAF_NOT_RETURNED. + (merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions + (analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return; + handle call flags. + (analyze_parms): Also analyze const functions; update conition on + flags usefulness. + (modref_write): Update streaming. + (read_section): Update streaming. + (remap_arg_flags): Use eaf_flags_t. + (modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED. + * ipa-modref.h: (eaf_flags_t): New typedef. + (struct modref_summary): Use eaf_flags_t. + * tree-core.h (EAF_NOT_RETURNED): New constant. + +2021-07-16 Richard Biener + + * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use + the type of the LHS. + (gimple_assign_nonnegative_warnv_p): Likewise. + (gimple_call_nonnegative_warnv_p): Likewise. Return false + if the call has no LHS. + * gimple.c (gimple_could_trap_p_1): Use the type of the LHS. + * tree-eh.c (stmt_could_throw_1_p): Likewise. + * tree-inline.c (insert_init_stmt): Likewise. + * tree-ssa-loop-niter.c (get_val_for): Likewise. + * tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of + the def. + * tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a + gassign *. Use the type of the lhs. + (vn_nary_op_lookup_stmt): Adjust. + (vn_nary_op_insert_stmt): Likewise. + +2021-07-16 Ilya Leoshkevich + + * config/s390/predicates.md (bras_sym_operand): Accept all + functions in 64-bit mode, use UNSPEC_PLT31. + (larl_operand): Use UNSPEC_PLT31. + * config/s390/s390.c (s390_loadrelative_operand_p): Likewise. + (legitimize_pic_address): Likewise. + (s390_emit_tls_call_insn): Mark __tls_get_offset as function, + use UNSPEC_PLT31. + (s390_delegitimize_address): Use UNSPEC_PLT31. + (s390_output_addr_const_extra): Likewise. + (print_operand): Add @PLT to TLS calls, handle %K. + (s390_function_profiler): Mark __fentry__/_mcount as function, + use %K, use UNSPEC_PLT31. + (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K. + (s390_emit_call): Use UNSPEC_PLT31. + (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function. + * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT. + (*movdi_64): Use %K. + (reload_base_64): Likewise. + (*sibcall_brc): Likewise. + (*sibcall_brcl): Likewise. + (*sibcall_value_brc): Likewise. + (*sibcall_value_brcl): Likewise. + (*bras): Likewise. + (*brasl): Likewise. + (*bras_r): Likewise. + (*brasl_r): Likewise. + (*bras_tls): Likewise. + (*brasl_tls): Likewise. + (main_base_64): Likewise. + (reload_base_64): Likewise. + (@split_stack_call): Likewise. + +2021-07-16 Richard Biener + + PR tree-optimization/101467 + * tree-vect-stmts.c (vect_gen_while): Properly guard + make_temp_ssa_name usage. + +2021-07-16 Cooper Qu + + * config.gcc: Don't use forked print-sysroot-suffix.sh and + t-sysroot-suffix for C-SKY. + * config/csky/print-sysroot-suffix.sh: Delete. + * config/csky/t-csky-linux: Delete. + * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES + instead of CSKY_MULTILIB_DIRNAMES. + +2021-07-16 Richard Biener + + * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign + conversion issues with the partial reduction of the reused + vector accumulator. + +2021-07-16 Richard Biener + + * config/i386/i386-options.c (ix86_option_override_internal): Set + param_vect_partial_vector_usage to zero if not set. + +2021-07-15 Uroš Bizjak + + PR target/101346 + * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode. + (VALID_INT_MODE_P): Add SDmode and DDmode. + Add TDmode for TARGET_64BIT. + (VALID_DFP_MODE_P): Remove. + * config/i386/i386.c (ix86_hard_regno_mode_ok): + Do not use VALID_DFP_MODE_P. + +2021-07-15 Andrew MacLeod + + * gimple-range-fold.cc (adjust_pointer_diff_expr): Use + gimple_range_type. + (fold_using_range::fold_stmt): Ditto. + (fold_using_range::range_of_range_op): Ditto. + (fold_using_range::range_of_phi): Ditto. + (fold_using_range::range_of_call): Ditto. + (fold_using_range::range_of_builtin_ubsan_call): Ditto. + (fold_using_range::range_of_builtin_call): Ditto. + (fold_using_range::range_of_cond_expr): Ditto. + * gimple-range-fold.h (gimple_range_type): New. + +2021-07-15 Martin Sebor + + PR middle-end/97027 + * tree-ssa-strlen.c (handle_assign): New function. + (maybe_warn_overflow): Add argument. + (nonzero_bytes_for_type): New function. + (count_nonzero_bytes): Handle more tree types. Call + nonzero_bytes_for_tye. + (count_nonzero_bytes): Handle types. + (handle_store): Handle stores from function calls. + (strlen_check_and_optimize_call): Move code to handle_assign. Call + it for assignments from function calls. + +2021-07-15 David Malcolm + + PR analyzer/95006 + PR analyzer/94713 + PR analyzer/94714 + * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value. + +2021-07-15 David Malcolm + + * doc/invoke.texi (-fdump-analyzer-exploded-paths): New. + +2021-07-15 Martin Sebor + + PR c/101289 + PR c/97548 + * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME. + (operand_compare::verify_hash_value): Same. + * tree-core.h (OEP_DECL_NAME): New. + +2021-07-15 Martin Jambor + + * profile-count.h (profile_count::value): Change the return type to + uint64_t. + * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print + statement. + * tree-cfg.c (dump_function_to_file): Likewise. + +2021-07-15 Bill Schmidt + + PR target/101129 + * config/rs6000/rs6000-p8swap.c (has_part_mult): New. + (rs6000_analyze_swaps): Insns containing a subreg of a mult are + not swappable. + +2021-07-15 Richard Biener + + * tree-vectorizer.h (vect_gen_while): Match up with + vect_gen_while_not. + * tree-vect-stmts.c (vect_gen_while): Adjust API to that + of vect_gen_while_not. + (vect_gen_while_not): Adjust. + * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise. + +2021-07-15 Aldy Hernandez + + * gimple-range-cache.cc (non_null_ref::adjust_range): New. + (ranger_cache::range_of_def): Call adjust_range. + (ranger_cache::entry_range): Same. + * gimple-range-cache.h (non_null_ref::adjust_range): New. + * gimple-range.cc (gimple_ranger::range_of_expr): Call + adjust_range. + (gimple_ranger::range_on_entry): Same. + +2021-07-15 Tamar Christina + + Revert: + 2021-07-14 Tamar Christina + + * config/arm/neon.md (dot_prod): Drop statements. + +2021-07-15 Tamar Christina + + Revert: + 2021-07-14 Tamar Christina + + * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to... + (sdot_prod, udot_prod): ...These. + * config/aarch64/aarch64-simd.md (dot_prod): Remove. + (aarch64_dot): Rename to... + (dot_prod): ...This. + * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): + Update builtins. + +2021-07-15 Jakub Jelinek + + PR middle-end/101437 + * gimplify.c (gimplify_expr): Throw away volatile reads from empty + types even if they have non-BLKmode TYPE_MODE. + +2021-07-15 Richard Biener + + PR driver/101383 + * gcc.c (process_command): Process -gtoggle like process_options + would after parsing options. + +2021-07-15 Trevor Saunders + + * cfgexpand.c (expand_asm_loc): Adjust. + (expand_asm_stmt): Likewise. + * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise. + * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise. + * config/arm/arm.c (thumb1_md_asm_adjust): Likewise. + * config/avr/avr.c (avr_md_asm_adjust): Likewise. + * config/cris/cris.c (cris_md_asm_adjust): Likewise. + * config/i386/i386.c (ix86_md_asm_adjust): Likewise. + * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise. + * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise. + * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise. + * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise. + * config/s390/s390.c (s390_md_asm_adjust): Likewise. + * config/vax/vax.c (vax_md_asm_adjust): Likewise. + * config/visium/visium.c (visium_md_asm_adjust): Likewise. + * doc/tm.texi: Regenerate. + * target.def: Add location argument to md_asm_adjust. + +2021-07-15 Trevor Saunders + + * tree-diagnostic.c (diagnostic_report_current_function): Use the + diagnostic's location, not input_location. + +2021-07-15 Trevor Saunders + + * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to + diagnostics. + (expand_asm_stmt): Likewise. + +2021-07-14 Peter Bergner + + * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower + addressed memory rtx, if any. + (rs6000_split_multireg_move): Fix code formatting. + Handle MMA build built-ins with operands in adjacent memory locations. + +2021-07-14 Peter Bergner + + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later + in the file. + +2021-07-14 Jason Merrill + + * sel-sched-ir.h (get_all_loop_exits): Use auto_vec. + +2021-07-14 Jason Merrill + + * doc/invoke.texi: -fdelete-dead-exceptions is on by default for + C++. + +2021-07-14 Tamar Christina + + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): + Remove erroneous line. + +2021-07-14 Andrew MacLeod + + * params.opt (param_evrp_mode): Change default. + +2021-07-14 Tamar Christina + + * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to... + (sdot_prod, udot_prod): ...These. + * config/aarch64/aarch64-simd.md (dot_prod): Remove. + (aarch64_dot): Rename to... + (dot_prod): ...This. + * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): + Update builtins. + +2021-07-14 Tamar Christina + + * config/arm/neon.md (dot_prod): Drop statements. + +2021-07-14 Tamar Christina + + * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document. + +2021-07-14 Tamar Christina + + * config/arm/neon.md (usdot_prod): New. + +2021-07-14 Tamar Christina + + * config/aarch64/aarch64-simd.md (aarch64_usdot): Rename to... + (usdot_prod): ... This. + * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to... + (usdot_prod): ...This. + * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise. + * config/aarch64/aarch64-sve.md (@aarch64_dot_prod): + Rename to... + (@dot_prod): ...This. + * config/aarch64/aarch64-sve-builtins-base.cc + (svusdot_impl::expand): Use it. + +2021-07-14 Tamar Christina + + * optabs.def (usdot_prod_optab): New. + * doc/md.texi: Document it and clarify other dot prod optabs. + * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign. + * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab. + * optabs.c (expand_widen_pattern_expr): Likewise. + * tree-cfg.c (verify_gimple_assign_ternary): Likewise. + * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind. + * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional + optab subtype. + (vect_widened_op_tree): Optionally ignore + mismatch types. + (vect_recog_dot_prod_pattern): Support usdot_prod_optab. + +2021-07-14 H.J. Lu + + PR target/101395 + * config/i386/driver-i386.c (host_detect_local_cpu): Check + "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen. + Enable UINTR only for 64-bit codegen. + * config/i386/i386-options.c + (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not + in 64-bit mode. + * config/i386/i386.h (ARCH_ARG): New. + (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and + "[arch|tune] 64" for 64-bit codegen. + +2021-07-14 Richard Biener + + PR tree-optimization/101445 + * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment + of the IV in the correct direction for negative stride + accesses. + +2021-07-14 Jakub Jelinek + + PR go/101407 + * godump.c (godump_str_hash): New type. + (godump_container::pot_dummy_types): Use string_hash instead of + ptr_hash in the hash_set. + +2021-07-14 Richard Biener + + * tree-vect-loop.c (vect_find_reusable_accumulator): Handle + vector types where the old vector type has a multiple of + the new vector type elements. + (vect_create_partial_epilog): New function, split out from... + (vect_create_epilog_for_reduction): ... here. + (vect_transform_cycle_phi): Reduce the re-used accumulator + to the new vector type. + +2021-07-14 Alexandre Oliva + + * tree-ssa-alias.c (attr_fnspec::verify): Fix index in + non-'t'-sized arg check. + +2021-07-14 Alexandre Oliva + + * tree-cfg.c (cleanup_dead_labels_eh): Update + post_landing_pad label upon change of landing pad block's + primary label. + (cleanup_dead_labels): Check that a removed label is not that + of a landing pad. + +2021-07-13 Jonathan Wright + + * combine.c (combine_simplify_rtx): Add vec_select -> subreg + simplification. + * config/aarch64/aarch64.md (*zero_extend2_aarch64): + Add Neon to general purpose register case for zero-extend + pattern. + * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r + case to prevent some cases opting to go through memory. + * cse.c (fold_rtx): Add vec_select -> subreg simplification. + * rtl.c (rtvec_series_p): Define predicate to determine + whether a vector contains a linear series of integers. + * rtl.h (rtvec_series_p): Define. + * rtlanal.c (vec_series_lowpart_p): Define predicate to + determine if a vector selection is equivalent to the low part + of the vector. + * rtlanal.h (vec_series_lowpart_p): Define. + * simplify-rtx.c (simplify_context::simplify_binary_operation_1): + Add vec_select -> subreg simplification. + +2021-07-13 Paul A. Clarke + + * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128, + _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros, + _mm_test_mix_ones_zeros): New. + +2021-07-13 Roger Sayle + Richard Biener + + * gimple.c (gimple_could_trap_p_1): Make S argument a + "const gimple*". Preserve constness in call to + gimple_asm_volatile_p. + (gimple_could_trap_p): Make S argument a "const gimple*". + * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p): + Update function prototypes. + +2021-07-13 Richard Sandiford + + * tree-vectorizer.h (vect_reusable_accumulator): New structure. + (_loop_vec_info::main_loop_edge): New field. + (_loop_vec_info::skip_main_loop_edge): Likewise. + (_loop_vec_info::skip_this_loop_edge): Likewise. + (_loop_vec_info::reusable_accumulators): Likewise. + (_stmt_vec_info::reduc_scalar_results): Likewise. + (_stmt_vec_info::reused_accumulator): Likewise. + (vect_get_main_loop_result): Declare. + * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize + reduc_scalar_inputs. + (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs. + * tree-vect-loop-manip.c (vect_get_main_loop_result): New function. + (vect_do_peeling): Fill an epilogue loop's main_loop_edge, + skip_main_loop_edge and skip_this_loop_edge fields. + * tree-vect-loop.c (INCLUDE_ALGORITHM): Define. + (vect_emit_reduction_init_stmts): New function. + (get_initial_def_for_reduction): Use it. + (get_initial_defs_for_reduction): Likewise. Change the vinfo + parameter to a loop_vec_info. + (vect_create_epilog_for_reduction): Store the scalar results + in the reduc_info. If an epilogue loop is reusing an accumulator + from the main loop, and if the epilogue loop can also be skipped, + try to place the reduction code in the join block. Record + accumulators that could potentially be reused by epilogue loops. + (vect_transform_cycle_phi): When vectorizing epilogue loops, + try to reuse accumulators from the main loop. Record the initial + value in reduc_info for non-SLP reductions too. + +2021-07-13 Richard Sandiford + + * tree-vect-loop.c (get_initial_def_for_reduction): Remove + adjustment handling. Take the neutral value as an argument, + in place of the code argument. + (vect_transform_cycle_phi): Update accordingly. Handle the + initial values of cond reductions separately from code reductions. + Choose the adjustment here rather than in + get_initial_def_for_reduction. Sink the splat of vec_initial_def. + +2021-07-13 Richard Sandiford + + * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with... + (neutral_op_for_reduction): ...this, providing a more general + interface. + (vect_create_epilog_for_reduction): Update accordingly. + (vectorizable_reduction): Likewise. + (vect_transform_cycle_phi): Likewise. + +2021-07-13 Richard Sandiford + + * tree-vect-loop.c (get_initial_def_for_reduction): Take the + reduc_info instead of the original stmt_vec_info. + (vect_transform_cycle_phi): Update accordingly. + +2021-07-13 Richard Sandiford + + * tree-vect-loop.c (get_initial_defs_for_reduction): Take the + reduc_info as an additional parameter. + (vect_transform_cycle_phi): Update accordingly. + +2021-07-13 Richard Sandiford + + * tree-vectorizer.h: Include tree-ssa-operands.h. + (vect_phi_initial_value): New function. + * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it. + (get_initial_defs_for_reduction, info_for_reduction): Likewise. + (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. + (vect_transform_cycle_phi, vectorizable_induction): Likewise. + +2021-07-13 Richard Sandiford + + * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert + the phi results to vectype after creating them. Remove later + conversion code that thus becomes redundant. + +2021-07-13 Richard Sandiford + + * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace + the new_phis vector with a reduc_inputs vector. Combine handling + of reduction chains and ncopies > 1. + +2021-07-13 Richard Sandiford + + * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate + scalar_results to group_size elements after reducing down from + N*group_size elements. Construct an array_slice of the live-out + stmts and assert that there is one stmt per scalar result. + +2021-07-13 Richard Sandiford + + * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove + nested_in_vect_loop and use double_reduc everywhere. Remove dead + assignment to "loop". + +2021-07-13 Richard Sandiford + + * internal-fn.c (vectorized_internal_fn_supported_p): Handle + vector types first. For scalar types, consider both the preferred + vector mode and the alternative vector modes. + * optabs-query.c (can_vec_mask_load_store_p): Use the same + structure as above, in particular using related_vector_mode + for modes provided by autovectorize_vector_modes. + +2021-07-13 Jakub Jelinek + Richard Biener + + PR tree-optimization/101419 + * tree-pass.h (PROP_objsz): Define. + (make_pass_early_object_sizes): Declare. + * passes.def (pass_all_early_optimizations): Rename pass_object_sizes + there to pass_early_object_sizes, drop parameter. + (pass_all_optimizations): Move pass_object_sizes right after pass_ccp, + drop parameter, move pass_post_ipa_warn right after that. + * tree-object-size.c (pass_object_sizes::execute): Rename to... + (object_sizes_execute): ... this. Add insert_min_max_p argument. + (pass_data_object_sizes): Move after object_sizes_execute. + (pass_object_sizes): Likewise. In execute method call + object_sizes_execute, drop set_pass_param method and insert_min_max_p + non-static data member and its initializer in the ctor. + (pass_data_early_object_sizes, pass_early_object_sizes, + make_pass_early_object_sizes): New. + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use + (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining. + +2021-07-13 Kito Cheng + + PR target/101275 + * config/riscv/constraints.md ("S"): Update description and remove + @internal. + * doc/md.texi (Machine Constraints): Document the 'S' constraints + for RISC-V. + +2021-07-13 Richard Biener + + Revert: + 2021-07-12 Richard Biener + + * tree-vect-slp.c (vect_slp_region): Show the number of + SLP graph entries in the optimization message. + +2021-07-13 Michael Meissner + + * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable + value to to long. + * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change + return type to long. + * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return + type to long. + +2021-07-12 Andrew MacLeod + + * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call): + Query relation between the 2 operands and use it. + +2021-07-12 Sergei Trofimovich + + * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo. + +2021-07-12 Uroš Bizjak + + PR target/101424 + * config/i386/predicates.md (vec_setm_sse41_operand): + Rename from vec_setm_operand. + (vec_setm_avx2_operand): New predicate. + * config/i386/sse.md (vec_set): Use V_128 mode iterator. + Use vec_setm_sse41_operand as operand 2 predicate. + (vec_set + + PR tree-optimization/101335 + * range-op.cc (operator_cast::lhs_op1_relation): Delete. + +2021-07-12 Andrew Pinski + + * tree-ssa-phiopt.c (match_simplify_replacement): Move + insert of the sequence before the movement of the + statement. Check if to see if the statement is used + outside of the original phi to see if we should move it. + +2021-07-12 Richard Biener + + * dump-context.h (debug_dump_context::debug_dump_context): + Add FILE * parameter defaulted to stderr. + * dumpfile.c (debug_dump_context::debug_dump_context): Adjust. + * tree-vect-slp.c (dot_slp_tree): New functions. + +2021-07-12 Richard Biener + + PR tree-optimization/101373 + * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping + references when the BB may not return. + (compute_avail): Pass in the function we're working on and + replace cfun references with it. Externally throwing + const calls also possibly terminate the function. + (pass_pre::execute): Pass down the function we're working on. + * gcse.c (compute_hash_table_work): Externally throwing + const/pure calls also need record_last_mem_set_info. + * postreload-gcse.c (record_opr_changes): Looping or externally + throwing const/pure calls also need record_last_mem_set_info. + +2021-07-12 Uroš Bizjak + + * recog.c (memory_address_addr_space_p): Change the type to bool. + Return true/false instead of 1/0. + (offsettable_memref_p): Ditto. + (offsettable_nonstrict_memref_p): Ditto. + (offsettable_address_addr_space_p): Ditto. + Change the type of addressp indirect function to bool. + * recog.h (memory_address_addr_space_p): Change the type to bool. + (strict_memory_address_addr_space_p): Ditto. + (offsettable_memref_p): Ditto. + (offsettable_nonstrict_memref_p): Ditto. + (offsettable_address_addr_space_p): Ditto. + * reload.c (maybe_memory_address_addr_space_p): Ditto. + (strict_memory_address_addr_space_p): Change the type to bool. + Return true/false instead of 1/0. + (maybe_memory_address_addr_space_p): Change the type to bool. + +2021-07-12 Richard Biener + + * tree-vect-slp.c (vect_slp_region): Show the number of + SLP graph entries in the optimization message. + +2021-07-12 Richard Biener + + PR tree-optimization/101394 + * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting + copies from abnormals for a full redundancy. + +2021-07-12 Richard Biener + + PR middle-end/101423 + * gimple.c (gimple_could_trap_p_1): Internal function calls + do not trap. + * tree-eh.c (tree_could_trap_p): Likewise. + +2021-07-12 prathamesh.kulkarni + + PR target/66791 + * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with + __a * __b. + (vmulq_n_u32): Likewise. + (vmul_n_f32): Gate __a * __b on __FAST_MATH__. + (vmulq_n_f32): Likewise. + (vmul_n_f16): Likewise. + (vmulq_n_f16): Likewise. + +2021-07-12 Martin Liska + + PR sanitizer/101425 + * gcc.c (check_offload_target_name): Call + candidates_list_and_hint only if we have a candidate. + +2021-07-12 prathamesh.kulkarni + + PR target/98435 + * config/arm/neon.md (vec_init): Move to ... + * config/arm/vec-common.md (vec_init): ... here. + Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE. + +2021-07-12 Roger Sayle + + PR tree-optimization/101403 + * match.pd ((T)bswap(X)>>C): Correctly handle cases where + signedness of the shift is not the same as the signedness of + the type extension. + +2021-07-09 Roger Sayle + Uroš Bizjak + + * config/i386/i386.md (*divmodsi4_const): Optimize SImode + divmod of a constant numerator with new define_insn_and_split. + +2021-07-09 Iain Sandoe + + PR target/100152 + * config/i386/i386-expand.c (ix86_expand_call): If a call is + to a non-local-binding, or local but to a public symbol, then + assume that it might be indirected via the lazy symbol binder. + Mark R10 and R10 as clobbered in that case. + +2021-07-09 Eric Botcazou + + PR target/101377 + * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in + the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined + and HAVE_LD_BROKEN_PE_DWARF5 is defined. + +2021-07-09 Uroš Bizjak + + * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the + log2 range of operands[3] to [1,31]. + (*udivmodsi4_pow2_zext_2): Ditto. Correct insn RTX pattern. + +2021-07-09 Sergei Trofimovich + + * doc/md.texi: Don't split @smallexample in multiple @groups. + +2021-07-09 Sergei Trofimovich + + * doc/md.texi: Add missing 'see' word. + +2021-07-09 Andrew Pinski + + * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments + to take sequence and gimple_match_op. Accept the case where + op is a SSA_NAME and one statement in the sequence. + Also allow constants. + (gimple_simplify_phiopt): Always pass a sequence to resimplify. + Update call to phiopt_early_allow. Discard the sequence if not + used. + +2021-07-09 Xi Ruoyao + + PR target/100760 + PR target/100761 + PR target/100762 + * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P + instead of ISA_HAS_MSA. + (mips_expand_vec_unpack): Likewise. + (mips_expand_vector_init): Likewise. + +2021-07-09 Kewen Lin + + * config/rs6000/vsx.md (mods_): Rename to... + (mod3): ... this. + (modu_): Rename to... + (umod3): ... this. + * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI, + MODU_V4SI): Adjust. + +2021-07-08 Jeff Law + + * config/h8300/shiftrotate.md (variable shifts): Expose condition + code handling for the test before the loop. + +2021-07-08 Martin Jambor + + PR ipa/101066 + * ipa-sra.c (class isra_call_summary): New member + m_before_any_store, initialize it in the constructor. + (isra_call_summary::dump): Dump the new field. + (ipa_sra_call_summaries::duplicate): Copy it. + (process_scan_results): Set it. + (isra_write_edge_summary): Stream it. + (isra_read_edge_summary): Likewise. + (param_splitting_across_edge): Only override + safe_to_import_accesses if m_before_any_store is set. + +2021-07-08 Martin Sebor + + PR bootstrap/101374 + * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): + Use Object Size Type 0 instead of 1. + +2021-07-08 Richard Sandiford + + * tree-vect-loop.c (vectorizable_reduction): Remove always-true + if condition. + +2021-07-08 Richard Sandiford + + * match.pd: Simplify an extend-operate-truncate sequence involving + a POLY_INT_CST. + +2021-07-08 Roger Sayle + Richard Biener + + PR tree-optimization/40210 + * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as + (x>>C3)&C2 when possible. Simplify bswap(x)>>C1 as ((T)x)>>C2 + when possible. Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255. + +2021-07-08 Uroš Bizjak + + PR target/100637 + * config/i386/i386-expand.c (ix86_expand_sse_unpack): + Handle V4QI mode. + * config/i386/mmx.md (V_32): New mode iterator. + (mov): Use V_32 mode iterator. + (*mov_internal): Ditto. + (*push2_rex64): Ditto. + (*push2): Ditto. + (movmisalign): Ditto. + (mmx_v1si3): New insn pattern. + (sse4_1_v2qiv2hi2): Ditto. + (vec_unpacks_lo_v4qi): New expander. + (vec_unpacks_hi_v4qi): Ditto. + (vec_unpacku_lo_v4qi): Ditto. + (vec_unpacku_hi_v4qi): Ditto. + * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode. + (VALID_INT_MODE_P): Ditto. + +2021-07-08 Michael Meissner + + PR target/100809 + * config/rs6000/rs6000.md (udivti3): New insn. + (divti3): New insn. + (umodti3): New insn. + (modti3): New insn. + +2021-07-07 Martin Sebor + + PR tree-optimization/100137 + PR tree-optimization/99121 + PR tree-optimization/97027 + * builtins.c (access_ref::access_ref): Also set offmax. + (access_ref::offset_in_range): Define new function. + (access_ref::add_offset): Set offmax. + (access_ref::inform_access): Handle access_none. + (handle_mem_ref): Clear ostype. + (compute_objsize_r): Handle ASSERT_EXPR. + * builtins.h (struct access_ref): Add offmax member. + * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use + compute_objsize() and simplify. + +2021-07-07 Peter Bergner + + * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP + and VSX_BUILTIN_STXVP. + +2021-07-07 Martin Sebor + + PR target/101363 + * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove + a stray %K from error_at() missed in r12-2088. + +2021-07-07 Richard Biener + + PR tree-optimization/99728 + * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record + aggregate copies. + (mem_refs_may_alias_p): Add assert we handled aggregate + copies elsewhere. + (sm_seq_valid_bb): Give up when running into aggregate copies. + (ref_indep_loop_p): Handle aggregate copies as never + being invariant themselves but allow other refs to be + disambiguated against them. + (can_sm_ref_p): Do not try to apply store-motion to aggregate + copies. + +2021-07-06 Indu Bhagat + + PR debug/101283 + * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get + number of bits. + +2021-07-06 Martin Sebor + + * gimple-pretty-print.c (percent_G_format): Remove. + * tree-diagnostic.c (default_tree_printer): Remove calls. + * tree-pretty-print.c (percent_K_format): Remove. + * tree-pretty-print.h (percent_K_format): Remove. + +2021-07-06 Martin Sebor + + * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin): + Remove %K and use error_at. + (aarch64_expand_fcmla_builtin): Same. + (aarch64_expand_builtin_tme): Same. + (aarch64_expand_builtin_memtag): Same. + * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same. + (arm_expand_builtin): Same. + * config/arm/arm.c (bounds_check): Same. + +2021-07-06 Martin Sebor + + * builtins.c (warn_string_no_nul): Remove %G. + (maybe_warn_for_bound): Same. + (warn_for_access): Same. + (check_access): Same. + (check_strncat_sizes): Same. + (expand_builtin_strncat): Same. + (expand_builtin_strncmp): Same. + (expand_builtin): Same. + (expand_builtin_object_size): Same. + (warn_dealloc_offset): Same. + (maybe_emit_free_warning): Same. + * calls.c (maybe_warn_alloc_args_overflow): Same. + (maybe_warn_nonstring_arg): Same. + (maybe_warn_rdwr_sizes): Same. + * expr.c (expand_expr_real_1): Remove %K. + * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G. + (gimple_fold_builtin_strncat): Same. + * gimple-ssa-sprintf.c (format_directive): Same. + (handle_printf_call): Same. + * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same. + * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same. + (maybe_diag_access_bounds): Same. Call gimple_location. + (check_bounds_or_overlap): Same. + * trans-mem.c (ipa_tm_scan_irr_block): Remove %K. Simplify. + * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G. + * tree-ssa-strlen.c (maybe_warn_overflow): Same. + (maybe_diag_stxncpy_trunc): Same. + (handle_builtin_stxncpy_strncat): Same. + (maybe_warn_pointless_strcmp): Same. + * tree-ssa-uninit.c (maybe_warn_operand): Same. + +2021-07-06 Uroš Bizjak + + PR target/97194 + * config/i386/predicates.md (vec_setm_operand): Enable + register_operand for TARGET_SSE4_1. + * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand + as operand 2 predicate. Call ix86_expand_vector_set_var + for non-constant index operand. + (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate. + Call ix86_expand_vector_set_var for non-constant index operand. + +2021-07-06 Jeff Law + + * config/h8300/jumpcall.md (*branch): When possible, generate + the comparison in CCZN mode. + * config/h8300/predicates.md (simple_memory_operand): Reject all + auto-increment addressing modes. + +2021-07-06 Iain Sandoe + + PR bootstrap/100246 + * config/i386/i386.h (struct stringop_algs): Define a CTOR for + this type. + +2021-07-06 Richard Biener + + * doc/md.texi (vec_fmaddsub4): Document. + (vec_fmsubadd4): Likewise. + * optabs.def (vec_fmaddsub$a4): Add. + (vec_fmsubadd$a4): Likewise. + * internal-fn.def (IFN_VEC_FMADDSUB): Add. + (IFN_VEC_FMSUBADD): Likewise. + * tree-vect-slp-patterns.c (addsub_pattern::recognize): + Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD. + (addsub_pattern::build): Likewise. + * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB + and CFN_VEC_FMSUBADD are not transparent for permutes. + * config/i386/sse.md (vec_fmaddsub4): New expander. + (vec_fmsubadd4): Likewise. + +2021-07-06 Richard Biener + + * doc/invoke.texi (fmove-loop-stores): Document. + * common.opt (fmove-loop-stores): New option. + * opts.c (default_options_table): Enable -fmove-loop-stores + at -O1 but not -Og. + * tree-ssa-loop-im.c (pass_lim::execute): Pass + flag_move_loop_stores instead of true to + loop_invariant_motion_in_fun. + +2021-07-06 Iain Sandoe + + * doc/install.texi: Document --with-dsymutil. + +2021-07-06 Andrew Pinski + + PR tree-optimization/101256 + * dbgcnt.def (phiopt_edge_range): New counter. + * tree-ssa-phiopt.c (replace_phi_edge_with_variable): + Check to make sure the new name is defined in the same + bb as the conditional before duplicating range info. + Also add debug counter. + +2021-07-06 Kewen Lin + + PR rtl-optimization/100328 + * config/i386/i386-options.c (ix86_option_override_internal): + Set param_ira_consider_dup_in_all_alts to 0. + +2021-07-06 Kewen Lin + + PR rtl-optimization/100328 + * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new + parameter. + * ira.c (ira_get_dup_out_num): Adjust as parameter + param_ira_consider_dup_in_all_alts. + * params.opt (ira-consider-dup-in-all-alts): New. + * ira-conflicts.c (process_regs_for_copy): Add one parameter + single_input_op_has_cstr_p. + (get_freq_for_shuffle_copy): New function. + (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p. + * ira-int.h (ira_get_dup_out_num): Add one bool parameter. + +2021-07-05 Jeff Law + + * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to + generate condition code aware RTL directly. + +2021-07-05 Andrew Pinski + + PR tree-optimization/101039 + * match.pd (A CMP 0 ? A : -A): New patterns. + * tree-ssa-phiopt.c (abs_replacement): Delete function. + (tree_ssa_phiopt_worker): Don't call abs_replacement. + Update comment about abs_replacement. + +2021-07-05 Andrew Pinski + + * tree-ssa-phiopt.c (gimple_simplify_phiopt): + If "A ? B : C" fails to simplify, try "(!A) ? C : B". + +2021-07-05 Andrew Pinski + + * tree-ssa-phiopt.c (match_simplify_replacement): + Add early_p argument. Call gimple_simplify_phiopt + instead of gimple_simplify. + (tree_ssa_phiopt_worker): Update call to + match_simplify_replacement and allow unconditionally. + (phiopt_early_allow): New function. + (gimple_simplify_phiopt): New function. + +2021-07-05 Andrew Pinski + + PR middle-end/101237 + * fold-const.c (negate_expr_p): Remove call to element_mode + and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS, + HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS. + (fold_negate_expr_1): Likewise. + (const_unop): Likewise. + (fold_cond_expr_with_comparison): Likewise. + (fold_binary_loc): Likewise. + (fold_ternary_loc): Likewise. + (tree_call_nonnegative_warnv_p): Likewise. + * match.pd (-(A + B) -> (-B) - A): Likewise. + +2021-07-05 Iain Sandoe + + * configure.ac: Handle --with-dsymutil in the same way as we + do for the assembler and linker. (DEFAULT_DSYMUTIL): New. + Extract the type and version for the dsymutil configured or + found by the default searches. + * config.in: Regenerated. + * configure: Regenerated. + * collect2.c (do_dsymutil): Handle locating dsymutil in the + same way as for the assembler and linker. + * config/darwin.h (DSYMUTIL): Delete. + * gcc.c: Report a configured dsymutil correctly. + * exec-tool.in: Allow for dsymutil. + +2021-07-05 Uroš Bizjak + + * config/i386/i386-expand.c (ix86_split_mmx_punpck): + Handle V4QI and V2HI modes. + (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1. + Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes. + (expand_vec_perm_pshufb): Rewrite to use switch statemets. + Handle 4-byte dual operands with TARGET_XOP and single operands + with TARGET_SSSE3. Emit mmx_ppermv32 for TARGET_XOP and + mmx_pshufbv4qi3 for TARGET_SSSE3. + (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1. + (expand_vec_perm_interleave2): Allow 4-byte vector modes. + (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3. + (expand_vec_perm_even_odd_1): Handle V4QI mode. + (expand_vec_perm_broadcast_1): Handle V4QI mode. + (ix86_vectorize_vec_perm_const): Handle V4QI mode. + * config/i386/mmx.md (mmx_ppermv32): New insn pattern. + (mmx_pshufbv4qi3): Ditto. + (*mmx_pblendw32): Ditto. + (*mmx_pblendw64): Rename from *mmx_pblendw. + (mmx_punpckhbw_low): New insn_and_split pattern. + (mmx_punpcklbw_low): Ditto. + +2021-07-05 Richard Biener + + * tree-vect-loop-manip.c (vect_loop_versioning): Do not + set LOOP_C_INFINITE on the vectorized loop. + +2021-07-05 Richard Biener + + PR middle-end/101291 + * cfgloopmanip.c (loop_version): Set the loop copy of the + versioned loop to the new loop. + +2021-07-04 Iain Sandoe + + PR target/100269 + * config.gcc: Ensure that Darwin biarch definitions are + added before i386.h. + * config/i386/darwin.h (TARGET_64BIT): Remove. + (PR80556_WORKAROUND): New. + (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND. + (DARWIN_SUBARCH_SPEC): New. + * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT, + TARGET_BI_ARCH, PR80556_WORKAROUND): New. + (REAL_LIBGCC_SPEC): Remove. + * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT, + TARGET_BI_ARCH, PR80556_WORKAROUND): New. + (REAL_LIBGCC_SPEC): Remove. + +2021-07-03 H.J. Lu + + PR middle-end/101294 + * expr.c (store_constructor): Don't use vec_duplicate on vector. + +2021-07-02 Martin Sebor + + PR middle-end/98871 + PR middle-end/98512 + * diagnostic.c (get_any_inlining_info): New. + (update_effective_level_from_pragmas): Handle inlining context. + (diagnostic_enabled): Same. + (diagnostic_report_diagnostic): Same. + * diagnostic.h (struct diagnostic_info): Add ctor. + (struct diagnostic_context): Add new member. + * tree-diagnostic.c (set_inlining_locations): New. + (tree_diagnostics_defaults): Set new callback pointer. + +2021-07-02 Peter Bergner + + * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST): + New macros. + (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins. + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand + lxvp and stxvp built-ins. + (mma_init_builtins): Handle lxvp and stxvp built-ins. + (builtin_function_type): Likewise. + * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document. + +2021-07-02 Jeff Law + + * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept + additional argument for the code. + * config/h8300/h8300.c (compute_a_shift_cc): Accept additional + argument for the code. Just return if the ZN bits are useful or + not rather than the old style CC_* enums. + * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before + more generic shiftqi patterns. + (shifthi_noscratch, shiftsi_noscratch): Similarly. + (shiftqi_noscratch_set_flags): New pattern. + (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise. + +2021-07-02 Andrew MacLeod + + PR tree-optimization/101223 + * range-op.cc (build_lt): Add -1 for signed values. + (built_gt): Subtract -1 for signed values. + +2021-07-02 David Faust + + * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT. + (btf_asm_type): Likewise. + +2021-07-02 Jeff Law + + * config/h8300/h8300-protos.h (output_a_shift): Make first argument + an array of rtx rather than a pointer to rtx. Add code argument. + (compute_a_shift_length): Similarly. + * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the + shift itself isn't an operand. Create dummy operand[0] to carry + a mode and pass a suitable rtx code to compute_a_shift_length. + (get_shift_alg): Adjust operand number of clobber in output templates. + (output_a_shift): Make first argument an array of rtx rather than + a pointer to rtx. Add code argument for the type of shift. + Adjust now that the shift itself is no longer an operand. + (compute_a_shift_length): Similarly. + * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an + iterator rather than nshift_operator. + (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise. + (shiftqi_clobber_flags): Adjust to API changes in output_a_shift + and compute_a_shift_length. + (shiftqi_noscratch_clobber_flags): Likewise. + (shifthi_noscratch_clobber_flags): Likewise. + (shiftsi_noscratch_clobber_flags): Likewise. + +2021-07-02 Iain Sandoe + + PR debug/101283 + * config/darwin.h (DSYMUTIL_SPEC): Do not try to run + dsymutil for BTF/CTF. + +2021-07-02 Iain Sandoe + + PR debug/101283 + * config/darwin.h (CTF_INFO_SECTION_NAME): Update the + segment to include BTF. + (BTF_INFO_SECTION_NAME): New. + +2021-07-02 Jeff Law + + * config/m32r/m32r-protos.h (call_operand): Adjust return type. + (small_data_operand, memreg_operand, small_insn_p): Likewise. + * config/m32r/m32r.c (call_operand): Adjust return type. + (small_data_operand, memreg_operand): Likewise. + +2021-07-02 Jeff Law + + * config/frv/frv-protos.h (integer_register_operand): Adjust return + type. + (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise. + (fpr_or_int6_operand, gpr_or_int_operand); Likewise. + (gpr_or_int12_operand, gpr_or_int10_operand); Likewise. + (move_source_operand, move_destination_operand): Likewise. + (condexec_source_operand, condexec_dest_operand): Likewise. + (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise. + (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise. + (fcr_operand, icr_operand, cr_operand, call_operand): Likewise. + (fpr_operand, even_reg_operand, odd_reg_operand): Likewise. + (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise. + (even_fpr_operand, odd_fpr_operand): Likewise. + (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise. + (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise. + (uint4_operand, uint1_operand, int_2word_operand): Likewise + (upper_int16_operand, uint16_operand, symbolic_operand): Likewise. + (relational_operator, float_relational_operator): Likewise. + (ccr_eqne_operator, minmax_operator): Likewise. + (condexec_si_binary_operator, condexec_si_media_operator): Likewise. + (condexec_si_divide_operator, condexec_si_unary_operator): Likewise. + (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise. + (intop_compare_operator, acc_operand, even_acc_operand): Likewise. + (quad_acc_operand, accg_operand): Likewise. + +2021-07-02 Jeff Law + + * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change + return type to a bool. + (nonimmediate_nonstack_operand): Likewise. + (xstormy16_splittable_below100_operand): Likewise. + * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix + return type. + (xstormy16_splittable_below100_operand): Likewise. + +2021-07-02 Richard Biener + + PR tree-optimization/101293 + * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases + with combined offsets. + (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were + combined with the rest of the offset. + +2021-07-02 Eric Botcazou + + * config/i386/i386.c (asm_preferred_eh_data_format): Always use the + PIC encodings for PE-COFF targets. + +2021-07-02 Jakub Jelinek + + PR target/101286 + * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant): + Return nullptr for TImode inner mode. + +2021-07-02 Richard Biener + + PR tree-optimization/101280 + PR tree-optimization/101173 + * gimple-loop-interchange.cc + (tree_loop_interchange::valid_data_dependences): Properly + guard all dependence checks with DDR_REVERSED_P or its + inverse. + +2021-07-02 Hongyu Wang + + * config/i386/i386-expand.c (ix86_expand_builtin): + Add branch to clear odata when ZF is set for asedecenc_expand + and wideaesdecenc_expand. + +2021-07-02 Eugene Rozenfeld + + * config/i386/gcc-auto-profile: regenerate + +2021-07-02 liuhongt + + * config/i386/sse.md (trunc2): Refined to .. + (trunc2): this. + +2021-07-01 David Malcolm + + * diagnostic.h (diagnostic_context::m_file_cache): New field. + * input.c (class fcache): Rename to... + (class file_cache_slot): ...this, making most members private and + prefixing fields with "m_". + (file_cache_slot::get_file_path): New accessor. + (file_cache_slot::get_use_count): New accessor. + (file_cache_slot::missing_trailing_newline_p): New accessor. + (file_cache_slot::inc_use_count): New. + (fcache_buffer_size): Move to... + (file_cache_slot::buffer_size): ...here. + (fcache_line_record_size): Move to... + (file_cache_slot::line_record_size): ...here. + (fcache_tab): Delete, in favor of global_dc->m_file_cache. + (fcache_tab_size): Move to file_cache::num_file_slots. + (diagnostic_file_cache_init): Update for move of fcache_tab + to global_dc->m_file_cache. + (diagnostic_file_cache_fini): Likewise. + (lookup_file_in_cache_tab): Convert to... + (file_cache::lookup_file): ...this. + (diagnostics_file_cache_forcibly_evict_file): Update for move of + fcache_tab to global_dc->m_file_cache, moving most of + implementation to... + (file_cache::forcibly_evict_file): ...this new function and... + (file_cache_slot::evict): ...this new function. + (evicted_cache_tab_entry): Convert to... + (file_cache::evicted_cache_tab_entry): ...this. + (add_file_to_cache_tab): Convert to... + (file_cache::add_file): ...this, moving bulk of implementation + to... + (file_cache_slot::create): ..this new function. + (file_cache::file_cache): New. + (file_cache::~file_cache): New. + (lookup_or_add_file_to_cache_tab): Convert to... + (file_cache::lookup_or_add_file): ..this new function. + (fcache::fcache): Rename to... + (file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes + to fields. + (fcache::~fcache): Rename to... + (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes + to fields. + (needs_read): Convert to... + (file_cache_slot::needs_read_p): ...this. + (needs_grow): Convert to... + (file_cache_slot::needs_grow_p): ...this. + (maybe_grow): Convert to... + (file_cache_slot::maybe_grow): ...this. + (read_data): Convert to... + (file_cache_slot::read_data): ...this. + (maybe_read_data): Convert to... + (file_cache_slot::maybe_read_data): ...this. + (get_next_line): Convert to... + (file_cache_slot::get_next_line): ...this. + (goto_next_line): Convert to... + (file_cache_slot::goto_next_line): ...this. + (read_line_num): Convert to... + (file_cache_slot::read_line_num): ...this. + (location_get_source_line): Update for moving of globals to + global_dc->m_file_cache. + (location_missing_trailing_newline): Likewise. + * input.h (class file_cache_slot): New forward decl. + (class file_cache): New. + +2021-07-01 Michael Meissner + + * config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE + 128-bit floating point conditional move support. + (have_compare_and_set_mask): Add IEEE 128-bit floating point + types. + * config/rs6000/rs6000.md (movcc, IEEE128 iterator): New insn. + (movcc_p10, IEEE128 iterator): New insn. + (movcc_invert_p10, IEEE128 iterator): New insn. + (fpmask, IEEE128 iterator): New insn. + (xxsel, IEEE128 iterator): New insn. + +2021-07-01 Iain Sandoe + + PR debug/101283 + * config/darwin.h (CTF_INFO_SECTION_NAME): New. + +2021-07-01 H.J. Lu + + * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): + Make it global. + * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate): + New prototype. + * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator. + (vec_duplicate): New expander. + +2021-07-01 H.J. Lu + + PR target/100865 + * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): + New prototype. + (ix86_byte_broadcast): New function. + (ix86_convert_const_wide_int_to_broadcast): Likewise. + (ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode + size is 16 bytes or bigger. + (ix86_broadcast_from_integer_constant): New function. + (ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR + to broadcast if mode size is 16 bytes or bigger. + * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New + prototype. + * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function. + +2021-07-01 Uroš Bizjak + + * config/i386/predicates.md (ix86_endbr_immediate_operand): + Return true/false instead of 1/0. + (movq_parallel): Ditto. + +2021-07-01 Uroš Bizjak + + * recog.c (general_operand): Return true/false instead of 1/0. + (register_operand): Ditto. + (immediate_operand): Ditto. + (const_int_operand): Ditto. + (const_scalar_int_operand): Ditto. + (const_double_operand): Ditto. + (push_operand): Ditto. + (pop_operand): Ditto. + (memory_operand): Ditto. + (indirect_operand): Ditto. + +2021-07-01 Uroš Bizjak + + * genpreds.c (write_predicate_subfunction): + Change the type of written subfunction to bool. + (write_one_predicate_function): + Change the type of written function to bool. + (write_tm_preds_h): Ditto. + * recog.h (*insn_operand_predicate_fn): Change the type to bool. + * recog.c (general_operand): Change the type to bool. + (address_operand): Ditto. + (register_operand): Ditto. + (pmode_register_operand): Ditto. + (scratch_operand): Ditto. + (immediate_operand): Ditto. + (const_int_operand): Ditto. + (const_scalar_int_operand): Ditto. + (const_double_operand): Ditto. + (nonimmediate_operand): Ditto. + (nonmemory_operand): Ditto. + (push_operand): Ditto. + (pop_operand): Ditto. + (memory_operand): Ditto. + (indirect_operand): Ditto. + (ordered_comparison_operator): Ditto. + (comparison_operator): Ditto. + * config/i386/i386-expand.c (ix86_expand_sse_cmp): + Change the type of indirect predicate function to bool. + * config/rs6000/rs6000.c (easy_vector_constant): + Change the type to bool. + * config/mips/mips-protos.h (m16_based_address_p): + Change the type of operand 3 to bool. + +2021-07-01 Richard Biener + + PR tree-optimization/101280 + PR tree-optimization/101173 + * gimple-loop-interchange.cc + (tree_loop_interchange::valid_data_dependences): Revert + previous change and instead correctly handle DDR_REVERSED_P + dependence. + +2021-07-01 Richard Biener + + PR tree-optimization/101278 + * tree-ssa-dse.c (dse_classify_store): First check for + uses, then ignore stmt for chaining purposes. + +2021-07-01 Richard Biener + + PR tree-optimization/100778 + * tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping + vectorized ops ahead of their scalar BB. + +2021-07-01 Uroš Bizjak + + PR target/101044 + * config/i386/i386.md (*nabs2_doubleword): + New insn_and_split pattern. + (*nabs2_1): Ditto. + * config/i386/i386-features.c + (general_scalar_chain::compute_convert_gain): + Handle (NEG (ABS (...))) RTX. Rewrite src code + scanner as switch statement. + (general_scalar_chain::convert_insn): + Handle (NEG (ABS (...))) RTX. + (general_scalar_to_vector_candidate_p): + Detect (NEG (ABS (...))) RTX. Reorder case statements + for (AND (NOT (...) ...)) fallthrough. + +2021-07-01 Richard Biener + + PR tree-optimization/101178 + * tree-vect-slp.c (slpg_vertex::materialize): Remove. + (slpg::perm_in): Add. + (slpg::get_perm_in): Remove. + (slpg::get_perm_materialized): Add. + (vect_optimize_slp): Handle VEC_PERM nodes more optimally + during permute propagation and materialization. + +2021-07-01 Jakub Jelinek + + PR debug/101266 + * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR. + +2021-07-01 Jakub Jelinek + + PR middle-end/94366 + * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to + is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type, + use boolean_type_node instead of integer_type_node as NE_EXPR type. + (lower_reduction_clauses): Likewise. + +2021-06-30 Hafiz Abid Qadeer + + * config/gcn/gcn.c: Include dwarf2.h. + (gcn_addr_space_debug): New function. + (TARGET_ADDR_SPACE_DEBUG): New hook. + +2021-06-30 Hafiz Abid Qadeer + + * common/config/gcn/gcn-common.c + (gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3. + * config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer + when emitting CFI. + (gcn_expand_prologue): Prefer the frame pointer when emitting CFI. + (gcn_frame_pointer_rqd): New function. + (TARGET_FRAME_POINTER_REQUIRED): New hook. + +2021-06-30 Hafiz Abid Qadeer + + * config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for + prologue register saves. + (gcn_debug_unwind_info): Use UI_DWARF2. + (gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC. + (gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span. + * config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define. + (DWARF_LINK_REGISTER): New define. + (FIRST_PSEUDO_REGISTER): Increment. + (FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER. + (CALL_USED_REGISTERS): Likewise. + (REGISTER_NAMES): Likewise. + +2021-06-30 Richard Biener + + PR tree-optimization/101267 + * tree-vect-stmts.c (vect_check_scalar_mask): Adjust + API and use SLP compatible interface of vect_is_simple_use. + Reject not vectorized SLP defs for callers that do not support + that. + (vect_check_store_rhs): Handle masked stores and pass down + the appropriate operator index. + (vectorizable_call): Adjust. + (vectorizable_store): Likewise. + (vectorizable_load): Likewise. Handle SLP pecularity of + masked loads. + (vect_is_simple_use): Remove special-casing of masked stores. + +2021-06-30 Tobias Burnus + + * common.opt (foffload): Remove help as Driver only. + * gcc.c (display_help): Add -foffload. + +2021-06-30 Tobias Burnus + + * gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC. + (check_offload_target_name): Fix splitting OFFLOAD_TARGETS into + a candidate list; better inform no offload target is configured + and fix hint extraction when passed target is not '\0' at [len]. + * common.opt (foffload): Add tailing '.'. + (foffload-options): Likewise; fix flag name in the help string. + +2021-06-30 prathamesh.kulkarni + + PR target/66791 + * config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32. + (vcage_f32): Gate comparison on __FAST_MATH__. + (vcageq_f32): Likewise. + (vcale_f32): Likewise. + (vcaleq_f32): Likewise. + (vcagt_f32): Likewise. + (vcagtq_f32): Likewise. + (vcalt_f32): Likewise. + (vcaltq_f32): Likewise. + (vcage_f16): Likewise. + (vcageq_f16): Likewise. + (vcale_f16): Likewise. + (vcaleq_f16): Likewise. + (vcagt_f16): Likewise. + (vcagtq_f16): Likewise. + (vcalt_f16): Likewise. + (vcaltq_f16): Likewise. + +2021-06-30 Richard Biener + + PR tree-optimization/101264 + * tree-vect-slp.c (vect_optimize_slp): Propagate the + computed perm_in to all "any" permute successors + we cannot de-duplicate immediately. + +2021-06-30 liuhongt + + PR target/101248 + * config/i386/sse.md + (avx512f_sfixupimm): + Refined to .. + (avx512f_sfixupimm): + this. + (avx512f_sfixupimm_mask"): Refined. + * config/i386/subst.md (maskz_scalar): New define_subst. + (maskz_scalar_name): New subst_attr. + (maskz_scalar_op5): Ditto. + (round_saeonly_maskz_scalar_op5): Ditto. + (round_saeonly_maskz_scalar_operand5): Ditto. + +2021-06-30 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): + Increase code CSECT alignment to at least 32 bytes. + * config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte + alignment designation. + +2021-06-29 Sergei Trofimovich + + * doc/generic.texi: Fix s/net yet/not yet/ typo. + +2021-06-29 Andrew MacLeod + + PR tree-optimization/101254 + * range-op.cc (operator_minus::op1_op2_relation_effect): Check for + wrapping/non-wrapping when setting the result range. + +2021-06-29 Andrew MacLeod + + * value-query.cc (gimple_range_global): Allow phis. + +2021-06-29 Andrew MacLeod + + * vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt. + (simplify_using_ranges::op_with_boolean_value_range_p): Add a + statement for location context. + (check_for_binary_op_overflow): Ditto. + (simplify_using_ranges::get_vr_for_comparison): Ditto. + (simplify_using_ranges::compare_name_with_value): Ditto. + (simplify_using_ranges::compare_names): Ditto. + (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto. + (simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto. + (simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto. + (simplify_using_ranges::simplify_internal_call_using_ranges): Ditto. + (simplify_using_ranges::two_valued_val_range_p): Ditto. + (simplify_using_ranges::simplify): Ditto. + * vr-values.h: Adjust prototypes. + +2021-06-29 Uroš Bizjak + + PR target/95046 + * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern. + +2021-06-29 Julian Brown + + * config/gcn/gcn.c (gcn_init_libfuncs): New function. + (TARGET_INIT_LIBFUNCS): Define target hook using above function. + * config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4 + otherwise. + (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions. + (MAX_FIXED_MODE_SIZE): Change to 128. + +2021-06-29 Julian Brown + + * config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant. + (s_mnemonic): Add clrsb. + (gcn_flbit_int): Add insn pattern for SImode/DImode. + (clrsb2): Add expander for SImode/DImode. + +2021-06-29 Julian Brown + + * config/gcn/gcn.md (mulsidi3, mulsidi3_reg, mulsidi3_imm, + muldi3): Add patterns. + +2021-06-29 Julian Brown + + * config/gcn/gcn.md (mulsi3_highpart): Change to expander. + (mulsi3_highpart_reg, mulsi3_highpart_imm): New patterns. + +2021-06-29 Julian Brown + + * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC. + +2021-06-29 Joseph Myers + + * btfout.c, ctfout.c: Include "memmodel.h". + +2021-06-29 Tobias Burnus + + * gcc.c (check_offload_target_name): Cast len argument to + %q.*s to 'int'; avoid -Wstringop-truncation warning. + +2021-06-29 Richard Biener + + * tree-vect-slp.c (vect_optimize_slp): Forward propagate + to "any" permute nodes and relax "any" permute proapgation + during iterative backward propagation. + +2021-06-29 Tobias Burnus + + PR other/67300 + * common.opt (-foffload=): Update description. + (-foffload-options=): New. + * doc/invoke.texi (C Language Options): Document + -foffload and -foffload-options. + * gcc.c (check_offload_target_name): New, split off from + handle_foffload_option. + (check_foffload_target_names): New. + (handle_foffload_option): Handle -foffload=default. + (driver_handle_option): Update for -foffload-options. + * lto-opts.c (lto_write_options): Use -foffload-options + instead of -foffload. + * lto-wrapper.c (merge_and_complain, append_offload_options): + Likewise. + * opts.c (common_handle_option): Likewise. + +2021-06-29 Tobias Burnus + + * doc/invoke.texi (C Language Options): Sort options + alphabetically in optlist and also the description itself. + Remove leftover -fallow-single-precision from and add missing + -fgnu-tm to the optlist. + +2021-06-29 Richard Biener + + * tree-vect-slp.c (slpg_vertex::visited): Remove. + (vect_slp_perms_eq): Handle -1 permutes. + (vect_optimize_slp): Rewrite permute propagation. + +2021-06-29 Jakub Jelinek + + PR c++/101210 + * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't + perform the optimization in GENERIC when sanitizing and x has a + reference type. + +2021-06-29 Richard Biener + + PR tree-optimization/101242 + * tree-vect-slp.c (vect_slp_build_vertices): Force-add + PHIs with not represented initial values as leafs. + +2021-06-29 Jan-Benedict Glaw + + * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning. + * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove + "register" keyword. + (pdp11_initial_elimination_offset) Remove unused variable. + (pdp11_cmp_length) Ditto. + (pdp11_insn_cost): Ditto, and fix signedness warning. + +2021-06-29 David Edelsohn + + * btfout.c: Include tm_p.h. + * ctfout.c: Same. + +2021-06-28 Indu Bhagat + + * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as + frame related. + (bpf_expand_epilogue): Likewise. + * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0. + Do not define DBX_DEBUGGING_INFO. + +2021-06-28 Indu Bhagat + + * doc/invoke.texi: Document the CTF and BTF debug info options. + +2021-06-28 Indu Bhagat + David Faust + Jose E. Marchesi + Weimin Pan + + * Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to + GTFILES. Add new object files. + * common.opt: Add CTF and BTF debug info options. + * btfout.c: New file. + * ctfc.c: Likewise. + * ctfc.h: Likewise. + * ctfout.c: Likewise. + * dwarf2ctf.c: Likewise. + * dwarf2ctf.h: Likewise. + * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and + BTF_DEBUG. + * dwarf2out.c (dwarf2out_source_line): Likewise. + (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to + be generated. + (debug_format_do_cu): New function. + (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for + them if requested. + Include dwarf2ctf.c. + * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug + formats. + * flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG. + (CTF_DEBUG): New bitmask. + (BTF_DEBUG): Likewise. + (enum ctf_debug_info_levels): New enum. + * gengtype.c (open_base_files): Handle ctfc.h. + (main): Handle uint32_t type. + * flags.h (btf_debuginfo_p): New definition. + (dwarf_based_debuginfo_p): Likewise. + * opts.c (debug_type_names): Add entries for CTF and BTF. + (btf_debuginfo_p): New function. + (dwarf_based_debuginfo_p): Likewise. + (common_handle_option): Handle -gctfN and -gbtf options. + (set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate. + * toplev.c (process_options): Inform the user and ignore -gctfLEVEL if + frontend is not C. + +2021-06-28 Jose E. Marchesi + + * dwarf2out.c (AT_class): Function is no longer static. + (AT_int): Likewise. + (AT_unsigned): Likewise. + (AT_loc): Likewise. + (get_AT): Likewise. + (get_AT_string): Likewise. + (get_AT_flag): Likewise. + (get_AT_unsigned): Likewise. + (get_AT_ref): Likewise. + (new_die_raw): Likewise. + (lookup_decl_die): Likewise. + (base_type_die): Likewise. + (add_name_attribute): Likewise. + (add_AT_int): Likewise. + (add_AT_unsigned): Likewise. + (add_AT_loc): Likewise. + (dw_get_die_tag): New function. + (dw_get_die_child): Likewise. + (dw_get_die_sib): Likewise. + (struct dwarf_file_data): Move from here to dwarf2out.h + (struct dw_attr_struct): Likewise. + * dwarf2out.h: Analogous changes. + +2021-06-28 Martin Jambor + + PR ipa/93385 + * ipa-param-manipulation.h (class ipa_param_body_adjustments): New + members m_dead_stmts and m_dead_ssas. + * ipa-param-manipulation.c + (ipa_param_body_adjustments::mark_dead_statements): New function. + (ipa_param_body_adjustments::common_initialization): Call it on + all removed but not split parameters. + (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize + new mwmbers. + (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that + are dead. + * tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset + dead debug statements. + (copy_phis_for_bb): Do not copy dead PHI nodes. + +2021-06-28 Martin Jambor + + PR ipa/93385 + * symtab-clones.h (clone_info): Removed member param_adjustments. + * ipa-param-manipulation.h: Adjust initial comment to reflect how we + deal with pass-through splits now. + (ipa_param_performed_split): Removed. + (ipa_param_adjustments::modify_call): Adjusted parameters. + (class ipa_param_body_adjustments): Adjusted parameters of + register_replacement, modify_gimple_stmt and modify_call_stmt. + (ipa_verify_edge_has_no_modifications): Declare. + (ipa_edge_modifications_finalize): Declare. + * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove + performed_splits processing, pas only edge to padjs->modify_call, + check that call arguments were not modified if they should not have + been. + * cgraphclones.c (cgraph_node::create_clone): Do not copy performed + splits. + * ipa-param-manipulation.c (struct pass_through_split_map): New type. + (ipa_edge_modification_info): Likewise. + (ipa_edge_modification_sum): Likewise. + (ipa_edge_modifications): New edge summary. + (ipa_verify_edge_has_no_modifications): New function. + (transitive_split_p): Removed. + (transitive_split_map): Likewise. + (init_transitive_splits): Likewise. + (ipa_param_adjustments::modify_call): Adjusted to use the new edge + summary instead of performed_splits. + (ipa_param_body_adjustments::register_replacement): Drop dummy + parameter, set base_index of the created ipa_param_body_replacement. + (phi_arg_will_live_p): New function. + (ipa_param_body_adjustments::common_initialization): Do not create + IPA_SRA dummy decls. + (simple_tree_swap_info): Removed. + (remap_split_decl_to_dummy): Likewise. + (record_argument_state_1): New function. + (record_argument_state): Likewise. + (ipa_param_body_adjustments::modify_call_stmt): New parameter + orig_stmt. Do not work with dummy decls, save necessary info about + changes to ipa_edge_modifications. + (ipa_param_body_adjustments::modify_gimple_stmt): New parameter + orig_stmt, pass it to modify_call_stmt. + (ipa_param_body_adjustments::modify_cfun_body): Adjust call to + modify_gimple_stmt. + (ipa_edge_modifications_finalize): New function. + * tree-inline.c (remap_gimple_stmt): Pass original statement to + modify_gimple_stmt. + (copy_phis_for_bb): Do not copy dead PHI nodes. + (expand_call_inline): Do not remap performed_splits. + (update_clone_info): Likewise. + * toplev.c: Include ipa-param-manipulation.h. + (toplev::finalize): Call ipa_edge_modifications_finalize. + +2021-06-28 Andrew Pinski + + * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range + info if we're the only things setting the target PHI. + (value_replacement): Don't duplicate range here. + (minmax_replacement): Likewise. + +2021-06-28 Richard Biener + + PR tree-optimization/101229 + * gimple-walk.c (gimple_walk_op): Handle PHIs. + +2021-06-28 Martin Liska + + * config/v850/v850.c (construct_dispose_instruction): Allocate + a bigger buffer. + (construct_prepare_instruction): Likewise. + +2021-06-28 Martin Liska + + * config/v850/v850.c (v850_option_override): Build default + target node. + (v850_can_inline_p): New. Allow MASK_PROLOG_FUNCTION to be + ignored for inlining. + (TARGET_CAN_INLINE_P): New. + +2021-06-28 Richard Biener + + PR tree-optimization/101207 + * tree-vect-slp.c (vect_optimize_slp): Do BB reduction + permute eliding for load permutations properly. + +2021-06-28 Richard Biener + + PR tree-optimization/101173 + * gimple-loop-interchange.cc + (tree_loop_interchange::valid_data_dependences): Disallow outer + loop dependence distance of zero. + +2021-06-28 liuhongt + + PR target/100648 + * config/i386/sse.md (*avx_cmp3_lt): New + define_insn_and_split. + (*avx_cmp3_ltint): Ditto. + (*avx2_pcmp3_3): Ditto. + (*avx2_pcmp3_4): Ditto. + (*avx2_pcmp3_5): Ditto. + +2021-06-28 liuhongt + + * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256, + IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256, + IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS, + IX86_BUILTIN_PBLENDVB128): Replace icode with + CODE_FOR_nothing. + * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv + builtins. + * config/i386/sse.md (*_pblendvb_lt_subreg_not): + New pre_reload splitter. + +2021-06-27 Andrew Pinski + + PR middle-end/101230 + * fold-const.c (fold_ternary_loc): Check + the return value of invert_tree_comparison. + +2021-06-27 David Edelsohn + + * config.gcc: Add SPDX License Identifier. + (powerpc-ibm-aix789): Default to aix73.h. + (powerpc-ibm-aix7.2.*.*): New stanza. + * config/rs6000/aix72.h: Add SPDX License Identifier. + * config/rs6000/aix73.h: New file. + +2021-06-26 Jason Merrill + + * except.c: #include "dwarf2.h" instead of "dwarf2out.h". + +2021-06-26 Andrew Pinski + + * genmatch.c (lower_cond): Copy for_subst_vec + for the simplify also. + (lower): Swap the order for lower_for and lower_cond. + +2021-06-26 Andrew Pinski + + * tree-ssa-phiopt.c (match_simplify_replacement): Reset + flow senatitive info on the moved ssa set. + +2021-06-26 Andrew Pinski + + * fold-const.c (fold_cond_expr_with_comparison): + Exand arg0 into comp_code, arg00, and arg01. + (fold_ternary_loc): Use invert_tree_comparison + instead of fold_invert_truthvalue for the case + where we have A CMP B ? C : A. + +2021-06-25 Martin Sebor + + PR middle-end/101216 + * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant. + +2021-06-25 Jeff Law + + * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT. + +2021-06-25 Richard Biener + + PR tree-optimization/101202 + * tree-vect-slp.c (vect_optimize_slp): Explicitely handle + failed nodes. + +2021-06-25 Richard Biener + + * tree-vect-slp-patterns.c (addsub_pattern::build): Copy + STMT_VINFO_REDUC_DEF from the original representative. + +2021-06-25 Martin Sebor + + * builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING, + gimple_no_warning_p and gimple_set_no_warning with + warning_suppressed_p, and suppress_warning. + (c_strlen): Same. + (maybe_warn_for_bound): Same. + (warn_for_access): Same. + (check_access): Same. + (expand_builtin_strncmp): Same. + (fold_builtin_varargs): Same. + * calls.c (maybe_warn_nonstring_arg): Same. + (maybe_warn_rdwr_sizes): Same. + * cfgexpand.c (expand_call_stmt): Same. + * cgraphunit.c (check_global_declaration): Same. + * fold-const.c (fold_undefer_overflow_warnings): Same. + (fold_truth_not_expr): Same. + (fold_unary_loc): Same. + (fold_checksum_tree): Same. + * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same. + (array_bounds_checker::check_mem_ref): Same. + (array_bounds_checker::check_addr_expr): Same. + (array_bounds_checker::check_array_bounds): Same. + * gimple-expr.c (copy_var_decl): Same. + * gimple-fold.c (gimple_fold_builtin_strcpy): Same. + (gimple_fold_builtin_strncat): Same. + (gimple_fold_builtin_stxcpy_chk): Same. + (gimple_fold_builtin_stpcpy): Same. + (gimple_fold_builtin_sprintf): Same. + (fold_stmt_1): Same. + * gimple-ssa-isolate-paths.c (diag_returned_locals): Same. + * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same. + * gimple-ssa-sprintf.c (handle_printf_call): Same. + * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same. + * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same. + * gimple-ssa-warn-restrict.h: Adjust declarations. + (maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING, + gimple_no_warning_p and gimple_set_no_warning with + warning_suppressed_p, and suppress_warning. + (check_call): Same. + (check_bounds_or_overlap): Same. + * gimple.c (gimple_build_call_from_tree): Same. + * gimplify.c (gimplify_return_expr): Same. + (gimplify_cond_expr): Same. + (gimplify_modify_expr_complex_part): Same. + (gimplify_modify_expr): Same. + (gimple_push_cleanup): Same. + (gimplify_expr): Same. + * omp-expand.c (expand_omp_for_generic): Same. + (expand_omp_taskloop_for_outer): Same. + * omp-low.c (lower_rec_input_clauses): Same. + (lower_lastprivate_clauses): Same. + (lower_send_clauses): Same. + (lower_omp_target): Same. + * tree-cfg.c (pass_warn_function_return::execute): Same. + * tree-complex.c (create_one_component_var): Same. + * tree-inline.c (remap_gimple_op_r): Same. + (copy_tree_body_r): Same. + (declare_return_variable): Same. + (expand_call_inline): Same. + * tree-nested.c (lookup_field_for_decl): Same. + * tree-sra.c (create_access_replacement): Same. + (generate_subtree_copies): Same. + * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same. + * tree-ssa-forwprop.c (combine_cond_expr_cond): Same. + * tree-ssa-loop-ch.c (ch_base::copy_headers): Same. + * tree-ssa-loop-im.c (execute_sm): Same. + * tree-ssa-phiopt.c (cond_store_replacement): Same. + * tree-ssa-strlen.c (maybe_warn_overflow): Same. + (handle_builtin_strcpy): Same. + (maybe_diag_stxncpy_trunc): Same. + (handle_builtin_stxncpy_strncat): Same. + (handle_builtin_strcat): Same. + * tree-ssa-uninit.c (get_no_uninit_warning): Same. + (set_no_uninit_warning): Same. + (uninit_undefined_value_p): Same. + (warn_uninit): Same. + (maybe_warn_operand): Same. + * tree-vrp.c (compare_values_warnv): Same. + * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same. + (test_for_singularity): Same. + * gimple.h (warning_suppressed_p): New function. + (suppress_warning): Same. + (copy_no_warning): Same. + (gimple_set_block): Call gimple_set_location. + (gimple_set_location): Call copy_warning. + +2021-06-25 Martin Sebor + + * tree.h (warning_suppressed_at, copy_warning, + warning_suppressed_p, suppress_warning): New functions. + +2021-06-25 Martin Sebor + + * Makefile.in (OBJS-libcommon): Add diagnostic-spec.o. + * gengtype.c (open_base_files): Add diagnostic-spec.h. + * diagnostic-spec.c: New file. + * diagnostic-spec.h: New file. + * tree.h (no_warning, all_warnings, suppress_warning_at): New + declarations. + * warning-control.cc: New file. + +2021-06-25 liuhongt + + PR target/101185 + * config/i386/i386.c (x86_order_regs_for_local_alloc): + Revert r12-1669. + +2021-06-24 Andrew MacLeod + + PR tree-optimization/101189 + * gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass + LHS range of condition to postfold routine. + (fold_using_range::postfold_gcond_edges): Only process the TRUE or + FALSE edge if the LHS range supports it being taken. + * gimple-range-fold.h (postfold_gcond_edges): Add range parameter. + +2021-06-24 Andrew MacLeod + + * value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks. + (relation_oracle::find_relation_block): Check correct bitmap. + (relation_oracle::dump): Do not dump NULL blocks. + +2021-06-24 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::propagate_cache): Call + range_on_edge instead of manually calculating. + +2021-06-24 Andrew MacLeod + + * range-op.cc: Fix comment. + +2021-06-24 Uroš Bizjak + + PR target/89021 + * config/i386/i386-expand.c (ix86_expand_sse_unpack): + Handle V8QI and V4HI modes. + * config/i386/mmx.md (sse4_1_v4qiv4hi2): + New insn pattern. + (sse4_1_v4qiv4hi2): Ditto. + (mmxpackmode): New mode attribute. + (vec_pack_trunc_): New expander. + (mmxunpackmode): New mode attribute. + (vec_unpacks_lo_): New expander. + (vec_unpacks_hi_): Ditto. + (vec_unpacku_lo_): Ditto. + (vec_unpacku_hi_): Ditto. + * config/i386/i386.md (extsuffix): Move from ... + * config/i386/sse.md: ... here. + +2021-06-24 Eric Botcazou + + * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here.. + (dwarf2out_finish): ...instead of here. + +2021-06-24 Eric Botcazou + + * configure.ac (--gdwarf-5 option): Use objdump instead of readelf. + (working --gdwarf-4/--gdwarf-5 for all sources): Likewise. + (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows. + * configure: Regenerate. + +2021-06-24 Richard Biener + + * config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3, + vec_addsubv8sf3, vec_addsubv4sf3): Merge into ... + (vec_addsub3): ... using a new addsub_cst mode attribute. + +2021-06-24 Richard Biener + + * config/i386/sse.md (avx_addsubv4df3): Rename to + vec_addsubv4df3. + (avx_addsubv8sf3): Rename to vec_addsubv8sf3. + (sse3_addsubv2df3): Rename to vec_addsubv2df3. + (sse3_addsubv4sf3): Rename to vec_addsubv4sf3. + * config/i386/i386-builtin.def: Adjust. + * internal-fn.def (VEC_ADDSUB): New internal optab fn. + * optabs.def (vec_addsub_optab): New optab. + * tree-vect-slp-patterns.c (class addsub_pattern): New. + (slp_patterns): Add addsub_pattern. + * tree-vect-slp.c (vect_optimize_slp): Disable propagation + across CFN_VEC_ADDSUB. + * tree-vectorizer.h (vect_pattern::vect_pattern): Make + m_ops optional. + * doc/md.texi (vec_addsub3): Document. + +2021-06-24 Jakub Jelinek + + PR middle-end/101170 + * df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs + where regno + subreg_regno_offset wraps around use 0 as starting + regno. + +2021-06-24 Jakub Jelinek + + PR middle-end/101172 + * stor-layout.c (finish_bitfield_representative): If nextf has + error_mark_node type, set repr type to error_mark_node too. + +2021-06-24 Ilya Leoshkevich + + * config/s390/s390.c (s390_function_profiler): Ignore labelno + parameter. + * config/s390/s390.h (NO_PROFILE_COUNTERS): Define. + +2021-06-24 Richard Biener + + * tree-vect-slp.c (vect_optimize_slp): Do not propagate + across operations that have different semantics on different + lanes. + +2021-06-24 Jakub Jelinek + + * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP. + * gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses + with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification + of non-decl OMP_CLAUSE_DECL. For OMP_CLAUSE_IN_REDUCTION on + OMP_TARGET user outer_ctx instead of ctx for placeholders and + initializer/combiner gimplification. + * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION + on target constructs. + (lower_rec_input_clauses): Likewise. + (lower_omp_target): Likewise. + * omp-expand.c (expand_omp_target): Temporarily ignore nowait clause + on target if in_reduction is present. + +2021-06-24 Kewen Lin + + * tree-predcom.c (class pcom_worker): New class. + (release_chain): Renamed to... + (pcom_worker::release_chain): ...this. + (release_chains): Renamed to... + (pcom_worker::release_chains): ...this. + (aff_combination_dr_offset): Renamed to... + (pcom_worker::aff_combination_dr_offset): ...this. + (determine_offset): Renamed to... + (pcom_worker::determine_offset): ...this. + (class comp_ptrs): New class. + (split_data_refs_to_components): Renamed to... + (pcom_worker::split_data_refs_to_components): ...this, + and update with class comp_ptrs. + (suitable_component_p): Renamed to... + (pcom_worker::suitable_component_p): ...this. + (filter_suitable_components): Renamed to... + (pcom_worker::filter_suitable_components): ...this. + (valid_initializer_p): Renamed to... + (pcom_worker::valid_initializer_p): ...this. + (find_looparound_phi): Renamed to... + (pcom_worker::find_looparound_phi): ...this. + (add_looparound_copies): Renamed to... + (pcom_worker::add_looparound_copies): ...this. + (determine_roots_comp): Renamed to... + (pcom_worker::determine_roots_comp): ...this. + (determine_roots): Renamed to... + (pcom_worker::determine_roots): ...this. + (single_nonlooparound_use): Renamed to... + (pcom_worker::single_nonlooparound_use): ...this. + (remove_stmt): Renamed to... + (pcom_worker::remove_stmt): ...this. + (execute_pred_commoning_chain): Renamed to... + (pcom_worker::execute_pred_commoning_chain): ...this. + (execute_pred_commoning): Renamed to... + (pcom_worker::execute_pred_commoning): ...this. + (struct epcc_data): New member worker. + (execute_pred_commoning_cbck): Call execute_pred_commoning + with pcom_worker pointer. + (find_use_stmt): Renamed to... + (pcom_worker::find_use_stmt): ...this. + (find_associative_operation_root): Renamed to... + (pcom_worker::find_associative_operation_root): ...this. + (find_common_use_stmt): Renamed to... + (pcom_worker::find_common_use_stmt): ...this. + (combinable_refs_p): Renamed to... + (pcom_worker::combinable_refs_p): ...this. + (reassociate_to_the_same_stmt): Renamed to... + (pcom_worker::reassociate_to_the_same_stmt): ...this. + (stmt_combining_refs): Renamed to... + (pcom_worker::stmt_combining_refs): ...this. + (combine_chains): Renamed to... + (pcom_worker::combine_chains): ...this. + (try_combine_chains): Renamed to... + (pcom_worker::try_combine_chains): ...this. + (prepare_initializers_chain): Renamed to... + (pcom_worker::prepare_initializers_chain): ...this. + (prepare_initializers): Renamed to... + (pcom_worker::prepare_initializers): ...this. + (prepare_finalizers_chain): Renamed to... + (pcom_worker::prepare_finalizers_chain): ...this. + (prepare_finalizers): Renamed to... + (pcom_worker::prepare_finalizers): ...this. + (tree_predictive_commoning_loop): Renamed to... + (pcom_worker::tree_predictive_commoning_loop): ...this, adjust + some calls and remove some cleanup code. + (tree_predictive_commoning): Adjusted to use pcom_worker instance. + (static variable looparound_phis): Remove. + (static variable name_expansions): Remove. + +2021-06-24 Richard Biener + + * tree-vect-slp.c (slpg_vertex): New struct. + (vect_slp_build_vertices): Adjust. + (vect_optimize_slp): Likewise. Maintain an outgoing permute + and a materialized one. + +2021-06-24 Richard Biener + + PR tree-optimization/101105 + * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): + Only ignore steps when they are equal or scalar order is preserved. + +2021-06-24 liuhongt + + PR target/98434 + * config/i386/i386-expand.c (ix86_expand_vec_interleave): + Adjust comments for ix86_expand_vecop_qihi2. + (ix86_expand_vecmul_qihi): Renamed to .. + (ix86_expand_vecop_qihi2): Adjust function prototype to + support shift operation, add static to definition. + (ix86_expand_vec_shift_qihi_constant): Add static to definition. + (ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and + ix86_expand_vec_shift_qihi_constant. + * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted. + (ix86_expand_vec_shift_qihi_constant): Deleted. + * config/i386/sse.md (VI12_256_512_AVX512VL): New mode + iterator. + (mulv8qi3): Call ix86_expand_vecop_qihi directly, add + condition TARGET_64BIT. + (mul3): Ditto. + (3): Ditto. + (vlshr3): Extend to support avx512 vlshr. + (v3): New expander for + vashr/vlshr/vashl. + (vv8qi3): Ditto. + (vashrv8hi3): Renamed to .. + (vashr3): And extend to support V16QImode for avx512. + (vashrv16qi3): Deleted. + (vashrv2di3): Extend expander to support avx512 + instruction. + +2021-06-23 Dimitar Dimitrov + + * doc/lto.texi (Design Overview): Update that slim objects are + the default. + +2021-06-23 Aaron Sawdey + + * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out + of OTHER_POWER10_MASKS so it will not be enabled by default. + +2021-06-23 Richard Biener + Martin Jambor + + * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the + param replacement unconditionally. Adjust comment. + +2021-06-23 Andrew MacLeod + + * Makefile.in (OBJS): Add gimple-range-fold.o + * gimple-range-fold.cc: New. + * gimple-range-fold.h: New. + * gimple-range-gori.cc (gimple_range_calc_op1): Move to here. + (gimple_range_calc_op2): Ditto. + * gimple-range-gori.h: Move prototypes to here. + * gimple-range.cc: Adjust include files. + (fur_source:fur_source): Relocate to gimple-range-fold.cc. + (fur_source::get_operand): Ditto. + (fur_source::get_phi_operand): Ditto. + (fur_source::query_relation): Ditto. + (fur_source::register_relation): Ditto. + (class fur_edge): Ditto. + (fur_edge::fur_edge): Ditto. + (fur_edge::get_operand): Ditto. + (fur_edge::get_phi_operand): Ditto. + (fur_stmt::fur_stmt): Ditto. + (fur_stmt::get_operand): Ditto. + (fur_stmt::get_phi_operand): Ditto. + (fur_stmt::query_relation): Ditto. + (class fur_depend): Relocate to gimple-range-fold.h. + (fur_depend::fur_depend): Relocate to gimple-range-fold.cc. + (fur_depend::register_relation): Ditto. + (fur_depend::register_relation): Ditto. + (class fur_list): Ditto. + (fur_list::fur_list): Ditto. + (fur_list::get_operand): Ditto. + (fur_list::get_phi_operand): Ditto. + (fold_range): Ditto. + (adjust_pointer_diff_expr): Ditto. + (gimple_range_adjustment): Ditto. + (gimple_range_base_of_assignment): Ditto. + (gimple_range_operand1): Ditto. + (gimple_range_operand2): Ditto. + (gimple_range_calc_op1): Relocate to gimple-range-gori.cc. + (gimple_range_calc_op2): Ditto. + (fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc. + (fold_using_range::range_of_range_op): Ditto. + (fold_using_range::range_of_address): Ditto. + (fold_using_range::range_of_phi): Ditto. + (fold_using_range::range_of_call): Ditto. + (fold_using_range::range_of_builtin_ubsan_call): Ditto. + (fold_using_range::range_of_builtin_call): Ditto. + (fold_using_range::range_of_cond_expr): Ditto. + (fold_using_range::range_of_ssa_name_with_loop_info): Ditto. + (fold_using_range::relation_fold_and_or): Ditto. + (fold_using_range::postfold_gcond_edges): Ditto. + * gimple-range.h: Add gimple-range-fold.h to include files. Change + GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H. + (gimple_range_handler): Relocate to gimple-range-fold.h. + (gimple_range_ssa_p): Ditto. + (range_compatible_p): Ditto. + (class fur_source): Ditto. + (class fur_stmt): Ditto. + (class fold_using_range): Ditto. + (gimple_range_calc_op1): Relocate to gimple-range-gori.h + (gimple_range_calc_op2): Ditto. + +2021-06-23 Andrew MacLeod + + PR tree-optimization/101148 + PR tree-optimization/101014 + * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust. + (ranger_cache::~ranger_cache): Adjust. + (ranger_cache::block_range): Check if propagation disallowed. + (ranger_cache::propagate_cache): Disallow propagation if new value + can't be stored properly. + * gimple-range-cache.h (ranger_cache::m_propfail): New member. + +2021-06-23 Andrew MacLeod + + * gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype. + (sbr_vector::set_bb_range): Return true. + (class sbr_sparse_bitmap): Adjust. + (sbr_sparse_bitmap::set_bb_range): Return value. + (block_range_cache::set_bb_range): Return value. + (ranger_cache::propagate_cache): Use return value to print msg. + * gimple-range-cache.h (class block_range_cache): Adjust. + +2021-06-23 Andrew MacLeod + + * gimple-range.cc (dump_bb): Use range_on_edge from the cache. + +2021-06-23 Jeff Law + + * config/h8300/logical.md (3): Use + so this pattern can be used for test/compare removal. Pass + current insn to compute_logical_op_length and output_logical_op. + * config/h8300/h8300.c (compute_logical_op_cc): Remove. + (h8300_and_costs): Add argument to compute_logical_op_length. + (output_logical_op): Add new argument. Use it to determine if the + condition codes are used and adjust the output accordingly. + (compute_logical_op_length): Add new argument and update length + computations when condition codes are used. + * config/h8300/h8300-protos.h (compute_logical_op_length): Update + prototype. + (output_logical_op): Likewise. + +2021-06-23 Uroš Bizjak + + PR target/89021 + * config/i386/i386-expand.c (expand_vec_perm_pshufb): + Handle 64bit modes for TARGET_XOP. Use indirect gen_* functions. + * config/i386/mmx.md (mmx_ppermv64): New insn pattern. + * config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ... + * config/i386/sse.md (unspec): ... here. + +2021-06-23 Martin Liska + + PR target/98636 + * optc-save-gen.awk: Put back arm_fp16_format to + checked_options. + +2021-06-23 Uroš Bizjak + + PR target/101175 + * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX. + (bsr): Ditto. + (*bsrhi): Remove. + (clz2): Update RTX pattern for additions. + +2021-06-23 Jakub Jelinek + + PR middle-end/101167 + * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs + and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set. + +2021-06-22 Sergei Trofimovich + + * doc/rtl.texi: drop unbalanced parenthesis. + +2021-06-22 Richard Biener + + PR middle-end/101156 + * gimplify.c (gimplify_expr): Remove premature incorrect + optimization. + +2021-06-22 Jakub Jelinek + + PR tree-optimization/101159 + * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some + comment typos. + +2021-06-22 Jakub Jelinek + + PR middle-end/101160 + * function.c (assign_parms): For decl_result with TYPE_EMPTY_P type + clear crtl->return_rtx instead of keeping it referencing a pseudo. + +2021-06-22 Jakub Jelinek + Andrew Pinski + + PR tree-optimization/101162 + * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer + types. + +2021-06-22 Andrew MacLeod + + * range-op.cc (range_relational_tests): New. + (range_op_tests): Call range_relational_tests. + +2021-06-22 Andrew MacLeod + + * range-op.cc (operator_cast::lhs_op1_relation): New. + (operator_identity::lhs_op1_relation): Mew. + +2021-06-22 Andrew MacLeod + + * range-op.cc (operator_minus::op1_op2_relation_effect): New. + +2021-06-22 Andrew MacLeod + + * range-op.cc (operator_plus::lhs_op1_relation): New. + (operator_plus::lhs_op2_relation): New. + +2021-06-22 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a + relation_oracle if dominators exist. + (ranger_cache::~ranger_cache): Dispose of oracle. + (ranger_cache::dump_bb): Dump oracle. + * gimple-range.cc (fur_source::fur_source): New. + (fur_source::get_operand): Use mmeber query. + (fur_source::get_phi_operand): Use member_query. + (fur_source::query_relation): New. + (fur_source::register_dependency): Delete. + (fur_source::register_relation): New. + (fur_edge::fur_edge): Adjust. + (fur_edge::get_phi_operand): Fix comment. + (fur_edge::query): Delete. + (fur_stmt::fur_stmt): Adjust. + (fur_stmt::query): Delete. + (fur_depend::fur_depend): Adjust. + (fur_depend::register_relation): New. + (fur_depend::register_relation): New. + (fur_list::fur_list): Adjust. + (fur_list::get_operand): Use member query. + (fold_using_range::range_of_range_op): Process and query relations. + (fold_using_range::range_of_address): Adjust dependency call. + (fold_using_range::range_of_phi): Ditto. + (gimple_ranger::gimple_ranger): New. Use ranger_ache oracle. + (fold_using_range::relation_fold_and_or): New. + (fold_using_range::postfold_gcond_edges): New. + * gimple-range.h (class gimple_ranger): Adjust. + (class fur_source): Adjust members. + (class fur_stmt): Ditto. + (class fold_using_range): Ditto. + +2021-06-22 Andrew MacLeod + + * range-op.cc (range_operator::wi_fold): Apply relation effect. + (range_operator::fold_range): Adjust and apply relation effect. + (*::fold_range): Add relation parameters. + (*::op1_range): Ditto. + (*::op2_range): Ditto. + (range_operator::lhs_op1_relation): New. + (range_operator::lhs_op2_relation): New. + (range_operator::op1_op2_relation): New. + (range_operator::op1_op2_relation_effect): New. + (relop_early_resolve): New. + (operator_equal::op1_op2_relation): New. + (operator_equal::fold_range): Call relop_early_resolve. + (operator_not_equal::op1_op2_relation): New. + (operator_not_equal::fold_range): Call relop_early_resolve. + (operator_lt::op1_op2_relation): New. + (operator_lt::fold_range): Call relop_early_resolve. + (operator_le::op1_op2_relation): New. + (operator_le::fold_range): Call relop_early_resolve. + (operator_gt::op1_op2_relation): New. + (operator_gt::fold_range): Call relop_early_resolve. + (operator_ge::op1_op2_relation): New. + (operator_ge::fold_range): Call relop_early_resolve. + * range-op.h (class range_operator): Adjust parameters and methods. + +2021-06-22 Andrew MacLeod + + * Makefile.in (OBJS): Add value-relation.o. + * gimple-range.h: Adjust include files. + * tree-data-ref.c: Adjust include file order. + * value-query.cc (range_query::get_value_range): Default to no oracle. + (range_query::query_relation): New. + (range_query::query_relation): New. + * value-query.h (class range_query): Adjust. + * value-relation.cc: New. + * value-relation.h: New. + +2021-06-22 Richard Biener + + PR tree-optimization/101151 + * tree-ssa-sink.c (statement_sink_location): Expand irreducible + region check. + +2021-06-22 Jojo R + + * config/riscv/riscv.c (thead_c906_tune_info): New. + (riscv_tune_info_table): Use new tune. + +2021-06-22 Richard Biener + + PR tree-optimization/101158 + * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand + checking after checking for matching operation. + +2021-06-22 Richard Biener + + PR tree-optimization/101159 + * tree-vect-patterns.c (vect_recog_popcount_pattern): Add + missing NULL vectype check. + +2021-06-22 Richard Biener + + PR tree-optimization/101154 + * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access. + +2021-06-22 Jakub Jelinek + + PR target/11877 + * config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare. + * config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable. + * config/i386/i386.c (ix86_expand_prologue): Clear it. + * config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx): + Remove "" from match_operand. Emit new insns using emit_move_insn and + set ix86_last_zero_store_uid to INSN_UID of the last store. + Add peephole2s for 1/2/4 stores of const0_rtx following previous + successful peep2s. + +2021-06-22 Martin Liska + + * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format + was changed. + +2021-06-22 Martin Liska + + * gcov-io.h: Remove padding entries. + +2021-06-22 liuhongt + + PR tree-optimization/97770 + * tree-vect-patterns.c (vect_recog_popcount_pattern): + New. + (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern. + +2021-06-22 liuhongt + + PR target/100267 + * config/i386/i386-builtin.def (BDESC): Adjust builtin name. + * config/i386/sse.md (_expand_mask): Rename to .. + (expand_mask): this .. + (*expand_mask): New pre_reload splitter to transform + v{,p}expand* to vmov* when mask is zero, all ones, or has all + ones in it's lower part, otherwise still generate + v{,p}expand*. + +2021-06-22 liuhongt + + PR target/100310 + * config/i386/i386-expand.c + (ix86_expand_special_args_builtin): Keep constm1_operand only + if it satisfies insn's operand predicate. + +2021-06-21 Jason Merrill + + PR target/88529 + * df-scan.c (df_ref_record): Check that regno < endregno. + * function.c (assign_parms, expand_function_end): Do nothing with a + TYPE_EMPTY_P result. + +2021-06-21 Richard Biener + + PR tree-optimization/101120 + * tree-vect-data-refs.c (bump_vector_ptr): Fold the + built increment. + * tree-vect-slp.c (vect_transform_slp_perm_load): Add + DR chain DCE capability. + * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust. + * tree-vect-stmts.c (vectorizable_load): Remove unused + loads in the DR chain for SLP. + +2021-06-21 Jakub Jelinek + + PR inline-asm/100785 + * gimplify.c (gimplify_asm_expr): Don't diagnose errors if + output or input operands were already error_mark_node. + * cfgexpand.c (expand_asm_stmt): If errors are emitted, + remove all inputs, outputs and clobbers from the asm and + set template to "". + +2021-06-21 prathamesh.kulkarni + + * config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b. + (vceq_s16): Likewise. + (vceq_s32): Likewise. + (vceq_u8): Likewise. + (vceq_u16): Likewise. + (vceq_u32): Likewise. + (vceq_p8): Likewise. + (vceqq_s8): Likewise. + (vceqq_s16): Likewise. + (vceqq_s32): Likewise. + (vceqq_u8): Likewise. + (vceqq_u16): Likewise. + (vceqq_u32): Likewise. + (vceqq_p8): Likewise. + (vceq_f32): Gate __a == __b on __FAST_MATH__. + (vceqq_f32): Likewise. + (vceq_f16): Likewise. + (vceqq_f16): Likewise. + +2021-06-21 prathamesh.kulkarni + + PR target/97906 + * config/arm/iterators.md (NEON_VACMP): Remove. + * config/arm/neon.md (neon_vca): Use GLTE instead of GTGE + iterator. + (neon_vca_insn): Likewise. + (neon_vca_insn_unspec): Use NEON_VAGLTE instead of + NEON_VACMP. + +2021-06-21 Richard Biener + + PR tree-optimization/101121 + * tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally + when we just lack a stmt with the desired op when doing permutation. + (vect_build_slp_tree): When caching a failed SLP build attempt + assert that at least one lane is marked as not matching. + +2021-06-21 liuhongt + + PR target/101142 + * config/i386/i386.md: (*anddi_1): Disparage slightly the mask + register alternative. + (*and_1): Ditto. + (*andqi_1): Ditto. + (*andn_1): Ditto. + (*_1): Ditto. + (*qi_1): Ditto. + (*one_cmpl2_1): Ditto. + (*one_cmplsi2_1_zext): Ditto. + (*one_cmplqi2_1): Ditto. + * config/i386/i386.c (x86_order_regs_for_local_alloc): Change + the order of mask registers to be before general registers. + +2021-06-21 Roger Sayle + + PR target/11877 + * config/i386/i386.md: New define_peephole2s to shrink writing + 1, 2 or 4 consecutive zeros to memory when optimizing for size. + +2021-06-18 Jeff Law + + * config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF. + * config/h8300/logical.md (3 logcial expander): Generate + more efficient code when the source can be trivially simplified. + +2021-06-18 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::range_of_def): Calculate + a range if global is not available. + (ranger_cache::entry_range): Fallback to range_of_def. + * gimple-range-cache.h (range_of_def): Adjust prototype. + +2021-06-18 Andrew MacLeod + + PR tree-optimization/101014 + * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor + value list. + (ranger_cache::~ranger_cache): Ditto. + (ranger_cache::enable_new_values): Delete. + (ranger_cache::push_poor_value): Delete. + (ranger_cache::range_of_def): Remove poor value processing. + (ranger_cache::entry_range): Ditto. + (ranger_cache::fill_block_cache): Ditto. + * gimple-range-cache.h (class ranger_cache): Remove poor value members. + * gimple-range.cc (gimple_ranger::range_of_expr): Remove call. + * gimple-range.h (class gimple_ranger): Adjust. + +2021-06-18 Srinath Parvathaneni + + PR target/100856 + * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function + derived from arm_canon_arch. + (arm_canon_arch_option): Call it. + (arm_canon_arch_multilib_option): New function. + * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup. + * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype. + (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro. + (MULTILIB_ARCH_CANONICAL_SPECS): New macro. + (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS. + * config/arm/arm.opt (mlibarch): New option. + * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use + of march on RHS with mlibarch. + +2021-06-18 Marcel Vollweiler + + * config.in: Regenerate. + * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler + functions. + * configure: Regenerate. + * configure.ac: Fix for global_load assembler functions. + +2021-06-18 Richard Biener + + PR tree-optimization/101112 + * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition + to lookup a pattern stmt def. + +2021-06-18 Jakub Jelinek + + PR middle-end/101062 + * stor-layout.c (finish_bitfield_layout): Don't add bitfield + representatives in QUAL_UNION_TYPE. + +2021-06-18 Andrew Pinski + + * tree-ssa-phiopt.c (replace_phi_edge_with_variable): + Add counting of how many times it is done. + (factor_out_conditional_conversion): Likewise. + (match_simplify_replacement): Likewise. + (value_replacement): Likewise. + (spaceship_replacement): Likewise. + (cond_store_replacement): Likewise. + (cond_if_else_store_replacement_1): Likewise. + (hoist_adjacent_loads): Likewise. + +2021-06-18 Andrew Pinski + + * tree-cfg.c (verify_gimple_assign_unary): Reject point and offset + types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR. + (verify_gimple_assign_binary): Reject point and offset types on + MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR, + FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR, + FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR. + +2021-06-18 Michael Meissner + + * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA + 3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions. + * config/rs6000/rs6000.md (s3, IEEE128 iterator): + New insns. + +2021-06-17 Aaron Sawdey + + * config/rs6000/genfusion.pl (gen_logical_addsubf): Add + earlyclobber to alts 0/1. + (gen_addadd): Add earlyclobber to alts 0/1. + * config/rs6000/fusion.md: Regenerate file. + +2021-06-17 Trevor Saunders + + * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec. + +2021-06-17 Andrew MacLeod + + * gimple-range-cache.cc: Comment cleanups. + * gimple-range-gori.cc: Comment cleanups. + * gimple-range.cc: Comment/spacing cleanups + * value-range.h: Comment cleanups. + +2021-06-17 H.J. Lu + + PR target/100704 + * calls.c (expand_call): Replace PUSH_ARGS with + targetm.calls.push_argument (0). + (emit_library_call_value_1): Likewise. + * defaults.h (PUSH_ARGS): Removed. + (PUSH_ARGS_REVERSED): Replace PUSH_ARGS with + targetm.calls.push_argument (0). + * expr.c (block_move_libcall_safe_for_call_parm): Likewise. + (emit_push_insn): Pass the number bytes to push to + targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0. + * hooks.c (hook_bool_uint_true): New. + * hooks.h (hook_bool_uint_true): Likewise. + * rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with + targetm.calls.push_argument (0). + * target.def (push_argument): Add a targetm.calls hook. + * targhooks.c (default_push_argument): New. + * targhooks.h (default_push_argument): Likewise. + * config/bpf/bpf.h (PUSH_ARGS): Removed. + * config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New. + * config/cr16/cr16.h (PUSH_ARGS): Removed. + * config/i386/i386.c (ix86_push_argument): New. + (TARGET_PUSH_ARGUMENT): Likewise. + * config/i386/i386.h (PUSH_ARGS): Removed. + * config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New. + * config/m32c/m32c.h (PUSH_ARGS): Removed. + * config/nios2/nios2.h (PUSH_ARGS): Likewise. + * config/pru/pru.h (PUSH_ARGS): Likewise. + * doc/tm.texi.in: Remove PUSH_ARGS documentation. Add + TARGET_PUSH_ARGUMENT hook. + * doc/tm.texi: Regenerated. + +2021-06-17 Uroš Bizjak + + PR target/97194 + * config/i386/i386-expand.c (expand_vector_set_var): + Handle V2FS mode remapping. Pass TARGET_MMX_WITH_SSE to + ix86_expand_vector_init_duplicate. + (ix86_expand_vector_init_duplicate): Emit insv_1 for + QImode for !TARGET_PARTIAL_REG_STALL. + * config/i386/predicates.md (vec_setm_mmx_operand): New predicate. + * config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand + as operand 2 predicate. Call ix86_expand_vector_set_var + for non-constant index operand. + (vec_setv2si): Ditto. + (vec_setv4hi): Ditto. + (vec_setv8qi): ditto. + +2021-06-17 Aldy Hernandez + + PR tree-optimization/100790 + * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz + code. + +2021-06-17 Martin Liska + + * doc/invoke.texi: Use consistently -O1 instead of -O. + +2021-06-17 Martin Liska + + * gcov-io.h: Update documentation entry about string format. + +2021-06-17 Marius Hillenbrand + + PR target/100871 + * config/s390/vecintrin.h (vec_doublee): Fix to use + __builtin_s390_vflls. + (vec_floate): Fix to use __builtin_s390_vflrd. + +2021-06-17 Trevor Saunders + + * dominance.c (get_dominated_to_depth): Return auto_vec. + * dominance.h (get_dominated_to_depth): Likewise. + (get_all_dominated_blocks): Likewise. + * cfgcleanup.c (delete_unreachable_blocks): Adjust. + * gcse.c (hoist_code): Likewise. + * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise. + * tree-parloops.c (oacc_entry_exit_ok): Likewise. + * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise. + * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise. + +2021-06-17 Trevor Saunders + + * dominance.c (get_dominated_by_region): Return auto_vec. + * dominance.h (get_dominated_by_region): Likewise. + * tree-cfg.c (gimple_duplicate_sese_region): Adjust. + (gimple_duplicate_sese_tail): Likewise. + (move_sese_region_to_fn): Likewise. + +2021-06-17 Trevor Saunders + + * dominance.c (get_dominated_by): Return auto_vec. + * dominance.h (get_dominated_by): Likewise. + * auto-profile.c (afdo_find_equiv_class): Adjust. + * cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise. + * loop-unroll.c (unroll_loop_runtime_iterations): Likewise. + * tree-cfg.c (test_linear_chain): Likewise. + (test_diamond): Likewise. + +2021-06-17 Trevor Saunders + + * cfgloop.h (get_loop_hot_path): Return auto_vec. + * cfgloopanal.c (get_loop_hot_path): Likewise. + * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise. + +2021-06-17 Trevor Saunders + + * cgraph.c (cgraph_node::collect_callers): Return + auto_vec. + * cgraph.h (cgraph_node::collect_callers): Likewise. + * ipa-cp.c (create_specialized_node): Adjust. + (decide_about_value): Likewise. + (decide_whether_version_node): Likewise. + * ipa-sra.c (process_isra_node_results): Likewise. + +2021-06-17 Trevor Saunders + + * vec.h (vl_ptr>::using_auto_storage): Handle null m_vec. + (auto_vec::auto_vec): Define move constructor, and delete copy + constructor. + (auto_vec::operator=): Define move assignment and delete copy + assignment. + +2021-06-17 Aldy Hernandez + + * gimple-range.cc (debug_seed_ranger): New. + (dump_ranger): New. + (debug_ranger): New. + +2021-06-17 Richard Biener + + PR tree-optimization/54400 + * tree-vectorizer.h (enum slp_instance_kind): Add + slp_inst_kind_bb_reduc. + (reduction_fn_for_scalar_code): Declare. + * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence): + Check SLP_INSTANCE_KIND instead of looking at the + representative. + (vect_slp_analyze_instance_alignment): Likewise. + * tree-vect-loop.c (reduction_fn_for_scalar_code): Export. + * tree-vect-slp.c (vect_slp_linearize_chain): Split out + chain linearization from vect_build_slp_tree_2 and generalize + for the use of BB reduction vectorization. + (vect_build_slp_tree_2): Adjust accordingly. + (vect_optimize_slp): Elide permutes at the root of BB reduction + instances. + (vectorizable_bb_reduc_epilogue): New function. + (vect_slp_prune_covered_roots): Likewise. + (vect_slp_analyze_operations): Use them. + (vect_slp_check_for_constructors): Recognize associatable + chains for BB reduction vectorization. + (vectorize_slp_instance_root_stmt): Generate code for the + BB reduction epilogue. + +2021-06-17 Andrew MacLeod + + * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with + may_recompute_p. + (gori_compute::may_recompute_p): New. + (gori_compute::outgoing_edge_range_p): Perform recomputations. + * gimple-range-gori.h (class gori_compute): Add prototype. + +2021-06-17 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::range_on_edge): Always return + true when a range can be calculated. + * gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p. + +2021-06-16 Martin Sebor + + * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete): + Correct documented defaults. + +2021-06-16 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize + m_new_value_p directly. + +2021-06-16 Uroš Bizjak + + PR target/89021 + * config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv): + Handle 64bit modes for TARGET_SSE4_1. + (expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3. + (expand_vec_perm_even_odd_pack): Handle V4HI mode. + (expand_vec_perm_even_odd_1) : Expand via + expand_vec_perm_pshufb2 for TARGET_SSSE3 and via + expand_vec_perm_even_odd_pack for TARGET_SSE4_1. + * config/i386/mmx.md (mmx_packusdw): New insn pattern. + +2021-06-16 Jonathan Wright + + * config/aarch64/aarch64-simd.md (aarch64_hn): + Change to an expander that emits the correct instruction + depending on endianness. + (aarch64_hn_insn_le): Define. + (aarch64_hn_insn_be): Define. + +2021-06-16 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Split generator + for aarch64_qmovn builtins into scalar and vector + variants. + * config/aarch64/aarch64-simd.md (aarch64_qmovn_insn_le): + Define. + (aarch64_qmovn_insn_be): Define. + (aarch64_qmovn): Split into scalar and vector + variants. Change vector variant to an expander that emits the + correct instruction depending on endianness. + +2021-06-16 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Split generator + for aarch64_sqmovun builtins into scalar and vector variants. + * config/aarch64/aarch64-simd.md (aarch64_sqmovun): + Split into scalar and vector variants. Change vector variant + to an expander that emits the correct instruction depending + on endianness. + (aarch64_sqmovun_insn_le): Define. + (aarch64_sqmovun_insn_be): Define. + +2021-06-16 Jonathan Wright + + * config/aarch64/aarch64-simd.md (aarch64_xtn_insn_le): + Define - modeling zero-high-half semantics. + (aarch64_xtn): Change to an expander that emits the + appropriate instruction depending on endianness. + (aarch64_xtn_insn_be): Define - modeling zero-high-half + semantics. + (aarch64_xtn2_le): Rename to... + (aarch64_xtn2_insn_le): This. + (aarch64_xtn2_be): Rename to... + (aarch64_xtn2_insn_be): This. + (vec_pack_trunc_): Emit truncation instruction instead + of aarch64_xtn. + * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode + attribute iterator. + +2021-06-16 Martin Jambor + + PR tree-optimization/100453 + * tree-sra.c (create_access): Disqualify any const candidates + which are written to. + (sra_modify_expr): Do not store sub-replacements back to a const base. + (handle_unscalarized_data_in_subtree): Likewise. + (sra_modify_assign): Likewise. Earlier, use TREE_READONLy test + instead of constant_decl_p. + +2021-06-16 Jakub Jelinek + + PR middle-end/101062 + * stor-layout.c (finish_bitfield_representative): For fields in unions + assume nextf is always NULL. + (finish_bitfield_layout): Compute bit field representatives also in + unions, but handle it as if each bitfield was the only field in the + aggregate. + +2021-06-16 Richard Biener + + PR tree-optimization/101088 + * tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for + supported refs on edges. Do not assert same ref but + different kind stores are unsuported but mark them so. + (hoist_memory_references): Only look for supported refs + on exits. + +2021-06-16 Roger Sayle + + PR rtl-optimization/46235 + * config/i386/i386.md: New define_split for bt followed by cmov. + (*bt_setcqi): New define_insn_and_split for bt followed by setc. + (*bt_setncqi): New define_insn_and_split for bt then setnc. + (*bt_setnc): New define_insn_and_split for bt followed + by setnc with zero extension. + +2021-06-16 Richard Biener + + PR tree-optimization/101083 + * tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get + vectype as argument. + (vect_build_slp_tree_2): Adjust. + +2021-06-15 Martin Sebor + + PR middle-end/100876 + * builtins.c: (gimple_call_return_array): Account for size_t + mangling as either unsigned int or unsigned long + +2021-06-15 Jeff Law + + * compare-elim.c (try_eliminate_compare): Run DCE to clean things + up before eliminating comparisons. + +2021-06-15 Aldy Hernandez + + * range-op.cc (operator_bitwise_or::wi_fold): Make sure + nonzero|X is nonzero. + (range_op_bitwise_and_tests): Add tests for above. + +2021-06-15 Carl Love + + PR target/101022 + * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the + enum definition. + (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2 + definitions. + +2021-06-15 Tobias Burnus + + PR fortran/92568 + * gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET. + (struct gimplify_omp_ctx): Extend defaultmap array by one. + (new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET]. + (omp_notice_variable): Update type classification for Fortran. + (gimplify_scan_omp_clauses): Update calls for new argument; handle + GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY. + * langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument. + * langhooks.c (lhd_omp_scalar_p): Likewise. + (LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New. + (LANG_HOOKS_DECLS): Add them. + * langhooks.h (struct lang_hooks_for_decls): Add new hooks, update + omp_scalar_p pointer type to include the new bool argument. + +2021-06-15 David Malcolm + + * doc/analyzer.texi + (Special Functions for Debugging the Analyzer): Add + __analyzer_dump_capacity. + +2021-06-15 Jakub Jelinek + + PR target/101046 + * expr.c (expand_expr_real_2) : Clear subtarget when changing mode. + +2021-06-15 Richard Biener + + * cfgloopanal.c (mark_irreducible_loops): Use a dominance + check to identify loop latches. + * cfgloop.c (verify_loop_structure): Likewise. + * loop-init.c (apply_loop_flags): Allow marked irreducible + regions even with multiple latches. + * predict.c (rebuild_frequencies): Simplify. + +2021-06-15 Richard Biener + + * tree-ssa-threadupdate.c + (jump_thread_path_registry::mark_threaded_blocks): Assert we + have marked irreducible regions. + +2021-06-14 Martin Sebor + + PR c++/100876 + * builtins.c (gimple_call_return_array): Check for attribute fn spec. + Handle calls to placement new. + (ndecl_dealloc_argno): Avoid placement delete. + +2021-06-14 Peter Bergner + + PR target/100777 + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use + create_tmp_reg_or_ssa_name(). + +2021-06-14 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust. + (ranger_cache::enable_new_values): Set to specified value and + return the old value. + (ranger_cache::disable_new_values): Delete. + (ranger_cache::fill_block_cache): Disable non 1st order derived + poor values. + * gimple-range-cache.h (ranger_cache): Adjust prototypes. + * gimple-range.cc (gimple_ranger::range_of_expr): Adjust. + +2021-06-14 Uroš Bizjak + + PR target/101058 + * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): + Return true early when testing with V2HImode. + * config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1. + +2021-06-14 Christophe Lyon + + * config/arm/mve.md (mve_vec_unpack_lo_): New pattern. + (mve_vec_unpack_hi_): New pattern. + (@mve_vec_pack_trunc_lo_): New pattern. + (mve_vmovntq_): Prefix with '@'. + * config/arm/neon.md (vec_unpack_hi_): Move to + vec-common.md. + (vec_unpack_lo_): Likewise. + (vec_pack_trunc_): Rename to + neon_quad_vec_pack_trunc_. + * config/arm/vec-common.md (vec_unpack_hi_): New + pattern. + (vec_unpack_lo_): New. + (vec_pack_trunc_): New. + +2021-06-14 Richard Biener + + PR tree-optimization/100934 + * tree-ssa-dom.c (pass_dominator::execute): Properly + mark irreducible regions. + +2021-06-14 Martin Liska + + * doc/invoke.texi: Put r{...} on the same line as @item. + +2021-06-14 Martin Liska + + * doc/invoke.texi: Add missing newline. + +2021-06-14 Martin Liska + + * doc/invoke.texi: Remove '+' charasters. + +2021-06-14 Claudiu Zissulescu + + * config.gcc (arc): Add support for with_cpu option. + * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu. + +2021-06-14 Richard Biener + + PR tree-optimization/101031 + * tree-ssa-strlen.c (maybe_invalidate): Increment max_size + instead of size when accounting for a possibly string + terminating nul. + +2021-06-14 Martin Liska + + * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[]. + +2021-06-14 Aldy Hernandez + + * value-query.cc (gimple_range_global): Call get_range_global + if called after inlining. + +2021-06-13 Uroš Bizjak + + PR target/101021 + * config/i386/i386-expand.c (expand_vec_perm_pshufb): + Emit constant permutation insn directly from here. + +2021-06-13 Trevor Saunders + + * attribs.c (find_attribute_namespace): Iterate over vec<> with + range based for. + * auto-profile.c (afdo_find_equiv_class): Likewise. + * gcc.c (do_specs_vec): Likewise. + (do_spec_1): Likewise. + (driver::set_up_specs): Likewise. + * gimple-loop-jam.c (any_access_function_variant_p): Likewise. + * gimple-ssa-store-merging.c (compatible_load_p): Likewise. + (imm_store_chain_info::try_coalesce_bswap): Likewise. + (imm_store_chain_info::coalesce_immediate_stores): Likewise. + (get_location_for_stmts): Likewise. + * graphite-poly.c (print_iteration_domains): Likewise. + (free_poly_bb): Likewise. + (remove_gbbs_in_scop): Likewise. + (free_scop): Likewise. + (dump_gbb_cases): Likewise. + (dump_gbb_conditions): Likewise. + (print_pdrs): Likewise. + (print_scop): Likewise. + * ifcvt.c (cond_move_process_if_block): Likewise. + * lower-subreg.c (decompose_multiword_subregs): Likewise. + * regcprop.c (pass_cprop_hardreg::execute): Likewise. + * sanopt.c (sanitize_rewrite_addressable_params): Likewise. + * sel-sched-dump.c (dump_insn_vector): Likewise. + * store-motion.c (store_ops_ok): Likewise. + (store_killed_in_insn): Likewise. + * timevar.c (timer::named_items::print): Likewise. + * tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise. + (cleanup_tree_cfg_noloop): Likewise. + * tree-data-ref.c (dump_data_references): Likewise. + (print_dir_vectors): Likewise. + (print_dist_vectors): Likewise. + (dump_data_dependence_relations): Likewise. + (dump_dist_dir_vectors): Likewise. + (dump_ddrs): Likewise. + (create_runtime_alias_checks): Likewise. + (free_subscripts): Likewise. + (save_dist_v): Likewise. + (save_dir_v): Likewise. + (invariant_access_functions): Likewise. + (same_access_functions): Likewise. + (access_functions_are_affine_or_constant_p): Likewise. + (find_data_references_in_stmt): Likewise. + (graphite_find_data_references_in_stmt): Likewise. + (free_dependence_relations): Likewise. + (free_data_refs): Likewise. + * tree-inline.c (copy_debug_stmts): Likewise. + * tree-into-ssa.c (dump_currdefs): Likewise. + (rewrite_update_phi_arguments): Likewise. + * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise. + * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr): + Likewise. + (vect_slp_analyze_node_dependences): Likewise. + (vect_slp_analyze_instance_dependence): Likewise. + (vect_record_base_alignments): Likewise. + (vect_get_peeling_costs_all_drs): Likewise. + (vect_peeling_supportable): Likewise. + * tree-vectorizer.c (vec_info::~vec_info): Likewise. + (vec_info::free_stmt_vec_infos): Likewise. + +2021-06-13 Jeff Law + + * config/h8300/logical.md (qi3_1): New pattern. + (andqi3_1): Removed. + (qi3_1): Do not split for IOR/XOR a single bit. + (H8/SX bit logicals): Split out from other patterns. + * config/h8300/multiply.md (mulqihi3_const): Renamed from + mulqihi3_const_clobber_flags. + (mulqihi3, mulhisi3_const, mulhisi3): Similarly + +2021-06-13 H.J. Lu + + PR target/101023 + * config/i386/i386.c (ix86_expand_prologue): Set red_zone_used + to true if red zone is used. + (ix86_output_indirect_jmp): Replace ix86_red_zone_size with + ix86_red_zone_used. + * config/i386/i386.h (machine_function): Add red_zone_used. + (ix86_red_zone_size): Removed. + (ix86_red_zone_used): New. + * config/i386/i386.md (peephole2 patterns): Replace + ix86_red_zone_size with ix86_red_zone_used. + +2021-06-12 Jason Merrill + + * doc/extend.texi (unused variable attribute): Applies to + structure fields as well. + +2021-06-12 Eugene Rozenfeld + + * auto-profile.c (read_profile): fix a typo in an error string + +2021-06-11 Thomas Schwinge + + * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true' + default argument. + * tree-pretty-print.c (dump_omp_clauses): Update. + (dump_generic_node) : Use it. + +2021-06-11 Srinath Parvathaneni + + PR target/101016 + * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0, + int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for + the polymorphic variants matching code. + (__arm_vld1q_z): Likewise. + (__arm_vld2q): Likewise. + (__arm_vld4q): Likewise. + (__arm_vldrbq_gather_offset): Likewise. + (__arm_vldrbq_gather_offset_z): Likewise. + +2021-06-11 Roger Sayle + + PR tree-optimization/96392 + * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype. + +2021-06-11 Roger Sayle + + PR tree-optimization/96392 + * fold-const.c (fold_real_zero_addition_p): Take both arguments + of the addition or subtraction, not just the zero. Use this + other argument in tests for signaling NaNs and signed zeros. + (tree_expr_maybe_real_minus_zero_p): New predicate. + * fold-const.h (fold_real_zero_addition_p): Update prototype. + (tree_expr_maybe_real_minus_zero_p): New function prototype. + * match.pd: Update calls to fold_real_zero_addition_p. + Replace HONOR_NANS with tree_expr_maybe_nan_p. + Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p. + Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p. + * tree-ssa-reassoc.c (eliminate_using_constants): Update + call to fold_real_zero_addition_p. + +2021-06-11 Richard Biener + + PR tree-optimization/101025 + * tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process + all refs that require dependence checking. + +2021-06-11 Richard Biener + + PR tree-optimization/101028 + * tree-vect-slp.c (vect_build_slp_tree_2): When SLP + reassoc discovery fails fatally, mark appropriate lanes + in matches[] so. + +2021-06-11 Richard Biener + + PR tree-optimization/101026 + * tree-vect-slp.c (vect_build_slp_tree_2): Make sure we + have a representative for the associated chain nodes. + +2021-06-11 Jakub Jelinek + + PR rtl-optimization/101008 + * simplify-rtx.c (relational_result): New function. + (simplify_logical_relational_operation, + simplify_relational_operation): Use it. + +2021-06-11 Jakub Jelinek + + PR target/101007 + * config/i386/sse.md (*vec_concat_0_1): Require TARGET_SSE2. + +2021-06-11 Uroš Bizjak + + PR target/101021 + * config/i386/i386-expand.c (expand_vec_perm_pshufb): Return + false if the permutation can be implemented with constant + permutation instruction in wider mode. + (canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb. + Handle V8QImode and V4HImode. + +2021-06-11 Martin Liska + + PR gcov-profile/100788 + * common.opt: Add new option. + * coverage.c (coverage_begin_function): Emit warning instead on + the internal compiler error. + * doc/invoke.texi: Document the option. + * toplev.c (process_options): Enable it by default. + +2021-06-11 Richard Biener + + PR middle-end/101009 + * tree-data-ref.c (build_classic_dist_vector_1): Make sure + to set *init_b to true when we encounter a constant equal + index pair. + (compute_affine_dependence): Also dump the actual DR_REF. + +2021-06-10 Aldy Hernandez + + PR tree-optimization/100984 + * gimple-ssa-evrp.c (ssa_equiv_stack): Use auto_vec for + replacements table. + (ssa_equiv_stack::~ssa_equiv_stack): Remove. + +2021-06-11 Kewen Lin + + * config/rs6000/rs6000.md + (floatsi2_lfiwax__mem_zext): New + define_insn_and_split. + +2021-06-11 Richard Biener + + * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort + to sort operands of the associative chain. + +2021-06-11 Richard Biener + + * system.h (gcc_stablesort_r): Declare. + * sort.cc (gcc_sort_r): Support stable sort. + (gcc_stablesort_r): Define. + * vec.h (vec<>::stablesort): Add. + +2021-06-10 Uroš Bizjak + + PR target/89021 + * config/i386/i386-expand.c (ix86_split_mmx_punpck): + Handle V2SF mode. Emit SHUFPS to fixup unpack-high for V2SF mode. + (expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1. + (expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3. + (expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1. + (expand_vec_perm_interleave2): Handle 64bit modes. + (expand_vec_perm_even_odd_pack): Handle V8QI mode. + (expand_vec_perm_even_odd_1): Ditto. + (ix86_vectorize_vec_perm_const): Ditto. + * config/i386/i386.md (UNSPEC_PSHUFB): Move from ... + * config/i386/sse.md: ... here. + * config/i386/mmx.md (*vec_interleave_lowv2sf): + New insn_and_split pattern. + (*vec_interleave_highv2sf): Ditto. + (mmx_pshufbv8qi3): New insn pattern. + (*mmx_pblendw): Ditto. + +2021-06-10 Peter Bergner + + * config/rs6000/rs6000-builtin.def (build_pair): New built-in. + (build_acc): Likewise. + * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble + source operands in little-endian mode. + (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR. + (mma_init_builtins): Likewise. + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness + ordering for the MMA assemble and build source operands. + * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair): + Document. + (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove + documentation. + +2021-06-10 Jeff Law + + * config/h8300/h8300.c (select_cc_mode): Handle MEM. Use + REG_P. + * config/h8300/extensions.md: Replace _clobber_flags patterns + with . + +2021-06-10 Robin Dapp + + * config/s390/vector.md (vcond_mask_): Change to + (vcond_mask_): this. + +2021-06-10 Andrew Stubbs + Thomas Schwinge + + * omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into... + (BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these. + * gimple.h (enum gf_mask): Split + 'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into + 'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and + 'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'. + (is_gimple_omp_oacc): Update. + * gimple-pretty-print.c (dump_gimple_omp_target): Likewise. + * gimplify.c (gimplify_omp_target_update): Likewise. + * omp-expand.c (expand_omp_target, build_omp_regions_1) + (omp_make_gimple_edges): Likewise. + * omp-low.c (check_omp_nesting_restrictions, lower_omp_target): + Likewise. + +2021-06-10 Aldy Hernandez + + * value-query.cc (value_query::value_on_edge): Rename name to + expr. + (range_query::range_on_edge): Same. + (range_query::value_of_expr): Same. + (range_query::value_on_edge): Same. + * value-query.h (class value_query): Same. + (class range_query): Same. + +2021-06-10 Richard Biener + + PR tree-optimization/101003 + * tree-vect-slp.c (vect_build_slp_tree_2): Appropriately + use the pattern stmt defs when linearizing a chain. + +2021-06-10 Jakub Jelinek + + PR debug/100852 + * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use + prev_nonnote_nondebug_insn instead of prev_nonnote_insn. + +2021-06-10 Clement Chigot + + * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive. + * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise. + +2021-06-09 Andrew Pinski + + PR tree-optimization/100925 + * match.pd (a ? CST1 : CST2): Limit transformations + that would produce a negative to integeral types only. + Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also. + +2021-06-09 Jeff Law + + Revert: + 2021-06-09 Jeff Law + + * doc/tm.texi: Correctly update. + +2021-06-09 Jeff Law + + * doc/tm.texi: Correctly update. + +2021-06-09 H.J. Lu + + PR other/100735 + * doc/tm.texi.in (Trampolines): Add a missing blank line. + +2021-06-09 Paul Eggert + + PR other/100735 + * doc/invoke.texi (Code Gen Options); Document that -fno-trampolines + and -ftrampolines work only with Ada. + * doc/tm.texi.in (Trampolines): Likewise. + * doc/tm.texi: Regenerated. + +2021-06-09 Carl Love + + * config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq): + Add define for new builtins. + * config/rs6000/altivec.md(altivec_vreveti2): Add define_expand. + * config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL): Add + overloaded builtin definitions. + (VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D, + VSIGNEXTSD2Q): Add builtin expansions. + (SIGNEXT): Add P10 overload definition. + * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL, + P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions. + * config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn. + (vsignextend_v2di_v1ti, vsignextend_qi_, vsignextend_hi_, + vsignextend_si_v2di)[VIlong]: Add define_expand. + Make define_insn vsx_sign_extend_si_v2di visible. + * doc/extend.texi: Add documentation for the vec_signexti, + vec_signextll builtins and vec_signextq. + +2021-06-09 Carl Love + + * config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf, + __floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw, + __floattikf_sw, __floatuntikf_sw respectively. + * config/rs6000/rs6000.md (floatti2, floatunsti2, + fix_truncti2, fixuns_truncti2): Add + define_insn for mode IEEE 128. + +2021-06-09 Carl Love + + * config/rs6000/altivec.md (altivec_vslq, altivec_vsrq): + Rename to altivec_vslq_, altivec_vsrq_, mode VEC_TI. + * config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md. + (vashlv1ti3): Change to vashl3, mode VEC_TI. + (vlshrv1ti3): Change to vlshr3, mode VEC_TI. + * config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update + uses of VSX_TI to VEC_TI. + +2021-06-09 Carl Love + + * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns. + +2021-06-09 Carl Love + + * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new + builtins. + * config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD, + UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs. + (altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud, + altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq, + altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm, + altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq, + altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New + define_insn. + (vec_widen_umult_even_v2di, vec_widen_smult_even_v2di, + vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi, + altivec_vrlqnm): New define_expands. + * config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P, + VCMPGTUT_P): Add macro expansions. + (BU_P10V_AV_P): Add builtin predicate definition. + (VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI, + CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P, + VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ, + VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI, + MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions. + (VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions. + * config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT, + P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI, + P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST, + P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI, + P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI, + P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD, + P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD, + P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS, + P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI, + P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ, + P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ, + P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P, + P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P, + P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET, + P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P, + P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI, + P10V_BUILTIN_MODU_V1TI): + New overloaded definitions. + (rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT, + P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI, + P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT, + P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI, + P10V_BUILTIN_CMPLE_U1TI]: New case statements. + (rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]: + New assignments. + (altivec_init_builtins): New E_V1TImode case statement. + (builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD, + P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI, + P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI, + P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements. + * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode, + E_V1TImode]: New case statements. + * config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum + value RS6000_BTI_bool_V1TI. + * config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti, + vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti, + vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p, + vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3, + vlshrv1ti3, vashrv1ti3): New define_expands. + * config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ, + UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ, + UNSPEC_VSX_MODUQ): New unspecs. + (mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti, + vsx_diveu_v1ti, vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New + define_insns. + (vcmpnet): New define_expand. + * doc/extend.texi: Add documentation for the new builtins vec_rl, + vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo, + vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt, + vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt, + vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt, + vec_any_ge, vec_any_le. + +2021-06-09 Carl Love + + * config/rs6000/altivec.md (altivec_vrlmi): Fix + bug in argument generation. + +2021-06-09 Christophe Lyon + + * config/arm/iterators.md (): Remove VCLZQ_U, VCLZQ_S. + (VCLZQ): Remove. + * config/arm/mve.md (mve_vclzq_): Add '@' prefix, + remove iterator. + (mve_vclzq_u): New. + * config/arm/neon.md (clz2): Rename to neon_vclz. + (neon_vclz + + * config/arm/mve.md (mve_vhaddq_): Prefix with '@'. + (@mve_vrhaddq_hadd): Likewise. + * config/arm/vec-common.md (avg3_floor, uavg3_floor) + (avg3_ceil", uavg3_ceil): New patterns. + +2021-06-09 imba-tjd <109224573@qq.com> + + * doc/invoke.texi: Fix typo. + +2021-06-09 Roger Sayle + + PR middle-end/53267 + * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]: + Support evaluation of fmod/fmodf/fmodl at compile-time. + +2021-06-09 Richard Biener + + PR tree-optimization/100981 + * tree-vect-loop.c (vect_create_epilog_for_reduction): Use + gimple_get_lhs to also handle calls. + * tree-vect-slp-patterns.c (complex_pattern::build): Transfer + reduction info. + +2021-06-09 Richard Biener + + PR tree-optimization/97832 + * tree-vectorizer.h (_slp_tree::failed): New. + * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize + failed member. + (_slp_tree::~_slp_tree): Free failed. + (vect_build_slp_tree): Retain failed nodes and record + matches in them, copying that back out when running + into a cached fail. Dump start and end of discovery. + (dt_sort_cmp): New. + (vect_build_slp_tree_2): Handle associatable chains + together doing more aggressive operand swapping. + +2021-06-09 H.J. Lu + + PR target/100896 + * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and + GNU targets. + * doc/install.texi: Require glibc 2.1 and binutils 2.12 for + Linux and GNU targets. + +2021-06-09 Richard Biener + + * tree-vect-stmts.c (vect_is_simple_use): Always get dt + from the stmt. + +2021-06-09 Claudiu Zissulescu + + * config/arc/arc.md (loop_end): Change it to + define_insn_and_split. + +2021-06-09 Claudiu Zissulescu + + * config/arc/arc.md (maddhisi4): Use VMAC2H instruction. + (machi): New pattern. + (umaddhisi4): Use VMAC2HU instruction. + (umachi): New pattern. + +2021-06-09 Claudiu Zissulescu + + * config/arc/arc-protos.h (arc_split_move_p): New prototype. + * config/arc/arc.c (arc_split_move_p): New function. + (arc_split_move): Clean up. + * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p. + (movdf_insn): Likewise. + * config/arc/simdext.md (mov_insn): Likewise. + +2021-06-09 Uroš Bizjak + + PR target/100936 + * config/i386/i386.c (print_operand_address_as): Rename "no_rip" + argument to "raw". Do not emit segment overrides when "raw" is true. + +2021-06-09 Martin Liska + + * doc/gcov.texi: Create a proper JSON files. + * doc/invoke.texi: Remove dots in order to make it a valid + JSON object. + +2021-06-09 Xionghu Luo + + * config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New. + (insn_is_load_p): Use pattern_is_rotate64. + (insn_is_swap_p): Likewise. + (quad_aligned_load_p): Likewise. + (const_load_sequence_p): Likewise. + (replace_swapped_aligned_load): Likewise. + (recombine_lvx_pattern): Likewise. + (recombine_stvx_pattern): Likewise. + +2021-06-09 Andrew MacLeod + + * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a + fur_stmt source record. + * gimple-range.cc (fur_source::get_operand): Generic range query. + (fur_source::get_phi_operand): New. + (fur_source::register_dependency): New. + (fur_source::query): New. + (class fur_edge): New. Edge source for operands. + (fur_edge::fur_edge): New. + (fur_edge::get_operand): New. + (fur_edge::get_phi_operand): New. + (fur_edge::query): New. + (fur_stmt::fur_stmt): New. + (fur_stmt::get_operand): New. + (fur_stmt::get_phi_operand): New. + (fur_stmt::query): New. + (class fur_depend): New. Statement source and process dependencies. + (fur_depend::fur_depend): New. + (fur_depend::register_dependency): New. + (class fur_list): New. List source for operands. + (fur_list::fur_list): New. + (fur_list::get_operand): New. + (fur_list::get_phi_operand): New. + (fold_range): New. Instantiate appropriate fur_source class and fold. + (fold_using_range::range_of_range_op): Use new API. + (fold_using_range::range_of_address): Ditto. + (fold_using_range::range_of_phi): Ditto. + (imple_ranger::fold_range_internal): Use fur_depend class. + (fold_using_range::range_of_ssa_name_with_loop_info): Use new API. + * gimple-range.h (class fur_source): Now a base class. + (class fur_stmt): New. + (fold_range): New prototypes. + (fur_source::fur_source): Delete. + +2021-06-08 Andrew Pinski + + PR tree-optimization/25290 + * tree-ssa-phiopt.c (xor_replacement): Delete. + (tree_ssa_phiopt_worker): Delete use of xor_replacement. + (match_simplify_replacement): Allow one cheap preparation + statement that can be moved to before the if. + +2021-06-08 Pat Haugen + + * config/rs6000/power10.md (power10-fused-load, power10-fused-store, + power10-fused_alu, power10-fused-vec, power10-fused-branch): New. + +2021-06-08 Jeff Law + + * config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split. + Create length attribute on define_insn_and_split. Only split for cases which we + know will use AND. + (andqi3_1): Renamed from andqi3_1_clobber_flags. Only handle AND here and + fix length computation. + (bmsx): Combine QImode and HImode H8/SX patterns using iterator. + +2021-06-08 Richard Biener + + PR tree-optimization/100923 + * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to + the operand vector to be valueized. + (valueize_refs): Likewise. + (valueize_shared_reference_ops_from_ref): Adjust. + (valueize_shared_reference_ops_from_call): Likewise. + (vn_reference_lookup_3): Likewise. + (vn_reference_lookup_pieces): Likewise. Re-valueize + with honoring availability when we are about to create + the ao_ref and valueized before. + (vn_reference_lookup): Likewise. + (vn_reference_insert_pieces): Adjust. + +2021-06-08 Richard Biener + + * tree-vectorizer.h (_slp_instance::root_stmt): Change to... + (_slp_instance::root_stmts): ... a vector. + (SLP_INSTANCE_ROOT_STMT): Rename to ... + (SLP_INSTANCE_ROOT_STMTS): ... this. + (slp_root::root): Change to... + (slp_root::roots): ... a vector. + (slp_root::slp_root): Adjust. + * tree-vect-slp.c (_slp_instance::location): Adjust. + (vect_free_slp_instance): Release the root stmt vector. + (vect_build_slp_instance): Adjust. + (vect_analyze_slp): Likewise. + (_bb_vec_info::~_bb_vec_info): Likewise. + (vect_slp_analyze_operations): Likewise. + (vect_bb_vectorization_profitable_p): Likewise. Adjust + costs for the root stmt. + (vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs + as root stmts. + (vect_slp_analyze_bb_1): Simplify by marking all root stmts + as pure_slp. + (vectorize_slp_instance_root_stmt): Adjust. + (vect_schedule_slp): Likewise. + +2021-06-08 Aldy Hernandez + + * gimple-ssa-evrp.c (class ssa_equiv_stack): New. + (ssa_equiv_stack::ssa_equiv_stack): New. + (ssa_equiv_stack::~ssa_equiv_stack): New. + (ssa_equiv_stack::enter): New. + (ssa_equiv_stack::leave): New. + (ssa_equiv_stack::push_replacement): New. + (ssa_equiv_stack::get_replacement): New. + (is_pointer_ssa): New. + (class pointer_equiv_analyzer): New. + (pointer_equiv_analyzer::pointer_equiv_analyzer): New. + (pointer_equiv_analyzer::~pointer_equiv_analyzer): New. + (pointer_equiv_analyzer::set_global_equiv): New. + (pointer_equiv_analyzer::set_cond_equiv): New. + (pointer_equiv_analyzer::get_equiv): New. + (pointer_equiv_analyzer::enter): New. + (pointer_equiv_analyzer::leave): New. + (pointer_equiv_analyzer::get_equiv_expr): New. + (pta_valueize): New. + (pointer_equiv_analyzer::visit_stmt): New. + (pointer_equiv_analyzer::visit_edge): New. + (hybrid_folder::value_of_expr): Call PTA. + (hybrid_folder::value_on_edge): Same. + (hybrid_folder::pre_fold_bb): New. + (hybrid_folder::post_fold_bb): New. + (hybrid_folder::pre_fold_stmt): New. + (rvrp_folder::pre_fold_bb): New. + (rvrp_folder::post_fold_bb): New. + (rvrp_folder::pre_fold_stmt): New. + (rvrp_folder::value_of_expr): Call PTA. + (rvrp_folder::value_on_edge): Same. + +2021-06-08 Jakub Jelinek + + PR c++/100957 + * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't + check TREE_CODE if OMP_CLAUSE_DECL is NULL. + +2021-06-08 Richard Biener + + PR middle-end/100951 + * tree-vect-generic.c (expand_vector_piecewise): Build a + VECTOR_CST if all elements are constant. + (expand_vector_condition): Likewise. + (lower_vec_perm): Likewise. + (expand_vector_conversion): Likewise. + +2021-06-08 Martin Liska + + * doc/invoke.texi: Document new param evrp-sparse-threshold. + +2021-06-08 Martin Liska + + * genautomata.c (create_automata): Fix typo. + +2021-06-08 Kewen Lin + + PR tree-optimization/100794 + * tree-predcom.c (tree_predictive_commoning_loop): Add parameter + allow_unroll_p and only allow unrolling when it's true. + (tree_predictive_commoning): Add parameter allow_unroll_p and + adjust for it. + (run_tree_predictive_commoning): Likewise. + (pass_predcom::gate): Check flag_tree_loop_vectorize and + global_options_set.x_flag_predictive_commoning. + (pass_predcom::execute): Adjust for allow_unroll_p. + +2021-06-08 Kewen Lin + + * tree-predcom.c (execute_pred_commoning): Remove update_ssa call. + (tree_predictive_commoning_loop): Factor some cleanup stuffs into + lambda function cleanup, remove scev_reset call, and adjust return + value. + (tree_predictive_commoning): Adjust for different changed values, + only set flag TODO_update_ssa_only_virtuals if changed. + (pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals + from todo_flags_finish. + +2021-06-07 Andrew MacLeod + + * gimple-range-cache.cc (class sbr_sparse_bitmap): New. + (sbr_sparse_bitmap::sbr_sparse_bitmap): New. + (sbr_sparse_bitmap::bitmap_set_quad): New. + (sbr_sparse_bitmap::bitmap_get_quad): New. + (sbr_sparse_bitmap::set_bb_range): New. + (sbr_sparse_bitmap::get_bb_range): New. + (sbr_sparse_bitmap::bb_range_p): New. + (block_range_cache::block_range_cache): initialize bitmap obstack. + (block_range_cache::~block_range_cache): Destruct obstack. + (block_range_cache::set_bb_range): Decide when to utilze the + sparse on entry cache. + * gimple-range-cache.h (block_range_cache): Add bitmap obstack. + * params.opt (-param=evrp-sparse-threshold): New. + +2021-06-07 Andrew MacLeod + + * bitmap.c (bitmap_set_aligned_chunk): New. + (bitmap_get_aligned_chunk): New. + (test_aligned_chunk): New. + (bitmap_c_tests): Call test_aligned_chunk. + * bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New. + +2021-06-07 Uroš Bizjak + + PR target/100637 + * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): + Handle V4QI mode. + (ix86_expand_vector_init_one_nonzero): Ditto. + (ix86_expand_vector_init_one_var): Ditto. + (ix86_expand_vector_init_general): Ditto. + * config/i386/mmx.md (vec_initv4qiqi): New expander. + +2021-06-07 Jeff Law + + * config/h8300/movepush.md: Change most _clobber_flags + patterns to instead use subst. + (movsi_cczn): New pattern with usable CC cases split out. + (movsi_h8sx_cczn): Likewise. + +2021-06-07 Martin Liska + + * common/common-target.def: Split long lines and replace them + with '\n\'. + * target.def: Likewise. + * doc/tm.texi: Re-generated. + +2021-06-07 Jakub Jelinek + + PR target/100887 + * fold-const.c (fold_read_from_vector): Return NULL if trying to + read from a CONSTRUCTOR with vector type elements. + +2021-06-07 Jakub Jelinek + + PR middle-end/100898 + * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy + should copy any arguments. Don't call gimple_call_num_args + on id->call_stmt or call_stmt more than once. + +2021-06-07 liuhongt + + PR target/100885 + * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine + constraints. + (v4siv4di2): Delete constraints for define_expand. + +2021-06-07 liuhongt + + PR target/82735 + * config/i386/i386-expand.c (ix86_expand_builtin): Remove + assignment of cfun->machine->has_explicit_vzeroupper. + * config/i386/i386-features.c + (ix86_add_reg_usage_to_vzerouppers): Delete. + (ix86_add_reg_usage_to_vzeroupper): Ditto. + (rest_of_handle_insert_vzeroupper): Remove + ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end + of the function. + (gate): Remove cfun->machine->has_explicit_vzeroupper. + * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper): + Declared. + * config/i386/i386.c (ix86_insn_callee_abi): New function. + (ix86_initialize_callee_abi): Ditto. + (ix86_expand_avx_vzeroupper): Ditto. + (ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper + ABI. + (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi. + (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper + directly. + * config/i386/i386.h (struct GTY(()) machine_function): Delete + has_explicit_vzeroupper. + * config/i386/i386.md (enum unspec): New member + UNSPEC_CALLEE_ABI. + (ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New + define_constants for insn callee abi index. + * config/i386/predicates.md (vzeroupper_pattern): Adjust. + * config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted. + (avx_vzeroupper): Call ix86_expand_avx_vzeroupper. + (*avx_vzeroupper): Rename to .. + (avx_vzeroupper_callee_abi): .. this, and adjust pattern as + call_insn which has a special vzeroupper ABI. + (*avx_vzeroupper_1): Deleted. + +2021-06-07 liuhongt + + PR target/82735 + * df-scan.c (df_get_call_refs): When call_insn is a fake call, + it won't use stack pointer reg. + * final.c (leaf_function_p): When call_insn is a fake call, it + won't affect caller as a leaf function. + * reg-stack.c (callee_clobbers_any_stack_reg): New. + (subst_stack_regs): When call_insn doesn't clobber any stack + reg, don't clear the arguments. + * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is + a insn. + * shrink-wrap.c (requires_stack_frame_p): No need for stack + frame for a fake call. + * rtl.h (FAKE_CALL_P): New macro. + +2021-06-06 Eric Botcazou + + * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename + to... + (sparc_order_regs_for_local_alloc): ...this. + (sparc_leaf_reg_remap): Declare. + * config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust. + (LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap. + * config/sparc/sparc.c (leaf_reg_remap): Delete. + (order_regs_for_local_alloc): Rename to... + (sparc_order_regs_for_local_alloc): ...this. + (sparc_leaf_reg_remap): New function. + (sparc_conditional_register_usage): Do not modify leaf_reg_remap. + +2021-06-06 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common): + Use assemble_name to output BSS section name. + +2021-06-06 Uroš Bizjak + + * config/i386/constraints.md (Bs): + Remove boolean operators from match_test RTX. + (Bw): Ditto. + (L): Ditto. + (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX. + (Wz): Ditto. + +2021-06-06 Martin Liska + + * doc/extend.texi: Add missing @headitem. + * doc/invoke.texi: Likewise. + * doc/objc.texi: Likewise. + +2021-06-06 Martin Liska + + * genhooks.c (emit_findices): Remove unused function. + (emit_documentation): Do not call emit_findices + and do not search for @Fcode directives. + +2021-06-06 Martin Liska + + * doc/invoke.texi: Remove extra character. + +2021-06-05 Kewen Lin + + * config/sh/sh.md (doloop_end_split): Fix empty split condition. + +2021-06-05 Kewen Lin + + * config/sparc/sparc.md (*snedi_zero_vis3, + *neg_snedi_zero_subxc, *plus_snedi_zero, + *plus_plus_snedi_zero, *minus_snedi_zero, + *minus_minus_snedi_zero): Fix empty split condition. + +2021-06-05 Kewen Lin + + * config/or1k/or1k.md (*movdi): Fix empty split condition. + +2021-06-05 Kewen Lin + + * config/mips/mips.md (, bswapsi2, bswapdi2): Fix empty + split condition. + +2021-06-05 Kewen Lin + + * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec, + *zero_extendsidi2): Fix empty split condition. + +2021-06-05 Jeff Law + + * config/h8300/addsub.md: Fix split condition in define_insn_and_split + patterns. + * config/h8300/bitfield.md: Likewise. + * config/h8300/combiner.md: Likewise. + * config/h8300/divmod.md: Likewise. + * config/h8300/extensions.md: Likewise. + * config/h8300/jumpcall.md: Likewise. + * config/h8300/movepush.md: Likewise. + * config/h8300/multiply.md: Likewise. + * config/h8300/other.md: Likewise. + * config/h8300/shiftrotate.md: Likewise. + * config/h8300/logical.md: Likewise. Fix split pattern to use + code iterator that somehow slipped through. + +2021-06-04 Tobias Burnus + + PR middle-end/100905 + * tree-nested.c (convert_nonlocal_omp_clauses, + convert_local_omp_clauses): Handle OMP_CLAUSE_BIND. + +2021-06-04 Martin Sebor + + PR middle-end/100732 + * gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls + with either source or destination argument of invalid type. + * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking + calls with arguments of invalid type. + +2021-06-04 Martin Sebor + + * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected + order. + (attr_access::vla_bounds): Also handle VLA bounds. + +2021-06-04 Uroš Bizjak + + * config/i386/predicates.md (GOT_memory_operand): + Implement using match_code RTXes. + (GOT32_symbol_operand): Ditto. + +2021-06-04 Uroš Bizjak + + PR target/100637 + * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): + Handle V2HI mode. + (ix86_expand_vector_init_general): Ditto. + Use SImode instead of word_mode for logic operations + when GET_MODE_SIZE (mode) < UNITS_PER_WORD. + (expand_vec_perm_even_odd_1): Assert that V2HI mode should be + implemented by expand_vec_perm_1. + (expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes + should be implemented using standard shuffle patterns. + (ix86_vectorize_vec_perm_const): Handle V2HImode. Add V4HI and + V2HI modes to modes, implementable with shuffle for one operand. + * config/i386/mmx.md (*punpckwd): New insn_and_split pattern. + (*pshufw_1): New insn pattern. + (*vec_dupv2hi): Ditto. + (vec_initv2hihi): New expander. + +2021-06-04 Kewen Lin + + * config/arm/vfp.md (no_literal_pool_df_immediate, + no_literal_pool_sf_immediate): Fix empty split condition. + +2021-06-04 Kewen Lin + + * config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext, + *tls_dynamic_gnu2_combine_32): Fix empty split condition. + * config/i386/sse.md (*_pmovmskb_lt, + *_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt, + *_pblendvb_lt): Likewise. + +2021-06-04 Jakub Jelinek + + PR target/100887 + * config/i386/i386-expand.c (ix86_expand_vector_init): Handle + concatenation from half-sized modes with TImode elements. + +2021-06-04 Claudiu Zissulescu + + * config/arc/arc.c (arc_override_options): Disable millicode + thunks when RF16 is on. + +2021-06-04 Haochen Gui + + * config/rs6000/rs6000.h (PROMOTE_MODE): Remove. + +2021-06-04 Haochen Gui + + * config/rs6000/rs6000-call.c (rs6000_promote_function_mode): + Replace PROMOTE_MODE marco with its content. + +2021-06-03 Kewen Lin + + * config/cris/cris.md (*addi_reload): Fix empty split condition. + +2021-06-03 Jim Wilson + + * config.gcc (riscv*-*-*): If --with-riscv-attribute not used, + turn it on for all riscv targets. + +2021-06-03 Uroš Bizjak + + PR target/100637 + * config/i386/i386-expand.c (ix86_expand_vector_set): + Handle V2HI and V4QI modes. + (ix86_expand_vector_extract): Ditto. + * config/i386/mmx.md (*pinsrw): New insn pattern. + (*pinsrb): Ditto. + (*pextrw): Ditto. + (*pextrw_zext): Ditto. + (*pextrb): Ditto. + (*pextrb_zext): Ditto. + (vec_setv2hi): New expander. + (vec_extractv2hihi): Ditto. + (vec_setv4qi): Ditto. + (vec_extractv4qiqi): Ditto. + (vec_setv8qi): Enable only for TARGET_SSE4_1. + (vec_extractv8qiqi): Ditto. + +2021-06-03 Aaron Sawdey + + * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input + order to subf instruction. + * config/rs6000/fusion.md: Regenerate. + +2021-06-03 Aldy Hernandez + + * calls.c (get_size_range): Use range_of_expr instead of + determine_value_range. + * tree-affine.c (expr_to_aff_combination): Same. + * tree-data-ref.c (split_constant_offset): Same. + * tree-vrp.c (determine_value_range_1): Remove. + (determine_value_range): Remove. + * tree-vrp.h (determine_value_range): Remove. + +2021-06-03 Aldy Hernandez + + * function-tests.c (test_ranges): Call gimple_range_tests. + * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt + to get_tree_range. + * gimple-range.cc (fur_source::get_operand): Do not call + get_tree_range or gimple_range_global. + get_tree_range. + (get_tree_range): Move to value-query.cc. + Call get_arith_expr_range. + (gimple_ranger::range_of_expr): Add argument to get_tree_range. + Include gimple-range-tests.cc. + * gimple-range.h (fold_range): Add argument. + (get_tree_range): Remove. + * selftest.h (gimple_range_tests): New. + * value-query.cc (global_range_query::range_of_expr): Add + stmt argument. + (range_query::get_tree_range): Move from gimple-range.cc. + * value-query.h (class range_query): Add get_tree_range and + get_arith_expr_range. Make fur_source a friend. + * vr-values.c (vr_values::range_of_expr): Pass stmt to + get_tree_range. + * gimple-range-tests.cc: New file. + +2021-06-03 Aldy Hernandez + + * gimple-range.cc (gimple_ranger::export_global_ranges): Call + update_global_range. + * value-query.cc (update_global_range): New. + * value-query.h (update_global_range): New. + +2021-06-03 David Malcolm + + * diagnostic-show-locus.c (diagnostic_show_locus): Don't reject + printing the same location twice if there are fix-it hints, + multiple locations, or a label. + +2021-06-03 Andre Vieira + + * tree-vect-loop.c (vect_transform_loop): Use main loop's various' + thresholds to narrow the upper bound on epilogue iterations. + +2021-06-03 Christophe Lyon + + * config/arm/mve.md (mve_vabsq_f): Use 'abs' instead of unspec. + (mve_vabsq_s): Likewise. + * config/arm/neon.md (abs2): Rename to neon_abs2. + * config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete. + * config/arm/vec-common.md (neg2): Rename to + 2. + +2021-06-03 Claudiu Zissulescu + + * common/config/arc/arc-common.c (arc_option_optimization_table): + Remove malign-call. + * config/arc/arc.c (arc_unalign_branch_p): Remove unused function. + * config/arc/arc.h (TARGET_MIXED_CODE): Remove macro. + (INDEX_REG_CLASS): Only refer to GENERAL_REGS. + * config/arc/arc.md (abssi2_mixed): Remove pattern. + * config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete. + (malign-call): Likewise. + (mmixed-code): Likewise. + * doc/invoke.texi (ARC): Update doc. + +2021-06-03 Martin Liska + + * common.opt: Use proper Enum values. + * opts.c (COVERAGE_SANITIZER_OPT): Remove. + (parse_sanitizer_options): Handle only sanitizer_opts. + (common_handle_option): Just assign value. + +2021-06-03 Eric Botcazou + + PR ipa/99122 + * tree-inline.c (inline_forbidden_p): Remove test on return type. + +2021-06-03 Eric Botcazou + + * dwarf2out.c (loc_list_from_tree_1) : Also generate + DW_OP_GNU_variable_value referencing an existing DIE at file scope. + (type_byte_size): Inline into... + (add_byte_size_attribute): ...this and call add_scalar_info. + +2021-06-03 Eric Botcazou + + * dwarf2out.c (mem_loc_descriptor) : Fix typo. + (typed_binop_from_tree): New function. + (loc_list_from_tree_1) : For an unsigned type, + turn a divide by a power of 2 into a shift. + : For an unsigned type, use a signed divide if the + size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a + typed divide by calling typed_binop_from_tree. + +2021-06-03 Eric Botcazou + + * dwarf2out.c (scompare_loc_descriptor): Fix head comment. + (is_handled_procedure_type): Likewise. + (struct loc_descr_context): Add strict_signedness field. + (resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type, + DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret. + (resolve_args_picking): Minor tweak. + (function_to_dwarf_procedure): Initialize strict_signedness field. + (type_byte_size): Likewise. + (field_byte_offset): Likewise. + (gen_descr_array_type_die): Likewise. + (gen_variant_part): Likewise. + (loc_list_from_tree_1) : Tidy up and set strict_signedness + to true when a context is present before evaluating the arguments. + : Do not generate a useless comparison with zero. + When dereferencing an address, if strict_signedness is true and the + type is small and signed, use DW_OP_deref_type to do the dereference + and then DW_OP_convert to convert back to the generic type. + +2021-06-03 Jakub Jelinek + + PR c++/100859 + * tree-inline.c (copy_tree_body_r): Handle iterators on + OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND. + +2021-06-03 Kewen Lin + + * config/arc/arc.md (*bbit_di): Remove. + +2021-06-02 Christoph Muellner + + PR rtl-optimization/100264 + * ree.c (get_sub_rtx): Ignore SET expressions without register + destinations and remove assertion, as it is not valid anymore + with this new behaviour. + (merge_def_and_ext): Eliminate destination check for register + as such SET expressions can't occur anymore. + (combine_reaching_defs): Likewise. + +2021-06-02 Jakub Jelinek + + PR target/100841 + * config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid + -Wtype-limits warnings. + (DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition + in operands to avoid -Wsign-compare warnings. + +2021-06-02 Pat Haugen + + * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use + gen_frame_store. + +2021-06-02 Vineet Gupta + + * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux. + +2021-06-02 Ilya Leoshkevich + + * config/s390/s390.md(*ashrdi3_31): Use a single + constraint. + * config/s390/subst.md(cconly_subst): Use a single constraint + in (match_scratch). + +2021-06-02 Martin Liska + + * ipa-icf.h: Use auto_vec for memory_access_types. + +2021-06-02 Jeff Law + + * config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused + argument from prototype. + (output_logical_op): Add rtx_code argument. + (compute_logical_op_length): Likewise. + * config/h8300/h8300.c (h8300_and_costs): Pass additional argument + to compute_a_shift_length. + (output_logical_op); New argument with the rtx code rather than + extracting it from an operand. Handle QImode too. + (compute_logical_op_length): Similary. + (compute_a_shift_length): Drop unused argument. + * config/h8300/h8300.md (logicals): New code iterator. + * config/h8300/logical.md (3 expander): Combine + the "and" expander with the "ior"/"xor" expander. + (bclrmsx): Combine the QI/HI mode patterns. + (3 insns): Use code iterator rather than match_operator. + Handle QImode as well. Update call to output_logical_op and + compute_logical_op_length to pass in rtx_code + Fix split condition on all define_insn_and_split patterns. + (one_cmpl2): Use to support both clobbering + the flags and setting ZN via existing define_subst. + * config/h8300/shiftrotate.md: Drop unused argument from + calls to compute_a_shift_length. + Signed-off-by: Jeff Law + +2021-06-01 Andrew Pinski + + PR tree-optimization/25290 + * tree-ssa-phiopt.c (match_simplify_replacement): + New function. + (tree_ssa_phiopt_worker): Use match_simplify_replacement. + (two_value_replacement): Change the comment about + conditional_replacement. + (conditional_replacement): Delete. + +2021-06-01 Andrew Pinski + + PR tree-optimization/95481 + * tree-tailcall.c (find_tail_calls): Handle empty typed + return decls. + +2021-06-01 Andrew Pinski + + * gimplify.c (zero_sized_field_decl): Delete + (zero_sized_type): Delete + (gimplify_init_ctor_eval): Use is_empty_type instead + of zero_sized_field_decl. + (gimplify_modify_expr): Use is_empty_type instead of + zero_sized_type. + +2021-06-01 Jason Merrill + + PR c++/91859 + * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment. + +2021-06-01 Jason Merrill + + PR c++/94492 + * diagnostic.h (warning_enabled_at): Declare. + * diagnostic.c (diagnostic_enabled): Factor out from... + (diagnostic_report_diagnostic): ...here. + (warning_enabled_at): New. + +2021-06-01 Aldy Hernandez + + * gimple-ssa-evrp.c: Enable exporting of global ranges. + +2021-06-01 Martin Liska + + PR other/100826 + * doc/invoke.texi: Mention that -fgcse-after-reload + is enabled with -O3. + +2021-06-01 liuhongt + + PR tree-optimization/98365 + * tree-if-conv.c (strip_nop_cond_scalar_reduction): New function. + (is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction. + (convert_scalar_cond_reduction): Ditto. + (predicate_scalar_phi): Ditto. + +2021-06-01 Andrew MacLeod + + PR tree-optimization/100781 + * gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new + value calculation by default. + (ranger_cache::enable_new_values): New. + (ranger_cache::disable_new_values): New. + (ranger_cache::push_poor_value): Check if new values are allowed. + * gimple-range-cache.h (class ranger_cache): New member/methods. + * gimple-range.cc (gimple_ranger::range_of_expr): Check for debug + statement, and disable/renable new value calculation. + +2021-06-01 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete. + (ranger_cache::range_of_def): New. + (ranger_cache::entry_range): New. + (ranger_cache::exit_range): New. + (ranger_cache::range_of_expr): Adjust. + (ranger_cache::range_on_edge): Adjust. + (ranger_cache::propagate_cache): Call exit_range directly. + * gimple-range-cache.h (class ranger_cache): Adjust. + +2021-06-01 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for + gori_compute being a member rather than base class. + dervied call to member call. + (ranger_cache::dump): No longer dump gori_map. + (ranger_cache::dump_bb): New. + (ranger_cache::get_non_stale_global_range): Adjust for gori_compute + being a member rather than base class. + (ranger_cache::set_global_range): Ditto. + (ranger_cache::ssa_range_in_bb): Ditto. + (ranger_cache::range_of_expr): New. + (ranger_cache::range_on_edge): New. + (ranger_cache::block_range): Adjust for gori_computes. Debug changes. + (ranger_cache::propagate_cache): Adjust debugging output. + (ranger_cache::fill_block_cache): Adjust for gori_computes. Debug + output changes. + * gimple-range-cache.h (class ranger_cache): Make gori_compute a + member, and inherit from range_query instead. + (ranger_cache::dump_bb): New. split from dump. + * gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete. + (gori_compute::expr_range_at_stmt): Delete. + (gori_compute::compute_name_range_op): Delete. + (gori_compute::compute_operand_range_switch): Add fur_source. + (gori_compute::compute_operand_range): Add fur_source param, inline + old compute_name_range_op and optimize_logical_operands. + (struct tf_range): Delete. + (gori_compute::logical_combine): Adjust + (gori_compute::optimize_logical_operands): Delete. + (gori_compute::compute_logical_operands_in_chain): Delete. + (gori_compute::compute_logical_operands): Adjust. + (gori_compute::compute_operand1_range): Adjust to fur_source. + (gori_compute::compute_operand2_range): Ditto. + (gori_compute::compute_operand1_and_operand2_range): Ditto. + (gori_compute::outgoing_edge_range_p): Add range_query parameter, + and adjust to fur_source. + * gimple-range-gori.h (class gori_compute): Simplify and adjust to + range_query and fur_source. + * gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge + from the ranger_cache.. + (gimple_ranger::fold_range_internal): Adjust to base class change of + ranger_cache. + (gimple_ranger::dump_bb): Adjust dump. + * gimple-range.h (gimple_ranger):export gori computes object. + +2021-06-01 Andrew MacLeod + + PR tree-optimization/100774 + * gimple-range-cache.cc (ranger_cache::get_non_stale_global_range): + Constant values are also not stale. + (ranger_cache::set_global_range): Range invariant values should also + have the correct timestamp. + +2021-05-31 Martin Liska + + * tree-streamer-in.c (unpack_ts_function_decl_value_fields): + Unpack FUNCTION_DECL_DECL_TYPE. + * tree-streamer-out.c (pack_ts_function_decl_value_fields): + Stream FUNCTION_DECL_DECL_TYPE instead of + DECL_IS_OPERATOR_NEW_P. + * tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE + macro. + (DECL_IS_OPERATOR_NEW_P): Likewise. + (DECL_IS_OPERATOR_DELETE_P): Likewise. + (DECL_LAMBDA_FUNCTION_P): Likewise. + +2021-05-31 Richard Biener + + PR c++/88601 + * internal-fn.c (expand_SHUFFLEVECTOR): Define. + * internal-fn.def (SHUFFLEVECTOR): New. + * internal-fn.h (expand_SHUFFLEVECTOR): Declare. + * doc/extend.texi: Document __builtin_shufflevector. + +2021-05-31 Peter Bergner + + PR target/99842 + * config/rs6000/predicates.md(mma_assemble_input_operand): Allow + indexed form addresses. + +2021-05-29 Jeff Law + + * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused + parameter. Call callers fixed. + (push): Likewise. + (output_plussi): Add FALLTHRU markers. + (h8300_shift_needs_scratch_p): Add gcc_unreachable marker. + +2021-05-29 Jakub Jelinek + + PR middle-end/99928 + * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd + combined with parallel, make sure to add shared clause to + parallel for explicit linear clause. + +2021-05-29 Aldy Hernandez + + PR tree-optimization/100787 + * gimple-ssa-evrp.c: Disable exporting of global ranges. + +2021-05-28 Jason Merrill + + * tree-iterator.h (struct tree_stmt_iterator): Add operator++, + operator--, operator*, operator==, and operator!=. + (class tsi_range): New. + +2021-05-28 Richard Biener + + PR tree-optimization/100778 + * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly + trapping ops in different BBs. + +2021-05-28 Richard Biener + + PR ipa/100791 + * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack + copy fntype from original call. + +2021-05-28 Martin Liska + + PR gcov-profile/100751 + * doc/gcov.texi: Revert partially a hunk that was wrong. + +2021-05-28 Cooper Qu + + * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi): + Defined. + (HAVE_sync_compare_and_swaphi): Likewise. + (HAVE_sync_compare_and_swapsi): Likewise. + +2021-05-28 Jakub Jelinek + + PR middle-end/99928 + * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define. + +2021-05-28 Tobias Burnus + + * gimplify.c (gimplify_omp_affinity): New. + (gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards. + * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY. + * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY. + * tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause. + (walk_tree_1): Handle OMP_CLAUSE_AFFINITY. + +2021-05-28 Joern Rennecke + Richard Biener + + * match.pd : + When generating popcount directly fails, try doing it in two halves. + +2021-05-28 Bernd Edlinger + + * Makefile.in (generated_files): Add gimple-match.c and + generic-match.c + +2021-05-28 Joern Rennecke + + * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP. + +2021-05-28 Joern Rennecke + + * gensupport.c (alter_constraints): Add MATCH_SCRATCH case. + +2021-05-28 Kewen Lin + + PR tree-optimization/99398 + * tree-ssa-forwprop.c (simplify_permutation): Optimize some cases + where the fed operands are CTOR/CST and propagated through + VIEW_CONVERT_EXPR. Call vec_perm_indices::new_shrunk_vector. + * vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New + function. + * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New + declare. + +2021-05-27 Uroš Bizjak + + * config/i386/mmx.md (addv2sf3): Do not call + ix86_fixup_binary_operands_no_copy. + (subv2sf3): Ditto. + (mulv2sf3): Ditto. + (v2sf3): Ditto. + (3): Ditto. + (3): Remove expander. + (3): Rename from + "*3". + (mulv4hi): Do not call ix86_fixup_binary_operands_no_copy. + (mulv2hi3): Remove expander. + (mulv2hi3): Rename from *mulv2hi3. + (mulv2hi3_highpart): Remove expander. + (mulv2hi3_highpart): Rename from *mulv2hi3_highpart. + (3): Rename from + "*mmx_3". + (3): Remove expander. + (SMAXMIN_MMXMODEI): Remove mode iterator. + (v4hi3): New expander. + (v4qi3): Rename from *v4qi3. + (v2hi3): Rename from *v2hi3. + (3): Remove expander. + (SMAXMIN_VI_32): Remove mode iterator. + (3): Rename from + "*mmx_3". + (3): Remove expander. + (UMAXMIN_MMXMODEI): Remove mode iterator. + (v8qi3): New expander. + (v4qi3): Rename from *v4qi3. + (v2hi3): Rename from *v2hi3. + (3): Remove expander. + (UMAXMIN_VI_32): Remove mode iterator. + (v2hi3): Remove expander. + (v2hi3): Rename from *v2hi3. + (3): Do not call + ix86_fixup_binary_operands_no_copy. + (3): Remove expander. + (3): Rename from + "*3". + (uavg3_ceil): Do not call ix86_fixup_binary_operands_no_copy. + * config/i386/sse.md (div3): Do not call + ix86_fixup_binary_operands_no_copy. + (div3): Ditto. + (3): Ditto. + (smulhrsv4hi3): Ditto. + (smulhrsv2hi3): Ditto. + +2021-05-27 Martin Sebor + + * ggc.h (gt_ggc_mx): Add overloads for all integers. + (gt_pch_nx): Same. + * hash-map.h (class hash_map): Add pch_nx_helper overloads for all + integers. + (hash_map::operator==): New function. + +2021-05-27 Uroš Bizjak + + PR target/100637 + * config/i386/i386-expand.c (ix86_expand_int_sse_cmp): + For TARGET_XOP bypass SSE comparisons for all supported vector modes. + * config/i386/mmx.md (*xop_maskcmp3): New insn pattern. + (*xop_maskcmp3): Ditto. + (*xop_maskcmp_uns3): Ditto. + (*xop_maskcmp_uns3): Ditto. + +2021-05-27 Richard Earnshaw + + PR target/100767 + * config/arm/arm.c (arm_configure_build_target): Remove parameter + opts_set, directly check opts parameters for being non-null. + (arm_option_restore): Update call to arm_configure_build_target. + (arm_option_override): Likewise. + (arm_can_inline_p): Likewise. + (arm_valid_target_attribute_tree): Likewise. + * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. + * config/arm/arm-protos.h (arm_configure_build_target): Adjust + prototype. + +2021-05-27 Aldy Hernandez + + * vr-values.c (simplify_conversion_using_ranges): Use + get_range_query instead of get_global_range_query. + +2021-05-27 Aldy Hernandez + + * gimple-range.cc (get_range_global): Move to value-query.cc. + (gimple_range_global): Same. + (get_global_range_query): Same. + (global_range_query::range_of_expr): Same. + * gimple-range.h (class global_range_query): Move to + value-query.h. + (gimple_range_global): Same. + * tree-ssanames.c (get_range_info): Move to value-query.cc. + (get_ptr_nonnull): Same. + * tree-ssanames.h (get_range_info): Remove. + (get_ptr_nonnull): Remove. + * value-query.cc (get_ssa_name_range_info): Move from + tree-ssanames.c. + (get_ssa_name_ptr_info_nonnull): Same. + (get_range_global): Move from gimple-range.cc. + (gimple_range_global): Same. + (get_global_range_query): Same. + (global_range_query::range_of_expr): Same. + * value-query.h (class global_range_query): Move from + gimple-range.h. + (gimple_range_global): Same. + +2021-05-27 Uroš Bizjak + + PR target/100637 + * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern. + (uavgv2hi3_ceil): Ditto. + +2021-05-26 Eric Botcazou + + PR c/100653 + * doc/extend.texi (scalar_storage_order): Rephrase slightly. + +2021-05-26 Aldy Hernandez + + * tree-ssanames.c (get_range_info): Merge both copies of + get_range_info into one that works with irange. + * tree-ssanames.h (get_range_info): Remove version that works on + wide_ints. + +2021-05-26 Aldy Hernandez + + * builtins.c (check_nul_terminated_array): Convert to get_range_query. + (expand_builtin_strnlen): Same. + (determine_block_size): Same. + * fold-const.c (expr_not_equal_to): Same. + * gimple-fold.c (size_must_be_zero_p): Same. + * gimple-match-head.c: Include gimple-range.h. + * gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query. + * gimple-ssa-warn-restrict.c + (builtin_memref::extend_offset_range): Same. + * graphite-sese-to-poly.c (add_param_constraints): Same. + * internal-fn.c (get_min_precision): Same. + * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same. + * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same. + * match.pd: Same. + * tree-data-ref.c (split_constant_offset): Same. + (dr_step_indicator): Same. + * tree-dfa.c (get_ref_base_and_extent): Same. + * tree-scalar-evolution.c (iv_can_overflow_p): Same. + * tree-ssa-loop-niter.c (refine_value_range_using_guard): Same. + (determine_value_range): Same. + (record_nonwrapping_iv): Same. + (infer_loop_bounds_from_signedness): Same. + (scev_var_range_cant_overflow): Same. + * tree-ssa-phiopt.c (two_value_replacement): Same. + * tree-ssa-pre.c (insert_into_preds_of_block): Same. + * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same. + * tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same. + (get_range): Same. + (dump_strlen_info): Same. + (set_strlen_range): Same. + (maybe_diag_stxncpy_trunc): Same. + (get_len_or_size): Same. + (handle_integral_assign): Same. + * tree-ssa-structalias.c (find_what_p_points_to): Same. + * tree-ssa-uninit.c (find_var_cmp_const): Same. + * tree-switch-conversion.c (bit_test_cluster::emit): Same. + * tree-vect-patterns.c (vect_get_range_info): Same. + (vect_recog_divmod_pattern): Same. + * tree-vrp.c (intersect_range_with_nonzero_bits): Same. + (register_edge_assert_for_2): Same. + (determine_value_range_1): Same. + * tree.c (get_range_pos_neg): Same. + * vr-values.c (vr_values::get_lattice_entry): Same. + (vr_values::update_value_range): Same. + (simplify_conversion_using_ranges): Same. + +2021-05-26 Aldy Hernandez + + * gimple-ssa-warn-alloca.c (alloca_call_type): Use + get_range_query instead of query argument. + (pass_walloca::execute): Enable and disable global ranger. + +2021-05-26 Aldy Hernandez + + * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call + enable_ranger. + (rvrp_folder::~rvrp_folder): Call disable_ranger. + (hybrid_folder::hybrid_folder): Call enable_ranger. + (hybrid_folder::~hybrid_folder): Call disable_ranger. + +2021-05-26 Aldy Hernandez + + * function.c (allocate_struct_function): Set cfun->x_range_query. + * function.h (struct function): Declare x_range_query. + (get_range_query): New. + (get_global_range_query): New. + * gimple-range-cache.cc (ssa_global_cache::ssa_global_cache): + Remove call to safe_grow_cleared. + * gimple-range.cc (get_range_global): New. + (gimple_range_global): Move from gimple-range.h. + (get_global_range_query): New. + (global_range_query::range_of_expr): New. + (enable_ranger): New. + (disable_ranger): New. + * gimple-range.h (gimple_range_global): Move to gimple-range.cc. + (class global_range_query): New. + (enable_ranger): New. + (disable_ranger): New. + * gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename + dump_all_value_ranges to dump. + * tree-vrp.c (vrp_prop::finalize): Same. + * value-query.cc (range_query::dump): New. + * value-query.h (range_query::dump): New. + * vr-values.c (vr_values::dump_all_value_ranges): Rename to... + (vr_values::dump): ...this. + * vr-values.h (class vr_values): Rename dump_all_value_ranges to + dump and make virtual. + +2021-05-26 Uroš Bizjak + + * config/i386/i386.c (ix86_autovectorize_vector_modes): + Add V4QImode and V16QImode for TARGET_SSE2. + * doc/sourcebuild.texi (Vector-specific attributes): + Add vect64 and vect32 description. + +2021-05-26 Bernd Edlinger + + * gimple-range-gori.cc (range_def_chain::register_dependency): + Resize m_def_chain when needed. + +2021-05-26 Christophe Lyon + + * config/arm/mve.md (mve_vaddvq_): Prefix with '@'. + * config/arm/neon.md (reduc_plus_scal_): Move to .. + * config/arm/vec-common.md: .. here. Add support for MVE. + +2021-05-26 Jakub Jelinek + + * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove + register keywords. + * config/microblaze/microblaze.c (microblaze_legitimize_address, + call_internal1, + microblaze_option_override, print_operand): Likewise. + * config/microblaze/microblaze.md (call_internal_plt, + call_value_intern_plt, call_value_intern): Likewise. + * config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise. + * config/iq2000/iq2000.md (call_internal1, call_value_internal1, + call_value_multiple_internal1): Likewise. + * config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise. + +2021-05-26 Jan-Benedict Glaw + + * config/arc/arc.c (arc_address_cost, arc_print_operand_address, + arc_ccfsm_advance, symbolic_reference_mentioned_p, + arc_raw_symbolic_reference_mentioned_p): Remove register + keyword. + +2021-05-26 Jakub Jelinek + + PR libgomp/100573 + * omp-low.c: Include omp-offload.h. + (create_omp_child_function): If current_function_decl has + "omp declare target" attribute and is_gimple_omp_offloaded, + remove that attribute from the copy of attribute list and + add "omp target entrypoint" attribute instead. + (lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.* + variables for offloading if in omp_maybe_offloaded_ctx. + * omp-offload.c (pass_omp_target_link::execute): Nullify second + argument to GOMP_target_data_ext in offloaded code. + +2021-05-26 Geng Qi + + * config/csky/csky.c (csky_can_change_mode_class): Delete. + For csky, HF/SF mode use the low bits of VREGS. + +2021-05-26 Eric Botcazou + + * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a + DECL which is a reference for OMP. + +2021-05-26 Martin Liska + + PR gcov-profile/100751 + * doc/gcov.texi: Document that __gcov_dump can be called just + once and that __gcov_reset resets run-time counters. + +2021-05-26 Martin Liska + + * doc/install.texi: Port relevant part from install-old.texi + and re-generate list of CPUs and systems. + +2021-05-26 Martin Liska + + * Makefile.in: Remove it. + * doc/include/fdl.texi: Update next/previous chapters. + * doc/install.texi: Likewise. + * doc/install-old.texi: Removed. + +2021-05-26 Geng Qi + + * config/csky/csky.c (ck810_legitimate_index_p): Support + "base + index" with DF mode. + * config/csky/constraints.md ("Y"): New constraint for memory operands + without index register. + * config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m" + when mov between memory and general registers, and lower their priority. + * config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise. + +2021-05-26 Geng Qi + + * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete. + +2021-05-26 Geng Qi + + * config/csky/csky.md (untyped_call): Emit clobber for return + registers to mark them used. + +2021-05-26 Geng Qi + + * config/csky/csky.md (cskyv2_sextend_ldbs): New. + +2021-05-26 Andrew Pinski + + * match.pd (x < 0 ? ~y : y): New patterns. + +2021-05-26 Andrew Pinski + + * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0, + A?POW2:0 and A?0:POW2. + +2021-05-25 Andrew MacLeod + + * gimple-range-gori.cc (class logical_stmt_cache): Delete + (logical_stmt_cache::logical_stmt_cache ): Delete. + (logical_stmt_cache::~logical_stmt_cache): Delete. + (logical_stmt_cache::cache_entry::dump): Delete. + (logical_stmt_cache::get_range): Delete. + (logical_stmt_cache::cached_name ): Delete. + (logical_stmt_cache::same_cached_name): Delete. + (logical_stmt_cache::cacheable_p): Delete. + (logical_stmt_cache::slot_diagnostics ): Delete. + (logical_stmt_cache::dump): Delete. + (gori_compute_cache::gori_compute_cache): Delete. + (gori_compute_cache::~gori_compute_cache): Delete. + (gori_compute_cache::compute_operand_range): Delete. + (gori_compute_cache::cache_stmt): Delete. + * gimple-range-gori.h (gori_compute::compute_operand_range): Remove + virtual. + (class gori_compute_cache): Delete. + +2021-05-25 Andrew MacLeod + + * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori + intead of m_cache. + (fold_using_range::range_of_address): Adjust. + (fold_using_range::range_of_phi): Adjust. + * gimple-range.h (class fur_source): Adjust. + (fur_source::fur_source): Adjust. + +2021-05-25 Andrew MacLeod + + * gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename + from expr_range_in_bb and adjust. + (gori_compute::compute_name_range_op): Adjust. + (gori_compute::optimize_logical_operands): Adjust. + (gori_compute::compute_logical_operands_in_chain): Adjust. + (gori_compute::compute_operand1_range): Adjust. + (gori_compute::compute_operand2_range): Adjust. + (ori_compute_cache::cache_stmt): Adjust. + * gimple-range-gori.h (gori_compute): Rename prototype. + +2021-05-25 Andrew MacLeod + + * gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be + checked only after range_of_stmt, not range_on_entry. + (gimple_ranger::range_on_entry): Check for non-null in any + predecessor block, if it is not already non-null. + (gimple_ranger::range_on_exit): DOnt check for non-null after + range on entry call. + (gimple_ranger::dump_bb): New. Split from dump. + (gimple_ranger::dump): Adjust. + * gimple-range.h (class gimple_ranger): Adjust. + +2021-05-25 Andrew MacLeod + + * gimple-range-cache.cc (struct range_timestamp): Delete. + (class temporal_cache): Adjust. + (temporal_cache::get_timestamp): Delete. + (temporal_cache::set_dependency): Delete. + (temporal_cache::temporal_value): Adjust. + (temporal_cache::current_p): Take dependencies as params. + (temporal_cache::set_timestamp): Adjust. + (temporal_cache::set_always_current): Adjust. + (ranger_cache::get_non_stale_global_range): Adjust. + (ranger_cache::register_dependency): Delete. + * gimple-range-cache.h (class range_cache): Adjust. + +2021-05-25 Andrew MacLeod + + * gimple-range-gori.cc (range_def_chain::range_def_chain): init + bitmap obstack. + (range_def_chain::~range_def_chain): Dispose of obstack rather than + each individual bitmap. + (range_def_chain::set_import): New. + (range_def_chain::get_imports): New. + (range_def_chain::chain_import_p): New. + (range_def_chain::register_dependency): Rename from build_def_chain + and set imports. + (range_def_chain::def_chain_in_bitmap_p): New. + (range_def_chain::add_def_chain_to_bitmap): New. + (range_def_chain::has_def_chain): Just check first depenedence. + (range_def_chain::get_def_chain): Process imports, use generic + register_dependency routine. + (range_def_chain::dump): New. + (gori_map::gori_map): Allocate import list. + (gori_map::~gori_map): Release imports. + (gori_map::exports): Check for past allocated block size. + (gori_map::imports): New. + (gori_map::def_chain_in_export_p): Delete. + (gori_map::is_import_p): New. + (gori_map::maybe_add_gori): Handle imports. + (gori_map::dump): Adjust output, add imports. + (gori_compute::has_edge_range_p): Remove def_chain_in_export call. + (gori_export_iterator::gori_export_iterator): New. + (gori_export_iterator::next): New. + (gori_export_iterator::get_name): New. + * gimple-range-gori.h (range_def_chain): Add imports and direct + dependecies via struct rdc. + (range_def_chain::depend1): New. + (range_def_chain::depend2): New. + (class gori_map): Adjust. + (FOR_EACH_GORI_IMPORT_NAME): New. + (FOR_EACH_GORI_EXPORT_NAME): New. + (class gori_export_iterator): New. + +2021-05-25 Andrew MacLeod + + * gimple-range-cache.cc (ranger_cache::ranger_cache): Move initial + export cache filling to here. + * gimple-range-gori.cc (gori_compute::gori_compute) : From Here. + +2021-05-25 Andrew MacLeod + + * gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h. + (gori_map): Move to gimple-range-gori.h. + (gori_compute::gori_compute): Adjust. + (gori_compute::~gori_compute): Delete. + (gori_compute::compute_operand_range_switch): Adjust. + (gori_compute::compute_operand_range): Adjust. + (gori_compute::compute_logical_operands): Adjust. + (gori_compute::has_edge_range_p ): Adjust. + (gori_compute::set_range_invariant): Delete. + (gori_compute::dump): Adjust. + (gori_compute::outgoing_edge_range_p): Adjust. + * gimple-range-gori.h (class range_def_chain): Relocate here. + (class gori_map): Relocate here. + (class gori_compute): Inherit from gori_map, and adjust. + +2021-05-25 Aldy Hernandez + + * value-range.cc (range_tests_legacy): Use + build_nonstandard_integer_type instead of int and short. + +2021-05-25 Eric Botcazou + + * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL + when really creating an initialization statement for it. + +2021-05-25 Eric Botcazou + + * tree-inline.c (setup_one_parameter): Fix thinko in new condition. + +2021-05-25 Kito Cheng + + * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax. + +2021-05-25 Martin Liska + + PR tree-optimization/92860 + PR target/99592 + * optc-save-gen.awk: Remove exceptions. + +2021-05-25 Martin Liska + + * asan.h (sanitize_coverage_p): New function. + * doc/extend.texi: Document it. + * fold-const.c (fold_range_test): Use sanitize_flags_p + instead of flag_sanitize_coverage. + (fold_truth_andor): Likewise. + * sancov.c: Likewise. + * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. + * ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle + -fsanitize-coverage when inlining. + +2021-05-25 Cooper Qu + + * config/csky/csky-modes.def : Fix copyright. + +2021-05-25 Cooper Qu + + * config/csky/csky-modes.def : Amend copyright. + * config/csky/csky_insn_fpuv2.md : Likewise. + * config/csky/csky_insn_fpuv3.md : Likewise. + +2021-05-25 Richard Biener + + PR middle-end/100727 + * calls.c (initialize_argument_information): Explicitely test + for WITH_SIZE_EXPR. + * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR. + +2021-05-25 Geng Qi + + * config/csky/csky.h (FRAME_POINTER_REGNUM): Use + HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of + the signle definition. The signle definition may not work well + at simplify_subreg_regno(). + (HARD_FRAME_POINTER_REGNUM): New. + (ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM. + * config/csky/csky.c (get_csky_live_regs, csky_can_eliminate, + csky_initial_elimination_offset, csky_expand_prologue, + csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM. + +2021-05-25 Geng Qi + + * config/csky/csky.c (csky_option_override): + Init csky_arch_isa_features[] in advance, so TARGET_DSP + and TARGET_DIV can be set well. + +2021-05-25 Geng Qi + + * config/csky/constraints.md ("l", "h"): Delete. + * config/csky/csky.h (reg_class, REG_CLASS_NAMES, + REG_CLASS_CONTENTS): Delete LO_REGS and HI_REGS. + * config/csky/csky.c (regno_reg_classm, + csky_secondary_reload, csky_register_move_cost): + Use HILO_REGS instead of LO_REGS and HI_REGS. + +2021-05-25 Geng Qi + + * config/csky/constraints.md ("W"): New constriant for mem operand + with base reg, index register. + ("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to + "csky_valid_mem_constraint_operand" to deal with both "Q" and "W" + constraint. + ("Dv"): New constraint for const double value that can be used at + fmovi instruction. + * config/csky/csky-modes.def (HFmode): New mode. + * config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename + to "csky_valid_mem_constraint_operand" and support new constraint + "W". + (csky_get_movedouble_length): New. + (fpuv3_output_move): New. + (fpuv3_const_double): New. + * config/csky/csky.c (csky_option_override): New arch CK860 with fpv3. + (decompose_csky_address): Refine. + (csky_print_operand): New "CONST_DOUBLE" operand. + (csky_output_move): Support fpv3 instructions. + (csky_get_movedouble_length): New. + (fpuv3_output_move): New. + (fpuv3_const_double): New. + (csky_emit_compare): Cover float comparsion. + (csky_emit_compare_float): Refine. + (csky_vaild_fpuv2_mem_operand): Rename to + "csky_valid_mem_constraint_operand" and support new constraint "W". + (ck860_rtx_costs): New. + (csky_rtx_costs): Add the cost calculation of CK860. + (regno_reg_class): New vregs for fpuv3. + (csky_dbx_regno): Likewise. + (csky_cpu_cpp_builtins): New builtin macro for fpuv3. + (csky_conditional_register_usage): Suporrot fpuv3. + (csky_dwarf_register_span): Suporrot fpuv3. + (csky_init_builtins, csky_mangle_type): Support "__fp16" type. + (ck810_legitimate_index_p): Support fp16. + * config/csky/csky.h (TARGET_TLS): ADD CK860. + (CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3. + (TARGET_SINGLE_FPU): Support fpuv3. + (TARGET_SUPPORT_FPV3): New. + (FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers. + (FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES, + REG_CLASS_CONTENTS): Support fpuv3. + * config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine. + (csky_movsf_fpv2): Likewise. + (ck801_movsf): Likewise. + (csky_movsf): Likewise. + (movdf): Likewise. + (csky_movdf_fpv2): Likewise. + (ck801_movdf): Likewise. + (csky_movdf): Likewise. + (movsicc): Refine. Use "comparison_operatior" instead of + "ordered_comparison_operatior". + (addsicc): Likewise. + (CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant. + (call_value_internal_vh): New. + * config/csky/csky_cores.def (CK860): New arch and cpu. + (fpv3_hf): New. + (fpv3_hsf): New. + (fpv3_sdf): New. + (fpv3): New. + * config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns + into emit-patterns and match-patterns, remain the emit-patterns here, + and move the match-patterns to csky_insn_fpuv2.md or + csky_insn_fpuv3.md. + * config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions. + * config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3 + isntructions. + * config/csky/csky_isa.def (fcr): New. + (fpv3_hi): New. + (fpv3_hf): New. + (fpv3_sf): New. + (fpv3_df): New. + (CK860): New definition for ck860. + * config/csky/csky_tables.opt (ck860): New processors ck860, + ck860f. And new arch ck860. + (fpv3_hf): New. + (fpv3_hsf): New. + (fpv3_hdf): New. + (fpv3): New. + * config/csky/predicates.md (csky_float_comparsion_operator): Delete + "geu", "gtu", "leu", "ltu", which will never appear at float comparison. + * config/csky/t-csky-elf: Support 860. + * config/csky/t-csky-linux: Likewise. + * doc/md.texi: Add "Q" and "W" constraints for C-SKY. + +2021-05-24 Aaron Sawdey + + * config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to + add generation of logical-add and add-logical fusion pairs. + * config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask + and powerpc mask. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on + logical-add and add-logical fusion by default. + * config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and + -mpower10-fusion-add-logical options. + * config/rs6000/fusion.md: Regenerate file. + +2021-05-24 Aldy Hernandez + + * value-range.cc (irange::legacy_equal_p): Check type when + comparing VR_VARYING types. + (range_tests_legacy): Test comparing VARYING ranges of different + sizes. + +2021-05-24 Wilco Dijkstra + + * config/aarch64/aarch64.c (neoversen1_tunings): + Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND. + +2021-05-24 Wilco Dijkstra + + * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for + extern weak symbols. Limit symbol offsets for non-GOT symbols with + PIC/PIE. + +2021-05-24 Christophe Lyon + + * config/arm/neon.md (vec_load_lanesxi) + (vec_store_lanexoi): Move ... + * config/arm/vec-common.md: here. + +2021-05-24 Christophe Lyon + + * config/arm/neon.md (vec_load_lanesoi) + (vec_store_lanesoi): Move ... + * config/arm/vec-common.md: here. + +2021-05-24 liuhongt + + PR target/100660 + * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing + stmt with GIMPLE_NOP when lhs doesn't exist. + +2021-05-23 Uroš Bizjak + + PR target/100722 + * config/i386/mmx.md (*push2_rex64): + New instruction pattern. + (*push2): Ditto. + (push splitter for SSE registers): New splitter. + +2021-05-23 Andrew Pinski + + * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types. + +2021-05-22 Aaron Sawdey + + * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types. + * config/rs6000/fusion.md: Regenerate file. + +2021-05-21 Aaron Sawdey + + * config/rs6000/genfusion.pl (gen_addadd): New function. + * config/rs6000/fusion.md: Regenerate file. + * config/rs6000/rs6000-cpus.def: Add + OPTION_MASK_P10_FUSION_2ADD to masks. + * config/rs6000/rs6000.c (rs6000_option_override_internal): + Handle default value of OPTION_MASK_P10_FUSION_2ADD. + * config/rs6000/rs6000.opt: Add -mpower10-fusion-2add. + +2021-05-21 Jakub Jelinek + + PR middle-end/99928 + * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define. + * gimplify.c (enum gimplify_omp_var_data): Fix up + GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT. + (omp_lastprivate_for_combined_outer_constructs): If combined target + has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to + GOVD_MAP | GOVD_SEEN. + (gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for + firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT. + (gimplify_adjust_omp_clauses): For firstprivate clauses with + OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and + OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and + let it be replaced by implicit map clause. + +2021-05-21 Jakub Jelinek + + PR middle-end/99928 + * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New + function. + (gimplify_scan_omp_clauses) : Use it. + (gimplify_omp_for): Likewise. + +2021-05-21 Thomas Schwinge + + PR middle-end/90115 + * omp-low.c (oacc_privatization_candidate_p): Reject 'static', + 'external' in blocks. + +2021-05-21 Thomas Schwinge + + PR middle-end/90115 + * flag-types.h (enum openacc_privatization): New. + * params.opt (-param=openacc-privatization): New. + * doc/invoke.texi (openacc-privatization): Document it. + * omp-general.h (get_openacc_privatization_dump_flags): New + function. + * omp-low.c (oacc_privatization_candidate_p): Add diagnostics. + * omp-offload.c (execute_oacc_device_lower) + : Re-work diagnostics. + * target.def (goacc.adjust_private_decl): Add 'location_t' + parameter. + * doc/tm.texi: Regenerate. + * config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust. + * config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise. + * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl): + Likewise. Preserve it for... + (nvptx_goacc_expand_var_decl): ... use here. + +2021-05-21 Thomas Schwinge + + * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__' + DejaGnu selector. + +2021-05-21 Thomas Schwinge + + PR middle-end/90115 + * omp-low.c (oacc_privatization_candidate_p): New function. + (oacc_privatization_scan_clause_chain) + (oacc_privatization_scan_decl_chain): Use it. Also + 'gcc_checking_assert' that we're not seeing duplicates. + +2021-05-21 Thomas Schwinge + + PR middle-end/90115 + * omp-offload.c (execute_oacc_device_lower): Skip processing if no + work to be done. + +2021-05-21 Thomas Schwinge + + PR middle-end/90115 + * omp-offload.c (execute_oacc_device_lower): Explain. + +2021-05-21 Thomas Schwinge + + PR middle-end/90115 + * omp-offload.c (execute_oacc_device_lower) + : Diagnose and handle for 'level == -1' + case, too. + * internal-fn.c (expand_UNIQUE): Don't expect + 'IFN_UNIQUE_OACC_PRIVATE'. + +2021-05-21 Thomas Schwinge + + PR middle-end/90115 + * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses. + +2021-05-21 Thomas Schwinge + + PR middle-end/90115 + * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl) + (nvptx_goacc_expand_var_decl): Tighten. + +2021-05-21 Julian Brown + Chung-Lin Tang + Thomas Schwinge + + PR middle-end/90115 + * doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL) + (TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks. + * doc/tm.texi: Regenerate. + * expr.c (expand_expr_real_1): Expand decls using the + expand_var_decl OpenACC hook if defined. + * internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE. + * internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE. + * omp-low.c (omp_context): Add oacc_privatization_candidates + field. + (lower_oacc_reductions): Add PRIVATE_MARKER parameter. Insert + before fork. + (lower_oacc_head_tail): Add PRIVATE_MARKER parameter. Modify + private marker's gimple call arguments, and pass it to + lower_oacc_reductions. + (oacc_privatization_scan_clause_chain) + (oacc_privatization_scan_decl_chain, lower_oacc_private_marker): + New functions. + (lower_omp_for, lower_omp_target, lower_omp_1): Use these. + * omp-offload.c (convert.h): Include. + (oacc_loop_xform_head_tail): Treat private-variable markers like + fork/join when transforming head/tail sequences. + (struct var_decl_rewrite_info): Add struct. + (oacc_rewrite_var_decl, is_sync_builtin_call): New functions. + (execute_oacc_device_lower): Support rewriting gang-private + variables using target hook, and fix up addr_expr and var_decl + nodes afterwards. + * target.def (adjust_private_decl, expand_var_decl): New hooks. + * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl): + Rename to... + (gcn_goacc_adjust_private_decl): ...this. + * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl): + Rename to... + (gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter. + * config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename + definition using gcn_goacc_adjust_gangprivate_decl... + (TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using + gcn_goacc_adjust_private_decl. + * config/nvptx/nvptx.c (tree-pretty-print.h): Include. + (gang_private_shared_size): New global variable. + (gang_private_shared_align): Likewise. + (gang_private_shared_sym): Likewise. + (gang_private_shared_hmap): Likewise. + (nvptx_option_override): Initialize these. + (nvptx_file_end): Output gang_private_shared_sym. + (nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl): + New functions. + (nvptx_set_current_function): Clear gang_private_shared_hmap. + (TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook. + (TARGET_GOACC_EXPAND_VAR_DECL): Likewise. + +2021-05-21 H.J. Lu + + * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed. + +2021-05-21 Richard Biener + H.J. Lu + + PR middle-end/90773 + * expr.c (expand_constructor): Elide expand_constructor if + move by pieces is preferred. + +2021-05-21 Kyrylo Tkachov + + * config/aarch64/aarch64-builtins.c (aarch64_call_properties): + Take a flag and mode value as arguments. + (aarch64_modifies_global_state_p): Likewise. + (aarch64_reads_global_state_p): Likewise. + (aarch64_could_trap_p): Likewise. + (aarch64_get_attributes): Likewise. + (aarch64_init_simd_builtins): Adjust callsite of above. + (aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get + function attributes to apply to builtins. + (aarch64_init_crc32_builtins): Likewise. + (aarch64_init_builtin_rsqrt): Likewise. + +2021-05-21 Aaron Sawdey + + * config/rs6000/rs6000.md (define_attr "type"): Add types for fusion. + * config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types. + (gen_2logical): Use new fusion types. + * config/rs6000/fusion.md: Regenerate. + +2021-05-21 Uroš Bizjak + + PR target/100637 + * config/i386/i386-expand.c (ix86_expand_sse_movcc): + Handle V4QI and V2HI modes. + (ix86_expand_sse_movcc): Ditto. + * config/i386/mmx.md (*3): + New instruction pattern. + (*eq3): Ditto. + (*gt3): Ditto. + (*xop_pcmov_): Ditto. + (mmx_pblendvb32): Ditto. + (mmx_pblendvb64): Rename from mmx_pblendvb. + (vec_cmp): New expander. + (vec_cmpu): Ditto. + (vcond): Ditto. + (vcondu): Ditto. + (vcond_mask_): Ditto. + +2021-05-21 Jakub Jelinek + + PR tree-optimization/94589 + * tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and + rhs2, treat x <= 4 equivalently to x < 5 etc. In cmp1 and cmp2 (if + not the same as cmp3) treat <= the same as < and >= the same as >. + Don't require that cond2_phi_edge is true edge, instead take + false/true edges into account based on cmp1/cmp2 comparison kinds. + +2021-05-21 Uroš Bizjak + + PR target/100637 + * config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator. + (3): Macroize expander + from v4hi3> and 3 + using SMAXMIN_MMXMODEI mode iterator. + (*v4qi3): New insn pattern. + (*v2hi3): Ditto. + (SMAXMIN_VI_32): New mode iterator. + (mode3): New expander. + (UMAXMIN_MMXMODEI): New mode iterator. + (3): Macroize expander + from v8qi3> and 3 + using UMAXMIN_MMXMODEI mode iterator. + (*v4qi3): New insn pattern. + (*v2hi3): Ditto. + (UMAXMIN_VI_32): New mode iterator. + (mode3): New expander. + (abs2): New insn pattern. + (ssse3_abs2, abs2): Move from ... + * config/i386/sse.md: ... here. + +2021-05-20 Clement Chigot + David Edelsohn + + * collect2.c (scan_prog_file): Issue non-fatal warning for + non-COFF files. + +2021-05-20 Jonathan Wakely + + * doc/invoke.texi (-Wno-c++11-extensions) + (-Wno-c++14-extensions, -Wno-c++17-extensions) + (-Wno-c++20-extensions, -Wno-c++23-extensions): Document + new options. + +2021-05-20 Indu Bhagat + + * config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p. + * config/darwin.c (darwin_override_options): Likewise. + * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise. + * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise. + (DWARF2_FRAME_REG_OUT): Likewise. + * config/mips/mips.c (mips_output_filename): Likewise. + * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): + Likewise. + (rs6000_dbx_register_number): Likewise. + * dbxout.c: Include flags.h. + * dwarf2cfi.c (cfi_label_required_p): Likewise. + (dwarf2out_do_frame): Likewise. + * except.c: Include flags.h. + * final.c (dwarf2_debug_info_emitted_p): Likewise. + (final_scan_insn_1): Likewise. + * flags.h (dwarf_debuginfo_p): New function declaration. + * opts.c (dwarf_debuginfo_p): New function definition. + * targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p. + * toplev.c (process_options): Likewise. + +2021-05-20 Indu Bhagat + + * common.opt: Change type to support bitmasks. + * flag-types.h (enum debug_info_type): Rename enumerator constants. + (NO_DEBUG): New bitmask. + (DBX_DEBUG): Likewise. + (DWARF2_DEBUG): Likewise. + (XCOFF_DEBUG): Likewise. + (VMS_DEBUG): Likewise. + (VMS_AND_DWARF2_DEBUG): Likewise. + * flags.h (debug_set_to_format): New function declaration. + (debug_set_count): Likewise. + (debug_set_names): Likewise. + * opts.c (debug_type_masks): Array of bitmasks for debug formats. + (debug_set_to_format): New function definition. + (debug_set_count): Likewise. + (debug_set_names): Likewise. + (set_debug_level): Update access to debug_type_names. + * toplev.c: Likewise. + +2021-05-20 Martin Sebor + + PR middle-end/100684 + * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda. + +2021-05-20 Uroš Bizjak + + PR target/100701 + * config/i386/i386.md (isa): Remove x64_bmi. + (enabled): Remove x64_bmi. + * config/i386/mmx.md (mmx_andnot3): + Remove general register alternative. + (*andnot3): Ditto. + (*mmx_3): Ditto. + (*3): Ditto. + +2021-05-20 Kewen Lin + + * config/arm/arm.c: Include head files tree-vectorizer.h and + cfgloop.h. + +2021-05-20 Uroš Bizjak + + PR target/100637 + * config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes. + (*3): Use Yw instad of constrint. + (mulv4hi3_highpart): New expander. + (*mulv2hi3_highpart): New insn pattern. + (mulv2hi3_higpart): New expander. + (*v2hi3): New insn pattern. + (v2hi3): New expander. + * config/i386/sse.md (smulhrsv2hi3): New expander. + (*smulhrsv2hi3): New insn pattern. + +2021-05-20 Kewen Lin + + * doc/invoke.texi (vect-inner-loop-cost-factor): Document new + parameter. + * params.opt (vect-inner-loop-cost-factor): New. + * targhooks.c (default_add_stmt_cost): Replace hardcoded factor + 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file + tree-vectorizer.h and its required ones. + * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace + hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR. + * config/arm/arm.c (arm_add_stmt_cost): Likewise. + * config/i386/i386.c (ix86_add_stmt_cost): Likewise. + * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise. + * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): + Likewise. + (_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor. + * tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor. + (LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro. + +2021-05-20 Christophe Lyon + Torbjörn Svensson + + PR c/42579 + * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__. + +2021-05-20 Jakub Jelinek + + PR middle-end/99928 + * gimplify.c (gimplify_scan_omp_clauses) : For + explicit linear clause when combined with target, make it map(tofrom:) + instead of no clause or firstprivate. + +2021-05-20 Jakub Jelinek + + PR tree-optimization/94589 + * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence + of integral conversions. + +2021-05-19 Andrew MacLeod + + * gimple-range.cc (fur_source::get_operand): New. + (gimple_range_fold): Delete. + (fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt. + (fold_using_range::range_of_range_op): Move from gimple_ranger. + (fold_using_range::range_of_address): Ditto. + (fold_using_range::range_of_phi): Ditto. + (fold_using_range::range_of_call): Ditto. + (fold_using_range::range_of_builtin_ubsan_call): Move from + range_of_builtin_ubsan_call. + (fold_using_range::range_of_builtin_call): Move from + range_of_builtin_call. + (gimple_ranger::range_of_builtin_call): Delete. + (fold_using_range::range_of_cond_expr): Move from gimple_ranger. + (gimple_ranger::fold_range_internal): New. + (gimple_ranger::range_of_stmt): Use new fold_using_range API. + (fold_using_range::range_of_ssa_name_with_loop_info): Move from + gimple_ranger. Improve ranges of SSA_NAMES when possible. + * gimple-range.h (gimple_ranger): Remove various range_of routines. + (class fur_source): New. + (class fold_using_range): New. + (fur_source::fur_source): New. + (fold_range): New. + * vr-values.c (vr_values::extract_range_basic): Use fold_using_range + instead of range_of_builtin_call. + +2021-05-19 Jonathan Wakely + + * doc/cpp.texi (Common Predefined Macros): Update documentation + for the __GXX_EXPERIMENTAL_CXX0X__ macro. + +2021-05-19 Alex Coplan + + PR target/100333 + * config/arm/arm.md (nonsecure_call_internal): Always ensure + callee's address is in a register. + +2021-05-19 Geng Qi + + * common/config/riscv/riscv-common.c + (riscv_subset_list::parsing_subset_version): Properly parse the letter + 'p' in '-march'. + (riscv_subset_list::parse_std_ext, + riscv_subset_list::parse_multiletter_ext): To handle errors generated + in riscv_subset_list::parsing_subset_version. + +2021-05-19 Jonathan Wright + + * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q" + type attribute in patterns generating XTN(2). + +2021-05-19 Jonathan Wright + + * config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_): + Remove as duplicate of... + (aarch64_xtn): This. + (aarch64_xtn2_le): Move position in file. + (aarch64_xtn2_be): Move position in file. + (aarch64_xtn2): Move position in file. + (vec_pack_trunc_): Define as an expander. + +2021-05-19 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Split builtin + generation for aarch64_qshrn_n pattern into + separate scalar and vector generators. + * config/aarch64/aarch64-simd.md + (aarch64_qshrn_n): Define as an expander and + split into... + (aarch64_qshrn_n_insn_le): This and... + (aarch64_qshrn_n_insn_be): This. + * config/aarch64/iterators.md: Define SD_HSDI iterator. + +2021-05-19 Jonathn Wright + + * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead + of UNSPEC_SQXTUN2. + * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2. + +2021-05-19 Jonathan Wright + + * config/aarch64/aarch64-simd.md (aarch64_qshrn2_n): + Implement as an expand emitting a big/little endian + instruction pattern. + (aarch64_qshrn2_n_insn_le): Define. + (aarch64_qshrn2_n_insn_be): Define. + +2021-05-19 Jonathan Wright + + * config/aarch64/aarch64-simd.md (aarch64_hn2): + Implement as an expand emitting a big/little endian + instruction pattern. + (aarch64_hn2_insn_le): Define. + (aarch64_hn2_insn_be): Define. + * config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and + UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator. + +2021-05-19 Richard Biener + + PR middle-end/100672 + * fold-const.c (fold_negate_expr_1): Use element_precision. + (negate_expr_p): Likewise. + +2021-05-19 Andre Vieira + + * config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator. + (pred_load): New int attribute. + * config/aarch64/aarch64-sve.md + (aarch64_load_): Use + SVE_PRED_LOAD enum iterator and corresponding pred_load attribute. + * config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to + code_for_aarch64_load. + +2021-05-19 Richard Biener + + * cfgexpand.c (discover_nonconstant_array_refs_r): Make + sure TARGET_MEM_REF bases are expanded as memory. + * tree-ssa-operands.c (operands_scanner::get_tmr_operands): + Do not mark TARGET_MEM_REF bases addressable. + * tree-ssa.c (non_rewritable_mem_ref_base): Handle + TARGET_MEM_REF bases as never rewritable. + * gimple-walk.c (walk_stmt_load_store_addr_ops): Do not + walk TARGET_MEM_REF bases as address-takens. + * tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF. + +2021-05-19 Richard Biener + + * builtins.c (get_object_alignment_1): Strip outer + WITH_SIZE_EXPR. + * tree-dfa.c (get_ref_base_and_extent): Handle outer + WITH_SIZE_EXPR for size processing and process the + containing ref. + * tree-ssa-alias.c (ao_ref_base_alias_set): Strip + outer WITH_SIZE_EXPR. + (ao_ref_base_alias_ptr_type): Likewise. + (refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref + and handle that accordingly, stripping it for the + core alias workers. + * tree.c (get_base_address): Handle WITH_SIZE_EXPR by + looking through it instead of returning NULL. + +2021-05-19 Jakub Jelinek + + PR middle-end/100576 + * builtins.c (check_read_access): Convert bound to size_type_node if + non-NULL. + +2021-05-19 Richard Biener + + * tree-cfg.c (verify_types_in_gimple_min_lval): Inline... + (verify_types_in_gimple_reference): ... here. Sanitize. + (verify_gimple_call): Verify references in LHS and arguments. + (verify_gimple_assign_single): Reject WITH_SIZE_EXPR. + +2021-05-19 Uroš Bizjak + + * config/i386/i386.h (VALID_INT_MODE_P): + Add V8QI, V4HI and V2SI modes for TARGET_64BIT. + * config/i386/i386.md (isa): Add x64_bmi. + (enabled): Handle x64_bmi. + * config/i386/mmx.md (mmx_andnot3): + Add alternative using 64bit general registers. + (*mmx_3): Ditto. + +2021-05-19 Jakub Jelinek + + PR middle-end/99928 + * tree.h (OMP_MASTER_COMBINED): Define. + * gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate + handling for outer combined/composite constructs to a loop. + Handle lastprivate on combined target. + (gimplify_expr): Formatting fix. + +2021-05-19 Xionghu Luo + + * passes.def: Add sink_code pass before store_merging. + * tree-ssa-sink.c (pass_sink_code:clone): New. + +2021-05-18 Bill Schmidt + + * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to + rs6000_special_adjust_field_align_p. + * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise. + * config/rs6000/rs6000-call.c (rs6000_function_arg_boundary): + Remove ABI warning. + (rs6000_function_arg): Likewise. + * config/rs6000/rs6000-protos.h + (rs6000_special_adjust_field_align_p): Remove prototype. + * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): + Remove. + * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to + rs6000_special_adjust_field_align_p. + +2021-05-18 Uroš Bizjak + + PR target/100637 + * config/i386/i386.h (VALID_SSE2_REG_MODE): + Add V4QI and V2HI modes. + (VALID_INT_MODE_P): Ditto. + * config/i386/mmx.md (VI_32): New mode iterator. + (mmxvecsize): Handle V4QI and V2HI. + (Yv_Yw): Ditto. + (mov): New expander. + (*mov_internal): New insn pattern. + (movmisalign): New expander. + (neg): New expander. + (3): New expander. + (*3): New insn pattern. + (mulv2hi3): New expander. + (*mulv2hi3): New insn pattern. + (one_cmpl2): New expander. + (*andnot3): New insn pattern. + (3): New expander. + (*3): New insn pattern. + +2021-05-18 Uroš Bizjak + + * config/i386/sse.md (v4qiv4di2): + Fix a mode mismatch with operand 1. + +2021-05-18 Uroš Bizjak + + PR target/100626 + * config/i386/i386-expand.c (split_double_mode): Return + temporary register when simplify_gen_subreg fails with + the high half od the paradoxical subreg. + +2021-05-18 Richard Biener + + * cfgexpand.c (expand_one_var): Pass in forced_stack_var + and honor it when expanding. + (expand_used_vars_for_block): Pass through forced_stack_var. + (expand_used_vars): Likewise. + (discover_nonconstant_array_refs_r): Set bits in + forced_stack_vars instead of marking vars TREE_ADDRESSABLE. + (avoid_type_punning_on_regs): Likewise. + (discover_nonconstant_array_refs): Likewise. + (pass_expand::execute): Create and pass down forced_stack_var + bitmap. For parameters and returns temporarily set + TREE_ADDRESSABLE when expand_function_start. + +2021-05-18 Thomas Schwinge + + * doc/sourcebuild.texi: Document 'dg-note'. + +2021-05-18 Tobias Burnus + + PR other/100598 + * configure: Regenerate. + * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@). + +2021-05-18 Thomas Schwinge + + * gimple.h (is_gimple_omp_oacc): Tighten. + * omp-low.c (check_omp_nesting_restrictions): Adjust. + +2021-05-18 Richard Biener + + * tree-ssa-operands.c (mark_address_taken): Simplify. + +2021-05-18 Martin Liska + + * config/gcn/mkoffload.c (STR): Redefine. + * config/i386/intelmic-mkoffload.c (STR): Likewise. + * config/nvptx/mkoffload.c (STR): Likewise. + +2021-05-18 Martin Liska + + * common/config/aarch64/aarch64-common.c (aarch64_parse_extension): + Use startswith function instead of strncmp. + * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise. + * common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise. + * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise. + * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise. + * config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise. + * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise. + * config/arm/arm.c (arm_file_start): Likewise. + (arm_valid_target_attribute_rec): Likewise. + (thumb1_md_asm_adjust): Likewise. + * config/arm/driver-arm.c (host_detect_local_cpu): Likewise. + * config/avr/avr.c (STR_PREFIX_P): Likewise. + (avr_set_current_function): Likewise. + (avr_handle_addr_attribute): Likewise. + (avr_asm_output_aligned_decl_common): Likewise. + (avr_asm_named_section): Likewise. + (avr_section_type_flags): Likewise. + (avr_asm_select_section): Likewise. + * config/c6x/c6x.c (c6x_in_small_data_p): Likewise. + (c6x_section_type_flags): Likewise. + * config/darwin-c.c (darwin_cfstring_ref_p): Likewise. + (darwin_objc_declare_unresolved_class_reference): Likewise. + (darwin_objc_declare_class_definition): Likewise. + * config/darwin.c (indirect_data): Likewise. + (darwin_encode_section_info): Likewise. + (darwin_objc2_section): Likewise. + (darwin_objc1_section): Likewise. + (machopic_select_section): Likewise. + (darwin_globalize_label): Likewise. + (darwin_label_is_anonymous_local_objc_name): Likewise. + (darwin_asm_named_section): Likewise. + (darwin_asm_output_dwarf_offset): Likewise. + * config/frv/frv.c (frv_string_begins_with): Likewise. + (frv_in_small_data_p): Likewise. + * config/gcn/mkoffload.c (STR): Likewise. + (main): Likewise. + * config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise. + * config/i386/i386-options.c (ix86_option_override_internal): Likewise. + * config/i386/i386.c (x86_64_elf_section_type_flags): Likewise. + (ix86_md_asm_adjust): Likewise. + * config/i386/intelmic-mkoffload.c (STR): Likewise. + * config/i386/winnt.c (i386_pe_asm_named_section): Likewise. + (i386_pe_file_end): Likewise. + * config/ia64/ia64.c (ia64_in_small_data_p): Likewise. + (ia64_section_type_flags): Likewise. + * config/mips/driver-native.c (host_detect_local_cpu): Likewise. + * config/mips/mips.c (mips_handle_interrupt_attr): Likewise. + (mips16_stub_function_p): Likewise. + (mips_function_rodata_section): Likewise. + * config/msp430/msp430.c (msp430_mcu_name): Likewise. + (msp430_function_section): Likewise. + (msp430_section_type_flags): Likewise. + (msp430_expand_helper): Likewise. + * config/nios2/nios2.c (nios2_small_section_name_p): Likewise. + (nios2_valid_target_attribute_rec): Likewise. + * config/nvptx/mkoffload.c (process): Likewise. + (STR): Likewise. + * config/pa/som.h: Likewise. + * config/pdp11/pdp11.c (pdp11_output_ident): Likewise. + * config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise. + * config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise. + (rs6000_inner_target_options): Likewise. + * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise. + * config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise. + * config/vax/vax.c (vax_output_int_move): Likewise. + * config/vms/vms-ld.c (startswith): Likewise. + (process_args): Likewise. + (main): Likewise. + * config/vms/vms.c: Likewise. + +2021-05-18 Jakub Jelinek + + PR rtl-optimization/100590 + * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if + they are NONJUMP_INSN_P. + +2021-05-18 Jakub Jelinek + + PR c++/100580 + * function.c (push_dummy_function): Set DECL_ARTIFICIAL and + DECL_ASSEMBLER_NAME on the fn_decl. + +2021-05-18 Jakub Jelinek + + PR tree-optimization/94589 + * tree-ssa-phiopt.c (spaceship_replacement): Pattern match + phi result used in (res & ~1) == 0 comparison as res >= 0 as + res == 2 would be UB with -ffinite-math-only. + +2021-05-18 Martin Liska + + * Makefile.in: genversion.o should depend on DATESTAMP. + +2021-05-18 Claudiu Zissulescu + + * config/arc/simdext.md (negv2si2): Remove round bracket. + +2021-05-18 Andreas Krebbel + + * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define + _Bool as macro expanding to _Bool. + +2021-05-18 Andreas Krebbel + + PR c++/100281 + * tree.c (build_reference_type_for_mode) + (build_pointer_type_for_mode): Pick pointer mode if MODE argument + is VOIDmode. + (build_reference_type, build_pointer_type): Invoke + build_*_type_for_mode with VOIDmode. + +2021-05-17 Andrew MacLeod + + PR tree-optimization/100512 + * gimple-range-cache.cc (ranger_cache::set_global_range): Mark const + and non-zero pointer ranges as invariant. + * gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer + processing from here. + +2021-05-17 Tom de Vries + + PR target/100497 + * config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare + * config/nvptx/nvptx.c (nvptx_output_barrier) + (nvptx_output_atomic_insn): New function. + (nvptx_print_operand): Add support for 'B'. + * config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic + insns. + +2021-05-17 Aldy Hernandez + + PR tree-optimization/100349 + * vr-values.c (bounds_of_var_in_loop): Bail if scev returns + NULL. + +2021-05-17 Tamar Christina + + * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New. + (host_detect_local_cpu): Use it. + +2021-05-17 Martin Liska + + * doc/invoke.texi: Add 2 missing dots. + +2021-05-17 Marius Hillenbrand + + PR bootstrap/100552 + * configure.ac: Replace pattern substitution with call to sed. + * configure: Regenerate. + +2021-05-17 Richard Biener + + PR middle-end/100582 + * tree.c (array_at_struct_end_p): Get to the base of the + reference before looking for the underlying decl. + +2021-05-17 Joern Rennecke + + * genoutput.c (validate_insn_alternatives) Make "wrong number of + alternatives" message more specific, and remove assumption on where + the problem is. + +2021-05-17 Christophe Lyon + + * config/arm/iterators.md (V16): New iterator. + (VH_cvtto): New iterator. + (v_cmp_result): Added V4HF and V8HF support. + * config/arm/vec-common.md (vec_cmp): Use VDQWH. + (vcond): Likewise. + (vcond_mask_): Likewise. + (vcond): New expander. + +2021-05-17 Christophe Lyon + + * config/arm/arm-protos.h (arm_expand_vector_compare): Update + prototype. + * config/arm/arm.c (arm_expand_vector_compare): Add support for + MVE. + (arm_expand_vcond): Likewise. + * config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S, + VCMPEQQ_N_S, VCMPNEQ_N_S. + (VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove. + * config/arm/mve.md (@mve_vcmpq_): Add '@' prefix. + (@mve_vcmpq_f): Likewise. + (@mve_vcmpq_n_f): Likewise. + (@mve_vpselq_): Likewise. + (@mve_vpselq_f"): Likewise. + * config/arm/neon.md (vec_cmp): Likewise. + (vcond): Likewise. + (vcond): Likewise. + (vcondu): Likewise. + (vcond_mask_): Likewise. + * config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S) + (VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U) + (VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S) + (VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U) + (VCMPHIQ_N_U, VCMPHIQ_U): Remove. + * config/arm/vec-common.md (vec_cmp): Likewise. + (vcond): Likewise. + (vcond): Likewise. + (vcondu): Likewise. + (vcond_mask_): Likewise. Added unsafe math + condition. + +2021-05-17 liuhongt + + PR target/100549 + * config/i386/i386.c (ix86_gimple_fold_builtin): Use + gsi_insert_seq_before instead. + +2021-05-17 Christophe Lyon + + * doc/sourcebuild.texi (arm_qbit_ok): Rename into... + (arm_sat_ok): ...this. + +2021-05-17 Martin Liska + + * lto-wrapper.c (merge_flto_options): Factor out a new function. + (merge_and_complain): Use it. + (run_gcc): Merge also linker command line -flto=foo argument + with IL files. + +2021-05-16 Christophe Lyon + + * config/arm/arm.h (CPP_SPEC): Remove error message about + -mlittle-endian/-mbig-endian conflict. + +2021-05-15 Bill Schmidt + + * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define + __ROP_PROTECT__ if -mrop-protect is selected. + +2021-05-15 Bill Schmidt + + * config/rs6000/rs6000-internal.h (rs6000_stack): Add + rop_hash_save_offset and rop_hash_size. + * config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute + rop_hash_size and rop_hash_save_offset. + (debug_stack_info): Dump rop_hash_save_offset and rop_hash_size. + (rs6000_emit_prologue): Emit hashst[p] in prologue. + (rs6000_emit_epilogue): Emit hashchk[p] in epilogue. + * config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and + UNSPEC_HASHCHK. + (hashst): New define_insn. + (hashchk): Likewise. + +2021-05-15 Bill Schmidt + + * config/rs6000/rs6000.c (rs6000_option_override_internal): + Disable shrink wrap when inserting ROP-protect instructions. + * config/rs6000/rs6000.opt (mrop-protect): New option. + (mprivileged): Likewise. + * doc/invoke.texi: Document mrop-protect and mprivileged. + +2021-05-15 Hans-Peter Nilsson + + * reorg.c (fill_slots_from_thread): Reinstate code typoed out in + "Remove CC0". + +2021-05-15 Martin Jambor + + Revert: + 2021-05-13 Martin Jambor + + PR tree-optimization/100453 + * tree-sra.c (sra_modify_assign): All const base accesses do not + need refreshing, not just those from decl_pool. + (sra_modify_assign): Do not refresh into a const base decl. + +2021-05-15 Jakub Jelinek + + PR rtl-optimization/100342 + * regcprop.c (copy_value): When copying a source reg in a wider + mode than it has recorded for the value, adjust recorded destination + mode too or punt if !REG_CAN_CHANGE_MODE_P. + +2021-05-14 Jason Merrill + + * intl.h: Add comments. + +2021-05-14 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md + (aarch64_sqdmll2_lane_internal): Split into... + (aarch64_sqdmlsl2_lane_internal): ... This... + (aarch64_sqdmlal2_lane_internal): ... And this. + (aarch64_sqdmll2_laneq_internal): Split into ... + (aarch64_sqdmlsl2_laneq_internal): ... This... + (aarch64_sqdmlal2_laneq_internal): ... And this. + (aarch64_sqdmll2_n_internal): Split into... + (aarch64_sqdmlsl2_n_internal): ... This... + (aarch64_sqdmlal2_n_internal): ... And this. + +2021-05-14 Prathamesh Kulkarni + + PR target/66791 + * config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's + boolean logic equivalent. + (vtst_s16): Likewise. + (vtst_s32): Likewise. + (vtst_u8): Likewise. + (vtst_u16): Likewise. + (vtst_u32): Likewise. + (vtst_p8): Likewise. + (vtst_p16): Likewise. + (vtstq_s8): Likewise. + (vtstq_s16): Likewise. + (vtstq_s32): Likewise. + (vtstq_u8): Likewise. + (vtstq_u16): Likewise. + (vtstq_u32): Likewise. + (vtstq_p8): Likewise. + (vtstq_p16): Likewise. + * config/arm/arm_neon_builtins.def: Remove entry for vtst. + * config/arm/neon.md (neon_vtst): Remove pattern. + +2021-05-14 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (aarch64_sqdmlal2): Merge into... + (aarch64_sqdmll2): ... This. + (aarch64_sqdmlsl2): Delete. + (aarch64_sqdmlal2_lane): Merge this... + (aarch64_sqdmlsl2_lane): ... And this... + (aarch64_sqdmll2_lane): ... Into this. + (aarch64_sqdmlal2_laneq): Merge this... + (aarch64_sqdmlsl2_laneq): ... And this... + (aarch64_sqdmll2_laneq): ... Into this. + (aarch64_sqdmlal2_n): Merge this... + (aarch64_sqdmlsl2_n): ... And this... + (aarch64_sqdmll2_n): ... Into this. + +2021-05-13 Martin Sebor + + PR middle-end/100574 + * builtins.c (access_ref::get_ref): Improve detection of PHIs with + all null arguments. + +2021-05-13 Martin Sebor + + PR tree-optimization/93100 + PR middle-end/98583 + * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that + don't modify referenced objects. + +2021-05-13 Martin Jambor + + PR tree-optimization/100453 + * tree-sra.c (sra_modify_assign): All const base accesses do not + need refreshing, not just those from decl_pool. + (sra_modify_assign): Do not refresh into a const base decl. + +2021-05-13 Martin Liska + + * tree-ssa-dom.c: Remove m_simplifier. + +2021-05-13 Richard Earnshaw + + PR target/100563 + * config/arm/arm.c (arm_canonicalize_comparison): Correctly + canonicalize DImode inequality comparisons against the + maximum integral value. + +2021-05-13 Jakub Jelinek + + PR tree-optimization/98856 + * config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument. + Expect V2DI and V4DI arithmetic right shifts to be emulated. + (ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost + caller. + * config/i386/i386-expand.c (expand_vec_perm_2perm_interleave, + expand_vec_perm_2perm_pblendv): New functions. + (ix86_expand_vec_perm_const_1): Use them. + * config/i386/sse.md (ashr3): Rename to ... + (ashr3): ... this. + (ashr3): New define_expand with VI248_AVX512BW iterator. + (ashrv4di3): New define_expand. + (ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP + and !TARGET_AVX512VL expansion. + +2021-05-13 Uroš Bizjak + + PR target/100581 + * config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode + sizes < 16 to a register when constructing vpcmov pattern. + * config/i386/mmx.md (*xop_pcmov_): Use MMXMODE124 mode. + +2021-05-13 Martin Liska + + * gcov-io.c (gcov_write_block): Remove. + (gcov_write_words): Likewise. + (gcov_read_words): Re-implement using gcov_read_bytes. + (gcov_allocate): Remove. + (GCOV_BLOCK_SIZE): Likewise. + (struct gcov_var): Remove most of the fields. + (gcov_position): Implement with ftell. + (gcov_rewrite): Remove setting of start and offset fields. + (from_file): Re-format. + (gcov_open): Remove setbuf call. It should not be needed. + (gcov_close): Remove internal buffer handling. + (gcov_magic): Use __builtin_bswap32. + (gcov_write_counter): Use directly gcov_write_unsigned. + (gcov_write_string): Use direct fwrite and do not round + to 4 bytes. + (gcov_seek): Use directly fseek. + (gcov_write_tag): Use gcov_write_unsigned directly. + (gcov_write_length): Likewise. + (gcov_write_tag_length): Likewise. + (gcov_read_bytes): Use directly fread. + (gcov_read_unsigned): Use gcov_read_words. + (gcov_read_counter): Likewise. + (gcov_read_string): Use gcov_read_bytes. + * gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect + that size is not in bytes, but words (4B). + (GCOV_TAG_FUNCTION_LENGTH): Likewise. + (GCOV_TAG_ARCS_LENGTH): Likewise. + (GCOV_TAG_ARCS_NUM): Likewise. + (GCOV_TAG_COUNTER_LENGTH): Likewise. + (GCOV_TAG_COUNTER_NUM): Likewise. + (GCOV_TAG_SUMMARY_LENGTH): Likewise. + +2021-05-13 liuhongt + + PR target/94680 + * config/i386/sse.md (ssedoublevecmode): Add attribute for + V64QI/V32HI/V16SI/V4DI. + (ssehalfvecmode): Add attribute for V2DI/V2DF. + (*vec_concatv4si_0): Extend to VI124_128. + (*vec_concat_0): New pre-reload splitter. + * config/i386/predicates.md (movq_parallel): New predicate. + +2021-05-13 Alexandre Oliva + + * targhooks.c (default_zero_call_used_regs): Retry using + successfully-zeroed registers as sources. + +2021-05-12 Tobias Burnus + + * omp-low.c (finish_taskreg_scan): Use the proper detach decl. + +2021-05-12 Aldy Hernandez + + PR c/100521 + * gimple-range.cc (range_of_builtin_call): Skip out on + processing __builtin_clz when varying. + +2021-05-12 Tom de Vries + + PR target/96005 + * config/nvptx/nvptx-opts.h (enum ptx_version): New enum. + * config/nvptx/nvptx.c (nvptx_file_start): Print .version according + to ptx_version_option. + * config/nvptx/nvptx.h (TARGET_PTX_6_3): Define. + * config/nvptx/nvptx.md (define_insn "nvptx_shuffle") + (define_insn "nvptx_vote_ballot"): Use sync variant for + TARGET_PTX_6_3. + * config/nvptx/nvptx.opt (ptx_version): Add enum. + (mptx): Add option. + * doc/invoke.texi (Nvidia PTX Options): Add mptx item. + +2021-05-12 Richard Biener + + PR tree-optimization/100566 + * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle + allow_back for all edge queries. + +2021-05-12 liuhongt + + PR target/99908 + * config/i386/sse.md (_pblendvb): Add + splitters for pblendvb of NOT mask register. + +2021-05-12 Richard Biener + + PR tree-optimization/100519 + * tree-ssa-reassoc.c (can_associate_p): Split into... + (can_associate_op_p): ... this + (can_associate_type_p): ... and this. + (is_reassociable_op): Call can_associate_op_p. + (break_up_subtract_bb): Call the appropriate predicates. + (reassociate_bb): Likewise. + +2021-05-12 Martin Liska + + * lto-wrapper.c (merge_and_complain): Merge -flto=arg options. + (run_gcc): Use -flto argument detection for merged + fdecoded_options. + +2021-05-12 Martin Liska + + * lto-wrapper.c (print_lto_docs_link): New function. + (run_gcc): Print warning about missing job server detection + after we know NR of partitions. Do the same for -flto{,=1}. + * opts.c (get_option_html_page): Support -flto option. + +2021-05-12 Martin Liska + + * lto-wrapper.c (get_options_from_collect_gcc_options): Change + return type. + (append_option): Remove. + (find_option): Rework to use the vector type. + (remove_option): Remove. + (merge_and_complain): Use vectors for cl_decoded_option data + type arguments. + (append_compiler_options): Likewise. + (append_diag_options): Likewise. + (append_linker_options): Likewise. + (append_offload_options): Likewise. + (compile_offload_image): Likewise. + (compile_images_for_offload_targets): Likewise. + (find_and_merge_options): Likewise. + (run_gcc): Likewise. + +2021-05-12 Bernd Edlinger + + PR debug/100515 + * dwarf2out.c (dwarf2out_finish): Set + have_multiple_function_sections with multi-range text_section. + +2021-05-12 Martin Liska + + PR bootstrap/100560 + * Makefile.in: Remove version.h from linker command line. + +2021-05-12 Richard Biener + + PR middle-end/100547 + * rtl.h (rtvec_alloc): Make argument size_t. + * rtl.c (rtvec_alloc): Verify the count is less than INT_MAX. + +2021-05-12 Jakub Jelinek + + PR middle-end/100508 + * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector + type, don't reuse DECL_RTL if it has different mode, instead force + creation of a new DEBUG_EXPR. + +2021-05-12 Jakub Jelinek + Marc Glisse + + PR tree-optimization/94589 + * match.pd ((X & Y) == X -> (X & ~Y) == 0, + (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications. + +2021-05-12 Uroš Bizjak + + PR target/98218 + * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode. + * config/i386/mmx.md (MMXMODE124): New mode iterator. + (V2FI): Ditto. + (mmxintvecmode): New mode attribute. + (mmxintvecmodelower): Ditto. + (*mmx_maskcmpv2sf3_comm): New insn pattern. + (*mmx_maskcmpv2sf3): Ditto. + (vec_cmpv2sfv2si): New expander. + (vcondv2si): Ditto. + (mmx_vlendvps): New insn pattern. + (vcond): Also handle V2SFmode. + (vcondu): Ditto. + (vcond_mask_): Ditto. + +2021-05-11 Martin Sebor + + PR middle-end/21433 + * expr.c (expand_expr_real_1): Replace unreachable code with an assert. + +2021-05-11 Richard Biener + + * gimple-fold.c (gimple_fold_call): Do not call + maybe_fold_reference on call arguments or the static chain. + (fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM + inputs. + +2021-05-11 Martin Liska + + * builtins.def (DEF_HSAIL_BUILTIN): Remove. + (DEF_HSAIL_ATOMIC_BUILTIN): Likewise. + (DEF_HSAIL_SAT_BUILTIN): Likewise. + (DEF_HSAIL_INTR_BUILTIN): Likewise. + (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise. + * doc/frontends.texi: Remove BRIG. + * doc/install.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/standards.texi: Likewise. + * brig-builtins.def: Removed. + * brig/ChangeLog: Removed. + * brig/Make-lang.in: Removed. + * brig/brig-builtins.h: Removed. + * brig/brig-c.h: Removed. + * brig/brig-lang.c: Removed. + * brig/brigfrontend/brig-arg-block-handler.cc: Removed. + * brig/brigfrontend/brig-atomic-inst-handler.cc: Removed. + * brig/brigfrontend/brig-basic-inst-handler.cc: Removed. + * brig/brigfrontend/brig-branch-inst-handler.cc: Removed. + * brig/brigfrontend/brig-cmp-inst-handler.cc: Removed. + * brig/brigfrontend/brig-code-entry-handler.cc: Removed. + * brig/brigfrontend/brig-code-entry-handler.h: Removed. + * brig/brigfrontend/brig-comment-handler.cc: Removed. + * brig/brigfrontend/brig-control-handler.cc: Removed. + * brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed. + * brig/brigfrontend/brig-cvt-inst-handler.cc: Removed. + * brig/brigfrontend/brig-fbarrier-handler.cc: Removed. + * brig/brigfrontend/brig-function-handler.cc: Removed. + * brig/brigfrontend/brig-function.cc: Removed. + * brig/brigfrontend/brig-function.h: Removed. + * brig/brigfrontend/brig-inst-mod-handler.cc: Removed. + * brig/brigfrontend/brig-label-handler.cc: Removed. + * brig/brigfrontend/brig-lane-inst-handler.cc: Removed. + * brig/brigfrontend/brig-machine.c: Removed. + * brig/brigfrontend/brig-machine.h: Removed. + * brig/brigfrontend/brig-mem-inst-handler.cc: Removed. + * brig/brigfrontend/brig-module-handler.cc: Removed. + * brig/brigfrontend/brig-queue-inst-handler.cc: Removed. + * brig/brigfrontend/brig-seg-inst-handler.cc: Removed. + * brig/brigfrontend/brig-signal-inst-handler.cc: Removed. + * brig/brigfrontend/brig-to-generic.cc: Removed. + * brig/brigfrontend/brig-to-generic.h: Removed. + * brig/brigfrontend/brig-util.cc: Removed. + * brig/brigfrontend/brig-util.h: Removed. + * brig/brigfrontend/brig-variable-handler.cc: Removed. + * brig/brigfrontend/hsa-brig-format.h: Removed. + * brig/brigfrontend/phsa.h: Removed. + * brig/brigspec.c: Removed. + * brig/config-lang.in: Removed. + * brig/gccbrig.texi: Removed. + * brig/lang-specs.h: Removed. + * brig/lang.opt: Removed. + +2021-05-11 Richard Biener + + PR ipa/100513 + * ipa-param-manipulation.c + (ipa_param_body_adjustments::modify_call_stmt): Avoid + altering SSA_NAME_DEF_STMT by adjusting the calls LHS + via gimple_call_lhs_ptr. + +2021-05-11 Alex Coplan + + PR target/99725 + * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): + Avoid emitting CFA adjusts on the sp if we have the fp. + +2021-05-11 Richard Sandiford + + * config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete. + (VMULD): New iterator. + (VCOND): Handle V4HF and V8HF. + (VCONQ): Fix entry for V2SF. + * config/aarch64/aarch64-simd.md (mul_lane3): Use VMULD + instead of VMUL. Use a 64-bit vector mode for the indexed operand. + (*aarch64_mul3_elt_): Merge with... + (mul_laneq3): ...this define_insn. Use VMUL instead of VDQSF. + Use a 128-bit vector mode for the indexed operand. Use stype for + the scheduling type. + +2021-05-11 Richard Biener + + * gimple-fold.c (maybe_fold_reference): Only return + is_gimple_min_invariant values. + +2021-05-11 Richard Biener + + PR middle-end/100509 + * gimple-fold.c (fold_gimple_assign): Only call + get_symbol_constant_value on register type symbols. + +2021-05-11 Srinath Parvathaneni + Joe Ramsay + + PR target/100419 + * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments. + (__arm_vcmpneq): Remove duplicate definition. + (__arm_vstrwq_scatter_offset_p): Likewise. + (__arm_vmaxq_x): Likewise. + (__arm_vmlsdavaq): Likewise. + (__arm_vmlsdavaxq): Likewise. + (__arm_vmlsdavq_p): Likewise. + (__arm_vmlsdavxq_p): Likewise. + (__arm_vrmlaldavhaq): Likewise. + (__arm_vstrbq_p): Likewise. + (__arm_vstrbq_scatter_offset): Likewise. + (__arm_vstrbq_scatter_offset_p): Likewise. + (__arm_vstrdq_scatter_offset): Likewise. + (__arm_vstrdq_scatter_offset_p): Likewise. + (__arm_vstrdq_scatter_shifted_offset): Likewise. + (__arm_vstrdq_scatter_shifted_offset_p): Likewise. + +2021-05-11 Jakub Jelinek + + PR middle-end/100471 + * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data + is 0, bypass the reduction loop including + GOMP_taskgroup_reduction_unregister call. + +2021-05-11 Kewen Lin + + * config/rs6000/rs6000.c (struct rs6000_cost_data): New member + costing_for_scalar. + (rs6000_density_test): Early return if costing_for_scalar is true. + (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data. + +2021-05-11 Kewen Lin + + * doc/tm.texi: Regenerated. + * target.def (init_cost): Add new parameter costing_for_scalar. + * targhooks.c (default_init_cost): Adjust for new parameter. + * targhooks.h (default_init_cost): Likewise. + * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise. + (vect_compute_single_scalar_iteration_cost): Likewise. + (vect_analyze_loop_2): Likewise. + * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise. + (vect_bb_vectorization_profitable_p): Likewise. + * tree-vectorizer.h (init_cost): Likewise. + * config/aarch64/aarch64.c (aarch64_init_cost): Likewise. + * config/i386/i386.c (ix86_init_cost): Likewise. + * config/rs6000/rs6000.c (rs6000_init_cost): Likewise. + +2021-05-11 Kewen Lin + + * config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to + vect_nonmem and moved into... + (struct rs6000_cost_data): ...here. + (rs6000_init_cost): Use vect_nonmem of cost_data instead. + (rs6000_add_stmt_cost): Likewise. + (rs6000_finish_cost): Likewise. + +2021-05-10 Eric Botcazou + + * range-op.cc (get_bool_state): Adjust head comment. + (operator_not_equal::op1_range): Fix comment. + (operator_bitwise_xor::op1_range): Remove call to gcc_unreachable. + +2021-05-10 Martin Sebor + + PR middle-end/100425 + PR middle-end/100510 + * gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename... + (pass_walloca::xlimit_certain_p): ...to this. + (pass_walloca::gate): Execute for any kind of handled warning. + (pass_walloca::execute): Avoid issuing "maybe" and "unbounded" + warnings when xlimit_certain_p is set. + +2021-05-10 Pat Haugen + + * config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class): + Return ALTIVEC_REGS if that is best_class. + (rs6000_compute_pressure_classes): Add ALTIVEC_REGS. + +2021-05-10 Christophe Lyon + + * config/arm/arm.h (CPP_SPEC): Remove error message about + -mfloat-abi. + +2021-05-10 Martin Jambor + + * ipa-prop.h (IPA_NODE_REF): Removed. + (IPA_NODE_REF_GET_CREATE): Likewise. + (IPA_EDGE_REF): Likewise. + (IPA_EDGE_REF_GET_CREATE): Likewise. + (IS_VALID_JUMP_FUNC_INDEX): Likewise. + * ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct + use of ipa_node_params_sum. + (ipcp_versionable_function_p): Likewise. + (push_node_to_stack): Likewise. + (pop_node_from_stack): Likewise. + (set_single_call_flag): Replaced two IPA_NODE_REF with one single + direct use of ipa_node_params_sum. + (initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of + ipa_node_params_sum. + (ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of + ipa_edge_args_sum. + (ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct + use of ipa_node_params_sum. + (self_recursively_generated_p): Likewise. + (propagate_scalar_across_jump_function): Likewise. + (propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a + direct use of ipa_edge_args_sum, moved the lookup after the early + exit. Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum. + (propagate_bits_across_jump_function): Replaced IPA_NODE_REF with + direct uses of ipa_node_params_sum. + (propagate_vr_across_jump_function): Likewise. + (propagate_aggregate_lattice): Likewise. + (propagate_aggs_across_jump_function): Likewise. + (propagate_constants_across_call): Likewise, also replaced + IPA_EDGE_REF with a direct use of ipa_edge_args_sum. + (good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use + of ipa_node_params_sum. + (estimate_local_effects): Likewise. + (add_all_node_vals_to_toposort): Likewise. + (propagate_constants_topo): Likewise. + (ipcp_propagate_stage): Likewise. + (ipcp_discover_new_direct_edges): Likewise. + (calls_same_node_or_its_all_contexts_clone_p): Likewise. + (cgraph_edge_brings_value_p): Likewise (in both overloaded functions). + (get_info_about_necessary_edges): Likewise. + (want_remove_some_param_p): Likewise. + (create_specialized_node): Likewise. + (self_recursive_pass_through_p): Likewise. + (self_recursive_agg_pass_through_p): Likewise. + (find_more_scalar_values_for_callers_subset): Likewise and also + replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one + case replacing two of those with a single query. + (find_more_contexts_for_caller_subset): Likewise for the + ipa_polymorphic_call_context overload. + (intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct + use of ipa_edge_args_sum. Replaced IPA_NODE_REF with direct uses of + ipa_node_params_sum. + (find_aggregate_values_for_callers_subset): Likewise, also reusing + results of ipa_edge_args_sum->get. + (cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with + direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a + direct use of ipa_edge_args_sum. + (cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node + summary query after the early exit and reused the result later. + (decide_about_value): Replaced IPA_NODE_REF with a direct use of + ipa_node_params_sum. + (decide_whether_version_node): Likewise. Removed re-querying for + summaries after cloning. + (spread_undeadness): Replaced IPA_NODE_REF with a direct use of + ipa_node_params_sum. + (has_undead_caller_from_outside_scc_p): Likewise, reusing results of + some queries. + (identify_dead_nodes): Likewise. + (ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of + ipa_node_params_sum. + (ipcp_store_vr_results): Likewise. + * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise. + (ipa_fn_summary_t::duplicate): Likewise. + (analyze_function_body): Likewise. + (estimate_calls_size_and_time): Likewise. + (ipa_cached_call_context::duplicate_from): Likewise. + (ipa_call_context::equal_to): Likewise. + (remap_edge_params): Likewise. + (ipa_merge_fn_summary_after_inlining): Likewise. + (inline_read_section): Likewise. + * ipa-icf.c (sem_function::param_used_p): Likewise. + * ipa-modref.c (compute_parm_map): Likewise. + (compute_parm_map): Replaced IPA_EDGE_REF with a direct use of + ipa_edge_args_sum. + (get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of + ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of + ipa_edge_args_sum. + * ipa-profile.c (check_argument_count): Likewise. + * ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE + with a direct use of ipa_node_params_sum. + (ipa_initialize_node_params): Likewise. + (ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a + direct use of ipa_edge_args_sum and reused the query result. + (ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a + direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a + direct use of ipa_edge_args_sum. + (ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of + ipa_node_params_sum and reused the result of the query. + (ipa_analyze_node): Likewise. + (ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use + of ipa_node_params_sum. + (update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with + direct uses of ipa_edge_args_sum. + (update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with + direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a + direct use of ipa_edge_args_sum. Removed superficial re-querying the + top edge summary. + (propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of + ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of + ipa_edge_args_sum. + (ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a + direct use of ipa_edge_args_sum. + (ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct + use of ipa_node_params_sum. + (ipa_print_node_params): Likewise. + (ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with + direct uses of ipa_edge_args_sum. + (ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of + ipa_edge_args_sum. + (ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of + ipa_node_params_sum. + (ipa_prop_write_jump_functions): Likewise. Move variable node to the + scopes where it is used. + +2021-05-10 Uroš Bizjak + + * config/i386/i386-expand.c (ix86_expand_sse_movcc) + : Force op_true to register. + +2021-05-10 Christophe Lyon + + * config/arm/iterators.md (MVE_FP_COMPARISONS): New. + * config/arm/mve.md (mve_vcmpq_f) + (mve_vcmpq_n_f): New, merge all vcmp_*f* + patterns. + (mve_vcmpeqq_f, mve_vcmpeqq_n_f, mve_vcmpgeq_f) + (mve_vcmpgeq_n_f, mve_vcmpgtq_f) + (mve_vcmpgtq_n_f, mve_vcmpleq_f) + (mve_vcmpleq_n_f, mve_vcmpltq_f) + (mve_vcmpltq_n_f, mve_vcmpneq_f) + (mve_vcmpneq_n_f): Remove. + * config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F) + (VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F) + (VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove. + +2021-05-10 Christophe Lyon + + * config/arm/iterators.md (MVE_COMPARISONS): New. + (mve_cmp_op): New. + (mve_cmp_type): New. + * config/arm/mve.md (mve_vcmpq_): New, merge all + mve_vcmp patterns. + (mve_vcmpneq_, mve_vcmpcsq_n_, mve_vcmpcsq_) + (mve_vcmpeqq_n_, mve_vcmpeqq_, mve_vcmpgeq_n_) + (mve_vcmpgeq_, mve_vcmpgtq_n_, mve_vcmpgtq_) + (mve_vcmphiq_n_, mve_vcmphiq_, mve_vcmpleq_n_) + (mve_vcmpleq_, mve_vcmpltq_n_, mve_vcmpltq_) + (mve_vcmpneq_n_, mve_vcmpltq_n_, mve_vcmpltq_) + (mve_vcmpneq_n_): Remove. + +2021-05-10 Christophe Lyon + + * config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix. + * config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix. + * config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern + names. + +2021-05-10 Christophe Lyon + + * config/arm/arm_mve_builtins.def (vcmpneq_u): Remove. + (vcmpneq_n_u): Likewise. + (vcmpeqq_u,): Likewise. + (vcmpeqq_n_u): Likewise. + * config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U, + VCMPEQQ_N_U and VCMPNEQ_N_U. + * config/arm/mve.md (mve_vcmpneq): Remove iteration. + (mve_vcmpeqq_n): Likewise. + (mve_vcmpeqq): Likewise. + (mve_vcmpneq_n): Likewise. + +2021-05-10 Christophe Lyon + + * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call + the 's' version of the builtin. + +2021-05-10 Richard Biener + + PR tree-optimization/100492 + * tree-loop-distribution.c (find_seed_stmts_for_distribution): + Find nothing when the loop contains an irreducible region. + +2021-05-10 Richard Biener + + PR middle-end/100464 + PR c++/100468 + * gimple-fold.c (canonicalize_constructor_val): Do not set + TREE_ADDRESSABLE. + +2021-05-10 Richard Biener + + PR tree-optimization/100434 + * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle + call LHS. + (dse_optimize_stmt): Handle call LHS by dropping the + LHS or the whole call if it doesn't have other + side-effects. + (pass_dse::execute): Adjust. + +2021-05-10 Martin Liska + + * Makefile.in: Add missing genversion rule. + +2021-05-10 Alex Coplan + + PR target/99960 + * config/arm/mve.md (*mve_mov): Simplify output code. Use + vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores. + +2021-05-10 Martin Liska + + * builtins.c (is_builtin_name): Use startswith + function instead of strncmp. + * collect2.c (main): Likewise. + (has_lto_section): Likewise. + (scan_libraries): Likewise. + * coverage.c (coverage_checksum_string): Likewise. + (coverage_init): Likewise. + * dwarf2out.c (is_cxx): Likewise. + (gen_compile_unit_die): Likewise. + * gcc-ar.c (main): Likewise. + * gcc.c (init_spec): Likewise. + (read_specs): Likewise. + (execute): Likewise. + (check_live_switch): Likewise. + * genattrtab.c (write_attr_case): Likewise. + (IS_ATTR_GROUP): Likewise. + * gencfn-macros.c (main): Likewise. + * gengtype.c (type_for_name): Likewise. + (gen_rtx_next): Likewise. + (get_file_langdir): Likewise. + (write_local): Likewise. + * genmatch.c (get_operator): Likewise. + (get_operand_type): Likewise. + (expr::gen_transform): Likewise. + * genoutput.c (validate_optab_operands): Likewise. + * incpath.c (add_sysroot_to_chain): Likewise. + * langhooks.c (lang_GNU_C): Likewise. + (lang_GNU_CXX): Likewise. + (lang_GNU_Fortran): Likewise. + (lang_GNU_OBJC): Likewise. + * lto-wrapper.c (run_gcc): Likewise. + * omp-general.c (omp_max_simt_vf): Likewise. + * omp-low.c (omp_runtime_api_call): Likewise. + * opts-common.c (parse_options_from_collect_gcc_options): Likewise. + * read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise. + * real.c (real_from_string): Likewise. + * selftest.c (assert_str_startswith): Likewise. + * timevar.c (timer::validate_phases): Likewise. + * tree.c (get_file_function_name): Likewise. + * ubsan.c (ubsan_use_new_style_p): Likewise. + * varasm.c (default_function_rodata_section): Likewise. + (incorporeal_function_p): Likewise. + (default_section_type_flags): Likewise. + * system.h (startswith): Define startswith. + +2021-05-10 Martin Liska + + * bitmap.h (class auto_bitmap): Remove + __cplusplus >= 201103. + * config/aarch64/aarch64.c: Likewise. + * gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info): + Likewise. + * sbitmap.h: Likewise. + +2021-05-10 Martin Liska + + * Makefile.in: Rename gcov-iov to genversion and depend + on version.h (instead of gcov-iov.h). + * gcov-io.h: Include version.h instread of gcov-iov.h. + * gengtype-state.c (read_state_version): Likewise. + * gcov-iov.c: Moved to... + * genversion.c: ...here. + * lto-streamer.h (LTO_major_version): Define it with + GCC_major_version. + * version.c: Removed. + * version.h: Removed. + +2021-05-10 Claudiu Zissulescu + + * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define. + * config/arc/simdext.md (VCT): Add predicates for iterator + elements. + (EMUVEC): Define. + (voptab): Likewise. + (vec_widen_mult_hi_v4hi): Change pattern predicate. + (v2si3): New patterns. + (neg): Likewise. + (reduc_plus_scal_v4hi): Likewise. + (reduc_plus_scal_v2si): Likewise. + (vec_duplicatev2si): Likewise. + (vec_duplicatev4hi): Likewise. + +2021-05-10 Claudiu Zissulescu + + * config/arc/simdext.md: Format and cleanup file. + +2021-05-10 Claudiu Zissulescu + + * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access + only when munaligned-access option is on. + (movmisalign): Likewise. + +2021-05-10 Claudiu Zissulescu + + * common/config/arc/arc-common.c (arc_handle_option): Remove dot + from string. + * config/arc/arc.c (arc_reorg): Remove underscore from string. + +2021-05-10 Claudiu Zissulescu + + * config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. + (CTZ_DEFINED_VALUE_AT_ZERO): Likewise. + * config/arc/arc.md (clrsbsi2): Cleanup pattern. + (norm_f): Likewise. + (ffs): Likewise. + (ffs_f): Likewise. + (clzsi2): Use fls instruction when available. + (arc_clzsi2): Likewise. + +2021-05-10 Claudiu Zissulescu + + * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27. + +2021-05-10 Claudiu Zissulescu + + * doc/extend.texi (__builtin_arc_sr): Swap arguments. + +2021-05-10 Bernd Edlinger + + PR middle-end/100467 + * toplev.c (compile_file): Call insn_locations_init before + targetm.asm_out.code_end. + +2021-05-07 Andrew Stubbs + + Revert: + 2021-05-07 Andrew Stubbs + + * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode. + +2021-05-07 Jakub Jelinek + Andrew Stubbs + + PR target/100418 + * builtins.c (try_store_by_multiple_pieces): Use force_operand for + emit_move_insn operands. + +2021-05-07 Eric Botcazou + + * cfgexpand.c (expand_gimple_basic_block): Do not inherit a current + location for the outgoing edges of an empty block. + * dwarf2out.c (add_subscript_info): Retrieve the bounds and index + type by means of the get_array_descr_info langhook, if it is set and + returns true. Remove obsolete code dealing with unnamed subtypes. + +2021-05-07 Andrew MacLeod + + * gimple-range-cache.cc (ssa_block_ranges): Virtualize. + (sbr_vector): Renamed from ssa_block_cache. + (sbr_vector::sbr_vector): Allocate from obstack abd initialize. + (ssa_block_ranges::~ssa_block_ranges): Remove. + (sbr_vector::set_bb_range): Use varying and undefined cached values. + (ssa_block_ranges::set_bb_varying): Remove. + (sbr_vector::get_bb_range): Adjust assert. + (sbr_vector::bb_range_p): Adjust assert. + (~block_range_cache): No freeing loop required. + (block_range_cache::get_block_ranges): Remove. + (block_range_cache::set_bb_range): Inline get_block_ranges. + (block_range_cache::set_bb_varying): Remove. + * gimple-range-cache.h (set_bb_varying): Remove prototype. + * value-range.h (irange_allocator::get_memory): New. + +2021-05-07 Andrew MacLeod + + * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search + dominator tree is available and requested. + (ranger_cache::ssa_range_in_bb): Don't search dom tree here. + (ranger_cache::fill_block_cache): Don't search dom tree here either. + * gimple-range-cache.h (non_null_deref_p): Add dom_search param. + +2021-05-07 Andrew MacLeod + + * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with + only PHI nodes better. + +2021-05-07 Andrew MacLeod + + * gimple-range-edge.h (gimple_outgoing_range): Rename from + outgoing_range. + (gcond_edge_range): Export prototype. + * gimple-range-edge.cc (gcond_edge_range): New. + (gimple_outgoing_range::edge_range_p): Use gcond_edge_range. + * gimple-range-gori.h (gori_compute): Use gimple_outgoing_range. + +2021-05-07 Andrew MacLeod + + * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute + default range into a temp and allocate only what is needed. + +2021-05-07 Andrew MacLeod + + * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED. + +2021-05-07 Andrew MacLeod + + * gimple-range.h (gimple_range_global): Pick up parameter initial + values, and use-before defined locals are UNDEFINED. + +2021-05-07 Eric Botcazou + + * doc/extend.texi (scalar_storage_order): Mention effect on pointer + and vector fields. + * tree.h (reverse_storage_order_for_component_p): Return false if + the type is a pointer. + +2021-05-07 Andrew Stubbs + + * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode. + +2021-05-07 Uroš Bizjak + + PR target/98218 + * config/i386/i386-expand.c (ix86_expand_sse_movcc): + Handle V8QI, V4HI and V2SI modes. + * config/i386/mmx.md (mmx_pblendvb): New insn pattern. + * config/i386/sse.md (unspec): Move UNSPEC_BLENDV ... + * config/i386/i386.md (unspec): ... here. + +2021-05-07 Tobias Burnus + Tom de Vries + + * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if + a truth_value_p reduction variable is nonintegral. + +2021-05-07 Uroš Bizjak + + PR target/100445 + * config/i386/i386-expand.c (ix86_use_mask_cmp_p): + Return false for mode sizes < 16. + +2021-05-07 Jakub Jelinek + + PR target/100445 + * config/i386/mmx.md (*xop_pcmov_): New define_insn. + +2021-05-06 Martin Jambor + + * ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even + when there is no function summary. + (ipa_sra_summarize_function): produce edge summaries even when + bailing out early. + +2021-05-06 Tom Tromey + + * godump.c (string_hash_eq): Remove. + (go_finish): Use htab_eq_string. + +2021-05-06 Tom Tromey + + * gengtype-state.c (read_state): Use htab_eq_string. + (string_eq): Remove. + +2021-05-06 Tom Tromey + + * gensupport.c (htab_eq_string): Remove. + +2021-05-06 Bernd Edlinger + + PR ipa/97937 + * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer. + * dwarf2out.h (dw_fde_node::ignored_debug): New data item. + * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy + set_ignored_loc callbacks. + * debug.c (do_nothing_debug_hooks): Likewise. + * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. + * dwarf2out.c (text_section_used, cold_text_section_used): Remove. + (in_text_section_p, last_text_label, last_cold_label, + switch_text_ranges, switch_cold_ranges): New data items. + (dwarf2out_note_section_used): Remove. + (dwarf2out_begin_prologue): Set fde->ignored_debug and + in_text_section_p. + (mark_ignored_debug_section): New helper function. + (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call + mark_ignored_debug_section. + (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc. + (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc. + (size_of_aranges): Adjust formula for multi-part text ranges size. + (output_aranges): Output multi-part text ranges. + (dwarf2out_set_ignored_loc): New callback function. + (dwarf2out_finish): Output multi-part text ranges. + (dwarf2out_c_finalize): Clear new data items. + * final.c (final_start_function_1): Call set_ignored_loc callback. + (final_scan_insn_1): Likewise. + * ggc-page.c (gt_ggc_mx): New helper function. + * stringpool.c (gt_pch_nx): Likewise. + +2021-05-06 Richard Biener + + * timevar.def (TV_TREE_INSERT_PHI_NODES): Remove. + (TV_TREE_SSA_REWRITE_BLOCKS): Likewise. + (TV_TREE_INTO_SSA): New. + * tree-into-ssa.c (insert_phi_nodes): Do not account separately. + (rewrite_blocks): Likewise. + (pass_data_build_ssa): Account to TV_TREE_INTO_SSA. + +2021-05-06 Jakub Jelinek + + * tree-ssa-phiopt.c (value_replacement, minmax_replacement, + abs_replacement, xor_replacement, + cond_removal_in_popcount_clz_ctz_pattern, + replace_phi_edge_with_variable): Change type of phi argument from + gimple * to gphi *. + +2021-05-06 Richard Biener + + * tree-ssa-loop-split.c (split_loop): Delay updating SSA form. + Output an opt-info message. + (do_split_loop_on_cond): Likewise. + (tree_ssa_split_loops): Update SSA form here. + +2021-05-06 Richard Biener + + * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE + return variable removal. + +2021-05-06 Marius Hillenbrand + + * config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros. + (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64) + (s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate + operand. + * config/s390/s390.c (s390_const_operand_ok): Remove unused + values. + +2021-05-06 Jakub Jelinek + + PR tree-optimization/94589 + * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call + spaceship_replacement. + (cond_only_block_p, spaceship_replacement): New functions. + +2021-05-06 Richard Biener + + PR ipa/100373 + * tree-emutls.c (gen_emutls_addr): Pass in whether we're + dealing with a debug use and only query existing addresses + if so. + (lower_emutls_1): Avoid splitting out addresses for debug + stmts, reset the debug stmt when we fail to find existing + lowered addresses. + (lower_emutls_phi_arg): Set wi.stmt. + +2021-05-06 Christoph Muellner + + PR target/100266 + * config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper. + * config/riscv/riscv.md (cbranch4): Generate helpers. + (stack_protect_test): Use cbranch helper. + +2021-05-05 Eric Botcazou + + PR target/100402 + * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, + always return the establisher frame for __builtin_frame_address (0). + +2021-05-05 Ivan Sorokin + + PR target/91400 + * config/i386/i386-builtins.c (ix86_cpu_model_type_node): New. + (ix86_cpu_model_var): Likewise. + (ix86_cpu_features2_type_node): Likewise. + (ix86_cpu_features2_var): Likewise. + (fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with + their types. + +2021-05-05 Martin Sebor + + * passes.def (pass_warn_printf): Run after SSA. + +2021-05-05 Prathamesh Kulkarni + + * config/arm/neon.md (neon_vtst_combine): New pattern. + * config/arm/predicates.md (minus_one_operand): New predicate. + +2021-05-05 Jeff Law + + * config/avr/avr.md: Remove references to CC_STATUS_INIT. + +2021-05-05 Stefan Schulze Frielinghaus + + PR rtl-optimization/100263 + * postreload.c (move2add_valid_value_p): Ensure register can + change mode. + +2021-05-05 Eric Botcazou + + PR rtl-optimization/100411 + * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue + and beginning of function markers. + +2021-05-05 Jeff Law + + * config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove. + * config/cr16/cr16.c (notice_update_cc): Remove. + * config/cr16/cr16-protos.h (notice_update_cc): Remove. + +2021-05-05 Uroš Bizjak + + PR target/98218 + * config/i386/i386-expand.c (ix86_expand_int_sse_cmp): + Handle V8QI, V4HI and V2SI modes. + * config/i386/i386.c (ix86_build_const_vector): Handle V2SImode. + (ix86_build_signbit_mask): Ditto. + * config/i386/mmx.md (MMXMODE14): New mode iterator. + (3): New expander. + (*mmx_3): New insn pattern. + (3): New expander. + (*mmx_3): New insn pattern. + (vec_cmp): New expander. + (vec_cmpu): Ditto. + (vcond): Ditto. + (vcondu): Ditto. + (vcond_mask_): Ditto. + +2021-05-05 Eric Botcazou + + * dwarf2out.c (loc_list_from_tree_1) : During early DWARF, do + not expand the VALUE_EXPR of variables put in the non-local frame. + * gimplify.c (gimplify_type_sizes) : If the type is not + to be ignored for debug info, ensure its variable offsets are not. + +2021-05-05 Richard Biener + + PR tree-optimization/79333 + * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): + Fold stmt following SSA edges. + +2021-05-05 Richard Biener + + PR middle-end/100394 + * calls.c (expand_call): Preserve possibly throwing calls. + * cfgexpand.c (expand_call_stmt): When a call can throw signal + RTL expansion there are side-effects. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify, + mark all possibly throwing stmts necessary unless we can elide + dead EH. + * tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless + -fdelete-dead-exceptions. + * tree.h (DECL_PURE_P): Add note about exceptions. + +2021-05-05 Alexandre Oliva + + * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it + unconditional. + +2021-05-04 David Edelsohn + + * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use + get_fnname_from_decl for name of thunk. + * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name + and ASM_OUTPUT_LABEL. + (rs6000_xcoff_declare_function_name): Use assemble_name and + ASM_OUTPUT_LABEL. + (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL. + (rs6000_xcoff_encode_section_info): Don't add mapping class + for aliases. Always add [DS] mapping class to primary + FUNCTION_DECL. + (rs6000_asm_weaken_decl): Don't explicitly add [DS]. + +2021-05-04 Martin Sebor + + PR middle-end/100307 + * builtins.c (compute_objsize_r): Clear base0 for pointers. + +2021-05-04 Jeff Law + + * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove. + +2021-05-04 Segher Boessenkool + + * caller-save.c: Remove CC0. + * cfgcleanup.c: Remove CC0. + * cfgrtl.c: Remove CC0. + * combine.c: Remove CC0. + * compare-elim.c: Remove CC0. + * conditions.h: Remove CC0. + * config/h8300/h8300.h: Remove CC0. + * config/h8300/h8300-protos.h: Remove CC0. + * config/h8300/peepholes.md: Remove CC0. + * config/i386/x86-tune-sched.c: Remove CC0. + * config/m68k/m68k.c: Remove CC0. + * config/rl78/rl78.c: Remove CC0. + * config/sparc/sparc.c: Remove CC0. + * config/xtensa/xtensa.c: Remove CC0. + (gen_conditional_move): Use pc_rtx instead of cc0_rtx in a piece of + RTL where that is used as a placeholder only. + * cprop.c: Remove CC0. + * cse.c: Remove CC0. + * cselib.c: Remove CC0. + * df-problems.c: Remove CC0. + * df-scan.c: Remove CC0. + * doc/md.texi: Remove CC0. Adjust an example. + * doc/rtl.texi: Remove CC0. Adjust an example. + * doc/tm.texi: Regenerate. + * doc/tm.texi.in: Remove CC0. + * emit-rtl.c: Remove CC0. + * final.c: Remove CC0. + * fwprop.c: Remove CC0. + * gcse-common.c: Remove CC0. + * gcse.c: Remove CC0. + * genattrtab.c: Remove CC0. + * genconfig.c: Remove CC0. + * genemit.c: Remove CC0. + * genextract.c: Remove CC0. + * gengenrtl.c: Remove CC0. + * genrecog.c: Remove CC0. + * haifa-sched.c: Remove CC0. + * ifcvt.c: Remove CC0. + * ira-costs.c: Remove CC0. + * ira.c: Remove CC0. + * jump.c: Remove CC0. + * loop-invariant.c: Remove CC0. + * lra-constraints.c: Remove CC0. + * lra-eliminations.c: Remove CC0. + * optabs.c: Remove CC0. + * postreload-gcse.c: Remove CC0. + * postreload.c: Remove CC0. + * print-rtl.c: Remove CC0. + * read-rtl-function.c: Remove CC0. + * reg-notes.def: Remove CC0. + * reg-stack.c: Remove CC0. + * reginfo.c: Remove CC0. + * regrename.c: Remove CC0. + * reload.c: Remove CC0. + * reload1.c: Remove CC0. + * reorg.c: Remove CC0. + * resource.c: Remove CC0. + * rtl.c: Remove CC0. + * rtl.def: Remove CC0. + * rtl.h: Remove CC0. + * rtlanal.c: Remove CC0. + * sched-deps.c: Remove CC0. + * sched-rgn.c: Remove CC0. + * shrink-wrap.c: Remove CC0. + * simplify-rtx.c: Remove CC0. + * system.h: Remove CC0. Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT, + CC_STATUS_MDEP, and CC_STATUS. + * target.def: Remove CC0. + * valtrack.c: Remove CC0. + * var-tracking.c: Remove CC0. + +2021-05-04 Richard Biener + + PR tree-optimization/100414 + * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance + info here. + (tree_ssa_phiopt_worker): But unconditionally here. + +2021-05-04 Tobias Burnus + + * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle + && and || with floating-point and complex arguments. + +2021-05-04 Eric Botcazou + + * tree-inline.c (insert_debug_decl_map): Delete. + (copy_debug_stmt): Minor tweak. + (setup_one_parameter): Do not use a variable if the value is either + a read-only DECL or a non-addressable local variable in the caller. + In this case, insert the debug-only variable in the map manually. + (expand_call_inline): Do not generate a CLOBBER for these values. + * tree-inline.h (debug_map): Minor tweak. + +2021-05-04 Eric Botcazou + + * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy. + * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up. + +2021-05-04 Richard Biener + + PR tree-optimization/100329 + * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate + asm goto defs. + (insert_stmt_after): Assert we're not running into asm goto. + +2021-05-04 Richard Biener + + PR tree-optimization/100398 + * tree-ssa-dse.c (pass_dse::execute): Preserve control + altering stmts. + +2021-05-04 Prathamesh Kulkarni + + * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype. + +2021-05-04 Alexandre Oliva + + * builtins.c (try_store_by_multiple_pieces): New. + (expand_builtin_memset_args): Use it. If target_char_cast + fails, proceed as for non-constant val. Pass len's ctz to... + * expr.c (clear_storage_hints): ... this. Try store by + multiple pieces after setmem. + (clear_storage): Adjust. + * expr.h (clear_storage_hints): Likewise. + (try_store_by_multiple_pieces): Declare. + * passes.def: Replace the last copy_prop with ccp. + +2021-05-03 Tom de Vries + + PR target/100321 + * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined + reduction. + +2021-05-03 Richard Biener + + * tree-ssa-dse.c (dse_classify_store): Track two PHI defs. + +2021-05-03 Richard Biener + + * tree-ssa-dse.c: Do not include domwalk.h but cfganal.h. + (dse_dom_walker): Remove. + (dse_dom_walker::dse_optimize_stmt): Rename... + (dse_optimize_stmt): ... to this, pass in live_bytes sbitmap. + (dse_dom_walker::before_dom_children): Inline ... + (pass_dse::execute): ... here. Perform a reverse program + order walk. + +2021-05-03 H.J. Lu + + PR bootstrap/99703 + * configure: Regenerated. + +2021-05-03 Ilya Leoshkevich + + PR target/100217 + * config/s390/s390.c (s390_hard_fp_reg_p): New function. + (s390_md_asm_adjust): Handle hard registers. + +2021-05-03 Jakub Jelinek + + PR tree-optimization/100382 + * tree-ssa-dse.c: Include tree-eh.h. + (dse_dom_walker::before_dom_children): Don't remove stmts if + stmt_unremovable_because_of_non_call_eh_p is true. + +2021-05-02 David Edelsohn + + * varasm.c (compute_reloc_for_var): Split out from... + (get_variable_section): Use it. + * output.h (compute_reloc_for_var): Declare. + * config/rs6000/rs6000-protos.h + (rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to + unsigned int. + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix): + Don't append storage mapping class to symbol. + (rs6000_xcoff_asm_named_section): Add BS and UL mapping classes. + Don't convert TLS BSS to common. + (rs6000_xcoff_unique_section): Don't fall back to select_secton. + (rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is + bss_initializer. + (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage + mapping class. + (rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int. + If align is 0 from TLS class, use the same rules as varasm.c + If not common, switch to BSS section manually. + If common, emit appropriate comm or lcomm directive. + (rs6000_xcoff_encode_section_info): Add logic to append all + storage mapping classes. + (rs6000_asm_weaken_decl): Adjust for qualname symbols. + * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use + rs6000_xcoff_asm_output_aligned_decl_common. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use + rs6000_xcoff_asm_output_aligned_decl_common. + (ASM_OUTPUT_TLS_COMMON): Use + rs6000_xcoff_asm_output_aligned_decl_common. + +2021-05-02 Jakub Jelinek + + PR target/100375 + * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0 + as first argument of pseudo_node_t constructors. + +2021-05-02 Jakub Jelinek + + PR target/100336 + * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def. + +2021-05-01 Aldy Hernandez + + * value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove. + (gt_pch_nx (int_range<1> *&)): New. + (gt_ggc_mx (int_range<1> *&)): New. + * value-range.h (class irange): Add GTY support for + the base class. + +2021-05-01 Geng Qi + + * doc/options.texi (Negative): Change either or to both and. + +2021-04-30 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add + float_ml[as][q]_laneq builtin generator macros. + * config/aarch64/aarch64-simd.md (mul_laneq3): Define. + (aarch64_float_mla_laneq): Define. + (aarch64_float_mls_laneq): Define. + * config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin + instead of GCC vector extensions. + (vmlaq_laneq_f32): Likewise. + (vmls_laneq_f32): Likewise. + (vmlsq_laneq_f32): Likewise. + +2021-04-30 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add + float_ml[as]_lane builtin generator macros. + * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt): + Rename to... + (mul_lane3): This, and re-order arguments. + (aarch64_float_mla_lane): Define. + (aarch64_float_mls_lane): Define. + * config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin + instead of GCC vector extensions. + (vmlaq_lane_f32): Likewise. + (vmls_lane_f32): Likewise. + (vmlsq_lane_f32): Likewise. + +2021-04-30 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add float_ml[as] + builtin generator macros. + * config/aarch64/aarch64-simd.md (aarch64_float_mla): + Define. + (aarch64_float_mls): Define. + * config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin + instead of relying on GCC vector extensions. + (vmla_f64): Likewise. + (vmlaq_f32): Likewise. + (vmlaq_f64): Likewise. + (vmls_f32): Likewise. + (vmls_f64): Likewise. + (vmlsq_f32): Likewise. + (vmlsq_f64): Likewise. + * config/aarch64/iterators.md: Define VDQF_DF mode iterator. + +2021-04-30 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add + float_ml[as]_n_builtin generator macros. + * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup): + Rename to... + (mul_n3): This, and re-order arguments. + (aarch64_float_mla_n): Define. + (aarch64_float_mls_n): Define. + * config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin + instead of inline asm. + (vmlaq_n_f32): Likewise. + (vmls_n_f32): Likewise. + (vmlsq_n_f32): Likewise. + +2021-04-30 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add pmull[2] + builtin generator macros. + * config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define. + (aarch64_pmull_hiv16qi_insn): Define. + (aarch64_pmull_hiv16qi): Define. + * config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin + instead of inline asm. + (vmull_p8): Likewise. + +2021-04-30 Senthil Kumar Selvaraj + + * config/avr/avr.md: Adjust peepholes to match and + generate parallels with clobber of REG_CC. + (mov_insn): Rename to mov_insn_split. + (*mov_insn): Rename to mov_insn. + +2021-04-30 David Edelsohn + + * varasm.c (use_blocks_for_decl_p): Don't use section anchors + for VAR_DECLs if -fdata-sections enabled. + +2021-04-30 Michael Meissner + + PR bootstrap/100327 + * config/rs6000/rs6000.c + (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define. + (rs6000_libgcc_floating_mode_supported_p): New target hook. + +2021-04-30 Aldy Hernandez + + * tree-ssa-threadbackward.c (class thread_jumps): Split out code + from here... + (class back_threader_registry): ...to here... + (class back_threader_profitability): ...and here... + (thread_jumps::thread_through_all_blocks): Remove argument. + (back_threader_registry::back_threader_registry): New. + (back_threader_registry::~back_threader_registry): New. + (back_threader_registry::thread_through_all_blocks): New. + (thread_jumps::profitable_jump_thread_path): Move from here... + (back_threader_profitability::profitable_path_p): ...to here. + (thread_jumps::find_taken_edge): New. + (thread_jumps::convert_and_register_current_path): Move... + (back_threader_registry::register_path): ...to here. + (thread_jumps::register_jump_thread_path_if_profitable): Move... + (thread_jumps::maybe_register_path): ...to here. + (thread_jumps::handle_phi): Call find_taken_edge and + maybe_register_path. + (thread_jumps::handle_assignment): Same. + (thread_jumps::fsm_find_control_statement_thread_paths): Remove + tree argument to handle_phi and handle_assignment. + (thread_jumps::find_jump_threads_backwards): Set m_name. Remove + set of m_speed_p and m_max_threaded_paths. + (pass_thread_jumps::execute): Remove second argument from + find_jump_threads_backwards. + (pass_early_thread_jumps::execute): Same. + +2021-04-30 Aldy Hernandez + + * tree-ssa-dom.c (class dom_jump_threader_simplifier): New. + (class dom_opt_dom_walker): Initialize some class variables. + (pass_dominator::execute): Pass evrp_range_analyzer and + dom_jump_threader_simplifier to dom_opt_dom_walker. + Adjust for some functions moving into classes. + (simplify_stmt_for_jump_threading): Adjust and move to... + (jump_threader_simplifier::simplify): ...here. + (dom_opt_dom_walker::before_dom_children): Adjust for + m_evrp_range_analyzer. + (dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack. + (test_for_singularity): Place in dom_opt_dom_walker class. + (dom_opt_dom_walker::optimize_stmt): The argument + evrp_range_analyzer is now a class field. + * tree-ssa-threadbackward.c (class thread_jumps): Add m_registry. + (thread_jumps::thread_through_all_blocks): New. + (thread_jumps::convert_and_register_current_path): Use m_registry. + (pass_thread_jumps::execute): Adjust for thread_through_all_blocks + being in the threader class. + (pass_early_thread_jumps::execute): Same. + * tree-ssa-threadedge.c (threadedge_initialize_values): Move... + (jump_threader::jump_threader): ...here. + (threadedge_finalize_values): Move... + (jump_threader::~jump_threader): ...here. + (jump_threader::remove_jump_threads_including): New. + (jump_threader::thread_through_all_blocks): New. + (record_temporary_equivalences_from_phis): Move... + (jump_threader::record_temporary_equivalences_from_phis): ...here. + (record_temporary_equivalences_from_stmts_at_dest): Move... + (jump_threader::record_temporary_equivalences_from_stmts_at_dest): + Here... + (simplify_control_stmt_condition_1): Move to jump_threader class. + (simplify_control_stmt_condition): Move... + (jump_threader::simplify_control_stmt_condition): ...here. + (thread_around_empty_blocks): Move... + (jump_threader::thread_around_empty_blocks): ...here. + (thread_through_normal_block): Move... + (jump_threader::thread_through_normal_block): ...here. + (thread_across_edge): Move... + (jump_threader::thread_across_edge): ...here. + (thread_outgoing_edges): Move... + (jump_threader::thread_outgoing_edges): ...here. + * tree-ssa-threadedge.h: Move externally facing functings... + (class jump_threader): ...here... + (class jump_threader_simplifier): ...and here. + * tree-ssa-threadupdate.c (struct redirection_data): Remove comment. + (jump_thread_path_allocator::jump_thread_path_allocator): New. + (jump_thread_path_allocator::~jump_thread_path_allocator): New. + (jump_thread_path_allocator::allocate_thread_edge): New. + (jump_thread_path_allocator::allocate_thread_path): New. + (jump_thread_path_registry::jump_thread_path_registry): New. + (jump_thread_path_registry::~jump_thread_path_registry): New. + (jump_thread_path_registry::allocate_thread_edge): New. + (jump_thread_path_registry::allocate_thread_path): New. + (dump_jump_thread_path): Make extern. + (debug (const vec &path)): New. + (struct removed_edges): Move to tree-ssa-threadupdate.h. + (struct thread_stats_d): Remove. + (remove_ctrl_stmt_and_useless_edges): Make static. + (lookup_redirection_data): Move... + (jump_thread_path_registry::lookup_redirection_data): ...here. + (ssa_redirect_edges): Make static. + (thread_block_1): Move... + (jump_thread_path_registry::thread_block_1): ...here. + (thread_block): Move... + (jump_thread_path_registry::thread_block): ...here. + (thread_through_loop_header): Move... + (jump_thread_path_registry::thread_through_loop_header): ...here. + (mark_threaded_blocks): Move... + (jump_thread_path_registry::mark_threaded_blocks): ...here. + (debug_path): Move... + (jump_thread_path_registry::debug_path): ...here. + (debug_all_paths): Move... + (jump_thread_path_registry::dump): ..here. + (rewire_first_differing_edge): Move... + (jump_thread_path_registry::rewire_first_differing_edge): ...here. + (adjust_paths_after_duplication): Move... + (jump_thread_path_registry::adjust_paths_after_duplication): ...here. + (duplicate_thread_path): Move... + (jump_thread_path_registry::duplicate_thread_path): ..here. + (remove_jump_threads_including): Move... + (jump_thread_path_registry::remove_jump_threads_including): ...here. + (thread_through_all_blocks): Move to... + (jump_thread_path_registry::thread_through_all_blocks): ...here. + (delete_jump_thread_path): Remove. + (register_jump_thread): Move... + (jump_thread_path_registry::register_jump_thread): ...here. + * tree-ssa-threadupdate.h: Move externally facing functions... + (class jump_thread_path_allocator): ...here... + (class jump_thread_path_registry): ...and here. + (thread_through_all_blocks): Remove. + (struct removed_edges): New. + (register_jump_thread): Remove. + (remove_jump_threads_including): Remove. + (delete_jump_thread_path): Remove. + (remove_ctrl_stmt_and_useless_edges): Remove. + (free_dom_edge_info): New prototype. + * tree-vrp.c: Remove x_vr_values hack. + (class vrp_jump_threader_simplifier): New. + (vrp_jump_threader_simplifier::simplify): New. + (vrp_jump_threader::vrp_jump_threader): Adjust method signature. + Remove m_dummy_cond. + Instantiate m_simplifier and m_threader. + (vrp_jump_threader::thread_through_all_blocks): New. + (vrp_jump_threader::simplify_stmt): Remove. + (vrp_jump_threader::after_dom_children): Do not set m_dummy_cond. + Remove x_vr_values hack. + (execute_vrp): Adjust for thread_through_all_blocks being in a + class. + +2021-04-30 Christophe Lyon + + * genflags.c (gen_insn): Print failed expansion string. + +2021-04-30 H.J. Lu + + * expr.c (alignment_for_piecewise_move): Call mode_for_size + without limit to MAX_FIXED_MODE_SIZE. + +2021-04-30 H.J. Lu + + PR middle-end/90773 + * builtins.c (builtin_memset_gen_str): Don't use return from + simplify_gen_subreg. + +2021-04-30 Uroš Bizjak + + PR target/98060 + * config/i386/i386.md (*add3_carry_0r): New insn pattern. + (*addsi3_carry_zext_0r): Ditto. + (*sub3_carry_0): Ditto. + (*subsi3_carry_zext_0r): Ditto. + * config/i386/predicates.md (ix86_carry_flag_unset_operator): + New predicate. + * config/i386/i386.c (ix86_rtx_costs) : + Also consider ix86_carry_flag_unset_operator to calculate + the cost of adc/sbb insn. + +2021-04-30 Roman Zhuykov + + PR rtl-optimization/100225 + PR rtl-optimization/84878 + * modulo-sched.c (sms_schedule): Use note_stores to skip loops + where we have an instruction which touches (writes) any hard + register from df->regular_block_artificial_uses set. + Allow not-single-set instruction only right before basic block + tail. + +2021-04-30 Geng Qi + + * config/riscv/riscv.opt (march=,mabi=): Negative itself. + +2021-04-30 LevyHsu + + * config/riscv/riscv.c (riscv_min_arithmetic_precision): New. + * config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New. + * config/riscv/riscv.md (addv4, uaddv4): New. + (subv4, usubv4, mulv4, umulv4): New. + +2021-04-29 Alexandre Oliva + + * config.gcc: Merged x86 and x86_64 cpu_type-setting cases. + +2021-04-29 Alexandre Oliva + + * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to... + (ASM_OUTPUT_MAX_SKIP_ALIGN): ... this. Enclose in do/while(0). + * config/i386/i386.c: Adjust. + * config/i386/i386.md: Adjust. + * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop. + * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. + (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. + +2021-04-29 Uroš Bizjak + + * config/i386/i386-expand.c (ix86_expand_int_compare): + Swap operands of GTU and LEU comparison to emit carry flag comparison. + * config/i386/i386.md (*add3_carry_0): Change insn + predicate to allow more combine opportunities with memory operands. + (*sub3_carry_0): Ditto. + +2021-04-29 Richard Sandiford + + PR rtl-optimization/100303 + * rtl-ssa/accesses.cc (function_info::make_use_available): Take a + boolean that indicates whether the use will only be used in + debug instructions. Treat it in the same way that existing + cross-EBB debug references would be handled if so. + (function_info::make_uses_available): Likewise. + * rtl-ssa/functions.h (function_info::make_uses_available): Update + prototype accordingly. + (function_info::make_uses_available): Likewise. + * fwprop.c (try_fwprop_subst): Update call accordingly. + +2021-04-29 Jeff Law + + * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside + of RTX_CODE guard. + +2021-04-29 Uroš Bizjak + Richard Biener + + PR target/100312 + * config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD) + (IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256) + (IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD) + (IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256) + (IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS + to PURE_ARGS category. + * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): + Handle PURE_ARGS category. + * config/i386/i386-expand.c (ix86_expand_builtin): Ditto. + +2021-04-29 Eric Botcazou + + * configure.ac: Check for the presence of sys/locking.h header and + for whether _LK_LOCK is supported by _locking. + * configure: Regenerate. + * config.in: Likewise. + * gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK. + * gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING. + * system.h: Include if HAVE_SYS_LOCKING_H. + +2021-04-29 Uroš Bizjak + + * config/i386/predicates.md (fcmov_comparison_operator): + Do not check for trivial FP comparison operator. + : Allow CCGZmode. + : Do not allow CCCmode. + (ix86_comparison_operator) : Allow only CCmode. + (ix86_carry_flag_operator): Match only LTU and UNLT code. + Do not check for trivial FP comparison operator. Allow CCGZmode. + +2021-04-29 Tom de Vries + + * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of + fd->loop.step by either step or orig_step. + +2021-04-29 Eric Botcazou + + * config/sparc/sparc.c (gen_load_pcrel_sym): Delete. + (load_got_register): Do the PIC dance here. + (sparc_legitimize_tls_address): Simplify. + (sparc_emit_probe_stack_range): Likewise. + (sparc32_initialize_trampoline): Likewise. + (sparc64_initialize_trampoline): Likewise. + * config/sparc/sparc.md (load_pcrel_sym): Add @ marker. + (probe_stack_range): Likewise. + (flush): Likewise. + (tgd_hi22): Likewise. + (tgd_lo10): Likewise. + (tgd_add): Likewise. + (tgd_call): Likewise. + (tldm_hi22): Likewise. + (tldm_lo10): Likewise. + (tldm_add): Likewise. + (tldm_call): Likewise. + (tldo_hix22): Likewise. + (tldo_lox10): Likewise. + (tldo_add): Likewise. + (tie_hi22): Likewise. + (tie_lo10): Likewise. + (tie_add): Likewise. + (tle_hix22): Likewise. + (tle_lox10): Likewise. + (stack_protect_setsi): Rename to... + (stack_protect_set32): ...this. + (stack_protect_setdi): Rename to... + (stack_protect_set64): ...this. + (stack_protect_set): Adjust calls to above. + (stack_protect_testsi): Rename to... + (stack_protect_test32): ...this. + (stack_protect_testdi): Rename to... + (stack_protect_test64): ...this. + (stack_protect_test): Adjust calls to above. + +2021-04-29 H.J. Lu + + PR middle-end/90773 + * builtins.c (builtin_memcpy_read_str): Add a dummy argument. + (builtin_strncpy_read_str): Likewise. + (builtin_memset_read_str): Add an argument for the previous RTL + information and generate the new RTL from the previous RTL info. + (builtin_memset_gen_str): Likewise. + * builtins.h (builtin_strncpy_read_str): Update the prototype. + (builtin_memset_read_str): Likewise. + * expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p() + returns true, round up size and alignment to the widest integer + mode for maximum size. + (pieces_addr::adjust): Add a pointer to by_pieces_prev argument + and pass it to m_constfn. + (op_by_pieces_d): Add m_push and m_overlap_op_by_pieces. + (op_by_pieces_d::op_by_pieces_d): Add a bool argument to + initialize m_push. Initialize m_overlap_op_by_pieces with + targetm.overlap_op_by_pieces_p (). + (op_by_pieces_d::run): Pass the previous RTL information to + pieces_addr::adjust and generate overlapping operations if + m_overlap_op_by_pieces is true. + (PUSHG_P): New. + (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d + change. + (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d + change. + (can_store_by_pieces): Use by_pieces_constfn on constfun. + (store_by_pieces): Use by_pieces_constfn on constfun. Updated + for op_by_pieces_d change. + (clear_by_pieces_1): Add a dummy argument. + (clear_by_pieces): Updated for op_by_pieces_d change. + (compare_by_pieces_d::compare_by_pieces_d): Likewise. + (string_cst_read_str): Add a dummy argument. + * expr.h (by_pieces_constfn): Add a dummy argument. + (by_pieces_prev): New. + * target.def (overlap_op_by_pieces_p): New target hook. + * config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New. + * doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P. + * doc/tm.texi: Regenerated. + +2021-04-29 Richard Biener + + PR tree-optimization/100253 + * tree-vect-stmts.c (vectorizable_load): Do not assume + element alignment when DR_MISALIGNMENT is -1. + (vectorizable_store): Likewise. + +2021-04-29 Jakub Jelinek + + PR target/100302 + * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use + absu_hwi instead of abs_hwi. + +2021-04-29 Richard Biener + + PR middle-end/38474 + * tree-ssa-structalias.c (add_graph_edge): Avoid direct + forwarding when indirect forwarding through ESCAPED + alread happens. + +2021-04-29 Tom de Vries + + PR target/100232 + * internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC) + (expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED) + (expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY) + (expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to. + +2021-04-29 Richard Biener + + PR tree-optimization/99912 + * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New. + (dse_dom_walker::todo): Likewise. + (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the + caller. + (dse_dom_walker::before_dom_children): Remove trivially + dead SSA defs and schedule CFG cleanup if we removed all + PHIs in a block. + (pass_dse::execute): Get TODO as computed by the DOM walker + and return it. Wipe dominator info earlier. + +2021-04-29 Richard Biener + + PR ipa/100308 + * ipa-prop.c (ipcp_modif_dom_walker::before_dom_children): + Track blocks to cleanup EH in new m_need_eh_cleanup. + (ipcp_modif_dom_walker::cleanup_eh): New. + (ipcp_transform_function): Release dominator info before + doing EH cleanup. + +2021-04-29 Martin Sebor + + PR middle-end/100250 + * attribs.c (attr_access::array_as_string): Avoid dereferencing + a pointer when it's null. + +2021-04-29 Martin Sebor + + * Makefile.in (OBJS): Add ipa-free-lang-data.o. + * ipa-free-lang-data.cc: New file. + * tree.c: Move pass free_lang_data to file above. + (build_array_type_1): Declare extern. + * tree.h (build_array_type_1): Declare. + +2021-04-28 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Modify comment to + make consistent with updated RTL pattern. + * config/aarch64/aarch64-simd.md (aarch64_qmovn): + Implement using ss_truncate and us_truncate rather than + unspecs. + * config/aarch64/iterators.md: Remove redundant unspecs and + iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively. + +2021-04-28 Jonathan Wright + + * config/aarch64/arm_acle.h (__attribute__): Make intrinsic + attributes consistent with those defined in arm_neon.h. + +2021-04-28 Jonathan Wright + + * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic + attributes consistent with those defined in arm_neon.h. + +2021-04-28 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add + float_trunc_rodd builtin generator macros. + * config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df): + Define. + (aarch64_float_trunc_rodd_lo_v2sf): Define. + (aarch64_float_trunc_rodd_hi_v4sf_le): Define. + (aarch64_float_trunc_rodd_hi_v4sf_be): Define. + (aarch64_float_trunc_rodd_hi_v4sf): Define. + * config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin + instead of inline asm. + (vcvtx_high_f32_f64): Likewise. + (vcvtxd_f32_f64): Likewise. + * config/aarch64/iterators.md: Add FCVTXN unspec. + +2021-04-28 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin + generator macros. + * config/aarch64/aarch64-simd.md (aarch64_tbx1): + Define. + * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin + instead of inline asm. + (vqtbx1_u8): Likewise. + (vqtbx1_p8): Likewise. + (vqtbx1q_s8): Likewise. + (vqtbx1q_u8): Likewise. + (vqtbx1q_p8): Likewise. + (vtbx2_s8): Likewise. + (vtbx2_u8): Likewise. + (vtbx2_p8): Likewise. + +2021-04-28 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin + generator macros. + * config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin + instead of inline asm. + (vqtbl1_s8): Likewise. + (vqtbl1_u8): Likewise. + (vqtbl1q_p8): Likewise. + (vqtbl1q_s8): Likewise. + (vqtbl1q_u8): Likewise. + (vtbl1_s8): Likewise. + (vtbl1_u8): Likewise. + (vtbl1_p8): Likewise. + (vtbl2_s8): Likewise. + (vtbl2_u8): Likewise. + (vtbl2_p8): Likewise. + +2021-04-28 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add polynomial + ssri_n buitin generator macro. + * config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin + instead of inline asm. + (vsri_n_p16): Likewise. + (vsri_n_p64): Likewise. + (vsriq_n_p8): Likewise. + (vsriq_n_p16): Likewise. + (vsriq_n_p64): Likewise. + +2021-04-28 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Use VALLP mode + iterator for polynomial ssli_n builtin generator macro. + * config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin + instead of inline asm. + (vsli_n_p16): Likewise. + (vsliq_n_p8): Likewise. + (vsliq_n_p16): Likewise. + * config/aarch64/iterators.md: Define VALLP mode iterator. + +2021-04-28 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Use VDQV_L + iterator to generate [su]adalp RTL builtins. + * config/aarch64/aarch64-simd.md: Use VDQV_L iterator in + [su]adalp RTL pattern. + * config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin + instead of inline asm. + (vpadal_u32): Likewise. + +2021-04-28 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp + builtin generator macros. + * config/aarch64/aarch64-simd.md (aarch64_addlp): + Define. + * config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin + instead of inline asm. + (vpaddl_s16): Likewise. + (vpaddl_s32): Likewise. + (vpaddl_u8): Likewise. + (vpaddl_u16): Likewise. + (vpaddl_u32): Likewise. + (vpaddlq_s8): Likewise. + (vpaddlq_s16): Likewise. + (vpaddlq_s32): Likewise. + (vpaddlq_u8): Likewise. + (vpaddlq_u16): Likewise. + (vpaddlq_u32): Liwewise. + * config/aarch64/iterators.md: Define [SU]ADDLP unspecs with + appropriate attributes. + +2021-04-28 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator + for aarch64_addp builtin macro generator. + * config/aarch64/aarch64-simd.md: Use VDQ_I iterator in + aarch64_addp RTL pattern. + * config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin + instead of inline asm. + (vpaddq_s16): Likewise. + (vpaddq_s32): Likewise. + (vpaddq_s64): Likewise. + (vpaddq_u8): Likewise. + (vpaddq_u16): Likewise. + (vpaddq_u32): Likewise. + (vpaddq_u64): Likewise. + +2021-04-28 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n + builtin generator macros. + * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_n): + Define. + * config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin + instead of inline asm. + (vqdmulh_n_s32): Likewise. + (vqdmulhq_n_s16): Likewise. + (vqdmulhq_n_s32): Likewise. + (vqrdmulh_n_s16): Likewise. + (vqrdmulh_n_s32): Likewise. + (vqrdmulhq_n_s16): Likewise. + (vqrdmulhq_n_s32): Likewise. + +2021-04-28 Tobias Burnus + + * doc/install.texi (--enable-offload-defaulted): Document. + +2021-04-28 Senthil Kumar Selvaraj + + * config/avr/avr-dimode.md: Turn existing patterns into + define_insn_and_split style patterns where the splitter + adds a clobber of the condition code register. Drop "cc" + attribute. Add new patterns to match output of + the splitters. + * config/avr/avr-fixed.md: Likewise. + * config/avr/avr.c (cc_reg_rtx): New. + (avr_parallel_insn_from_insns): Adjust insn count + for removal of set of cc0. + (avr_is_casesi_sequence): Likewise. + (avr_casei_sequence_check_operands): Likewise. + (avr_optimize_casesi): Likewise. Also insert + new insns after jump_insn. + (avr_pass_casesi::avr_rest_of_handle_casesi): Adjust + for removal of set of cc0. + (avr_init_expanders): Initialize cc_reg_rtx. + (avr_regno_reg_class): Handle REG_CC. + (cond_string): Remove usage of CC_OVERFLOW_UNUSABLE. + (avr_notice_update_cc): Remove function. + (ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE. + (compare_condition): Adjust for PARALLEL with + REG_CC clobber. + (out_shift_with_cnt): Likewise. + (ashlhi3_out): Likewise. + (ashrhi3_out): Likewise. + (lshrhi3_out): Likewise. + (avr_class_max_nregs): Return single reg for REG_CC. + (avr_compare_pattern): Check for REG_CC instead + of cc0_rtx. + (avr_reorg_remove_redundant_compare): Likewise. + (avr_reorg):Adjust for PARALLEL with REG_CC clobber. + (avr_hard_regno_nregs): Return single reg for REG_CC. + (avr_hard_regno_mode_ok): Allow only CCmode for REG_CC. + (avr_md_asm_adjust): Clobber REG_CC. + (TARGET_HARD_REGNO_NREGS): Define. + (TARGET_CLASS_MAX_NREGS): Define. + (TARGET_MD_ASM_ADJUST): Define. + * config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust + for REG_CC. + (enum reg_class): Add CC_REG class. + (NOTICE_UPDATE_CC): Remove. + (CC_OVERFLOW_UNUSABLE): Remove. + (CC_NO_CARRY): Remove. + * config/avr/avr.md: Turn existing patterns into + define_insn_and_split style patterns where the splitter + adds a clobber of the condition code register. Drop "cc" + attribute. Add new patterns to match output of + the splitters. + (sez): Remove unused pattern. + +2021-04-28 Richard Earnshaw + + PR target/100311 + * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be + used in HImode. + +2021-04-28 Richard Sandiford + + PR target/100305 + * config/aarch64/constraints.md (Utq): Require the address to + be valid for both the element mode and for V2DImode. + +2021-04-28 Jakub Jelinek + Tobias Burnus + + * configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted. + * gcc.c (process_command): New variable. + (driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED, + set it if -foffload is defaulted. + * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define. + (compile_offload_image): If OFFLOAD_DEFAULTED and + OFFLOAD_TARGET_DEFAULT is in the environment, don't fail + if corresponding mkoffload can't be found. + (compile_images_for_offload_targets): Likewise. Free and clear + offload_names if no valid offload is found. + * config.in: Regenerate. + * configure: Regenerate. + +2021-04-28 Richard Biener + + PR tree-optimization/100292 + * tree-vect-generic.c (expand_vector_condition): Do not fold + the comparisons. + +2021-04-27 David Edelsohn + + * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New. + * config/rs6000/aix64.opt (m64): New. + (m32): New. + +2021-04-27 Maciej W. Rozycki + + * config/vax/vax.c (print_operand_address, vax_address_cost_1) + (index_term_p): Handle ASHIFT too. + +2021-04-27 Maciej W. Rozycki + + * config/vax/builtins.md (jbbi): Remove operand #3. + (sync_lock_test_and_set): Adjust accordingly. + (sync_lock_release): Likewise. + +2021-04-27 Maciej W. Rozycki + + * config/vax/vax-protos.h (adjacent_operands_p): Remove + prototype. + * config/vax/vax.c (adjacent_operands_p): Remove. + +2021-04-27 Maciej W. Rozycki + + * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall + through to the non-conditional execution case if getting the + condition for conditional execution has failed. + +2021-04-27 Richard Sandiford + + PR middle-end/100284 + * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test. + * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather + than asserting on it. + +2021-04-27 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect + with TARGET_AIX_OS. + +2021-04-27 David Edelsohn + + PR target/94177 + * calls.c (precompute_register_parameters): Additionally test + targetm.precompute_tls_p to pre-compute argument. + * config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define. + * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New. + * target.def (precompute_tls_p): New. + * doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation. + * doc/tm.texi: Regenerated. + +2021-04-27 Jakub Jelinek + + PR target/100200 + * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL + back to HOST_WIDE_INT. + +2021-04-27 Bernd Edlinger + + PR target/100106 + * simplify-rtx.c (simplify_context::simplify_subreg): Check the + memory alignment for the outer mode. + +2021-04-27 H.J. Lu + + PR middle-end/90773 + * expr.c (op_by_pieces_d::get_usable_mode): New member function. + (op_by_pieces_d::run): Cange a while loop to a do-while loop. + +2021-04-27 Alex Coplan + + PR target/99977 + * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen + with negative immediates: ensure we expand cbranchsi4_scratch + correctly and ensure we satisfy its constraints. + * config/arm/sync.md + (@atomic_compare_and_swap_1): Don't + attempt to tie two output operands together with constraints; + collapse two alternatives. + (@atomic_compare_and_swap_1): Likewise. + * config/arm/thumb1.md (cbranchsi4_neg_late): New. + +2021-04-27 Jakub Jelinek + + PR target/100200 + * config/aarch64/predicates.md (aarch64_sub_immediate, + aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL. + * config/aarch64/aarch64.md (casesi, rotl3): Likewise. + * config/aarch64/aarch64.c (aarch64_print_operand, + aarch64_split_atomic_op, aarch64_expand_subvti): Likewise. + +2021-04-27 Jakub Jelinek + + PR tree-optimization/100239 + * tree-vect-generic.c (lower_vec_perm): Don't accept constant + permutations with all indices from the first zero element as vec_shl. + +2021-04-27 Jakub Jelinek + + PR rtl-optimization/100254 + * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on + last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns. + +2021-04-27 Richard Biener + + PR tree-optimization/99912 + * passes.def: Add comment about new TODO_remove_unused_locals. + * tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals + at start. + +2021-04-27 Richard Biener + + PR tree-optimization/99912 + * passes.def (pass_all_optimizations): Add pass_dse before + the first pass_dce, move the first pass_dse before the + pass_dce following pass_pre. + +2021-04-27 Jakub Jelinek + + PR tree-optimization/95527 + * generic-match-head.c: Include tm.h. + * gimple-match-head.c: Include tm.h. + * match.pd (CLZ == INTEGER_CST): Don't use + #ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO + if clz == CFN_CLZ. Add missing val declaration. + (CTZ cmp CST): New simplifications. + +2021-04-27 Jakub Jelinek + + PR tree-optimization/96696 + * expr.c (expand_expr_divmod): New function. + (expand_expr_real_2) : Use it for truncations and + divisions. Formatting fixes. + : Optimize x / y * y as x - x % y if the latter is + cheaper. + +2021-04-27 Martin Jambor + + PR ipa/99951 + * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): + If removing a call statement LHS SSA name, release it. + +2021-04-27 Richard Earnshaw + + PR target/100236 + * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM + is valid before including it in the mask. + +2021-04-27 Richard Sandiford + + PR target/100270 + * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle + SVE attributes. + +2021-04-27 Richard Biener + + PR tree-optimization/100051 + * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add + disambiguator based on access size vs. decl size. + +2021-04-27 Richard Biener + + PR tree-optimization/100278 + * tree-ssa-pre.c (compute_avail): Give up when we cannot + adjust TBAA beacuse of mismatching bases. + +2021-04-27 Jakub Jelinek + + PR target/99405 + * config/i386/i386.md (*3_mask, *3_mask_1): + For any_rotate define_insn_split and following splitters, use + SWI iterator instead of SWI48. + +2021-04-27 Richard Biener + + PR tree-optimization/99776 + * match.pd (bit_field_ref (ctor)): Relax element extract + type compatibility checks. + +2021-04-27 Cui,Lili + + * common/config/i386/i386-common.c (processor_names): + Sync processor_names with processor_type. + * config/i386/i386-options.c (processor_cost_table): + Sync processor_cost_table with processor_type. + +2021-04-26 Aldy Hernandez + + * value-range.cc (irange::irange_set_1bit_anti_range): Add assert. + (irange::set): Call irange_set_1bit_anti_range for handling all + 1-bit ranges. Fall through on ~[MIN,MAX]. + +2021-04-26 Aldy Hernandez + + * value-range.cc (irange::legacy_num_pairs): Remove. + (irange::invert): Change gcc_assert to gcc_checking_assert. + * value-range.h (irange::num_pairs): Adjust for a cached + num_pairs(). Also, rename all gcc_assert's to + gcc_checking_assert's. + +2021-04-26 Aldy Hernandez + + * value-range.cc (irange::operator=): Set m_kind. + (irange::copy_to_legacy): Handle varying and undefined sources + as a legacy copy since they can be easily copied. + (irange::irange_set): Set m_kind. + (irange::irange_set_anti_range): Same. + (irange::set): Rename normalize_min_max to normalize_kind. + (irange::verify_range): Adjust for multi-ranges having the + m_kind field set. + (irange::irange_union): Set m_kind. + (irange::irange_intersect): Same. + (irange::invert): Same. + * value-range.h (irange::kind): Always return m_kind. + (irange::varying_p): Rename to... + (irange::varying_comptaible_p): ...this. + (irange::undefined_p): Only look at m_kind. + (irange::irange): Always set VR_UNDEFINED if applicable. + (irange::set_undefined): Always set VR_UNDEFINED. + (irange::set_varying): Always set m_kind to VR_VARYING. + (irange::normalize_min_max): Rename to... + (irange::normalize_kind): ...this. + +2021-04-26 Aldy Hernandez + + * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info): + Adjust for constant_p including varying_p. + * tree-vrp.c (vrp_prop::finalize): Same. + (determine_value_range): Same. + * vr-values.c (vr_values::range_of_expr): Same. + * value-range.cc (irange::symbolic_p): Do not check varying_p. + (irange::constant_p): Same. + +2021-04-26 Aldy Hernandez + + * value-range.cc (irange::legacy_lower_bound): Replace + !undefined_p check with num_ranges > 0. + (irange::legacy_upper_bound): Same. + * value-range.h (irange::type): Same. + (irange::lower_bound): Same. + (irange::upper_bound): Same. + +2021-04-26 Richard Biener + + PR tree-optimization/99956 + * gimple-loop-interchange.cc (compute_access_stride): + Try instantiating the access in a shallower loop nest + if instantiating failed. + (compute_access_strides): Pass adjustable loop_nest + to compute_access_stride. + +2021-04-26 Christophe Lyon + + * doc/sourcebuild.texi (arm_cmse_hw): Document. + +2021-04-26 Kyrylo Tkachov + + * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF. + +2021-04-26 Thomas Schwinge + Nathan Sidwell + Tom de Vries + Julian Brown + Kwok Cheung Yeung + + * omp-offload.c (oacc_validate_dims): Implement + '-Wopenacc-parallelism'. + * doc/invoke.texi (-Wopenacc-parallelism): Document. + +2021-04-26 Richard Biener + + * tree-cfg.h (gimplify_build1): Remove. + (gimplify_build2): Likewise. + (gimplify_build3): Likewise. + * tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c. + (gimplify_build2): Likewise. + (gimplify_build3): Likewise. + * tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c. + Modernize. + (gimplify_build2): Likewise. + (gimplify_build3): Likewise. + (tree_vec_extract): Use resimplify with following SSA edges. + (expand_vector_parallel): Avoid passing NULL size/bitpos + to tree_vec_extract. + * expr.c (store_constructor): Deal with zero-element CTORs. + * match.pd (bit_field_ref ): Make sure to + produce vector constants when possible. + +2021-04-26 Richard Biener + + * tree-complex.c: Include gimple-fold.h. + (expand_complex_addition): Use gimple_build. + (expand_complex_multiplication_components): Likewise. + (expand_complex_multiplication): Likewise. + (expand_complex_div_straight): Likewise. + (expand_complex_div_wide): Likewise. + (expand_complex_division): Likewise. + (expand_complex_conjugate): Likewise. + (expand_complex_comparison): Likewise. + +2021-04-26 Richard Biener + + * tree-ssa-phiopt.c (two_value_replacement): Remove use + of legacy gimplify_buildN API. + +2021-04-26 Richard Biener + + PR tree-optimization/99473 + * tree-ssa-phiopt.c (cond_store_replacement): Handle all + stores. + +2021-04-26 Richard Biener + + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): + Use replace_call_with_value. + +2021-04-26 Richard Biener + + * tree-ssa-propagate.h (valid_gimple_rhs_p): Remove. + (update_gimple_call): Likewise. + (update_call_from_tree): Likewise. + * tree-ssa-propagate.c (valid_gimple_rhs_p): Remove. + (valid_gimple_call_p): Likewise. + (move_ssa_defining_stmt_for_defs): Likewise. + (finish_update_gimple_call): Likewise. + (update_gimple_call): Likewise. + (update_call_from_tree): Likewise. + (propagate_tree_value_into_stmt): Use replace_call_with_value. + * gimple-fold.h (update_gimple_call): Declare. + * gimple-fold.c (valid_gimple_rhs_p): Move here from + tree-ssa-propagate.c. + (update_gimple_call): Likewise. + (valid_gimple_call_p): Likewise. + (finish_update_gimple_call): Likewise, and simplify. + (gimplify_and_update_call_from_tree): Implement + update_call_from_tree functionality, avoid excessive + push/pop_gimplify_context. + (gimple_fold_builtin): Use only gimplify_and_update_call_from_tree. + (gimple_fold_call): Likewise. + * gimple-ssa-sprintf.c (try_substitute_return_value): Likewise. + * tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise. + (pass_fold_builtins::execute): Likewise. + (optimize_stack_restore): Use replace_call_with_value. + * tree-cfg.c (fold_loop_internal_call): Likewise. + * tree-ssa-dce.c (maybe_optimize_arith_overflow): Use + only gimplify_and_update_call_from_tree. + * tree-ssa-strlen.c (handle_builtin_strlen): Likewise. + (handle_builtin_strchr): Likewise. + * tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h. + +2021-04-26 Jakub Jelinek + + PR debug/100255 + * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block, + vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove + register keywords. + +2021-04-25 liuhongt + + PR target/98911 + * config/i386/i386-builtin.def (BDESC): Change the icode of + the following builtins to CODE_FOR_nothing. + * config/i386/i386.c (ix86_gimple_fold_builtin): Fold + IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128, + IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ, + IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256, + IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256, + IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128, + IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ, + IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256, + IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256. + * config/i386/sse.md (avx2_eq3): Deleted. + (sse2_eq3): Ditto. + (sse4_1_eqv2di3): Ditto. + (sse2_gt3): Rename to .. + (*sse2_gt3): .. this. + +2021-04-24 Iain Sandoe + + Revert: + 2021-04-24 Iain Sandoe + + PR target/100152 + * config/darwin.c (darwin_binds_local_p): Assume that any + public symbol might be interposed for PIC code. Update function + header comment to reflect current Darwin capability. + +2021-04-24 Iain Sandoe + + PR target/100152 + * config/darwin.c (darwin_binds_local_p): Assume that any + public symbol might be interposed for PIC code. Update function + header comment to reflect current Darwin capability. + +2021-04-24 Richard Sandiford + + * doc/sourcebuild.texi: Document no-opts and any-opts target + selectors. + +2021-04-23 YiFei Zhu + + * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm. + +2021-04-23 YiFei Zhu + + * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64. + +2021-04-23 Uroš Bizjak + + PR target/100041 + * config/i386/i386-options.c (ix86_option_override_internal): + Error out when -m96bit-long-double is used with 64bit targets. + * config/i386/i386.md (*pushxf_rounded): Remove pattern. + +2021-04-23 Martin Liska + + * lto-wrapper.c: Remove FIXME about usage of + hardware_concurrency. The function is not on par with + what we have now. + +2021-04-23 Uroš Bizjak + + PR target/100182 + * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): + Copy operand 3 to operand 4. Use sse_reg_operand + as operand 3 predicate. + (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto. + (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto. + (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto. + (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): + Copy operand 1 to operand 0. + (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto. + (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto. + (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto. + +2021-04-23 Alex Coplan + + PR rtl-optimization/100230 + * early-remat.c (early_remat::sort_candidates): Use delete[] + instead of delete for array allocated with new[]. + +2021-04-23 Richard Biener + + * genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing. + (capture_info::capture_info): Likewise. + (capture_info::walk_match): Likewise. + (expr::gen_transform): Likewise. + (dt_simplify::gen_1): Likewise. + * gimple-match-head.c (maybe_resimplify_conditional_op): + Remove VEC_COND_EXPR special-casing. + (gimple_simplify): Likewise. + * gimple.c (gimple_could_trap_p_1): Adjust. + * tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR + to participate in PRE. + +2021-04-23 Richard Biener + + * cfganal.c (connect_infinite_loops_to_exit): First call + add_noreturn_fake_exit_edges. + * ipa-sra.c (process_scan_results): Do not call the now redundant + add_noreturn_fake_exit_edges. + * predict.c (tree_estimate_probability): Likewise. + (rebuild_frequencies): Likewise. + * store-motion.c (one_store_motion_pass): Likewise. + +2021-04-23 Richard Biener + + PR tree-optimization/100222 + * predict.c (pass_profile::execute): Remove redundant call to + mark_irreducible_loops. + (report_predictor_hitrates): Likewise. + +2021-04-23 Richard Biener + + * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid + valid_gimple_rhs_p by instead gimplifying to one. + +2021-04-23 Richard Biener + + PR tree-optimization/99971 + * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): + Always use TBAA for loads. + +2021-04-23 liuhongt + + PR target/100093 + * config/i386/i386-options.c (ix86_option_override_internal): + Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags + when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled + by target attribute. + +2021-04-23 David Edelsohn + + * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to + DWARF2_DEBUG. + * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same. + +2021-04-22 David Edelsohn + + * config.gcc (powerpc-ibm-aix6.*): Remove. + * config/rs6000/aix61.h: Delete. + +2021-04-22 Martin Liska + + PR testsuite/100159 + PR testsuite/100192 + * builtins.c (expand_builtin): Fix typos and missing comments. + * dwarf2out.c (gen_subprogram_die): Likewise. + (gen_struct_or_union_type_die): Likewise. + +2021-04-22 Uroš Bizjak + + PR target/100119 + * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse): + Remove the sign with FE_DOWNWARD, where x - x = -0.0. + +2021-04-21 Iain Sandoe + + * config/i386/darwin.h (TARGET_64BIT): Remove definition + based on TARGET_ISA_64BIT. + (TARGET_64BIT_P): Remove definition based on + TARGET_ISA_64BIT_P(). + +2021-04-21 Martin Liska + + Revert: + 2021-04-21 Martin Liska + + * lto-wrapper.c (cpuset_popcount): Remove. + (init_num_threads): Remove and use hardware_concurrency. + +2021-04-21 Martin Liska + + PR jit/98615 + * main.c (main): Call toplev::finalize in CHECKING_P mode. + * ipa-modref.c (ipa_modref_c_finalize): summaries are NULL + when incremental LTO linking happens. + +2021-04-21 Martin Liska + + * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the + makeserver cannot be detected, then use -flto=N fallback. + +2021-04-21 Richard Sandiford + + * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling, + default to yes for aarch64-linux-gnu. + * configure: Regenerate. + +2021-04-21 Martin Liska + + * lto-wrapper.c (cpuset_popcount): Remove. + (init_num_threads): Remove and use hardware_concurrency. + +2021-04-21 Martin Liska + + * config/i386/i386.c: Remove superfluous || TARGET_MACHO + which remains to be '(... || 0)' and clang complains about it. + * dwarf2out.c (AT_vms_delta): Declare conditionally. + (add_AT_vms_delta): Likewise. + * tree.c (fld_simplified_type): Use rather more common pattern + for disabling of something (#if 0). + (get_tree_code_name): Likewise. + (verify_type_variant): Likewise. + +2021-04-21 Martin Liska + + * config/i386/i386-expand.c (decide_alignment): Use newly named + macro TARGET_CPU_P. + * config/i386/i386.c (ix86_decompose_address): Likewise. + (ix86_address_cost): Likewise. + (ix86_lea_outperforms): Likewise. + (ix86_avoid_lea_for_addr): Likewise. + (ix86_add_stmt_cost): Likewise. + * config/i386/i386.h (TARGET_*): Remove. + (TARGET_CPU_P): New macro. + * config/i386/i386.md: Use newly named macro TARGET_CPU_P. + * config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise. + (swap_top_of_ready_list): Likewise. + (ix86_atom_sched_reorder): Likewise. + * config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise. + * config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise. + +2021-04-21 Martin Liska + + * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P): + Define. + (SET_TARGET_NO_SAHF): Likewise. + (TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise. + (SET_TARGET_PREFETCH_SSE): Likewise. + (TARGET_EXPLICIT_NO_TUNE_P): Likewise. + (SET_TARGET_NO_TUNE): Likewise. + (TARGET_EXPLICIT_NO_80387_P): Likewise. + (SET_TARGET_NO_80387): Likewise. + (DEF_PTA): New. + * config/i386/i386.h (TARGET_*): Remove. + * opth-gen.awk: Generate new used macros. + +2021-04-21 Martin Liska + + * config/i386/i386.h (PTA_*): Remove. + (enum pta_flag): New. + (DEF_PTA): Generate PTA_* values from i386-isa.def. + * config/i386/i386-isa.def: New file. + +2021-04-21 Alex Coplan + + PR target/99988 + * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New. + (rest_of_insert_bti): Avoid inserting duplicate bti j insns for + jump table targets. + +2021-04-21 H.J. Lu + + * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and + x86_64-*-* targets. + * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET): + New. + (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise. + (ix86_handle_option): Handle -mmwait. + * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): + Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on + __builtin_ia32_monitor and __builtin_ia32_mwait. + * config/i386/i386-options.c (isa2_opts): Add -mmwait. + (ix86_valid_target_attribute_inner_p): Likewise. + (ix86_option_override_internal): Enable mwait/monitor + instructions for -msse3. + * config/i386/i386.h (TARGET_MWAIT): New. + (TARGET_MWAIT_P): Likewise. + * config/i386/i386.opt: Add -mmwait. + * config/i386/mwaitintrin.h: New file. + * config/i386/pmmintrin.h: Include . + * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with + TARGET_MWAIT. + (@sse3_monitor_): Likewise. + * config/i386/x86gprintrin.h: Include . + * doc/extend.texi: Document mwait target attribute. + * doc/invoke.texi: Document -mmwait. + +2021-04-21 Martin Liska + + * config/i386/i386-options.c (DEF_ENUM): Remove it. + * config/i386/i386-opts.h (DEF_ENUM): Likewise. + * config/i386/stringop.def (DEF_ENUM): Likewise. + +2021-04-21 Martin Liska + + * tree-cfg.c (gimple_verify_flow_info): Use qD instead + of print_generic_expr. + +2021-04-21 Jakub Jelinek + + PR rtl-optimization/100148 + * cprop.c (constprop_register): Use next_nondebug_insn instead of + NEXT_INSN. + +2021-04-21 Martin Liska + + PR ipa/98815 + * cgraphunit.c (cgraph_node::analyze): Remove duplicate + free_dominance_info calls. + +2021-04-21 Richard Biener + + * gimple-fold.c (maybe_fold_reference): Remove is_lhs + parameter (and assume it to be false). + (fold_gimple_assign): Adjust, remove all callers of + maybe_fold_reference calling it with is_lhs true. + (gimple_fold_call): Likewise. + (fold_stmt_1): Likewise. + +2021-04-21 Richard Biener + + * fold-const.c (pedantic_non_lvalue_loc): Remove. + (fold_binary_loc): Adjust. + (fold_ternary_loc): Likewise. + +2021-04-21 Richard Sandiford + + PR middle-end/100130 + * varasm.c (get_block_for_decl): Make sure that any use of the + retain attribute matches the section's retain flag. + (switch_to_section): Check for retain mismatches even when + changing sections, but do not warn if the given decl is the + section's named.decl. + (output_object_block): Pass the first decl in the block (if any) + to switch_to_section. + +2021-04-20 H.J. Lu + + * config/i386/i386-c.c (ix86_target_macros_internal): Define + __CRC32__ for -mcrc32. + * config/i386/i386-options.c (ix86_option_override_internal): + Enable crc32 instruction for -msse4.2. + * config/i386/i386.md (sse4_2_crc32): Remove TARGET_SSE4_2 + check. + (sse4_2_crc32di): Likewise. + * config/i386/ia32intrin.h: Use crc32 target option for CRC32 + intrinsics. + +2021-04-20 Segher Boessenkool + + PR target/100108 + * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider + OPTION_MASK_ISEL. + +2021-04-20 Martin Liska + + * doc/invoke.texi: Fix typo. + * params.opt: Likewise. + +2021-04-20 Martin Liska + + * doc/invoke.texi: Document new param. + +2021-04-19 Andrew MacLeod + + PR tree-optimization/100081 + * gimple-range-cache.h (ranger_cache): Inherit from gori_compute + rather than gori_compute_cache. + * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file. + (range_def_chain::m_logical_depth): New member. + (range_def_chain::range_def_chain): Initialize m_logical_depth. + (range_def_chain::get_def_chain): Don't build defchains through more + than LOGICAL_LIMIT logical expressions. + * params.opt (param_ranger_logical_depth): New. + +2021-04-19 Richard Earnshaw + + PR target/100067 + * config/arm/arm.c (arm_configure_build_target): Do not strip + extended FPU/SIMD feature bits from the target ISA when -mfpu + is specified (partial revert of r11-8168). + +2021-04-19 Thomas Schwinge + + * params.opt (-param=openacc-kernels=): Add. + * omp-oacc-kernels-decompose.cc + (pass_omp_oacc_kernels_decompose::gate): Use it. + * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move... + (--param): ... here, 'openacc-kernels'. + +2021-04-19 Martin Liska + + PR c/100143 + * gengtype.c (finish_root_table): Align function arguments + in between declaration and definition. + +2021-04-19 Eric Botcazou + + * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with + frames larger than the SEH maximum frame size. + +2021-04-18 Segher Boessenkool + + PR rtl-optimization/99927 + * combine.c (distribute_notes) [REG_UNUSED]: If the register already + is dead, just drop it. + +2021-04-17 Iain Buclaw + + PR d/99914 + * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define. + * doc/tm.texi: Regenerate. + * doc/tm.texi.in (D language and ABI): Add @hook for + TARGET_D_TEMPLATES_ALWAYS_COMDAT. + +2021-04-17 Iain Buclaw + + * config/darwin-d.c (darwin_d_handle_target_object_format): New + function. + (darwin_d_register_target_info): New function. + (TARGET_D_REGISTER_OS_TARGET_INFO): Define. + * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New + function. + (dragonfly_d_register_target_info): New function. + (TARGET_D_REGISTER_OS_TARGET_INFO): Define. + * config/freebsd-d.c (freebsd_d_handle_target_object_format): New + function. + (freebsd_d_register_target_info): New function. + (TARGET_D_REGISTER_OS_TARGET_INFO): Define. + * config/glibc-d.c (glibc_d_handle_target_object_format): New + function. + (glibc_d_register_target_info): New function. + (TARGET_D_REGISTER_OS_TARGET_INFO): Define. + * config/i386/i386-d.c (ix86_d_handle_target_object_format): New + function. + (ix86_d_register_target_info): Add ix86_d_handle_target_object_format + as handler for objectFormat key. + * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New + function. + (winnt_d_register_target_info): New function. + (TARGET_D_REGISTER_OS_TARGET_INFO): Define. + * config/netbsd-d.c (netbsd_d_handle_target_object_format): New + function. + (netbsd_d_register_target_info): New function. + (TARGET_D_REGISTER_OS_TARGET_INFO): Define. + * config/openbsd-d.c (openbsd_d_handle_target_object_format): New + function. + (openbsd_d_register_target_info): New function. + (TARGET_D_REGISTER_OS_TARGET_INFO): Define. + * config/pa/pa-d.c (pa_d_handle_target_object_format): New function. + (pa_d_register_target_info): Add pa_d_handle_target_object_format as + handler for objectFormat key. + * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New + function. + (rs6000_d_register_target_info): Add + rs6000_d_handle_target_object_format as handler for objectFormat key. + * config/sol2-d.c (solaris_d_handle_target_object_format): New + function. + (solaris_d_register_target_info): New function. + (TARGET_D_REGISTER_OS_TARGET_INFO): Define. + +2021-04-16 Jakub Jelinek + + PR target/91710 + * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change + abi_break argument from bool * to unsigned *, store there the pre-GCC 9 + alignment. + (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers. + (aarch64_function_arg_regno_p): Likewise. Only emit -Wpsabi note if + the old and new alignment after applying MIN/MAX to it is different. + +2021-04-16 Tamar Christina + + PR target/100048 + * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv): New. + * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new + TRN optab. + * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New. + +2021-04-16 Bill Schmidt + + * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise + this section and its subsections. + +2021-04-16 Jakub Jelinek + + PR target/100075 + * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New + define_insn patterns. + +2021-04-16 Richard Sandiford + + PR rtl-optimization/98689 + * reg-notes.def (UNTYPED_CALL): New note. + * combine.c (distribute_notes): Handle it. + * emit-rtl.c (try_split): Likewise. + * rtlanal.c (rtx_properties::try_to_add_insn): Likewise. Assume + that calls with the note implicitly set all return value registers. + * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL + to untyped_calls. + +2021-04-16 Richard Sandiford + + PR rtl-optimization/99596 + * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global + register accesses for const calls. Assume that pure functions + can only read from global registers. Ignore cases in which + the stack pointer has been marked global. + +2021-04-16 Jakub Jelinek + + PR target/99767 + * tree-vect-loop.c (vect_transform_loop): Don't remove just + dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace + them by their last argument. + +2021-04-15 Martin Liska + + * doc/invoke.texi: Other params don't use it, remove it. + +2021-04-15 Richard Biener + + * gimple-builder.h: Add deprecation note. + +2021-04-15 Richard Sandiford + + PR c++/98852 + * attribs.h (restrict_type_identity_attributes_to): Declare. + * attribs.c (restrict_type_identity_attributes_to): New function. + +2021-04-15 Richard Sandiford + + PR c/98852 + * attribs.h (affects_type_identity_attributes): Declare. + * attribs.c (remove_attributes_matching): New function. + (affects_type_identity_attributes): Likewise. + +2021-04-15 Jakub Jelinek + + PR target/100056 + * config/aarch64/aarch64.md (*_3): + Add combine splitters for *_ashl3 with + ZERO_EXTEND, SIGN_EXTEND or AND. + +2021-04-14 Richard Sandiford + + PR rtl-optimization/99929 + * rtl.h (same_vector_encodings_p): New function. + * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding. + * cselib.c (rtx_equal_for_cselib_1): Likewise. + * jump.c (rtx_renumbered_equal_p): Likewise. + * lra-constraints.c (operands_match_p): Likewise. + * reload.c (operands_match_p): Likewise. + * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise. + +2021-04-14 Richard Sandiford + + * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print + more information about variable-length CONST_VECTORs. + +2021-04-14 Vladimir N. Makarov + + PR rtl-optimization/100066 + * lra-constraints.c (split_reg): Check paradoxical_subreg_p for + ordered modes when choosing splitting mode for hard reg. + +2021-04-14 Richard Sandiford + + PR target/99246 + * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel): + New function. + (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2. + +2021-04-14 Andreas Krebbel + + * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros + for mask operand types. + (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64) + (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate + operand. + (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the + immediate operand. + * config/s390/s390.c (s390_const_operand_ok): Check the new + operand types and generate a list of valid values. + +2021-04-14 Iain Buclaw + + * doc/tm.texi: Regenerate. + * doc/tm.texi.in (D language and ABI): Add @hook for + TARGET_D_REGISTER_OS_TARGET_INFO. + +2021-04-14 Iain Buclaw + + * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New + function. + (aarch64_d_register_target_info): New function. + * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info): + Declare. + * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO): + Define. + * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function. + (arm_d_register_target_info): New function. + * config/arm/arm-protos.h (arm_d_register_target_info): Declare. + * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. + * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function. + (ix86_d_register_target_info): New function. + * config/i386/i386-protos.h (ix86_d_register_target_info): Declare. + * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. + * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function. + (mips_d_register_target_info): New function. + * config/mips/mips-protos.h (mips_d_register_target_info): Declare. + * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. + * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function. + (pa_d_register_target_info): New function. + * config/pa/pa-protos.h (pa_d_register_target_info): Declare. + * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. + * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New + function. + (riscv_d_register_target_info): New function. + * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare. + * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. + * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New + function. + (rs6000_d_register_target_info): New function. + * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info): + Declare. + * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. + * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function. + (s390_d_register_target_info): New function. + * config/s390/s390-protos.h (s390_d_register_target_info): Declare. + * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. + * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New + function. + (sparc_d_register_target_info): New function. + * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare. + * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. + * doc/tm.texi: Regenerate. + * doc/tm.texi.in (D language and ABI): Add @hook for + TARGET_D_REGISTER_CPU_TARGET_INFO. + +2021-04-14 Iain Buclaw + + * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function. + * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare. + * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define. + * doc/tm.texi: Regenerate. + * doc/tm.texi.in (D language and ABI): Add @hook for + TARGET_D_HAS_STDCALL_CONVENTION. + +2021-04-14 Richard Biener + + * tree-cfg.c (verify_gimple_assign_ternary): Verify that + VEC_COND_EXPRs have a gimple_val condition. + * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR + can no longer have a GENERIC condition. + +2021-04-14 Richard Earnshaw + + PR target/100067 + * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits + from the isa_delta when -mfpu has been used. + (arm_options_perform_arch_sanity_checks): It's the architecture that + lacks an FPU not the processor. + +2021-04-13 Richard Biener + + PR tree-optimization/100053 + * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do + not use optimistic dominance queries for backedges to validate + predicated values. + (dominated_by_p_w_unex): Add parameter to ignore executable + state on backedges. + (rpo_elim::eliminate_avail): Adjust. + +2021-04-13 Jakub Jelinek + + PR target/100028 + * config/aarch64/aarch64.md (*aarch64_bfxil_extr, + *aarch64_bfxilsi_extrdi): New define_insn patterns. + +2021-04-13 Jakub Jelinek + + PR target/99648 + * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P + outermode, return NULL if the result doesn't encode back to the + original byte sequence. + (simplify_gen_subreg): Don't create SUBREGs from constants to + MODE_COMPOSITE_P outermode. + +2021-04-12 Jakub Jelinek + + PR rtl-optimization/99905 + * combine.c (expand_compound_operation): If pos + len > modewidth, + perform the right shift by pos in inner_mode and then convert to mode, + instead of trying to simplify a shift of rtx with inner_mode by pos + as if it was a shift in mode. + +2021-04-12 Jakub Jelinek + + PR debug/99830 + * combine.c (simplify_and_const_int_1): Don't optimize varop + away if it has side-effects. + +2021-04-12 Martin Liska + + * doc/extend.texi: Escape @smallexample content. + +2021-04-12 Stefan Schulze Frielinghaus + + * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add + alternative in order to load a DFP zero. + +2021-04-12 Martin Liska + + * doc/extend.texi: Be more precise in documentation + of symver attribute. + +2021-04-12 Martin Liska + + PR sanitizer/99877 + * gimplify.c (gimplify_expr): Right now, we unpoison all + variables before a goto . We should not do it if we are + in a omp context. + +2021-04-12 Cui,Lili + + * common/config/i386/cpuinfo.h (get_intel_cpu): Handle + rocketlake. + * common/config/i386/i386-common.c (processor_names): Add + rocketlake. + (processor_alias_table): Add rocketlake. + * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add + INTEL_COREI7_ROCKETLAKE. + * config.gcc: Add -march=rocketlake. + * config/i386/i386-c.c (ix86_target_macros_internal): Handle + rocketlake. + * config/i386/i386-options.c (m_ROCKETLAKE) : Define. + (processor_cost_table): Add rocketlake cost. + * config/i386/i386.h (ix86_size_cost) : Define + TARGET_ROCKETLAKE. + (processor_type) : Add PROCESSOR_ROCKETLAKE. + (PTA_ROCKETLAKE): Ditto. + * doc/extend.texi: Add rocketlake. + * doc/invoke.texi: Add rocketlake. + +2021-04-12 Cui,Lili + + * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list. + * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE. + * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model. + * doc/invoke.texi: Change alderlake ISA list. + +2021-04-11 Hafiz Abid Qadeer + + PR middle-end/98088 + * omp-expand.c (expand_oacc_collapse_init): Update condition in + a gcc_assert. + +2021-04-10 H.J. Lu + + PR target/99744 + * config/i386/serializeintrin.h (_serialize): Defined as macro. + +2021-04-10 Jakub Jelinek + + PR lto/99849 + * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than + just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs. + +2021-04-10 Jakub Jelinek + + PR middle-end/99989 + * gimple-ssa-warn-alloca.c + (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to + 0 with integer precision unconditionally. + +2021-04-10 Jakub Jelinek + + PR rtl-optimization/98601 + * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size + not just for BLKmode, but also for VOIDmode. For STRICT_ALIGNMENT + unaligned_mems handle VOIDmode like BLKmode. + +2021-04-10 Jan Hubicka + + PR lto/99857 + * tree.c (free_lang_data_in_decl): Do not release body of + declare_variant_alt. + +2021-04-09 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_option_restore): If the + architecture was specified explicitly and the tuning wasn't, + tune for the architecture rather than the configured default CPU. + +2021-04-09 Richard Sandiford + + * config/aarch64/aarch64.md (tlsdesc_small_sve_): Use X30 + as the temporary register. + +2021-04-09 Martin Liska + + * doc/extend.texi: Move non-target attributes on the top level. + +2021-04-09 Martin Liska + + * doc/invoke.texi: Document minimum and maximum value of the + argument for both supported compression algorithms. + +2021-04-08 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select + TLS BSS before TLS data. + * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm. + +2021-04-08 Richard Sandiford + + * doc/sourcebuild.texi (stdint_types_mbig_endian): Document. + +2021-04-08 Richard Sandiford + + * match.pd: Extend vec_cond folds to handle shifts. + +2021-04-08 Maciej W. Rozycki + + * config/vax/vax.md: Fix comment for `*bit' pattern's + peephole. + +2021-04-08 Alex Coplan + + PR target/99647 + * config/arm/iterators.md (MVE_vecs): New. + (V_elem): Also handle V2DF. + * config/arm/mve.md (*mve_mov): Rename to ... + (*mve_vdup): ... this. Remove second alternative since + vec_duplicate of const_int is not canonical RTL, and we don't + want to match symbol_refs. + (*mve_vec_duplicate): Delete (pattern is redundant). + +2021-04-08 Xionghu Luo + + * fold-const.c (fold_single_bit_test): Fix typo. + * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single + instead. + +2021-04-07 Richard Sandiford + + PR tree-optimization/97513 + * tree-vect-slp.c (vect_add_slp_permutation): New function, + split out from... + (vectorizable_slp_permutation): ...here. Detect cases in which + all VEC_PERM_EXPRs are guaranteed to have the same stepped + permute vector and only generate one permute vector for that case. + Extend that case to handle variable-length vectors. + +2021-04-07 Richard Sandiford + + PR tree-optimization/99873 + * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function. + (vect_build_slp_instance): Don't split store groups that could + use IFN_STORE_LANES. + +2021-04-07 Jakub Jelinek + + PR target/99872 + * varasm.c (output_constant_pool_contents): Don't strip name encoding + from XSTR (desc->sym, 0) or from label before passing those to + ASM_OUTPUT_DEF. + +2021-04-07 Richard Biener + + PR tree-optimization/99954 + * tree-loop-distribution.c: Include tree-affine.h. + (generate_memcpy_builtin): Try using tree-affine to prove + non-overlap. + (loop_distribution::classify_builtin_ldst): Always classify + as PKIND_MEMMOVE. + +2021-04-07 Richard Biener + + PR tree-optimization/99947 + * tree-vect-loop.c (vectorizable_induction): Pre-allocate + steps vector to avoid pushing elements from the reallocated + vector. + +2021-04-07 Richard Biener + + * tree-ssa-sccvn.h (print_vn_reference_ops): Declare. + * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand + printing... + * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new + function. + (debug_vn_reference_ops): New. + +2021-04-07 Bin Cheng + + PR tree-optimization/98736 + * tree-loop-distribution.c + * (loop_distribution::bb_top_order_init): + Compute RPO with programing order preserved by calling function + rev_post_order_and_mark_dfs_back_seme. + +2021-04-06 Vladimir N. Makarov + + PR target/99781 + * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p. + * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New + functions. + (process_bb_lives): Don't update biggest mode of hard reg for + implicit in multi-register group. Use the new functions for + updating dead_set and unused_set by register notes. + +2021-04-06 Xianmiao Qu + + * config/csky/csky_pipeline_ck802.md : Use insn reservation name + instead of *. + +2021-04-06 H.J. Lu + + * config/i386/x86-tune-costs.h (skylake_memcpy): Updated. + (skylake_memset): Likewise. + (skylake_cost): Change CLEAR_RATIO to 17. + * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): + Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER, + m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512. + +2021-04-06 Richard Biener + + PR tree-optimization/99880 + * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only + set vectorized defs of relevant PHIs. + +2021-04-06 Richard Biener + + PR tree-optimization/99924 + * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark + nodes w/o scalar stmts as visited. + +2021-04-06 Alex Coplan + + PR target/99748 + * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base + PCS for [su]fix_optab. + +2021-04-03 Iain Sandoe + + * config/darwin.c (machopic_legitimize_pic_address): Check + that the current pic register is one of the hard reg set + before setting liveness. + +2021-04-03 Iain Sandoe + + * config/darwin.c (machopic_legitimize_pic_address): Fix + whitespace, remove unused code. + +2021-04-03 Jakub Jelinek + + PR tree-optimization/99882 + * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with + pointer type. + +2021-04-03 Jakub Jelinek + + PR rtl-optimization/99863 + * dse.c (replace_read): Drop regs_live argument. Instead of + regs_live, use store_insn->fixed_regs_live if non-NULL, + otherwise punt if insns sequence clobbers or sets any hard + registers. + +2021-04-03 Jakub Jelinek + + PR testsuite/98125 + * targhooks.h (default_print_patchable_function_entry_1): Declare. + * targhooks.c (default_print_patchable_function_entry_1): New function, + copied from default_print_patchable_function_entry with an added flags + argument. + (default_print_patchable_function_entry): Rewritten into a small + wrapper around default_print_patchable_function_entry_1. + * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): + Redefine. + (rs6000_print_patchable_function_entry): New function. + +2021-04-02 Eric Botcazou + + * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak. + +2021-04-01 Jason Merrill + + PR c++/98481 + * common.opt: Document v15 and v16. + +2021-04-01 Richard Biener + + PR tree-optimization/99863 + * gimplify.c (gimplify_init_constructor): Recompute vector + constructor flags. + +2021-04-01 Jakub Jelinek + + * doc/extend.texi (symver attribute): Fix up syntax errors + in the examples. + +2021-04-01 Jakub Jelinek + + PR tree-optimization/96573 + * gimple-ssa-store-merging.c (init_symbolic_number): Handle + also pointer types. + +2021-04-01 Richard Biener + + PR tree-optimization/99856 + * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote + precision to vector element precision. + +2021-04-01 Martin Jambor + + PR tree-optimization/97009 + * tree-sra.c (access_or_its_child_written): New function. + (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write + test. + +2021-03-31 Jan Hubicka + + PR ipa/98265 + * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL. + +2021-03-31 Pat Haugen + + PR target/99133 + * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst, + xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst, + xxblend_, xxpermx_inst, xxeval): Mark prefixed. + * config/rs6000/mma.md (mma_, mma_, + mma_, mma_, mma_, mma_, + mma_, mma_, mma_, mma_): + Likewise. + * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test. + * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New. + (define_attr "prefixed"): Update initializer. + +2021-03-31 Jakub Jelinek + + PR debug/99490 + * dwarf2out.c (debug_ranges_dwo_section): New variable. + (DW_RANGES_IDX_SKELETON): Define. + (struct dw_ranges): Add begin_entry and end_entry members. + (DEBUG_DWO_RNGLISTS_SECTION): Define. + (add_ranges_num): Adjust r initializer for addition of *_entry + members. + (add_ranges_by_labels): For -gsplit-dwarf and force_direct, + set idx to DW_RANGES_IDX_SKELETON. + (use_distinct_base_address_for_range): New function. + (index_rnglists): Don't set r->idx if it is equal to + DW_RANGES_IDX_SKELETON. Initialize r->begin_entry and + r->end_entry for -gsplit-dwarf if those will be needed by + output_rnglists. + (output_rnglists): Add DWO argument. If true, switch to + debug_ranges_dwo_section rather than debug_ranges_section. + Adjust l1/l2 label indexes. Only output the offset table when + dwo is true and don't include in there the skeleton range + entry if present. For -gsplit-dwarf, skip ranges that belong + to the other rnglists section. Change return type from void + to bool and return true if there are any range entries for + the other section. For dwarf_split_debug_info use + DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx + entries instead of DW_RLE_start_end, DW_RLE_start_length and + DW_RLE_base_address. Use use_distinct_base_address_for_range. + (init_sections_and_labels): Initialize debug_ranges_dwo_section + if -gsplit-dwarf and DWARF >= 5. Adjust ranges_section_label + and range_base_label indexes. + (dwarf2out_finish): Call index_rnglists earlier before finalizing + .debug_addr. Never emit DW_AT_rnglists_base attribute. For + -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice + with different dwo arguments. + (dwarf2out_c_finalize): Clear debug_ranges_dwo_section. + +2021-03-31 Richard Sandiford + + PR tree-optimization/98268 + * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call + recompute_tree_invariant_for_addr_expr after successfully + folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR. + +2021-03-31 Richard Sandiford + + PR tree-optimization/99726 + * tree-data-ref.c (create_intersect_range_checks_index): Bail + out if there is more than one access function SCEV for the loop + being versioned. + +2021-03-31 Richard Sandiford + + PR rtl-optimization/97141 + PR rtl-optimization/98726 + * emit-rtl.c (valid_for_const_vector_p): Return true for + CONST_POLY_INT_P. + * rtx-vector-builder.h (rtx_vector_builder::step): Return a + poly_wide_int instead of a wide_int. + (rtx_vector_builder::apply_set): Take a poly_wide_int instead + of a wide_int. + * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise. + * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return + false for CONST_VECTORs that cannot be forced to memory. + * config/aarch64/aarch64-simd.md (mov): If a CONST_VECTOR + is too complex to force to memory, build it up from individual + elements instead. + +2021-03-31 Jan Hubicka + + PR lto/99447 + * cgraph.c (cgraph_node::release_body): Fix overactive check. + +2021-03-31 Christophe Lyon + + PR target/99786 + * config/arm/vec-common.md (mul3): Disable on iwMMXT, expect + for V4HI and V2SI. + +2021-03-31 H.J. Lu + + * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep): + For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode + to SImode. + (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use + "rep movsb/stosb" only for known sizes. + * config/i386/i386-options.c (processor_cost_table): Use Ice + Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire + Rapids and Alder Lake. + * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New. + * config/i386/x86-tune-costs.h (icelake_memcpy): New. + (icelake_memset): Likewise. + (icelake_cost): Likewise. + * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): + New. + +2021-03-31 Richard Sandiford + + PR target/98119 + * config/aarch64/aarch64.c + (aarch64_vectorize_preferred_vector_alignment): Query the size + of the provided SVE vector; do not assume that all SVE vectors + have the same size. + +2021-03-31 Jan Hubicka + + PR lto/99447 + * cgraph.c (cgraph_node::release_body): Remove all callers and + references. + * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here. + * cgraphunit.c (cgraph_node::expand): And here. + +2021-03-31 Martin Liska + + * ipa-modref.c (analyze_ssa_name_flags): Fix coding style + and one negated condition. + +2021-03-31 Jakub Jelinek + Richard Sandiford + + PR target/99813 + * config/aarch64/aarch64.md (*add3_poly_1): Swap Uai and Uav + constraints on operands[2] and similarly 0 and rk constraints + on operands[1] corresponding to that. + +2021-03-31 Jakub Jelinek + + PR bootstrap/98860 + * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF + linker doesn't support DWARF sections new in DWARF5. + * config/i386/i386-options.c (ix86_option_override_internal): Default + to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF + targets. + * config.in: Regenerated. + * configure: Regenerated. + +2021-03-30 Kyrylo Tkachov + + PR target/99820 + * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for + available issue_info before using it. + +2021-03-30 Kyrylo Tkachov + + PR target/99822 + * config/aarch64/aarch64.md (sub3_compare1_imm): Do not allow zero + in operand 1. + +2021-03-30 Xionghu Luo + + PR target/99718 + * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ... + (altivec_lvsl_reg_): ... this. + (altivec_lvsr_reg): Change to ... + (altivec_lvsr_reg_): ... this. + * config/rs6000/predicates.md (vec_set_index_operand): New. + * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): + Enable 32bit variable vec_insert for all TARGET_VSX. + * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9): + Enable 32bit variable vec_insert for p9 and above. + (rs6000_expand_vector_set_var_p8): Rename to ... + (rs6000_expand_vector_set_var_p7): ... this. + (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert + position. + * config/rs6000/vector.md (vec_set): Use vec_set_index_operand. + * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and + gen_altivec_lvsr_reg_di. + +2021-03-30 H.J. Lu + + PR target/99744 + * config/i386/ia32intrin.h (__rdtsc): Defined as macro. + (__rdtscp): Likewise. + +2021-03-30 Tamar Christina + + PR tree-optimization/99825 + * tree-vect-slp-patterns.c (vect_check_evenodd_blend): + Reject non-mult 2 lanes. + +2021-03-30 Richard Earnshaw + + PR target/99773 + * config/arm/arm.c (arm_file_start): Fix emission of + Tag_ABI_VFP_args attribute. + +2021-03-30 Richard Biener + + PR tree-optimization/99824 + * stor-layout.c (set_min_and_max_values_for_integral_type): + Assert the precision is within the bounds of + WIDE_INT_MAX_PRECISION. + * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use + the outermost component ref only to lower the access size + and initialize that from the access type. + +2021-03-30 Richard Sandiford + + PR target/98136 + * config/aarch64/aarch64.md (mov): Pass multi-instruction + CONST_INTs to aarch64_expand_mov_immediate when called after RA. + +2021-03-30 Mihailo Stojanovic + + * config/aarch64/aarch64.md + (_trunc2): Set the "arch" + attribute to disambiguate between SIMD and FP variants of the + instruction. + +2021-03-29 Jan Hubicka + + * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref. + (analyze_ssa_name_flags): Fix typo in comment. + +2021-03-29 Alex Coplan + + PR target/99216 + * config/aarch64/aarch64-sve-builtins.cc + (function_builder::add_function): Add placeholder_p argument, use + placeholder decls if this is set. + (function_builder::add_unique_function): Instead of conditionally adding + direct overloads, unconditionally add either a direct overload or a + placeholder. + (function_builder::add_overloaded_function): Set placeholder_p if we're + using C++ overloads. Use the obstack for string storage instead + of relying on the tree nodes. + (function_builder::add_overloaded_functions): Don't return early for + m_direct_overloads: we need to add placeholders. + * config/aarch64/aarch64-sve-builtins.h + (function_builder::add_function): Add placeholder_p argument. + +2021-03-29 Richard Biener + + PR tree-optimization/99807 + * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move + assert below VEC_PERM handling. + +2021-03-29 Kyrylo Tkachov + + PR target/99037 + * config/aarch64/aarch64-simd.md (move_lo_quad_internal_): Use + aarch64_simd_or_scalar_imm_zero to match zeroes. Remove pattern + matching const_int 0. + (move_lo_quad_internal_be_): Likewise. + (move_lo_quad_): Update for the above. + * config/aarch64/iterators.md (VQ_2E): Delete. + +2021-03-29 Jakub Jelinek + + PR tree-optimization/99777 + * fold-const.c (extract_muldiv_1): For conversions, punt on casts from + types other than scalar integral types. + +2021-03-28 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add + XCOFF TLS reloc decorations. + +2021-03-28 Gerald Pfeifer + + * doc/analyzer.texi (Analyzer Internals): Update link to + "A Memory Model for Static Analysis of C Programs". + +2021-03-26 David Edelsohn + + * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function. + * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align): + Declare. + * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New. + (rs6000_special_round_type_align): Recursively check innermost first + field. + +2021-03-26 Jakub Jelinek + + PR debug/99334 + * dwarf2out.h (struct dw_fde_node): Add rule18 member. + * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp) + assignment with drap_reg active, queue reg save for hfp with offset 0 + and flush queued reg saves. When handling a push with rule18, + defer queueing reg save for hfp and just assert the offset is 0. + (scan_trace): Assert that fde->rule18 is false. + +2021-03-26 Vladimir Makarov + + PR target/99766 + * ira-costs.c (record_reg_classes): Put case with + CT_RELAXED_MEMORY adjacent to one with CT_MEMORY. + * ira.c (ira_setup_alts): Ditto. + * lra-constraints.c (process_alt_operands): Ditto. + * recog.c (asm_operand_ok): Ditto. + * reload.c (find_reloads): Ditto. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64-protos.h + (cpu_addrcost_table::post_modify_ld3_st3): New member variable. + (cpu_addrcost_table::post_modify_ld4_st4): Likewise. + * config/aarch64/aarch64.c (generic_addrcost_table): Update + accordingly, using the same costs as for post_modify. + (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise. + (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table): + (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise. + (a64fx_addrcost_table): Likewise. + (neoversev1_addrcost_table): New. + (neoversev1_tunings): Use neoversev1_addrcost_table. + (aarch64_address_cost): Use the new post_modify costs for CImode + and XImode. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64.opt + (-param=aarch64-loop-vect-issue-rate-niters=): New parameter. + * doc/invoke.texi: Document it. + * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info) + (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info) + (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info) + (aarch64_vec_issue_info): New structures. + (cpu_vector_cost): Write comments above the variables rather + than to the side. + (cpu_vector_cost::issue_info): New member variable. + * config/aarch64/aarch64.c: Include gimple-pretty-print.h + and tree-ssa-loop-niter.h. + (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost) + (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost) + (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost) + (thunderx3t110_vector_cost): Initialize issue_info to null. + (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info) + (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures. + (neoversev1_vector_cost): Use them. + (aarch64_vec_op_count, aarch64_sve_op_count): New structures. + (aarch64_vector_costs::saw_sve_only_op): New member variable. + (aarch64_vector_costs::num_vector_iterations): Likewise. + (aarch64_vector_costs::scalar_ops): Likewise. + (aarch64_vector_costs::advsimd_ops): Likewise. + (aarch64_vector_costs::sve_ops): Likewise. + (aarch64_vector_costs::seen_loads): Likewise. + (aarch64_simd_vec_costs_for_flags): New function. + (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations. + Count the number of predicate operations required by SVE WHILE + instructions. + (aarch64_comparison_type, aarch64_multiply_add_p): New functions. + (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise. + (aarch64_count_ops): Likewise. + (aarch64_add_stmt_cost): Record whether see an SVE operation + that cannot currently be implementing using Advanced SIMD. + Record issue information about the scalar, Advanced SIMD + and (where relevant) SVE versions of a loop. + (aarch64_vec_op_count::dump): New function. + (aarch64_sve_op_count::dump): Likewise. + (aarch64_estimate_min_cycles_per_iter): Likewise. + (aarch64_adjust_body_cost): If issue information is available, + try to compare the issue rates of the various loop implementations + and increase or decrease the vector body cost accordingly. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype): + Assume a zero cost for induction phis. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New + function. + (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and + vector comparisons. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype): + New function. + (aarch64_add_stmt_cost): Call it. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput): + New tuning parameter. + * config/aarch64/aarch64.c (neoversev1_tunings): Use it. + (aarch64_estimated_sve_vq): New function. + (aarch64_vector_costs::analyzed_vinfo): New member variable. + (aarch64_vector_costs::is_loop): Likewise. + (aarch64_vector_costs::unrolled_advsimd_niters): Likewise. + (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise. + (aarch64_record_potential_advsimd_unrolling): New function. + (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise. + (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or + aarch64_analyze_bb_vinfo on the first use of a costs structure. + Detect whether we're vectorizing a loop for SVE that might be + completely unrolled if it used Advanced SIMD instead. + (aarch64_adjust_body_cost_for_latency): New function. + (aarch64_finish_cost): Call it. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_vector_costs): New structure. + (aarch64_init_cost): New function. + (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of + the default unsigned[3]. + (aarch64_finish_cost, aarch64_destroy_cost_data): New functions. + (TARGET_VECTORIZE_INIT_COST): Override. + (TARGET_VECTORIZE_FINISH_COST): Likewise. + (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost) + (neoversev1_sve_vector_cost): New cost structures. + (neoversev1_vector_cost): Likewise. + (neoversev1_tunings): Use them. Enable use_new_vector_costs. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64-protos.h + (sve_vec_cost::scatter_store_elt_cost): New member variable. + * config/aarch64/aarch64.c (generic_sve_vector_cost): Update + accordingly, taking the cost from the cost of a scalar_store. + (a64fx_sve_vector_cost): Likewise. + (aarch64_detect_vector_stmt_subtype): Detect scatter stores. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64-protos.h + (simd_vec_cost::store_elt_extra_cost): New member variable. + * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update + accordingly, using the vec_to_scalar cost for the new field. + (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise. + (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise. + (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise. + (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost) + (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost) + (thunderx3t110_advsimd_vector_cost): Likewise. + (aarch64_detect_vector_stmt_subtype): Detect single-element stores. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost) + (simd_vec_cost::ld3_st3_permute_cost): New member variables. + (simd_vec_cost::ld4_st4_permute_cost): Likewise. + * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update + accordingly, using zero for the new costs. + (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise. + (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise. + (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise. + (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost) + (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost) + (thunderx3t110_advsimd_vector_cost): Likewise. + (aarch64_ld234_st234_vectors): New function. + (aarch64_adjust_stmt_cost): Likewise. + (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using + the new vector costs. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a + derived class of simd_vec_cost. Add information about CLAST[AB] + and FADDA instructions. + * config/aarch64/aarch64.c (generic_sve_vector_cost): Update + accordingly, using the vec_to_scalar costs for the new fields. + (a64fx_sve_vector_cost): Likewise. + (aarch64_reduc_type): New function. + (aarch64_sve_in_loop_reduction_latency): Likewise. + (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter. + Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions + that occur in the loop body. + (aarch64_add_stmt_cost): Update call accordingly. + +2021-03-26 Richard Sandiford + + * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs): + New tuning flag. + * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments + above the fields rather than to the right. + (simd_vec_cost::reduc_i8_cost): New member variable. + (simd_vec_cost::reduc_i16_cost): Likewise. + (simd_vec_cost::reduc_i32_cost): Likewise. + (simd_vec_cost::reduc_i64_cost): Likewise. + (simd_vec_cost::reduc_f16_cost): Likewise. + (simd_vec_cost::reduc_f32_cost): Likewise. + (simd_vec_cost::reduc_f64_cost): Likewise. + * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update + accordingly, using the vec_to_scalar_cost for the new fields. + (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise. + (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise. + (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise. + (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost) + (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost) + (thunderx3t110_advsimd_vector_cost): Likewise. + (aarch64_use_new_vector_costs_p): New function. + (aarch64_simd_vec_costs): New function, split out from... + (aarch64_builtin_vectorization_cost): ...here. + (aarch64_is_reduction): New function. + (aarch64_detect_vector_stmt_subtype): Likewise. + (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if + using the new vector costs. + +2021-03-26 Iain Buclaw + + PR ipa/99466 + * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak + TLS declarations as public. + +2021-03-26 Iain Buclaw + + * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define. + * config/arm/arm-d.c (IN_TARGET_CODE): Likewise. + * config/i386/i386-d.c (IN_TARGET_CODE): Likewise. + * config/mips/mips-d.c (IN_TARGET_CODE): Likewise. + * config/pa/pa-d.c (IN_TARGET_CODE): Likewise. + * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise. + * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise. + * config/s390/s390-d.c (IN_TARGET_CODE): Likewise. + * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise. + +2021-03-26 Iain Buclaw + + PR d/91595 + * config.gcc (*-*-cygwin*): Add winnt-d.o + (*-*-mingw*): Likewise. + * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro. + * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise. + * config/i386/t-cygming: Add winnt-d.o. + * config/i386/winnt-d.c: New file. + +2021-03-26 Iain Buclaw + + * config/freebsd-d.c: Include memmodel.h. + +2021-03-26 Iain Buclaw + + PR d/99691 + * config.gcc (*-*-openbsd*): Add openbsd-d.o. + * config/t-openbsd: Add openbsd-d.o. + * config/openbsd-d.c: New file. + +2021-03-25 Stam Markianos-Wright + + PR tree-optimization/96974 + * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert + with graceful exit. + +2021-03-25 H.J. Lu + + Revert: + 2021-03-25 H.J. Lu + + PR target/98209 + PR target/99744 + * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for + always_inline in system headers. + +2021-03-25 Kewen Lin + + * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost. + +2021-03-25 Jakub Jelinek + + PR c++/99565 + * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD. + * fold-const.c (operand_compare::operand_equal_p): Don't compare + field offsets if OEP_ADDRESS_OF_SAME_FIELD. + +2021-03-25 H.J. Lu + + PR target/98209 + PR target/99744 + * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for + always_inline in system headers. + +2021-03-25 Richard Biener + + PR tree-optimization/99746 + * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark + the scalar stmt as patterned. Instead set up required things + manually. + +2021-03-25 Xionghu Luo + + * config/rs6000/rs6000.c (power8_costs): Change l2 cache + from 256 to 512. + +2021-03-24 Martin Liska + + PR target/99753 + * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one + error. + * config/i386/i386-options.c (ix86_option_override_internal): + Add run-time assert. + +2021-03-24 Martin Jambor + + PR ipa/99122 + * ipa-cp.c (initialize_node_lattices): Mark as bottom all + parameters with unknown type. + (ipacp_value_safe_for_type): New function. + (propagate_vals_across_arith_jfunc): Verify that the constant type + can be used for a type of the formal parameter. + (propagate_vals_across_ancestor): Likewise. + (propagate_scalar_across_jump_function): Likewise. Pass the type + also to propagate_vals_across_ancestor. + +2021-03-24 Christophe Lyon + + PR target/99727 + * config/arm/mve.md (movmisalign_mve_store): Use Ux + constraint. + (movmisalign_mve_load): Likewise. + +2021-03-24 Jakub Jelinek + + PR target/99724 + * config/arm/vec-common.md (one_cmpl2, neg2, + movmisalign): Disable expanders for TARGET_REALLY_IWMMXT. + +2021-03-24 Alexandre Oliva + + * doc/sourcebuild.texi (sysconf): New effective target. + +2021-03-24 Alexandre Oliva + + * config/i386/predicates.md (reg_or_const_vec_operand): New. + * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for + the now *-prefixed insn_and_split, turn the splitter const vec + into an input for the insn, making it an ignored immediate for + non-split cases, and loaded into the scratch register + otherwise. + +2021-03-23 Vladimir N. Makarov + + PR target/99581 + * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty): + Use define_relaxed_memory_constraint for them. + +2021-03-23 Iain Sandoe + + PR target/99733 + * config/host-darwin.c (darwin_gt_pch_use_address): Add a + colon to the diagnostic message. + +2021-03-23 Ilya Leoshkevich + + * fwprop.c (fwprop_propagation::fwprop_propagation): Look at + set_info's uses. + (try_fwprop_subst_note): Use set_info instead of insn_info. + (try_fwprop_subst_pattern): Likewise. + (try_fwprop_subst_notes): Likewise. + (try_fwprop_subst): Likewise. + (forward_propagate_subreg): Likewise. + (forward_propagate_and_simplify): Likewise. + (forward_propagate_into): Likewise. + * rtl-ssa/accesses.h (set_info::single_nondebug_use) New + method. + (set_info::single_nondebug_insn_use): Likewise. + (set_info::single_phi_use): Likewise. + * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New + method. + (set_info::single_nondebug_insn_use): Likewise. + (set_info::single_phi_use): Likewise. + +2021-03-23 Christophe Lyon + + * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document. + +2021-03-23 Jakub Jelinek + + PR target/99540 + * config/aarch64/aarch64.c (aarch64_add_offset): Tell + expand_mult to perform an unsigned rather than a signed + multiplication. + +2021-03-23 H.J. Lu + + PR target/99704 + * config/i386/cpuid.h (__cpuid): Add __volatile__. + (__cpuid_count): Likewise. + +2021-03-23 Richard Biener + + PR tree-optimization/99721 + * tree-vect-slp.c (vect_slp_analyze_node_operations): + Make sure we can schedule the node. + +2021-03-23 Marcus Comstedt + + * config/riscv/riscv.c (riscv_subword): Take endianness into + account when calculating the byte offset. + +2021-03-23 Marcus Comstedt + + * config/riscv/predicates.md (subreg_lowpart_operator): New predicate + * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2) + (*negsi2_extended2, *mulsi3_extended2, *si3_mask) + (*si3_mask_1, *di3_mask, *di3_mask_1) + (*si3_extend_mask, *si3_extend_mask_1): Use + new predicate "subreg_lowpart_operator" + +2021-03-23 Marcus Comstedt + + * config/riscv/riscv.c (riscv_swap_instruction): New function + to byteswap an SImode rtx containing an instruction. + (riscv_trampoline_init): Byteswap the generated instructions + when needed. + +2021-03-23 Marcus Comstedt + + * common/config/riscv/riscv-common.c + (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness. + * config.gcc (riscv32be-*, riscv64be-*): Set + TARGET_BIG_ENDIAN_DEFAULT to 1. + * config/riscv/elf.h (LINK_SPEC): Change -melf* value + depending on default endianness. + * config/riscv/freebsd.h (LINK_SPEC): Likewise. + * config/riscv/linux.h (LINK_SPEC): Likewise. + * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set + default endianness. + * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro. + +2021-03-23 Marcus Comstedt + + * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag. + * config/riscv/freebsd.h (LINK_SPEC): Likewise. + * config/riscv/linux.h (LINK_SPEC): Likewise. + * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and + -mlittle-endian. + (BYTES_BIG_ENDIAN): Handle big endian. + (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN. + * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New + options. + * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document. + +2021-03-23 Stefan Schulze Frielinghaus + + * regcprop.c (find_oldest_value_reg): Ask target whether + different mode is fine for replacement register. + +2021-03-23 Aldy Hernandez + + PR tree-optimization/99296 + * value-range.cc (irange::irange_set_1bit_anti_range): New. + (irange::irange_set_anti_range): Call irange_set_1bit_anti_range + * value-range.h (irange::irange_set_1bit_anti_range): New. + +2021-03-22 Vladimir N. Makarov + + PR target/99581 + * config/aarch64/constraints.md (UtQ): Use + define_relaxed_memory_constraint for it. + * doc/md.texi (define_relaxed_memory_constraint): Describe it. + * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT. + * genpreds.c (constraint_data): Add bitfield is_relaxed_memory. + (have_relaxed_memory_constraints): New static var. + (relaxed_memory_start, relaxed_memory_end): Ditto. + (add_constraint): Add arg is_relaxed_memory. Check name for + relaxed memory. Set up is_relaxed_memory in constraint_data and + have_relaxed_memory_constraints. Adjust calls. + (choose_enum_order): Process relaxed memory. + (write_tm_preds_h): Ditto. + (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT. + * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT. + * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY. + * ira-lives.c (single_reg_class): Use + insn_extra_relaxed_memory_constraint. + * ira.c (ira_setup_alts): CT_RELAXED_MEMORY. + * lra-constraints.c (valid_address_p): Use + insn_extra_relaxed_memory_constraint instead of other memory + constraints. + (process_alt_operands): Process CT_RELAXED_MEMORY. + (curr_insn_transform): Use insn_extra_relaxed_memory_constraint. + * recog.c (asm_operand_ok, preprocess_constraints): Process + CT_RELAXED_MEMORY. + * reload.c (find_reloads): Ditto. + * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New. + * stmt.c (parse_input_constraint): Use + insn_extra_relaxed_memory_constraint. + +2021-03-22 Segher Boessenkool + + PR target/97926 + * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if + there are no NaNs. + +2021-03-22 Alex Coplan + + PR target/97252 + * config/arm/arm-protos.h (neon_make_constant): Add generate + argument to guard emitting insns, default to true. + * config/arm/arm.c (arm_legitimate_constant_p_1): Reject + CONST_VECTORs which neon_make_constant can't handle. + (neon_vdup_constant): Add generate argument, avoid emitting + insns if it's not set. + (neon_make_constant): Plumb new generate argument through. + * config/arm/constraints.md (Ui): New. Use it... + * config/arm/mve.md (*mve_mov): ... here. + * config/arm/vec-common.md (movv8hf): Use neon_make_constant to + synthesize constants. + +2021-03-22 Richard Biener + + * debug.h: Add deprecation warning. + +2021-03-22 Richard Biener + + PR tree-optimization/99694 + * tree-ssa-sccvn.c (visit_phi): Ignore edges with the + PHI result. + +2021-03-22 Kito Cheng + + PR target/99702 + * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value + after type checking. + +2021-03-22 Jakub Jelinek + + PR debug/99562 + PR debug/66728 + * dwarf2out.c (get_full_len): Use get_precision rather than + min_precision. + (add_const_value_attribute): Make sure add_AT_wide argument has + precision prec rather than some very wide one. + +2021-03-22 Kewen Lin + + * config/rs6000/rs6000.md (*rotldi3_insert_sf, + *movcc_p9, floatsi2_lfiwax, + floatsi2_lfiwax_mem, floatunssi2_lfiwzx, + floatunssi2_lfiwzx_mem, *floatsidf2_internal, + *floatunssidf2_internal, fix_truncsi2_stfiwx, + fix_truncsi2_internal, fixuns_truncsi2_stfiwx, + *round322_fprs, *roundu322_fprs, + *fix_truncsi2_internal): Fix empty split condition. + * config/rs6000/vsx.md (*vsx_le_undo_permute_, + vsx_reduc__v2df, vsx_reduc__v4sf, + *vsx_reduc__v2df_scalar, + *vsx_reduc__v4sf_scalar): Likewise. + +2021-03-22 Xionghu Luo + + PR target/98914 + * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9): + Convert idx to DImode. + (rs6000_expand_vector_set_var_p8): Likewise. + +2021-03-21 Jakub Jelinek + + PR debug/99388 + * dwarf2out.c (insert_float): Change return type from void to + unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size. + (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): + Adjust callers. + +2021-03-20 H.J. Lu + + PR target/99679 + * config/i386/i386.c (construct_container): Check cfun != NULL + before accessing silent_p. + +2021-03-20 Ahamed Husni + + * asan.c: Fix typos in comments. + +2021-03-20 Vladimir N. Makarov + + PR rtl-optimization/99680 + * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers. + (process_address_1): Check empty constraint before using + CONSTRAINT_LEN. + +2021-03-19 Pat Haugen + + * config/rs6000/rs6000.c (power10_cost): New. + (rs6000_option_override_internal): Set Power10 costs. + (rs6000_issue_rate): Set Power10 issue rate. + * config/rs6000/power10.md: Rewrite for Power10. + +2021-03-19 Vladimir N. Makarov + + PR target/99663 + * lra-constraints.c (process_address_1): Don't use unknown + constraint for address constraint. + +2021-03-19 Iain Sandoe + + PR target/99661 + * config.gcc (powerpc-*-darwin8): Delete the reference to + the now removed darwin8.h. + +2021-03-19 Olivier Hainque + + PR target/99660 + * config/vxworksae.h (VX_CPU_PREFIX): Define. + +2021-03-19 John David Anglin + + * config/pa/pa.c (import_milli): Use memcpy instead of strncpy. + +2021-03-19 Tamar Christina + + PR tree-optimization/99656 + * tree-vect-slp-patterns.c (linear_loads_p, + complex_add_pattern::matches, is_eq_or_top, + vect_validate_multiplication, complex_mul_pattern::matches, + complex_fms_pattern::matches): Remove complex_perm_kinds_t. + * tree-vectorizer.h: (complex_load_perm_t): Removed. + (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of + complex_load_perm_t. + +2021-03-19 H.J. Lu + + PR target/99652 + * config/i386/i386-options.c (ix86_init_machine_status): Set + silent_p to true. + * config/i386/i386.c (init_cumulative_args): Set silent_p to + false. + (construct_container): Return early for return and argument + errors if silent_p is true. + * config/i386/i386.h (machine_function): Add silent_p. + +2021-03-19 Jakub Jelinek + + PR target/99593 + * config/arm/constraints.md (Ds): New constraint. + * config/arm/vec-common.md (mve_vshlq_): Use w,Ds + constraint instead of w,Dm. + +2021-03-19 Andrew Stubbs + + * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes + in error message. + +2021-03-19 Eric Botcazou + + PR middle-end/99641 + * fold-const.c (native_encode_initializer) : For an + array type, do the computation of the current position in sizetype. + +2021-03-18 Vladimir N. Makarov + + PR target/99422 + * lra-constraints.c (process_address_1): Use lookup_constraint + only for a single constraint. + +2021-03-18 Martin Sebor + + PR middle-end/99502 + * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename... + (inbounds_memaccess_p): ...to this. Check the ending offset of + the accessed member. + +2021-03-18 Andrew Stubbs + + * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and + %> quote markers to error messages. + (gcn_goacc_validate_dims): Likewise. + (gcn_conditional_register_usage): Remove exclaimation mark from error + message. + (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized. + +2021-03-18 Jan Hubicka + + * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of + integer divides1. + +2021-03-18 Sinan Lin + Kito Cheng + + * config/riscv/riscv.c (riscv_block_move_straight): Change type + to unsigned HOST_WIDE_INT for parameter and local variable with + HOST_WIDE_INT type. + (riscv_adjust_block_mem): Ditto. + (riscv_block_move_loop): Ditto. + (riscv_expand_block_move): Ditto. + +2021-03-18 Nick Clifton + + * config/v850/v850.c (construct_restore_jr): Increase static + buffer size. + (construct_save_jarl): Likewise. + * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define. + +2021-03-18 Kyrylo Tkachov + + * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define. + (aarch64_override_options_internal): Use it. + (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to + tune_flags. + +2021-03-17 Sandra Loosemore + + * config/nios2/nios2.c (nios2_custom_check_insns): Clean up + error message format issues. + (nios2_option_override): Likewise. + (nios2_expand_fpu_builtin): Likewise. + (nios2_init_custom_builtins): Adjust to avoid bogus strncpy + truncation warning. + (nios2_expand_custom_builtin): More error message format fixes. + (nios2_expand_rdwrctl_builtin): Likewise. + (nios2_expand_rdprs_builtin): Likewise. + (nios2_expand_eni_builtin): Likewise. + (nios2_expand_builtin): Likewise. + (nios2_register_custom_code): Likewise. + (nios2_valid_target_attribute_rec): Likewise. + (nios2_add_insn_asm): Fix uninitialized variable warning. + +2021-03-17 Jan Hubicka + + * config/i386/x86-tune-costs.h (struct processor_costs): Update costs + of gather to match reality. + * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3. + +2021-03-17 Kyrylo Tkachov + + * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ + to compare against CC_REG rather than NE. + +2021-03-17 H.J. Lu + + PR target/99504 + * config/i386/i386.c (ix86_force_load_from_GOT_p): Support + inline assembly statements. + (ix86_print_operand): Update 'P' handling for -fno-plt. + +2021-03-17 Tamar Christina + + PR target/99542 + * config/aarch64/aarch64.c + (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var. + +2021-03-16 Segher Boessenkool + + PR target/98092 + * config/rs6000/predicates.md (branch_comparison_operator): Allow + ordered and unordered for CCFPmode, if flag_finite_math_only. + +2021-03-16 Jakub Jelinek + + PR target/99600 + * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT + rather than ASHIFT. + * config/i386/i386.md (mult by 1248 into ashift): New splitter. + +2021-03-16 Martin Liska + + PR target/99592 + * optc-save-gen.awk: Add flag_ipa_ra to exceptions for + cl_optimization_compare function. + +2021-03-16 Ilya Leoshkevich + + * config/s390/s390.c (f_constraint_p): Treat "fv" constraints + as "v". + +2021-03-16 Jakub Jelinek + + PR target/99563 + * config/i386/i386.h (struct machine_function): Add + has_explicit_vzeroupper bitfield. + * config/i386/i386-expand.c (ix86_expand_builtin): Set + cfun->machine->has_explicit_vzeroupper when expanding + IX86_BUILTIN_VZEROUPPER. + * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper): + Do the mode switching only when TARGET_VZEROUPPER, expensive + optimizations turned on and not optimizing for size. + (pass_insert_vzeroupper::gate): Enable even when + cfun->machine->has_explicit_vzeroupper is set. + +2021-03-16 Jakub Jelinek + + PR target/99542 + * config/aarch64/aarch64.c + (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function + definition, walk TYPE_ARG_TYPES list if non-NULL for argument types + instead of DECL_ARGUMENTS. Ignore types for uniform arguments. + +2021-03-15 Richard Biener + + PR tree-optimization/98834 + * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing + subsetting by truncating the access size. + +2021-03-15 Jan Hubicka + + * config/i386/i386-options.c (processor_cost_table): Add znver3_cost. + * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy + of znver2_cost. + +2021-03-15 Martin Liska + + * spellcheck.c: Add missing comma in initialization. + +2021-03-14 Uroš Bizjak + + * config/i386/sse.md (*vec_extract): Merge alternative 0 with + alternative 2 and alternative 1 with alternative 3 using + YW register constraint. + (*vec_extract_zext): Merge alternatives + using YW register constraint. + (*vec_extractv16qi_zext): Ditto. + (*vec_extractv4si): Merge alternatives 4 and 5 + using Yw register constraint. + (*ssse3_palignr_perm): Use Yw instead of v for alternative 3. + +2021-03-13 Martin Sebor + + PR tree-optimization/99489 + * builtins.c (gimple_call_alloc_size): Fail gracefully when argument + is not a call statement. + +2021-03-13 Jakub Jelinek + + PR tree-optimization/99544 + * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify + if for vector types multiplication can't be done in type's mode. + +2021-03-12 Eric Botcazou + + PR target/99422 + * config/sparc/constraints.md (w): Rename to... + (W): ... this and ditch previous implementation. + * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m. + (*movdf_insn_sp64): Likewise. + (*mov_insn_sp64): Likewise. + * config/sparc/sync.md (*atomic_compare_and_swap_1): Replace + w with W. + (atomic_compare_and_swap_leon3_1): Likewise. + (*atomic_compare_and_swapdi_v8plus): Likewise. + * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on + architecture and add missing address validity check during LRA. + +2021-03-12 Tobias Burnus + + PR fortran/98858 + * gimplify.c (omp_add_variable): Handle NULL_TREE as size + occuring for assumed-size arrays in use_device_{ptr,addr}. + +2021-03-12 Jakub Jelinek + + PR target/99321 + * config/i386/constraints.md (YW): New internal constraint. + * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases. + (*_3, + *_uavg3, *abs2, + *mul3_highpart): Use instead of v in + constraints. + (_psadbw): Use YW instead of v in constraints. + (*avx2_pmaddwd, *sse2_pmaddwd, *v8hi3, *v16qi3, + avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives + into one, use Yw instead of former x,v. + (ashr3, 3): Use instead of x in constraints of + the last alternative. + (_packsswb, _packssdw, + _packuswb, _packusdw, + *_pmulhrsw3, _palignr, + _pshufb3): Merge last two alternatives + into one, use instead of former x,v. + (avx2_interleave_highv32qi, + vec_interleave_highv16qi): Use Yw instead of v in + constraints. Add && to condition. + (avx2_interleave_lowv32qi, + vec_interleave_lowv16qi, + avx2_interleave_highv16hi, + vec_interleave_highv8hi, + avx2_interleave_lowv16hi, vec_interleave_lowv8hi, + avx2_pshuflw_1, sse2_pshuflw_1, + avx2_pshufhw_1, sse2_pshufhw_1, + avx2_v16qiv16hi2, sse4_1_v8qiv8hi2, + *sse4_1_v8qiv8hi2_1, _3): Use + Yw instead of v in constraints. + * config/i386/mmx.md (Yv_Yw): New define_mode_attr. + (*mmx_3, mmx_ashr3, mmx_3): Use + instead of Yv in constraints. + (*mmx_3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart, + *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_v4hi3, + *mmx_v8qi3, mmx_packswb, mmx_packssdw, + mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd, + *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in + constraints. + (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb, + *mmx_pextrb_zext): Use YW instead of Yv in constraints. + (*mmx_eq3, mmx_gt3): Use x instead of Yv in constraints. + (mmx_andnot3, *mmx_3): Split last alternative into + two, one with just x, another isa avx512vl with v. + +2021-03-12 Martin Liska + + * doc/invoke.texi: Add missing param documentation. + +2021-03-11 David Malcolm + + PR analyzer/96374 + * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and + analyzer/trimmed-graph.o. + * doc/analyzer.texi (Analyzer Paths): Rewrite description of + feasibility checking to reflect new implementation. + * doc/invoke.texi (-fdump-analyzer-feasibility): Document new + option. + * shortest-paths.h (shortest_paths::get_shortest_distance): New. + +2021-03-11 David Malcolm + + * digraph.cc (selftest::test_shortest_paths): Update + shortest_paths init for new param. Add test of + SPS_TO_GIVEN_TARGET. + * shortest-paths.h (enum shortest_path_sense): New. + (shortest_paths::shortest_paths): Add "sense" param. + Update for renamings. Generalize to use "sense" param. + (shortest_paths::get_shortest_path): Rename param. + (shortest_paths::m_sense): New field. + (shortest_paths::m_prev): Rename... + (shortest_paths::m_best_edge): ...to this. + (shortest_paths::get_shortest_path): Update for renamings. + Conditionalize flipping of path on sense of traversal. + +2021-03-11 David Malcolm + + * digraph.cc (selftest::test_shortest_paths): Add test coverage + for paths from B and C. + * shortest-paths.h (shortest_paths::shortest_paths): Handle + unreachable nodes, rather than asserting. + +2021-03-11 David Edelsohn + + PR target/99094 + * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create + xcoff_tbss_section_name. + * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm. + * xcoffout.c (xcoff_tbss_section_name): Delete. + * xcoffout.h (xcoff_tbss_section_name): Delete. + +2021-03-11 Richard Biener + + PR tree-optimization/99523 + * tree-cfg.c (dump_function_to_file): Dump SSA names + w/o identifier to the decls section as well, not only those + without a VAR_DECL. + +2021-03-11 Jakub Jelinek + + PR ipa/99517 + * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal + function calls with lhs fail if the lhs don't have compatible types. + +2021-03-11 Hans-Peter Nilsson + + * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define. + Change FRAME_POINTER_REGNUM to correspond to a new faked + register faked_fp, part of GENNONACR_REGS like faked_ap. + (CRIS_FAKED_REGS_CONTENTS): New helper macro. + (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS): + (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P) + (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly. + * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked + register. + (CRIS_REAL_FP_REGNUM): New constant. + * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check + for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM. + (cris_initial_elimination_offset): Handle elimination changes + to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM + and add one from FRAME_POINTER_REGNUM to + HARD_FRAME_POINTER_REGNUM. + (cris_expand_prologue, cris_expand_epilogue): Emit code for + hard_frame_pointer_rtx instead of frame_pointer_rtx. + +2021-03-10 David Edelsohn + + PR target/99492 + * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode. + * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same. + +2021-03-10 Vladimir N. Makarov + + PR target/99422 + * lra-constraints.c (process_address_1): Don't check unknown + constraint, use X for empty constraint. + +2021-03-10 Alex Coplan + + * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate): + Fix typo in comment describing "is_ha" argument. + +2021-03-10 John David Anglin + + * doc/sourcebuild.texi: Document LRA target selector. + +2021-03-10 David Malcolm + + * doc/ux.texi: Add subsection contrasting interactive versus + batch usage of GCC. + +2021-03-10 Joel Hutton + + PR target/99102 + * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask + check condition. + (vectorizable_load): Fix gather load mask check condition. + +2021-03-10 Richard Biener + + PR tree-optimization/99510 + * tree.c (check_aligned_type): Check that the candidate + has TYPE_USER_ALIGN set instead of matching with the + original type. + +2021-03-10 Eric Botcazou + + * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for + float and vector integer modes only if the mode is not larger. + +2021-03-10 Hans-Peter Nilsson + + * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define. + +2021-03-09 Vladimir N. Makarov + + * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital + constraints > 9. + * ira-lives.c (single_reg_class): Ditto. + +2021-03-09 Sebastian Huber + + * config.gcc (aarch64-*-rtems*): Include general rtems.h after + the architecture-specific rtems.h. + (aarch64-*-rtems*): Likewise. + (arm*-*-rtems*): Likewise. + (epiphany-*-rtems*): Likewise. + (riscv*-*-rtems*): Likewise. + +2021-03-09 Jakub Jelinek + + PR tree-optimization/99305 + * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p + before integer_all_onesp instead of vice versa. + +2021-03-09 Richard Earnshaw + + * common/config/arm/arm-common.c (arm_config_default): Change type + of 'i' to unsigned. + +2021-03-09 Vladimir N. Makarov + + PR target/99454 + * lra-constraints.c (process_address_1): Process constraint 'g' + separately and digital constraints containing more one digit. + +2021-03-09 Nick Clifton + + * config/rx/rx.h (DBX_DEBUGGING_INFO): Define. + (DWARF"_DEBUGGING_INFO): Define. + +2021-03-09 Eric Botcazou + + PR c++/90448 + * calls.c (initialize_argument_information): When the argument + is passed by reference, do not make a copy in a thunk only if + the argument is already in memory. Remove redundant test for + the case of callee copy. + +2021-03-09 Vladimir N. Makarov + + PR target/99454 + * lra-constraints.c (process_address_1): Process 0..9 constraints + in process_address_1. + +2021-03-09 Andreas Krebbel + + * config/s390/s390.c (struct s390_processor processor_table): + Binutils name string must not be empty. + +2021-03-09 Claudiu Zissulescu + + * config/arc/arc.c (arc_attr_type): Remove function. + +2021-03-09 Martin Liska + + PR target/99464 + * config/i386/i386-options.c (ix86_option_override_internal): + Set isa_flags for OPTS argument and not for the global + global_options. + +2021-03-09 Aaron Sawdey + + * config/rs6000/predicates.md (ds_form_mem_operand): Check + in correct code. + +2021-03-09 Aaron Sawdey + + PR target/99070 + * config/rs6000/predicates.md (ds_form_mem_operand) New + predicate. + * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use + ds_form_mem_operand in ld/lwa patterns. + * config/rs6000/fusion.md: Regenerate file. + +2021-03-08 Martin Sebor + + PR middle-end/98266 + * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function. + (array_bounds_checker::check_array_bounds): Call it. + +2021-03-08 Martin Sebor + + PR middle-end/97631 + * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem. + (handle_builtin_stxncpy_strncat): Rename locals. Determine + destination size from allocation calls. Issue a more appropriate + kind of warning. + (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow. + (handle_builtin_memset): Same. + +2021-03-08 Peter Bergner + + PR target/98959 + * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert + to ensure we do not have an Altivec style address. + * config/rs6000/vsx.md (*vsx_le_perm_load_): Disable if passed + an Altivec style address. + (*vsx_le_perm_store_): Likewise. + (splitters after *vsx_le_perm_store_): Likewise. + (vsx_load_): Disable special expander if passed an Altivec + style address. + (vsx_store_): Likewise. + +2021-03-08 Kyrylo Tkachov + + PR target/99437 + * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define. + (aarch64_simd_shift_imm_vec_hi): Likewise. + (aarch64_simd_shift_imm_vec_si): Likewise. + (aarch64_simd_shift_imm_vec_di): Likewise. + * config/aarch64/aarch64-simd.md (aarch64_shrn_insn_le): Use + predicate from above. + (aarch64_shrn_insn_be): Likewise. + (aarch64_rshrn_insn_le): Likewise. + (aarch64_rshrn_insn_be): Likewise. + (aarch64_shrn2_insn_le): Likewise. + (aarch64_shrn2_insn_be): Likewise. + (aarch64_rshrn2_insn_le): Likewise. + (aarch64_rshrn2_insn_be): Likewise. + +2021-03-08 Vladimir N. Makarov + + PR target/99422 + * lra-constraints.c (skip_contraint_modifiers): New function. + (process_address_1): Use it before lookup_constraint call. + +2021-03-08 Martin Liska + + PR target/99463 + * config/i386/i386-options.c (ix86_option_override_internal): + Enable UINTR and HRESET for -march that supports it. + +2021-03-08 Ilya Leoshkevich + + * config/s390/s390.c (f_constraint_p): New function. + (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST. + (TARGET_MD_ASM_ADJUST): Likewise. + +2021-03-08 Tobias Burnus + + PR fortran/97927 + * tree-nested.c (convert_local_reference_stmt): Avoid calling + lookup_field_for_decl for Fortran module (= namespace context). + +2021-03-08 Andreas Krebbel + + * config/s390/s390.c (s390_expand_vec_compare): Implement <0 + comparison with arithmetic right shift. + (s390_expand_vcond): No need for a force_reg anymore. + s390_vec_compare will do it. + * config/s390/vector.md ("vec_cmp"): Accept also + immediate operands. + +2021-03-07 Jakub Jelinek + + PR target/99321 + * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE + but TARGET_AVX512BW or TARGET_AVX512VL is not set. Adjust description + and comment. + * config/i386/sse.md (v_Yw): New define_mode_attr. + (*3, *mul3, *avx2_3, + *sse4_1_3): Use instead of v + in constraints. + * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of + xYw in constraints. + +2021-03-06 Julian Brown + + * tree-pretty-print.c (dump_generic_node): Emit non-generic + address space info for aggregates. + +2021-03-06 Hans-Peter Nilsson + + * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define. + +2021-03-05 Jakub Jelinek + + PR middle-end/99322 + * tree-cfg.c (bb_to_omp_idx): New variable. + (execute_build_cfg): Release the bb_to_omp_idx vector after + cleanup_tree_cfg returns. + (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust + for bb_to_omp_idx being a vec instead of pointer to array + of ints. + (make_edges): Remove bb_to_omp_idx local variable, don't pass + it to handle_abnormal_edges, adjust for bb_to_omp_idx being a + vec instead of pointer to array of ints and don't free/release + it at the end. + (remove_bb): When removing a bb and placing forced label somewhere + else, ensure it is put into the same OpenMP region during cfg + pass if possible or to entry successor as fallback. Unregister + bb from bb_to_omp_idx. + +2021-03-05 Vladimir N. Makarov + + PR target/99378 + * lra-constraints.c (process_address_1): Skip decomposing address + for asm insn operand with unknown constraint. + +2021-03-05 Martin Jambor + + PR ipa/98078 + * cgraph.c (cgraph_edge::set_call_stmt): Do not update all + corresponding speculative edges if we are about to resolve + sepculation. Make edge direct (and so resolve speculations) before + removing it from call_site_hash. + (cgraph_edge::make_direct): Relax the initial assert to allow calling + the function on speculative direct edges. + +2021-03-05 Eric Botcazou + + PR rtl-optimization/99376 + * rtlanal.c (nonzero_bits1) : If the number + of low-order zero bits is too large, set the result to 0 directly. + +2021-03-04 Jakub Jelinek + + PR middle-end/93235 + * expmed.c (store_bit_field_using_insv): Return false of xop0 is a + SUBREG and a SUBREG to op_mode can't be created. + +2021-03-04 Alex Coplan + + PR target/99381 + * config/aarch64/aarch64-sve-builtins.cc + (function_resolver::require_vector_type): Handle error_mark_node. + +2021-03-04 Ilya Leoshkevich + + * cfgexpand.c (expand_asm_loc): Pass new parameter. + (expand_asm_stmt): Likewise. + * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new + parameter. + * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise. + * config/arm/arm.c (thumb1_md_asm_adjust): Likewise. + * config/cris/cris.c (cris_md_asm_adjust): Likewise. + * config/i386/i386.c (ix86_md_asm_adjust): Likewise. + * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise. + * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise. + * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise. + * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise. + * config/vax/vax.c (vax_md_asm_adjust): Likewise. + * config/visium/visium.c (visium_md_asm_adjust): Likewise. + * doc/tm.texi (md_asm_adjust): Likewise. + * target.def (md_asm_adjust): Likewise. + +2021-03-04 Richard Biener + + PR middle-end/97855 + * tree-pretty-print.c: Poison pp_printf. + (dump_decl_name): Avoid use of pp_printf. + (dump_block_node): Likewise. + (dump_generic_node): Likewise. + +2021-03-04 Martin Sebor + + PR middle-end/96963 + PR middle-end/94655 + * builtins.c (handle_array_ref): New helper. + (handle_mem_ref): New helper. + (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling + into new helper functions. Correct a workaround for vectorized + assignments. + +2021-03-03 Pat Haugen + + * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp_internal1, + floatditd2, ftrunc2, fixdi2, dfp_ddedpd_, + dfp_denbcd_, dfp_dxex_, dfp_diex_, + *dfp_sgnfcnc_, dfp_dscli_, dfp_dscri_): Update size + attribute for Power10. + * config/rs6000/mma.md (*movoo): Likewise. + * config/rs6000/rs6000.md (define_attr "size"): Add 256. + (define_mode_attr bits): Add DD/TD modes. + * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti, + store_conditionalpti): Update size attribute for Power10. + +2021-03-03 Rainer Orth + + PR bootstrap/92002 + * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for + -Wuninitialized, -Wmaybe-uninitialized. + (wide-int.o-warn): Likewise. + +2021-03-03 Richard Earnshaw + + * common/config/arm/arm-common.c: Include configargs.h. + (arm_config_default): New function. + (arm_target_mode): Renamed from arm_target_thumb_only. Handle + processors that do not support Thumb. Take into account the + --with-mode configuration setting for selecting the default. + * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'. + (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change. + +2021-03-03 Martin Liska + + PR gcov-profile/97461 + * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove. + +2021-03-03 Eric Botcazou + + PR target/99234 + * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, + point back the hard frame pointer to its default location when the + frame is larger than SEH_MAX_FRAME_SIZE. + +2021-03-03 Jakub Jelinek + + PR target/99321 + * config/i386/predicates.md (logic_operator): New define_predicate. + * config/i386/i386.md (mov + mem using comm arith peephole2): + Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled + and the inner mode is [QH]Imode. + +2021-03-03 Jakub Jelinek + + PR debug/99090 + * dwarf2out.c (dw_loc_list_struct): Add end_entry member. + (new_loc_list): Clear end_entry. + (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf + if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx. Fix comment + typo. + (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128, + initialize also end_entry. + +2021-03-03 Jakub Jelinek + + PR target/99085 + * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold + partitions, if in non-layout mode after reorder_blocks also move + affected blocks to ensure a single partition transition. + +2021-03-03 Jason Merrill + + PR c++/96078 + * cgraphunit.c (process_function_and_variable_attributes): Don't + warn about flatten on an alias if the target also has it. + * cgraph.h (symtab_node::get_alias_target_tree): New. + +2021-03-02 David Edelsohn + + * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend + period to symbol name. + (tls_get_addr_internal): Same. + +2021-03-02 David Malcolm + + PR c/99323 + * diagnostic-show-locus.c + (selftest::test_one_liner_many_fixits_2): Fix accidental usage of + column 0. + +2021-03-02 Martin Sebor + + PR middle-end/99276 + * builtins.c (warn_for_access): Remove stray warning text. + +2021-03-02 Martin Sebor + + PR middle-end/99295 + * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing + property. + +2021-03-02 Jakub Jelinek + + PR debug/99319 + * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with + -gdwarf-5 -gstrict-dwarf. For -gsplit-dwarf -gdwarf-5 use + DW_MACRO_*_strx instead of DW_MACRO_*_strp. Handle + DW_MACRO_define_strx and DW_MACRO_undef_strx. + (save_macinfo_strings): Use DW_MACRO_*_str* even with + -gdwarf-5 -gstrict-dwarf. Handle DW_MACRO_define_strx and + DW_MACRO_undef_strx. + +2021-03-02 Andreas Krebbel + + * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New + builtin signature. + (BT_FN_V8HI_V8HI_UINT): Likewise. + (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise. + * config/s390/s390-builtins.def (B_NNPA): New macro definition. + (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf): + New builtin definitions. + * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump + vector extension version. + * config/s390/s390.c (s390_expand_builtin): Check if builtins are + available with current -march level. + * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI) + (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI) + (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants. + * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro. + (vec_extend_to_fp32_lo): Likewise. + (vec_round_from_fp32): Likewise. + (vec_convert_to_fp16): Likewise. + (vec_convert_from_fp16): Likewise. + * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern. + (vclfnls_v8hi): Likewise. + (vcrnfs_v8hi): Likewise. + (vcfn_v8hi): Likewise. + (vcnf_v8hi): Likewise. + +2021-03-02 Andreas Krebbel + + * common/config/s390/s390-common.c (processor_flags_table): New entry. + * config.gcc: Enable arch14 for --with-arch and --with-tune. + * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick + arch14 for unknown CPU models. + * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14. + * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14. + (s390_get_sched_attrmask): Likewise. + (s390_get_unit_mask): Likewise. + * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14. + (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA) + (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA) + (TARGET_NNPA_P): New macro definitions. + * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa. + * config/s390/s390.opt: Add PROCESSOR_ARCH14. + +2021-03-02 Jakub Jelinek + + PR middle-end/95757 + * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around + condition. Call register_edge_assert_for_1 for == 0, != 0, == 1 and + != 1 comparisons if name is lhs of a comparison. + +2021-03-01 Iain Sandoe + + PR target/44107 + PR target/48097 + * config/darwin-protos.h (darwin_should_restore_cfa_state): New. + * config/darwin.c (darwin_should_restore_cfa_state): New. + * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New. + * doc/tm.texi: Regenerated. + * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE. + * dwarf2cfi.c (connect_traces): If the target requests, restore + the CFA expression after a DW_CFA_restore. + * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook. + +2021-03-01 Martin Liska + + PR target/99313 + * optc-save-gen.awk: Add 4 more exceptions. + +2021-03-01 Nathan Sidwell + + PR c++/99294 + * tree.h (TYPE_ALIGN_RAW): New accessor. + (TYPE_ALIGN): Use it. + +2021-03-01 Jan Hubicka + + PR ipa/98338 + * ipa-fnsummary.c (compute_fn_summary): Fix sanity check. + +2021-03-01 Eric Botcazou + + PR target/99234 + * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, + point the hard frame pointer to the SSE register save area instead + of the general register save area. Perform only minimal adjustment + for small frames if it is initially not correctly aligned. + (ix86_expand_prologue): Remove early saves for a SEH target. + * config/i386/winnt.c (struct seh_frame_state): Document constraint. + +2021-02-28 Jakub Jelinek + + PR c/99304 + * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment + typo - referneced -> referenced. + * tree.c (component_ref_size): Fix comment typo - + refernce -> reference. + * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo - + traling -> trailing. + (aliasing_component_refs_p): Fix comment typos - + refernce -> reference and refernece -> reference and + traling -> trailing. + (nonoverlapping_refs_since_match_p): Fix comment typo - + referneces -> references. + * doc/invoke.texi (--param modref-max-bases): Fix a typo - + referneces -> references. + +2021-02-27 Iain Sandoe + + * config/host-darwin.c (darwin_gt_pch_use_address): Modify + diagnostic message to avoid use of a contraction and format + warning. + +2021-02-27 Jakub Jelinek + + PR other/99288 + * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of + HOST_WIDE_INT_PRINT_UNSIGNED in warning format string. + * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of + HOST_WIDE_INT_PRINT_DEC in inform format string. Fix comment + typos. + +2021-02-26 Richard Biener + + PR middle-end/99281 + * expr.c (store_field): For calls with return-slot optimization + and addressable return type expand the store directly. + +2021-02-26 Richard Biener + + PR c/99275 + * builtins.c (warn_string_no_nul): Fix diagnostic formatting. + +2021-02-26 Peter Bergner + + PR target/99279 + * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert + with an "if" test. + +2021-02-26 Aaron Sawdey + + * config.gcc: Add rs6000-pcrel-opt.o. + * config/rs6000/rs6000-pcrel-opt.c: New file. + * config/rs6000/pcrel-opt.md: New file. + * config/rs6000/predicates.md: Add d_form_memory predicate. + * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT. + * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt. + * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(), + pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(), + and make_pass_pcrel_opt(). + * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global. + (rs6000_option_override_internal): Add pcrel-opt. + (rs6000_delegitimize_address): Support pcrel-opt. + (rs6000_opt_masks): Add pcrel-opt. + (pcrel_opt_valid_mem_p): New function. + (reg_to_non_prefixed): Make global. + (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn. + (output_pcrel_opt_reloc): New function. + * config/rs6000/rs6000.md (loads_extern_addr): New attr. + (pcrel_extern_addr): Set loads_extern_addr. + Add include for pcrel-opt.md. + * config/rs6000/rs6000.opt: Add -mpcrel-opt. + * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and + pcrel-opt.md. + +2021-02-26 YunQiang Su + + PR target/98996 + * config/mips/mips.c (mips_expand_ext_as_unaligned_load): + If TARGET_64BIT and dest is SUBREG, we check the width, if it + equal to SImode, we use SImode operation, just like what we are + doing for REG one. + +2021-02-26 Marek Polacek + + * builtins.c (warn_for_access): Fix typos. + +2021-02-25 Iain Sandoe + + * config/aarch64/aarch64.md (_rol3): Add a '#' + mark in front of the immediate quantity. + (_rolsi3_uxtw): Likewise. + +2021-02-25 Richard Earnshaw + + PR target/99271 + * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern. + (nonsecure_call_value_reg_thumb2_fpcxt): Likewise. + (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee + address and disable when the FPCXT is not available. + (nonsecure_call_value_reg_thumb2): Likewise. + +2021-02-25 Nathan Sidwell + + PR c++/99166 + * doc/invoke.texi (flang-info-module-cmi): Renamed option. + +2021-02-25 Tamar Christina + + * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes. + +2021-02-25 Richard Biener + + PR tree-optimization/99253 + * tree-vect-loop.c (check_reduction_path): First compute + code, then verify out-of-loop uses. + +2021-02-25 Jakub Jelinek + + PR target/95798 + * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert. + +2021-02-25 Jakub Jelinek + + PR tree-optimization/80635 + * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle + VIEW_CONVERT_EXPR if modes are the same, innerop is integral and + has mode precision. + +2021-02-25 Richard Biener + + * tree-vect-slp.c (optimize_load_redistribution_1): Delay + load_map population. + (vect_match_slp_patterns_2): Revert part of last change. + (vect_analyze_slp): Do not interleave optimize_load_redistribution + with pattern detection but do it afterwards. Dump the + whole SLP graph after pattern recognition and load + redistribution optimization finished. + +2021-02-24 Jakub Jelinek + + PR fortran/99226 + * omp-low.c (struct omp_context): Add teams_nested_p and + nonteams_nested_p members. + (scan_omp_target): Diagnose teams nested inside of target with other + directives strictly nested inside of the same target. + (check_omp_nesting_restrictions): Set ctx->teams_nested_p or + ctx->nonteams_nested_p as needed. + +2021-02-24 Vladimir N. Makarov + + PR inline-asm/99123 + * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address. + +2021-02-24 Hans-Peter Nilsson + + * config/cris/cris.c (cris_expand_prologue): Set + current_function_static_stack_size, if flag_stack_usage_info. + +2021-02-24 Pat Haugen + + * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename. + (rs6000_final_prescan_insn): Adjust. + (rs6000_asm_output_opcode): Likewise. + +2021-02-24 Martin Sebor + + PR middle-end/97172 + * attribs.c (attr_access::free_lang_data): Clear attribute arg spec + from function arguments. + +2021-02-24 Tamar Christina + + PR tree-optimization/99220 + * tree-vect-slp.c (optimize_load_redistribution_1): Remove + node from cache when it's about to be deleted. + +2021-02-24 Jakub Jelinek + + PR tree-optimization/99225 + * fold-const.c (fold_binary_loc) : In (x & (1 << y)) != 0 + to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of + build_int_cst (..., 1). Formatting fixes. + +2021-02-24 Tamar Christina + + PR tree-optimization/99149 + * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the + buffer. + (vect_slp_reset_pattern): Remove. + (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern. + (complex_mul_pattern::build, complex_fma_pattern::build, + complex_fms_pattern::build): Fix ref counts. + * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy + when node is being deleted. + (vect_match_slp_patterns_2): Correct result of cache hit on patterns. + (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed + stores. + * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value. + +2021-02-24 Matthias Klose + + Revert: + 2020-12-07 Matthias Klose + + * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING + and ENABLE_RTL_FLAG_CHECKING. + +2021-02-24 Richard Biener + + PR c/99224 + * builtins.c (fold_builtin_next_arg): Avoid NULL arg. + +2021-02-23 Peter Bergner + + * config/rs6000/mma.md (mma_assemble_pair): Rename from this... + (vsx_assemble_pair): ...to this. + (*mma_assemble_pair): Rename from this... + (*vsx_assemble_pair): ...to this. + (mma_disassemble_pair): Rename from this... + (vsx_disassemble_pair): ...to this. + (*mma_disassemble_pair): Rename from this... + (*vsx_disassemble_pair): ...to this. + * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3, + BU_COMPAT): New macros. + (mma_assemble_pair): Rename from this... + (vsx_assemble_pair): ...to this. + (mma_disassemble_pair): Rename from this... + (vsx_disassemble_pair): ...to this. + (mma_assemble_pair): New compatibility built-in. + (mma_disassemble_pair): Likewise. + * config/rs6000/rs6000-call.c (struct builtin_compatibility): New. + (RS6000_BUILTIN_COMPAT): Define. + (bdesc_compat): New. + (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL. + (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR + and VSX_BUILTIN_ASSEMBLE_PAIR. + (rs6000_init_builtins): Register compatibility built-ins. + (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR, + VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and + VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL. + * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this... + (__builtin_vsx_assemble_pair): ...to this. + (__builtin_mma_disassemble_pair): Rename from this... + (__builtin_vsx_disassemble_pair): ...to this. + +2021-02-23 Martin Liska + + PR sanitizer/99168 + * ipa-icf.c (sem_variable::merge): Do not merge 2 variables + with different alignment. That leads to an invalid red zone + size allocated in runtime. + +2021-02-23 Jakub Jelinek + + PR tree-optimization/99204 + * fold-const.c (fold_read_from_constant_string): Check that + tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST. + +2021-02-23 Segher Boessenkool + Kewen Lin + + * config/rs6000/rs6000.md (*rotl3_insert_3): Renamed to... + (rotl3_insert_3): ...this. + (plus_ior_xor): New code_iterator. + (define_split for GPR rl*imi): New splitter. + * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3 + for integer merging. + +2021-02-22 Kyrylo Tkachov + + * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants): + Define. + * config/aarch64/aarch64.md (add3): Force CONST_POLY_INT immediates + into a register when the above is enabled. + * config/aarch64/aarch64.c (neoversev1_tunings): + AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS. + (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS. + +2021-02-22 Hans-Peter Nilsson + + * config/cris/cris.c (cris_print_operand) <'T'>: Change + valid operand from is now an addi mult-value to shift-value. + * config/cris/cris.md (*addi): Change expression of scaled + operand from mult to ashift. + * config/cris/cris.md (*addi_reload): New insn_and_split. + +2021-02-22 John David Anglin + + PR target/85074 + * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as + hook_bool_const_tree_hwi_hwi_const_tree_true. + (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset. + +2021-02-22 Andre Vieira + + PR rtl-optimization/98791 + * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies + for unordered modes. + +2021-02-22 Martin Liska + + * tree-inline.c (inline_forbidden_p): Set + inline_forbidden_reason. + +2021-02-22 Richard Biener + + * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump + costed subgraph. + +2021-02-22 Richard Biener + + PR tree-optimization/99165 + * gimple-ssa-store-merging.c (pass_store_merging::process_store): + Accumulate changed to ret. + +2021-02-21 Uros Bizjak + + Revert: + 2020-12-09 Uroš Bizjak + + * config/i386/i386.h (REG_ALLOC_ORDER): Remove + +2021-02-20 Ilya Leoshkevich + + PR target/99134 + * config/s390/vector.md (trunctf2_vr): New + pattern. + (trunctf2): Likewise. + (trunctdtf2_vr): Likewise. + (trunctdtf2): Likewise. + (extendtf2_vr): Likewise. + (extendtf2): Likewise. + (extendtftd2_vr): Likewise. + (extendtftd2): Likewise. + +2021-02-20 Ilya Leoshkevich + + * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf, + add memory alternative. + (tf_to_fprx2): New pattern. + +2021-02-19 Martin Sebor + + PR c/97172 + * attribs.c (init_attr_rdwr_indices): Guard vblist use. + (attr_access::free_lang_data): Remove a spurious test. + +2021-02-19 Nathan Sidwell + + * doc/invoke.texi (flang-info-module-read): Document. + +2021-02-19 Martin Liska + + PR translation/99167 + * params.opt: Fix typo. + +2021-02-19 Richard Biener + + PR middle-end/99122 + * tree-inline.c (inline_forbidden_p): Do not inline functions + with VLA arguments or return value. + +2021-02-19 Jakub Jelinek + + PR target/98998 + * config/arm/arm.md (*stack_protect_combined_set_insn, + *stack_protect_combined_test_insn): If force_const_mem result + is not valid general operand, force its address into the destination + register first. + +2021-02-19 Jakub Jelinek + + PR ipa/99034 + * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing + pad or non-local label, put FORCED_LABELs from bb b after that label + rather than before it. + +2021-02-19 Andre Vieira + + PR target/98657 + * config/aarch64/aarch64-sve.md (3): Use + expand_vector_broadcast' to emit the vec_duplicate operand. + +2021-02-18 Vladimir N. Makarov + + PR rtl-optimization/96264 + * lra-remat.c (reg_overlap_for_remat_p): Check also output insn + hard regs. + +2021-02-18 H.J. Lu + + PR target/99113 + * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with + looking up the retain attribute. + (resolve_unique_section): Likewise. + (get_variable_section): Likewise. + (switch_to_section): Likewise. Warn when a symbol without the + retain attribute and a symbol with the retain attribute are + placed in the section with the same name, instead of the used + attribute. + * doc/extend.texi: Document the "retain" attribute. + +2021-02-18 Nathan Sidwell + + PR c++/99023 + * doc/invoke.texi (flang-info-include-translate): Document header + lookup behaviour. + +2021-02-18 Richard Biener + + PR middle-end/99122 + * ipa-fnsummary.c (analyze_function_body): Set + CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls. + * tree-inline.c (insert_init_debug_bind): Pass NULL for + error_mark_node values. + (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR + values. + (setup_one_parameter): Delay force_value_to_type until when + it's needed. + +2021-02-18 Hans-Peter Nilsson + + PR tree-optimization/99142 + * match.pd (clz cmp 0): Gate replacement on single_use of clz result. + +2021-02-18 Jakub Jelinek + + * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (), + wide_int_bitmask::wide_int_bitmask (uint64_t), + wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t), + wide_int_bitmask::operator ~ () const, + wide_int_bitmask::operator | (wide_int_bitmask) const, + wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr + instead of inline. + * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM, + PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4, + PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF, + PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2, + PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM, + PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED, + PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER, + PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1, + PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW, + PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX, + PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS, + PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, + PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID, + PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE, + PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD, + PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8, + PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI, + PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4, + PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE, + PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512, + PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT, + PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE, + PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS, + PTA_TREMONT, PTA_KNM): Use constexpr instead of const. + +2021-02-18 Jakub Jelinek + + PR middle-end/99109 + * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ... + (build_printable_array_type): ... this. Add nelts argument. For + overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead. If + nelts, call build_array_type_nelts. + (array_bounds_checker::check_mem_ref): Use build_printable_array_type + instead of build_zero_elt_array_type and build_array_type_nelts. + +2021-02-18 Jakub Jelinek + + PR target/99104 + * config/i386/i386.c (distance_non_agu_define): Don't call + extract_insn_cached here. + (ix86_lea_outperforms): Save and restore recog_data around call + to distance_non_agu_define and distance_agu_use. + (ix86_ok_to_clobber_flags): Remove. + (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags. + (ix86_avoid_lea_for_addr): Likewise. Adjust function comment. + * config/i386/i386.md (*lea): Change from define_insn_and_split + into define_insn. Move the splitting to define_peephole2 and + check there using peep2_regno_dead_p if FLAGS_REG is dead. + +2021-02-17 Julian Brown + + * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH + for non-decls. + +2021-02-17 Xi Ruoyao + + PR target/98491 + * config/mips/mips.c (mips_symbol_insns): Do not use + MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE. + +2021-02-16 Vladimir N. Makarov + + PR inline-asm/98096 + * stmt.c (resolve_operand_name_1): Take inout operands into account + for access to labels by names. + * doc/extend.texi: Describe counting operands for accessing labels. + +2021-02-16 Richard Biener + + PR tree-optimization/38474 + * tree-ssa-structalias.c (variable_info::address_taken): New. + (new_var_info): Initialize address_taken. + (process_constraint): Set address_taken. + (solve_constraints): Use the new address_taken flag rather + than is_reg_var for sorting variables. + (dump_constraint): Dump the variable number if the name + is just NULL. + +2021-02-16 Jakub Jelinek + + PR target/99100 + * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1 + multiply by 4096 and for inbranch by 8192. + * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F, + return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'. + +2021-02-15 Maya Rashish + + * config/aarch64/aarch64.c (aarch64_init_builtins): + Call SUBTARGET_INIT_BUILTINS. + +2021-02-15 Peter Bergner + + PR rtl-optimization/98872 + * init-regs.c (initialize_uninitialized_regs): Skip initialization + if CONST0_RTX is NULL. + +2021-02-15 Richard Sandiford + + PR rtl-optimization/98863 + * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete. + (function_info::build_info): Turn into a declaration, moving the + definition to internals.h. + (function_info::bb_walker): Declare. + (function_info::create_reg_use): Likewise. + (function_info::calculate_potential_phi_regs): Take a build_info + parameter. + (function_info::place_phis, function_info::create_ebbs): Declare. + (function_info::calculate_ebb_live_in_for_debug): Likewise. + (function_info::populate_backedge_phis): Delete. + (function_info::start_block, function_info::end_block): Declare. + (function_info::populate_phi_inputs): Delete. + (function_info::m_potential_phi_regs): Move information to build_info. + * rtl-ssa/internals.h: New file. + (function_info::bb_phi_info): New class. + (function_info::build_info): Moved from functions.h. + Add a constructor and destructor. + (function_info::build_info::ebb_use): Delete. + (function_info::build_info::ebb_def): Likewise. + (function_info::build_info::bb_live_out): Likewise. + (function_info::build_info::tmp_ebb_live_in_for_debug): New variable. + (function_info::build_info::potential_phi_regs): Likewise. + (function_info::build_info::potential_phi_regs_for_debug): Likewise. + (function_info::build_info::ebb_def_regs): Likewise. + (function_info::build_info::bb_phis): Likewise. + (function_info::build_info::bb_mem_live_out): Likewise. + (function_info::build_info::bb_to_rpo): Likewise. + (function_info::build_info::def_stack): Likewise. + (function_info::build_info::old_def_stack_limit): Likewise. + * rtl-ssa/internals.inl (function_info::build_info::record_reg_def): + Remove the regno argument. Push the previous definition onto the + definition stack where necessary. + * rtl-ssa/accesses.cc: Include internals.h. + * rtl-ssa/changes.cc: Likewise. + * rtl-ssa/blocks.cc: Likewise. + (function_info::build_info::build_info): Define. + (function_info::build_info::~build_info): Likewise. + (function_info::bb_walker): New class. + (function_info::bb_walker::bb_walker): Define. + (function_info::add_live_out_use): Convert a logarithmic-complexity + test into a linear one. Allow the same definition to be passed + multiple times. + (function_info::calculate_potential_phi_regs): Moved from + functions.cc. Take a build_info parameter and store the + information there instead. + (function_info::place_phis): New function. + (function_info::add_entry_block_defs): Update call to record_reg_def. + (function_info::calculate_ebb_live_in_for_debug): New function. + (function_info::add_phi_nodes): Use bb_phis to decide which + registers need phi nodes and initialize ebb_def_regs accordingly. + Do not add degenerate phis here. + (function_info::add_artificial_accesses): Use create_reg_use. + Assert that all definitions are listed in the DF LR sets. + Update call to record_reg_def. + (function_info::record_block_live_out): Record live-out register + values in the phis of successor blocks. Use the live-out set + when processing the last block in an EBB, instead of always + using the live-in sets of successor blocks. AND the live sets + with the set of registers that have been defined in the EBB, + rather than with all potential phi registers. Cope correctly + with branches back to the start of the current EBB. + (function_info::start_block): New function. + (function_info::end_block): Likewise. + (function_info::populate_phi_inputs): Likewise. + (function_info::create_ebbs): Likewise. + (function_info::process_all_blocks): Rewrite into a multi-phase + process. + * rtl-ssa/functions.cc: Include internals.h. + (function_info::calculate_potential_phi_regs): Move to blocks.cc. + (function_info::init_function_data): Remove caller. + * rtl-ssa/insns.cc: Include internals.h + (function_info::create_reg_use): New function. Lazily any + degenerate phis needed by the linear RPO view. + (function_info::record_use): Use create_reg_use. When processing + debug uses, use potential_phi_regs and test it before checking + whether the register is live on entry to the current EBB. Lazily + calculate ebb_live_in_for_debug. + (function_info::record_call_clobbers): Update call to record_reg_def. + (function_info::record_def): Likewise. + +2021-02-15 Martin Liska + + * toplev.c (init_asm_output): Free output of + gen_command_line_string function. + (process_options): Likewise. + +2021-02-15 Martin Liska + + * params.opt: Add 2 missing Param keywords. + +2021-02-15 Eric Botcazou + + * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast. + +2021-02-15 Jakub Jelinek + + PR tree-optimization/99079 + * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove + useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check. Instead + require both type and TREE_TYPE (@1) to be integral types and either + type having smaller or equal precision, or TREE_TYPE (@1) being + unsigned type, or type being signed type. If TREE_TYPE (@1) + doesn't have wrapping overflow, perform the subtraction of one in + unsigned type. + +2021-02-14 Jan Hubicka + Richard Biener + + PR ipa/97346 + * ipa-reference.c (ipa_init): Only conditinally initialize + reference_vars_to_consider. + (propagate): Conditionally deninitialize reference_vars_to_consider. + (ipa_reference_write_optimization_summary): Sanity check that + reference_vars_to_consider is not allocated. + +2021-02-13 Levy Hsu + + PR target/97417 + * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add + extend parameter to get_si_mem_base_reg declaration. + (get_si_mem_base_reg): Add extend parameter. Set it. + (analyze): Pass extend arg to get_si_mem_base_reg. + (transform): Likewise. Use it when rewriting mems. + * config/riscv/riscv.c (riscv_legitimize_move): Check for subword + loads and emit sign/zero extending load followed by subreg move. + +2021-02-13 Jim Wilson + + PR target/97417 + * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early + exit when !reload_completed. Only perform check for compressed reg + if reload_completed. + (riscv_rtx_costs): In MEM case, when optimizing for size and + shorten memrefs, if not compressible, then increase cost. + +2021-02-13 Jakub Jelinek + + PR rtl-optimization/98439 + * recog.c (pass_split_before_regstack::gate): Enable even when + pass_split_before_sched2 is enabled if -fselective-scheduling2 is + on. + +2021-02-13 Jakub Jelinek + + PR target/96166 + * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for + swap of V2SImode elements in memory into DImode memory rotate by 32. + +2021-02-12 Martin Sebor + + * tree-pretty-print.c (print_generic_expr_to_str): Update comment. + +2021-02-12 Richard Sandiford + + * rtl-ssa/accesses.cc (function_info::make_use_available): Use + m_temp_obstack rather than m_obstack to allocate the temporary use. + +2021-02-12 Richard Sandiford + + * df-problems.c (df_lr_bb_local_compute): Treat partial definitions + as read-modify operations. + +2021-02-12 Richard Biener + + PR middle-end/38474 + * ipa-fnsummary.c (unmodified_parm_1): Only walk when + fbi->aa_walk_budget is bigger than zero. Update + fbi->aa_walk_budget. + (param_change_prob): Likewise. + * ipa-prop.c (detect_type_change_from_memory_writes): + Properly account walk_aliased_vdefs. + (parm_preserved_before_stmt_p): Canonicalize updates. + (parm_ref_data_preserved_p): Likewise. + (parm_ref_data_pass_through_p): Likewise. + (determine_known_aggregate_parts): Account own alias queries. + +2021-02-12 Martin Liska + + * opts-common.c (decode_cmdline_option): Release werror_arg. + * opts.c (gen_producer_string): Release output of + gen_command_line_string. + +2021-02-12 Richard Biener + + PR tree-optimization/38474 + * params.opt (-param=max-store-chains-to-track=): New param. + (-param=max-stores-to-track=): Likewise. + * doc/invoke.texi (max-store-chains-to-track): Document. + (max-stores-to-track): Likewise. + * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains): + New. + (pass_store_merging::m_n_stores): Likewise. + (pass_store_merging::terminate_and_process_chain): Update + m_n_stores and m_n_chains. + (pass_store_merging::process_store): Likewise. Terminate + oldest chains if the number of stores or chains get too large. + (imm_store_chain_info::terminate_and_process_chain): Dump + chain length. + +2021-02-11 Eric Botcazou + + * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to + the cold section, emit a nop before the directive if the previous + active instruction can throw. + +2021-02-11 Peter Bergner + + PR target/99041 + * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict + memory addresses that are legal for quad word accesses. + +2021-02-11 Andrea Corallo + + PR target/98931 + * config/arm/thumb2.md (*doloop_end_internal): Generate + alternative sequence to handle long range branches. + +2021-02-11 Joel Hutton + + PR tree-optimization/98772 + * optabs-tree.c (supportable_half_widening_operation): New function + to check for supportable V8QI->V8HI widening patterns. + * optabs-tree.h (supportable_half_widening_operation): New function. + * tree-vect-stmts.c (vect_create_half_widening_stmts): New function + to create promotion stmts for V8QI->V8HI widening patterns. + (vectorizable_conversion): Add case for V8QI->V8HI. + +2021-02-11 Richard Biener + + * sparseset.h (SPARSESET_ELT_BITS): Remove. + (SPARSESET_ELT_TYPE): Use unsigned int. + * fwprop.c: Do not include sparseset.h. + +2021-02-10 Jakub Jelinek + + PR c++/99035 + * varasm.c (declare_weak): For -fsyntax-only, allow even + TREE_ASM_WRITTEN function decls. + +2021-02-10 Jakub Jelinek + + PR target/99025 + * config/i386/sse.md (fix_truncv2sfv2di2, + v8qiv8hi2, v8qiv8si2, v4qiv4si2, v4hiv4si2, + v8qiv8di2, v4qiv4di2, v2qiv2di2, v4hiv4di2, + v2hiv2di2, v2siv2di2): Force operands[1] into REG before + calling simplify_gen_subreg on it. + +2021-02-10 Martin Liska + + * config/nvptx/nvptx.c (nvptx_option_override): Use + flag_patchable_function_entry instead of the removed + function_entry_patch_area_size. + +2021-02-10 Martin Liska + + PR tree-optimization/99002 + PR tree-optimization/99026 + * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory + leak when adjacent cases are merged. + * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use + release_clusters. + (make_pass_lower_switch): Remove trailing whitespace. + * tree-switch-conversion.h (release_clusters): New. + +2021-02-10 Richard Biener + + PR rtl-optimization/99054 + * cfgrtl.c (rtl-optimization/99054): Return an auto_vec. + (fixup_partitions): Adjust. + (rtl_verify_edges): Likewise. + +2021-02-10 Jakub Jelinek + + PR middle-end/99007 + * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions, + temporarily disable gimplify_ctxp->into_ssa around gimplify_expr + calls. + +2021-02-10 Richard Biener + + PR ipa/99029 + * ipa-pure-const.c (propagate_malloc): Use an auto_vec<> + for callees. + +2021-02-10 Richard Biener + + PR tree-optimization/99024 + * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only + clear loop->aux if it is associated with the destroyed loop_vinfo. + +2021-02-10 Martin Liska + + PR tree-optimization/99002 + * gimple-if-to-switch.cc (find_conditions): Fix memory leak + in the function. + +2021-02-10 Martin Liska + + PR ipa/99003 + * ipa-icf.c (sem_item::add_reference): Fix memory leak when + a reference exists. + +2021-02-10 Jakub Jelinek + + PR debug/98755 + * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs + at class scope for DWARF5+. + +2021-02-09 Eric Botcazou + + PR rtl-optimization/96015 + * reorg.c (skip_consecutive_labels): Minor comment tweaks. + (relax_delay_slots): When deleting a jump to the next active + instruction over a barrier, first delete the barrier if the + jump is the only way to reach the target label. + +2021-02-09 Andre Vieira + + * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul. + * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for + vector multiplies and vect.alu for SSRA. + * config/arm/aarch-common-protos.h (struct vector_cost_table): Define + vect.mul cost field. + * config/arm/aarch-cost-tables.h: Add entries for vect.mul. + * config/arm/arm.c: Likewise. + +2021-02-09 Richard Biener + + PR tree-optimization/98863 + * tree-ssa-sccvn.h (vn_avail::next_undo): Add. + * tree-ssa-sccvn.c (last_pushed_avail): New global. + (rpo_elim::eliminate_push_avail): Chain pushed avails. + (unwind_state::avail_top): Add. + (do_unwind): Rewrite unwinding of avail entries. + (do_rpo_vn): Initialize last_pushed_avail and + avail_top of the undo state. + +2021-02-09 Jakub Jelinek + + PR middle-end/99004 + * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from + const char * to char * and free those pointers after use. + +2021-02-09 Richard Biener + + PR tree-optimization/99017 + * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow + zero vector cost entries. + +2021-02-08 Andre Vieira + + PR middle-end/98974 + * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num + parameter in vectorizable_condition. + +2021-02-08 Richard Biener + + PR lto/96591 + * tree.c (walk_tree_1): Walk VECTOR_CST elements. + +2021-02-08 Martin Liska + + PR lto/98971 + * cfgexpand.c (pass_expand::execute): Parse per-function option + flag_patchable_function_entry and use it. + * common.opt: Remove function_entry_patch_area_size and + function_entry_patch_area_start global variables. + * opts.c (parse_and_check_patch_area): New function. + (common_handle_option): Use it. + * opts.h (parse_and_check_patch_area): New function. + * toplev.c (process_options): Parse and use + function_entry_patch_area_size. + +2021-02-08 Martin Sebor + + * doc/extend.texi (attribute malloc): Correct typos. + +2021-02-05 Nathan Sidwell + + PR driver/98943 + * gcc.c (driver::maybe_run_linker): Check for input file + accessibility if not linking. + +2021-02-05 Richard Biener + + PR tree-optimization/98855 + * tree-vectorizer.h (add_stmt_cost): New overload. + * tree-vect-slp.c (li_cost_vec_cmp): New. + (vect_bb_slp_scalar_cost): Cost individual loop regions + separately. Account for the scalar instance root stmt. + +2021-02-05 Tom de Vries + + PR debug/98656 + * tree-switch-conversion.c (jump_table_cluster::emit): Add loc + argument. + (bit_test_cluster::emit): Reuse location_t for newly created + gswitch statement. + (switch_decision_tree::try_switch_expansion): Preserve + location_t. + * tree-switch-conversion.h: Change function signatures. + +2021-02-05 Jakub Jelinek + + PR target/98957 + * config/i386/i386-options.c (m_NONE, m_ALL): Define. + * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS, + X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U. + (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U. + +2021-02-05 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin. + * config/aarch64/aarch64-simd.md (aarch64_get_high): Define. + * config/aarch64/arm_neon.h (__GET_HIGH): Delete. + (vget_high_f16): Reimplement using new builtin. + (vget_high_f32): Likewise. + (vget_high_f64): Likewise. + (vget_high_p8): Likewise. + (vget_high_p16): Likewise. + (vget_high_p64): Likewise. + (vget_high_s8): Likewise. + (vget_high_s16): Likewise. + (vget_high_s32): Likewise. + (vget_high_s64): Likewise. + (vget_high_u8): Likewise. + (vget_high_u16): Likewise. + (vget_high_u32): Likewise. + (vget_high_u64): Likewise. + +2021-02-05 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin. + * config/aarch64/aarch64-simd.md (aarch64_get_low): Define. + * config/aarch64/arm_neon.h (__GET_LOW): Delete. + (vget_low_f16): Reimplement using new builtin. + (vget_low_f32): Likewise. + (vget_low_f64): Likewise. + (vget_low_p8): Likewise. + (vget_low_p16): Likewise. + (vget_low_p64): Likewise. + (vget_low_s8): Likewise. + (vget_low_s16): Likewise. + (vget_low_s32): Likewise. + (vget_low_s64): Likewise. + (vget_low_u8): Likewise. + (vget_low_u16): Likewise. + (vget_low_u32): Likewise. + (vget_low_u64): Likewise. + +2021-02-05 Kito Cheng + + * gcc.c (print_multilib_info): Check all required argument is provided + by default arg. + +2021-02-05 liuhongt + + PR target/98537 + * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't + generate integer mask comparison for 128/256-bits vector when + op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also + delete redundant !maskcmp condition. + (ix86_expand_int_vec_cmp): Ditto but no redundant deletion + here. + (ix86_expand_sse_movcc): Delete definition of maskcmp, add the + condition directly to if (maskcmp), add extra check for + cmpmode, it should be MODE_INT. + (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's + parameters op_true/op_false. + (ix86_use_mask_cmp_p): New. + +2021-02-05 liuhongt + + PR target/98172 + * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL): + Remove m_GENERIC from ~list. + (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto. + +2021-02-04 David Malcolm + + PR c/97932 + * diagnostic-show-locus.c (compatible_locations_p): Require + locations in the same macro map to be either both from the + macro definition, or both from the macro arguments. + +2021-02-04 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add + [su]mull_hi_lane[q] builtin generator macros. + * config/aarch64/aarch64-simd.md + (aarch64_mull_hi_lane_insn): Define. + (aarch64_mull_hi_lane): Define. + (aarch64_mull_hi_laneq_insn): Define. + (aarch64_mull_hi_laneq): Define. + * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL + builtin instead of inline asm. + (vmull_high_lane_s32): Likewise. + (vmull_high_lane_u16): Likewise. + (vmull_high_lane_u32): Likewise. + (vmull_high_laneq_s16): Likewise. + (vmull_high_laneq_s32): Likewise. + (vmull_high_laneq_u16): Likewise. + (vmull_high_laneq_u32): Liekwise. + +2021-02-04 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n + builtin generator macros. + * config/aarch64/aarch64-simd.md + (aarch64_mull_hi_n_insn): Define. + (aarch64_mull_hi_n): Define. + * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin + instead of inline asm. + (vmull_high_n_s32): Likewise. + (vmull_high_n_u16): Likewise. + (vmull_high_n_u32): Likewise. + +2021-02-04 Richard Biener + + PR tree-optimization/98855 + * tree-vect-loop.c (vectorizable_phi): Do not cost + single-argument PHIs. + * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise. + * tree-vect-stmts.c (vectorizable_bswap): Also perform + costing for SLP operation. + +2021-02-04 Martin Liska + + * doc/extend.texi: Mention -mprefer-vector-width in target + attributes. + +2021-02-03 Martin Sebor + + PR tree-optimization/98937 + * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define. + Flush pointer_query cache. + +2021-02-03 Aaron Sawdey + + * config/rs6000/genfusion.pl (gen_2logical): Add missing + fixes based on patch review. + * config/rs6000/fusion.md: Regenerate file. + +2021-02-03 Aaron Sawdey + + * config/rs6000/t-rs6000: Comment out auto generation of + fusion.md for now. + +2021-02-03 Andrew Stubbs + + * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908. + * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908. + (output_file_start): Add gfx908. + * config/gcn/gcn.opt (gpu_type): Add gfx908. + * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908. + (MULTILIB_DIRNAMES): Add gfx908. + * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define. + (main): Recognize gfx908. + * config/gcn/t-omp-device: Add gfx908. + +2021-02-03 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add + [su]mlsl_hi_lane[q] builtin macro generators. + * config/aarch64/aarch64-simd.md + (aarch64_mlsl_hi_lane_insn): Define. + (aarch64_mlsl_hi_lane): Define. + (aarch64_mlsl_hi_laneq_insn): Define. + (aarch64_mlsl_hi_laneq): Define. + * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL + builtin instead of inline asm. + (vmlsl_high_lane_s32): Likewise. + (vmlsl_high_lane_u16): Likewise. + (vmlsl_high_lane_u32): Likewise. + (vmlsl_high_laneq_s16): Likewise. + (vmlsl_high_laneq_s32): Likewise. + (vmlsl_high_laneq_u16): Likewise. + (vmlsl_high_laneq_u32): Likewise. + (vmlal_high_laneq_u32): Likewise. + +2021-02-03 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add + [su]mlal_hi_lane[q] builtin generator macros. + * config/aarch64/aarch64-simd.md + (aarch64_mlal_hi_lane_insn): Define. + (aarch64_mlal_hi_lane): Define. + (aarch64_mlal_hi_laneq_insn): Define. + (aarch64_mlal_hi_laneq): Define. + * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL + builtin instead of inline asm. + (vmlal_high_lane_s32): Likewise. + (vmlal_high_lane_u16): Likewise. + (vmlal_high_lane_u32): Likewise. + (vmlal_high_laneq_s16): Likewise. + (vmlal_high_laneq_s32): Likewise. + (vmlal_high_laneq_u16): Likewise. + (vmlal_high_laneq_u32): Likewise. + +2021-02-03 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n + builtin generator macros. + * config/aarch64/aarch64-simd.md (aarch64_mlsl_hi_n_insn): + Define. + (aarch64_mlsl_hi_n): Define. + * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin + instead of inline asm. + (vmlsl_high_n_s32): Likewise. + (vmlsl_high_n_u16): Likewise. + (vmlsl_high_n_u32): Likewise. + +2021-02-03 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n + builtin generator macros. + * config/aarch64/aarch64-simd.md (aarch64_mlal_hi_n_insn): + Define. + (aarch64_mlal_hi_n): Define. + * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin + instead of inline asm. + (vmlal_high_n_s32): Likewise. + (vmlal_high_n_u16): Likewise. + (vmlal_high_n_u32): Likewise. + +2021-02-03 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin + generator macros. + * config/aarch64/aarch64-simd.md (*aarch64_mlal_hi): + Rename to... + (aarch64_mlal_hi_insn): This. + (aarch64_mlal_hi): Define. + * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin + instead of inline asm. + (vmlal_high_s16): Likewise. + (vmlal_high_s32): Likewise. + (vmlal_high_u8): Likewise. + (vmlal_high_u16): Likewise. + (vmlal_high_u32): Likewise. + +2021-02-03 Ilya Leoshkevich + + * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data() + after calling alter_subreg() on a (mem). + +2021-02-03 Martin Liska + + PR lto/98912 + * lto-streamer-out.c (produce_lto_section): Fill up missing + padding. + * lto-streamer.h (struct lto_section): Add _padding field. + +2021-02-03 Richard Biener + + * lto-streamer.c (lto_get_section_name): Free temporary + buffer. + * tree-loop-distribution.c + (loop_distribution::merge_dep_scc_partitions): Free edge data. + +2021-02-03 Jakub Jelinek + + PR middle-end/97487 + * ifcvt.c (noce_can_force_operand): New function. + (noce_emit_move_insn): Use it. + (noce_try_sign_mask): Likewise. Formatting fix. + +2021-02-03 Jakub Jelinek + + PR middle-end/97971 + * lra-constraints.c (process_alt_operands): For inline asm, don't call + fatal_insn, but instead return false. + +2021-02-03 Jakub Jelinek + + PR tree-optimization/98287 + * config/i386/mmx.md (3): For shifts don't enable expander + for V1DImode. + +2021-02-03 Tamar Christina + + PR tree-optimization/98928 + * tree-vect-loop.c (vect_analyze_loop_2): Change + STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN. + * tree-vect-slp-patterns.c (complex_pattern::build): Likewise. + * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New. + (class _stmt_vec_info): Add slp_vect_pattern_only_p. + +2021-02-02 Richard Biener + + * gimple-loop-interchange.cc (prepare_data_references): + Release vectors. + * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise. + * tree-ssa-loop-im.c (hoist_memory_references): Likewise. + * tree-vect-stmts.c (vectorizable_condition): Do not + allocate vectors. + (vectorizable_comparison): Likewise. + +2021-02-02 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin. + * config/aarch64/aarch64-simd.md (aarch64_ursqrte): New pattern. + * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin. + (vrsqrteq_u32): Likewise. + +2021-02-02 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin. + * config/aarch64/aarch64-simd.md (aarch64_sqxtun2_le): Define. + (aarch64_sqxtun2_be): Likewise. + (aarch64_sqxtun2): Likewise. + * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin. + (vqmovun_high_s32): Likewise. + (vqmovun_high_s64): Likewise. + * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define. + +2021-02-02 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use + AUTO_FP flags. + (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags. + +2021-02-02 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90, + fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, + fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi, + ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low, + fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low, + fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high, + fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high, + fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags. + +2021-02-02 Kyrylo Tkachov + + * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define. + * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r, + ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags. + +2021-02-02 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2, + uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags. + +2021-02-02 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount, + vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_, + vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_, + ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq, + udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr, + ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n, + ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n, + ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use + NONE builtin flags. + +2021-02-02 Jakub Jelinek + + PR tree-optimization/98848 + * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if + STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def. + +2021-02-02 Kito Cheng + + PR target/98743 + * expr.c: Check mode before calling store_expr. + +2021-02-02 Christophe Lyon + + * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U. + (VORNQ): Remove. + * config/arm/mve.md (mve_vornq_s): New entry for vorn + instruction using expression ior. + (mve_vornq_u): New expander. + (mve_vornq_f): Use ior code instead of unspec. + * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove. + +2021-02-02 Alexandre Oliva + + * tree-nested.c (convert_nonlocal_reference_op): Move + current_function_decl restore after re-gimplification. + (convert_local_reference_op): Likewise. + +2021-02-01 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2): + Define builtins. + * config/aarch64/aarch64-simd.md (aarch64_rshrn_insn_le): + Define. + (aarch64_rshrn_insn_be): Likewise. + (aarch64_rshrn): Likewise. + (aarch64_rshrn2_insn_le): Likewise. + (aarch64_rshrn2_insn_be): Likewise. + (aarch64_rshrn2): Likewise. + * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN. + * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement + using builtin. + (vrshrn_high_n_s32): Likewise. + (vrshrn_high_n_s64): Likewise. + (vrshrn_high_n_u16): Likewise. + (vrshrn_high_n_u32): Likewise. + (vrshrn_high_n_u64): Likewise. + (vrshrn_n_s16): Likewise. + (vrshrn_n_s32): Likewise. + (vrshrn_n_s64): Likewise. + (vrshrn_n_u16): Likewise. + (vrshrn_n_u32): Likewise. + (vrshrn_n_u64): Likewise. + +2021-02-01 Sergei Trofimovich + + PR tree-optimization/98499 + * ipa-modref.c (analyze_ssa_name_flags): treat RVO + conservatively and assume all possible side-effects. + +2021-02-01 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi, + vec_unpacku_hi_): Define builtins. + * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using + builtin. + (vmovl_high_s16): Likewise. + (vmovl_high_s32): Likewise. + (vmovl_high_u8): Likewise. + (vmovl_high_u16): Likewise. + (vmovl_high_u32): Likewise. + +2021-02-01 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl): + Define builtins. + * config/aarch64/aarch64-simd.md (aarch64_abdl): New + pattern. + * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL, + UNSPEC_UABDL. + * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using + builtin. + (vabdl_s16): Likewise. + (vabdl_s32): Likewise. + (vabdl_u8): Likewise. + (vabdl_u16): Likewise. + (vabdl_u32): Likewise. + * config/aarch64/iterators.md (ABDL): New int iterator. + (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL. + +2021-02-01 Martin Sebor + + * tree.h (BLOCK_VARS): Add comment. + (BLOCK_SUBBLOCKS): Same. + (BLOCK_SUPERCONTEXT): Same. + (BLOCK_ABSTRACT_ORIGIN): Same. + (inlined_function_outer_scope_p): Same. + +2021-02-01 Martin Sebor + + PR middle-end/97172 + * attribs.c (attr_access::free_lang_data): Define new function. + * attribs.h (attr_access::free_lang_data): Declare new function. + +2021-02-01 Richard Biener + + * vec.h (auto_vec::auto_vec): Add memory stat parameters + and pass them on. + * bitmap.h (auto_bitmap::auto_bitmap): Likewise. + +2021-02-01 Tamar Christina + + * config/aarch64/aarch64-simd.md (aarch64_mlal_n, + aarch64_mlsl, aarch64_mlsl_n): Flip mult operands. + +2021-02-01 Richard Biener + + PR rtl-optimization/98863 + * config/i386/i386-features.c (convert_scalars_to_vector): + Set DF_RD_PRUNE_DEAD_DEFS. + +2021-01-31 Eric Botcazou + + * system.h (SIZE_MAX): Define if not already defined. + +2021-01-30 Aaron Sawdey + + * config/rs6000/genfusion.pl (gen_2logical): New function to + generate patterns for logical-logical fusion. + * config/rs6000/fusion.md: Regenerated patterns. + * config/rs6000/rs6000-cpus.def: Add + OPTION_MASK_P10_FUSION_2LOGICAL. + * config/rs6000/rs6000.c (rs6000_option_override_internal): + Enable logical-logical fusion for p10. + * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical. + +2021-01-30 David Edelsohn + + * config/rs6000/rs6000.opt: Add periods to new AIX options. + +2021-01-30 David Edelsohn + + * config/rs6000/rs6000.opt (mabi=vec-extabi): New. + (mabi=vec-default): New. + * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define + __EXTABI__ for AIX Vector extended ABI. + * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector + extabi info. + (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31 + are non-volatile. + * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default. + +2021-01-30 Jakub Jelinek + + * config/i386/i386-features.c (remove_partial_avx_dependency): Clear + DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans. + +2021-01-29 Vladimir N. Makarov + + PR target/97701 + * lra-constraints.c (in_class_p): Don't narrow class only for REG + or MEM. + +2021-01-29 Will Schmidt + + * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add + clauses for CODE_FOR_vsx_xvcvuxddp_scale and + CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code. + +2021-01-29 Andrew MacLeod + + PR tree-optimization/98866 + * gimple-range-gori.h (gori_compute:set_range_invariant): New. + * gimple-range-gori.cc (gori_map::set_range_invariant): New. + (gori_map::m_maybe_invariant): Rename from all_outgoing. + (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant. + (gori_map::is_export_p): Ditto. + (gori_map::calculate_gori): Ditto. + (gori_compute::set_range_invariant): New. + * gimple-range.cc (gimple_ranger::range_of_stmt): Set range + invariant for pointers evaluating to [1, +INF]. + +2021-01-29 Richard Biener + + PR rtl-optimization/98863 + * config/i386/i386-features.c (remove_partial_avx_dependency): + Do not perform DF analysis. + (pass_data_remove_partial_avx_dependency): Remove + TODO_df_finish. + +2021-01-29 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n + builtin generator macros. + * config/aarch64/aarch64-simd.md (aarch64_mull_n): + Define. + * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin + instead of inline asm. + (vmull_n_s32): Likewise. + (vmull_n_u16): Likewise. + (vmull_n_u32): Likewise. + +2021-01-29 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2): + Define builtins. + * config/aarch64/aarch64-simd.md (aarch64_abdl2_3): + Rename to... + (aarch64_abdl2): ... This. + (sadv16qi): Adjust use of above. + * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using + builtin. + (vabdl_high_s16): Likewise. + (vabdl_high_s32): Likewise. + (vabdl_high_u8): Likewise. + (vabdl_high_u16): Likewise. + (vabdl_high_u32): Likewise. + +2021-01-29 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (sabal2): Define + builtin. + (uabal2): Likewise. + * config/aarch64/aarch64-simd.md (aarch64_abal2): New + pattern. + * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and + UNSPEC_UABAL2. + * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using + builtin. + (vabal_high_s16): Likewise. + (vabal_high_s32): Likewise. + (vabal_high_u8): Likewise. + (vabal_high_u16): Likewise. + (vabal_high_u32): Likewise. + * config/aarch64/iterators.md (ABAL2): New mode iterator. + (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2. + +2021-01-29 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (sabal): Define + builtin. + (uabal): Likewise. + * config/aarch64/aarch64-simd.md (aarch64_abal_4): + Rename to... + (aarch64_abal): ... This + (sadv16qi): Adust use of the above. + * config/aarch64/arm_neon.h (vabal_s8): Reimplement using + builtin. + (vabal_s16): Likewise. + (vabal_s32): Likewise. + (vabal_u8): Likewise. + (vabal_u16): Likewise. + (vabal_u32): Likewise. + +2021-01-29 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv): + Define builtins. + * config/aarch64/aarch64-simd.md (aarch64_addlv): + Define. + * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using + builtin. + (vaddlv_s16): Likewise. + (vaddlv_u8): Likewise. + (vaddlv_u16): Likewise. + (vaddlvq_s8): Likewise. + (vaddlvq_s16): Likewise. + (vaddlvq_s32): Likewise. + (vaddlvq_u8): Likewise. + (vaddlvq_u16): Likewise. + (vaddlvq_u32): Likewise. + (vaddlv_s32): Likewise. + (vaddlv_u32): Likewise. + * config/aarch64/iterators.md (VDQV_L): New mode iterator. + (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV. + (Vwstype): New mode attribute. + (Vwsuf): Likewise. + (VWIDE_S): Likewise. + (USADDLV): New int iterator. + (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV. + +2021-01-29 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q] + builtin generator macros. + * config/aarch64/aarch64-simd.md (aarch64_vec_mlsl_lane): + Define. + * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin + instead of inline asm. + (vmlsl_lane_s32): Likewise. + (vmlsl_lane_u16): Likewise. + (vmlsl_lane_u32): Likewise. + (vmlsl_laneq_s16): Likewise. + (vmlsl_laneq_s32): Likewise. + (vmlsl_laneq_u16): Likewise. + (vmlsl_laneq_u32): Likewise. + +2021-01-29 Richard Biener + + * doc/invoke.texi (--param max-gcse-memory): Document unit + of size. + * gcse.c (gcse_or_cprop_is_too_expensive): Adjust. + * params.opt (--param max-gcse-memory): Adjust default and + document unit of size. + +2021-01-29 Richard Biener + + PR rtl-optimization/98863 + * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned + HOST_WIDE_INT for the memory estimate. + +2021-01-29 Bin Cheng + Richard Biener + + PR tree-optimization/97627 + * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): + Do not analyze fake edges. + +2021-01-29 Richard Biener + + PR rtl-optimization/98144 + * df.h (df_mir_bb_info): Add con_visited member. + * df-problems.c (df_mir_alloc): Initialize con_visited, + do not fully populate IN and OUT. + (df_mir_reset): Likewise. + (df_mir_confluence_0): Set con_visited. + (df_mir_confluence_n): Properly handle implicitely + fully populated IN and OUT as designated by con_visited + and update con_visited accordingly. + +2021-01-29 Jakub Jelinek + + PR target/98849 + * config/arm/vec-common.md (mve_vshlq_, + vashl3, vashr3, vlshr3): Add + && !TARGET_REALLY_IWMMXT to conditions. + +2021-01-29 Jakub Jelinek + + PR debug/98331 + * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing + a BARRIER. + +2021-01-28 Marek Polacek + + PR c++/94775 + * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in + the main variant, maybe reset it in its variants too. + * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match. + (check_aligned_type): Check if TYPE_USER_ALIGN match. + +2021-01-28 Christophe Lyon + + PR target/98730 + * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector + of constant zero for comparisons. + +2021-01-28 Michael Meissner + + * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add + support for mapping built-in function names for long double + built-in functions if long double is IEEE 128-bit. + +2021-01-28 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n + builtin generator macros. + * config/aarch64/aarch64-simd.md (aarch64_mlsl_n): + Define. + * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin + instead of inline asm. + (vmlsl_n_s32): Likewise. + (vmlsl_n_u16): Likewise. + (vmlsl_n_u32): Likewise. + +2021-01-28 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n + builtin generator macros. + * config/aarch64/aarch64-simd.md (aarch64_mlal_n): + Define. + * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin + instead of inline asm. + (vmlal_n_s32): Likewise. + (vmlal_n_u16): Likewise. + (vmlal_n_u32): Likewise. + +2021-01-28 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (shrn2): Define + builtin. + * config/aarch64/aarch64-simd.md (aarch64_shrn2_insn_le): + Define. + (aarch64_shrn2_insn_be): Likewise. + (aarch64_shrn2): Likewise. + * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement + using builtins. + (vshrn_high_n_s32): Likewise. + (vshrn_high_n_s64): Likewise. + (vshrn_high_n_u16): Likewise. + (vshrn_high_n_u32): Likewise. + (vshrn_high_n_u64): Likewise. + +2021-01-28 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (shrn): Define + builtin. + * config/aarch64/aarch64-simd.md (aarch64_shrn_insn_le): + Define. + (aarch64_shrn_insn_be): Likewise. + (aarch64_shrn): Likewise. + * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using + builtins. + (vshrn_n_s32): Likewise. + (vshrn_n_s64): Likewise. + (vshrn_n_u16): Likewise. + (vshrn_n_u32): Likewise. + (vshrn_n_u64): Likewise. + * config/aarch64/iterators.md (vn_mode): New mode attribute. + +2021-01-28 Richard Biener + + PR rtl-optimization/80960 + * dse.c (check_mem_read_rtx): Call get_addr on the + offsetted address. + +2021-01-28 Xionghu Luo + David Edelsohn + + PR target/98799 + * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): + Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT + when -m32. + * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var): + Delete. + * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the + wrapper call rs6000_expand_vector_set_var for cleanup. Call + rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8 + directly. + (rs6000_expand_vector_set_var): Delete. + (rs6000_expand_vector_set_var_p9): Make static. + (rs6000_expand_vector_set_var_p8): Make static. + +2021-01-28 Xing GUO + + * common/config/riscv/riscv-common.c + (riscv_subset_list::parsing_subset_version): Fix -march option parsing + when `p` extension exists. + +2021-01-27 Vladimir N. Makarov + + PR rtl-optimization/97684 + * ira.c (ira): Call ira_set_pseudo_classes before + update_equiv_regs when it is necessary. + +2021-01-27 Jakub Jelinek + + PR target/98853 + * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use + %w0, %w1 and %2 instead of %0, %1 and %2. + +2021-01-27 Aaron Sawdey + + * config/rs6000/genfusion.pl: New script to generate + define_insn_and_split patterns so combine can arrange fused + instructions next to each other. + * config/rs6000/fusion.md: New file, generated fused instruction + patterns for combine. + * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate. + (non_update_memory_operand): New predicate. + * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and + OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and + POWERPC_MASKS. + * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add + prototype. + * config/rs6000/rs6000.c (rs6000_option_override_internal): + Automatically set OPTION_MASK_P10_FUSION and + OPTION_MASK_P10_FUSION_LD_CMPI if target is power10. + (rs600_opt_masks): Allow -mpower10-fusion + in function attributes. + (address_is_non_pfx_d_or_x): New function. + * config/rs6000/rs6000.h: Add MASK_P10_FUSION. + * config/rs6000/rs6000.md: Include fusion.md. + * config/rs6000/rs6000.opt: Add -mpower10-fusion + and -mpower10-fusion-ld-cmpi. + * config/rs6000/t-rs6000: Add dependencies involving fusion.md. + +2021-01-27 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal + builtin generator macros. + * config/aarch64/aarch64-simd.md (*aarch64_mlal): + Rename to... + (aarch64_mlal): This. + * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin + instead of inline asm. + (vmlal_s16): Likewise. + (vmlal_s32): Likewise. + (vmlal_u8): Likewise. + (vmlal_u16): Likewise. + (vmlal_u32): Likewise. + +2021-01-27 Richard Biener + + PR tree-optimization/98854 + * tree-vect-slp.c (vect_build_slp_tree_2): Also build + PHIs from scalars when the number of CTORs matches the + number of children. + +2021-01-27 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin + generator macro. + * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge): + Rename to... + (aarch64_mls_n): This. + * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin + instead of asm. + (vmls_n_s32): Likewise. + (vmls_n_u16): Likewise. + (vmls_n_u32): Likewise. + (vmlsq_n_s16): Likewise. + (vmlsq_n_s32): Likewise. + (vmlsq_n_u16): Likewise. + (vmlsq_n_u32): Likewise. + +2021-01-27 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add mls builtin + generator macro. + * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather + than asm. + (vmls_s16): Likewise. + (vmls_s32): Likewise. + (vmls_u8): Likewise. + (vmls_u16): Likewise. + (vmls_u32): Likewise. + (vmlsq_s8): Likewise. + (vmlsq_s16): Likewise. + (vmlsq_s32): Likewise. + (vmlsq_u8): Likewise. + (vmlsq_u16): Likewise. + (vmlsq_u32): Likewise. + +2021-01-27 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin + generator macro. + * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge): + Rename to... + (aarch64_mla_n): This. + * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin + instead of asm. + (vmla_n_s32): Likewise. + (vmla_n_u16): Likewise. + (vmla_n_u32): Likewise. + (vmlaq_n_s16): Likewise. + (vmlaq_n_s32): Likewise. + (vmlaq_n_u16): Likewise. + (vmlaq_n_u32): Likewise. + +2021-01-27 liuhongt + + PR target/98833 + * config/i386/sse.md (sse2_gt3): Drop !TARGET_XOP in condition. + (*sse2_eq3): Ditto. + +2021-01-27 Jakub Jelinek + + * tree-pass.h (PROP_trees): Rename to ... + (PROP_gimple): ... this. + * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple. + * passes.c (execute_function_dump, execute_function_todo, + execute_one_ipa_transform_pass, execute_one_pass): Likewise. + * varpool.c (ctor_for_folding): Likewise. + +2021-01-27 Jakub Jelinek + + PR tree-optimization/97260 + * varpool.c: Include tree-pass.h. + (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY + non-TREE_SIDE_EFFECTS automatic variables. + +2021-01-26 Paul Fee + + * doc/cpp.texi (__cplusplus): Document value for -std=c++23 + or -std=gnu++23. + * doc/invoke.texi: Document -std=c++23 and -std=gnu++23. + * dwarf2out.c (highest_c_language): Recognise C++20 and C++23. + (gen_compile_unit_die): Recognise C++23. + +2021-01-26 Jakub Jelinek + + PR bootstrap/98839 + * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int + in comparison. + +2021-01-26 Jakub Jelinek + + PR target/98681 + * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): + Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt) + and INTVAL (mask). Add && INTVAL (mask) > 0 condition. + +2021-01-26 Richard Biener + + * gimple-pretty-print.c (dump_binary_rhs): Handle + VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR. + +2021-01-26 Richard Biener + + PR middle-end/98726 + * tree.h (vector_cst_int_elt): Remove. + * tree.c (vector_cst_int_elt): Use poly_wide_int for computations, + make static. + +2021-01-26 Andrew Stubbs + + * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions + for V64DFmode min/max reductions. + +2021-01-26 Jakub Jelinek + + * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large + as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as + two halves, one with x and the other with const0_rtx, ordered + depending on endianity. + +2021-01-26 Alexandre Oliva + + * gimplify.c (gimplify_decl_expr): Skip asan marking calls for + temporaries not seen in binding block, and not about to be + added as gimple variables. + +2021-01-25 Martin Sebor + + PR c++/98646 + * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text. + +2021-01-25 Martin Liska + + * value-prof.c (get_nth_most_common_value): Use %s instead + of %qs string. + +2021-01-25 Jakub Jelinek + + PR debug/98811 + * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if + readelf -wi is able to read the emitted .debug_info back. + * configure: Regenerated. + +2021-01-25 Martin Liska + + PR gcov-profile/98739 + * common.opt: Add missing sign symbol. + * value-prof.c (get_nth_most_common_value): Restore handling + of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and + PROFILE_REPRODUCIBILITY_MULTITHREADED. + +2021-01-25 Richard Biener + + PR middle-end/98807 + * tree.c (vector_element_bits): Always use precision of + the element type for boolean vectors. + +2021-01-25 Sebastian Huber + + * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds. + (ENDFILE_SPEC): Evaluate qnolinkcmds. + +2021-01-25 Sebastian Huber + + * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and + nostartfiles handling since this is already done by + LINK_COMMAND_SPEC. Evaluate qnolinkcmds. + (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this + is already done by LINK_COMMAND_SPEC. + (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since + this is already done by LINK_COMMAND_SPEC. Remove qnolinkcmds + evaluation. + +2021-01-25 Jakub Jelinek + + PR testsuite/98771 + * fold-const-call.c (host_size_t_cst_p): Renamed to ... + (size_t_cst_p): ... this. Check and store unsigned HOST_WIDE_INT + value rather than host size_t. + (fold_const_call): Change type of s2 from size_t to + unsigned HOST_WIDE_INT. Use size_t_cst_p instead of + host_size_t_cst_p. For strncmp calls, pass MIN (s2, SIZE_MAX) + instead of s2 as last argument. + +2021-01-25 Tamar Christina + + * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1, + VCMLA_OP, VCMUL_OP): New. + * config/arm/mve.md (mve_vcmlaq): Support vec_dup 0. + * config/arm/neon.md (cmul3): New. + * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ, + UNSPEC_VCMUL_CONJ): New. + * config/arm/vec-common.md (cmul3, arm_vcmla, + cml4): New. + +2021-01-23 Jakub Jelinek + + PR testsuite/97301 + * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute. + +2021-01-22 Jonathan Wright + + * config/aarch64/aarch64-simd-builtins.def: Add mla builtin + generator macro. + * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather + than asm. + (vmla_s16): Likewise. + (vmla_s32): Likewise. + (vmla_u8): Likewise. + (vmla_u16): Likewise. + (vmla_u32): Likewise. + (vmlaq_s8): Likewise. + (vmlaq_s16): Likewise. + (vmlaq_s32): Likewise. + (vmlaq_u8): Likewise. + (vmlaq_u16): Likewise. + (vmlaq_u32): Likewise. + +2021-01-22 David Malcolm + + * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex + directive. + +2021-01-22 Jakub Jelinek + + PR debug/98796 + * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no + filenames to emit, still emit the required 0 index directory and + filename entries that match DW_AT_comp_dir and DW_AT_name of the + compilation unit. + +2021-01-22 Marek Polacek + + PR c++/98545 + * doc/invoke.texi: Update C++ ABI Version 15 description. + +2021-01-22 Kyrylo Tkachov + + PR tree-optimization/98766 + * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when + comparing against type size with param_avoid_fma_max_bits. + +2021-01-22 Richard Biener + + PR middle-end/98793 + * tree.c (vector_element_bits): Key single-bit bool vector on + integer mode rather than not vector mode. + +2021-01-22 Xionghu Luo + + PR target/98093 + * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): + Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later + platforms. + * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update + to call different path for P8 and P9. + (rs6000_expand_vector_set_var_p9): New function. + (rs6000_expand_vector_set_var_p8): New function. + +2021-01-22 Xionghu Luo + + PR target/79251 + PR target/98065 + * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): + Ajdust variable index vec_insert from address dereference to + ARRAY_REF(VIEW_CONVERT_EXPR) tree expression. + * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var): + New declaration. + * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function. + +2021-01-22 Martin Liska + + PR gcov-profile/98739 + * profile.c (compute_value_histograms): Drop time profile for + -fprofile-reproducible=multithreaded. + +2021-01-22 Nathan Sidwell + + * gcc.c (process_command): Don't check OPT_SPECIAL_input_file + existence here. + +2021-01-22 Richard Biener + + PR middle-end/98773 + * tree-data-ref.c (initalize_matrix_A): Revert previous + change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT. + +2021-01-22 Jakub Jelinek + + PR tree-optimization/90248 + * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X), + X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove + simplifications. + (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X), + X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications. + +2021-01-22 Jakub Jelinek + + PR tree-optimization/98255 + * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign + extend index - low_bound from sizetype's precision rather than index + precision. + (get_addr_base_and_unit_offset_1): Likewise. + * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise. + * gimple-fold.c (fold_const_aggregate_ref_1): Likewise. + +2021-01-22 Richard Biener + + PR tree-optimization/98786 + * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid + adding new uses of abnormals. Verify we deal with a conditional + conversion. + +2021-01-22 Prathamesh Kulkarni + + PR target/98636 + * optc-save-gen.awk: Add arm_fp16_format to checked_options. + +2021-01-22 liuhongt + + PR target/96891 + PR target/98348 + * config/i386/sse.md (VI_128_256): New mode iterator. + (*avx_cmp3_1, *avx_cmp3_2, *avx_cmp3_3, + *avx_cmp3_4, *avx2_eq3, *avx2_pcmp3_1, + *avx2_pcmp3_2, *avx2_gt3): New + define_insn_and_split to lower avx512 vector comparison to avx + version when dest is vector. + (*_cmp3,*_cmp3,*_ucmp3): + define_insn_and_split for negating the comparison result. + * config/i386/predicates.md (float_vector_all_ones_operand): + New predicate. + * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use + general NOT operator without UNSPEC_MASKOP. + +2021-01-21 Vladimir N. Makarov + + PR rtl-optimization/98777 + * lra-int.h (lra_pmode_pseudo): New extern. + * lra.c (lra_pmode_pseudo): New global. + (lra): Set it up. + * lra-eliminations.c (eliminate_regs_in_insn): Use it. + +2021-01-21 Ilya Leoshkevich + + * fwprop.c (fwprop_propagation::classify_result): Allow + (subreg (mem)) simplifications. + +2021-01-21 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (aarch64_sqdmll): + Split into... + (aarch64_sqdmlal): ... This... + (aarch64_sqdmlsl): ... And this. + (aarch64_sqdmll_lane): Split into... + (aarch64_sqdmlal_lane): ... This... + (aarch64_sqdmlsl_lane): ... And this. + (aarch64_sqdmll_laneq): Split into... + (aarch64_sqdmlsl_laneq): ... This... + (aarch64_sqdmlal_laneq): ... And this. + (aarch64_sqdmll_n): Split into... + (aarch64_sqdmlsl_n): ... This... + (aarch64_sqdmlal_n): ... And this. + (aarch64_sqdmll2_internal): Split into... + (aarch64_sqdmlal2_internal): ... This... + (aarch64_sqdmlsl2_internal): ... And this. + +2021-01-21 Christophe Lyon + + * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type. + +2021-01-21 Andrea Corallo + + PR target/96372 + * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document. + +2021-01-21 liuhongt + + PR rtl-optimization/98694 + * regcprop.c (copy_value): If SRC had been assigned a mode + narrower than the copy, we can't link DEST into the chain even + they have same hard_regno_nregs(i.e. HImode/SImode in i386 + backend). + +2021-01-20 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (aarch64_get_lane): + Convert to define_insn_and_split. Split into simple move when moving + bottom element. + +2021-01-20 Segher Boessenkool + + * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert. + Adjust comment. Simplify code. + +2021-01-20 Jakub Jelinek + + PR debug/98765 + * dwarf2out.c (reset_indirect_string): Also reset indirect strings + with DW_FORM_line_strp form. + (prune_unused_types_update_strings): Don't add into debug_str_hash + indirect strings with DW_FORM_line_strp form. + (adjust_name_comp_dir): New function. + (dwarf2out_finish): Call it on CU DIEs after resetting + debug_line_str_hash. + +2021-01-20 Vladimir N. Makarov + + PR rtl-optimization/98722 + * lra-eliminations.c (eliminate_regs_in_insn): Check that target + has no 3-op add insn to transform insns containing two pluses. + +2021-01-20 Richard Biener + + * hwint.h (add_hwi): New function. + (mul_hwi): Likewise. + * tree-data-ref.c (initialize_matrix_A): Properly translate + tree constants and avoid HOST_WIDE_INT_MIN. + (lambda_matrix_row_add): Avoid undefined integer overflow + and return true on such overflow. + (lambda_matrix_right_hermite): Handle overflow from + lambda_matrix_row_add gracefully. Simplify previous fix. + (analyze_subscript_affine_affine): Likewise. + +2021-01-20 Eugene Rozenfeld + + PR tree-optimization/96674 + * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1 + x >= y && y != XXX_MIN --> x > y - 1 + +2021-01-20 Richard Sandiford + + PR tree-optimization/98535 + * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared. + If the high and low permutes are the same, remove the high permutes + from the working set and only continue with the low ones. + +2021-01-20 Jakub Jelinek + + PR tree-optimization/98721 + * builtins.c (access_ref::inform_access): Don't assume + SSA_NAME_IDENTIFIER must be non-NULL. Print messages about + object whenever allocfn is NULL, rather than only when DECL_P + is true. Use %qE instead of %qD for that. Formatting fixes. + +2021-01-20 Richard Biener + + PR tree-optimization/98758 + * tree-data-ref.c (int_divides_p): Use lambda_int arguments. + (lambda_matrix_right_hermite): Avoid undefinedness with + signed integer abs and multiplication. + (analyze_subscript_affine_affine): Use lambda_int. + +2021-01-20 David Malcolm + + PR debug/98751 + * dwarf2out.c (output_line_info): Rename static variable + "generation", moving it out of the function to... + (output_line_info_generation): New. + (init_sections_and_labels): Likewise, renaming the variable to... + (init_sections_and_labels_generation): New. + (dwarf2out_c_finalize): Reset the new variables. + +2021-01-19 Martin Sebor + + PR middle-end/98664 + * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for + all functions, even if they're not declared artificial or inline. + * tree.c (tree_inlined_location): Use macro expansion location + only if scope traversal fails to expose one. + +2021-01-19 Richard Sandiford + + PR rtl-optimization/92294 + * alias.c (compare_base_symbol_refs): Take an extra parameter + and add the distance between two symbols to it. Enshrine in + comments that -1 means "either 0 or 1, but we can't tell + which at compile time". + (memrefs_conflict_p): Update call accordingly. + (rtx_equal_for_memref_p): Likewise. Take the distance between symbols + into account. + +2021-01-19 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl, + sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn, + uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane, + sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n, + sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, + sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane, + sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq, + sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq, + sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n, + uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah, + sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq, + sqmovun): Use NONE flags. + +2021-01-19 Richard Biener + + PR ipa/98330 + * ipa-modref.c (analyze_stmt): Only record a summary for a + direct call. + +2021-01-19 Richard Biener + + PR middle-end/98638 + * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT. + +2021-01-19 Daniel Hellstrom + + * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add + built-in define __FIX_LEON3FT_TN0018. + +2021-01-19 Richard Biener + + PR ipa/97673 + * tree-inline.c (tree_function_versioning): Set input_location + to UNKNOWN_LOCATION throughout the function. + +2021-01-19 Tobias Burnus + + PR fortran/98476 + * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr. + +2021-01-19 Martin Jambor + + PR ipa/98690 + * ipa-sra.c (ssa_name_only_returned_p): New parameter fun. Check + whether non-call exceptions allow removal of a statement. + (isra_analyze_call): Pass the appropriate function to + ssa_name_only_returned_p. + +2021-01-19 Geng Qi + + * config/riscv/arch-canonicalize (longext_sort): New function for + sorting 'multi-letter'. + * config/riscv/multilib-generator: Adjusting the loop of 'alt' in + 'alts'. The 'arch' may not be the first of 'alts'. + (_expand_combination): Add underline for the 'ext' without '*'. + This is because, a single-letter extension can always be treated well + with a '_' prefix, but it cannot be separated out if it is appended + to a multi-letter. + +2021-01-18 Vladimir N. Makarov + + PR target/97847 + * ira.c (ira): Skip abnormal critical edge splitting. + +2021-01-18 Jakub Jelinek + + PR tree-optimization/98727 + * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of + second .MUL_OVERFLOW operand for signed multiplication with overflow + checking if the second operand of multiplication is not constant. + +2021-01-18 David Edelsohn + + * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX + defaults to version 4. + +2021-01-18 David Malcolm + + * attribs.h (fndecl_dealloc_argno): New decl. + * builtins.c (call_dealloc_argno): Split out second half of + function into... + (fndecl_dealloc_argno): New. + * doc/extend.texi (Common Function Attributes): Document the + interaction between the analyzer and the malloc attribute. + * doc/invoke.texi (Static Analyzer Options): Likewise. + +2021-01-17 David Edelsohn + + * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override + dwarf_version to 4. + * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same. + +2021-01-17 Martin Jambor + + PR ipa/98222 + * cgraph.c (clone_of_p): Check also former_clone_of as we climb + the clone tree. + +2021-01-17 Mark Wielaard + + * common.opt (gdwarf-): Init(5). + * doc/invoke.texi (-gdwarf): Document default to 5. + +2021-01-16 Kwok Cheung Yeung + + * builtin-types.def + (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename + to... + (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR): + ...this. Add extra argument. + * gimplify.c (omp_default_clause): Ensure that event handle is + firstprivate in a task region. + (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH. + (gimplify_adjust_omp_clauses): Likewise. + * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to + BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR. + * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags + if detach clause specified. Add detach argument when generating + call to GOMP_task. + * omp-low.c (scan_sharing_clauses): Setup data environment for detach + clause. + (finish_taskreg_scan): Move field for variable containing the event + handle to the front of the struct. + * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH. Fix + ordering. + * tree-nested.c (convert_nonlocal_omp_clauses): Handle + OMP_CLAUSE_DETACH clause. + (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause. + * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH. + * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH. + Fix ordering. + (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix + ordering. + (walk_tree_1): Handle OMP_CLAUSE_DETACH. + +2021-01-16 Sebastian Huber + + * config/nios2/t-rtems: Reset all MULTILIB_* variables. Shorten + multilib directory names. Use MULTILIB_REQUIRED instead of + MULTILIB_EXCEPTIONS. Add -mhw-mul -mhw-mulx -mhw-div + -mcustom-fpu-cfg=fph2 multilib. + +2021-01-16 Sebastian Huber + + * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value. + (nios2_init_fpu_configs): Provide register values for new + -mcustom-fpu-cfg=fph2 option variant. + * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option + variant. + +2021-01-16 Sebastian Huber + + * config/nios2/nios2.c (nios2_custom_check_insns): Remove + custom instruction warnings. + +2021-01-16 Jakub Jelinek + + PR tree-optimization/96669 + * match.pd ((CST << x) & 1 -> x == 0): New simplification. + +2021-01-16 Jakub Jelinek + + PR tree-optimization/96271 + * passes.def: Pass false argument to first two pass_cd_dce + instances and true to last instance. Add comment that + last instance rewrites no longer addressed locals. + * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and + initialize it. + (pass_cd_dce::set_pass_param): New method. + (pass_cd_dce::execute): Return TODO_update_address_taken from + last cd_dce instance. + +2021-01-15 Carl Love + + * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod): + New defines. + * config/rs6000/altivec.md (VIlong): Move define to file vsx.md. + * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI, + DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI, + DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI, + MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI): + Add builtin define. + (MULH, DIVE, MOD): Add new BU_P10_OVERLOAD_2 definitions. + * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV, + VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH): + New overloaded definitions. + (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI, + P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI, + P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI, + P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI, + P10V_BUILTIN_MULHU_V4SI]: Add case + statement for builtins. + * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI. + * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md. + (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions. + (vsx_mul_v2di): Add if TARGET_POWER10 statement. + (vsx_udiv_v2di): Add if TARGET_POWER10 statement. + (dives_, diveu_, div3, uvdiv3, + mods_, modu_, mulhs_, mulhu_, mulv2di3): + Add define_insn, mode is VIlong. + * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod): + Add builtin descriptions. + +2021-01-15 Eric Botcazou + + * final.c (final_start_function_1): Reset force_source_line. + +2021-01-15 Jakub Jelinek + + PR tree-optimization/96669 + * match.pd (((1 << A) & 1) != 0 -> A == 0, + ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by + possibly different power of two constants and to right shift too. + +2021-01-15 Jakub Jelinek + + PR tree-optimization/96681 + * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification. + ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise. + ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise. + ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise. + +2021-01-15 Alexandre Oliva + + * opts.c (gen_command_line_string): Exclude -dumpbase-ext. + +2021-01-15 Tamar Christina + + * config/aarch64/aarch64-simd.md (cml4, + cmul3): New. + * config/aarch64/iterators.md (UNSPEC_FCMUL, + UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ, + UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180, + FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1, + sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New. + (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180. + (rot_op): Renamed to conj_op. + * config/aarch64/aarch64-sve.md (cml4, + cmul3): New. + * config/aarch64/aarch64-sve2.md (cml4, + cmul3): New. + +2021-01-15 David Malcolm + + PR bootstrap/98696 + * diagnostic.c + (selftest::test_print_parseable_fixits_bytes_vs_display_columns): + Escape the tempfile name when constructing the expected output. + +2021-01-15 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (*aarch64_mlsl_hi): + Rename to... + (aarch64_mlsl_hi): ... This. + (aarch64_mlsl_hi): Define. + (*aarch64_mlslmlsl + + * config/i386/i386-c.c (ix86_target_macros): + Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition. + +2021-01-15 Richard Sandiford + + PR target/88836 + * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs. + * Makefile.in (RTL_SSA_H): New variable. + * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule. + * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare. + * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after + pass_combine. + * config/aarch64/aarch64-cc-fusion.cc: New file. + +2021-01-15 Richard Sandiford + + * recog.h (insn_change_watermark::~insn_change_watermark): Avoid + calling cancel_changes for changes that no longer exist. + +2021-01-15 Richard Sandiford + + * rtl-ssa/functions.h (function_info::ref_defs): Rename to... + (function_info::reg_defs): ...this. + * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to... + (function_info::reg_defs): ...this. + +2021-01-15 Christophe Lyon + + PR target/71233 + * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New. + +2021-01-15 Christophe Lyon + + Revert: + 2021-01-15 Christophe Lyon + + PR target/71233 + * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New. + +2021-01-15 Richard Biener + + PR tree-optimization/96376 + * tree-vect-stmts.c (get_load_store_type): Disregard alignment + for VMAT_INVARIANT. + +2021-01-15 Martin Liska + + * doc/install.texi: Document that some tests need pytest module. + * doc/sourcebuild.texi: Likewise. + +2021-01-15 Christophe Lyon + + PR target/71233 + * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New. + +2021-01-15 Christophe Lyon + + * config/arm/mve.md (mve_vshrq_n_s_imm): New entry. + (mve_vshrq_n_u_imm): Likewise. + * config/arm/neon.md (vashr3, vlshr3): Move to ... + * config/arm/vec-common.md: ... here. + +2021-01-15 Christophe Lyon + + * config/arm/mve.md (mve_vshlq_): Move to + vec-commond.md. + * config/arm/neon.md (vashl3): Delete. + * config/arm/vec-common.md (mve_vshlq_): New. + (vasl3): New expander. + +2021-01-15 Richard Biener + + PR tree-optimization/98685 + * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling + of vector extern defs. + +2021-01-14 David Malcolm + + PR jit/98586 + * diagnostic.c (diagnostic_kind_text): Break out this array + from... + (diagnostic_build_prefix): ...here. + (fancy_abort): Detect when diagnostic_initialize has not yet been + called and fall back to a minimal implementation of printing the + ICE, rather than segfaulting in internal_error. + +2021-01-14 David Malcolm + + * diagnostic.c (diagnostic_initialize): Eliminate + parseable_fixits_p in favor of initializing extra_output_kind from + GCC_EXTRA_DIAGNOSTIC_OUTPUT. + (convert_column_unit): New function, split out from... + (diagnostic_converted_column): ...this. + (print_parseable_fixits): Add "column_unit" and "tabstop" params. + Use them to call convert_column_unit on the column values. + (diagnostic_report_diagnostic): Eliminate conditional on + parseable_fixits_p in favor of a switch statement on + extra_output_kind, passing the appropriate values to the new + params of print_parseable_fixits. + (selftest::test_print_parseable_fixits_none): Update for new + params of print_parseable_fixits. + (selftest::test_print_parseable_fixits_insert): Likewise. + (selftest::test_print_parseable_fixits_remove): Likewise. + (selftest::test_print_parseable_fixits_replace): Likewise. + (selftest::test_print_parseable_fixits_bytes_vs_display_columns): + New. + (selftest::diagnostic_c_tests): Call it. + * diagnostic.h (enum diagnostics_extra_output_kind): New. + (diagnostic_context::parseable_fixits_p): Delete field in favor + of... + (diagnostic_context::extra_output_kind): ...this new field. + * doc/invoke.texi (Environment Variables): Add + GCC_EXTRA_DIAGNOSTIC_OUTPUT. + * opts.c (common_handle_option): Update handling of + OPT_fdiagnostics_parseable_fixits for change to diagnostic_context + fields. + +2021-01-14 Tamar Christina + + * tree-vect-slp-patterns.c (class complex_operations_pattern, + complex_operations_pattern::matches, + complex_operations_pattern::recognize, + complex_operations_pattern::build): New. + (slp_patterns): Use it. + +2021-01-14 Tamar Christina + + * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New. + * optabs.def (cmls_optab, cmls_conj_optab): New. + * doc/md.texi: Document them. + * tree-vect-slp-patterns.c (class complex_fms_pattern, + complex_fms_pattern::matches, complex_fms_pattern::recognize, + complex_fms_pattern::build): New. + +2021-01-14 Tamar Christina + + * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New. + * optabs.def (cmla_optab, cmla_conj_optab): New. + * doc/md.texi: Document them. + * tree-vect-slp-patterns.c (vect_match_call_p, + class complex_fma_pattern, vect_slp_reset_pattern, + complex_fma_pattern::matches, complex_fma_pattern::recognize, + complex_fma_pattern::build): New. + +2021-01-14 Tamar Christina + + * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New. + * optabs.def (cmul_optab, cmul_conj_optab): New. + * doc/md.texi: Document them. + * tree-vect-slp-patterns.c (vect_match_call_complex_mla, + vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication, + vect_build_combine_node, class complex_mul_pattern, + complex_mul_pattern::matches, complex_mul_pattern::recognize, + complex_mul_pattern::build): New. + +2021-01-14 Tamar Christina + + * tree-vect-slp.c (optimize_load_redistribution_1): New. + (optimize_load_redistribution, vect_is_slp_load_node): New. + (vect_match_slp_patterns): Use it. + +2021-01-14 Tamar Christina + + * tree-vect-slp-patterns.c (complex_add_pattern::build): + Elide nodes. + +2021-01-14 Thomas Schwinge + + * config/gcn/mkoffload.c (main): Create an offload image only in + 64-bit configurations. + +2021-01-14 H.J. Lu + + PR target/98667 + * config/i386/i386-options.c (ix86_option_override_internal): + Issue an error for -fcf-protection with CF_BRANCH when compiling + for 32-bit non-TARGET_CMOV targets. + +2021-01-14 Uroš Bizjak + + PR target/98671 + * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): + Remove declaration and initialization of shadow variable "ret". + (ix86_option_override_internal): Remove delcaration of + shadow variable "i". Redeclare shadowed variable to unsigned. + * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned. + * config/i386/i386-builtins.c (get_builtin_code_for_version): + Update for redeclaration. + * config/i386/i386.h (pta_size): Ditto. + +2021-01-14 Richard Biener + + PR tree-optimization/98674 + * tree-data-ref.c (base_supports_access_fn_components_p): New. + (initialize_data_dependence_relation): For two bases without + possible access fns resort to type size equality when determining + shape compatibility. + +2021-01-14 Prathamesh Kulkarni + + PR target/66791 + * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by + <=, >= operators in vcle and vcge intrinsics respectively. + * config/arm/arm_neon_builtins.def: Remove entry for + vcge and vcgeu. + +2021-01-14 Uroš Bizjak + + PR target/98671 + * config/i386/i386-options.c (ix86_function_specific_save): + Remove redundant assignment to opts->x_ix86_branch_cost. + * config/i386/i386.c (ix86_prefetch_sse): + Rename from x86_prefetch_sse. Update all uses. + * config/i386/i386.h: Update for rename. + * config/i386/i386-options.h: Ditto. + +2021-01-14 Jakub Jelinek + + PR target/98670 + * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3, + *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3): + Use Bm instead of m for non-avx. Add isa attribute. + +2021-01-14 Jakub Jelinek + + PR tree-optimization/96688 + * match.pd (~(X >> Y) -> ~X >> Y): New simplification if + ~X can be simplified. + +2021-01-14 Richard Sandiford + + * tree-vect-stmts.c (vect_model_load_cost): Account for unused + IFN_LOAD_LANES results. + +2021-01-14 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (aarch64_xtl): + Define. + (aarch64_xtn): Likewise. + * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn): + Define + builtins. + * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using + builtin. + (vmovl_s16): Likewise. + (vmovl_s32): Likewise. + (vmovl_u8): Likewise. + (vmovl_u16): Likewise. + (vmovl_u32): Likewise. + (vmovn_s16): Likewise. + (vmovn_s32): Likewise. + (vmovn_s64): Likewise. + (vmovn_u16): Likewise. + (vmovn_u32): Likewise. + (vmovn_u64): Likewise. + +2021-01-14 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (aarch64_qxtn2_le): + Define. + (aarch64_qxtn2_be): Likewise. + (aarch64_qxtn2): Likewise. + * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2): + Define builtins. + * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator. + (su): Handle ss_truncate and us_truncate. + * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using + builtin. + (vqmovn_high_s32): Likewise. + (vqmovn_high_s64): Likewise. + (vqmovn_high_u16): Likewise. + (vqmovn_high_u32): Likewise. + (vqmovn_high_u64): Likewise. + +2021-01-14 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (aarch64_xtn2_le): + Define. + (aarch64_xtn2_be): Likewise. + (aarch64_xtn2): Likewise. + * config/aarch64/aarch64-simd-builtins.def (xtn2): Define + builtins. + * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using + builtins. + (vmovn_high_s32): Likewise. + (vmovn_high_s64): Likewise. + (vmovn_high_u16): Likewise. + (vmovn_high_u32): Likewise. + (vmovn_high_u64): Likewise. + +2021-01-13 Stafford Horne + + * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro. + +2021-01-13 Stafford Horne + + * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro. + +2021-01-13 Stafford Horne + + * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin + define for __or1k_hard_float__. + +2021-01-13 Stafford Horne + + * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1. + (PROFILE_HOOK): Define to call _mcount. + (FUNCTION_PROFILER): Change from abort to no-op. + +2021-01-13 Jakub Jelinek + + PR tree-optimization/96691 + * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C), + (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if + (~D ^ C) or (D ^ C) can be simplified. + +2021-01-13 Richard Biener + + PR tree-optimization/92645 + * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization + until after vector lowering. + +2021-01-13 Richard Sandiford + + * config/aarch64/aarch64-sve.md (fnma4): Extend from SVE_FULL_I + to SVE_I. + (@aarch64_pred_fnma, cond_fnma, *cond_fnma_2) + (*cond_fnma_4, *cond_fnma_any): Likewise. + +2021-01-13 Richard Sandiford + + * config/aarch64/aarch64-sve.md (fma4): Extend from SVE_FULL_I + to SVE_I. + (@aarch64_pred_fma, cond_fma, *cond_fma_2) + (*cond_fma_4, *cond_fma_any): Likewise. + +2021-01-13 Richard Biener + + PR tree-optimization/92645 + * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported + BIT_FIELD_REF argument. + (vect_build_slp_tree_2): Record the desired vector type + on the external vector def. + (vectorizable_slp_permutation): Handle required punning + of existing vector defs. + +2021-01-13 Richard Sandiford + + * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results. + +2021-01-13 Richard Sandiford + + * config/sh/sh.md (movsf_ie): Remove operands[2] test. + +2021-01-13 Samuel Thibault + + * config.gcc [$target == *-*-gnu*]: Enable + 'default_gnu_indirect_function'. + +2021-01-13 Jakub Jelinek + + PR target/95905 + * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into + registers before calling targetm.vectorize.vec_perm_const, only after + that. + * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle + two argument permutation when one operand is zero vector and only + after that force operands into registers. + * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New + define_insn_and_split pattern. + (*avx512bw_zero_extendv32qiv32hi2_1): Likewise. + (*avx512f_zero_extendv16hiv16si2_1): Likewise. + (*avx2_zero_extendv8hiv8si2_1): Likewise. + (*avx512f_zero_extendv8siv8di2_1): Likewise. + (*avx2_zero_extendv4siv4di2_1): Likewise. + * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands + into registers. + * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise. + * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise. + * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise. + * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise. + * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise. + * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise. Use std::swap. + +2021-01-13 Martin Liska + + PR tree-optimization/98455 + * gimple-if-to-switch.cc (condition_info::record_phi_mapping): + Record also virtual PHIs. + (pass_if_to_switch::execute): Return TODO_cleanup_cfg only + conditionally. + +2021-01-13 Jonathan Wakely + + * doc/invoke.texi (C++ Modules): Fix typos. + +2021-01-13 Richard Biener + + PR tree-optimization/98640 + * tree-ssa-sccvn.c (visit_nary_op): Do not try to + handle plus or minus from a truncated operand to be + sign-extended. + +2021-01-13 Jakub Jelinek + + PR target/96938 + * config/i386/i386.md (*btr_1, *btr_2): New + define_insn_and_split patterns. + (splitter after *btr_2): New splitter. + +2021-01-13 Martin Liska + + PR ipa/98652 + * cgraphunit.c (analyze_functions): Remove dead code. + +2021-01-13 Qian Jianhua + + * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New. + * config/aarch64/aarch64.c (a64fx_addrcost_table): New. + (a64fx_regmove_cost, a64fx_vector_cost): New. + (a64fx_tunings): Use the new added cost tables. + +2021-01-13 Jakub Jelinek + + PR target/95905 + * config/i386/predicates.md (pmovzx_parallel): New predicate. + * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New + define_insn_and_split pattern. + (*sse4_1_zero_extendv4hiv4si2_3): Likewise. + (*sse4_1_zero_extendv2siv2di2_3): Likewise. + +2021-01-13 Julian Brown + + * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code + to fix v0 register. + +2021-01-13 Julian Brown + + * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live + on entry to a BB. + +2021-01-13 Julian Brown + + * config/gcn/gcn-valu.md (recip2, recip2): Use unspec + for reciprocal-approximation instructions. + (div3): Use fused multiply-accumulate operations for reciprocal + refinement and division result. + * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant. + +2021-01-13 Julian Brown + + * config/gcn/gcn-valu.md (subdf): Rename to... + (subdf3): This. + +2021-01-12 Martin Liska + + * gcov.c (source_info::debug): Fix printf format for 32-bit hosts. + +2021-01-12 Andrea Corallo + + * function-abi.h: Fix typo. + +2021-01-12 Christophe Lyon + + PR target/97875 + PR target/97875 + * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro. + (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise. + (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise. + (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise. + (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise. + (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise. + (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise. + (ARM_HAVE_NEON_V2DI_LDST): Likewise. + (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise. + (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise. + (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise. + (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise. + (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise. + (ARM_HAVE_V2DI_LDST): Likewise. + * config/arm/mve.md (*movmisalign_mve_store): New pattern. + (*movmisalign_mve_load): New pattern. + * config/arm/neon.md (movmisalign): Move to ... + * config/arm/vec-common.md: ... here. + +2021-01-12 Vladimir N. Makarov + + PR target/97969 + * lra-eliminations.c (eliminate_regs_in_insn): Add transformation + of pattern 'plus (plus (hard reg, const), pseudo)'. + +2021-01-12 Richard Biener + + PR tree-optimization/98550 + * tree-vect-slp.c (vect_record_max_nunits): Check whether + the group size is a multiple of the vector element count. + (vect_build_slp_tree_1): When we need to fail because + the vector type choosen causes unrolling do so lazily + without affecting matches only at the end to guide group splitting. + +2021-01-12 Martin Liska + + PR c++/97284 + * optc-save-gen.awk: Compare also n_target_save vars with + strcmp. + +2021-01-12 Martin Liska + + * gcov.c (source_info::debug): New. + (print_usage): Add --debug (-D) option. + (process_args): Likewise. + (generate_results): Call src->debug after + accumulate_line_counts. + (read_graph_file): Properly assign id for EXIT_BLOCK. + * profile.c (branch_prob): Dump function body before it is + instrumented. + +2021-01-12 Jakub Jelinek + + PR tree-optimization/98629 + * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt + unless returning non-zero. + +2021-01-12 Jakub Jelinek + + PR tree-optimization/95731 + * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize + x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z. + (optimize_range_tests): Call optimize_range_tests_cmp_bitwise + only after optimize_range_tests_var_bound. + +2021-01-12 Jakub Jelinek + + * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@. + * configure: Regenerated. + +2021-01-12 liuhongt + + PR target/98612 + * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS): + Deleted. + * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete + dead code. + +2021-01-12 Alexandre Oliva + + * ssa-iterators.h (end_imm_use_stmt_traverse): Forward + declare. + (auto_end_imm_use_stmt_traverse): New struct. + (FOR_EACH_IMM_USE_STMT): Use it. + (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove, + along with uses... + * gimple-ssa-strength-reduction.c: ... here, ... + * graphite-scop-detection.c: ... here, ... + * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ... + * tree-predcom.c, tree-ssa-ccp.c: ... here, ... + * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ... + * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ... + * tree-ssa-phiprop.c, tree-ssa.c: ... here, ... + * tree-vect-slp.c: ... and here, ... + * doc/tree-ssa.texi: ... and the example here. + +2021-01-11 Richard Sandiford + + * config/aarch64/aarch64-sve.md (sdiv_pow23): Extend from + SVE_FULL_I to SVE_I. Generate an UNSPEC_PRED_X. + (*sdiv_pow23): New pattern. + (@cond_): Extend from SVE_FULL_I to SVE_I. + Wrap the ASRD in an UNSPEC_PRED_X. + (*cond__2): Likewise. Replace the UNSPEC_PRED_X + predicate with a constant PTRUE, if it isn't already. + (*cond__z): Replace with... + (*cond__any): ...this new pattern. + +2021-01-11 Richard Sandiford + + * config/aarch64/aarch64-sve.md (*cond_bic_2): Extend from + SVE_FULL_I to SVE_I. + (*cond_bic_any): Likewise. + +2021-01-11 Richard Sandiford + + * config/aarch64/aarch64-sve.md (mul3_highpart) + (@aarch64_pred_): Extend from SVE_FULL_I + to SVE_I. + +2021-01-11 Richard Sandiford + + * config/aarch64/aarch64-sve.md (abd_3): Extend from + SVE_FULL_I to SVE_I. + (*aarch64_cond_abd_2): Likewise. + (*aarch64_cond_abd_any): Likewise. + (@aarch64_pred_abd): Likewise. Use UNSPEC_PRED_X + for the max and min but not for the minus. + (*aarch64_cond_abd_3): New pattern. + +2021-01-11 Richard Sandiford + + * config/aarch64/iterators.md (SVE_24I): New iterator. + * config/aarch64/aarch64-sve.md (*aarch64_adr_shift): Extend from + SVE_FULL_SDI to SVE_24I. Use containers rather than elements. + +2021-01-11 Richard Sandiford + + * config/aarch64/aarch64-sve.md (@cond_) + (*cond__2): Extend from SVE_FULL_I + to SVE_I. + (*cond__3): Likewise. + (*cond__any): Likewise. + (*cond__2_const): Likewise. + (*cond__any_const): Likewise. + +2021-01-11 Richard Sandiford + + * config/aarch64/aarch64-sve.md (3) + (@aarch64_pred_) + (*post_ra_3): Extend from SVE_FULL_I + to SVE_I. + +2021-01-11 Richard Sandiford + + * config/aarch64/aarch64-sve.md (3) + (v3, @aarch64_pred_) + (*post_ra_v3): Extend from SVE_FULL_I to SVE_I. + +2021-01-11 Martin Liska + + PR jit/98615 + * symtab-clones.h (clone_info::release): Release + symtab::m_clones with ggc_delete as it's a GGC memory. + +2021-01-11 Matthias Klose + + * Makefile.in (LINK_PROGRESS): Show the link target. + +2021-01-11 Richard Biener + + PR tree-optimization/91403 + * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap + single-element interleaving group size at 4096 elements. + +2021-01-11 Richard Biener + + PR tree-optimization/98526 + * tree-vect-loop.c (vect_model_reduction_cost): Remove costing + of the actual reduction op for the regular case. + (vectorizable_reduction): Cost the stmts + vect_transform_reduction produces here. + +2021-01-11 Andreas Krebbel + + * tree-ssa-forwprop.c (simplify_vector_constructor): For + big-endian, use UNPACK[_FLOAT]_HI. + +2021-01-11 Tamar Christina + + * tree-vect-slp-patterns.c (class complex_pattern, + class complex_add_pattern): Add parameters to matches. + (complex_add_pattern::build): Free memory. + (complex_add_pattern::matches): Move validation end of match. + (complex_add_pattern::recognize): Likewise. + +2021-01-11 Tamar Christina + + * tree-vect-slp-patterns.c (linear_loads_p): Fix externals. + +2021-01-11 Tamar Christina + + * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity. + +2021-01-11 Jakub Jelinek + + PR tree-optimization/95867 + * tree-ssa-math-opts.h: New header. + * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h. + (powi_as_mults): No longer static. Use build_one_cst instead of + build_real. Formatting fix. + * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h. + (attempt_builtin_powi): Handle multiplication reassociation without + powi_fndecl using powi_as_mults. + (reassociate_bb): For integral types don't require + -funsafe-math-optimizations to call attempt_builtin_powi. + +2021-01-11 Jakub Jelinek + + PR tree-optimization/95852 + * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change + mul_stmts parameter type to vec &. Before cond_stmt + allow in the bb any of the stmts in that vector, div_stmt and + up to 3 cast stmts. + (arith_cast_equal_p): New function. + (arith_overflow_check_p): Add cast_stmt argument, handle signed + multiply overflow checks. + (match_arith_overflow): Adjust caller. Handle signed multiply + overflow checks. + +2021-01-11 Jakub Jelinek + + PR tree-optimization/95852 + * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function. + (uaddsub_overflow_check_p): Renamed to ... + (arith_overflow_check_p): ... this. Handle also multiplication + with overflow check. + (match_uaddsub_overflow): Renamed to ... + (match_arith_overflow): ... this. Add cfg_changed argument. Handle + also multiplication with overflow check. Adjust function comment. + (math_opts_dom_walker::after_dom_children): Adjust callers. Call + match_arith_overflow also for MULT_EXPR. + +2021-01-11 Kyrylo Tkachov + + * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using + __builtin_convertvector. + (vmovl_s16): Likewise. + (vmovl_s32): Likewise. + (vmovl_u8): Likewise. + (vmovl_u16): Likewise. + (vmovl_u32): Likewise. + (vmovn_s16): Likewise. + (vmovn_s32): Likewise. + (vmovn_s64): Likewise. + (vmovn_u16): Likewise. + (vmovn_u32): Likewise. + (vmovn_u64): Likewise. + +2021-01-11 Martin Liska + + * gimple-if-to-switch.cc (struct condition_info): Use auto_var. + (if_chain::is_beneficial): Delete clusters + (find_conditions): Make second argument of conditions_in_bbs a + pointer so that we control over it's lifetime. + (pass_if_to_switch::execute): Delete them. + +2021-01-11 Kewen Lin + + * ira.c (move_unallocated_pseudos): Check other_reg and skip if + it isn't set. + +2021-01-09 Maciej W. Rozycki + + * config/vax/vax.md (cc): Remove mode attribute. + (subst_, subst_f): Rename to... + (subst_, subst_f): ... these respectively. + (*cbranch4_): Update for `cc' removal. + (*cbranch4_): Likewise. + (*branch_, *branch__reversed): Likewise. + +2021-01-09 Maciej W. Rozycki + + * config/vax/vax.md (subst_f): Add mode to operands and + `const_double_zero'. + +2021-01-09 Maciej W. Rozycki + + * config/pdp11/pdp11.md (PDPfp): New mode iterator. + (fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and + operands. + +2021-01-09 Maciej W. Rozycki + + * genemit.c (gen_exp) : Handle `const_double_zero' + rtx. + * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode + with `const_double_zero'. + * doc/rtl.texi (Constant Expression Types): Document it. + +2021-01-09 Jakub Jelinek + + PR c++/98556 + * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of + POINTER_DIFF_EXPR to be any integral type. + +2021-01-09 Jakub Jelinek + + PR rtl-optimization/98603 + * function.c (instantiate_virtual_regs_in_insn): For asm goto + with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL + if any, set ASM_OPERANDS mode to VOIDmode and change + ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX. + +2021-01-09 Alexandre Oliva + + PR debug/97714 + * final.c (notice_source_line): Narrow down the condition to + skip a line-0 marker. + +2021-01-08 Sergei Trofimovich + + * ipa-modref.c (merge_call_side_effects): Fix + linebreak split by reordering two print calls. + +2021-01-08 Ilya Leoshkevich + + * config/s390/vector.md (*tf_to_fprx2_0): Rename from + "*mov_tf_to_fprx2_0" for consistency, fix constraint. + (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for + consistency, fix constraint. + +2021-01-08 Ilya Leoshkevich + + * config/s390/s390-c.c (s390_def_or_undef_macro): Accept + callables instead of mask values. + (struct target_flag_set_p): New predicate. + (s390_cpu_cpp_builtins_internal): Define or undefine + __LONG_DOUBLE_VX__ macro. + +2021-01-08 H.J. Lu + + PR target/98482 + * config/i386/i386.c (x86_function_profiler): Use R10 and R11 + to call mcount in large model with PIC for NO_PROFILE_COUNTERS + targets. + +2021-01-08 Richard Biener + + * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table. + +2021-01-08 Richard Biener + + * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix. + (vect_build_slp_tree): On cache hit release the matched + scalar stmts vector. + * tree-vect-stmts.c (vectorizable_store): Properly free + vec_oprnds before possibly gathering them again. + +2021-01-08 Richard Biener + + PR tree-optimization/98544 + * tree-vect-slp.c (vect_optimize_slp): Always materialize + permutes at a permute node. + +2021-01-08 H.J. Lu + + PR target/98482 + * config/i386/i386.c (x86_function_profiler): Use R10 to call + mcount in large model. Sorry for large model with PIC. + +2021-01-08 Jakub Jelinek + + PR target/98585 + * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg, + ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm, + ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of + TargetSave and initialize for variables with enum types. + (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=, + mstack-protector-guard-symbol=): Add Save. + * config/i386/i386-options.c (ix86_function_specific_save, + ix86_function_specific_restore): Don't save or restore x_ix86_cmodel, + x_ix86_incoming_stack_boundary_arg, x_ix86_pmode, + x_ix86_preferred_stack_boundary_arg, x_ix86_regparm, + x_ix86_veclibabi_type. + +2021-01-08 Richard Sandiford + + * config/aarch64/aarch64-sve.md (*cnot): Extend from + SVE_FULL_I to SVE_I. + (*cond_cnot_2, *cond_cnot_any): Likewise. + +2021-01-08 Richard Sandiford + + * config/aarch64/aarch64-sve.md (*cond_uxt_2): Extend from + SVE_FULL_I to SVE_I. + (*cond_uxt_any): Likewise. + +2021-01-08 Kyrylo Tkachov + + * config/aarch64/iterators.md (Vwhalf): New iterator. + * config/aarch64/aarch64-simd.md (aarch64_adalp_3): + Rename to... + (aarch64_adalp): ... This. Make more + builtin-friendly. + (sadv16qi): Adjust callsite of the above. + * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New + builtins. + * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using + builtins. + (vpadal_s16): Likewise. + (vpadal_u8): Likewise. + (vpadal_u16): Likewise. + (vpadalq_s8): Likewise. + (vpadalq_s16): Likewise. + (vpadalq_s32): Likewise. + (vpadalq_u8): Likewise. + (vpadalq_u16): Likewise. + (vpadalq_u32): Likewise. + +2021-01-08 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (aarch64_abd_3): + Rename to... + (aarch64_abd): ... This. + (sadv16qi): Adjust callsite of the above. + * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define + builtins. + * config/aarch64/arm_neon.h (vabd_s8): Reimplement using + builtin. + (vabd_s16): Likewise. + (vabd_s32): Likewise. + (vabd_u8): Likewise. + (vabd_u16): Likewise. + (vabd_u32): Likewise. + (vabdq_s8): Likewise. + (vabdq_s16): Likewise. + (vabdq_s32): Likewise. + (vabdq_u8): Likewise. + (vabdq_u16): Likewise. + (vabdq_u32): Likewise. + +2021-01-08 Kyrylo Tkachov + + * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define + builtins. + * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin. + (vaba_s16): Likewise. + (vaba_s32): Likewise. + (vaba_u8): Likewise. + (vaba_u16): Likewise. + (vaba_u32): Likewise. + (vabaq_s8): Likewise. + (vabaq_s16): Likewise. + (vabaq_s32): Likewise. + (vabaq_u8): Likewise. + (vabaq_u16): Likewise. + (vabaq_u32): Likewise. + +2021-01-08 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (aba_3): Rename to... + (aarch64_aba): ... This. Handle uaba as well. + Change RTL pattern to match. + +2021-01-08 Kito Cheng + + * common/config/riscv/riscv-common.c (riscv_current_subset_list): New. + * config/riscv/riscv-c.c (riscv-subset.h): New. + (INCLUDE_STRING): Define. + (riscv_cpu_cpp_builtins): Add new style architecture extension + test macros. + * config/riscv/riscv-subset.h (riscv_subset_list::begin): New. + (riscv_subset_list::end): New. + (riscv_current_subset_list): New. + +2021-01-08 Kito Cheng + + * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION): + Move to riscv-subset.h. + (struct riscv_subset_t): Ditto. + (class riscv_subset_list): Ditto. + * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move + from riscv-common.c. + (struct riscv_subset_t): Ditto. + (class riscv_subset_list): Ditto. + * config/riscv/t-riscv ($(common_out_file)): Add file + dependency. + +2021-01-07 Jakub Jelinek + + PR target/98567 + * config/i386/i386.md (*bmi_blsi__cmp, *bmi_blsi__ccno): + New define_insn patterns. + +2021-01-07 Richard Sandiford + + * config/aarch64/aarch64-sve.md (@cond_) + (*cond__2): Extend from SVE_FULL_I to SVE_I. + (*cond__any): Likewise. + +2021-01-07 Richard Sandiford + + PR tree-optimization/98560 + * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond. + * internal-fn.c (vec_cond_mask_direct): Get the data mode from + argument 1. + (vec_cond_direct): Likewise argument 2. + (vec_condu_direct, vec_condeq_direct): Delete. + (expand_vect_cond_optab_fn): Rename to... + (expand_vec_cond_optab_fn): ...this, replacing old macro. + (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete. + (expand_vect_cond_mask_optab_fn): Rename to... + (expand_vec_cond_mask_optab_fn): ...this, replacing old macro. + (direct_vec_cond_mask_optab_supported_p): Treat the optab as a + convert optab. + (direct_vec_cond_optab_supported_p): Likewise. + (direct_vec_condu_optab_supported_p): Delete. + (direct_vec_condeq_optab_supported_p): Delete. + * gimple-isel.cc: Include internal-fn.h. + (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported + before using it. + +2021-01-07 Richard Sandiford + + PR tree-optimization/98560 + * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use + IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK. + +2021-01-07 Uroš Bizjak + + * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn, + rotate_insn and optab code attributes. + Update all uses to merged code attribute. + * config/i386/sse.md: Update all uses to merged code attribute. + * config/i386/mmx.md: Update all uses to merged code attribute. + +2021-01-07 Jakub Jelinek + + PR tree-optimization/98568 + * gimple-ssa-store-merging.c (bswap_view_convert): New function. + (bswap_replace): Use it. + +2021-01-06 Vladimir N. Makarov + + PR rtl-optimization/97978 + * lra-int.h (lra_hard_reg_split_p): New external. + * lra.c (lra_hard_reg_split_p): New global. + (lra): Set up lra_hard_reg_split_p after splitting a hard reg. + * lra-assigns.c (lra_assign): Don't check allocation correctness + after hard reg splitting. + +2021-01-06 Martin Sebor + + PR c++/98305 + * builtins.c (new_delete_mismatch_p): New overload. + (new_delete_mismatch_p (tree, tree)): Call it. + +2021-01-06 Alexandre Oliva + + * Makefile.in (T_GLIMITS_H): New. + (stmp-int-hdrs): Depend on it, use it. + * config/t-vxworks (T_GLIMITS_H): Override it. + (vxw-glimits.h): New. + +2021-01-06 Richard Biener + + PR tree-optimization/98513 + * value-range.cc (intersect_ranges): Compare the upper bounds + for the expected relation. + +2021-01-06 Gerald Pfeifer + + Revert: + 2020-12-28 Gerald Pfeifer + + * doc/standards.texi (HSAIL): Remove section. + +2021-01-05 Samuel Thibault + + * configure: Re-generate. + +2021-01-05 Jakub Jelinek + + * doc/invoke.texi (-std=c++20): Adjust for the publication of + ISO 14882:2020 standard. + * doc/standards.texi: Likewise. + +2021-01-05 Jakub Jelinek + + PR tree-optimization/94802 + * expr.h (maybe_optimize_sub_cmp_0): Declare. + * expr.c: Include tree-pretty-print.h and flags.h. + (maybe_optimize_sub_cmp_0): New function. + (do_store_flag): Use it. + * cfgexpand.c (expand_gimple_cond): Likewise. + +2021-01-05 Richard Sandiford + + * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents. + * rtlanal.c (simple_regno_set): Tweak description to clarify the + RMW condition. + +2021-01-05 Richard Biener + + PR tree-optimization/98516 + * tree-vect-slp.c (vect_optimize_slp): Permute the incoming + lanes when materializing on a VEC_PERM node. + (vectorizable_slp_permutation): Dump the permute properly. + +2021-01-05 Richard Biener + + * tree-vect-slp.c (vect_slp_region): Move debug counter + to cover individual subgraphs. + +2021-01-05 Richard Biener + + PR tree-optimization/98428 + * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject + vector lane extracts for loop vectorization. + +2021-01-05 Jakub Jelinek + + PR tree-optimization/98514 + * tree-ssa-reassoc.c (bb_rank): Change type from long * to + int64_t *. + (operand_rank): Change type from hash_map to + hash_map. + (phi_rank): Change return type from long to int64_t. + (loop_carried_phi): Change block_rank variable type from long to + int64_t. + (propagate_rank): Change return type, rank parameter type and + op_rank variable type from long to int64_t. + (find_operand_rank): Change return type from long to int64_t + and change slot variable type from long * to int64_t *. + (insert_operand_rank): Change rank parameter type from long to + int64_t. + (get_rank): Change return type and rank variable type from long to + int64_t. Use PRId64 instead of ld to print the rank. + (init_reassoc): Change rank variable type from long to int64_t + and adjust correspondingly bb_rank and operand_rank initialization. + +2021-01-05 Jakub Jelinek + + PR tree-optimization/96928 + * tree-ssa-phiopt.c (xor_replacement): New function. + (tree_ssa_phiopt_worker): Call it. + +2021-01-05 Jakub Jelinek + + PR tree-optimization/96930 + * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended + from narrower value which has the same type as 1 << B, perform + the right shift on the narrower value followed by extension. + +2021-01-05 Jakub Jelinek + + PR tree-optimization/96239 + * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New + function. + (get_status_for_store_merging): Don't return BB_INVALID for blocks + with potential bswap optimizable CONSTRUCTORs. + (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap + if possible. + +2021-01-05 Richard Biener + + PR tree-optimization/98381 + * tree.c (vector_element_bits): Properly compute bool vector + element size. + * tree-vect-loop.c (vectorizable_live_operation): Properly + compute the last lane bit offset. + +2021-01-05 Uroš Bizjak + + PR target/98522 + * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split. + Clear the top 64 bytes of the input XMM register. + (sse_cvttps2pi): Ditto. + +2021-01-05 Uroš Bizjak + + PR target/98521 + * config/i386/xopintrin.h (_mm256_cmov_si256): New. + +2021-01-05 H.J. Lu + + PR target/98495 + * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned + short first. + +2021-01-05 Claudiu Zissulescu + + * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST. + (umaddsidi4_split): Likewise. + +2021-01-05 liuhongt + + PR target/98461 + * config/i386/sse.md (*sse2_pmovskb_zexthisi): New + define_insn_and_split for zero_extend of subreg HI of pmovskb + result. + (*sse2_pmovskb_zexthisi): Add new combine splitters for + zero_extend of not of subreg HI of pmovskb result. + +2021-01-05 Richard Sandiford + + PR target/97269 + * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs + nested in CONSTs. + * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use + convert_memory_address to convert symbolic immediates to ptr_mode + before forcing them to memory. + +2021-01-05 Richard Sandiford + + PR rtl-optimization/97144 + * recog.c (constrain_operands): Initialize matching_operand + for each alternative, rather than only doing it once. + +2021-01-05 Richard Sandiford + + PR rtl-optimization/98403 + * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain + why we don't remove call clobbers. + (function_info::apply_changes_to_insn): Don't attempt to add + call clobbers here. + +2021-01-05 Richard Sandiford + + PR tree-optimization/98371 + * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function. + (vect_analyze_loop): If an epilogue loop appears to be cheaper + than the main loop, re-analyze it as a main loop before adopting + it as a main loop. + +2021-01-05 Rainer Orth + + PR c++/98316 + * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL. + * aclocal.m4, configure: Regenerate. + * Makefile.in (NETLIBS): Define. + (BACKEND): Remove $(CODYLIB). + +2021-01-05 Jakub Jelinek + + PR rtl-optimization/98334 + * simplify-rtx.c (simplify_context::simplify_binary_operation_1): + Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y. + +2021-01-05 Bernd Edlinger + + * tree-inline.c (expand_call_inline): Restore input_location. + Return result from recursive call. + +2021-01-04 Richard Sandiford + + PR tree-optimization/95401 + * config/aarch64/aarch64-sve-builtins.cc + (gimple_folder::load_store_cookie): Use bits rather than bytes + for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE. + * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise. + * tree-vect-stmts.c (vectorizable_store): Likewise. + (vectorizable_load): Likewise. + +2021-01-04 Richard Biener + + PR tree-optimization/98308 + * tree-vect-stmts.c (vectorizable_load): Set invariant mask + SLP vectype. + +2021-01-04 Jakub Jelinek + + PR tree-optimization/95771 + * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types + with precision smaller than int's precision and types with precision + twice as large as long long. Formatting fixes. + +2021-01-04 Richard Biener + + PR tree-optimization/98464 + * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ... + (vn_valueize_wrapper): ... this. Temporarily adjust vn_context_bb. + (process_bb): Adjust. + +2021-01-04 Matthew Malcomson + + PR other/98437 + * doc/invoke.texi (-fsanitize=address): Fix wording describing + clash with -fsanitize=hwaddress. + +2021-01-04 Richard Biener + + PR tree-optimization/98282 + * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on + invariants as VN_NARY. + +2021-01-04 Richard Sandiford + + PR target/89057 + * config/aarch64/aarch64-simd.md (aarch64_combine): Accept + aarch64_simd_reg_or_zero for operand 2. Use the combinez patterns + to handle zero operands. + +2021-01-04 Richard Sandiford + + * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function. + (offset_6bit_unsigned_scaled_p): Fix typo in comment. + (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range + [-32, 31]. + +2021-01-04 Richard Biener + + PR tree-optimization/98393 + * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches + when hitting the limit. + +2021-01-04 Richard Biener + + PR tree-optimization/98291 + * tree-vect-loop.c (vectorizable_reduction): Bypass + associativity check for SLP reductions with VF 1. + +2021-01-04 Jakub Jelinek + + PR tree-optimization/96782 + * match.pd (x == ~x -> false, x != ~x -> true): New simplifications. + +2021-01-04 Bernd Edlinger + + * collect-utils.c (collect_execute): Check dumppfx. + * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix + to collect_execute. + (do_link): Add new parameter atsuffix. + (main): Handle -dumpdir option. Skip one argument for + -o, -isystem and -B options. + * gcc.c (make_at_file): New helper function. + (close_at_file): Use it. + +2021-01-02 Iain Sandoe + + * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust. + Amend handling for LD64_VERSION fallback defaults. + +2021-01-02 Iain Sandoe + + * config.gcc: Compute default version information + from the configured target. Likewise defaults for + ld64. + * config/darwin10.h: Removed. + * config/darwin12.h: Removed. + * config/darwin9.h: Removed. + * config/rs6000/darwin8.h: Removed. + +2021-01-02 Iain Sandoe + + * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete. + +2021-01-02 Iain Sandoe + + * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here.. + * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here. + +2021-01-02 Iain Sandoe + + * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from + here... + * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here. + +2021-01-02 Iain Sandoe + + * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec + for the Darwin10 unwinder stub from here ... + * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here. + +2021-01-02 Iain Sandoe + + * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF + (ASM_DEBUG_SPEC):Only define if the assembler supports + stabs. + (PREFERRED_DEBUGGING_TYPE): Default to DWARF. + (DARWIN_PREFER_DWARF): Define. + * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove. + (DARWIN_PREFER_DWARF): Likewise + (DSYMUTIL_SPEC): Likewise. + (COLLECT_RUN_DSYMUTIL): Likewise. + (ASM_DEBUG_SPEC): Likewise. + (ASM_DEBUG_OPTION_SPEC): Likewise. + +2021-01-02 Jan Hubicka + + * cfg.c (free_block): ggc_free bb. + +2021-01-01 Jakub Jelinek + + * gcc.c (process_command): Update copyright notice dates. + * gcov-dump.c (print_version): Ditto. + * gcov.c (print_version): Ditto. + * gcov-tool.c (print_version): Ditto. + * gengtype.c (create_file): Ditto. + * doc/cpp.texi: Bump @copying's copyright year. + * doc/cppinternals.texi: Ditto. + * doc/gcc.texi: Ditto. + * doc/gccint.texi: Ditto. + * doc/gcov.texi: Ditto. + * doc/install.texi: Ditto. + * doc/invoke.texi: Ditto. + +2021-01-01 Jakub Jelinek + + * ChangeLog-2020: Rotate ChangeLog. New file. + +Copyright (C) 2021 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/ada/ChangeLog-2021 b/gcc/ada/ChangeLog-2021 new file mode 100644 index 0000000..451d7b2 --- /dev/null +++ b/gcc/ada/ChangeLog-2021 @@ -0,0 +1,12135 @@ +2021-12-28 Martin Liska + + * doc/share/gnu_free_documentation_license.rst: Replace http:// with https. + * gnat-style.texi: Likewise. + * gnat_rm.texi: Likewise. + * gnat_ugn.texi: Likewise. + +2021-12-09 Jakub Jelinek + + PR pch/71934 + * gcc-interface/decl.c (gt_pch_nx): Pass NULL as new middle argument + to op. + +2021-12-02 Eric Botcazou + + * gcc-interface/Make-lang.in (ADA_GENERATED_FILES): Add warning. + +2021-12-02 Marc Poulhiès + + * gcc-interface/a-assert.ads, gcc-interface/a-assert.adb: Remove. + +2021-12-02 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not back-annotate a + maximum size for the Esize of limited record and concurrent types. + +2021-12-02 Eric Botcazou + + * gcc-interface/gigi.h (aggregate_type_contains_array_p): Delete. + (type_has_variable_size): Declare. + * gcc-interface/decl.c (adjust_packed): Return 0 only if the field + type is an array with variable size. + * gcc-interface/utils.c (aggregate_type_contains_array_p): Make + static and remove SELF_REFERENTIAL parameter. + (type_has_variable_size): Make public. + (create_field_decl): Adjust call to aggregate_type_contains_array_p. + +2021-12-02 Justin Squirek + + * gcc-interface/decl.c (gnat_to_gnu_entity): Skip normal + processing for Itypes that are E_Class_Wide_Subtype with + Equivalent_Type set. + +2021-12-02 Eric Botcazou + + * gcc-interface/trans.c (Call_to_gnu): Rename GNAT_NAME variable + into GNAT_SUBPROG to avoid later shadowing. + +2021-12-02 Yannick Moy + + * libgnat/s-arit32.adb: Add ghost instances and lemmas. + (Scaled_Divide32): Add ghost code to prove. Minor code + modification to return early in error when divisor is zero. + * libgnat/s-arit32.ads: Add ghost instances and utilities. + (Scaled_Divide32): Add contract. + +2021-12-02 Eric Botcazou + + * sprint.adb (Source_Dump): Set both Print_Generated_Code and + Debug_Generated_Code to False at the end. + +2021-12-02 Marc Poulhiès + + * sem_aggr.adb (Resolve_Array_Aggregate): Filter out nodes not + coming from source before emitting the warning. + +2021-12-02 Yannick Moy + + * libgnat/s-aridou.adb (Log_Single_Size, Big_0): New ghost + constants. + (Lemma_Mult_Non_Negative, Lemma_Mult_Non_Positive, + Lemma_Not_In_Range_Big2xx64): New lemmas on big integers. + (Double_Divide): Remove justifications. Amend for that local + lemma Prove_Overflow_Case. + (Scaled_Divide): Remove justifications. Insert for that local + lemmas Prove_Negative_Dividend, Prove_Positive_Dividend and + Prove_Q_Too_Big, and amend local lemma Prove_Overflow. To prove + the loop invariant on (Shift mod 2 = 0), introduce local ghost + variable Iter to count loop iterations, and relate its value to + the value of Shift through Log_Single_Size, with the help of + local lemma Prove_Power. Deal with proof regression by adding + new local lemma Prove_First_Iteration and local ghost variable + D123. + * libgnat/s-arit64.ads (Multiply_With_Ovflo_Check64): Remove + unnecessary Pure_Function on function as package is Pure. + +2021-12-02 Yannick Moy + + * libgnat/s-widthi.adb: Add pragma Annotate. + +2021-12-02 Yannick Moy + + * libgnat/s-widint.ads: Mark in SPARK. + * libgnat/s-widlli.ads: Likewise. + * libgnat/s-widllli.ads: Likewise. + * libgnat/s-widlllu.ads: Likewise. + * libgnat/s-widllu.ads: Disable ghost/contract. + * libgnat/s-widthi.adb: Replicate and adapt the proof from + s-widthu.adb. + * libgnat/s-widthi.ads: Add minimal postcondition. + * libgnat/s-widthu.adb: Fix comments in the modular case. + * libgnat/s-widthu.ads: Add minimal postcondition. + * libgnat/s-widuns.ads: Disable ghost/contract. + +2021-12-02 Piotr Trojanek + + * rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_Suspension_Object. + * sem_util.adb (Is_Descendant_Of_Suspension_Object): Use Is_RTE. + (Is_Suspension_Object): Remove body. + * sem_util.ads (Is_Suspension_Object): Remove spec. + * snames.ads-tmpl (Name_Suspension_Object): Remove, now + unreferenced. + +2021-12-02 Piotr Trojanek + + * exp_util.adb (Append_Freeze_Action): Tune whitespace to make + the code look similar to Append_Freeze_Actions, which takes a + List_Id. + * sem_ch6.adb (Analyze_Return_Type): Cleanup with + Append_Freeze_Action. + * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Likewise. + * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Likewise. + * contracts.adb (Add_Indirect_Call_Wrapper): Remove extra call + to Ensure_Freeze_Node. + (Add_Call_Helper): Likewise. + * freeze.adb (Check_Inherited_Conditions): Likewise. + (Attribute_Renaming): Likewise. + * sem_ch8.adb: Likewise. + +2021-12-02 Piotr Trojanek + + * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst + (No_Dispatching_Calls): Fix whitespace in example code. + * gnat_rm.texi: Regenerate. + * exp_ch13.adb (Expand_N_Freeze_Entity): Replace low-level + membership test with a high-level wrapper. + * exp_ch3.adb (Expand_Freeze_Record_Type): Remove unnecessary + initialization of list of wrapper declarations and unnecessary + guard for list of their bodies (if no bodies are created then + Append_Freeze_Actions is a no-op). + +2021-12-02 Marc Poulhiès + + * exp_imgv.adb (Append_Table_To): Add new parameter to + Make_Aggregate call. + * gen_il-fields.ads (Opt_Field_Enum): + Add Is_Parenthesis_Aggregate and Is_Enum_Array_Aggregate. + * gen_il-gen-gen_nodes.adb (Union): Add Is_Enum_Array_Aggregate + and Is_Parenthesis_Aggregate field to N_Aggregate. + * libgnarl/s-interr.adb (User_Handler, User_Entry, Blocked) + (Ignored, Last_Unblocker, Server_ID): Likewise. + * libgnarl/s-intman.ads (Keep_Unmasked, Reserve): Likewise. + * libgnarl/s-intman__posix.adb (Exception_Interrupts) + (Initialize): Likewise. + * libgnarl/s-mudido__affinity.adb (Create): Likewise. + * libgnarl/s-osinte__linux.ads (Unmasked, Reserved): Likewise. + * libgnarl/s-taprop__linux.adb (Create_Task, Set_Task_Affinity) + * libgnarl/s-tasdeb.adb (Trace_On): Likewise. + * libgnarl/s-tasdeb.ads (Known_Tasks): Likewise. + * libgnarl/s-tasinf__linux.ads (Any_CPU, No_CPU): Likewise. + * libgnarl/s-taskin.adb (Initialize_ATCB): Likewise. + * libgnarl/s-taskin.ads (Ada_Task_Control_Block): Likewise. + * libgnarl/s-tasren.adb (Default_Treatment) + (New_State): Likewise. + * libgnarl/s-tassta.adb (Trace_Unhandled_Exception_In_Task): + Likewise. + * libgnarl/s-tataat.adb (Index_Array): Likewise. + * libgnarl/s-tpobop.adb (New_State): Likewise. + * libgnat/a-calend.adb (Cumulative_Days_Before_Month) + (Leap_Second_Times): Likewise. + * libgnat/a-calend.ads (Days_In_Month): Likewise. + * libgnat/a-cfinve.adb (Insert): Likewise. + * libgnat/a-chahan.adb (Char_Map): Likewise. + * libgnat/a-chtgbo.adb (Clear): Likewise. + * libgnat/a-cobove.adb ("&", Insert, To_Vector): Likewise. + * libgnat/a-cofove.adb (Insert, To_Vector): Likewise. + * libgnat/a-cohata.ads (Hash_Table_Type): Likewise. + * libgnat/a-coinve.adb (Merge, Insert, Insert_Space): Likewise. + * libgnat/a-convec.adb (Insert, To_Vector): Likewise. + * libgnat/a-coprnu.ads (Primes): Likewise. + * libgnat/a-direct.adb (Empty_String): Use regular "" instead + of aggregate. + (Start_Search_Internal, Name_Case_Equivalence, Search) + (Start_Search, Start_Search_Internal): Use bracket for + aggregate. + * libgnat/a-direct.ads (Start_Search,Search): Likewise. + * libgnat/a-direio.adb (Zeroes): Likewise. + * libgnat/a-nbnbre.adb (Leading_Padding, Trailing_Padding) + (Numerator_Image): Likewise. + * libgnat/a-ngrear.adb (Jacobi): Likewise. + * libgnat/a-stbubo.adb (Get_UTF_8): Likewise. + * libgnat/a-stbufo.adb (Put): Likewise. + * libgnat/a-stbuun.adb (Get_UTF_8): Likewise. + * libgnat/a-stbuut.adb (Put_7bit, Put_Character) + (Put_Wide_Character, Put_Wide_Wide_Character): Likewise. + * libgnat/a-stmaco.ads (Control_Set,Graphic_Set,Letter_Set) + (Lower_Set, Upper_Set, Basic_Set, Decimal_Digit_Set) + (Hexadecimal_Digit_Set, Alphanumeric_Set, Special_Set) + (ISO_646_Set): Likewise. + * libgnat/a-strbou.ads (Insert, Tail, "*", Replicate) + (Null_Bounded_String): Likewise. + * libgnat/a-strfix.ads (Head, Tail): Likewise. + * libgnat/a-strmap.adb (To_Domain, Lemma_Is_Sorted): Likewise. + * libgnat/a-strmap.ads (Null_Set): Likewise. + * libgnat/a-strsup.adb (Super_Head, Super_Replicate) + (Super_Tail): Likewise. + * libgnat/a-strsup.ads (Super_Head, Super_Tail, Times) + (Super_Replicate): Likewise. + * libgnat/a-sttebu.adb (Put_UTF8, Wide_Put_UTF_16): Likewise. + * libgnat/a-stuten.ads (BOM_16): Likewise. + * libgnat/a-stwibo.ads (Null_Bounded_Wide_String): Likewise. + * libgnat/a-stwima.ads (Null_Range): Likewise. + * libgnat/a-stwisu.adb (Super_Head, Super_Replicate) + (Super_Tail): Likewise. + * libgnat/a-stzbou.ads + (Null_Bounded_Wide_Wide_String): Likewise. + * libgnat/a-stzmap.ads (Null_Range): Likewise. + * libgnat/a-stzsup.adb (Super_Head, Super_Replicate) + (Super_Tail, Super_Trim): Likewise. + * libgnat/a-swmwco.ads (Control_Ranges, Graphic_Ranges) + (Letter_Ranges, Lower_Ranges, Upeer_Ranges, Basic_Ranges) + (Decimal_Digit_Ranges, Hexadecimal_Digit_Ranges) + (Alphanumeric_Ranges, Special_Graphic_Ranges, ISO_646_Ranges) + (Character_Ranges, Lower_Case_Mapping, Upper_Case_Mapping) + (Basic_Mapping): Likewise. + * libgnat/a-szmzco.ads (Control_Ranges, Graphic_Ranges) + (Letter_Ranges, Lower_Ranges, Upeer_Ranges, Basic_Ranges) + (Decimal_Digit_Ranges, Hexadecimal_Digit_Ranges) + (Alphanumeric_Ranges, Special_Graphic_Ranges, ISO_646_Ranges) + (Character_Ranges, Lower_Case_Mapping, Upper_Case_Mapping) + (Basic_Mapping): Likewise. + * libgnat/a-teioed.adb (Format_Number): Likewise. + * libgnat/a-wtedit.adb (Format_Number): Likewise. + * libgnat/a-ztedit.adb (Format_Number): Likewise. + * libgnat/g-arrspl.adb (Separators): Likewise. + * libgnat/g-catiio.adb (Month_Name_To_Number): Likewise. + * libgnat/g-cgideb.adb (NL, Title): Likewise. + * libgnat/g-comlin.adb (Internal_Initialize_Option_Scan) + (Display_Section_Help): Likewise. + * libgnat/g-comlin.ads (Opt_Parser_Data): Likewise. + * libgnat/g-debpoo.adb (Set_Dead_Beef, Dump): Likewise. + * libgnat/g-expect.adb (Expect, Has_Process, Send): Likewise. + * libgnat/g-forstr.adb ("+", Get_Formatted): Likewise. + * libgnat/g-memdum.adb (Dump): Likewise. + * libgnat/g-rannum.adb (Image): Likewise. + * libgnat/g-sechas.adb (Final, HMAC_Initial_Context): Likewise. + * libgnat/g-sehamd.ads (Initial_State): Likewise. + * libgnat/g-sehash.ads (Initial_State): Likewise. + * libgnat/g-sercom.ads (Data_Rate_Value): Likewise. + * libgnat/g-sercom__linux.adb (C_Data_Rate, C_Bits, C_Stop_Bits) + (C_Parity): Likewise. + * libgnat/g-shsh32.ads (K, Transform): Likewise. + * libgnat/g-shsh64.ads (K, Transform): Likewise. + * libgnat/g-socket.adb (Levels, Modes, Shutmodes, Requests) + (Options, Flags, Get_Name_Info, Image): Likewise. + * libgnat/g-socket.ads (Inet_Addr_Bytes_Length, Inet_Addr_Type) + (IPv4_To_IPv6_Prefix, Any_Inet_Addr, Any_Inet6_Addr) + (No_Inet_Addr, Broadcast_Inet_Addr, Loopback_Inet_Addr) + (Loopback_Inet6_Addr, Unspecified_Group_Inet_Addr) + (All_Hosts_Group_Inet_Addr, All_Routers_Group_Inet_Addr) + (Unspecified_Group_Inet6_Addr, All_Hosts_Group_Inet6_Addr) + (All_Routers_Group_Inet6_Addr): Likewise. + * libgnat/g-socpol.adb (To_C, Status, Get_Events): Likewise. + * libgnat/g-socpol.ads (Input_Event, Output_Event, Both_Event) + (Error_Event): Likewise. + * libgnat/g-sothco.ads (Families, Lengths, Sockaddr): Likewise. + * libgnat/g-spipat.adb (OK_For_Simple_Arbno): Likewise. + * libgnat/i-cobol.ads (Ada_To_COBOL, COBOL_To_Ada): Likewise. + * libgnat/i-pacdec.adb (Packed_Byte): Likewise. + * libgnat/i-pacdec.ads (Packed_Size): Likewise. + * libgnat/s-bitops.adb (Masks): Likewise. + * libgnat/s-crc32.adb (Table): Likewise. + * libgnat/s-gearop.adb (Unit_Matrix, Unit_Vector): Likewise. + * libgnat/s-genbig.adb (Out_data, Zero_Data, Big_Exp, Big_Mul) + (To_Bignum, To_String, Image, Leading_Padding): Likewise. + * libgnat/s-htable.adb (Reset): Likewise. + * libgnat/s-imgcha.adb (C0, C1): Likewise. + * libgnat/s-powflt.ads (Powten): Likewise. + * libgnat/s-powlfl.ads (Powten): Likewise. + * libgnat/s-powllf.ads (Powten): Likewise. + * libgnat/s-rannum.adb (Matrix_A, Random_Float_Template, Image): + Likewise. + * libgnat/s-rannum.ads (Generator): Likewise. + * libgnat/s-regexp.adb (Compile,Create_Primary_Table) + (Create_Primary_Table_Glob, Create_Secondary_Table, Compile): + Likewise. + * libgnat/s-regpat.adb (Bit_Conversion, Set, Dump_Until) + (Dump_Current, Dump_Error, Try, Reset_Class): Likewise. + * libgnat/s-regpat.ads (Pattern_Matcher, Never_Match): Likewise. + * libgnat/s-scaval__128.adb (Initialize): Likewise. + * libgnat/s-statxd.adb (Fields, W_F, W_LF) + (W_LLF, W_SF): Likewise. + * libgnat/s-stausa.adb (Initialize, Initialize_Analyzer) + (Output_Results): Likewise. + * libgnat/s-strops.adb (Str_Concat_SC): Likewise. + * libgnat/s-valrea.adb (Maxexp32, Maxexp64, Maxexp80): Likewise. + * libgnat/s-wchcon.ads (WC_Encoding_Letters) + (WC_Longest_Sequences): Likewise. + * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Set + Is_Parenthesis_Aggregate when creating a N_Aggregate using + parenthesis. + * scng.adb (Scan): Lower version needed for bracket syntax from + Extensions to Ada2022. + * sem_aggr.adb (Resolve_Aggregate): Raise error for container + aggregate using parenthesis instead of bracket. + (Resolve_Array_Aggregate): Raise warning for aggregate using + parenthesis in Ada2022 with obsolescent warning enabled and not + in GNAT mode. + * sem_util.ads (Check_Ambiguous_Aggregate): Typo fix in comment. + +2021-12-02 Piotr Trojanek + + * libgnarl/a-taside.ads (Activation_Is_Complete): Add pragma + Inline. + +2021-12-02 Eric Botcazou + + * sem_ch12.adb (Freeze_Package_Instance): Consistently consider + the freeze node of the parent and use large inequality for + Slocs. + (Freeze_Subprogram_Instance): Likewise. + (Insert_Freeze_Node_For_Instance): For an instance in a package + spec with no source body that immediately follows, consider the + body of the package for the placement of the freeze node and go + to the outer level if there is no such body. + +2021-12-02 Piotr Trojanek + + * exp_ch13.ads (Expand_N_Freeze_Entity): Add note about a SPARK + twin. + * exp_ch3.ads (Freeze_Type): Likewise. + * exp_spark.adb (Expand_SPARK_N_Freeze_Entity): Mimic what is + done in Freeze_Entity. + (SPARK_Freeze_Type): Mimic what is done in Freeze_Type; add call + to Make_Predefined_Primitive_Eq_Spec. + +2021-12-02 Piotr Trojanek + + * exp_ch3.adb (Make_Predefined_Primitive_Specs): Move code for + spec of dispatching equality. + (Predefined_Primitive_Bodies): Move code for body if dispatching + equality. + (Make_Predefined_Primitive_Eq_Spec): Separated code for spec of + dispatching equality. + (Predefined_Primitive_Eq_Body): Separated code for body of + dispatching equality. + * exp_ch3.ads: Update. + +2021-12-02 Piotr Trojanek + + * libgnat/s-valuti.ads (Scan_Natural_Ghost): Split body from + spec and put it into private part, so that GNATprove can pick it + both when analysing the unit and its clients. + +2021-12-02 Piotr Trojanek + + * exp_aggr.adb, exp_ch6.adb, par-ch4.adb, sem_ch13.adb: Remove + extra space after ":=" symbol. + * gen_il-gen.adb: Likewise; add missing headerbox. + +2021-12-02 Richard Kenner + + * rtsfind.adb (Maybe_Add_With): Ensure that the added "with" is + never marked as ignored ghost code. + +2021-12-02 Piotr Trojanek + + * freeze.adb (Freeze_Entity): Replace First_Entity/Next_Entity + with First_Component/Next_Component; remove condition with Ekind + equal to E_Component. + * sem_ch13.adb (Check_Record_Representation_Clause): Likewise + for component-or-discriminant. + * sem_util.adb (Is_Fully_Initialized_Type): Likewise; rename Ent + to a more specific Comp. + * sem_warn.adb (Check_References): Likewise. + +2021-12-02 Piotr Trojanek + + * sem_warn.adb (Warn_On_Unassigned_Out_Parameter): Move inner + loop at the beginning of subprogram, so it is executed only + once; fix order in the "add an ad hoc" phrase. + +2021-12-02 Piotr Trojanek + + * sem_warn.adb (Check_References): Remove redundant condition. + +2021-12-02 Doug Rupp + + * vxworks7-cert-rtp-link__ppcXX.spec: New file. + * Makefile.rtl: Use it. + +2021-12-02 Yannick Moy + + * libgnat/i-c.adb: Add ghost code. + (C_Length_Ghost): New ghost functions to query the C length of a + string. + (To_Ada): Insert constant Count_Cst where needed to comply with + SPARK. Homogeneize code between variants for char, wchar_t, + char16_t and char32_t. Use char16_nul and char32_nul + systematically instead of their value. Fix the type of index To + to be Integer instead of Positive, to avoid a possible range + check failure on an empty Target. Insert an exit statement to + avoid a possible overflow failure when the last index in Target + is Natural'Last (possibly on a small string as well). + * libgnat/i-c.ads: Add contracts. + (C_Length_Ghost): New ghost functions to query the C length of a + string. + * libgnat/s-os_lib.adb: Remove pragma Compiler_Unit_Warning + causing a spurious error during compilation of GNAT, as this + pragma is not needed anymore now that we bootstrap (stage1) with + the base compiler runtime. + +2021-12-02 Piotr Trojanek + + * libgnarl/a-taside.ads (Activation_Is_Complete): Add + precondition. + +2021-12-02 Piotr Trojanek + + * sem_ch3.adb (Check_Derived_Type): Rename local variables; fix + style in comment. + +2021-12-02 Yannick Moy + + * libgnat/s-valboo.adb (First_Non_Space_Ghost): Move to + utilities. + (Value_Boolean): Prefix call to First_Non_Space_Ghost. + * libgnat/s-valboo.ads (First_Non_Space_Ghost): Move to + utilities. + (Is_Boolean_Image_Ghost, Value_Boolean): Prefix call to + First_Non_Space_Ghost. + * libgnat/s-valuer.adb (Scan_Raw_Real): Adapt to change of + function Scan_Exponent to procedure. + * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Adapt to change of + function Scan_Exponent to procedure. + * libgnat/s-valuti.adb (First_Non_Space_Ghost): Function moved + here. + (Last_Number_Ghost): New ghost query function. + (Scan_Exponent): Change function with side-effects into + procedure, to mark in SPARK. Prove procedure wrt contract. + Change type of local P to avoid possible range check failure (it + is not known whether this can be activated by callers). + (Scan_Plus_Sign, Scan_Sign): Change type of local P to avoid + possible range check failure. Add loop invariants and assertions + for proof. + (Scan_Trailing_Blanks): Add loop invariant. + (Scan_Underscore): Remove SPARK_Mode Off. + * libgnat/s-valuti.ads (First_Non_Space_Ghost): Function moved + here. + (Last_Number_Ghost, Only_Number_Ghost, Is_Natural_Format_Ghost, + Scan_Natural_Ghost): New ghost query functions. + (Scan_Plus_Sign, Scan_Sign, Scan_Exponent, Scan_Trailing_Blanks, + Scan_Underscore): Add functional contracts. + +2021-12-02 Yannick Moy + + * libgnat/s-imgboo.adb: Mark in SPARK. + * libgnat/s-imgboo.ads: Mark in SPARK. Change from Pure to + Preelaborate unit in order to be able to depend on + System.Val_Bool. + (Image_Boolean): Functionally specify the result of the + procedure by calling System.Val_Bool.Value_Boolean on the + result. + * libgnat/s-valboo.adb: Mark in SPARK. + (First_Non_Space_Ghost): New ghost function. + (Value_Boolean): Change type of L and F to avoid possible range + check failure on empty Str. + * libgnat/s-valboo.ads: Mark in SPARK. Duplicate with-clause + from body in the spec to be able to call + System.Val_Util.Only_Space_Ghost in the contract. + (First_Non_Space_Ghost): New ghost function computing the first + non-space character in a string. + (Is_Boolean_Image_Ghost): New ghost function computing whether a + string is the image of a boolean value. + (Value_Boolean): Add in precondition the conditions to avoid + raising Constraint_Error. This precondition is never executed, + and only used in proof, thanks to the use of pragma + Assertion_Policy. Given that precondition, the postcondition can + simply check the first non-space character to decide whether + True or False is read. + * libgnat/s-valuti.adb: Mark in SPARK, but use SPARK_Mode Off on + all subprograms not yet proved. + (Bad_Value): Annotate expected exception. + (Normalize_String): Rewrite to avoid possible overflow when + incrementing F in the first loop. Add loop invariants. + * libgnat/s-valuti.ads: Mark in SPARK. + (Bad_Value): Add Depends contract to avoid warning on unused S. + (Only_Space_Ghost): New ghost function to query if string has + only space in the specified range. + (Normalize_String): Add functional contract. + (Scan_Exponent): Mark spec as not in SPARK as this function has + side-effects. + +2021-12-02 Pascal Obry + + * libgnat/g-socket.ads (Max_Name_Length): Initialize with + NI_MAXHOST. + +2021-12-02 Pascal Obry + + * libgnat/g-socket.ads: Minor style fix. + +2021-12-01 Eric Botcazou + + * einfo.ads (E_Decimal_Fixed_Point_Subtype): Fix pasto. + * freeze.adb (Freeze_Fixed_Point_Type): Retrieve the underlying type + of the first subtype and do not use a stale value of Small_Value. + * sem_res.adb (Resolve_Real_Literal): In the case of a fixed-point + type, make sure that the base type is frozen and use its Small_Value + to compute the corresponding integer value of the literal. + +2021-12-01 Piotr Trojanek + + * libgnat/a-cbdlli.ads (List): Remove extra space in Aggregate + aspect. + +2021-12-01 Gary Dismukes + + * doc/gnat_rm/implementation_defined_pragmas.rst: Add + documentation of the new form of formal subprogram default in + the section on language extensions (pragma Extensions_Allowed). + * gnat_rm.texi: Regenerate. + * gen_il-gen-gen_nodes.adb: Add Expression as a syntactic field + of N_Formal_(Abstract|Concrete)_Subprogram_Declaration nodes. + * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing + support for the new default of a parenthesized expression for + formal functions. Issue an error when extensions are not + allowed, suggesting use of -gnatX. Update comment with extended + syntax for SUBPROGRAM_DEFAULT. + * sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): Issue an + error when an expression default is given for an abstract formal + function. When a default expression is present for a formal + function, install the function's formals and preanalyze the + expression. + (Instantiate_Formal_Subprogram): Fix typo in RM paragraph in a + comment. When a formal function has a default expression, + create a body for the function that will evaluate the expression + and will be called when the default applies in an instantiation. + The implicit function is marked as inlined and as having + convention Intrinsic. + +2021-12-01 Eric Botcazou + + * sem_elab.adb (Previous_Suitable_Construct): New function declared + in the Early_Call_Region_Processor package. + (Find_ECR): Call it to get the previous node at the start. + (Include): Call it to get the previous node during the traversal. + +2021-12-01 Bob Duff + + * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Do not + follow the Corresponding_Spec pointer if Acts_As_Spec is True, + because Corresponding_Spec is Empty in that case, so we would + exit the loop prematurely, and incorrectly think we are not + inside a generic unit when we are. + +2021-12-01 Bob Duff + + * par-ch3.adb (P_Access_Type_Definition): If Not_Null_Subtype is + True, give an error in the access-to-subprogram cases. + +2021-12-01 Eric Botcazou + + * sem_ch12.adb (Freeze_Package_Instance): Move up. + +2021-12-01 Eric Botcazou + + * sem_ch12.adb (Freeze_Subprogram_Body): Rename into... + (Freeze_Subprogram_Instance): ...this and change the name of the + first parameter and local variables for the sake of consistency. + (Insert_Freeze_Node_For_Instance): Use local variable Par_Inst. + (Install_Body): Rename into... + (Freeze_Package_Instance): ...this, remove first parameter and + change the name of local variables for the sake of consistency. + Do not deal with the special case of incomplete actual types here + and do not insert the body. + (Instantiate_Package_Body): Deal with the special case of incomplete + actual types here and insert the body. Call Freeze_Package_Instance + only if expansion is done. + (Instantiate_Subprogram_Body): Minor consistency tweak. + +2021-12-01 Etienne Servais + + * sem_aggr.adb (Resolve_Aggregate): Fix typo in comment. + +2021-12-01 Steve Baird + + * sem_case.adb (Check_Bindings): Provide a second strategy for + implementing bindings and choose which strategy to use for a + given binding. The previous approach was to introduce a new + object and assign the bound value to the object. The new + approach is to introduce a renaming of a dereference of an + access value that references the appropriate subcomponent, so no + copies are made. The original strategy is still used if the + type of the object is elementary. When the renaming approach is + used, the initialization of the access value is not generated + until expansion. Until this missing initialization is added, the + tree looks like a known-at-compile-time dereference of a null + access value: Temp : Some_Access_Type; Obj : Designated_Type + renames Temp.all; This leads to problems, so a bogus initial + value is provided here and then later deleted during expansion. + (Check_Composite_Case_Selector): Disallow a case selector + expression that requires finalization. Note that it is ok if the + selector's type requires finalization, as long as the expression + itself doesn't have any "newly constructed" parts. + * exp_ch5.adb (Pattern_Match): Detect the case where analysis of + a general (i.e., composite selector type) case statement chose + to implement a binding as a renaming rather than by making a + copy. In that case, generate the assignments to initialize the + access-valued object whose designated value is later renamed + (and remove the bogus initial value for that object that was + added during analysis). + * sem_util.ads, sem_util.adb: Add new function + Is_Newly_Constructed corresponding to RM 4.4 term. + +2021-12-01 Richard Kenner + + * frontend.adb (Frontend): Do unnesting after ignored ghost code + has been removed. + * inline.adb (Analyze_Inlined_Bodies): Don't put ignored ghost + entities on inlined subprogram list. + +2021-12-01 Ghjuvan Lacambre + + * libgnarl/s-tasren.adb (Timed_Task_Entry_Call): Replace + Defer_Abort and Undefer_Abort with Defer_Abort_Nestable and + Undefer_Abort_Nestable. + +2021-12-01 Ghjuvan Lacambre + + * exp_ch7.adb (Cleanup_Record): Don't process parent. + +2021-12-01 Justin Squirek + + * sem_attr.adb (Type_Key): Avoid premature use warnings when the + prefix is a generic actual. + +2021-12-01 Richard Kenner + + * gnat1drv.adb (Gnat1drv): Force generation of object file if + compilation unit is an ignored ghost. + +2021-12-01 Patrick Bernardi + + * tracebak.c: Add AArch64 RTEMS support. + +2021-12-01 Patrick Bernardi + + * init.c: Add __gnat_error_handler and __gnat_install_handler + for RTEMS. + +2021-12-01 Eric Botcazou + + * sprint.ads (Source_Dump): Fix typo in comment. + * sprint.adb (Source_Dump): Set Dump_Freeze_Null for both -gnatG + and -gnatD. + * switch-c.adb (Scan_Front_End_Switches) <'D'>: Remove obsolete + kludge. + +2021-12-01 Yannick Moy + + * einfo.ads (Direct_Primitive_Operations): Update the doc to + indicate that this field is used for all types now. + * sem_ch4.adb (Try_Object_Operation): Add parameter + Allow_Extensions set to True to pretend that extensions are + allowed. + * sem_ch4.ads: Same. + * sem_ch6.adb: Do not require Extensions_Allowed. + * sem_ch8.adb (Find_Selected_Component): Remove duplicate + "where" in comment. Improve the error messages regarding use of + prefixed calls. + +2021-12-01 Yannick Moy + + * sem_util.adb (Is_Extended_Precision_Floating_Point_Type): New + function. + * sem_util.ads (Is_Extended_Precision_Floating_Point_Type): New + function. + +2021-12-01 Piotr Trojanek + + * exp_aggr.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb, + sem_elim.adb, sem_util.adb: Replace uses of Subprogram_Kind with + Is_Subprogram. + +2021-12-01 Piotr Trojanek + + * libgnat/a-coinho.ads: Sync whitespace with + a-coinho__shared.ads. + * libgnat/a-coinho__shared.ads: Sync whitespace with + a-coinho.ads. + +2021-12-01 Piotr Trojanek + + * Makefile.rtl (GNATRTL_TASKING_OBJS): Sort. + (GNATRTL_NONTASKING_OBJS): Sort. + +2021-12-01 Piotr Trojanek + + * Makefile.rtl: Remove extra whitespace in special compilation + rules. + +2021-12-01 Piotr Trojanek + + * doc/gnat_rm/the_gnat_library.rst (System.Atomic_Counters): + Sync description with comment in s-atocou.ads. + * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate. + +2021-12-01 Yannick Moy + + * sem_ch10.adb (Is_Private_Library_Unit): Move query to + Sem_Util for sharing. + * sem_ch7.adb (Analyze_Package_Body_Helper): Add continuation + message. + * sem_prag.adb (Analyze_Part_Of): Call new function + Is_Private_Library_Unit. + (Check_Valid_Library_Unit_Pragma): Specialize error messages on + misplaced pragmas. + (Analyze_Refined_State_In_Decl_Part): Recognize missing Part_Of + on object in private part. + * sem_util.adb (Check_State_Refinements): Add continuation + message. + (Find_Placement_In_State_Space): Fix detection of placement, + which relied wrongly on queries In_Package_Body/In_Private_Part + which do not provide the right information here for all cases. + (Is_Private_Library_Unit): Move query here for sharing. + * sem_util.ads (Is_Private_Library_Unit): Move query here for + sharing. + +2021-12-01 Gary Dismukes + + * sem_ch3.adb (Analyze_Full_Type_Declaration): If the full type + has a primitives list but its base type doesn't, set the base + type's list to the full type's list (covers certain constrained + cases, such as for arrays). + (Analyze_Incomplete_Type_Decl): Unconditionally initialize an + incomplete type's primitives list. + (Analyze_Subtype_Declaration): Unconditionally set a subtype's + primitives list to the base type's list, so the lists are + shared. + (Build_Derived_Private_Type): Unconditionally initialize a + derived private type's list to a new empty list. + (Build_Derived_Record_Type): Unconditionally initialize a + derived record type's list to a new empty list (now a single + call for tagged and untagged cases). + (Derived_Type_Declaration): Unconditionally initialize a derived + type's list to a new empty list in error cases (when Parent_Type + is undefined or illegal). + (Process_Full_View): Unconditionally copy the primitive + operations from the private view to the full view (rather than + conditioning it on whether extensions are enabled). + * sem_ch7.adb (New_Private_Type): Unconditionally initialize an + untagged private type's primitives list to a new empty list. + +2021-12-01 Etienne Servais + + * libgnat/a-cbhase.adb, libgnat/a-cborse.adb, + libgnat/a-cihase.adb, libgnat/a-ciorse.adb, + libgnat/a-cohase.adb, libgnat/a-coorse.adb + (Constant_Reference,Reference_Preserving_Key): Refactor using + the equivalence stated in the RM. + +2021-12-01 Piotr Trojanek + + * exp_ch3.adb (Make_Eq_Body): Refactor to avoid appending to an + empty list; also, when exiting early we will not create any + list; fix style in comment. + +2021-12-01 Piotr Trojanek + + * repinfo.adb (List_Entities): Simplify detection of entries; + refactor potentially redundant comparison. + +2021-11-29 Eric Gallager + + PR other/103021 + * gcc-interface/Make-lang.in: Use ETAGS variable in + TAGS target. + +2021-11-15 Iain Sandoe + + * gcc-interface/Makefile.in: Use DSYMUTIL_FOR_TARGET in + libgnat/libgnarl recipies. + +2021-11-10 Eric Botcazou + + * gcc-interface/ada-tree.h (DECL_STUBBED_P): Delete. + * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set it. + * gcc-interface/trans.c (Call_to_gnu): Use GNAT_NAME local variable + and adjust accordingly. Replace test on DECL_STUBBED_P with direct + test on Convention and move it down in the processing. + +2021-11-10 Bob Duff + + * scng.adb (Check_Bidi): New procedure to give warning. Note + that this is called only for non-ASCII characters, so should not + be an efficiency issue. + (Slit): Call Check_Bidi for wide characters in string_literals. + (Minus_Case): Call Check_Bidi for wide characters in comments. + (Char_Literal_Case): Call Check_Bidi for wide characters in + character_literals. Move Accumulate_Checksum down, because + otherwise, if Err is True, the Code is uninitialized. + * errout.ads: Make the obsolete nature of "Insertion character + ?" more prominent; one should not have to read several + paragraphs before finding out that it's obsolete. + +2021-11-10 Bob Duff + + * repinfo.adb (List_Component_Layout): Initialize Sbit. + +2021-11-10 Piotr Trojanek + + * exp_ch4.adb (Expand_Array_Equality): Fix inconsistent casing + in comment about the template for expansion of array equality; + now we use lower case for true/false/boolean. + (Handle_One_Dimension): Fix comment about the template for + expansion of array equality. + +2021-11-10 Bob Duff + + * repinfo.adb (List_Common_Type_Info, List_Object_Info): Add + check for In_Generic_Scope. + (List_Component_Layout): Check for known static values. + * sem_ch13.adb (Check_Record_Representation_Clause): Add check + for In_Generic_Scope. + +2021-11-10 Etienne Servais + + * aspects.adb, aspects.ads (Is_Aspect_Id): New function. + * namet-sp.ads, namet-sp.adb (Aspect_Spell_Check, + Attribute_Spell_Check): New Functions. + * par-ch13.adb (Possible_Misspelled_Aspect): Removed. + (With_Present): Use Aspect_Spell_Check, use Is_Aspect_Id. + (Get_Aspect_Specifications): Use Aspect_Spell_Check, + Is_Aspect_Id, Bad_Aspect. + * par-sync.adb (Resync_Past_Malformed_Aspect): Use Is_Aspect_Id. + * sem_ch13.adb (Check_One_Attr): Use Is_Aspect_Id. + * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): + Introduce the Process_No_Specification_Of_Aspect, emit a warning + instead of an error on unknown aspect, hint for typos. + Introduce Process_No_Use_Of_Attribute to add spell check for + attributes too. + (Set_Error_Msg_To_Profile_Name): Use Is_Aspect_Id. + * sem_util.adb (Bad_Attribute): Use Attribute_Spell_Check. + (Bad_Aspect): New function. + * sem_util.ads (Bad_Aspect): New function. + +2021-11-10 Patrick Bernardi + + * libgnarl/s-taskin.adb (Initialize_ATCB): Initialize + T.Common.Current_Priority to Priority'First. + * libgnarl/s-taskin.ads (Unspecified_Priority): Redefined as -1. + * libgnat/system-rtems.ads: Start priority range from 1, as 0 is + reserved by the operating system. + +2021-11-10 Pierre-Alexandre Bazin + + * libgnat/a-nbnbig.ads: Mark the unit as Pure. + * libgnat/s-aridou.adb: Add contracts and ghost code for proof. + (Scaled_Divide): Reorder operations and use of temporaries in + two places to facilitate proof. + * libgnat/s-aridou.ads: Add full functional contracts. + * libgnat/s-arit64.adb: Mark in SPARK. + * libgnat/s-arit64.ads: Add contracts similar to those from + s-aridou.ads. + * rtsfind.ads: Document the limitation that runtime units + loading does not work for private with-clauses. + +2021-11-10 Piotr Trojanek + + * exp_ch3.adb (Make_Eq_Body): Adapt call to + Expand_Record_Equality. + * exp_ch4.ads, exp_ch4.adb (Expand_Composite_Equality): Remove + Bodies parameter; adapt comment; fix style in body; adapt calls + to Expand_Record_Equality. + (Expand_Array_Equality): Adapt calls to + Expand_Composite_Equality. + (Expand_Record_Equality): Remove Bodies parameter; adapt + comment; adapt call to Expand_Composite_Equality. + * exp_ch8.adb (Build_Body_For_Renaming): Adapt call to + Expand_Record_Equality. + +2021-11-10 Piotr Trojanek + + * exp_ch4.adb (Expand_Composite_Equality): Handle arrays inside + records just like scalars; only records inside records need + dedicated handling. + +2021-11-10 Eric Botcazou + + * sem_type.ads (Has_Compatible_Type): Add For_Comparison parameter. + * sem_type.adb (Has_Compatible_Type): Put back the reversed calls + to Covers guarded with For_Comparison. + * sem_ch4.adb (Analyze_Membership_Op) : Remove new + reversed call to Covers and set For_Comparison to true instead. + (Find_Comparison_Types) : Likewise + (Find_Equality_Types) : Likewise. + +2021-11-10 Yannick Moy + + * Makefile.rtl: Add unit. + * libgnat/a-nbnbin__ghost.adb: Move... + * libgnat/a-nbnbig.adb: ... here. Mark ghost as ignored. + * libgnat/a-nbnbin__ghost.ads: Move... + * libgnat/a-nbnbig.ads: ... here. Add comment for purpose of + this unit. Mark ghost as ignored. + * libgnat/s-widthu.adb: Use new unit. + * sem_aux.adb (First_Subtype): Adapt to the case of a ghost type + whose freeze node is rewritten to a null statement. + +2021-11-10 Etienne Servais + + * libgnat/s-regexp.adb (Check_Well_Formed_Pattern): Fix + Constraint_Error on missing close bracket. + +2021-11-10 Piotr Trojanek + + * exp_ch4.adb (Expand_Array_Equality): Remove check of the array + bound being an N_Range node; use Type_High_Bound/Type_Low_Bound, + which handle all kinds of array bounds. + +2021-11-10 Etienne Servais + + * sem_ch3.adb (Derived_Type_Declaration): Introduce a subprogram + for tree transformation. If a tree transformation is performed, + then warn that it would be better to reorder the interfaces. + +2021-11-10 Eric Botcazou + + * sem_ch4.adb (Find_Non_Universal_Interpretations): Add guard. + +2021-11-10 Yannick Moy + + * par-ch4.adb (P_Primary): Adapt test for getting error message + on missing parentheses. + +2021-11-09 Ghjuvan Lacambre + + * freeze.adb (Check_Inherited_Conditions): Initialize + Ifaces_List. + +2021-11-09 Eric Botcazou + + * sem_ch4.adb (Analyze_Membership_Op) : Handle + both overloaded and non-overloaded cases. + : Do a reversed call to Covers if the outcome of the + call to Has_Compatible_Type is false. + Simplify implementation after change to Find_Interpretation. + (Analyze_User_Defined_Binary_Op): Be prepared for previous errors. + (Find_Comparison_Types) : Do a reversed call to + Covers if the outcome of the call to Has_Compatible_Type is false. + (Find_Equality_Types) : Likewise. + * sem_type.adb (Has_Compatible_Type): Remove the reversed calls to + Covers. Add explicit return on all paths. + +2021-11-09 Justin Squirek + + * gnatls.adb (Initialize_Default_Project_Path): Remove early + abort on invalid path. + +2021-11-09 Eric Botcazou + + * sprint.adb (Sprint_Node_Actual) : Also print the + Procedure_To_Call field if it is present. + : Also print the Storage_Pool and + Procedure_To_Call fields if they are present. + : Likewise. + : Likewise. + +2021-11-09 Patrick Bernardi + + * libgnarl/s-tasini.adb (Check_Abort_Status): Don't return 1 if + the task is aborting. + * libgnarl/s-tasini.ads (Check_Abort_Status): Update comment. + +2021-11-09 Patrick Bernardi + + * Makefile.rtl: Add ATOMICS_TARGET_PAIRS and + ATOMICS_BUILTINS_TARGET_PAIRS to LIBGNAT_TARGET_PAIRS for + aarch64-rtems. + +2021-11-09 Justin Squirek + + * exp_util.adb (Ancestor_Primitive): Prevent return of an + subprogram alias when the ancestor primitive of the alias is the + same as Subp. + +2021-11-09 Justin Squirek + + * exp_ch4.adb (Tagged_Membership): Use corresponding record type + when expanding a tagged membership test on protected types. + +2021-11-09 Alexandre Oliva + + * strub.adb, strub.ads: New files. + * exp_attr.adb (Access_Cases): Copy strub mode to subprogram type. + * exp_disp.adb (Expand_Dispatching_Call): Likewise. + * freeze.adb (Check_Inherited_Conditions): Check that strub modes + match overridden subprograms and interfaces. + (Freeze_All): Renaming declarations too. + * sem_attr.adb (Resolve_Attribute): Reject 'Access to + strub-annotated data object. + * sem_ch3.adb (Derive_Subprogram): Copy strub mode to + inherited subprogram. + * sem_prag.adb (Analyze_Pragma): Propagate Strub Machine_Attribute + from access-to-subprogram to subprogram type when required, + but not from access-to-data to data type. Mark the entity that + got the pragma as having a gigi rep item. + * sem_res.adb (Resolve): Reject implicit conversions that + would change strub modes. + (Resolve_Type_Conversions): Reject checked conversions + between incompatible strub modes. + * doc/gnat_rm/security_hardening_features.rst: Update. + * gnat_rm.texi: Regenerate. + * libgnat/a-except.ads (Raise_Exception): Revert strub-callable + annotation in public subprogram. + * libgnat/s-arit128.ads (Multiply_With_Ovflo_Check128): Likewise. + * libgnat/s-arit64.ads (Multiply_With_Ovflo_Check64): Likewise. + * libgnat/s-secsta.ads (SS_Allocate): Likewise. + (SS_Mark, SS_Release): Likewise. + * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add ada/strub.o. + +2021-11-09 Etienne Servais + + * sinput.ads: Initialize Current_Source_Unit to No_Unit. + +2021-11-09 Piotr Trojanek + + * Makefile.rtl (ARM and Aarch64 VxWorks): Use atomic variants of + runtime units. + * libgnat/a-strunb__shared.ads: Mention AARCH64 and ARM as + supported. + * libgnat/s-atocou.ads: Likewise. + +2021-11-09 Ghjuvan Lacambre + + * sem_util.adb (Accessibility_Level): Use init_proc_level_formal + instead of computing a new accessibility level from Scope_Depth + (E). + +2021-11-09 Johannes Kliemann + + * vxworks7-cert-rtp-link.spec: Replace the definition of + __wrs_rtp_base with the base_link spec. + * vxworks7-cert-rtp-base-link.spec: Add base_link spec with + __wrs_rtp_base definition for all architectures. + * vxworks7-cert-rtp-base-link__ppc64.spec: Add base_link spec + with __wrs_rtp_base definition for ppc64. + * vxworks7-cert-rtp-base-link__x86.spec: Add base_link spec with + __wrs_rtp_base definition for x86. + * vxworks7-cert-rtp-base-link__x86_64.spec: Add base_link spec + with __wrs_rtp_base definition for x86_64. + +2021-11-09 Piotr Trojanek + + * sem_util.adb (Copy_Parameter_List): Refactor to remove + repeated calls to First_Formal. + +2021-11-09 Piotr Trojanek + + * exp_ch8.adb (Build_Body_For_Renaming): Remove unnecessary + calls to Sloc; set Handled_Statement_Sequence when building + subprogram body; whitespace cleanup. + +2021-11-09 Piotr Trojanek + + * exp_ch4.adb (Handle_One_Dimension): Parameter N must be always + positive, because it is translated into expression of 'First and + 'Last. + +2021-11-09 Piotr Trojanek + + * tbuild.adb (New_Occurrence_Of): Simplify by reusing + Make_Identifier. + +2021-11-09 Etienne Servais + + * scng.adb (Set_Start_Column): Return Column_Number'Last when + handling Constraint_Error. Plus reformat a strangely 7 level if + loop. + +2021-11-09 Piotr Trojanek + + * exp_ch4.adb (Test_Empty_Arrays): Simplify with Evolve_Or_Else; + remove unnecessary call to Relocate_Node. + (Test_Lengths_Correspond): Likewise. + +2021-11-09 Piotr Trojanek + + * libgnat/a-strunb.adb (Deallocate): Rename Reference_Copy to + Old, to make the code similar to other routines in this package. + (Realloc_For_Chunk): Use a temporary, deallocate the previous + string using a null-allowing copy of the string reference. + +2021-11-09 Ghjuvan Lacambre + + * sem_util.adb (Accessibility_Level): Fix typos. + +2021-11-09 Tom Tromey + + * doc/gnat_ugn/platform_specific_information.rst: Document the + SuSE kernel bug. + * gnat_ugn.texi: Regenerate. + +2021-11-09 Gary Dismukes + + * sem_ch13.adb (Freeze_Entity_Checks): Analyze the expression of + a pragma Predicate associated with an aspect at the freeze point + of the type, to ensure that references to globals get saved when + the aspect occurs within a generic body. Also, add + Aspect_Static_Predicate to the choices of the membership test of + the enclosing guard. + +2021-11-09 Piotr Trojanek + + * exp_ch4.adb (Arr_Attr): Refine type of the parameter from Int + to Pos; refine name of the parameter from Num to Dim; fix + reference to "Expr" in comment. + +2021-11-09 Steve Baird + + * libgnat/s-regexp.adb (Compile.Check_Well_Formed_Patern): When + a "|" operator is encountered in a pattern, check that it is not + the last character of the pattern. + +2021-11-09 Yannick Moy + + * sem_ch3.adb (Analyze_Subtype_Declaration, + Derived_Type_Declaration): Initialize list of primitive + operations when Extensions_Allowed. + +2021-11-09 Piotr Trojanek + + * checks.adb (Apply_Constraint_Check): Guard against calling + Choices when the first association in an array aggregate is a + N_Iterated_Component_Association node. + +2021-11-09 Yannick Moy + + * sem_ch3.adb (Analyze_Incomplete_Type_Decl): Add the missing + initialization. + +2021-11-09 Piotr Trojanek + + * sem_prag.adb (Check_Usage): Guard against calling Usage_Error + with illegal Item_Id. The intention to do this was already + described in the comment but not implemented. + +2021-11-09 Etienne Servais + + * exp_ch6.adb (Expand_Actuals): Add a condition to check for the + possibility of task. + +2021-11-05 Iain Sandoe + + * gcc-interface/Make-lang.in: Use iOS signal trampoline code + for hosted Ada tools. + * sigtramp-ios.c: Wrap the declarations in extern "C" when + the code is built by a C++ compiler. + +2021-10-30 Alexandre Oliva + + * doc/gnat_rm/security_hardening_features.rst: Mention + optimization to operations with implied compares. + +2021-10-28 Alexandre Oliva + + * doc/gnat_rm/security_hardening_features.rst + (Hardened Conditionals): New. + +2021-10-25 Arnaud Charlet + + * gcc-interface/Make-lang.in, gcc-interface/Makefile.in: Remove + gnatfind and gnatxref. + +2021-10-25 Ed Schonberg + + * sem_ch4.adb (Has_Possible_Literal_Aspects): If analysis of an + operator node fails to find a possible interpretation, and one + of its operands is a literal or a named number, assign to the + node the corresponding class type (Any_Integer, Any_String, + etc). + (Operator_Check): Call it before emitting a type error. + * sem_res.adb (Has_Applicable_User_Defined_Literal): Given a + literal and a type, determine whether the type has a + user_defined aspect that can apply to the literal, and rewrite + the node as call to the corresponding function. Most of the code + was previously in procedure Resolve. + (Try_User_Defined_Literal): Check operands of a predefined + operator that fails to resolve, and apply + Has_Applicable_User_Defined_Literal to literal operands if any, + to find if a conversion will allow the operator to resolve + properly. + (Resolve): Call the above when a literal or an operator with a + literal operand fails to resolve. + +2021-10-25 Bob Duff + + * freeze.adb (Freeze_Fixed_Point_Type): Remove + previously-inserted test for Uint_0; no longer needed. + * gen_il-gen.ads: Improve comments. + * repinfo.adb (Rep_Value): Use Ubool type for B. + * repinfo.ads (Node_Ref): Use Unegative type. + (Node_Ref_Or_Val): Document that values of this type can be + No_Uint. + * exp_disp.adb (Make_Disp_Requeue_Body): Minor comment fix. + * sem_ch3.adb: Likewise. + * sem_ch8.adb: Likewise. + * sinfo-utils.adb (End_Location): End_Span can never be No_Uint, + so remove the "if No (L)" test. + * uintp.adb (Image_String): Use "for ... of" loop. + * uintp.ads (Unegative): New type for negative integers. We + give it a long name (unlike Unat and Upos) because it is rarely + used. + +2021-10-25 Etienne Servais + + * errout.adb (Skip_Msg_Insertion_Warning): Adapt and format as + Erroutc.Prescan_Message.Parse_Message_Class. + (Warn_Insertion): Adapt to new format. + * errout.ads: Update documentation. + * erroutc.adb (Get_Warning_Tag): Adapt to new format. + (Prescan_Message): Introduce Parse_Message_Class function. + (Validate_Specific_Warnings): Update ?W? to ?.w?. + * erroutc.ads: Update type and documentation. + * checks.adb (Validity_Check_Range): Update ?X? to ?.x?. + * exp_ch11.adb (Possible_Local_Raise): Update ?X? to ?.x?. + (Warn_If_No_Local_Raise): Likewise. + (Warn_If_No_Propagation): Likewise. + (Warn_No_Exception_Propagation_Active): Likewise. + * exp_ch4.adb (Expand_N_Allocator): Attach warning message to + -gnatw_a. + * exp_prag.adb (Expand_Pragma_Check): Update ?A? to ?.a?. + * exp_util.adb (Activate_Atomic_Synchronization): Update ?N? to + ?.n?. + (Add_Invariant_Check): Update ?L? to ?.l?. + * freeze.adb (Check_Suspicious_Modulus): Update ?M? to ?.m?. + (Freeze_Entity): Update ?T? to ?.t?, ?Z? to ?.z?. + * par-util.adb (Warn_If_Standard_Redefinition): Update ?K? to + ?.k?. + * sem_attr.adb (Min_Max): Update ?U? to ?.u?. + * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Update ?V? + to ?.v?. + (Adjust_Record_For_Reverse_Bit_Order_Ada_95): Update ?V? to ?.v?. + (Component_Size_Case): Update ?S? to ?.s?. + (Analyze_Record_Representation_Clause): Update ?S? to ?.s? and + ?C? to ?.c?. + (Add_Call): Update ?L? to ?.l?. + (Component_Order_Check): Attach warning message to -gnatw_r. + (Check_Component_List): Update ?H? to ?.h?. + (Set_Biased): Update ?B? to ?.b?. + * sem_ch3.adb (Modular_Type_Declaration): Update ?M? to ?.m?. + * sem_ch4.adb (Analyze_Mod): Update ?M? to ?.m?. + (Analyze_Quantified_Expression): Update ?T? to ?.t?. + * sem_ch6.adb (Check_Conformance): Attach warning message to + -gnatw_p. + (List_Inherited_Pre_Post_Aspects): Update ?L? to ?.l?. + * sem_ch7.adb (Unit_Requires_Body_Info): Update ?Y? to ?.y?. + * sem_ch8.adb (Analyze_Object_Renaming): Update ?R? to ?.r?. + * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Attach + warning message to -gnatw_c. + * sem_res.adb (Check_Argument_Order): Update ?P? to ?.p?. + (Resolve_Comparison_Op): Update ?U? to ?.u?. + (Resolve_Range): Update ?U? to ?.u?. + (Resolve_Short_Circuit): Update ?A? to ?.a?. + (Resolve_Unary_Op): Update ?M? to ?.m?. + * sem_util.adb (Check_Result_And_Post_State): Update ?T? to ?.t?. + * sem_warn.adb (Output_Unused_Warnings_Off_Warnings): Update ?W? + to ?.w?. + * warnsw.ads: Update documentation for -gnatw_c. + +2021-10-25 Bob Duff + + * inline.adb (Establish_Actual_Mapping_For_Inlined_Call): Fix + comment. + +2021-10-25 Bob Duff + + * gen_il-gen.adb (Put_Seinfo): Generate type + Seinfo.Type_Only_Enum based on type + Gen_IL.Internals.Type_Only_Enum. Automatically generating a copy + of the type will help keep them in sync. (Note that there are + no Ada compiler packages imported into Gen_IL.) Add a Type_Only + field to Field_Descriptor, so this information is available in + the Ada compiler (as opposed to just in the Gen_IL "compiler"). + (One_Comp): Add initialization of the Type_Only field of + Field_Descriptor. + * gen_il-internals.ads (Image): Image function for + Type_Only_Enum. + * atree.ads (Node_To_Fetch_From): New function to compute which + node to fetch from, based on the Type_Only aspect. + * atree.adb (Get_Field_Value): Call Node_To_Fetch_From. + * treepr.adb (Print_Entity_Field): Call Node_To_Fetch_From. + (Print_Node_Field): Assert. + * sinfo-utils.adb (Walk_Sinfo_Fields, + Walk_Sinfo_Fields_Pairwise): Asserts. + +2021-10-25 Piotr Trojanek + + * exp_ch4.adb (Expand_Composite_Equality): Fix style. + (Element_To_Compare): Simplify loop. + (Expand_Record_Equality): Adapt calls to Element_To_Compare. + +2021-10-25 Steve Baird + + * sem_case.adb (Composite_Case_Ops.Box_Value_Required): A new + function which takes a component type and returns a Boolean. + Returns True for the cases which were formerly forbidden as + components (these checks were formerly performed in the + now-deleted procedure + Check_Composite_Case_Selector.Check_Component_Subtype). + (Composite_Case_Ops.Normalized_Case_Expr_Type): Hoist this + function out of the Array_Case_Ops package because it has been + generalized to also do the analogous thing in the case of a + discriminated type. + (Composite_Case_Ops.Scalar_Part_Count): Return 0 if + Box_Value_Required returns True for the given type/subtype. + (Composite_Case_Ops.Choice_Analysis.Choice_Analysis.Component_Bounds_Info. + Traverse_Discrete_Parts): Return without doing anything if + Box_Value_Required returns True for the given type/subtype. + (Composite_Case_Ops.Choice_Analysis.Parse_Choice.Traverse_Choice): + If Box_Value_Required yields True for a given component type, + then check that the value of that component in a choice + expression is indeed a box (in which case the component is + ignored). + * doc/gnat_rm/implementation_defined_pragmas.rst: Update + documentation. + * gnat_rm.texi: Regenerate. + +2021-10-25 Piotr Trojanek + + * libgnat/a-nbnbin__gmp.adb (From_String): Fix predicate + mismatch between subprogram declaration and body. + +2021-10-25 Bob Duff + + * einfo-utils.adb (Declaration_Node): Avoid returning the + following node kinds: N_Assignment_Statement, N_Integer_Literal, + N_Procedure_Call_Statement, N_Subtype_Indication, and + N_Type_Conversion. Assert that the result is in N_Is_Decl or + empty. + * gen_il-gen-gen_nodes.adb (N_Is_Decl): Modify to match the + things that Declaration_Node can return. + +2021-10-25 Piotr Trojanek + + * libgnat/a-strsup.ads (Super_Length, Super_Element, + Super_Slice): Add Global contracts. + +2021-10-25 Piotr Trojanek + + * exp_ch3.adb (Predefined_Primitive_Bodies): Simplify detection + of existing equality operator. + +2021-10-25 Piotr Trojanek + + * exp_ch3.adb (Predefined_Primitive_Bodies): Remove redundant + conditions related to interface types. + +2021-10-25 Piotr Trojanek + + * adaint.c (__gnat_portable_spawn): Do not expect execv to + return 0. + (__gnat_portable_no_block_spawn): Likewise. + +2021-10-25 Ghjuvan Lacambre + + * sem_ch8.adb (Analyze_Subprogram_Renaming): Set New_S to Empty. + +2021-10-25 Piotr Trojanek + + * libgnat/a-strunb.ads (Unbounded_String): Reference is never + null. + * libgnat/a-strunb.adb (Finalize): Copy reference while it needs + to be deallocated. + +2021-10-25 Piotr Trojanek + + * lib-xref.adb (Get_Through_Renamings): Exit loop when an + enumeration literal is found. + +2021-10-25 Arnaud Charlet + + * libgnat/s-widthu.adb: Add pragma Annotate. + +2021-10-25 Javier Miranda + + * sem_ch8.adb (Build_Class_Wide_Wrapper): Previous version split + in two subprograms to factorize its functionality: + Find_Suitable_Candidate, and Build_Class_Wide_Wrapper. These + routines are also placed in the new subprogram + Handle_Instance_With_Class_Wide_Type. + (Handle_Instance_With_Class_Wide_Type): New subprogram that + encapsulates all the code that handles instantiations with + class-wide types. + (Analyze_Subprogram_Renaming): Adjust code to invoke the new + nested subprogram Handle_Instance_With_Class_Wide_Type; adjust + documentation. + +2021-10-25 Bob Duff + + * einfo-utils.ads, einfo-utils.adb (Alias, Set_Alias, + Renamed_Entity, Set_Renamed_Entity, Renamed_Object, + Set_Renamed_Object): Add assertions that reflect how these are + supposed to be used and what they are supposed to return. + (Renamed_Entity_Or_Object): New getter. + (Set_Renamed_Object_Of_Possibly_Void): Setter that allows N to + be E_Void. + * checks.adb (Ensure_Valid): Use Renamed_Entity_Or_Object + because this is called for both cases. + * exp_dbug.adb (Debug_Renaming_Declaration): Use + Renamed_Entity_Or_Object because this is called for both cases. + Add assertions. + * exp_util.adb (Possible_Bit_Aligned_Component): Likewise. + * freeze.adb (Freeze_All_Ent): Likewise. + * sem_ch5.adb (Within_Function): Likewise. + * exp_attr.adb (Calculate_Header_Size): Call Renamed_Entity + instead of Renamed_Object. + * exp_ch11.adb (Expand_N_Raise_Statement): Likewise. + * repinfo.adb (Find_Declaration): Likewise. + * sem_ch10.adb (Same_Unit, Process_Spec_Clauses, + Analyze_With_Clause, Install_Parents): Likewise. + * sem_ch12.adb (Build_Local_Package, Needs_Body_Instantiated, + Build_Subprogram_Renaming, Check_Formal_Package_Instance, + Check_Generic_Actuals, In_Enclosing_Instance, + Denotes_Formal_Package, Process_Nested_Formal, + Check_Initialized_Types, Map_Formal_Package_Entities, + Restore_Nested_Formal): Likewise. + * sem_ch6.adb (Report_Conflict): Likewise. + * sem_ch8.adb (Analyze_Exception_Renaming, + Analyze_Generic_Renaming, Analyze_Package_Renaming, + Is_Primitive_Operator_In_Use, Declared_In_Actual, + Note_Redundant_Use): Likewise. + * sem_warn.adb (Find_Package_Renaming): Likewise. + * sem_elab.adb (Ultimate_Variable): Call Renamed_Object instead + of Renamed_Entity. + * exp_ch6.adb (Get_Function_Id): Call + Set_Renamed_Object_Of_Possibly_Void, because the defining + identifer is still E_Void at this point. + * sem_util.adb (Function_Call_Or_Allocator_Level): Likewise. + Remove redundant (unreachable) code. + (Is_Object_Renaming, Is_Valid_Renaming): Call Renamed_Object + instead of Renamed_Entity. + (Get_Fullest_View): Call Renamed_Entity instead of + Renamed_Object. + (Copy_Node_With_Replacement): Call + Set_Renamed_Object_Of_Possibly_Void because the defining entity + is sometimes E_Void. + * exp_ch5.adb (Expand_N_Assignment_Statement): Protect a call to + Renamed_Object with Is_Object to avoid assertion failure. + * einfo.ads: Minor comment fixes. + * inline.adb: Minor comment fixes. + * tbuild.ads: Minor comment fixes. + +2021-10-25 Arnaud Charlet + + * sem_ch13.adb (Build_Discrete_Static_Predicate): Remove use of + exception propagation since this code is exercised during the + bootstrap. + +2021-10-25 Yannick Moy + + * sem_ch13.adb (Freeze_Entity_Checks): Perform same check on + predicate expression inside pragma as inside aspect. + * sem_util.adb (Is_Current_Instance): Recognize possible + occurrence of subtype as current instance inside the pragma + Predicate. + +2021-10-25 Ghjuvan Lacambre + + * erroutc.adb (Count_Compile_Time_Pragma_Warnings): Don't count + deleted warnings. + +2021-10-22 Eric Gallager + + PR other/102663 + * gcc-interface/Make-lang.in: Allow dvi-formatted + documentation to be installed. + +2021-10-20 Bob Duff + + * gcc-interface/decl.c (gnat_to_gnu_entity): Remove unnecessary + call to No_Uint_To_0. + +2021-10-20 Richard Kenner + + * exp_unst.adb (Visit_Node, when N_Subprogram_Call): Never treat + instrinsic subprograms as nested. + +2021-10-20 Yannick Moy + + * libgnat/s-widlllu.ads: Mark in SPARK. + * libgnat/s-widllu.ads: Likewise. + * libgnat/s-widuns.ads: Likewise. + * libgnat/s-widthu.adb: Add ghost code and a + pseudo-postcondition. + +2021-10-20 Yannick Moy + + * libgnat/a-nbnbin__ghost.adb (Signed_Conversions, + Unsigned_Conversions): Mark subprograms as not imported. + * libgnat/a-nbnbin__ghost.ads: Provide a dummy body. + +2021-10-20 Eric Botcazou + + * sem_eval.adb (Eval_Type_Conversion): If the target subtype is + a static floating-point subtype and the result is a real literal, + consider its machine-rounded value to raise Constraint_Error. + (Test_In_Range): Turn local variables into constants. + +2021-10-20 Doug Rupp + + * libgnat/g-io-put__vxworks.adb: Remove (unused) + * libgnat/s-parame__ae653.ads: Likewise. + * libgnat/s-thread.ads: Likewise. + * libgnat/s-thread__ae653.adb: Likewise. + +2021-10-20 Eric Botcazou + + * sem_eval.ads (Machine_Number): New inline function. + * sem_eval.adb (Machine_Number): New function body implementing + the machine rounding operation specified by RM 4.9(38/2). + (Check_Non_Static_Context): Call Machine_Number and set the + Is_Machine_Number flag consistently on the resulting node. + * sem_attr.adb (Eval_Attribute) : Likewise. + * checks.adb (Apply_Float_Conversion_Check): Call Machine_Number. + (Round_Machine): Likewise. + +2021-10-20 Johannes Kliemann + + * vxworks7-cert-rtp-link.spec: Add the definition of + __wrs_rtp_base. + +2021-10-20 Piotr Trojanek + + * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reject boxes in + record delta aggregates. + +2021-10-20 Justin Squirek + + * sem_ch6.adb (Check_Return_Construct_Accessibility): Modify + generation of accessibility checks to be more consolidated and + get triggered properly in required cases. + * sem_util.adb (Accessibility_Level): Add extra check within + condition to handle aliased formals properly in more cases. + +2021-10-20 Justin Squirek + + * exp_ch7.adb (Make_Final_Call): Detect expanded protected types + and use original protected type in order to calculate + appropriate finalization routine. + +2021-10-20 Johannes Kliemann + + * libgnat/a-nbnbin__ghost.ads: Add ghost package. + +2021-10-20 Piotr Trojanek + + * sem_aggr.adb (Variant_Depth): Refine type from Integer to + Natural. + +2021-10-20 Bob Duff + + * atree.ads: Comment improvements. How is a "completely new + node" different from a "new node"? Document default values + corresponding to field types. + * exp_ch7.adb (Process_Tagged_Type_Declaration): Use + higher-level Scope_Depth instead of Scope_Depth_Value. Remove + confusing comment: not clear what a "true" library level package + is. + * uintp.adb (Image_Out): Print No_Uint in a more readable way. + * gen_il-gen.adb, gen_il-gen-gen_entities.adb, + gen_il-gen-gen_nodes.adb, gen_il-types.ads: Tighten up the + subtypes of fields whose type is Uint, where possible; use + more-constrained subtypes such as Unat. + * einfo-utils.adb, einfo-utils.ads, exp_attr.adb, + exp_ch3.adb, exp_intr.adb, exp_unst.adb, exp_util.adb, + freeze.adb, repinfo.adb, sem.adb, sem_ch12.adb, sem_ch13.adb, + sem_ch3.adb, sem_ch8.adb, sem_util.adb, sprint.adb, treepr.adb: + No longer use Uint_0 to indicate "unknown" or "not yet known" + for various fields whose type is Uint. Use No_Uint for that, + except in a small number of legacy cases that cause test + failures. Protect many queries of such fields with calls to + Known_... functions. Improve comments. + * exp_aggr.adb: Likewise. + (Is_OK_Aggregate): Check whether Csiz is present. + (Aggr_Assignment_OK_For_Backend): Ensure we do not access an + uninitialized size. + * exp_strm.adb (Build_Elementary_Input_Call, + Build_Elementary_Write_Call): Check whether P_Size is present. + * cstand.adb: Leave Component_Size of Any_Composite unknown. + Similar for RM_Size of Standard_Exception_Type. These should + not be used. + * einfo.ads: Comment improvements. + * exp_disp.ads: Minor. + * gen_il-internals.ads, gen_il-internals.adb: Minor. + * sinfo-utils.adb: Take advantage of full-coverage rules. + * types.h: Minor. + +2021-10-20 Gary Dismukes + + * sem_ch6.adb: Add with and use of Warnsw. + (Check_Conformance): Report a warning when subtypes or + designated subtypes of formal parameters or result subtypes + denote different declarations between the spec and body of the + (Subprogram_Subtypes_Have_Same_Declaration): New function nested + within Check_Conformance that determines whether two subtype + entities referenced in a subprogram come from the same + declaration. Returns True immediately if the subprogram is in a + generic instantiation, or the subprogram is marked Is_Internal + or is declared in an internal (GNAT library) unit, or GNAT_Mode + is enabled, otherwise compares the nonlimited views of the + entities (or their designated subtypes' nonlimited views in the + anonymous access cases). + (Nonlimited_View_Of_Subtype): New function nested within + function Subprogram_Subtypes_Have_Same_Declaration that returns + Non_Limited_View of a type or subtype that is an incomplete or + class-wide type that comes from a limited of a + package (From_Limited_With is True for the entity), or returns + Full_View when the nonlimited view is an incomplete type. + Otherwise returns the entity passed in. + * warnsw.ads (Warn_On_Pedantic_Checks): New warning flag. + (type Warning_Record): New component Warn_On_Pedantic_Checks. + * warnsw.adb (All_Warnings): Set Warn_On_Pedantic_Checks from + parameter Setting. + (Restore_Warnings): Restore the value of the + Warn_On_Pedantic_Checks flag. + (Save_Warnings): Save the value of the Warn_On_Pedantic_Checks + flag. + (Set_Underscore_Warning_Switch): Add settings of the + Warn_On_Pedantic flag according to the switch ("-gnatw_p" vs. + "-gnatw_P"). + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add + documentation of new switches -gnatw_p and -gnatw_P (warnings + for pedantic checks). + * gnat_ugn.texi: Regenerate. + * usage.adb: Add Warn_On_Pedantic_Checks. + +2021-10-20 Piotr Trojanek + + * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Guard + against equality of an uninitialized RM_Size field. + +2021-10-20 Eric Botcazou + + * sem_ch12.adb (Analyze_Subprogram_Instantiation): Also propagate an + interface name on an intrinsic subprogram. Remove obsolete comment. + * libgnat/s-atopri.ads (Atomic_Load): New generic intrinsic function + (Atomic_Load_8): Rewrite into instantiation. + (Atomic_Load_16): Likewise. + (Atomic_Load_32): Likewise. + (Atomic_Load_64): Likewise. + (Sync_Compare_And_Swap): New generic intrinsic function. + (Sync_Compare_And_Swap_8): Rewrite into instantiation. + (Sync_Compare_And_Swap_16): Likewise. + (Sync_Compare_And_Swap_32): Likewise. + (Sync_Compare_And_Swap_64): Likewise. + (Lock_Free_Read): New generic inline function. + (Lock_Free_Read_8): Rewrite into instantiation. + (Lock_Free_Read_16): Likewise. + (Lock_Free_Read_32): Likewise. + (Lock_Free_Read_64): Likewise. + (Lock_Free_Try_Write): New generic inline function. + (Lock_Free_Try_Write_8): Rewrite into instantiation. + (Lock_Free_Try_Write_16): Likewise. + (Lock_Free_Try_Write_32): Likewise. + (Lock_Free_Try_Write_64): Likewise. + * libgnat/s-atopri.adb (Lock_Free_Read): New function body. + (Lock_Free_Read_8): Delete. + (Lock_Free_Read_16): Likewise. + (Lock_Free_Read_32): Likewise. + (Lock_Free_Read_64): Likewise. + (Lock_Free_Try_Write): New function body. + (Lock_Free_Try_Write_8): Delete. + (Lock_Free_Try_Write_16): Likewise. + (Lock_Free_Try_Write_32): Likewise. + (Lock_Free_Try_Write_64): Likewise. + * libgnat/s-aoinar.adb (Atomic_Fetch_And_Add): Use type-generic GCC + atomic builtin and tidy up implementation. + (Atomic_Fetch_And_Subtract): Likewise. + * libgnat/s-aomoar.adb (Atomic_Fetch_And_Add): Likewise. + (Atomic_Fetch_And_Subtract): Likewise. + * libgnat/s-atopex.adb (Atomic_Exchange): Likewise. + (Atomic_Compare_And_Exchange): Likewise. + +2021-10-20 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : + Replace test on Convention_Intrinsic with Is_Intrinsic_Subprogram. + (gnat_to_gnu_param): Likewise. + (gnat_to_gnu_subprog_type): Likewise. + * gcc-interface/trans.c (elaborate_all_entities_for_package): Ditto. + +2021-10-20 Eric Botcazou + + * sem_eval.ads (Check_Non_Static_Context): Update documentation. + * sem_eval.adb (In_Any_Integer_Context): Change parameter type, + adjust accordingly and remove unreachable case. + (Eval_Integer_Literal): Consider the node kind throughout and + trim down verbose condition. + +2021-10-20 Doug Rupp + + * Makefile.rtl: Remove references to system-vxworks-ppc.ads + and system-vxworks-x86.ads. + * libgnat/system-vxworks-ppc.ads: Remove. + * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise. + * libgnat/system-vxworks-x86.ads: Likewise. + +2021-10-20 Yannick Moy + + * sem_ch4.adb (Analyze_QUantified_Expression): Issue warning on + conjunct/disjunct sub-expression of the full expression inside a + quantified expression, when it does not reference the quantified + variable. + +2021-10-20 Marc Poulhiès + + * checks.adb (Insert_Valid_Check): in case of checked type + conversion, update Typ to match Exp's type and add call to + Analyze_And_Resolve. + +2021-10-20 Arnaud Charlet + + PR ada/100486 + * sem_prag.adb (Check_Valid_Library_Unit_Pragma): Do not raise an + exception as part of the bootstrap. + +2021-10-15 Richard Biener + + * gcc-interface/misc.c (gnat_post_options): Do not warn + about DBX_DEBUG use here. + +2021-10-14 Alexandre Oliva + + * par-ch10.adb (P_Compilation_Unit): Reenable ada83 library + unit renaming test and error. + +2021-10-11 Eric Botcazou + + * gcc-interface/gigi.h (resolve_atomic_size): Declare. + (list_third): New inline function. + * gcc-interface/decl.c (type_for_atomic_builtin_p): New function. + (resolve_atomic_builtin): Likewise. + (gnat_to_gnu_subprog_type): Perform type resolution for most of + type-generic GCC atomic builtins and give an error for the rest. + * gcc-interface/utils2.c (resolve_atomic_size): Make public. + +2021-10-11 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu) : + Given the warning only if No_Exception_Propagation is active. + : Likewise. + : Likewise. + +2021-10-11 Eric Botcazou + + * gcc-interface/decl.c (promote_object_alignment): Add GNU_SIZE + parameter and use it for the size of the object if not null. + (gnat_to_gnu_entity) : Perform the automatic alignment + promotion for objects whose nominal subtype is of variable size. + (gnat_to_gnu_field): Adjust call to promote_object_alignment. + +2021-10-11 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_param): Strip padding types + only if the size does not change in the process. Rename local + variable and add bypass for initialization procedures. + +2021-10-11 Doug Rupp + + * libgnat/s-thread.ads: Fix comments. Remove unused package + imports. + (Thread_Body_Exception_Exit): Remove Exception_Occurrence + parameter. + (ATSD): Declare type locally. + * libgnat/s-thread__ae653.adb: Fix comments. Remove unused + package imports. Remove package references to Stack_Limit + checking. + (Install_Handler): Remove. + (Set_Sec_Stack): Likewise. + (Thread_Body_Enter): Remove calls to Install_Handler and + Stack_Limit checking. + (Thread_Body_Exception_Exit): Remove Exception_Occurrence + parameter. + (Init_RTS): Call local Get_Sec_Stack. Remove call to + Install_Handler. Remove references to accessors for + Get_Sec_Stack and Set_Sec_Stack. Remove OS check. + (Set_Sec_Stack): Remove. + +2021-10-11 Piotr Trojanek + + * exp_ch3.adb (Make_Predefined_Primitive_Specs, + Predefined_Primitive_Bodies): Remove guard with restriction + No_Dispatching_Calls. + +2021-10-11 Steve Baird + + * sem_attr.adb (Analyze_Attribute_Old_Result): Permit an + attribute reference inside a compiler-generated _Postconditions + procedure. In this case, Subp_Decl is assigned the declaration + of the enclosing subprogram. + * exp_util.adb (Insert_Actions): When climbing up the tree + looking for an insertion point, do not climb past an + N_Iterated_Component/Element_Association, since this could + result in inserting a reference to a loop parameter at a + location outside of the scope of that loop parameter. On the + other hand, be careful to preserve existing behavior in the case + of an N_Component_Association node. + +2021-10-11 Steve Baird + + * exp_ch6.adb (Can_Fold_Predicate_Call): Do not attempt folding + if there is more than one predicate involved. Recall that + predicate aspect specification are additive, not overriding, and + that there are three different predicate + aspects (Dynamic_Predicate, Static_Predicate, and the + GNAT-defined Predicate aspect). These various ways of + introducing multiple predicates are all checked for. A new + nested function, Augments_Other_Dynamic_Predicate, is + introduced. + * sem_ch4.adb + (Analyze_Indexed_Component_Form.Process_Function_Call): When + determining whether a name like "X (Some_Discrete_Type)" might + be interpreted as a slice, the answer should be "no" if the + type/subtype name denotes the current instance of type/subtype. + +2021-10-11 Patrick Bernardi + + * libgnarl/s-osinte__rtems.ads: Change sigset_t to an unsigned + long. + +2021-10-11 Patrick Bernardi + + * libgnat/s-parame__rtems.adb: use + _POSIX_Threads_Minimum_stack_size instead of + ada_pthread_minimum_stack_size. + +2021-10-11 Eric Botcazou + + * fe.h (No_Exception_Propagation_Active): Declare. + * restrict.ads (No_Exception_Propagation_Active): Add WARNING line. + +2021-10-11 Piotr Trojanek + + * sem_ch13.adb (Validate_Unchecked_Conversion): Simplify code + for detecting conversions with Ada.Calendar.Time type and extend + it to similar types in the Ada.Real_Time package. + +2021-10-11 Piotr Trojanek + + * sem_ch10.adb, sem_prag.adb, sem_util.adb: Use + N_Generic_Declaration in membership tests. + +2021-10-11 Etienne Servais + + * ali.adb (Get_Name): Ignore_Spaces is always False. + * bindo-graphs.adb (Set_Is_Existing_Source_Target_Relation): Val + is always True. + * cstand.adb (New_Standard_Entity): New_Node_Kind is always + N_Defininig_Identifier. + * exp_ch3.adb (Predef_Stream_Attr_Spec): For_Body is always + False. + * exp_dist.adb (Add_Parameter_To_NVList): RACW_Ctrl is always + False. + * gnatls.adb (Add_Directories): Prepend is always False. + * sem_ch10.adb, sem_ch10.ads (Load_Needed_Body): Do_Analyze is + always True. + * sem_ch3.adb, sem_ch3.ads (Process_Range_Expr_In_Decl): + R_Check_Off is always False. + * sem_elab.adb: (Info_Variable_Reference): Info_Msg is always + False, In_SPARK is always True. + (Set_Is_Traversed_Body, Set_Is_Saved_Construct, + Set_Is_Saved_Relation): Val is always True. + * treepr.adb (Visit_Descendant): No_Indent is always False. + (Print_Node): Fmt does not need such a big scope. + +2021-10-11 Etienne Servais + + * sem_ch4.adb (Analyze_Membership_Op): Finds interpretation for + the case of a membership test with a singleton value in case of + overloading. + +2021-10-11 Patrick Bernardi + + * Makefile.rtl (VxWorks): Rename s-inmaop__vxworks.adb to + s-inmaop__hwint.adb. + (RTEMS): Use s-inmaop__hwint.adb, s-intman__rtems.adb/s, + s-taprop__rtems.adb. + * libgnarl/a-intnam__rtems.ads: Remove signals definitions and + replace with Hardware_Interrupts. + * libgnarl/s-inmaop__vxworks.adb: Rename as... + * libgnarl/s-inmaop__hwint.adb: ... this. + * libgnarl/s-interr__hwint.adb: Remove unnecessary comments. + * libgnarl/s-intman__rtems.ads, libgnarl/s-intman__rtems.adb: + New files. + * libgnarl/s-osinte__rtems.adb: Add RTEMS API bindings. + (Binary_Semaphore_Create, Binary_Semaphore_Delete, + Binary_Semaphore_Obtain, Binary_Semaphore_Release, + Binary_Semaphore_Flush, Interrupt_Connect, + Interrupt_Number_To_Vector): New functions. + * libgnarl/s-osinte__rtems.ads (Num_HW_Interrupts, Signal): + Removed. + (NSIG, Interrupt_Range): New. + (Binary_Semaphore_Create, Binary_Semaphore_Delete, + Binary_Semaphore_Obtain, Binary_Semaphore_Release, + Binary_Semaphore_Flush, Interrupt_Connect, + Interrupt_Number_To_Vector): Remove Import pragma. + * libgnarl/s-taprop__rtems.adb: New file. + +2021-10-11 Eric Botcazou + + * exp_fixd.adb (Get_Size_For_Value): New function returning a size + suitable for a non-negative integer value. + (Get_Type_For_Size): New function returning a standard type suitable + for a size. + (Build_Divide): Call both functions to compute the result type, but + make sure to pass a non-negative value to the first. + (Build_Multiply): Likewise. + (Do_Multiply_Fixed_Universal): Minor consistency tweak. + (Integer_Literal): Call both functions to compute the type. + +2021-10-11 Etienne Servais + + * sem_ch4.adb (Analyze_Membership_Op): Reorder subprogram spec + and bodies in alphabetical order. + +2021-10-11 Piotr Trojanek + + * exp_util.adb (Build_Class_Wide_Expression): Replace entities + of both simple and extended names. + +2021-10-11 Ghjuvan Lacambre + + * libgnarl/s-intman__android.adb, libgnarl/s-intman__lynxos.adb, + libgnarl/s-intman__posix.adb, libgnarl/s-intman__qnx.adb, + libgnarl/s-intman__solaris.adb, libgnarl/s-intman__susv3.adb, + libgnarl/s-taprob.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-taskin.adb, libgnarl/s-tasque.adb, + libgnarl/s-tpoben.adb, libgnat/a-calend.adb, + libgnat/a-excach.adb, libgnat/a-except.adb, libgnat/a-tags.adb, + libgnat/a-textio.adb, libgnat/a-witeio.adb, + libgnat/a-ztexio.adb, libgnat/g-binenv.adb, + libgnat/s-parame.adb, libgnat/s-parame__vxworks.adb, + libgnat/s-stratt.adb, libgnat/s-trasym__dwarf.adb: Mark imported + binder globals as constant. + +2021-10-11 Piotr Trojanek + + * exp_aggr.adb (Initialize_Record_Component): Add assertion + about one of the parameters, so that illegal attempts to + initialize record components with Empty node are detected early + on. + (Build_Record_Aggr_Code): Handle boxes in aggregate component + associations just the components with no initialization in + Build_Record_Init_Proc. + * sem_aggr.adb (Resolve_Record_Aggregate): For components that + require simple initialization carry boxes from resolution to + expansion. + * sem_util.adb (Needs_Simple_Initialization): Remove redundant + paren. + +2021-10-11 Piotr Trojanek + + * exp_ch3.adb (Build_Init_Statements): Simplify detection of + concurrent record types. + +2021-10-11 Piotr Trojanek + + * exp_aggr.adb (Is_Delayed_Aggregate): Simplify. + +2021-10-11 Piotr Trojanek + + * exp_aggr.adb (Has_Default_Init_Comps): Simplify. + +2021-10-11 Piotr Trojanek + + * exp_aggr.adb (Component_OK_For_Backend): Remove redundant + guard. + +2021-10-11 Patrick Bernardi + + * Makefile.rtl (RTEMS): Add s-stchop.o to + EXTRA_GNATRTL_NONTASKING_OBJS, remove s-stchop__rtems.adb. + * libgnat/s-stchop__rtems.adb: Removed. + +2021-10-11 Marc Poulhiès + + * expander.adb (Expand): Skip clearing of Analyzed flag if + already set for N_Real_Literal. + +2021-10-11 Piotr Trojanek + + * sem_util.adb (Compile_Time_Constraint_Error): Simplify getting + the type of the first formal parameter. + +2021-10-11 Piotr Trojanek + + * exp_util.adb (Inside_Init_Proc): Simplify. + * sem_aggr.adb (Resolve_Record_Aggregate): Fix style. + * sem_util.adb (Compile_Time_Constraint_Error): Guard against + calling Corresponding_Concurrent_Type with an array type entity. + +2021-10-11 Doug Rupp + + * libgnat/s-parame__ae653.ads (time_t_bits): Change to + Long_Long_Integer'Size. Add some comments to explain. + +2021-10-08 Martin Liska + + * gcc-interface/misc.c (gnat_post_options): Use new macro + OPTION_SET_P. + (gnat_init_gcc_eh): Likewise. + (gnat_init_gcc_fp): Likewise. + +2021-10-05 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu): Do not wrap boolean values + referenced in pragmas. + +2021-10-05 Eric Botcazou + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Do not set the + DECL_DISREGARD_INLINE_LIMITS flag if -gnatd.8 is specified. + +2021-10-05 Bob Duff + + * gcc-interface/trans.c (set_end_locus_from_node): Check that + Handled_Statement_Sequence is not Empty before calling + End_Label, because the Empty node has no End_Label, and + depending on the exact node layout chosen by gen_il, calling + End_Label might crash, or might work OK by accident. + +2021-10-05 Eric Botcazou + + * gcc-interface/cuintp.c: Adjust placement of include directive. + * gcc-interface/targtyps.c: Likewise. + +2021-10-05 Alexandre Oliva + + * doc/gnat_rm.rst: Add... + * doc/gnat_rm/security_hardening_features.rst: New. + * doc/gnat_rm/about_this_guide.rst: Link to new chapter. + * gnat_rm.texi: Regenerate. + * gcc-interface/utils.c (handle_strub_attribute): New. + (gnat_internal_attribute_table): Add strub. + * libgnat/a-except.adb: Make Rcheck_CE_* strub-callable. + * libgnat/a-except.ads (Raise_Exception): Likewise. + (Raise_Exception_Always): Likewise. + * libgnat/s-arit128.ads (Multiply_With_Ovflo_Check128): + Likewise. + * libgnat/s-arit64.ads (Multiply_With_Ovflo_Check64): + Likewise. + * libgnat/s-secsta.ads (SS_Allocate, SS_Mark, SS_Release): + Likewise. + +2021-10-05 Eric Botcazou + + * exp_ch9.adb (Install_Private_Data_Declarations): Copy the Sloc of + components for the local renamings as well as the Comes_From_Source + flag, and also set Warnings_Off on them. Use Nam local variable. + +2021-10-05 Arnaud Charlet + + * libgnarl/a-tasini.ads (Set_Initialization_Handler): Update + comments. + +2021-10-05 Corentin Gay + + * init.c (QNX): Add #include errno.h. + +2021-10-05 Eric Botcazou + + * exp_attr.adb (Expand_Fpt_Attribute): Likewise. + * snames.ads-tmpl (Name_Unaligned_Valid): Delete. + +2021-10-05 Etienne Servais + + * sem_prag.adb (Analyze_Pragma): Forbid use of + Compile_Time_(Error|Warning) as configuration pragma. + * doc/gnat_ugn/the_gnat_compilation_model.rst: + Compile_Time_(Error|Warning) and Compiler_Unit(_Warning) are not + configuration pragmas and shall not be listed as such. The + following pragmas are either obsolete or undocumented: + No_Run_Time, Propagate_Exceptions, Rational, Ravenscar, + Restricted_Run_Time, Short_Descriptors, Universal_Data. Fix + some typos (notably on Restriction_Warnings). + * doc/gnat_rm/implementation_defined_pragmas.rst: Move + Rename_Pragma documentation to alphabetical order. + * gnat_rm.texi, gnat_ugn.texi: Regenerate. + +2021-10-05 Corentin Gay + + * adaint.c (QNX): Add #include for sys/time.h. + +2021-10-05 Pascal Obry + + * libgnat/g-forstr.adb (Next_Format): When there is no more + format specifier found issue a proper error message instead of + raising a contraint error. + +2021-10-05 Pascal Obry + + * libgnat/g-forstr.adb (Get_Formatted): Fix computation of the + number of zero to use in the formatted string. This was a wrong + copy/paste. + +2021-10-05 Pascal Obry + + * libgnat/g-forstr.adb (Get_Formatted): Minor code clean-up. + +2021-10-05 Etienne Servais + + * libgnat/a-zchhan.ads, libgnat/a-zchhan.adb + (Character_Set_Version, Is_Basic, To_Basic): New. + * libgnat/a-zchuni.ads, libgnat/a-zchuni.adb (Is_Basic, + To_Basic): New. + +2021-10-05 Yannick Moy + + * sem_aggr.adb (Resolve_Array_Aggregate): Improve error message. + +2021-10-05 Gary Dismukes + + * aspects.ads (type Aspect_Id): Add + Aspect_Designated_Storage_Model and Aspect_Storage_Model_Type. + (Aspect_Argument): Add associations for the above new aspects. + (Is_Representation_Aspect): Likewise. + (Aspect_Names, Aspect_Delay): Likewise. + * exp_ch4.adb (Expand_N_Allocator): Call Find_Storage_Op rather + than Find_Prim_Op. + * exp_intr.adb (Expand_Unc_Deallocation): Likewise. + * exp_util.ads (Find_Storage_Op): New function that locates + either a primitive operation of a storage pool or an operation + of a storage-model type specified in its Storage_Model_Type + aspect. + * exp_util.adb (Find_Storage_Op): New function that calls either + Find_Prim_Op or Get_Storage_Model_Type_Entity to locate a + storage-related operation that is associated with a type. + * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Analyzes, + resolves, and validates the arguments of aspect + Designated_Storage_Model_Type. + (Analyze_Aspect_Specifications): Sets delay-related flags on + storage-model aspects when Delay_Required. Checks that aspect + Designated_Storage_Model is only specified for an access type + and that aspect Storage_Model_Type is only specified on an + immutably limited type. Also records such aspects for their + associated types. + (Check_Aspect_At_Freeze_Point): Resolve each of the argument + associations given for a Storage_Model_Type aspect. + (Resolve_Storage_Model_Type_Argument): New procedure that + resolves an argument given in the association for a given entity + name associated with a type with aspect Storage_Model_Type, + ensuring that it has the proper kind or profile. + (Validate_Storage_Model_Type_Aspect): New procedure that checks + the legality and completeness of the entity associations given + in a Storage_Model_Type aspect. + * sem_util.ads (package Storage_Model_Support): New nested + package that encapsulates a set of convenient utility functions + for retrieving entities, etc. associated with + storage-model-related types and objects. + (Get_Storage_Model_Type_Entity): New function to return a + specified entity associated with a type that has aspect + Storage_Model_Type. + (Has_Designated_Storage_Model_Aspect): New function that returns + whether a type has aspect Designated_Storage_Model. + (Has_Storage_Model_Type_Aspect): New function that returns + whether a type has aspect Storage_Model_Type. + (Storage_Model_Object): New function that returns the object + Entity_Id associated with a type's Designated_Storage_Model + aspect. + (Storage_Model_Type): New function that returns the type + associated with a storage-model object (when the object's type + specifies Storage_Model_Type). + (Storage_Model_Address_Type): New function that returns the + Address_Type associated with a type that has aspect + Storage_Model_Type. + (Storage_Model_Null_Address): New function that returns the + Null_Address constant associated with a type that has aspect + Storage_Model_Type. + (Storage_Model_Allocate): New function that returns the Allocate + procedure associated with a type that has aspect + Storage_Model_Type. + (Storage_Model_Deallocate): New function that returns the + Deallocate procedure associated with a type that has aspect + Storage_Model_Type. + (Storage_Model_Copy_From): New function that returns the + Copy_From procedure associated with a type that has aspect + Storage_Model_Type. + (Storage_Model_Copy_To): New function that returns the Copy_To + procedure associated with a type that has aspect + Storage_Model_Type. + (Storage_Model_Storage_Size): New function that returns the + Storage_Size function associated with a type that has aspect + Storage_Model_Type. + * sem_util.adb (package Storage_Model_Support): Body of new + nested package that contains the implementations the utility + functions declared in the spec of this package. + * snames.ads-tmpl: Add new names Name_Designated_Storage_Pool, + Name_Storage_Model, Name_Storage_Model_Type, Name_Address_Type, + Name_Copy_From, Name_Copy_To, and Name_Null_Address for the new + aspects and associated aspect arguments. + +2021-10-05 Richard Kenner + + * debug.adb: Add documentation for -gnatd_t. + +2021-10-05 Corentin Gay + + * sysdep.c (__gnat_is_file_not_found_error): Add else if case. + +2021-10-05 Piotr Trojanek + + * exp_util.adb (Build_Class_Wide_Expression): Replace entities + of both identifiers and operator symbols. + +2021-10-05 Piotr Trojanek + + * sem_ch3.adb (Derive_Subprogram): Copy ghost status from parent + to derived subprogram. + +2021-10-05 Joffrey Huguet + + * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Add + Default_Initial_Condition to Unbounded_String. + +2021-10-05 Claire Dross + + * libgnat/a-cfdlli.ads: Use pragma Assertion_Policy to disable + contract cases at execution. + * libgnat/a-cfinve.ads: Idem. + * libgnat/a-cofove.ads: Idem. + * libgnat/a-cfhase.ads: Idem. + * libgnat/a-cfhama.ads: Idem. + * libgnat/a-cforse.ads: Idem. + * libgnat/a-cforma.ads: Idem. + +2021-10-05 Bob Duff + + * par-ch4.adb (P_Iterated_Component_Association): Parse these + features the same way in all language versions. Move the call + to Error_Msg_Ada_2022_Feature into semantic analysis. + * sem_aggr.adb (Resolve_Iterated_Component_Association, + Resolve_Iterated_Association): Move the call to + Error_Msg_Ada_2022_Feature here from par-ch4.adb. + +2021-10-05 Yannick Moy + + * sem_res.adb (Resolve): Recognize specially that case. + +2021-10-05 Yannick Moy + + * libgnat/a-strmap.adb: Add ghost code for proof. + (To_Range): This is the most involved proof, as it requires + creating the result of the call to To_Domain as a ghost + variable, and show the unicity of this result in order to prove + the postcondition. + * libgnat/a-strmap.ads: (SPARK_Proof_Sorted_Character_Sequence): + New ghost function. + (To_Domain): Add postcondition regarding sorting of result. + (To_Range): Fix postcondition that should compare Length instead + of Last for the results of To_Domain and To_Range, as the value + of Last for an empty result is not specified in the Ada RM. + +2021-10-05 Yannick Moy + + * libgnat/a-chahan.adb: Add loop invariants as needed to prove + subprograms. Also use extended return statements where + appropriate and not done already. Mark data with + Relaxed_Initialization where needed for initialization by parts. + Convert regular functions to expression functions where needed + for proof. + * libgnat/a-chahan.ads: Add postconditions. + * libgnat/a-strmap.ads (Model): New ghost function to create a + publicly visible model of the private data Character_Mapping, + needed in order to prove subprograms in Ada.Characters.Handling. + +2021-10-04 Justin Squirek + + * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: + Add new entry for No_Dynamic_Accessibility_Checks documenting + behavior. + * gnat_rm.texi: Regenerate. + * exp_ch4.adb (Expand_N_In): Perform special expansion for + membership tests when No_Dynamic_Accessibility_Checks is active. + * sem_attr.adb (Resolve_Attribute): Skip static accessibility + check on actuals for anonymous access type formal parameters, + and add constants for readability. + * sem_util.adb (Function_Call_Or_Allocator_Level): Use the + innermost master for determining the level for function calls + within the alternative accessibility model. + (Type_Access_Level): Properly get the level for anonymous access + function result types. + +2021-10-04 Piotr Trojanek + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst + (gnateA): This switch no longer looks at the formal parameter + type being composite (as originally mandated by SPARK), but in + the parameter passing mechanism being not specified (as + currently mandated by Ada). + * gnat_ugn.texi: Regenerate. + +2021-10-04 Ed Schonberg + + * sem_ch6.adb (Analyze_Operator_Symbol): Recognize strings as + operator names when they are the value of one of the Ada2022 + aspects for User_Defined_Literals. + * sem_ch13.adb (Analyze_One_Aspect): Handle an aspect value + given by an Operator_Name. + (Validate_Literal_Aspect): Call Analyze_Operator_Symbol when + needed. + +2021-10-04 Piotr Trojanek + + * gen_il-gen.adb (Put_Make_Spec): Don't emit the LF character in + the middle of a string, because the Put routine won't indent it + properly. + +2021-10-04 Ghjuvan Lacambre + + * gnat_cuda.adb (Remove_CUDA_Device_Entities): New function. + (Expand_CUDA_Package): Call Remove_CUDA_Device_Entities. + * gnat_cuda.ads (Expand_CUDA_Package): Expand documentation. + * sem_prag.adb (Analyze_Pragma): Remove warning about + CUDA_Device not being implemented. + +2021-10-04 Gary Dismukes + + * sem_ch7.adb (Analyze_Package_Specification): For types marked + as Must_Have_Preelab_Init, we now check for the presence of a + Preelaborable_Initialization aspect on the type, and pass the + aspect's expression (if any) on the call to + Has_Preelaborable_Initialization (or pass Empty if the type has + no such aspect or the aspect has no associated expression). + * sem_util.ads (Has_Preelaborable_Initialization): Change + Boolean formal parameter Formal_Types_Have_Preelab_Init to + instead be a formal of type Node_Id (named Preelab_Init_Expr), + to allow passing an expression that may be a conjunction of + Preelaborable_Initialization aspects. Revise spec comment + accordingly (and remove ??? comment). + * sem_util.adb (Type_Named_In_Preelab_Init_Expression): New + nested function with a result indicating whether a given type is + named as the prefix of a Preelaborable_Initialization attribute + in the expression of a corresponding P_I aspect. + (Has_Preelaborable_Initialization): For generic formal derived + and private types, test whether the type is named in the + expression Preelab_Init_Expr (by calling + Type_Named_In_Preelab_Init_Expression), and if so, treat the + formal type as having preelaborable initialization (returning + True). + * libgnat/a-cobove.ads (Vector): Replace pragma + Preelaborable_Initialization with the aspect, specifying its + value as Element_Type'Preelaborable_Initialization. + (Cursor): Replace pragma P_I with the aspect (defaulting to + True). + * libgnat/a-cbdlli.ads (List): Replace pragma + Preelaborable_Initialization with the aspect, specifying its + value as Element_Type'Preelaborable_Initialization. + (Cursor): Replace pragma P_I with the aspect (defaulting to + True). + * libgnat/a-cbhama.ads (Map): Replace pragma + Preelaborable_Initialization with the aspect, specifying its + value as (Element_Type'Preelaborable_Initialization and + Key_Type'Preelaborable_Initialization). + (Cursor): Replace pragma P_I with the aspect (defaulting to + True). + * libgnat/a-cborma.ads (Map): Replace pragma + Preelaborable_Initialization with the aspect, specifying its + value as (Element_Type'Preelaborable_Initialization and + Key_Type'Preelaborable_Initialization). + (Cursor): Replace pragma P_I with the aspect (defaulting to + True). + * libgnat/a-cbhase.ads (Set): Replace pragma + Preelaborable_Initialization with the aspect, specifying its + value as Element_Type'Preelaborable_Initialization. + (Cursor): Replace pragma P_I with the aspect (defaulting to + True). + * libgnat/a-cborse.ads (Set): Replace pragma + Preelaborable_Initialization with the aspect, specifying its + value as Element_Type'Preelaborable_Initialization. + (Cursor): Replace pragma P_I with the aspect (defaulting to + True). + * libgnat/a-cbmutr.ads (Tree): Replace pragma + Preelaborable_Initialization with the aspect, specifying its + value as Element_Type'Preelaborable_Initialization. + (Cursor): Replace pragma P_I with the aspect (defaulting to + True). + * libgnat/a-coboho.ads (Holder): Replace pragma + Preelaborable_Initialization with the aspect, specifying its + value as Element_Type'Preelaborable_Initialization. + (Cursor): Replace pragma P_I with the aspect (defaulting to + True). + +2021-10-04 Yannick Moy + + * libgnat/a-textio.adb: Mark body out of SPARK. + * libgnat/a-textio.ads: Mark spec in SPARK and private part out + of SPARK. + * sem.adb (Semantics.Do_Analyze): Similar to ghost code + attributes, save and restore value of + Ignore_SPARK_Mode_Pragmas_In_Instance. + +2021-10-04 Bob Duff + + * libgnat/s-regpat.ads: Change Data_First to Data'First. Change + "still" to "always". Similar changes for Data_Last. + +2021-10-04 Piotr Trojanek + + * sprint.adb (Sprint_Node_Actual): Refactor code for generic + package and subprogram declarations. + +2021-10-04 Piotr Trojanek + + * sem_res.adb (Resolve_Indexed_Component, Resolve_Slice): Rename + the local constant Name to Pref; remove repeated calls to + Prefix. + +2021-10-04 Matthieu Eyraud + + * scos.ads: Extend the documentation. + * par_sco.adb (Process_Decisions): Emit specific SCOs for + quantified expressions. + +2021-10-04 Piotr Trojanek + + * checks.adb (Selected_Range_Checks): Fix style. + * exp_ch4.adb (Expand_N_Slice): Fix style and comment. + * sem_res.adb (Resolve_Indexed_Component): Fix style. + +2021-10-04 Yannick Moy + + * libgnat/a-strbou.ads: Add comments. + +2021-10-04 Piotr Trojanek + + * sem_attr.adb (Eval_Attribute): Evaluation of attribute + Leading_Part with illegal second parameter is now similar to + evaluation of Remainder with its second parameter being zero. + +2021-10-04 Ed Schonberg + + * sem_res.adb (Resolve_Declare_Expression): Use tree traversals + to perform name capture of local entities in the expression of + the construct. + * exp_util.adb (Possible_Side_Effects_In_SPARK): Do not apply to + the prefix of an attribute reference Reduce when that prefix is + an aggregate, because it will be expanded into a loop, and has + no identifiable type. + +2021-10-04 Javier Miranda + + * sem_ch8.adb (Build_Class_Wide_Wrapper): Fix handling of + class-wide subtypes; required to handle chains of + instantiations. Adding also code to identify these wrappers and + properly resolve instantiations where the wrapper and a tagged + type primitive are visible. + * einfo.ads (Is_Class_Wide_Wrapper): Adding documentation. + * gen_il-fields.ads (Opt_Field_Enum): Adding + Is_Class_Wide_Wrapper. + * gen_il-gen-gen_entities.adb (Root_Entity_Type): Adding + semantic flag Is_Class_Wide_Wrapper. + +2021-10-04 Bob Duff + + * einfo.ads (Declaration_Node): Document that Declaration_Node + for Itypes. + * einfo-utils.adb (Declaration_Node): Make it return Empty for + Itypes, or a proper type or subtype declaration. + * gen_il-gen.adb: Minor comment improvement. + +2021-10-04 Piotr Trojanek + + * sem_res.adb (Resolve_Slice): Fix application of range checks + to slice range given as a subtype name. + +2021-10-04 Piotr Trojanek + + * sem_res.adb (Resolve_Slice): Handle range given as a subtype + indication. + +2021-10-04 Piotr Trojanek + + * sem_res.adb (Resolve_Slice): Add custom handling of attribute + Image and similar in CodePeer mode. This complements the + existing custom handling of these attributes in + Expand_N_Attribute_Reference. + +2021-10-04 Justin Squirek + + * sem_util.adb (Is_Variable): Add check for implicitly + dereferenced access types + (Is_Dependent_Component_Of_Mutable_Object): Set Prefix_Type when + not specified. + +2021-10-04 Eric Botcazou + + * doc/gnat_ugn/the_gnat_compilation_model.rst (Binding generation): + Document specific behavior for /include/-ending paths and update. + * gnat_ugn.texi: Regenerate. + +2021-10-04 Arnaud Charlet + + PR ada/102073 + * socket.c (__gnat_gethostbyaddr, __gnat_inet_pton): Add missing + return statements. + +2021-10-04 Justin Squirek + + * sem_util.adb (Function_Or_Allocator_Level): Properly handle + direct function calls in the default alternative accessibility + checking mode. + +2021-10-04 Javier Miranda + + * sem_util.adb (Is_Library_Level_Entity): Return False for + entities defined in E_Loop scopes. This change is not required + by the frontend; it is required by tools that depend on the + frontend sources. + * einfo-utils.adb (Is_Dynamic_Scope): Code cleanup. + +2021-10-04 Justin Squirek + + * sem_util.adb (Accessibility_Level): Add a case to handle + renamed subprograms in addition to renamed objects. + +2021-10-04 Doug Rupp + + * libgnarl/s-osinte__vxworks.ads (tlsKeyCreate): Return int. + * libgnarl/s-tpopsp__vxworks-rtp.adb (ERROR): Declare from + System.VxWorks.Ext.ERROR. + (Initialize): Declare IERR. Assert it. + * libgnarl/s-tpopsp__vxworks.adb (ERROR): Declare from + System.VxWorks.Ext.ERROR. + (Is_Valid_Task): Declare IERR. Test return. + * libgnarl/s-vxwext__kernel.adb (semDelete): Return STATUS. + +2021-10-04 Eric Botcazou + + * exp_disp.adb (Make_DT): Copy the Needs_Debug_Info flag from the + type onto the TSD object. + +2021-10-04 Steve Baird + + * sem_util.adb (Is_Repeatedly_Evaluated): Handle the case of an + Old attribute reference that occurs within what was originally a + quantified expression but which expansion has transformed into + an Expression_With_Actions. + +2021-10-04 Steve Baird + + * exp_ch4.adb (Expand_N_Indexed_Component): The two improvements + described above. + +2021-10-01 Bob Duff + + * exp_ch6.adb (Expand_Call_Helper): Do not call + Check_Subprogram_Variant if the subprogram is an ignored ghost + entity. Otherwise the compiler crashes (in debug builds) or + gives strange error messages (in production builds). + +2021-10-01 Ghjuvan Lacambre + + * gnat_cuda.adb (Empty_CUDA_Global_Subprograms): New procedure. + (Expand_CUDA_Package): Call Empty_CUDA_Global_Subprograms. + +2021-10-01 Steve Baird + + * checks.ads: Define a type Dimension_Set. Add an out-mode + parameter of this new type to Generate_Index_Checks so that + callers can know for which dimensions a check was generated. Add + an in-mode parameter of this new type to + Apply_Subscript_Validity_Checks so that callers can indicate + that no check is needed for certain dimensions. + * checks.adb (Generate_Index_Checks): Implement new + Checks_Generated parameter. + (Apply_Subscript_Validity_Checks): Implement new No_Check_Needed + parameter. + * exp_ch4.adb (Expand_N_Indexed_Component): Call + Apply_Subscript_Validity_Checks in more cases than before. This + includes declaring two new local functions, + (Is_Renamed_Variable_Name, + Type_Requires_Subscript_Validity_Checks_For_Reads): To help in + deciding whether to call Apply_Subscript_Validity_Checks. + Adjust to parameter profile changes in Generate_Index_Checks and + Apply_Subscript_Validity_Checks. + +2021-10-01 Eric Botcazou + + * doc/gnat_rm/implementation_defined_characteristics.rst: Document + the rounding mode assumed for dynamic computations as per 3.5.7(16). + * gnat_rm.texi: Regenerate. + +2021-10-01 Bob Duff + + * table.ads (Table_Type): Remove "aliased"; no longer needed by + Atree. Besides it contradicted the comment a few lines above, + "-- Note: We do not make the table components aliased...". + * types.ads: Move type Slot to Atree. + * atree.ads: Move type Slot fromt Types to here. Move type + Node_Header from Seinfo to here. + * atree.adb: Avoid the need for aliased components of the Slots + table. Instead of 'Access, use a getter and setter. Misc + cleanups. + (Print_Statistics): Print statistics about node and entity kind + frequencies. Give 3 digit fractions instead of percentages. + * (Get_Original_Node_Count, Set_Original_Node_Count): Statistics + for calls to Original_Node and Set_Original_Node. + (Original_Node, Set_Original_Node): Gather statistics by calling + the above. + (Print_Field_Statistics): Print Original_Node statistics. + (Update_Kind_Statistics): Remove, and put all statistics + gathering under "if Atree_Statistics_Enabled", which is a flag + generated in Seinfo by Gen_IL. + * gen_il-gen.adb (Compute_Field_Offsets): Choose offsets of + Nkind, Ekind, and Homonym first. This causes a slight efficiency + improvement. Misc cleanups. Do not generate Node_Header; it is + now hand-written in Atree. When choosing the order in which to + assign offsets, weight by the frequency of the node type, so the + more common nodes get their field offsets assigned earlier. Add + more special cases. + (Compute_Type_Sizes): Remove this and related things. + There was a comment: "At some point we can instrument Atree to + print out accurate size statistics, and remove this code." We + have Atree statistics, so we now remove this code. + (Put_Seinfo): Generate Atree_Statistics_Enabled, which is equal + to Statistics_Enabled. This allows Atree to say "if + Atree_Statistics_Enabled then " for + efficiency. When Atree_Statistics_Enabled is False, the "if ..." + will be optimized away. + * gen_il-internals.ads (Type_Frequency): New table of kind + frequencies. + * gen_il-internals.adb: Minor comment improvement. + * gen_il-fields.ads: Remove unused subtypes. Suppress style + checks in the Type_Frequency table. If we regenerate this + table (see -gnatd.A) we don't want to have to fiddle with + casing. + * impunit.adb: Minor. + * sinfo-utils.adb: Minor. + * debug.adb: Minor comment improvement. + +2021-10-01 Eric Botcazou + + * sem_type.adb (Specific_Type): Check that the type is tagged + before calling Interface_Present_In_Ancestor on it. + +2021-10-01 Eric Botcazou + + * debug.adb (d.8): Document usage. + * fe.h (Debug_Flag_Dot_8): Declare. + +2021-10-01 Gary Dismukes + + * sem_util.adb (Enter_Name): Suppress hiding warning when in an + instance. + +2021-10-01 Ed Schonberg + + * sem_attr.adb (Analyze_Attribute, case Type_Key): Attribute can + be applied to a formal type. + * sem_ch5.adb (Analyze_Case_Statement): If Extensions_Allowed is + not enabled, verify that the type of the expression is discrete. + +2021-10-01 Justin Squirek + + * exp_dbug.adb (Debug_Renaming_Declaration): Add check for + Entity present for Ren to prevent looking at unanalyzed nodes + +2021-10-01 Ghjuvan Lacambre + + * atree.adb (Print_Statistics): Help CodePeer see Total as + greater than zero. + * gen_il-gen.adb (One_Comp): Annotate Field_Table as Modified. + +2021-10-01 Richard Kenner + + * gen_il-gen-gen_entities.adb (Evaluable_Kind, + Global_Name_Kind): Add. + * gen_il-types.ads (Evaluable_Kind, Global_Name_Kind): Likewise. + +2021-10-01 Ghjuvan Lacambre + + * aspects.ads: Add CUDA_Device aspect. + * gnat_cuda.ads (Add_CUDA_Device_Entity): New subprogram. + * gnat_cuda.adb: + (Add_CUDA_Device_Entity): New subprogram. + (CUDA_Device_Entities_Table): New hashmap for CUDA_Device + entities. + (Get_CUDA_Device_Entities): New internal subprogram. + (Set_CUDA_Device_Entities): New internal subprogram. + * par-prag.adb (Prag): Handle pragma id Pragma_CUDA_Device. + * sem_prag.ads (Aspect_Specifying_Pragma): Mark CUDA_Device as + being both aspect and pragma. + * sem_prag.adb (Analyze_Pragma): Add CUDA_Device entities to + list of CUDA_Entities belonging to package N. + (Sig_Flags): Signal CUDA_Device entities as referenced. + * snames.ads-tmpl: Create CUDA_Device names and pragmas. + +2021-10-01 Gary Dismukes + + * exp_util.adb (Build_DIC_Procedure_Body): Remove inappropriate + Assert pragma. Remove unneeded and dead code related to derived + private types. + +2021-10-01 Richard Kenner + + * gen_il-gen-gen_nodes.adb (N_Alternative, N_Is_Case_Choice): + Add. + (N_Is_Exception_Choice, N_Is_Range): Likewise. + * gen_il-types.ads: Add above names. + * gen_il-gen.adb (Put_Union_Membership): Write both declarations + and definitions of union functions. + +2021-10-01 Ed Schonberg + + * exp_aggr.adb (Expand_Array_Aggregate, + Two_Pass_Aggregate_Expansion): Increment index for element + insertion within the loop, only if upper bound has not been + reached. + +2021-10-01 Javier Miranda + + * contracts.ads (Make_Class_Precondition_Subps): New subprogram. + (Merge_Class_Conditions): New subprogram. + (Process_Class_Conditions_At_Freeze_Point): New subprogram. + * contracts.adb (Check_Class_Condition): New subprogram. + (Set_Class_Condition): New subprogram. + (Analyze_Contracts): Remove code analyzing class-wide-clone + subprogram since it is no longer built. + (Process_Spec_Postconditions): Avoid processing twice seen + subprograms. + (Process_Preconditions): Simplify its functionality to + non-class-wide preconditions. + (Process_Preconditions_For): No action needed for wrappers and + helpers. + (Make_Class_Precondition_Subps): New subprogram. + (Process_Class_Conditions_At_Freeze_Point): New subprogram. + (Merge_Class_Conditions): New subprogram. + * exp_ch6.ads (Install_Class_Preconditions_Check): New + subprogram. + * exp_ch6.adb (Expand_Call_Helper): Install class-wide + preconditions check on dispatching primitives that have or + inherit class-wide preconditions. + (Freeze_Subprogram): Remove code for null procedures with + preconditions. + (Install_Class_Preconditions_Check): New subprogram. + * exp_util.ads (Build_Class_Wide_Expression): Lower the + complexity of this subprogram; out-mode formal Needs_Wrapper + since this functionality is now provided by a new subprogram. + (Get_Mapped_Entity): New subprogram. + (Map_Formals): New subprogram. + * exp_util.adb (Build_Class_Wide_Expression): Lower the + complexity of this subprogram. Its previous functionality is now + provided by subprograms Needs_Wrapper and Check_Class_Condition. + (Add_Parent_DICs): Map the overridden primitive to the + overriding one. + (Get_Mapped_Entity): New subprogram. + (Map_Formals): New subprogram. + (Update_Primitives_Mapping): Adding assertion. + * freeze.ads (Check_Inherited_Conditions): Subprogram made + public with added formal to support late overriding. + * freeze.adb (Check_Inherited_Conditions): New implementation; + builds the dispatch table wrapper required for class-wide + pre/postconditions; added support for late overriding. + (Needs_Wrapper): New subprogram. + * sem.ads (Inside_Class_Condition_Preanalysis): New global + variable. + * sem_disp.ads (Covered_Interface_Primitives): New subprogram. + * sem_disp.adb (Covered_Interface_Primitives): New subprogram. + (Check_Dispatching_Context): Skip checking context of + dispatching calls during preanalysis of class-wide conditions + since at that stage the expression is not installed yet on its + definite context. + (Check_Dispatching_Call): Skip checking 6.1.1(18.2/5) by + AI12-0412 on helpers and wrappers internally built for + supporting class-wide conditions; for late-overriding + subprograms call Check_Inherited_Conditions to build the + dispatch-table wrapper (if required). + (Propagate_Tag): Adding call to + Install_Class_Preconditions_Check. + * sem_util.ads (Build_Class_Wide_Clone_Body): Removed. + (Build_Class_Wide_Clone_Call): Removed. + (Build_Class_Wide_Clone_Decl): Removed. + (Class_Condition): New subprogram. + (Nearest_Class_Condition_Subprogram): New subprogram. + * sem_util.adb (Build_Class_Wide_Clone_Body): Removed. + (Build_Class_Wide_Clone_Call): Removed. + (Build_Class_Wide_Clone_Decl): Removed. + (Class_Condition): New subprogram. + (Nearest_Class_Condition_Subprogram): New subprogram. + (Eligible_For_Conditional_Evaluation): No need to evaluate + class-wide conditions during preanalysis since the expression is + not installed on its definite context. + * einfo.ads (Class_Wide_Clone): Removed. + (Class_Postconditions): New attribute. + (Class_Preconditions): New attribute. + (Class_Preconditions_Subprogram): New attribute. + (Dynamic_Call_Helper): New attribute. + (Ignored_Class_Postconditions): New attribute. + (Ignored_Class_Preconditions): New attribute. + (Indirect_Call_Wrapper): New attribute. + (Is_Dispatch_Table_Wrapper): New attribute. + (Static_Call_Helper): New attribute. + * exp_attr.adb (Expand_N_Attribute_Reference): When the prefix + is of an access-to-subprogram type that has class-wide + preconditions and an indirect-call wrapper of such subprogram is + available, replace the prefix by the wrapper. + * exp_ch3.adb (Build_Class_Condition_Subprograms): New + subprogram. + (Register_Dispatch_Table_Wrappers): New subprogram. + * exp_disp.adb (Build_Class_Wide_Check): Removed; class-wide + precondition checks now rely on internally built helpers. + * sem_ch13.adb (Analyze_Aspect_Specifications): Set initial + value of attributes Class_Preconditions, Class_Postconditions, + Ignored_Class_Preconditions and Ignored_Class_Postconditions. + These values are later updated with the full pre/postcondition + by Merge_Class_Conditions. + (Freeze_Entity_Checks): Call + Process_Class_Conditions_At_Freeze_Point. + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove code + building the body of the class-wide clone subprogram since it is + no longer required. + (Install_Entity): Adding assertion. + * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove + code building and analyzing the class-wide clone subprogram; no + longer required. + (Build_Pragma_Check_Equivalent): Adjust call to + Build_Class_Wide_Expression since the formal named Needs_Wrapper + has been removed. + * sem_attr.adb (Analyze_Attribute_Old_Result): Skip processing + these attributes during preanalysis of class-wide conditions + since at that stage the expression is not installed yet on its + definite context. + * sem_res.adb (Resolve_Actuals): Skip applying RM 3.9.2(9/1) and + SPARK RM 6.1.7(3) on actuals of internal helpers and wrappers + built to support class-wide preconditions. + * sem_ch5.adb (Process_Bounds): Do not generate a constant + declaration for the bounds when we are preanalyzing a class-wide + condition. + (Analyze_Loop_Parameter_Specification): Handle preanalysis of + quantified expression placed in the outermost expression of a + class-wide condition. + * ghost.adb (Check_Ghost_Context): No check required during + preanalysis of class-wide conditions. + * gen_il-fields.ads (Opt_Field_Enum): Adding + Class_Postconditions, Class_Preconditions, + Class_Preconditions_Subprogram, Dynamic_Call_Helper, + Ignored_Class_Postconditions, Ignored_Class_Preconditions, + Indirect_Call_Wrapper, Is_Dispatch_Table_Wrapper, + Static_Call_Helper. + * gen_il-gen-gen_entities.adb (Is_Dispatch_Table_Wrapper): + Adding semantic flag Is_Dispatch_Table_Wrapper; removing + semantic field Class_Wide_Clone; adding semantic fields for + Class_Postconditions, Class_Preconditions, + Class_Preconditions_Subprogram, Dynamic_Call_Helper, + Ignored_Class_Postconditions, Indirect_Call_Wrapper, + Ignored_Class_Preconditions, and Static_Call_Helper. + +2021-10-01 Piotr Trojanek + + * comperr.adb (Delete_SCIL_Files): Handle generic subprogram + declarations and renaming just like generic package declarations + and renamings, respectively; handle + N_Subprogram_Renaming_Declaration. + +2021-10-01 Steve Baird + + * bcheck.adb (Check_Versions): Add support for the case where + the .ali file contains both a primary and a secondary version + number, as in "GNAT Lib v22.20210809". + +2021-10-01 Steve Baird + + * sem_res.adb (Resolve): Two separate fixes. In the case where + Find_Aspect for a literal aspect returns the aspect for a + different (ancestor) type, call Corresponding_Primitive_Op to + get the right callee. In the case where a downward tagged type + conversion appears to be needed, generate a null extension + aggregate instead, as per Ada RM 3.4(27). + * sem_util.ads, sem_util.adb: Add new Corresponding_Primitive_Op + function. It maps a primitive op of a tagged type and a + descendant type of that tagged type to the corresponding + primitive op of the descendant type. The body of this function + was written by Javier Miranda. + +2021-10-01 Bob Duff + + * atree.adb: Gather and print statistics about frequency of + getter and setter calls. + * atree.ads (Print_Statistics): New procedure for printing + statistics. + * debug.adb: Document -gnatd.A switch. + * gen_il-gen.adb: Generate code for statistics gathering. + Choose the offset of Homonym early. Misc cleanup. Put more + comments in the generated code. + * gen_il-internals.ads (Unknown_Offset): New value to indicate + that the offset has not yet been chosen. + * gnat1drv.adb: Call Print_Statistics. + * libgnat/s-imglli.ads: Minor comment fix. + * output.ads (Write_Int_64): New procedure to write a 64-bit + value. Needed for new statistics, and could come in handy + elsewhere. + * output.adb (Write_Int_64): Likewise. + * sinfo.ads: Remove obsolete comment. The xtreeprs program no + longer exists. + * types.ads: New 64-bit types needed for new statistics. + +2021-10-01 Dmitriy Anisimkov + + * libgnat/memtrack.adb (Putc): New routine wrapped around fputc + with error check. + (Write): New routine wrapped around fwrite with error check. + Remove bound functions fopen, fwrite, fputs, fclose, OS_Exit. + Use the similar routines from System.CRTL and System.OS_Lib. + +2021-10-01 Ed Schonberg + + * exp_aggr.adb (Must_Slide): If the aggregate only contains an + others_clause no sliding id involved. Otherwise sliding is + required if any bound of the aggregate or the context subtype is + non-static. + +2021-10-01 Richard Kenner + + * gen_il-gen-gen_nodes.adb (N_Is_Decl): Add. + * gen_il-types.ads (N_Is_Decl): Likewise. + +2021-10-01 Richard Kenner + + * gen_il-gen-gen_nodes.adb (N_Entity_Name): Add. + * gen_il-types.ads (N_Entity_Name): Likewise. + +2021-10-01 Steve Baird + + * bcheck.adb (Check_Versions): In the case of an ali file + version mismatch, if distinct integer values can be extracted + from the two version strings then include those values in the + generated error message. + +2021-10-01 Steve Baird + + * sem_elab.adb (Is_Safe_Call): Return True in the case of a + (possibly rewritten) call to an expression function. + +2021-10-01 Ghjuvan Lacambre + + * sem_aggr.adb (Resolve_Iterated_Component_Association): + Initialize Id_Typ to Any_Type by default. + +2021-10-01 Eric Botcazou + + * doc/gnat_ugn/gnat_and_program_execution.rst (gnatmem): Document + that it works only with fixed-position executables. + +2021-10-01 Doug Rupp + + * libgnat/s-parame__vxworks.ads (time_t_bits): Change to + Long_Long_Integer'Size. + +2021-09-23 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Fix comment. + +2021-09-23 Richard Kenner + + * gen_il-gen-gen_entities.adb (Subprogram_Body_Or_Type): Add. + * gen_il-types.ads (Subprogram_Body_Or_Type): Likewise. + +2021-09-23 Richard Kenner + + * einfo-utils.adb (Next_Index): Verify input and output are + N_Is_Index. + * gen_il-gen-gen_nodes.adb (N_Has_Bounds, N_Is_Index): Add. + * gen_il-types.ads (N_Has_Bounds, N_Is_Index): Likewise. + * sem_ch3.adb (Array_Type_Declaration): Use Next, not + Next_Index. + * sem_ch12.adb (Formal_Dimensions): Likewise. + * sem_util.adb (Is_Valid_Renaming): Likewise. + +2021-09-23 Eric Botcazou + + * doc/gnat_ugn/gnat_utility_programs.rst (gnatsymbolize): + Document new --load option and -g1 as minimal compilation + requirement. + +2021-09-23 Piotr Trojanek + + * sem_aggr.adb (Resolve_Array_Aggregate): Only keep the bounds + for internally generated attributes; otherwise, compute them + anew. + +2021-09-23 Javier Miranda + + * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Decorate the + wrapper with attribute Is_Wrapper, and move its declaration to + the freezing actions of its type declaration; done to facilitate + identifying it at later stages to avoid handling it as a + primitive operation of a tagged type; otherwise it may be + handled as a dispatching operation and erroneously registered in + a dispatch table. + (Make_Index): Add missing decoration of field Parent. + * sem_disp.adb (Check_Dispatching_Operation): Complete + decoration of late-overriding dispatching primitives. + (Is_Access_To_Subprogram_Wrapper): New subprogram. + (Inherited_Subprograms): Prevent cascaded errors; adding missing + support for private types. + * sem_type.adb (Add_One_Interp): Add missing support for the + first interpretation of a primitive of an inmediate ancestor + interface. + * sem_util.adb (Check_Result_And_Post_State_In_Pragma): Do not + report missing reference in postcondition placed in internally + built wrappers. + * exp_disp.adb (Expand_Dispatching_Call): Adding assertion. + +2021-09-23 Ed Schonberg + + * sem_aggr.adb (Resolve_Array_Aggregate): Check the validity of + an array aggregate all of whose components are iterated + component associations. + * exp_aggr.adb (Expand_Array_Aggregate, + Two_Pass_Aggregate_Expansion): implement two-pass algorithm and + replace original aggregate with resulting temporary, to ensure + that a proper length check is performed if context is + constrained. Use attributes Pos and Val to handle index types of + any discrete type. + +2021-09-23 Bob Duff + + * gen_il-gen.adb: Set the number of concrete nodes that have the + Homonym field to a higher number than any other field. This + isn't true, but it forces Homonym's offset to be chosen first, + so it will be at offset zero and hence slot zero. + +2021-09-23 Richard Kenner + + * atree.adb (Relocate_Node): If relocating a subprgram call and + we're doing unnesting, make a new Parameter_Associations, if + any. + +2021-09-23 Piotr Trojanek + + * libgnat/a-strbou.ads (Generic_Bounded_Length): Remove explicit + Initializes contract. + +2021-09-23 Bob Duff + + * gen_il-gen.adb: Generate getters and setters with much of the + code inlined. Generate code for storing a few fields in the node + header, to avoid the extra level of indirection for those + fields. We generate the header type, so we don't have to + duplicate hand-written Ada and C code to depend on the number of + header fields. Declare constants for slot size. Use short names + because these are used all over. Remove + Put_Low_Level_Accessor_Instantiations, Put_Low_Level_C_Getter, + which are no longer needed. Rename + Put_High_Level_C_Getter-->Put_C_Getter. + * atree.ads, atree.adb: Take into account the header slots. + Take into account the single Node_Or_Entity_Field type. Remove + "pragma Assertion_Policy (Ignore);", because the routines in + this package are no longer efficiency critical. + * atree.h: Remove low-level getters, which are no longer used by + sinfo.h and einfo.h. + * einfo-utils.adb: Avoid crash in Known_Alignment. + * live.adb, sem_eval.adb: Remove code that prevents Node_Id from + having a predicate. We don't actually add a predicate to + Node_Id, but we want to be able to for temporary debugging. + * sinfo-utils.adb: Remove code that prevents Node_Id from having + a predicate. Take into account the single Node_Or_Entity_Field + type. + * sinfo-utils.ads: Minor. + * table.ads (Table_Type): Make the components aliased, because + low-level setters in Atree need to take 'Access. + * treepr.adb: Take into account the single Node_Or_Entity_Field + type. Make some code more robust, so we can print out + half-baked nodes. + * types.ads: Move types here for visibility purposes. + * gcc-interface/gigi.h, gcc-interface/trans.c: Take into account + the Node_Header change in the GNAT front end. + * gcc-interface/cuintp.c, gcc-interface/targtyps.c: Add because + gigi.h now refers to type Node_Header, which is in sinfo.h. + +2021-09-23 Yannick Moy + + * libgnat/a-strfix.adb (Delete, Insert, Overwrite, + Replace_Slice): Remove SPARK_Mode Off. + * libgnat/a-strfix.ads (Insert, Overwrite, Replace_Slice): + Strengthen precondition. + +2021-09-23 Piotr Trojanek + + * libgnat/a-strbou.ads (Generic_Bounded_Length): Remove non-null + Global contracts. + +2021-09-23 Steve Baird + + * doc/gnat_rm/implementation_defined_characteristics.rst: Update + this section to reflect the current version of Ada RM M.2. + * gnat_rm.texi: Regenerate. + +2021-09-22 Yannick Moy + + * libgnat/a-strfix.ads (Trim): Simplify contracts. + * libgnat/a-strfix.adb (Trim): Remove white space. + +2021-09-22 Piotr Trojanek + + * exp_ch4.adb (Expand_N_Op_Eq): Reuse Is_Attribute_Result. + * exp_prag.adb (Expand_Attributes): Reuse Is_Attribute_Old. + +2021-09-22 Yannick Moy + + * sem_ch3.adb (Analyze_Object_Declaration): Do not insert a + predicate check after a deferred constant declaration. + +2021-09-22 Bob Duff + + * contracts.adb, einfo-utils.adb, einfo-utils.ads, exp_ch7.adb, + exp_ch9.adb, exp_disp.adb, exp_prag.adb, exp_smem.adb, + exp_util.adb, freeze.adb, sem_aggr.adb, sem_attr.adb, + sem_ch8.adb, sem_prag.ads, sem_util.adb, sem_util.ads: Fix + conformance errors. + * errout.adb, erroutc.adb: Remove pragmas Suppress. + * err_vars.ads: Initialize variables that were previously being + read uninitialized. + +2021-09-22 Yannick Moy + + * libgnat/a-strunb.ads: Mark package in SPARK with private part + not in SPARK. + (Free): Mark not in SPARK. + +2021-09-22 Arnaud Charlet + + * snames.ads-tmpl: Update status of some attributes. + +2021-09-22 Doug Rupp + + * libgnarl/s-interr__vxworks.adb (Interfaces.C): Remove as + unused. + (System.VxWorks.Ext): Import. + (System.VxWorks.Ext.STATUS): use type. + (STATUS): New subtype. + (OK): New constant. + (Interrupt_Connector): Return STATUS type vice int. + (Interrupt_Connect, Notify_Interrupt, Unbind_Handler, + Interrupt_Server_Task): Rename Status to Result. Assert Result = + OK. + * libgnarl/s-osinte__vxworks.adb (To_Clock_Ticks): Define constant + IERR, and return it vice ERROR. + (Binary_Semaphore_Delete): Return STATUS type vice int. + (Binary_Semaphore_Obtain): Likewise. + (Binary_Semaphore_Release): Likewise. + (Binary_Semaphore_Flush): Likewise. + * libgnarl/s-osinte__vxworks.ads (SVE): Renaming of + System.VxWorks.Ext. + (STATUS): Use SVE in declaration of subtype. + (BOOL): Likewise. + (vx_freq_t): Likewise. + (t_id): Likewise. + (gitpid): Use SVE in renaming of subprogram + (Task_Stop): Likewise. + (Task_Cont): Likewise. + (Int_Lock): Likewise. + (Int_Unlock): Likewise. + (Set_Time_Slice): Likewise. + (semDelete): Likewise. + (taskCpuAffinitySet): Likewise. + (taskMaskAffinitySet): Likewise. + (sigset_t): Use SVE in declaration of type. + (OK): Remove as unused. + (ERROR): Likewise. + (taskOptionsGet): return STATUS vice int. + (taskSuspend): Likewise. + (taskResume): Likewise. + (taskDelay): Likewise. + (taskVarAdd): Likewise. + (taskVarDelete): Likewise. + (taskVarSet): Likewise. + (tlkKeyCreate): Likewise. + (taskPrioritySet): Likewise. + (semGive): Likewise. + (semTake): Likewise. + (Binary_Semaphore_Delete): Likewise. + (Binary_Semaphore_Obtain): Likewise. + (Binary_Semaphore_Release): Likewise. + (Binary_Semaphore_Flush): Likewise. + (Interrupt_Connect): Likewise. + * libgnarl/s-taprop__vxworks.adb + (System.VxWorks.Ext.STATUS): use type. + (int): Syntactically align subtype. + (STATUS): New subtype. + (OK): New constant. + (Finalize_Lock): Check STATUS vice int. Assert OK. + (Finalize_Lock): Likewise. + (Write_Lock): Likewise. + (Write_Lock): Likewise. + (Write_Lock): Likewise. + (Unlock): Likewise. + (Unlock): Likewise. + (Unlock): Likewise. + (Unlock): Likewise. + (Sleep): Likewise. + (Sleep): Likewise. + (Sleep): Likewise. + (Timed_Sleep): Likewise and test Result. + (Timed_Delay): Likewise and test Result. + (Wakeup): Likewise. + (Yield): Likewise. + (Finalize_TCB): Likewise. + (Suspend_Until_True): Check OK. + (Stop_All_Tasks): Declare Dummy STATUS vice in. Check OK. + (Is_Task_Context): Use OSI renaming. + (Initialize): Use STATUS vice int. + * libgnarl/s-vxwext.adb + (IERR): Renamed from ERROR. + (taskCpuAffinitySet): Return IERR (int). + (taskMaskAffinitySet): Likewise. + * libgnarl/s-vxwext.ads + (STATUS): New subtype. + (OK): New STATUS constant. + (ERROR): Likewise. + * libgnarl/s-vxwext__kernel-smp.adb + (IERR): Renamed from ERROR. + (Int_Lock): Return IERR. + (semDelete): Return STATUS. + (Task_Cont): Likewise. + (Task_Stop): Likewise. + * libgnarl/s-vxwext__kernel.adb + (IERR): Renamed from ERROR. + (semDelete): Return STATUS. + (Task_Cont): Likewise. + (Task_Stop): Likewise. + (taskCpuAffinitySet): Return IERR (int) + (taskMaskAffinitySet): Likewise. + * libgnarl/s-vxwext__kernel.ads + (STATUS): New subtype. + (OK): New STATUS constant. + (ERROR): Likewise. + (Interrupt_Connect): Return STATUS + (semDelete): Likewise. + (Task_Cont): Likewise. + (Task_Stop): Likewise. + (Set_Time_Slice): Likewise. + * libgnarl/s-vxwext__rtp-smp.adb + (IERR): Renamed from ERROR. + (Int_Lock): return IERR constant vice ERROR. + (Interrupt_Connect): Return STATUS. + (semDelete): Likewise. + (Set_Time_Slice): Likewise. + * libgnarl/s-vxwext__rtp.adb + (IERR): Renamed from ERROR. + (Int_Lock): return IERR constant vice ERROR. + (Int_Unlock): Return STATUS. + (semDelete): Likewise. + (Set_Time_Slice): Likewise. + (taskCpuAffinitySet): Return IERR (int) + (taskMaskAffinitySet): Likewise. + * libgnarl/s-vxwext__rtp.ads + (STATUS): New subtype. + (OK): New STATUS constant. + (ERROR): Likewise. + (Interrupt_Connect): Return STATUS + (semDelete): Likewise. + (Task_Cont): Likewise. + (Task_Stop): Likewise. + (Set_Time_Slice): Likewise. + +2021-09-22 Arnaud Charlet + + * prep.adb (Preprocess): Allow for more flexibility when + Relaxed_RM_Semantics is set. + +2021-09-22 Pierre-Alexandre Bazin + + * libgnat/a-strbou.adb: Turn SPARK_Mode on. + * libgnat/a-strbou.ads: Write contracts. + * libgnat/a-strfix.ads (Index): Fix grammar error in a comment. + * libgnat/a-strsea.ads (Index): Likewise. + * libgnat/a-strsup.adb: Rewrite the body to take into account + the new definition of Super_String using Relaxed_Initialization + and a predicate. + (Super_Replicate, Super_Translate, Times): Added loop + invariants, and ghost lemmas for Super_Replicate and Times. + (Super_Trim): Rewrite the body using search functions to + determine the cutting points. + (Super_Element, Super_Length, Super_Slice, Super_To_String): + Remove (now written as expression functions in a-strsup.ads). + * libgnat/a-strsup.ads: Added contracts. + (Super_Element, Super_Length, Super_Slice, Super_To_String): + Rewrite as expression functions. + +2021-09-22 Yannick Moy + + * sem_ch13.adb (Build_Predicate_Functions): Add guard. + +2021-09-22 Doug Rupp + + * libgnarl/s-vxwext.ads (BOOL): New int type. + (Interrupt_Context): Change return type to BOOL. + * libgnarl/s-vxwext__kernel.ads: Likewise. + * libgnarl/s-vxwext__rtp-smp.adb: Likewise. + * libgnarl/s-vxwext__rtp.adb: Likewise. + * libgnarl/s-vxwext__rtp.ads: Likewise. + * libgnarl/s-osinte__vxworks.adb (Interrupt_Context): Change + return type to BOOL. + * libgnarl/s-osinte__vxworks.ads (BOOL) New subtype. + (taskIsSuspended): Change return type to BOOL. + (Interrupt_Context): Change return type to BOOL. Adjust comments + accordingly. + * libgnarl/s-taprop__vxworks.adb (System.VxWorks.Ext.BOOL): + use type. + (Is_Task_Context): Test Interrupt_Context against 0. + * libgnat/i-vxwork.ads (BOOL): New int. + (intContext): Change return type to BOOL. Adjust comments. + * libgnat/i-vxwork__x86.ads: Likewise. + +2021-09-22 Piotr Trojanek + + * sem_aux.adb, sem_aux.ads (Package_Body): Moved from GNATprove. + * sem_elab.adb (Spec_And_Body_From_Entity): Refine type of parameter. + +2021-09-22 Arnaud Charlet + + * doc/gnat_ugn/platform_specific_information.rst: Improve doc + on permission and containers. + * gnat_ugn.texi: Regenerate. + +2021-09-22 Yannick Moy + + * atree.adb (Rewrite): Fix parent node of shared aspects. + * atree.ads (Rewrite): Add ??? comment on incorrect + documentation. + * einfo-utils.adb (Known_Esize): Fix logic. + * sem_ch13.adb (Alignment_Check_For_Size_Change, + Analyze_Attribute_Definition_Clause): Protect against unset + Size. + +2021-09-22 Yannick Moy + + * freeze.adb (Build_Renamed_Body): Special case for GNATprove. + * sem_ch6.adb (Analyze_Expression_Function): Remove useless test + for a node to come from source, which becomes harmful otherwise. + +2021-09-22 Justin Squirek + + * ali.adb, ali.ads (Scan_ALI): Remove use of deprecated + parameter Ignore_ED, and all specification for Lower in call to + Get_File_Name. + * ali-util.adb (Read_Withed_ALIs): Modify call to Scan_ALI. + * clean.adb (Clean_Executables): Likewise. + * gnatbind.adb (Add_Artificial_ALI_File, Executable section): + Likewise. + * gnatlink.adb (Executable section): Likewise. + * gnatls.adb (Executable section): Likewise. + * make.adb (Check, Wait_For_Available_Slot): Likewise. + * aspects.ads: Add Aspect_No_Controlled_Parts to + Nonoverridable_Aspect_Id + * opt.ads: Remove function pointers used as a workaround for + ASIS. + * osint-c.adb (Executable section): Remove setting of function + pointer workarounds needed for ASIS. + * osint.adb (Read_Default_Search_Dirs): Correct behavior to + detect EOL characters. + * par_sco.adb (Output_Header): Remove comment regarding use of + First_Sloc. + (Traverse_Sync_Definition): Renamed to + Traverse_Protected_Or_Task_Definition. + * pprint.adb (Interal_List_Name): Add description about purpose, + and refactor conditional statement. + (Prepend): Removed. + * repinfo.adb (List_Rep_Info, Write_Info_Line): Remove use of + subprogram pointer. + * scng.adb (Scan): Remove CODEFIX question, and minor comment + change. + * sem_attr.adb (Analyze_Image_Attribute): Remove special + processing for 'Img. + * sem_ch6.adb (Check_Untagged_Equality): Add RM reference. + (FCE): Add comment describing behavior. + (Is_Non_Overriding_Operation): Minor comment formatting change. + * sem_type.adb (Is_Actual_Subprogram): Add comment about + Comes_From_Source test. + (Matching_Types): Describe non-matching cases. + * sem_util.adb (Is_Confirming): Add stub case for + No_Controlled_Parts. + +2021-09-22 Yannick Moy + + * sem_ch13.adb (Build_Predicate_Functions): Access + Predicated_Parent only on subtypes. + +2021-09-22 Arnaud Charlet + + * sem_prag.adb (Process_Import_Or_Interface): Relax error when + Relaxed_RM_Semantics. + +2021-09-22 Steve Baird + + * libgnat/s-regpat.adb (Match): Handle the case where Self.First + is not NUL (so we know the first character we are looking for), + but case-insensitive matching has + been specified. + (Optimize): In the case of an EXACTF Op, set Self.First as is + done in the EXACT case, except with the addition of a call to + Lower_Case. + +2021-09-22 Eric Botcazou + + * libgnat/s-imenne.ads, libgnat/s-imenne.adb: Delete. + * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove s-imenne.o. + (GNATBIND_OBJS): Likewise. + +2021-09-22 Yannick Moy + + * einfo.ads: Fix comments. + * exp_aggr.adb: Fix variable name. + * exp_util.adb: Fix comments. + * sem_ch13.adb: Fix comments. + * sem_ch3.adb: Fix comments and variable name. + +2021-09-22 Doug Rupp + + * libgnarl/s-osinte__vxworks.ads: Make procedure vice function. + * libgnarl/s-vxwext.ads: Likewise. + * libgnarl/s-vxwext__kernel-smp.adb: Likewise. + * libgnarl/s-vxwext__kernel.adb: Likewise. + * libgnarl/s-vxwext__kernel.ads: Likewise. + * libgnarl/s-vxwext__rtp-smp.adb: Likewise. + * libgnarl/s-vxwext__rtp.adb: Likewise. + * libgnarl/s-vxwext__rtp.ads: Likewise. + * libgnarl/s-taprop__vxworks.adb (Stop_All_Tasks): Call + Int_Unlock as a procedure. + +2021-09-22 Doug Rupp + + * libgnarl/s-osinte__vxworks.ads (SVE): New package renaming + (vx_freq_t): New subtype. + (sysClkRateGet): Return vx_freq_t. + * libgnarl/s-vxwext.ads (vx_freq_t): New type. + * libgnarl/s-vxwext__kernel.ads: Likewise. + * libgnarl/s-vxwext__rtp.ads: Likewise. + +2021-09-22 Ghjuvan Lacambre + + * sem_case.adb (Composite_Case_Ops): Replace 'Image with + Error_Msg_Uint. + +2021-09-22 Eric Botcazou + + * exp_ch4.adb (Expand_N_If_Expression): Generate an intermediate + temporary when the expression is a condition in an outer decision + and control-flow optimizations are suppressed. + +2021-09-22 Steve Baird + + * exp_ch5.adb (Expand_General_Case_Statement.Pattern_Match): Add + new function Indexed_Element to handle array element + comparisons. Handle case choices that are array aggregates, + string literals, or names denoting constants. + * sem_case.adb (Composite_Case_Ops.Array_Case_Ops): New package + providing utilities needed for casing on arrays. + (Composite_Case_Ops.Choice_Analysis): If necessary, include + array length as a "component" (like a discriminant) when + traversing components. We do not (yet) partition choice analysis + to deal with unequal length choices separately. Instead, we + embed everything in the minimum-dimensionality Cartesian product + space needed to handle all choices properly; this is determined + by the length of the longest choice pattern. + (Composite_Case_Ops.Choice_Analysis.Traverse_Discrete_Parts): + Include length as a "component" in the traversal if necessary. + (Composite_Case_Ops.Choice_Analysis.Parse_Choice.Traverse_Choice): + Add support for case choices that are string literals or names + denoting constants. + (Composite_Case_Ops.Choice_Analysis): Include length as a + "component" in the analysis if necessary. + (Check_Choices.Check_Case_Pattern_Choices.Ops.Value_Sets.Value_Index_Count): + Improve error message when capacity exceeded. + * doc/gnat_rm/implementation_defined_pragmas.rst: Update + documentation to reflect current implementation status. + * gnat_rm.texi: Regenerate. + +2021-09-22 Eric Botcazou + + * freeze.adb (Check_Component_Storage_Order): Give a specific error + message for non-byte-aligned component in the packed case. Replace + "composite" with "record" in both cases. + +2021-09-22 Arnaud Charlet + + * libgnarl/a-tasini.ads, libgnarl/a-tasini.adb: Make compatible + with No_Elaboration_Code_All. + * libgnarl/s-taskin.ads, libgnarl/s-tassta.adb: Adjust + accordingly. + +2021-09-22 Arnaud Charlet + + * sem_ch6.adb (Check_Returns): Change message on missing return. + +2021-09-22 Arnaud Charlet + + * gnatfind.adb, gnatxref.adb: Mark these tools as obsolete + before removing them completely. + +2021-09-22 Eric Botcazou + + * gcc-interface/decl.c (range_cannot_be_superflat): Tweak comments. + +2021-09-21 Doug Rupp + + * init.c (__gnat_error_handler) [LynxOS]: Add a comment about + missing optional args. + +2021-09-21 Yannick Moy + + * gen_il-gen.adb (Put_Opt_Subtype): Add suffix. + +2021-09-21 Justin Squirek + + * sem_util.adb (Accessibility_Level): Remove spurious special + case for protected type components. + * exp_ch4.adb (Generate_Accessibility_Check): Use general + Accessibility_Level instead of the low-level function + Type_Access_Level. + +2021-09-21 Eric Botcazou + + * gnat_ugn.texi: Regenerate. + +2021-09-21 Matthieu Eyraud + + * par_sco.adb (Traverse_One): Add support for pragma Invariant / + Type_Invariant. + +2021-09-21 Bob Duff + + * gen_il-gen.adb (Put_Opt_Subtype): Print out subtypes of the + form: + subtype Opt_N_Declaration is + Node_Id with Predicate => + Opt_N_Declaration = Empty or else + Opt_N_Declaration in N_Declaration_Id; + One for each node or entity type, with the predicate allowing + Empty. + * atree.adb (Parent, Set_Parent): Remove unnecessary "Atree.". + +2021-09-21 Patrick Bernardi + + * bindgen.adb (Gen_Adainit): For targets that suppress the + standard library: set the default stack size global variable if + a value is provided via the -d switch, and generate a call to + __gnat_initialize_stack_limit if stack checking using stack + limits is enabled. + +2021-09-21 Bob Duff + + * sem_ch13.adb (Stream_Size): Print message about allowed stream + sizes even if other error were already found. This avoids + falling into the 'else', which prints "Stream_Size cannot be + given for...", which is misleading -- the Size COULD be given if + it were correct. + +2021-09-21 Daniel Mercier + + * exp_util.adb (Build_Temporary): In case of an external DISCR + symbol, set the related expression for CodePeer so that a more + comprehensible message can be emitted to the user. + +2021-09-21 Eric Botcazou + + * libgnat/s-dwalin.adb (Parse_Header): Tweak comments. + (Read_Entry_Format_Array): Tweak exception message. + (Symbolic_Address.Set_Result): Likewise. + +2021-09-21 Ed Schonberg + + * exp_ch7.adb (Make_Init_Call): Add guard to protect against a + missing initialization procedure for a type. + +2021-09-21 Doug Rupp + + * Makefile.rtl: Remove unused VxWorks sections. + * libgnarl/s-vxwext__noints.adb: Remove. + * libgnarl/s-vxwext__vthreads.ads: Remove. + * libgnat/a-elchha__vxworks-ppc-full.adb: Remove. + * libgnat/s-osprim__vxworks.adb: Remove. + * libgnat/s-osvers__vxworks-653.ads: Remove. + * libgnat/system-vxworks-e500-vthread.ads: Remove. + * libgnat/system-vxworks-ppc-vthread.ads: Remove. + * libgnat/system-vxworks-x86-vthread.ads: Remove. + +2021-09-21 Bob Duff + + * uintp.ads, uintp.adb (UI_Is_In_Int_Range): Change the type of + the formal parameter to Valid_Uint. Remove code that preserved + the previous behavior, and replace it with an assertion. The + previous behavior is no longer needed given the recent change to + gigi. + (No, Present): Add comment. + +2021-09-21 Bob Duff + + * sem_eval.adb (Fold_Shift): Replace an if_expression with an + if_statement. + +2021-09-21 Bob Duff + + * uintp.ads, uintp.adb: Add assertions. + (Ubool, Opt_Ubool): New "boolean" subtypes. + (UI_Is_In_Int_Range): The parameter should probably be + Valid_Uint, but we don't change that for now, because it causes + failures in gigi. + * sem_util.ads, sem_util.adb (Is_True, Is_False, + Static_Boolean): Use Opt_Ubool subtype. Document the fact that + Is_True (No_Uint) = True. Implement Is_False in terms of + Is_True. We considered changing Static_Boolean to return Uint_1 + in case of error, but that doesn't fit in well with + Static_Integer. + (Has_Compatible_Alignment_Internal): Deal with cases where Offs + is No_Uint. Change one "and" to "and then" to ensure we don't + pass No_Uint to ">", which would violate the new assertions. + * exp_util.adb, freeze.adb, sem_ch13.adb: Avoid violating new + assertions in Uintp. + +2021-09-21 Eric Botcazou + + * libgnat/s-dwalin.adb (To_File_Name): Fetch only the last string + from the .debug_line_str section. + (Symbolic_Address.Set_Result): Likewise. + +2021-09-21 Eric Botcazou + + * libgnat/s-dwalin.adb (Skip_Form): Fix cases of DW_FORM_addrx + and DW_FORM_implicit_const. Replace Constraint_Error with + Dwarf_Error. + +2021-09-21 Ghjuvan Lacambre + + * exp_pakd.adb (Expand_Packed_Not): Replace expression with + statement. + +2021-09-21 Ghjuvan Lacambre + + * sem_eval.adb (Is_Static_Subtype): Take predicates created + through "predicate" pragma into account. + +2021-09-21 Frederic Konrad + + * Makefile.rtl (aarch64-rtems*): Add GNATRTL_128BIT_PAIRS to + the LIBGNAT_TARGET_PAIRS list and also GNATRTL_128BIT_OBJS to + the EXTRA_GNATRTL_NONTASKING_OBJS list. + +2021-09-21 Gary Dismukes + + * sem_ch4.adb (Remove_Abstract_Operations): Add condition to + test for an E_Operator as part of criteria for setting + Abstract_Op on interpretations involving predefined operators. + +2021-09-21 Javier Miranda + + * exp_ch6.adb (Expand_Simple_Function_Return): For explicit + dereference of type conversion, enable code that ensures that + the tag of the result is that of the result type. + +2021-09-21 Bob Duff + + * einfo-utils.adb: Add support (currently disabled) for using + "initial zero" instead of "Uint_0" to represent "unknown". Call + Known_ functions, instead of evilly duplicating their code + inline. + * fe.h (No_Uint_To_0): New function to convert No_Uint to + Uint_0, in order to preserve existing behavior. + (Copy_Esize, Copy_RM_Size): New imports from Einfo.Utils. + * cstand.adb: Set size fields of Standard_Debug_Renaming_Type + and Standard_Exception_Type. + * checks.adb, exp_attr.adb, exp_ch3.adb, exp_ch5.adb, + exp_ch6.adb, exp_pakd.adb, exp_util.adb, freeze.adb, itypes.adb, + layout.adb, repinfo.adb, sem_attr.adb, sem_ch12.adb, + sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch7.adb, + sem_util.adb: Protect calls with Known_..., use Copy_... Remove + assumption that Uint_0 represents "unknown". + * types.ads (Nonzero_Int): New subtype. + * gcc-interface/decl.c, gcc-interface/trans.c: Protect calls + with Known_... and use Copy_... as appropriate, to avoid + blowing up in unknown cases. Similarly, call No_Uint_To_0 to + preserve existing behavior. + +2021-09-21 Steve Baird + + * sem_ch13.adb (Analyze_Aspect_Specifications): Add a new nested + function, Directly_Specified, and then use it in the + implementation of the required check. + +2021-09-21 Steve Baird + + * libgnat/a-costso.ads, libgnat/a-costso.adb: A new library + unit, Ada.Containers.Stable_Sorting, which exports a pair of + generics (one within the other) which are instantiated by each + of the 5 doubly-linked list container generics to implement + their respective Sort procedures. We use a pair of generics, + rather than a single generic, in order to further reduce code + duplication. The outer generic takes a formal private Node_Ref + type representing a reference to a linked list element. For some + instances, the corresponding actual parameter will be an access + type; for others, it will be the index type for an array. + * Makefile.rtl: Include new Ada.Containers.Stable_Sorting unit. + * libgnat/a-cbdlli.adb, libgnat/a-cdlili.adb, + libgnat/a-cfdlli.adb, libgnat/a-cidlli.adb, libgnat/a-crdlli.adb + (Sort): Replace existing Sort implementation with a call to an + instance of + Ada.Containers.Stable_Sorting.Doubly_Linked_List_Sort. Declare + the (trivial) actual parameters needed to declare that instance. + * libgnat/a-cfdlli.ads: Fix a bug encountered during testing in + the postcondition for M_Elements_Sorted. With a partial + ordering, it is possible for all three of (X < Y), (Y < X), + and (X = Y) to be simultaneously false, so that case needs to + handled correctly. + +2021-09-21 Piotr Trojanek + + * errout.adb (Error_Msg_Internal): Fix references to Sptr and + Optr in comment; fix grammar of "low-level" where it is used as + an adjective. + +2021-09-21 Piotr Trojanek + + * errout.adb (Write_Source_Code_Lines): Use Cur_Loc before + incrementing it, so that we don't need to decrement it. + +2021-09-21 Yannick Moy + + * errout.adb (Get_Line_End): Do not allow the result to go past + the end of the buffer. + +2021-09-21 Ed Schonberg + + * sem_ch3.adb (Process_Discriminant_Expressions): If the + constraint is for a Component_Definition that appears in a + Component_Declaration, the entity to be used to create the + potentially global symbol is the Defining_Identifier of the + Component_Declaration. + +2021-09-21 Bob Duff + + * libgnat/a-stbufi.ads, libgnat/a-stbufi.adb: Change all + occurrences of GNAT.OS_Lib to System.OS_Lib. + +2021-09-20 Piotr Trojanek + + * inline.adb (Has_Excluded_Declaration): Remove redundant guard; + the guarded code will call First on a No_List, which is + well-defined and gives Empty. + +2021-09-20 Piotr Trojanek + + * inline.adb (Has_Excluded_Declaration): Rename and reduce scope + of a local variable. + +2021-09-20 Bob Duff + + * uintp.ads, uintp.adb (Present, No): New functions for + comparing with No_Uint. + * checks.adb, einfo-utils.adb, exp_aggr.adb, exp_attr.adb, + exp_ch3.adb, exp_ch4.adb, exp_dbug.adb, exp_disp.adb, + exp_util.adb, repinfo.adb, repinfo-input.adb, scn.adb, + sem_attr.adb, sem_ch13.adb, sem_eval.adb, sem_util.adb, + sinfo-utils.adb, treepr.adb: Use Present (...) instead of "... + /= No_Uint", and No (...) instead of "... = No_Uint". + +2021-09-20 Claire Dross + + * libgnat/s-ficobl.ads: The entire package has a SPARK_Mode => + Off aspect. + +2021-09-20 Doug Rupp + + * libgnat/a-calend.adb: Remove time_t, replace with OS_Time. + * libgnat/s-os_lib.ads: Fix comments regarding time_t conversion + functions to reflect the use of To_Ada in in Ada.Calendar + package body. + * sysdep.c (__gnat_localtime_tzoff): Use OS_Time instead of + time_t. + +2021-09-20 Piotr Trojanek + + * sem_res.adb (Resolve_Actual): Remove + +2021-09-20 Bob Duff + + * einfo-utils.ads, einfo-utils.adb, fe.h, einfo.ads, + gen_il-fields.ads: Remove unused and no-longer-used routines. + Move related routines together. Rewrite incorrect + documentation, and documentation that will be incorrect when + e.g. Esize-related routines are fixed. Remove unused field + Normalized_Position_Max. + * cstand.adb, exp_pakd.adb, freeze.adb, + gen_il-gen-gen_entities.adb, itypes.adb, layout.adb, + sem_ch10.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, + sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_prag.adb, + sem_util.adb, ttypes.ads: Update calls to routines removed from + or renamed in Einfo.Utils. + * uintp.ads (Upos): Fix this subtype, which was unintentionally + declared to include Uint_0. + +2021-09-20 Piotr Trojanek + + * exp_ch7.adb (Expand_N_Package_Declaration): Fix wording in + comment. + * exp_disp.adb (Mark_DT): Remove unnecessary initialization of + I_Depth. + +2021-09-20 Piotr Trojanek + + * contracts.adb (Add_Contract_Item): Accept volatile-related + properties on constants. + (Analyze_Object_Contract): Check external properties on + constants; accept volatile constants. + (Check_Type_Or_Object_External_Properties): Replace "variable" + with "object" in error messages; replace Decl_Kind with a local + constant. + * sem_prag.adb (Analyze_Pragma): Accept volatile-related + properties on constants. + +2021-09-20 Pierre-Alexandre Bazin + + * libgnat/a-strfix.adb ("*"): Added loop invariants and lemmas + for proof. + (Delete): Added assertions for proof, and conditions to avoid + overflow. + (Head): Added loop invariant. + (Insert): Same as Delete. + (Move): Declared with SPARK_Mode Off. + (Overwrite): Added assertions for proof, and conditions to avoid + overflow. + (Replace_Slice): Added assertions for proof, and conditions to + avoid overflow. + (Tail): Added loop invariant and avoided overflows. + (Translate): Added loop invariants. + (Trim): Ensured empty strings returned start at 1. + * libgnat/a-strfix.ads (Index): Rewrote contract cases for + easier proof. + (Index_Non_Blank): Separated the null string case. + (Count): Specified Mapping shouldn't be null. + (Find_Token): Specified Source'First should be Positive when no + From is given. + (Translate): Specified Mapping shouldn't be null. + ("*"): Rewrote postcondition for easier proof. + * libgnat/a-strsea.adb (Belongs): Added postcondition. + (Count): Rewrote loops and added loop invariants to avoid + overflows. + (Find_Token): Added loop invariants. + (Index): Rewrote loops to avoid overflows and added loop + invariants for proof. + (Index_Non_Blank): Added loop invariants. + (Is_Identity): New function isolated without SPARK_Mode. + * libgnat/a-strsea.ads: Fix starting comment as package is no + longer private. + (Match): Declared ghost expression function Match. + (Is_Identity): Described identity in the postcondition. + (Index, Index_Non_Blank, Count, Find_Token): Added contract from + a-strfix.ads. + +2021-09-20 Piotr Trojanek + + * sem_ch13.adb (Resolve_Aspect_Aggregate): Move comments after + specs; fix typo in header box; cleanup whitespace. + +2021-09-20 Eric Botcazou + + * libgnat/s-objrea.adb (Get_Load_Address): Return 0 for ELF. + +2021-09-20 Eric Botcazou + + * adaint.c (__gnat_get_executable_load_address): Add Win32 support. + * libgnat/s-objrea.ads (Get_Xcode_Bounds): Fix typo in comment. + (Object_File): Minor reformatting. + (ELF_Object_File): Uncomment predicate. + (PECOFF_Object_File): Likewise. + (XCOFF32_Object_File): Likewise. + * libgnat/s-objrea.adb: Minor reformatting throughout. + (Get_Load_Address): Implement for PE-COFF. + * libgnat/s-dwalin.ads: Remove clause for System.Storage_Elements + and use consistent wording in comments. + (Dwarf_Context): Set type of Low, High and Load_Address to Address. + * libgnat/s-dwalin.adb (Get_Load_Displacement): New function. + (Is_Inside): Call Get_Load_Displacement. + (Low_Address): Likewise. + (Open): Adjust to type change. + (Aranges_Lookup): Change type of Addr to Address. + (Read_Aranges_Entry): Likewise for Start and adjust. + (Enable_Cach): Adjust to type change. + (Symbolic_Address): Change type of Addr to Address. + (Symbolic_Traceback): Call Get_Load_Displacement. + +2021-09-20 Piotr Trojanek + + * exp_disp.adb (Make_DT): Move call to Set_Has_Dispatch_Table, + so it is executed regardless of the Generate_SCIL mode. + +2021-09-20 Ed Schonberg + + * exp_util.ads (Force_Evaluation): Add formal parameter + Discr_Number, to indicate discriminant expression for which an + external name must be created. + (Remove_Side_Effects): Ditto. + * exp_util.adb (Force_Evaluation): Call Remove_Side_Effects with + added parameter. + (Remove_Side_Effects, Build_Temporary): If Discr_Number is + positive, create an external name with suffix DISCR and the + given discriminant number, analogous to what is done for + temporaries for array type bounds. + * sem_ch3.adb (Process_Discriminant_Expressions): If the + constraint is for an object or component declaration and the + corresponding entity may be visible in another unit, invoke + Force_Evaluation with the new parameter. + +2021-09-20 Arnaud Charlet + + * gen_il-internals.ads (Invalid_Val): Remove, unused and + generates warnings. + +2021-09-20 Piotr Trojanek + + * exp_aggr.adb, exp_ch4.adb, exp_ch5.adb, sprint.adb: Refine + types of local constants. + +2021-09-20 Gary Dismukes + + * exp_attr.adb (Expand_N_Attribute_Reference): Fold + Preelaborable_Initialization attribute in cases where it hasn't + been folded by the analyzer. + * exp_disp.adb (Original_View_In_Visible_Part): This function is + removed and moved to sem_util.adb. + * sem_attr.adb (Attribute_22): Add + Attribute_Preelaborable_Initialization as an Ada 2022 attribute. + (Analyze_Attribute, Attribute_Preelaborable_Initialization): + Check that the prefix of the attribute is either a formal + private or derived type, or a composite type declared within the + visible part of a package or generic package. + (Eval_Attribute): Perform folding of + Preelaborable_Initialization attribute based on + Has_Preelaborable_Initialization applied to the prefix type. + * sem_ch3.adb (Resolve_Aspects): Add specialized code for + Preelaborable_Initialization used at the end of a package + visible part for setting Known_To_Have_Preelab_Init on types + that are specified with True or that have a conjunction of one + or more P_I attributes applied to formal types. + * sem_ch7.adb (Analyze_Package_Specification): On call to + Has_Preelaborable_Initialization, pass True for new formal + Formal_Types_Have_Preelab_Init, so that error checking treats + subcomponents that are declared within types in generics as + having preelaborable initialization when the subcomponents are + of formal types. + * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Add test for + P_I to prevent calling Make_Pragma_From_Boolean_Aspect, since + this aspect is handled specially and the + Known_To_Have_Preelab_Init flag will get set on types that have + the aspect by other means. + (Analyze_Aspect_Specifications.Analyze_One_Aspect): Add test for + Aspect_Preelaborable_Initialization for allowing the aspect to + be specified on formal type declarations. + (Is_Operational_Item): Treat Attribute_Put_Image as an + operational attribute. The need for this was encountered while + working on these changes. + * sem_util.ads (Has_Preelaborable_Initialization): Add + Formal_Types_Have_Preelab_Init as a new formal parameter that + defaults to False. + (Is_Conjunction_Of_Formal_Preelab_Init_Attributes): New + function. + (Original_View_In_Visible_Part): Moved here from exp_disp.adb, + so it can be called by Analyze_Attribute. + * sem_util.adb (Has_Preelaborable_Initialization): Return True + for formal private and derived types when new formal + Formal_Types_Have_Preelab_Init is True, and pass along the + Formal_Types_Have_Preelab_Init flag in the array component case. + (Check_Components): Pass along Formal_Types_Have_Preelab_Init + flag on call to Has_Preelaborable_Initialization. + (Is_Conjunction_Of_Formal_Preelab_Init_Attributes): New function + that returns True when passed an expression that includes one or + more attributes for Preelaborable_Initialization applied to + prefixes that denote formal types. + (Is_Formal_Preelab_Init_Attribute): New utility function nested + within Is_Conjunction_Of_Formal_Preelab_Init_Attributes that + determines whether a node is a P_I attribute applied to a + generic formal type. + (Original_View_In_Visible_Part): Moved here from exp_util.adb, + so it can be called by Analyze_Attribute. + * snames.ads-tmpl: Add note near the start of spec giving + details about what needs to be done when adding a name that + corresponds to both an attribute and a pragma. Delete existing + occurrence of Name_Preelaborable_Initialization, and add a note + comment in the list of Name_* constants at that place, + indicating that it's included in type Pragma_Id, etc., echoing + other such comments for names that are both an attribute and a + pragma. Insert Name_Preelaborable_Initialization in the + alphabetized set of Name_* constants corresponding to + attributes (between First_Attribute_Name and + Last_Attribute_Name). + (type Attribute_Id): Add new literal + Attribute_Preelaborable_Initialization. + (type Pragma_Id): Move Pragma_Preelaborable_Initialization from + its current position to the end of the type, in the special set + of pragma literals that have corresponding atttributes. Add to + accompanying comment, indicating that functions Get_Pragma_Id + and Is_Pragma_Name need to be updated when adding a pragma + literal to the special set. + * snames.adb-tmpl (Get_Pragma_Id): Add case alternative for + Pragma_Preelaborable_Initialization. + (Is_Pragma_Name): Add test for + Name_Preelaborable_Initialization. + +2021-09-20 Ghjuvan Lacambre + + * sem_ch4.adb (Finc_Non_Universal_Interpretations): Fix check. + +2021-09-20 Piotr Trojanek + + * sem_ch3.adb (Build_Discriminant_Constraints): Exit once a + first discriminant is found and the Discrim_Present flag is set. + +2021-09-20 Bob Duff + + * gnat1drv.adb (Gnat1drv): Avoid calling List_Rep_Info in + Generate_SCIL and GNATprove_Mode. + * repinfo.adb (List_Common_Type_Info): Fix comment. + +2021-09-20 Eric Botcazou + + * libgnat/s-dwalin.ads: Remove clause for Ada.Exceptions.Traceback, + add clause for System.Traceback_Entries and alphabetize. + (AET): Delete. + (STE): New package renaming. + (Symbolic_Traceback): Adjust. + * libgnat/s-dwalin.adb: Remove clauses for Ada.Exceptions.Traceback + and System.Traceback_Entries. + (Symbolic_Traceback): Adjust. + +2021-09-20 Ghjuvan Lacambre + + * sem_ch4.adb (Find_Non_Universal_Interpretations): Check if + types are compatible before adding interpretation. + +2021-09-20 Justin Squirek + + * exp_ch4.adb (Expand_N_Type_Conversion): Add guard to protect + against calculating accessibility levels against internal + compiler-generated types. + +2021-09-20 Ghjuvan Lacambre + + * sem_dim.adb (Dimensions_Msg_Of): Capitalize comment. + +2021-09-20 Ghjuvan Lacambre + + * adabkend.adb (Scan_Back_End_Switches): Replace switch-scanning + logic with call to Backend_Utils.Scan_Common_Back_End_Switches. + * back_end.adb (Scan_Back_End_Switches): Replace switch-scanning + logic with call to Backend_Utils.Scan_Common_Back_End_Switches. + * backend_utils.adb: New file. + * backend_utils.ads: New file. + * gcc-interface/Make-lang.in: Add ada/backend_utils.o. + +2021-09-20 Ghjuvan Lacambre + + * atree.adb (Get_32_Bit_Field): Declare result before returning. + +2021-09-20 Ghjuvan Lacambre + + * exp_ch7.adb (Expand_N_Package_Body): Replace + Build_And_Insert_Cuda_Initialization with Expand_CUDA_Package. + * gnat_cuda.adb (Expand_CUDA_Package): New procedure. + (Build_And_Insert_Cuda_Initialization): Make internal. + * gnat_cuda.ads (Expand_CUDA_Package): New procedure. + (Build_And_Insert_Cuda_Initialization): Remove from spec. + +2021-09-20 Ghjuvan Lacambre + + * usage.adb (Usage): Update -gnatw.c messages. + +2021-09-20 Eric Botcazou + + * sem_aux.adb (Is_By_Reference_Type): Do not test Error_Posted. + +2021-09-15 Alexandre Oliva + + * gcc-interface/utils.c: Include opts.h. + (handle_zero_call_used_regs_attribute): New. + (gnat_internal_attribute_table): Add zero_call_used_regs. + +2021-09-14 Eric Botcazou + + PR ada/101970 + * exp_attr.adb (Expand_N_Attribute_Reference) : + Use an unchecked conversion instead of a regular conversion in the + enumeration case and remove Conversion_OK flag in the integer case. + : Remove superfluous test. + +2021-09-14 Eric Botcazou + + * gcc-interface/decl.c (validate_size): Do not issue an error if the + old size has overflowed. + +2021-09-14 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): For vector types, make + the representative array the debug type. + +2021-09-14 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Turn variable + into constant. Capitalize GCC in warning message. + (intrin_arglists_compatible_p): Change parameter to pointer-to-const + Adjust warning messages. Turn warning into error for vector types. + (intrin_return_compatible_p): Likewise. + (intrin_profiles_compatible_p): Change parameter to pointer-to-const + +2021-09-14 Eric Botcazou + + * libgnat/s-atopri.ads (bool): Delete. + (Atomic_Test_And_Set): Replace bool with Boolean. + (Atomic_Always_Lock_Free): Likewise. + * libgnat/s-aoinar.adb (Is_Lock_Free): Adjust. + * libgnat/s-aomoar.adb (Is_Lock_Free): Likewise. + * libgnat/s-aotase.adb (Atomic_Test_And_Set): Likewise. + * libgnat/s-atopex.adb (Atomic_Compare_And_Exchange): Likewise. + * gcc-interface/decl.c: Include gimple-expr.h. + (intrin_types_incompatible_p): Delete. + (intrin_arglists_compatible_p): Call types_compatible_p. + (intrin_return_compatible_p): Likewise. + +2021-09-14 Eric Botcazou + + * gcc-interface/utils.c (update_pointer_to): Set TYPE_CANONICAL on + pointer and reference types. + +2021-09-14 Eric Botcazou + + PR ada/101385 + * doc/gnat_ugn/building_executable_programs_with_gnat.rst + (-Wall): Minor fixes. + (-w): Likewise. + (-Werror): Document that it also sets -gnatwe by default. + * gcc-interface/lang-specs.h (ada): Expand -gnatwe if -Werror is + passed and move expansion of -gnatw switches to before -gnatez. + +2021-09-14 Eric Botcazou + + * gcc-interface/utils.c (can_materialize_object_renaming_p): Do not + call UI_Is_In_Int_Range on the result of Normalized_First_Bit. + +2021-09-14 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Declare new + constant. Adjust error message issued by validate_size in the case + of by-reference types. + (validate_size): Always use the error strings passed by the caller. + +2021-09-08 liuhongt + + * gcc-interface/misc.c (gnat_post_options): Issue an error for + -fexcess-precision=16. + +2021-08-19 Arnaud Charlet + + PR ada/101924 + * gcc-interface/Make-lang.in (STAGE1_LIBS): Define on hpux. + +2021-08-18 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Fix + thinko in latest change. + +2021-08-11 Bernd Edlinger + + PR debug/101598 + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the + DECL_SOURCE_LOCATION of DECL_IGNORED_P gnu_subprog_decl to + UNKNOWN_LOCATION. + +2021-07-25 Arnaud Charlet + + * libgnat/s-osprim__x32.adb: Add missing with clause. + +2021-07-12 Pierre-Marie de Rodat + + * adaint.c (__gnat_number_of_cpus): Replace "#ifdef" by "#if + defined". + +2021-07-12 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Add a + parallel type only when -fgnat-encodings=all is specified. + : Use the PAT name and special suffixes only when + -fgnat-encodings=all is specified. + : Build a special type for debugging purposes only + when -fgnat-encodings=all is specified. Add a parallel type or use + the PAT name only when -fgnat-encodings=all is specified. + : Generate debug info for the inner record types only + when -fgnat-encodings=all is specified. + : Use a debug type for an artificial subtype only + except when -fgnat-encodings=all is specified. + (elaborate_expression_1): Reset need_for_debug when possible only + except when -fgnat-encodings=all is specified. + (components_to_record): Use XV encodings for variable size only + when -fgnat-encodings=all is specified. + (associate_original_type_to_packed_array): Add a parallel type only + when -fgnat-encodings=all is specified. + * gcc-interface/misc.c (gnat_get_array_descr_info): Do not return + full information only when -fgnat-encodings=all is specified. + * gcc-interface/utils.c (make_packable_type): Add a parallel type + only when -fgnat-encodings=all is specified. + (maybe_pad_type): Make the inner type a debug type only except when + -fgnat-encodings=all is specified. Create an XVS type for variable + size only when -fgnat-encodings=all is specified. + (rest_of_record_type_compilation): Add a parallel type only when + -fgnat-encodings=all is specified. + +2021-07-12 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Use a + fixed lower bound if the index subtype is marked so, as well as a + more efficient formula for the upper bound if the array cannot be + superflat. + (flb_cannot_be_superflat): New predicate. + (cannot_be_superflat): Rename into... + (range_cannot_be_superfla): ...this. Minor tweak. + +2021-07-12 Bob Duff + + * uintp.ads, types.h: New subtypes of Uint: Valid_Uint, Unat, + Upos, Nonzero_Uint with predicates. These correspond to new + field types in Gen_IL. + * gen_il-types.ads (Valid_Uint, Unat, Upos, Nonzero_Uint): New + field types. + * einfo-utils.ads, einfo-utils.adb, fe.h (Known_Alignment, + Init_Alignment): Use the initial zero value to represent + "unknown". This will ensure that if Alignment is called before + Set_Alignment, the compiler will blow up (if assertions are + enabled). + * atree.ads, atree.adb, atree.h, gen_il-gen.adb + (Get_Valid_32_Bit_Field): New generic low-level getter for + subtypes of Uint. + (Copy_Alignment): New procedure to copy Alignment field even + when Unknown. + (Init_Object_Size_Align, Init_Size_Align): Do not bypass the + Init_ procedures. + * exp_pakd.adb, freeze.adb, layout.adb, repinfo.adb, + sem_util.adb: Protect calls to Alignment with Known_Alignment. + Use Copy_Alignment when it might be unknown. + * gen_il-gen-gen_entities.adb (Alignment, + String_Literal_Length): Use type Unat instead of Uint, to ensure + that the field is always Set_ before we get it, and that it is + set to a nonnegative value. + (Enumeration_Pos): Unat. + (Enumeration_Rep): Valid_Uint. Can be negative, but must be + valid before fetching. + (Discriminant_Number): Upos. + (Renaming_Map): Remove. + * gen_il-gen-gen_nodes.adb (Char_Literal_Value, Reason): Unat. + (Intval, Corresponding_Integer_Value): Valid_Uint. + * gen_il-internals.ads: New functions for dealing with special + defaults and new subtypes of Uint. + * scans.ads: Correct comments. + * scn.adb (Post_Scan): Do not set Intval to No_Uint; that is no + longer allowed. + * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Do + not set Enumeration_Rep to No_Uint; that is no longer allowed. + (Offset_Value): Protect calls to Alignment with Known_Alignment. + * sem_prag.adb (Set_Atomic_VFA): Do not use Uint_0 to mean + "unknown"; call Init_Alignment instead. + * sinfo.ads: Minor comment fix. + * treepr.adb: Deal with printing of new field types. + * einfo.ads, gen_il-fields.ads (Renaming_Map): Remove. + * gcc-interface/decl.c (gnat_to_gnu_entity): Use Known_Alignment + before calling Alignment. This preserve some probably buggy + behavior: if the alignment is not set, it previously defaulted + to Uint_0; we now make that explicit. Use Copy_Alignment, + because "Set_Alignment (Y, Alignment (X));" no longer works when + the Alignment of X has not yet been set. + * gcc-interface/trans.c (process_freeze_entity): Use + Copy_Alignment. + +2021-07-12 Eric Botcazou + + * libgnat/s-dwalin.ads: Adjust a few comments left and right. + (Line_Info_Register): Comment out unused components. + (Line_Info_Header): Add DWARF 5 support. + (Dwarf_Context): Likewise. Rename "prologue" into "header". + * libgnat/s-dwalin.adb: Alphabetize "with" clauses. + (DWARF constants): Add DWARF 5 support and reorder. + (For_Each_Row): Adjust. + (Initialize_Pass): Likewise. + (Initialize_State_Machine): Likewise and fix typo. + (Open): Add DWARF 5 support. + (Parse_Prologue): Rename into... + (Parse_Header): ...this and add DWARF 5 support. + (Read_And_Execute_Isn): Rename into... + (Read_And_Execute_Insn): ...this and adjust. + (To_File_Name): Change parameter name and add DWARF 5 support. + (Read_Entry_Format_Array): New procedure. + (Skip_Form): Add DWARF 5 support and reorder. + (Seek_Abbrev): Do not count entries and add DWARF 5 support. + (Debug_Info_Lookup): Add DWARF 5 support. + (Symbolic_Address.Set_Result): Likewise. + (Symbolic_Address): Adjust. + +2021-07-12 Bob Duff + + * sem_ch13.adb (Duplicate_Clause): Add a helper routine + Check_One_Attr, with a parameter for the attribute_designator we + are looking for, and one for the attribute_designator of the + current node (which are usually the same). For Size and + Value_Size, call it twice, once for each. + * errout.ads: Fix a typo. + +2021-07-12 Piotr Trojanek + + * exp_imgv.adb (Expand_Image_Attribute): Move rewriting to + attribute Put_Image to the beginning of expansion of attribute + Image. + +2021-07-09 Eric Botcazou + + * gcc-interface/utils.c (finish_subprog_decl): Remove obsolete line. + +2021-07-09 Piotr Trojanek + + * exp_put_image.adb (Make_Put_Image_Name): Fix style. + (Image_Should_Call_Put_Image): Likewise. + (Build_Image_Call): Likewise. + +2021-07-09 Ghjuvan Lacambre + + * par-ch6.adb (Contains_Import_Aspect): New function. + (P_Subprogram): Acknowledge `Import` aspects. + +2021-07-09 Bob Duff + + * exp_put_image.adb (Make_Component_Attributes): Use + Implementation_Base_Type to get the parent type. Otherwise, + Parent_Type_Decl is actually an internally generated subtype + declaration, so we blow up on + Type_Definition (Parent_Type_Decl). + +2021-07-09 Dmitriy Anisimkov + + * gsocket.h: Include net/if.h to get IF_NAMESIZE constant. + * s-oscons-tmplt.c: Define IPV6_FLOWINFO for Linux. + +2021-07-09 Steve Baird + + * libgnat/a-cdlili.adb: Reimplement + Ada.Containers.Doubly_Linked_Lists.Generic_Sorting.Sort using + Mergesort instead of the previous Quicksort variant. + +2021-07-09 Justin Squirek + + * exp_ch6.adb (Is_Build_In_Place_Function_Call): Add check to + verify the Selector_Name of Exp_Node has been analyzed before + obtaining its entity. + +2021-07-09 Gary Dismukes + + * libgnarl/s-osinte__vxworks.ads: Fix typo ("release" => + "releases") plus comment reformatting. + * libgnat/s-os_lib.ads: In a comment, fix typo ("indended" => + "intended"), add a hyphen and semicolon, plus reformatting. In + comment for subtype time_t, fix typo ("effect" => "affect"), add + hyphens, plus reformatting. + * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads, + libgnat/s-parame__hpux.ads: Remove period from one-line comment. + +2021-07-09 Steve Baird + + * exp_ch5.adb (Expand_General_Case_Statement): Add new function + Else_Statements to handle the case of invalid data analogously + to how it is handled when casing on a discrete value. + * sem_case.adb (Has_Static_Discriminant_Constraint): A new + Boolean-valued function. + (Composite_Case_Ops.Scalar_Part_Count): Include discriminants + when traversing components. + (Composite_Case_Ops.Choice_Analysis.Traverse_Discrete_Parts): + Include discriminants when traversing components; the component + range for a constrained discriminant is a single value. + (Composite_Case_Ops.Choice_Analysis.Parse_Choice): Eliminate + Done variable and modify how Next_Part is computed so that it is + always correct (as opposed to being incorrect when Done is + True). This includes changes in Update_Result (a local + procedure). Add new local procedure + Update_Result_For_Box_Component and call it not just for box + components but also for "missing" components (components + associated with an inactive variant). + (Check_Choices.Check_Composite_Case_Selector.Check_Component_Subtype): + Instead of disallowing all discriminated component types, allow + those that are unconstrained or statically constrained. Check + discriminant subtypes along with other component subtypes. + * doc/gnat_rm/implementation_defined_pragmas.rst: Update + documentation to reflect current implementation status. + * gnat_rm.texi: Regenerate. + +2021-07-09 Justin Squirek + + * sem_ch6.adb (Check_Pragma_Inline): Correctly use + Corresponding_Spec_Of_Stub when dealing subprogram body stubs. + +2021-07-09 Doug Rupp + + * Makefile.rtl: Add translations for s-parame__posix2008.ads + * libgnarl/s-linux.ads: Import System.Parameters. + (time_t): Declare using System.Parameters.time_t_bits. + * libgnarl/s-linux__alpha.ads: Likewise. + * libgnarl/s-linux__android.ads: Likewise. + * libgnarl/s-linux__hppa.ads: Likewise. + * libgnarl/s-linux__mips.ads: Likewise. + * libgnarl/s-linux__riscv.ads: Likewise. + * libgnarl/s-linux__sparc.ads: Likewise. + * libgnarl/s-linux__x32.ads: Likewise. + * libgnarl/s-qnx.ads: Likewise. + * libgnarl/s-osinte__aix.ads: Likewise. + * libgnarl/s-osinte__android.ads: Likewise. + * libgnarl/s-osinte__darwin.ads: Likewise. + * libgnarl/s-osinte__dragonfly.ads: Likewise. + * libgnarl/s-osinte__freebsd.ads: Likewise. + * libgnarl/s-osinte__gnu.ads: Likewise. + * libgnarl/s-osinte__hpux-dce.ads: Likewise. + * libgnarl/s-osinte__hpux.ads: Likewise. + * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise. + * libgnarl/s-osinte__lynxos178e.ads: Likewise. + * libgnarl/s-osinte__qnx.ads: Likewise. + * libgnarl/s-osinte__rtems.ads: Likewise. + * libgnarl/s-osinte__solaris.ads: Likewise. + * libgnarl/s-osinte__vxworks.ads: Likewise. + * libgnat/g-sothco.ads: Likewise. + * libgnat/s-osprim__darwin.adb: Likewise. + * libgnat/s-osprim__posix.adb: Likewise. + * libgnat/s-osprim__posix2008.adb: Likewise. + * libgnat/s-osprim__rtems.adb: Likewise. + * libgnat/s-osprim__x32.adb: Likewise. + * libgnarl/s-osinte__linux.ads: use type System.Linux.time_t. + * libgnat/s-os_lib.ads (time_t): Declare as subtype of + Long_Long_Integer. + * libgnat/s-parame.ads (time_t_bits): New constant. + * libgnat/s-parame__ae653.ads (time_t_bits): Likewise. + * libgnat/s-parame__hpux.ads (time_t_bits): Likewise. + * libgnat/s-parame__vxworks.ads (time_t_bits): Likewise. + * libgnat/s-parame__posix2008.ads: New file for 64 bit time_t. + +2021-07-09 Bob Duff + + * comperr.adb (Compiler_Abort): Print source file name. + +2021-07-09 Joffrey Huguet + + * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Fix layout + in contracts. + +2021-07-09 Eric Botcazou + + * repinfo.ads (JSON output format): Document adjusted key name. + * repinfo.adb (List_Record_Layout): Use Original_Record_Component + if the normalized position of the component is not known. + (List_Structural_Record_Layout): Rename Outer_Ent parameter into + Ext_End and add Ext_Level parameter. In an extension, if the parent + subtype has static discriminants, call List_Record_Layout on it. + Output "parent_" prefixes before "variant" according to Ext_Level. + Adjust recursive calls throughout the procedure. + +2021-07-09 Piotr Trojanek + + * exp_util.ads (Map_Types): Fix typo. + +2021-07-09 Fedor Rybin + + * krunch.adb: Add safeguards against index range violations. + +2021-07-09 Arnaud Charlet + + * libgnat/a-strfix.adb: Take advantage of extended returns. + +2021-07-09 Eric Botcazou + + * doc/gnat_rm/implementation_defined_attributes.rst + (Scalar_Storage_Order): Add paragraph about representation + changes. + * gnat_rm.texi: Regenerate. + +2021-07-09 Frederic Konrad + + * Makefile.rtl (LIBGNAT_TARGET_PAIRS) : Use + the wraplf variant of Aux_Long_Long_Float. + +2021-07-09 Piotr Trojanek + + * sem_ch6.adb (Analyze_Expression_Function): Initialize Orig_N + and Typ variables. + +2021-07-09 Arnaud Charlet + + * sem_ch13.adb (Resolve_Aspect_Expressions): Use the same + processing for Predicate, Static_Predicate and + Dynamic_Predicate. Do not build the predicate function spec. + Update comments. + (Resolve_Name): Only reset Entity when necessary to avoid + spurious visibility errors. + (Check_Aspect_At_End_Of_Declarations): Handle consistently all + Predicate aspects. + * sem_ch3.adb (Analyze_Subtype_Declaration): Fix handling of + private types with predicates. + +2021-07-09 Justin Squirek + + * sem_util.ads (Type_Access_Level): Add new optional parameter + Assoc_Ent. + * sem_util.adb (Accessibility_Level): Treat access discriminants + the same as components when the restriction + No_Dynamic_Accessibility_Checks is enabled. + (Deepest_Type_Access_Level): Remove exception for + Debug_Flag_Underscore_B when returning the result of + Type_Access_Level in the case where + No_Dynamic_Accessibility_Checks is active. + (Function_Call_Or_Allocator_Level): Correctly calculate the + level of Expr based on its containing subprogram instead of + using Current_Subprogram. + * sem_res.adb (Valid_Conversion): Add actual for new parameter + Assoc_Ent in call to Type_Access_Level, and add test of + No_Dynamic_Accessibility_Checks_Enabled to ensure that static + accessibility checks are performed for all anonymous access type + conversions. + +2021-07-09 Eric Botcazou + + * exp_dbug.ads: Update documentation of various items. + +2021-07-09 Piotr Trojanek + + * sem_ch6.adb (Analyze_Expression_Function): Reorder code. + +2021-07-09 Piotr Trojanek + + * sem_ch6.adb (Analyze_Expression_Function): Reorder code. + +2021-07-09 Piotr Trojanek + + * sem_ch6.adb (Analyze_Expression_Function): Add variable to + avoid repeated calls to Etype. + +2021-07-09 Piotr Trojanek + + * sem_ch6.adb (Analyze_Expression_Function): Fix comment. + +2021-07-09 Piotr Trojanek + + * sem_ch6.adb (Analyze_Expression_Function): Use Orig_N variable + instead of repeated calls to Original_Node. + +2021-07-09 Piotr Trojanek + + * sem_ch6.adb (Analyze_Expression_Function): Change types local + variables from Entity_Id to Node_Id. + +2021-07-09 Piotr Trojanek + + * sem_ch6.adb (Analyze_Expression_Function): A local Expr + constant was shadowing a global constant with the same name and + the same value. + +2021-07-09 Piotr Trojanek + + * sem_res.adb (Preanalyze_And_Resolve): Only call + Set_Must_Not_Freeze when it is necessary to restore the previous + value. + +2021-07-08 Piotr Trojanek + + * sem_ch5.adb (Analyze_Assignment): Clear Current_Assignment at + exit. + (Analyze_Target_Name): Prevent AST climbing from going too far. + +2021-07-08 Ed Schonberg + + * sem_ch5.adb (Analyze_Target_Name): Properly reject a + Target_Name when it appears outside of an assignment statement, + or within the left-hand side of one. + +2021-07-08 Bob Duff + + * einfo-utils.ads, einfo-utils.adb (Unknown_Alignment, + Unknown_Component_Bit_Offset, Unknown_Component_Size, + Unknown_Esize, Unknown_Normalized_First_Bit, + Unknown_Normalized_Position, Unknown_Normalized_Position_Max, + Unknown_RM_Size): Remove these functions. + * exp_pakd.adb, exp_util.adb, fe.h, freeze.adb, layout.adb, + repinfo.adb, sem_ch13.adb, sem_ch3.adb, sem_util.adb: Remove + calls to these functions; do "not Known_..." instead. + * gcc-interface/decl.c, gcc-interface/trans.c + (Unknown_Alignment, Unknown_Component_Size, Unknown_Esize, + Unknown_RM_Size): Remove calls to these functions; do + "!Known_..." instead. + +2021-07-08 Eric Botcazou + + * exp_dbug.adb (Get_Encoded_Name): Do not encode names of discrete + types with custom bounds, except with -fgnat-encodings=all. + * exp_pakd.adb (Create_Packed_Array_Impl_Type): Adjust comment. + +2021-07-08 Bob Duff + + * comperr.adb (Compiler_Abort): Call Sinput.Unlock, because if + this is called late, then Source_Dump would crash otherwise. + * debug.adb: Correct documentation of the -gnatd.9 switch. + * exp_ch4.adb (Expand_Allocator_Expression): Add a comment. + * exp_ch6.adb: Minor comment fixes. Add assertion. + * exp_ch6.ads (Is_Build_In_Place_Result_Type): Correct comment. + * exp_ch7.adb, checks.ads: Minor comment fixes. + +2021-07-08 Doug Rupp + + * sigtramp-vxworks-target.inc: Rename to... + * sigtramp-vxworks-target.h: ... this. + * sigtramp-vxworks.c, Makefile.rtl: Likewise. + +2021-07-08 Ghjuvan Lacambre + + * lib-writ.ads: Mention SCOs dependency as reason for duplicates. + * lib.ads (Units): Update documentation to mention duplicated + units. + +2021-07-08 Ed Schonberg + + * style.adb (Missing_Overriding): Do not emit message when + parent of subprogram is a full type declaration. + +2021-07-08 Arnaud Charlet + + * par-ch5.adb (P_Iterator_Specification): Add support for access + definition in loop parameter. + * sem_ch5.adb (Check_Subtype_Indication): Renamed... + (Check_Subtype_Definition): ... into this and check for conformance + on access definitions, and improve error messages. + (Analyze_Iterator_Specification): Add support for access definition + in loop parameter. + +2021-07-08 Arnaud Charlet + + * sem_util.ads, sem_util.adb + (Apply_Compile_Time_Constraint_Error): New parameter + Emit_Message. + * sem_ch4.adb (Analyze_Selected_Component): Disable warning + within an instance. + +2021-07-08 Eric Botcazou + + * exp_imgv.adb: Add with and use clause for Restrict and Rident. + (Build_Enumeration_Image_Tables): Do not generate the hash function + if the No_Implicit_Loops restriction is active. + +2021-07-08 Piotr Trojanek + + * sem_ch12.adb, sem_ch6.adb, sem_ch9.adb, sprint.adb: Simplify + checks for non-empty lists. + +2021-07-08 Piotr Trojanek + + * par-ch10.adb (Unit_Display): Remove redundant condition; fix + whitespace. + +2021-07-08 Piotr Trojanek + + * lib-load.adb (Load): Replace early return with goto to properly + restore context on failure. + +2021-07-08 Piotr Trojanek + + * lib-writ.adb (Ensure_System_Dependency): Simplify condition. + +2021-07-08 Piotr Trojanek + + * lib-load.adb (Load_Unit): Fix style in comment. + * par-load.adb (Load): Likewise. + * scng.adb (Initialize_Scanner): Fix whitespace. + +2021-07-08 Piotr Trojanek + + * par-load.adb (Load): Don't remove unit, but flag it as + erroneous and return. + +2021-07-08 Ghjuvan Lacambre + + * exp_prag.adb (Expand_Pragma_Inspection_Point): Fix error + message. + +2021-07-08 Yannick Moy + + * layout.adb (Layout_Type): Do not call Number_Dimensions if the + type does not have First_Index set. + +2021-07-08 Ghjuvan Lacambre + + * exp_prag.adb (Expand_Pragma_Inspection_Point): After expansion + of the Inspection_Point pragma, check if referenced entities + that have a freeze node are already frozen. If they aren't, emit + a warning and turn the pragma into a no-op. + +2021-07-08 Yannick Moy + + * layout.adb (Layout_Type): Add guard before calling Expr_Value. + +2021-07-08 Yannick Moy + + * layout.adb (Layout_Type): Special case when RM_Size and Esize + can be computed for packed arrays. + +2021-07-08 Steve Baird + + * rtsfind.ads, rtsfind.adb: Add support for finding the packages + System.Atomic_Operations and + System.Atomic_Operations.Test_And_Set and the declarations + within that latter package of the type Test_And_Set_Flag and the + function Atomic_Test_And_Set. + * exp_ch11.adb (Expand_N_Exception_Declaration): If an exception + is declared other than at library level, then we need to call + Register_Exception the first time (and only the first time) the + declaration is elaborated. In order to decide whether to + perform this call for a given elaboration of the declaration, we + used to unconditionally use a (library-level) Boolean variable. + Now we instead use a variable of type + System.Atomic_Operations.Test_And_Set.Test_And_Set_Flag unless + either that type is unavailable or a No_Tasking restriction is + in effect (in which case we use a Boolean variable as before). + +2021-07-08 Arnaud Charlet + + * gcc-interface/system.ads: Add No_Tasking restriction. + +2021-07-08 Ed Schonberg + + * libgnat/a-cohama.ads: Introduce an equality operator over + cursors. + * libgnat/a-cohase.ads: Ditto. + * libgnat/a-cohama.adb: Add body for "=" over cursors. + (Insert): Do not set the Position component of the cursor that + denotes the inserted element. + * libgnat/a-cohase.adb: Ditto. + +2021-07-08 Arnaud Charlet + + * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb, + libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb, + libgnat/a-cborma.adb, libgnat/a-cborse.adb, + libgnat/a-cobove.adb, libgnat/a-textio.adb, + libgnat/a-witeio.adb, libgnat/a-ztexio.adb: Make code compatible + with No_Dynamic_Accessibility_Checks restriction. + +2021-07-08 Arnaud Charlet + + * debug.adb, sem_util.adb: Revert meaning of -gnatd_b. + * sem_res.adb: Minor reformatting. + +2021-07-08 Arnaud Charlet + + * make.adb, osint.adb: Make code compatible with + No_Dynamic_Accessibility_Checks restriction. + +2021-07-08 Piotr Trojanek + + * lib-writ.adb (Ensure_System_Dependency): Replace search in + Lib.Units with a search in Lib.Unit_Names. + +2021-07-08 Piotr Trojanek + + * sinput-l.adb (Load_File): Simplify foreword manipulation with + concatenation; similar for filename with preprocessed output. + +2021-07-07 Dmitriy Anisimkov + + * s-oscons-tmplt.c (MSG_WAITALL): Remove wrong #ifdef + __MINWGW32__. + +2021-07-07 Gary Dismukes + + * einfo-utils.adb (Primitive_Operations): Default to returning + Direct_Primitive_Operations in the case of concurrent types + (when Corresponding_Record_Type not present). + * sem_ch9.adb (Analyze_Protected_Type_Declaration): Initialize + Direct_Primitive_Operations to an empty element list. + (Analyze_Task_Type_Declaration): Initialize + Direct_Primitive_Operations to an empty element list. + +2021-07-07 Piotr Trojanek + + * sem_eval.adb (Set_Checking_Potentially_Static_Expression): + Stronger assertion. + +2021-07-07 Arnaud Charlet + + * sem_ch12.adb (Analyze_Subprogram_Instantiation): Mark Anon_Id + intrinsic before calling Analyze_Instance_And_Renamings because + this flag may be propagated to other nodes. + +2021-07-07 Dmitriy Anisimkov + + * s-oscons-tmplt.c (TCP_KEEPCNT TCP_KEEPIDLE, TCP_KEEPINTVL): + Hardcode on Windows if undefined. + +2021-07-07 Bob Duff + + * checks.adb (Install_Primitive_Elaboration_Check): Do not + generate elaboration checks for primitives if pragma Pure or + Preelaborate is present. Misc comment fixes, including + referring to the correct kind of check (elaboration, not + accessibility). + * checks.ads, restrict.adb, sem_cat.ads, sinfo.ads: Minor + reformatting and comment fixes. + +2021-07-07 Piotr Trojanek + + * sem_prag.adb (Analyze_Pragma): Simplify processing of pragma + CPP_Constructor. + +2021-07-07 Arnaud Charlet + + * libgnat/g-debpoo.adb (Code_Address_For_Allocate_End): Default + Initialize. + +2021-07-07 Arnaud Charlet + + * libgnat/s-atocou.ads, libgnat/s-atocou__builtin.adb: Code + cleanups. + +2021-07-07 Gary Dismukes + + * freeze.adb (Check_Inherited_Conditions): Setting of Ekind, + LSP_Subprogram, and Is_Wrapper needs to happen for null + procedures as well as other wrapper cases, so the code is moved + from the else part in front of the if statement. (Fixes a + latent bug encountered while working on this set of changes.) + * sem_attr.adb (Resolve_Attribute): Report an error for the case + of an Access attribute applied to a primitive of an abstract + type when the primitive has any nonstatic Pre'Class or + Post'Class expressions. + * sem_ch8.adb (Analyze_Subprogram_Renaming): Report an error for + the case of a actual subprogram associated with a nonabstract + formal subprogram when the actual is a primitive of an abstract + type and the primitive has any nonstatic Pre'Class or Post'Class + expressions. + * sem_disp.adb (Check_Dispatching_Context): Remove special + testing for null procedures, and replace it with a relaxed test + that avoids getting an error about illegal calls to abstract + subprograms in cases where RM 6.1.1(7/5) applies in + Pre/Post'Class aspects. Also, remove special test for + Postcondition, which seems to be unnecessary, update associated + comments, and fix a typo in one comment. + (Check_Dispatching_Call): Remove an unneeded return statement, + and report an error for the case of a nondispatching call to a + nonabstract subprogram of an abstract type where the subprogram + has nonstatic Pre/Post'Class aspects. + * sem_util.ads + (Is_Prim_Of_Abst_Type_With_Nonstatic_CW_Pre_Post): New function. + (In_Pre_Post_Condition): Add a flag formal Class_Wide_Only, + defaulted to False, for indicating whether the function should + only test for the node being within class-wide pre- and + postconditions. + * sem_util.adb + (Is_Prim_Of_Abst_Type_With_Nonstatic_CW_Pre_Post): New function + to determine whether a subprogram is a primitive of an abstract + type where the primitive has class-wide Pre/Post'Class aspects + specified with nonstatic expressions. + (In_Pre_Post_Condition): Extend testing to account for the new + formal Class_Wide_Only. + +2021-07-07 Piotr Trojanek + + * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Errors + emitted via Check_Volatility_Compatibility are now emitted at + Actual, just like other errors emitted by + Check_Shared_Variable_Control_Aspects. + +2021-07-07 Piotr Trojanek + + * uname.adb (Get_Unit_Name): Simplify with a bounded string + buffer; also, this addresses a ??? comment about the max length + being exceeded. + +2021-07-07 Piotr Trojanek + + * uname.adb (Get_Body_Name, Get_Parent_Body_Name, + Get_Parent_Spec_Name, Get_Spec_Name, Is_Child_Name, + Is_Body_Name, Is_Spec_Name, Name_To_Unit_Name): Use a local + instead of the global buffer. + +2021-07-07 Bob Duff + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Combine + processing of Size and Value_Size clauses. Ensure that + Value_Size is treated the same as Size, in the cases where both + are allowed (i.e. the prefix denotes a first subtype). Misc + cleanup. + * einfo-utils.adb (Init_Size): Add assertions. + (Size_Clause): Return a Value_Size clause if present, instead of + just looking for a Size clause. + * einfo.ads (Has_Size_Clause, Size_Clause): Change documentation + to include Value_Size. + * sem_ch13.ads, layout.ads, layout.adb: Comment modifications. + +2021-07-07 Steve Baird + + * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Add + TSS_Put_Image to list of predefined primitives that need special + treatment. + (Build_General_Calling_Stubs, Build_Subprogram_Receiving_Stubs): + Remove previous hack for dealing with TSS_Put_Image procedures. + +2021-07-07 Dmitriy Anisimkov + + * libgnat/g-socket.adb (Get_Socket_Option): Add 500ms only when + Minus_500ms_Windows_Timeout is True. + (Set_Socket_Option): Use "* 1000" instead of "/ 0.001" to + convert to milliseconds. + +2021-07-07 Bob Duff + + * tbuild.adb (Unchecked_Convert_To): Set the Parent of the new + node to the Parent of the old node. + * tbuild.ads (Unchecked_Convert_To): Document differences + between Convert_To and Unchecked_Convert_To. The previous + documentation claimed they are identical except for the + uncheckedness of the conversion. + +2021-07-07 Yannick Moy + + * checks.adb (Apply_Scalar_Range_Check): Remove special case for + GNATprove mode. + * sem_res.adb (Resolve_Arithmetic_Op): Same. + * sem_util.adb (Apply_Compile_Time_Constraint_Error): Same. + +2021-07-07 Piotr Trojanek + + * sem_ch6.adb (Check_For_Primitive_Subprogram): Move + declarations of local variables after nested subprogram bodies. + +2021-07-07 Piotr Trojanek + + * exp_disp.adb (CPP_Num_Prims): Reuse List_Length. + +2021-07-07 Piotr Trojanek + + * exp_ch3.adb, exp_ch6.adb, sem_ch6.adb: Replace Ekind + membership test in Private_Kind with a call to Is_Private_Type. + +2021-07-07 Bob Duff + + * gen_il-gen-gen_entities.adb: Remove Linker_Section_Pragma + field from Record_Field_Kind. Minor comment improvement. + +2021-07-07 Yannick Moy + + * libgnat/a-ngelfu.ads (Cot): Fix precondition. + +2021-07-07 Piotr Trojanek + + * par.adb (Par): A local Name variable is now a renaming of a + constant slice. + +2021-07-07 Piotr Trojanek + + * gnat1drv.adb (Gnat1drv): Remove flagging of main unit and its + corresponding spec as requiring code generation; now the flags + are set much earlier. + * lib-load.adb (Load_Main_Source): Set Generate_Code flag on the + main unit source. + (Make_Instance_Unit): Copy Generate_Code flag from the main unit + to instance units. + * lib-writ.adb (Write_ALI): Remove redundant condition; + Generate_Code flag is always set for the main unit. + * par-load.adb (Load): Set Generate_Code flag on the main unit's + corresponding spec, if any. + +2021-07-07 Dmitriy Anisimkov + + * libgnat/g-socket.ads (Option_Name): Add Keep_Alive_Count, + Keep_Alive_Idle, and Keep_Alive_Interval items to enumeration. + (Option_Type): Add Keep_Alive_Count, Keep_Alive_Idle, and + Keep_Alive_Interval alternatives to the case of discriminated + record. + * libgnat/g-socket.adb (Options): Add Keep_Alive_Count, + Keep_Alive_Idle, and Keep_Alive_Interval to items enumerator to + OS constant converter. + (Set_Socket_Option): Process Keep_Alive_Count, Keep_Alive_Idle, + and Keep_Alive_Interval socket options. + (Get_Socket_Option): Idem. + +2021-07-07 Piotr Trojanek + + * lib-writ.adb (Write_ALI): Exit from loop after seeing first + unit that violates No_Elaboration_Code restriction. + +2021-07-07 Piotr Trojanek + + * inline.adb (Instantiate_Bodies): Fix white in declaration. + (Remove_Dead_Instance): Change iteration from WHILE to FOR. + +2021-07-07 Bob Duff + + * checks.adb, exp_attr.adb, exp_ch4.adb, exp_ch6.adb, + exp_ch9.adb, exp_disp.adb, exp_util.adb, inline.adb, + sem_res.adb: Change all calls to Make_Unchecked_Type_Conversion + to call Unchecked_Convert_To instead. This involves removing + New_Occurrence_Of on the first parameter, because + Unchecked_Convert_To expects a type entity, rather than the name + of one. Also, removed calls to Relocate_Node, because + Unchecked_Convert_To takes care of that. + * sinfo.ads: Change comment to be worded more firmly. + +2021-07-07 Steve Baird + + * libgnarl/s-tassta.adb (Free_Task): Acquire the Task_Lock + before, rather than after, querying the task's Terminated flag. + Add a corresponding Task_Unlock call. + +2021-07-06 Bob Duff + + * atree.ads (Current_Error_Node): Initialize to Empty. + +2021-07-06 Steve Baird + + * exp_put_image.adb: Eliminate references to + Debug_Flag_Underscore_Z. Change the meaning of the function + Enable_Put_Image. Previously, a result of False for a tagged + type would mean that the type does not get a Put_Image (PI) + routine at all. Now, it means that the type gets a PI routine + with very abbreviated functionality (just a call to + Unknown_Put_Image). This resolves problems in mixing code + compiled with and without the -gnat2022 switch. + * exp_ch3.adb: Enable_Put_Image no longer participates in + determining whether a tagged type gets a Put_Image procedure. A + tagged type does not get a Put_Image procedure if the type + Root_Buffer_Type is unavailable. This is needed to support cross + targets where tagged types are supported but the type + Root_Buffer_Type is not available. + * exp_dist.adb: Add workarounds for some problems that arise + when using the (obsolete?) Garlic implementation of the + distributed systems annex with Ada 2022 constructs. + * libgnat/a-sttebu.ads: Workaround a bootstrapping problem. + Older compilers do not support raise expressions, so revise the + the Pre'Class condition to meet this requirement without + changing the condition's behavior at run time. + +2021-07-06 Eric Botcazou + + * repinfo-input.adb (JSON_Entity_Kind, Read_Variant_Part): Fix + typo in comment. + +2021-07-06 Steve Baird + + * sem_ch5.adb (Analyze_Assignment): Add new nested function, + Omit_Range_Check_For_Streaming, and make call to + Apply_Scalar_Range_Check conditional on the result of this new + function. + * exp_attr.adb (Compile_Stream_Body_In_Scope): Eliminate Check + parameter, update callers. The new + Omit_Range_Check_For_Streaming parameter takes the place of the + old use of calling Insert_Action with Suppress => All_Checks, + which was insufficiently precise (it did not allow suppressing + checks for one component but not for another). + (Expand_N_Attribute_Reference): Eliminate another "Suppress => + All_Checks" from an Insert_Action call, this one in generating + the expansion of a T'Read attribute reference for a composite + type T. + +2021-07-06 Ghjuvan Lacambre + + * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Check for + empty loops caused by constraints. + +2021-07-06 Nicolas Roche + + * rtinit.c (skip_quoted_string): Handle malformed command line + with no closing double quote. + (skip_argument): Handle case in which a null character is + encountered by skip_quote_string. + +2021-07-06 Piotr Trojanek + + * uname.adb (Add_Node_Name): Replace local constant whose + initial expression was evaluated even when unnecessary with just + that expression that is evaluated at most once and only when + needed. + +2021-07-06 Piotr Trojanek + + * lib.adb (Remove_Unit): Replace defensive code with an + assertion. + * par-load.adb (Load): Address a question mark in the comment. + +2021-07-06 Piotr Trojanek + + * sem_util.adb (Enclosing_Comp_Unit_Node): When the loop exits + the Current_Node is either an N_Compilation_Unit node or Empty, + so simply return it without redundant checks. + +2021-07-06 Piotr Trojanek + + * lib-load.adb (Load_Unit): Remove excessive whitespace. + * lib.adb (Is_Internal_Unit, Is_Predefined_Unit): Likewise. + * par-ch10.adb (P_Compilation_Unit): Simplify with membership + test. + * par-load.adb (Load): Likewise. + * uname.adb (Get_Unit_Name): Likewise. + +2021-07-06 Piotr Trojanek + + * lib-writ.adb (Ensure_System_Dependency): Simplify by reusing a + constant name. + +2021-07-06 Steve Baird + + * exp_ch5.adb + (Expand_N_Case_Statement.Expand_General_Case_Statement.Pattern_Match): + When generating an equality test for a statically known discrete + value, only generate the numeric value if the discrete type is + not an enumeration type. If it is an enumeration type, then + call Get_Enum_Lit_From_Pos instead. + +2021-07-06 Justin Squirek + + * par-ch6.adb (Get_Return_Kind): Removed. + (Is_Extended): Created to identify simple and "when" return + statements from extended return statements. + (P_Return_Statement): Merged simple and "when" return statement + processing. + +2021-07-06 Gary Dismukes + + * sem_ch4.adb (Try_One_Prefix_Interpretation): Augment test of + "not Extensions_Allowed" with test for absence of Obj_Type's + primitive operations Elist, as an additional condition for early + return from this procedure. + +2021-07-06 Gary Dismukes + + * exp_ch4.adb (Process_Transient_In_Expression): In one comment, + fix two typos and reorder wording of one sentence, plus minor + reformatting. + +2021-07-06 Justin Squirek + + * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Remove + legacy expansion of element iterators, and use expansion form + used by unconstrained element types in the general case. + +2021-07-06 Ed Schonberg + + * exp_ch4.adb (Process_Transient_In_Expression): Ensure that + Fin_Context, used to insert finalization code for the + expression, is a list member: the value returned by + Find_Hook_Context may be an expression node when the transient + is part of a larger expression and it has a non-boolean type. + +2021-07-06 Yannick Moy + + * sem_case.adb: Fix error message. + +2021-07-06 Bob Duff + + * tbuild.adb (Convert_To): Add assert, along with a comment. + (Make_DT_Access): Remove this function, which is not used. It + was incorrect anyway (the call to New_Occurrence_Of should not + be there). + (Unchecked_Convert_To): Add assert. The previous version's test + for unchecked conversion to the same type was redundant and + could never be true, because the previous 'if' already checked + for ANY expression of the same type. Remove that, and replace + with a test for unchecked conversion to a related type. + Otherwise, we somethings get things like + "finalize(some_type!(some_type!(x)))" in the generated code, + where x is already of type some_type, but we're converting it to + the private type and then to the full type or vice versa (so the + types aren't equal, so the previous 'if' doesn't catch it). + Avoid updating the Parent. This is not necessary; the Parent + will be updated if/when the node is attached to the tree. + * tbuild.ads: Fix comments. No need to say "this is safe" when + we just explained that a few lines earlier. Remove + Make_DT_Access. + * sinfo.ads: Add comments. + * exp_ch7.adb (Make_Finalize_Address_Stmts): Minor comment fix. + * gen_il-gen.adb, gen_il-gen.ads, gen_il-gen-gen_nodes.adb, + gen_il-internals.ads: Implement a feature where you can put: + Nmake_Assert => "expr" where expr is a boolean expression in a + call to Create_Concrete_Node_Type. It is added in a pragma + Assert in the Nmake.Make_... function for that type. + +2021-07-06 Gary Dismukes + + * checks.adb: Remove calls of Set_Do_Tag_Check (N, False). + * einfo.ads: Remove hanging unneeded ??? comment ("this real description + was clobbered"). + * exp_util.ads (Insert_Actions_After): Remove ??? from spec comment. + * gen_il-fields.ads (Opt_Field_Enum): Remove literals + Do_Accessibility_Check and Do_Tag_Check. + * gen_il-gen-gen_nodes.adb: Remove all calls to Sm for + Do_Accessibility_Check and Do_Tag_Check. + * sem_type.ads (Is_Subtype_Of): Remove obsolete ??? + comment (function is not limited to scalar subtypes). + * sem_util.ads (Is_Local_Variable_Reference): Revise comment to + mention out-mode parameters as well, and remove ???. + (Propagate_Concurrent_Flags): Minor reformatting. + (Propagate_Invariant_Attributes): Typo fix. + (Propagate_Predicate_Attributes): Indicate what is propagated + and remove ??? comment. + * sem_util.adb (Cannot_Raise_Constraint_Error): Remove unneeded + test of Do_Tag_Check. + (Is_Local_Variable_Reference): Extend function to testing for + formals of mode out as well. + * sinfo.ads: Remove ??? comment about flag + Convert_To_Return_False indicating that the flag is obsolete (in + fact it's used). Remove references to Do_Accessibility_Check and + Do_Tag_Check (and the two associated ??? comments), as these + flags are unneeded. + * sinfo-cn.adb (Change_Conversion_To_Unchecked): Remove call of + Set_Do_Tag_Check (N, False). + * targparm.ads (Support_Atomic_Primitives_On_Target): Remove ??? + comment, plus minor reformatting. + +2021-07-06 Justin Squirek + + * par-ch6.adb (Get_Return_Kind): Properly handle the case of a + "return when" statement in the procedure case. + +2021-07-06 Bob Duff + + * sem.ads (Node_To_Be_Wrapped): Minor comment fix. + * exp_ch7.adb (Establish_Transient_Scope): Misc cleanups and + comment improvements. + (Set_Node_To_Be_Wrapped): Remove -- not worth putting this code + in a separate procedure, called only once. + * sem_util.adb (Requires_Transient_Scope): Assert that our + parameter has the right Kind. It probably shouldn't be E_Void, + but that is passed in in some cases. + (Ensure_Minimum_Decoration): Move the call later, so we know Typ + is Present, and remove "if Present (Typ)" from this procedure. + * exp_aggr.adb (Convert_To_Assignments): Use membership test, + and avoid the "if False" idiom. + (Expand_Array_Aggregate): Remove a ??? comment. + * sem_ch8.adb (Push_Scope): Take advantage of the full coverage + rules for aggregates. + * sem_res.adb (Resolve_Declare_Expression): Remove test for + Is_Type -- that's all it can be. Use named notation in call to + Establish_Transient_Scope. + * libgnat/a-cdlili.adb (Adjust): Remove redundant code. + (Clear): Remove "pragma Warnings (Off);", which wasn't actually + suppressing any warnings. + +2021-07-06 Bob Duff + + * gen_il-gen-gen_nodes.adb: Change the parent of + N_Exception_Declaration to be N_Declaration. Minor comment fix. + +2021-07-06 Ed Schonberg + + * exp_ch4.adb (Expand_N_Type_Conversion): If the conversion is + the name of an assignment operation do not apply predicate check + to it prior to the assignment. + +2021-07-06 Bob Duff + + * libgnat/a-conhel.adb: Assert that tampering counts remain + between 0 and 2**31-1. This makes debugging of + finalization-related bugs easier. + +2021-07-06 Doug Rupp + + * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Use s-osprim__posix.adb + vice s-osprim__vxworks.adb for all vxworks7r2 targets. + +2021-07-06 Richard Kenner + + * gen_il-types.ads (Void_Or_Type_Kind, + Exception_Or_Object_Kind): Declare. + * gen_il-gen-gen_entities.adb: Likewise. + +2021-07-06 Gary Dismukes + + * doc/gnat_rm/implementation_defined_pragmas.rst: Add a + description of the feature of prefixed-view calls for untagged + types to the section on pragma Extensions_Allowed. + * gnat_rm.texi: Regenerate. + * einfo.ads: Update specification for + Direct_Primitive_Operations to reflect its use for untagged + types when Extensions_Allowed is True. + * gen_il-gen-gen_entities.adb: Allow Direct_Primitive_Operations + as a field of untagged classes of types by removing the "Pre" + test of "Is_Tagged_Type (N)", and making that field generally + available for all types and subtypes by defining it for + Type_Kind and removing its specification for individual classes + of types. + * sem_ch3.adb (Analyze_Full_Type_Declaration): Initialize the + Direct_Primitive_Operations list when not already set for the + new (sub)type and its base type (except when Ekind of the type + is E_Void, which can happen due to errors in cases where + Derived_Type_Declaration is called and perhaps in other + situations). + (Analyze_Subtype_Declaration): Inherit + Direct_Primitive_Operations list from the base type, for record + and private cases. + (Build_Derived_Record_Type): Initialize the + Direct_Primitive_Operations list for derived record and private + types. + (Build_Derived_Type): Initialize the Direct_Primitive_Operations + list for derived types (and also for their associated base types + when needed). + (Process_Full_View): For full types that are untagged record and + private types, copy the primitive operations of the partial view + to the primitives list of the full view. + * sem_ch4.adb (Analyze_Selected_Component): Allow prefixed + notation for subprogram calls in the case of untagged + types (when Extensions_Allowed is True). In the case where + Is_Private_Type (Prefix_Type) is True, call Try_Object_Operation + when a discriminant selector wasn't found. Also call + Try_Object_Operation in other type kind cases (when + Extensions_Allowed is True). + (Try_Object_Operation.Try_One_Prefixed_Interpretation): Prevent + early return in the untagged case (when Extensions_Allowed is + True). Condition main call to Try_Primitive_Operation on the + type having primitives, and after that, if Prim_Result is False, + test for case where the prefix type is a named access type with + primitive operations and in that case call + Try_Primitive_Operation after temporarily resetting Obj_Type to + denote the access type (and restore it to the designated type + after the call) + (Try_Object_Operation.Valid_First_Argument_Of): Do matching type + comparison by testing Base_Type (Obj_Type) against + Base_Type (Typ), rather than against just Typ, to properly + handle cases where the object prefix has a constrained + subtype. (Fixes a bug discovered while working on this + feature.) + * sem_ch6.adb + (New_Overloaded_Entity.Check_For_Primitive_Subprogram): Add a + primitive of an untagged type to the type's list of primitive + operations, for both explicit and implicit (derived, so + Comes_From_Source is False) subprogram declarations. In the case + where the new primitive overrides an inherited subprogram, + locate the primitives Elist that references the overridden + subprogram, and replace that element of the list with the new + subprogram (done by calling the new procedure + Add_Or_Replace_Untagged_Primitive on the result type and each + formal atype). + (Check_For_Primitive_Subprogram.Add_Or_Replace_Untagged_Primitive): + New nested procedure to either add or replace an untagged + primitive subprogram in a given type's list of primitive + operations (replacement happens in case where the new subprogram + overrides a primitive of the type). + * sem_ch7.adb (New_Private_Type): When Extensions_Allowed is + True, initialize the Direct_Primitive_Operations list of a + private type to New_Elmt_List in the case of untagged types. + * sem_ch8.adb (Find_Selected_Component): In the case where the + prefix is an entity name, relax condition that tests + Has_Components so that Analyze_Selected_Component will also be + called when Extensions_Allowed is True and the prefix type is + any type. + +2021-07-06 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform + conformance check when the subprogram body has been created for + an expression function that is not a completion of a previous + specification, because the profile of the constructed body is + copied from the expression function itself. + +2021-07-06 Steve Baird + + * doc/gnat_rm/implementation_of_specific_ada_features.rst: Add a + warning indicating that the details of the default (i.e., + selected by the compiler) implementation of T'Put_Image for a + nonscalar type T are subject to change. + * gnat_rm.texi: Regenerate. + +2021-07-05 Pierre-Marie de Rodat + + * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate. + +2021-07-05 Piotr Trojanek + + * sem_prag.adb (Analyze_Depends_In_Decl_Part): Reject overlays + in Depends and Refined_Depends contracts. + (Analyze_Global_In_Decl_Part): Likewise for Global and + Refined_Global. + (Analyze_Initializes_In_Decl_Part): Likewise for Initializes + (when appearing both as a single item and as a initialization + clause). + * sem_util.ads (Ultimate_Overlaid_Entity): New routine. + * sem_util.adb (Report_Unused_Body_States): Ignore overlays. + (Ultimate_Overlaid_Entity): New routine. + +2021-07-05 Claire Dross + + * libgnat/a-cfdlli.ads, libgnat/a-cfdlli.adb + libgnat/a-cfinve.ads, libgnat/a-cfinve.adb, + libgnat/a-cofove.ads, libgnat/a-cofove.adb, + libgnat/a-coboho.ads, libgnat/a-coboho.adb (Constant_Reference): + Get a read-only access to an element of the container. + (At_End): Ghost functions used to express pledges in the + postcondition of Reference. + (Reference): Get a read-write access to an element of the + container. + * libgnat/a-cfhama.ads, libgnat/a-cfhama.adb, + libgnat/a-cforma.ads, libgnat/a-cforma.adb: The full view of the + Map type is no longer a tagged type, but a wrapper over this + tagged type. This is to avoid issues with dispatching result in + At_End functions. + (Constant_Reference): Get a read-only access to an element of + the container. + (At_End): Ghost functions used to express pledges in the + postcondition of Reference. + (Reference): Get a read-write access to an element of the + container. + * libgnat/a-cfhase.ads, libgnat/a-cfhase.adb, + libgnat/a-cforse.ads, libgnat/a-cforse.adb: The full view of the + Map type is no longer a tagged type, but a wrapper over this + tagged type. + (Constant_Reference): Get a read-only access to an element of + the container. + * libgnat/a-cofuse.ads, libgnat/a-cofuve.ads (Copy_Element): + Expression function used to cause SPARK to make sure + Element_Type is copiable. + * libgnat/a-cofuma.ads (Copy_Key): Expression function used to + cause SPARK to make sure Key_Type is copiable. + (Copy_Element): Expression function used to cause SPARK to make + sure Element_Type is copiable. + +2021-07-05 Yannick Moy + + * sem_prag.adb (Analyze_Global_Item): Adapt to update SPARK RM + rule. + +2021-07-05 Arnaud Charlet + + * Make-generated.in: Add -f switch to ensure cp will never fail. + +2021-07-05 Steve Baird + + * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): When + building the assignment statement corresponding to the default + expression for a component, we make a copy of the expression. + When making that copy (and if we have seen a component that + requires late initialization), pass a Map parameter into the + call to New_Copy_Tree to redirect references to the type to + instead refer to the _Init formal parameter of the init proc. + This includes hoisting the declaration of Has_Late_Init_Comp out + one level so that it becomes available to Build_Assignment. + (Find_Current_Instance): Return True for other kinds of current + instance references, instead of just access-valued attribute + references such as T'Access. + * sem_util.adb (Is_Aliased_View): Return True for the _Init + formal parameter of an init procedure. The changes in + exp_ch3.adb can have the effect of replacing a "T'Access" + attribute reference in an init procedure with an "_Init'Access" + attribute reference. We want such an attribute reference to be + legal. However, we do not simply mark the formal parameter as + being aliased because that might impact callers. + (Is_Object_Image): Return True if Is_Current_Instance returns + True for the prefix of an Image (or related attribute) attribute + reference. + +2021-07-05 Piotr Trojanek + + * exp_ch3.adb (Stream_Operation_OK): Reuse + Is_Concurrent_Interface. + * sem_ch3.adb (Analyze_Interface_Declaration, + Build_Derived_Record_Type): Likewise. + * sem_ch6.adb (Check_Limited_Return): Likewise. + * sem_util.adb (Is_Concurrent_Interface): Don't call + Is_Interface because each of the Is_Protected_Interface, + Is_Synchronized_Interface and Is_Task_Interface calls it anyway. + +2021-07-05 Ghjuvan Lacambre + + * sem_ch6.adb (Check_Limited_Return): Replace Comes_From_Source + with Comes_From_Extended_Return_Statement. + +2021-07-05 Steve Baird + + * libgnat/a-stobbu.adb, libgnat/a-stobbu.ads, + libgnat/a-stobfi.adb, libgnat/a-stobfi.ads, + libgnat/a-stoubu.adb, libgnat/a-stoubu.ads, + libgnat/a-stoufi.adb, libgnat/a-stoufi.ads, + libgnat/a-stoufo.adb, libgnat/a-stoufo.ads, + libgnat/a-stouut.adb, libgnat/a-stouut.ads, + libgnat/a-stteou.ads: Delete files. + * Makefile.rtl, impunit.adb: Remove references to deleted files. + +2021-07-05 Piotr Trojanek + + * sem_util.adb (Has_Compatible_Alignment_Internal): If the + prefix of the Address expression is an entire object with a + known alignment, then skip checks related to its size. + +2021-07-05 Doug Rupp + + * libgnat/s-os_lib.ads: Import OS_Time comparison ops as + intrinsic. + * libgnat/s-os_lib.adb: Remove OS_TIme comparison ops + implementation. + +2021-07-05 Doug Rupp + + * libgnat/s-os_lib.ads: Add some comments about time_t. + * libgnat/s-os_lib.adb (GM_Split/To_GM_Time): Rename formal to + P_OS_Time. + (GM_Time_Of/To_OS_Time): Likewise. + +2021-07-05 Ghjuvan Lacambre + + * sem_res.adb (Resolve): Insert minus sign if needed. + +2021-07-05 Steve Baird + + * exp_put_image.adb: + (Enable_Put_Image, Preload_Root_Buffer_Type): Revert to querying + the -gnatd_z switch, as opposed to testing whether Ada_Version >= Ada_2022. + +2021-07-05 Justin Squirek + + * checks.adb (Accessibility_Checks_Suppressed): Add check + against restriction No_Dynamic_Accessibility_Checks. + (Apply_Accessibility_Check): Add assertion to check restriction + No_Dynamic_Accessibility_Checks is not active. + * debug.adb: Add documentation for new debugging switch to + control which accessibility model gets employed under + restriction No_Dynamic_Accessibility_Checks. + * exp_attr.adb (Expand_N_Attribute_Reference): Disable dynamic + accessibility check generation when + No_Dynamic_Accessibility_Checks is active. + * exp_ch4.adb (Apply_Accessibility_Check): Skip check generation + when restriction No_Dynamic_Accessibility_Checks is active. + (Expand_N_Allocator): Disable dynamic accessibility checks when + No_Dynamic_Accessibility_Checks is active. + (Expand_N_In): Disable dynamic accessibility checks when + No_Dynamic_Accessibility_Checks is active. + (Expand_N_Type_Conversion): Disable dynamic accessibility checks + when No_Dynamic_Accessibility_Checks is active. + * exp_ch5.adb (Expand_N_Assignment_Statement): Disable + alternative accessibility model calculations when computing a + dynamic level for a SAOAAT. + * exp_ch6.adb (Add_Call_By_Copy_Code): Disable dynamic + accessibility check generation when + No_Dynamic_Accessibility_Checks is active. + (Expand_Branch): Disable alternative accessibility model + calculations. + (Expand_Call_Helper): Disable alternative accessibility model + calculations. + * restrict.adb, restrict.ads: Add new restriction + No_Dynamic_Accessibility_Checks. + (No_Dynamic_Accessibility_Checks_Enabled): Created to test when + experimental features (which are generally incompatible with + standard Ada) can be enabled. + * sem_attr.adb (Safe_Value_Conversions): Add handling of new + accessibility model under the restriction + No_Dynamic_Accessibility_Checks. + * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): + Disallow new restriction No_Dynamic_Accessibility_Checks from + being exclusively specified within a body or subunit without + being present in a specification. + * sem_res.adb (Check_Fully_Declared_Prefix): Minor comment + fixup. + (Valid_Conversion): Omit implicit conversion checks on anonymous + access types and perform static checking instead when + No_Dynamic_Accessibility_Checks is active. + * sem_util.adb, sem_util.ads (Accessibility_Level): Add special + handling of anonymous access objects, formal parameters, + anonymous access components, and function return objects. + (Deepest_Type_Access_Level): When + No_Dynamic_Accessibility_Checks is active employ an alternative + model. Add paramter Allow_Alt_Model to override the new behavior + in certain cases. + (Type_Access_Level): When No_Dynamic_Accessibility_Checks is + active employ an alternative model. Add parameter + Allow_Alt_Model to override the new behavior in certain cases. + (Typ_Access_Level): Created within Accessibility_Level for + convenience. + * libgnat/s-rident.ads, snames.ads-tmpl: Add handing for + No_Dynamic_Accessibility_Checks. + +2021-07-05 Doug Rupp + + * adaint.h (__gnat_set_file_time_name): Use OS_Time. + * adaint.c (__gnat_set_file_time_name): Likewise. + +2021-07-05 Doug Rupp + + * adaint.h (OS_Time): typedef as long long. + * osint.adb (Underlying_OS_Time): Declare as 64-bit signed type. + * libgnat/s-os_lib.adb ("<"): Compare OS_Time as + Long_Long_Integer. + ("<="): Likewise. + (">"): Likewise. + (">="): Likewise. + * libgnat/s-os_lib.ads (OS_Time): Declare as 64-bit signed type. + +2021-07-05 Ghjuvan Lacambre + + * sem_ch3.adb (Check_Abstract_Overriding): Post error message on + renaming node. + +2021-07-05 Yannick Moy + + * libgnat/a-uncdea.ads: Add Depends/Post to + Ada.Unchecked_Deallocation. + * sem_ch4.adb (Analyze_Allocator): Remove checking of allocator + placement. + * sem_res.adb (Flag_Object): Same. + +2021-07-05 Ghjuvan Lacambre + + * aspects.ads: Add GNAT_Annotate aspect. + * gnat1drv.adb (Adjust_Global_Switches): Stop defining + Name_Gnat_Annotate as an alias of Name_Annotate. + * snames.ads-tmpl: Define Gnat_Annotate. + * par-prag.adb, sem_prag.ads: Add Pragma_Gnat_Annotate to list + of pragmas. + * lib-writ.adb, sem_ch13.adb, sem_prag.adb: Handle Gnat_Annotate + like Aspect_Annotate. + +2021-07-05 Piotr Trojanek + + * ttypes.ads (Target_Strict_Alignment): Fix comment. + +2021-07-05 Piotr Trojanek + + * sem_util.adb (Has_Compatible_Alignment_Internal): Fix + indentation of ELSIF comments; remove explicit calls to + UI_To_Int; remove extra parens around the MOD operand. + +2021-07-05 Ed Schonberg + + * sem_aggr.adb (Resolve_Record_Aggregate, Step_5): Do not check + for the need to use an extension aggregate for a given component + when within an instance and the type of the component hss a + private ancestor: the instantiation is legal if the generic + compiles, and spurious errors may be generated otherwise. + +2021-07-05 Ghjuvan Lacambre + + * errout.adb (Output_JSON_Message): Recursively call + Output_JSON_Message for continuation messages instead of + appending their content to the initial message. + +2021-07-05 Steve Baird + + * debug.adb: Remove comments about -gnatd_z switch. + * exp_ch3.adb (Make_Predefined_Primitive_Specs): A one-line fix + for a subtle bug that took some effort to debug. Append a new + Put_Image procedure for a type extension even if it seems to + already have one, just as is done for (for example) the + streaming-related Read procedure. + * exp_put_image.adb: + (Build_Record_Put_Image_Procedure.Make_Component_Attributes): Do + not treat _Parent component like just another component, for two + reasons. 1. If the _parent component's type has a + user-specified Put_Image procedure, then we want to generate a + call to that procedure and then generate extension aggregate + syntax. 2. Otherwise, we still don't want to see any mention of + "_parent" in the generated image text. + (Build_Record_Put_Image_Procedure.Make_Component_Name): Add + assertion that we are not generating a reference to an "_parent" + component. + (Build_Record_Put_Image_Procedure): Add special treatment for + null records. Add call to Duplicate_Subexpr for image attribute + prefix in order to help with expansion needed in the class-wide + case (where the prefix is also referenced in the call to + Wide_Wide_Expanded_Name) if evaluation of the prefix has side + effects. Add new local helper function, Put_String_Exp. Add + support for case where prefix type is class-wide. + (Enable_Put_Image, Preload_Root_Buffer_Type): Query Ada_Version + > Ada_2022 instead of (indirectly) querying -gnatd_z switch. + * freeze.adb (In_Expanded_Body): A one-line change to add + TSS_Put_Image to the list of subprograms that have + expander-created bodies. + * rtsfind.ads: Add support for accessing + Ada.Tags.Wide_Wide_Expanded_Name. + * sem_ch3.ads, sem_ch3.adb: Delete Is_Null_Extension function, + as part of moving it to Sem_Util. + * sem_ch13.adb + (Analyze_Put_Image_TSS_Definition.Has_Good_Profile): Improve + diagnostic messages in cases where the result is going to be + False and the Report parameter is True. Relax overly-restrictive + checks in order to implement mode conformance. + (Analyze_Stream_TSS_Definition.Has_Good_Profile): Add similar + relaxation of parameter subtype checking for the Stream + parameter of user-defined streaming subprograms. + * sem_disp.adb (Check_Dispatching_Operation): A one-line + change (and an accompanying comment change) to add TSS_Put_Image + to the list of compiler-generated dispatching primitive + operations. + * sem_util.ads, sem_util.adb: Add Ignore_Privacy Boolean + parameter to Is_Null_Record_Type function (typically the + parameter will be False when the function is being used in the + implementation of static semantics and True for dynamic + semantics; the parameter might make a difference in the case of, + for example, a private type that is implemented as a null record + type). Add related new routines Is_Null_Extension (formerly + declared in Sem_Ch3), Is_Null_Extension_Of, and + Is_Null_Record_Definition. + +2021-07-05 Justin Squirek + + * freeze.adb (Freeze_Profile): Use N's Sloc, F_type's chars. + +2021-07-05 Bob Duff + + * checks.adb, exp_aggr.adb, exp_ch5.adb, freeze.adb, + sem_util.adb, sem_util.ads: Change L and H to be First and Last, + to match the attributes in the RM. Change calls from procedure + to function where appropriate. + +2021-07-05 Bob Duff + + * sem_util.ads, sem_util.adb (Compute_Returns_By_Ref): New + procedure to compute Returns_By_Ref, to avoid some code + duplication. This will likely change soon, so it's good to have + the code in one place. + (CW_Or_Has_Controlled_Part): Move here from Exp_Ch7, because + it's called by Compute_Returns_By_Ref, and this is a better + place for it anyway. + (Needs_Finalization): Fix comment to be vague instead of wrong. + * exp_ch6.adb (Expand_N_Subprogram_Body, Freeze_Subprogram): + Call Compute_Returns_By_Ref. + * sem_ch6.adb (Check_Delayed_Subprogram): Call + Compute_Returns_By_Ref. + * exp_ch7.ads, exp_ch7.adb (CW_Or_Has_Controlled_Part): Move to + Sem_Util. + (Has_New_Controlled_Component): Remove unused function. + +2021-07-05 Ghjuvan Lacambre + + * sem_ch3.adb (Check_Abstract_Overriding): Check for renamings. + +2021-07-05 Boris Yakobowski + + * exp_ch4.adb (Expand_N_Op_Rem): Remove special case for rem -1 + in CodePeer_Mode. + +2021-07-01 Eric Botcazou + + PR ada/101094 + * exp_attr.adb (Get_Integer_Type): Return an integer type with the + same signedness as the input type. + +2021-06-29 Richard Kenner + + * sem_util.adb (Visit_Node): Add handling for N_Block_Statement + with declarations. + +2021-06-29 Piotr Trojanek + + * einfo-utils.adb + (Unknown_Alignment): Simply negate the Known_ counterpart. + (Unknown_Component_Bit_Offset): Likewise. + (Unknown_Esize): Likewise. + (Unknown_Normalized_First_Bit): Likewise. + (Unknown_Normalized_Position): Likewise. + (Unknown_Normalized_Position_Max): Likewise. + (Unknown_RM_Size): Likewise. + +2021-06-29 Boris Yakobowski + + * exp_ch4.adb (Expand_N_Op_Mod): Remove special case for mod -1 + in CodePeer_Mode. + +2021-06-29 Aleksandra Pasek + + * libgnat/s-objrea.adb (EM_AARCH64): New Constant. + (Initialize): Handle EM_AARCH64 case. + (Read_Address): Handle AARCH64 case. + * libgnat/s-objrea.ads (Object_Arch): Add AARCH64 record + component. + +2021-06-29 Bob Duff + + * sem_ch13.adb (Analyze_Record_Representation_Clause): Call + Set_Entity_With_Checks instead of Set_Entity, so we perform the + check for correct casing. + * style.adb (Check_Identifier): Minor comment improvement. + Cleanup overly complicated code. + +2021-06-29 Ed Schonberg + + * exp_aggr.adb (Convert_Aggr_In_Object_Decl): After expansion of + the aggregate, the expression can be removed from the + declaration, except if the object is class-wide, in which case + the aggregate provides the actual type. In other cases the + presence of the expression may lead to spurious freezing issue. + * exp_ch3.adb (Expand_N_Object_Declaration): If the expression + in the declaration is an aggregate with delayed expansion (as is + the case for objects of a limited type, or a subsequent address + specification) the aggregate must be resolved at this point. + This resolution must not include expansion, because the + expansion of the enclosing declaration will construct the + necessary aggregate expansion. + +2021-06-29 Piotr Trojanek + + * errout.ads (Adjust_Name_Case): Remove obsolete and now unused + variant. + * errout.adb (Adjust_Name_Case): Likewise; fix variant that uses + a custom buffer to also use it for names in Standard_Location. + +2021-06-29 Eric Botcazou + + * sem_ch12.adb (Freeze_Subprogram_Body): Add missing "freeze". + (Install_Body): Likewise. + +2021-06-29 Piotr Trojanek + + * adaint.c (__gnat_portable_spawn): Revert change that + introduced setting of __gnat_in_child_after_fork. + +2021-06-29 Patrick Bernardi + + * libgnarl/s-tasdeb.ads (Known_Tasks): Add Atomic_Components + aspect. + +2021-06-29 Doug Rupp + + * Makefile.rtl (x86_64-vx7r2) [EXTRA_GNATRTL_TASKING_OBJS]: Move + i-vxinco.o out of RTP runtime. + +2021-06-29 Claire Dross + + * libgnat/a-cfdlli.ads: Use pragma Assertion_Policy to disable + pre and postconditions. + * libgnat/a-cfhama.ads: Likewise. + * libgnat/a-cfhase.ads: Likewise. + * libgnat/a-cfinve.ads: Likewise. + * libgnat/a-cforma.ads: Likewise. + * libgnat/a-cforse.ads: Likewise. + * libgnat/a-cofove.ads: Likewise. + +2021-06-29 Piotr Trojanek + + * sem_util.ads (Get_Fullest_View): Refill comment; remove extra + extra after period. + * sem_util.adb (Get_Fullest_View): Fix style. + +2021-06-29 Piotr Trojanek + + * sem_ch3.adb (Analyze_Declarations): Remove explicit check for + missing, because a subsequent call to Is_Empty_List will detect + them anyway. + +2021-06-29 Piotr Trojanek + + * freeze.adb (Freeze_All): Simplify by reusing + Is_Subprogram_Or_Entry. + * sem_ch11.adb (Analyze_Handled_Statement): Likewise. + +2021-06-29 Piotr Trojanek + + * sem_warn.adb (Warn_On_Overlapping_Actuals): Prevent cascaded + errors once for the subprogram call, not for every pair of + actual parameters. + +2021-06-29 Piotr Trojanek + + * sem_ch3.adb (Is_Local_Type): Simplify by reusing Scope_Within. + +2021-06-29 Gary Dismukes + + * sem_ch6.ads (Can_Override_Operator): Function declaration + moved from package body to package spec. + * sem_ch6.adb (Check_Overriding_Indicator): Now use test of + whether the subprogram's Chars is an operator name, to handle + cases of function instances whose entity is + N_Defining_Identifier rather than N_Defining_Operator_Symbol. + (Can_Override_Operator): Function declaration moved to package + spec. Now use test of whether the subprogram's Chars is an + operator name, to handle cases of function instances whose + entity is N_Defining_Identifier rather than + N_Defining_Operator_Symbol. + * sem_ch8.adb (Analyze_Renamed_Subprogram): Check for + possibility of an overridden predefined operator, and suppress + the "not overriding" message in that case. + +2021-06-29 Doug Rupp + + * Makefile.rtl: Add a new ifeq for vx7r2 shared gnatlib. + +2021-06-29 Piotr Trojanek + + * exp_attr.adb (Build_Array_VS_Func): Restore uses of + Validated_View. + (Build_Record_VS_Func): Likewise. + (Expand_N_Attribute_Reference): Likewise. + * sem_util.adb (Validated_View): Behave as an identity function + for arrays and scalars. + +2021-06-29 Bob Duff + + * atree.adb, atree.ads (Parent, Set_Parent): Assert node is + Present. + (Copy_Parent, Parent_Kind): New helper routines. + * gen_il-gen.adb: Add with clause. + * nlists.adb (Parent): Assert Parent of list is Present. + * aspects.adb, checks.adb, exp_aggr.adb, exp_ch6.adb, + exp_util.adb, lib-xref-spark_specific.adb, osint.ads, + sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch6.adb, + sem_dim.adb, sem_prag.adb, sem_res.adb, sem_util.adb, + treepr.adb: Do not call Parent and Set_Parent on the Empty node. + * libgnat/a-stwiun__shared.adb, libgnat/a-stzunb__shared.adb: + Minor: Fix typos in comments. + * einfo.ads: Minor comment update. + * sinfo-utils.ads, sinfo-utils.adb (Parent_Kind, Copy_Parent): + New functions. + +2021-06-29 Eric Botcazou + + * repinfo-input.adb (Read_JSON_Stream): Fix typo. + +2021-06-29 Eric Botcazou + + * rtsfind.ads (RE_Id): Change RE_Valid_Enumeration_Value_NN into + RE_Valid_Value_Enumeration_NN. + (RE_Unit_Table): Adjust to above renaming. + * exp_imgv.adb (Expand_Valid_Value_Attribute): Likewise. + * libgnat/s-valuen.ads (Invalid): Remove. + (Value_Enumeration_Pos): Move to... + * libgnat/s-valuen.adb (Value_Enumeration_Pos): ...here. + Return -1 instead of Invalid. + (Value_Enumeration): Compare against 0 instead of Invalid. + (Valid_Enumeration_Value): Likewise. Rename to... + (Valid_Value_Enumeration): ...this. + * libgnat/s-vaenu8.ads (Valid_Enumeration_Value_8): Rename into... + (Valid_Value_Enumeration_8): ...this. + * libgnat/s-vaen16.ads (Valid_Enumeration_Value_16): Rename into... + (Valid_Value_Enumeration_16): ...this. + * libgnat/s-vaen32.ads (Valid_Enumeration_Value_32): Rename into... + (Valid_Value_Enumeration_32): ...this. + +2021-06-29 Bob Duff + + * einfo.ads (Component_Bit_Offset, Component_Size): Update + documentation: Repinfo is the package where these negative + values are documented. + * einfo-utils.adb (Known_Component_Size, + Known_Static_Component_Size, Unknown_Component_Size): Remove + calls to Implementation_Base_Type, because Component_Size is an + Impl_Base_Type_Only field (see Gen_Entities). + * sem_ch13.ads, sem_ch13.adb (Check_Size): Do not set Esize and + RM_Size. This is unnecessary in the case of Size. For + Component_Size, it is wrong, because we would be setting the + Esize and RM_Size of the component type. + +2021-06-29 Pascal Obry + + * s-oscons-tmplt.c: Add some OS constants. + +2021-06-29 Piotr Trojanek + + * sem_util.ads (Validated_View): Fix style in comment. + * sem_util.adb (Validated_View): Rewrite in recursive style. + +2021-06-29 Eric Botcazou + + * Make-generated.in (ada/stamp-gen_il): Ignore errors from + running gen_il-main. + +2021-06-29 Richard Kenner + + * gen_il-gen-gen_entities.adb (Record_Field_Kind, + Allocatable_Kind): Add new abstract kinds. + (Constant_Or_Variable_Kind): Likewise. + (E_Constant, E_Variable, E_Loop_Parameter): Use them. + (E_Discriminant, E_Component): Likewise. + * gen_il-types.ads (type Opt_Type_Enum): Add them. + +2021-06-29 Bob Duff + + * gen_il-gen.adb (Put_C_Type_And_Subtypes): Put the correct + numbers. + * gen_il-internals.ads, gen_il-internals.adb: (Pos): Remove this + function. It was assuming that the order of the enumeration + literals in Type_Enum is the same as the order of the generated + types Node_Kind and Entity_Kind, which is not true. + +2021-06-29 Piotr Trojanek + + * exp_attr.adb (Expand_N_Attribute_Reference): Explicitly use + Validated_View for record objects. + +2021-06-28 Martin Sebor + + * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): + Replace TREE_NO_WARNING with suppress_warning. + (gnat_gimplify_expr): Same. + * gcc-interface/utils.c (gnat_pushdecl): Same. + +2021-06-21 Gary Dismukes + + * checks.adb (Selected_Range_Checks): In the case of a + qualified_expression where the qualifying subtype is an + unconstrained array subtype with fixed lower bounds for some of + its indexes, generate tests to check that those bounds are equal + to the corresponding lower bounds of the qualified array object. + +2021-06-21 Bob Duff + + * libgnat/s-valuen.ads (Value_Enumeration, + Valid_Enumeration_Value): Inline. + (Value_Enumeration_Pos): Add Pure_Function. + +2021-06-21 Justin Squirek + + * doc/gnat_rm/implementation_defined_pragmas.rst: Document new + feature under pragma Extensions_Allowed. + * gnat_rm.texi: Regenerate. + * errout.adb, errout.ads (Error_Msg_GNAT_Extension): Created to + issue errors when parsing extension only constructs. + * exp_ch11.adb, exp_ch11.ads (Expand_N_Raise_When_Statement): + Created to expand raise ... when constucts. + * exp_ch5.adb, exp_ch5.ads (Expand_N_Goto_When_Statement): + Created to expand goto ... when constructs. + * exp_ch6.adb, exp_ch6.ads (Expand_N_Return_When_Statement): + Created to expand return ... when constructs. + * expander.adb (Expand): Add case entries for "when" constructs. + * gen_il-gen-gen_nodes.adb, gen_il-types.ads: Add entries for + "when" constructs. + * par-ch11.adb (P_Raise_Statement): Add processing for raise ... + when. + * par-ch5.adb (Missing_Semicolon_On_Exit): Renamed to + Missing_Semicolon_On_When and moved to par-util.adb. + * par-ch6.adb (Get_Return_Kind): Renamed from Is_Simple and + processing added for "return ... when" return kind. + (Is_Simple): Renamed to Get_Return_Kind. + (P_Return_Statement): Add case for return ... when variant of + return statement. + * par-util.adb, par.adb (Missing_Semicolon_On_When): Added to + centeralize parsing of "when" keywords in the context of "when" + constructs. + * sem.adb (Analyze): Add case for "when" constructs. + * sem_ch11.adb, sem_ch11.ads (Analyze_Raise_When_Statement): + Created to analyze raise ... when constructs. + * sem_ch5.adb, sem_ch5.ads (Analyzed_Goto_When_Statement): + Created to analyze goto ... when constructs. + * sem_ch6.adb, sem_ch6.ads (Analyze_Return_When_Statement): + Created to analyze return ... when constructs. + * sprint.adb (Sprint_Node_Actual): Add entries for new "when" + nodes. + +2021-06-21 Steve Baird + + * Make-generated.in (GEN_IL_FLAGS): Keep only GNAT flags. + (ada/stamp-gen_il): Remove dependencies on libgnat/ sources. Do not + copy libgnat/ sources locally and tidy up. + * Makefile.rtl: Include object files for new Text_Buffer units + in the GNATRTL_NONTASKING_OBJS list. + * exp_put_image.ads, exp_put_image.adb: Update Rtsfind calls to + match new specs. For example, calls to RE_Sink are replaced with + calls to RE_Root_Buffer_Type. Update comments and change + subprogram names accordingly (e.g., Preload_Sink is changed to + Preload_Root_Buffer_Type). + * impunit.adb: Add 6 new predefined units (Text_Buffers and 5 + child units thereof). + * rtsfind.ads, rtsfind.adb: Add interfaces for accessing the + Ada.Strings.Text_Buffers package and declarations + therein (including the Unbounded child unit). Do not (yet) + delete interfaces for accessing the old Text_Output package. + * sem_attr.adb (Check_Put_Image_Attribute): Replace RE_Sink uses + with RE_Root_Buffer_Type and update comments accordingly. + * sem_ch10.adb (Analyze_Compilation_Unit): Update call to + reflect name change of callee (that is, the former Preload_Sink + is now Preload_Root_Buffer_Type). + * sem_ch13.adb (Has_Good_Profile): Replace RE_Sink use with + RE_Root_Buffer_Type. + (Build_Spec): Update comment describing a parameter type. + * gen_il.ads: Remove clauses for the old Text_Output package and + add them for Ada.Streams.Stream_IO. + (Sink): Declare. + (Create_File): Likewise. + (Increase_Indent): Likewise. + (Decrease_Indent): Likewise. + (Put): Likewise. + (LF): Likewise. + * gen_il.adb: Add clauses for Ada.Streams.Stream_IO. + (Create_File): New procedure. + (Increase_Indent): Likewise. + (Decrease_Indent): Likewise. + (Put): New procedures. + * gen_il-gen.adb: Add clauses for Ada.Text_IO. Replace + Sink'Class with Sink throughout. Use string concatenation and + LF marker instead of formatted strings and "\n" marker. Update + Indent/Outdent calls to use new Increase_Indent/Decrease_Indent + names. + (Put_Membership_Query_Decl): Remove. + * gen_il-internals.ads: Replace Sink'Class with Sink throughout. + (Ptypes): Remove. + (Pfields): Likewise. + * gen_il-internals.adb: Remove clauses for GNAT.OS_Lib and + Ada.Strings.Text_Buffers.Files. Replace Sink'Class with Sink + throughout. Use string concatenation and LF marker instead of + formatted strings and "\n" marker. + (Stdout): Remove. + (Ptypes): Likewise. + (Pfields): Likewise. + * libgnarl/s-putaim.ads: Modify context clause, update + declaration of subtype Sink to refer to + Text_Buffers.Root_Buffer_Type instead of the old + Text_Output.Sink type. + * libgnarl/s-putaim.adb: Modify context clause and add use + clause to refer to Text_Buffers package. + * libgnat/a-cbdlli.ads, libgnat/a-cbdlli.adb, + libgnat/a-cbhama.ads, libgnat/a-cbhama.adb, + libgnat/a-cbhase.ads, libgnat/a-cbhase.adb, + libgnat/a-cbmutr.ads, libgnat/a-cbmutr.adb, + libgnat/a-cborma.ads, libgnat/a-cborma.adb, + libgnat/a-cborse.ads, libgnat/a-cborse.adb, + libgnat/a-cdlili.ads, libgnat/a-cdlili.adb, + libgnat/a-cidlli.ads, libgnat/a-cidlli.adb, + libgnat/a-cihama.ads, libgnat/a-cihama.adb, + libgnat/a-cihase.ads, libgnat/a-cihase.adb, + libgnat/a-cimutr.ads, libgnat/a-cimutr.adb, + libgnat/a-ciorma.ads, libgnat/a-ciorma.adb, + libgnat/a-ciormu.ads, libgnat/a-ciormu.adb, + libgnat/a-ciorse.ads, libgnat/a-ciorse.adb, + libgnat/a-coboho.ads, libgnat/a-coboho.adb, + libgnat/a-cobove.ads, libgnat/a-cobove.adb, + libgnat/a-cohama.ads, libgnat/a-cohama.adb, + libgnat/a-cohase.ads, libgnat/a-cohase.adb, + libgnat/a-coinho.ads, libgnat/a-coinho.adb, + libgnat/a-coinho__shared.ads, libgnat/a-coinho__shared.adb, + libgnat/a-coinve.ads, libgnat/a-coinve.adb, + libgnat/a-comutr.ads, libgnat/a-comutr.adb, + libgnat/a-convec.ads, libgnat/a-convec.adb, + libgnat/a-coorma.ads, libgnat/a-coorma.adb, + libgnat/a-coormu.ads, libgnat/a-coormu.adb, + libgnat/a-coorse.ads, libgnat/a-coorse.adb, + libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb, + libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.ads, + libgnat/a-nbnbre.adb, libgnat/a-strunb.ads, + libgnat/a-strunb.adb, libgnat/a-strunb__shared.ads, + libgnat/a-strunb__shared.adb, libgnat/s-rannum.ads, + libgnat/s-rannum.adb: Modify Put_Image procedure used in + Put_Image aspect specification to conform to Ada profile + rules (in particular, the first parameter shall be of type + Ada.Strings.Text_Buffers.Root_Buffer_Type'Class). + * libgnat/a-sttebu.ads, libgnat/a-sttebu.adb, + libgnat/a-stbubo.ads, libgnat/a-stbubo.adb, + libgnat/a-stbufi.ads, libgnat/a-stbufi.adb, + libgnat/a-stbufo.ads, libgnat/a-stbufo.adb, + libgnat/a-stbuun.ads, libgnat/a-stbuun.adb, + libgnat/a-stbuut.ads, libgnat/a-stbuut.adb: A new predefined + unit, Ada.Strings.Text_Buffers, and five child units. Two of + the five are RM-defined: Bounded and Unbounded. The remaining + three are GNAT-defined: Files, Utils, and Formatting. The buffer + type corresponding to an output file, type Files.File_Buffer, is + simpler (and perhaps therefore slower) than its predecessor. + Caching similar to what was being done before could be added + later if that seems appropriate. + * libgnat/s-putima.ads: Modify context clause, update + declaration of subtype Sink to refer to + Text_Buffers.Root_Buffer_Type instead of the old + Text_Output.Sink type. + * libgnat/s-putima.adb: Modify context clause. Update + Indent/Outdent calls to use new Increase_Indent/Decrease_Indent + names; ditto for "Put_String => Put" name change. + * libgnat/a-stteou__bootstrap.ads: Delete. + +2021-06-21 Eric Botcazou + + * exp_ch5.adb (Expand_Assign_Array_Bitfield_Fast): If big-endian + ordering is in effect for the operands and they are small, + adjust the unchecked conversions done around them. + +2021-06-21 Richard Kenner + + * einfo.ads (Return_Statement): Add documentation. + * exp_ch6.adb (Expand_N_Extended_Return_Statement): Set it. + * gen_il-fields.ads: Add it. + * gen_il-gen-gen_entities.adb: Add it. + +2021-06-21 Bob Duff + + * rtsfind.ads, libgnat/s-bitfie.ads, libgnat/s-bituti.adb, + libgnat/s-bituti.ads (Fast_Copy_Bitfield): New run-time library + function to copy bit fields faster than Copy_Bitfield. Cannot be + called with zero-size bit fields. Remove obsolete ??? comments + from s-bituti.adb; we already do "avoid calling this if + Forwards_OK is False". + * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield, + Expand_Assign_Array_Bitfield_Fast): Generate calls to + Fast_Copy_Bitfield when appropriate. + * sem_util.adb, sem_util.ads (Get_Index_Bounds): Two new + functions for getting the index bounds. These are more + convenient than the procedure of the same name, because they can + be used to initialize constants. + +2021-06-21 Ed Schonberg + + * gen_il-fields.ads: Add Default_Subtype_Mark to enumeration + type for fields. + * gen_il-gen-gen_nodes.adb: Add call to create new field for + Formal_Type_Declaration node. + * par-ch12.adb (P_Formal_Type_Declaration): in Ada_2022 mode, + recognize new syntax for default: "or use subtype_mark". + (P_Formal_Type_Definition): Ditto for the case of a formal + incomplete type. + * sinfo.ads: Add field Default_Subtype_Mark to + N_Formal_Type_Declaration. + * sem_ch12.adb (Validate_Formal_Type_Default): New procedure, to + apply legality rules to default subtypes in formal type + declarations. Some legality rules apply to all defaults, such as + the requirement that the default for a formal type that depends + on previous formal entities must itself be a previously declared + formal of the same unit. Other checks are kind- specific. + (Analyze_Associations): Use specified default if there is no + actual provided for a formal type in an instance. + (Analyze_Formal_Type_Declaration): Call + Validate_Formal_Type_Default when default subtype is present. + +2021-06-21 Bob Duff + + * libgnat/s-valuen.ads, libgnat/s-valuen.adb + (Value_Enumeration_Pos): New function to compute the 'Pos of the + enumeration literal for a given String. Return a special value + instead of raising an exception on invalid input. Called by both + Valid_Enumeration_Image and Value_Enumeration. + (Valid_Enumeration_Image): Return a Boolean indicating whether + the String is a valid Image for the given enumeration type. + (Value_Enumeration): Implement in terms of + Value_Enumeration_Pos. + * libgnat/s-vaenu8.ads, libgnat/s-vaen16.ads, + libgnat/s-vaen32.ads: Rename Valid_Enumeration_Image from the + instances. + * libgnat/s-valuti.ads: Correct documentation (it was not true + for the null string). + * libgnat/s-valuti.adb (Normalize_String): Do not raise + Constraint_Error for the null string, nor strings containing + nothing but blanks, so that Valid_Enumeration_Image can return + False in these cases, rather than raising an exception. + * rtsfind.ads (RE_Value_Enumeration_8, RE_Value_Enumeration_16, + RE_Value_Enumeration_32): New functions. + (RTE_Available): Improve comment (E doesn't have to be a + subprogram, although that's the usual case). + * sem_attr.adb (nalid_Value): Semantic analysis for new + attribute. + * exp_attr.adb: Call Expand_Valid_Value_Attribute for new + attribute. + * exp_imgv.ads, exp_imgv.adb (Expand_Valid_Value_Attribute): New + procedure to expand Valid_Value into a call to + Valid_Enumeration_Image_NN. + (Expand_Value_Attribute): Misc code cleanups. Remove two ??? + mark comments. RTE_Available won't work here. For one thing, + RTE_Available (X) shouldn't be called until the compiler has + decided to make use of X (see comments on RTE_Available), and in + this case we're trying to AVOID calling something. + * snames.ads-tmpl: New attribute name. + * doc/gnat_rm/implementation_defined_attributes.rst: Document + new attribute. + * gnat_rm.texi: Regenerate. + +2021-06-21 Eric Botcazou + + * fe.h (Assume_No_Invalid_Values): Declare. + * opt.ads (Assume_No_Invalid_Values): Add warning comment. + +2021-06-21 Bob Duff + + * libgnat/s-bituti.ads (Small_Size): Do not include 0 in this + type. + * libgnat/s-bituti.adb (Copy_Bitfield): Do nothing for 0-bit + bitfields. + +2021-06-21 Ghjuvan Lacambre + + * exp_ch9.adb (Build_Simple_Entry_Call): Add comment. + * libgnat/s-rannum.adb (Random): Update comment. + * libgnat/s-rannum.ads (Generator): Update comment. + +2021-06-21 Piotr Trojanek + + * doc/gnat_rm/representation_clauses_and_pragmas.rst (Address + Clauses): Fix unbalanced parens. + * gnat_rm.texi: Regenerate. + +2021-06-21 Ghjuvan Lacambre + + * errout.adb (Handle_Serious_Error): Capitalize comment. + * exp_dbug.adb (Set_Entity_Name): Capitalize sentence. + * exp_dist.adb (Expand_All_Calls_Remote_Subprogram_Call): Fix + typo. + * sem_ch3.adb (Modular_Type_Declaration): Add space after comma. + +2021-06-21 Ghjuvan Lacambre + + * debug.adb: Document -gnatd_U as taken. + * err_vars.ads (Warning_Doc_Switch): Set to True. + * errout.ads (Errout): Update documentation. + * gnat1drv.adb (Adjust_Global_Switches): React to -gnatd_U. + * hostparm.ads (Tag_Errors): Set to True. + * opt.ads (Unique_Error_Tag): Document -gnatd_U. + +2021-06-21 Eric Botcazou + + * urealp.ads (UR_Write_To_JSON): Declare. + * urealp.adb (Decimal_Exponent_Hi): Treat numbers in base 10 + specially and rewrite handling of numbers in other bases. + (Decimal_Exponent_Lo): Likewise. + (Normalize): Minor tweak. + (UR_Write_To_JSON): New wrapper procedure around UR_Write. + * repinfo.adb (List_Type_Info): When the output is to JSON, call + UR_Write_To_JSON instead of UR_Write. + +2021-06-21 Piotr Trojanek + + * sem_util.adb (Indexed_Component_Bit_Offset): Return an unknown + offset for components within multidimensional arrays; remove + redundant parens. + +2021-06-21 Piotr Trojanek + + * sem_util.adb (Find_Overlaid_Entity): Ignore references to + components and discriminants. + +2021-06-21 Doug Rupp + + * Makefile.rtl (aarch64-linux) [LIBGNAT_TARGET_PAIRS]: Add + $(TRASYM_DWARF_UNIX_PAIRS). + [EXTRA_GNAT_RTL_NONTASKING_OBJS]: Add $(TRASYM_DWARF_UNIX_OBJS) + +2021-06-21 Gary Dismukes + + * exp_util.adb (Expand_Sliding_Conversion): Only perform + expansion when Expander_Active is True. Add a comment about this + and refine existing comment regarding string literals. + +2021-06-21 Piotr Trojanek + + * sem_util.adb (Denotes_Same_Object): Simplify handling of + slices. + +2021-06-21 Piotr Trojanek + + * sem_util.adb (Is_Object_Renaming): Rename from Is_Renaming; + simplify; adapt callers. + +2021-06-21 Frederic Konrad + + * Makefile.rtl: Compiles both static and dynamic libgnat for + powerpc64-wrs-vxworks7r2. + +2021-06-18 Gary Dismukes + + * sem_ch3.adb (Constrain_Array): Add error checking for + fixed-lower-bound and constrained index ranges applied + inappropriately on subtypes of unconstrained and + fixed-lower-bound array types. + (Constrain_Index): Correct and refine comment related to + fixed-lower-bound index ranges. + +2021-06-18 Bob Duff + + * gen_il-gen.adb: Improve comments. + * snames.ads-tmpl (Convention_Id): Remove "-- Plenty of space + for expansion", because that's irrelevant now that we are no + longer laying out node fields by hand. + +2021-06-18 Piotr Trojanek + + * sem_util.adb (Denotes_Same_Object): Handle character literals + just like integer literals. + +2021-06-18 Piotr Trojanek + + * sem_util.adb (Denotes_Same_Object): Explicitly test for node + kinds being the same; deal with renamings one-by-one; adjust + numbers in references to the Ada RM. + +2021-06-18 Bob Duff + + * sprint.adb (Write_Source_Line): Check for EOF in + Line_Terminator loop. Note that when a source file is read in, + an EOF character is added to the end. + +2021-06-18 Piotr Trojanek + + * sem_aux.adb (Package_Specification): Add assertions to confirm + the kind of the of parameter and returned node. + * sem_ch12.adb (Remove_Parent): Reorder conditions; this change + appears to be semantically neutral, but is enough to avoid the + problematic call to Package_Specification. + * sem_util.adb (Is_Incomplete_Or_Private_Type): Replace loop + with a call to Package_Specification. + +2021-06-18 Bob Duff + + * sem_attr.adb (Eval_Attribute): For Enum_Lit'Size, use + Enum_Type'Object_Size. + +2021-06-18 Olivier Hainque + + * sigtramp-vxworks-target.inc (__aarch64__): Sync + REGNO_PC_OFFSET with the back-end DWARF_ALT_FRAME_RETURN_COLUMN. + In CFI_COMMON_REGS, leave r18 alone, VxWorks private. + +2021-06-18 Javier Miranda + + * contracts.adb (Process_Spec_Postconditions): Add missing + support for aliased subprograms and handle wrappers of + class-wide pre/post conditions. + (Process_Inherited_Preconditions): Add missing support for + aliased subprograms and handle wrappers of class-wide pre/post + conditions. + * einfo.ads (Class_Wide_Clone): Fix typo. + (Is_Class_Wide_Clone): Removed since it is not referenced. + (Is_Wrapper): Documenting new flag. + (LSP_Subprogram): Documenting new attribute. + * exp_ch3.adb (Make_Controlling_Function_Wrappers): Decorate + wrapper as Is_Wrapper and adjust call to + Override_Dispatching_Operation. + * freeze.adb (Build_Inherited_Condition_Pragmas): Fix typo in + documentation. + (Check_Inherited_Conditions): Handle LSP wrappers; ensure + correct decoration of LSP wrappers. + * gen_il-fields.ads (Is_Class_Wide_Clone): Removed. + (Is_Wrapper): Added. + (LSP_Subprogram): Added. + * gen_il-gen-gen_entities.adb (Is_Class_Wide_Clone): Removed. + (Is_Wrapper): Added. + (LSP_Subprogram): Added. + * gen_il-internals.adb (Image): Adding uppercase image of + LSP_Subprogram. + * sem_ch6.adb (New_Overloaded_Entity): Fix decoration of LSP + wrappers. + * sem_disp.ads (Override_Dispatching_Operation): Remove + parameter Is_Wrapper; no longer needed. + * sem_disp.adb (Check_Dispatching_Operation): Adjust assertion. + (Override_Dispatching_Operation): Remove parameter Is_Wrapper; + no longer needed. + * treepr.adb (Image): Adding uppercase image of LSP_Subprogram. + +2021-06-18 Arnaud Charlet + + * exp_ch4.adb (Expand_N_Quantified_Expression): Ensure the type + of the name of a "for of" loop is frozen. + * exp_disp.adb (Check_Premature_Freezing): Complete condition to + take into account a private type completed by another private + type now that the freezing rule are better implemented. + * freeze.adb (Freeze_Entity.Freeze_Profile): Do not perform an + early freeze on types if not in the proper scope. Special case + expression functions that requires access to the dispatch table. + (Should_Freeze_Type): New. + * sem_ch13.adb (Resolve_Aspect_Expressions): Prevent assert + failure in case of an invalid tree (previous errors detected). + * sem_res.adb (Resolve): Remove kludge related to entities + causing incorrect premature freezing. + * sem_util.adb (Ensure_Minimum_Decoration): Add protection + against non base types. + +2021-06-18 Gary Dismukes + + * sem_ch3.adb (Constrain_Index): Set the High_Bound of a + fixed-lower-bound subtype's range to T (the subtype of the FLB + index being constrained) rather than Base_Type (T). + +2021-06-18 Bob Duff + + * ada_get_targ.adb, aspects.ads, checks.adb, cstand.adb, + einfo.ads, exp_attr.adb, freeze.adb, get_targ.adb, + libgnat/a-textio.ads, libgnat/g-memdum.ads, + libgnat/s-scaval__128.adb, libgnat/s-scaval.adb, make.adb, + osint.ads, par-prag.adb, sem_ch13.adb, sem_prag.adb, + sem_prag.ads, set_targ.adb, set_targ.ads, snames.ads-tmpl, + targparm.ads, types.ads: Remove AAMP-specific code. + * switch.ads: Minor reformatting. + * gen_il-fields.ads, gen_il-gen.adb, + gen_il-gen-gen_entities.adb, gen_il-types.ads, einfo-utils.adb, + einfo-utils.ads: Package Types now contains "type Float_Rep_Kind + is (IEEE_Binary);", which used to also have an enumeral AAMP. + Gen_IL can't handle fields of this type, which would be zero + sized. Therefore, we move the Float_Rep field into Einfo.Utils + as a synthesized attribute. (We do not delete the field + altogether, in case we want new floating-point representations + in the future.) + * doc/gnat_rm/implementation_defined_pragmas.rst, + doc/gnat_rm/implementation_defined_aspects.rst, + doc/gnat_ugn/building_executable_programs_with_gnat.rst, + doc/gnat_ugn/the_gnat_compilation_model.rst: Remove + AAMP-specific documentation. + * gnat_rm.texi, gnat_ugn.texi: Regenerate. + +2021-06-18 Gary Dismukes + + * exp_util.adb (Expand_Sliding_Conversion): Move test of + Is_Fixed_Lower_Bound_Subtype to an assertion. Exclude string + literals from sliding expansion. + +2021-06-18 Piotr Trojanek + + * sem_warn.adb (Warn_On_Overlapping_Actuals): Cleanup conditions + related to Ada_Version. + +2021-06-18 Piotr Trojanek + + * sem_util.adb (Address_Value): Simplify. + +2021-06-18 Bob Duff + + * sem_attr.adb (Check_Array_Or_Scalar_Type): Use Expr_Value + instead of Intval, because the latter only exists in literals. + Remove Set_Etype on E1; setting the type is done elsewhere. + +2021-06-18 Piotr Trojanek + + * sem_warn.adb (Warn_On_Overlapping_Actuals): Examine types of + both formal parameters; refactor a complex detection of + by-reference types. + +2021-06-18 Arnaud Charlet + + * gnatcmd.adb: Fix handling of check and test commands. + +2021-06-18 Gary Dismukes + + * doc/gnat_rm/implementation_defined_pragmas.rst: Add + documentation for the array fixed-lower-bound feature. + * gnat_rm.texi: Regenerate. + +2021-06-18 Bob Duff + + * debug.adb: Document switch. + * exp_aggr.adb: If -gnatd_g was given, then do not bump the + limit to 500_000. + +2021-06-18 Bob Duff + + * sem_util.ads, sem_util.adb (Has_Access_Values): Remove + Include_Internal parameter that was added in previous change. + * sem_warn.adb (Warnings_Off_E1): Back out E_Out_Parameter ==> + Formal_Kind change made previously. Check Is_Private_Type to + avoid warnings on private types. Misc cleanup. + * sem_attr.adb (Attribute_Has_Access_Values): Remove + Include_Internal parameter. + +2021-06-18 Piotr Trojanek + + * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove dead branch + for overlapping actuals in prefix notation. + +2021-06-18 Eric Botcazou + + * sem_prag.adb (Process_Import_Or_Interface): Do not + artificially record a possible modification for a constant. + +2021-06-18 Arnaud Charlet + + * exp_ch6.adb (Expand_Call_Helper): Code cleanups. + +2021-06-18 Arnaud Charlet + + * exp_aggr.adb, exp_dist.adb, exp_unst.adb, sa_messages.ads, + sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_eval.adb, + sem_util.adb, sem_util.ads, sinfo.ads: Update comments. + +2021-06-18 Ghjuvan Lacambre + + * back_end.adb (Scan_Back_End_Switches): Set Opt.JSON_Output to + True if -fdiagnostics-format=json option is found. + * back_end.ads (Scan_Compiler_Arguments): Mention + Opt.JSON_Output. + * errout.adb (Output_JSON_Message): New procedure. + (Output_Messages): If Opt.JSON_Output is True, print messages + with new Output_JSON_Message procedure. + * opt.ads: Declare JSON_Output variable. + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: + Mention new -fdiagnostics-format option. + * gnat_ugn.texi: Regenerate. + +2021-06-18 Arnaud Charlet + + * sem_ch6.adb (Null_Exclusions_Match): Relax null exclusion + mismatch check when Relaxed_RM_Semantics is set. + +2021-06-18 Arnaud Charlet + + * fe.h, opt.adb, opt.ads, par-prag.adb, sem_prag.adb, + switch-c.adb (Extensions_Allowed): Replace by a function. + (Ada_Version_Type): Add new value Ada_With_Extensions, to + replace setting of Extensions_Allowed. Update setting of + Extensions_Allowed. + +2021-06-18 Arnaud Charlet + + * bindgen.adb (Gen_Output_File_Ada): Generate a new constant + GNAT_Version_Address. + * libgnat/g-comver.adb (GNAT_Version_Address): New; + (GNAT_Version): Use GNAT_Version_Address to disable LTO warning. + +2021-06-18 Javier Miranda + + * einfo.ads (Is_Ada_2022_Only): Adding documentation. + * gen_il-fields.ads (Is_Ada_2022_Only): New flag. + * gen_il-gen-gen_entities.adb (Is_Ada_2022_Only): New flag. + * itypes.adb (Create_Null_Excluding_Itype): Inherit + Is_Ada_2022_Only. + * sem_ch3.adb (Check_Abstract_Overriding): Skip reporting error + on Ada 2022 only subprograms that require overriding if we are + not in Ada 2022 mode. + (Derive_Subprogram): Inherit Is_Ada_2022_Only. + * sem_ch6.adb (Check_Overriding_Indicator): Inherit + Is_Ada_2022_Only. + (New_Overloaded_Entity): Inherit Is_Ada_2022_Only. + * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Inherit + Is_Ada_2022_Only. + (Preserve_Full_Attributes): Inherit Is_Ada_2022_Only. + * sem_disp.adb (Find_Hidden_Overridden_Primitive): Inherit + Is_Ada_2022_Only. + (Override_Dispatching_Operation): Inherit Is_Ada_2022_Only. + * sem_prag.adb (Analyze_Pragma): Allow form with argument for + Ada 2022. + * sem_type.adb: (Disambiguate): Deal with Is_Ada_2022_Only + * lib-xref.adb (Generate_Reference): Error on static and + dispatching calls to Ada 2022 subprograms that require + overriding if we are not in Ada 2022 mode; warn on other + references to Ada 2022 entities when not in Ada 2022 mode. + * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Inherit + Ada_2020_Only. + * libgnat/a-cdlili.ads (Empty): Adding pragma Ada_2022. + * libgnat/a-cidlli.ads (Empty): Adding pragma Ada_2022. + * libgnat/a-ciorma.ads (Empty): Adding pragma Ada_2022. + * libgnat/a-cobove.ads (Empty): Adding pragma Ada_2022. + * libgnat/a-coorma.ads (Empty): Adding pragma Ada_2022. + (New_Vector): Adding pragma Ada_2022. + (Insert_Vector): Adding pragma Ada_2022. + (Prepend_Vector): Adding pragma Ada_2022. + (Append_Vector): Adding pragma Ada_2022. + +2021-06-17 Arnaud Charlet + + * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Protect against + no Primitive_Operations. + +2021-06-17 Vadim Godunko + + * libgnat/a-strunb__shared.ads (Allocate): Additional parameter + to provide additional amount of space to be allocated. + * libgnat/a-strunb__shared.adb (Aligned_Max_Length): Limit + length to Natural'Last when requested length is larger than it. + (Allocate): Merge two slightly different implementations into + one. + +2021-06-17 Gary Dismukes + + * checks.adb (Discrete_Range_Cond): For an index subtype that + has a fixed lower bound, require that the range's lower bound + match that of the subtype. + (Selected_Range_Checks): Warn about the case where a static + lower bound does not equal an index subtype's fixed lower bound. + * einfo.ads (Is_Fixed_Lower_Bound_Array_Subtype, + Is_Fixed_Lower_Bound_Index_Subtype): Document new entity flag. + * exp_ch4.adb (Expand_N_Type_Conversion): If the operand is of + an unconstrained array subtype with fixed lower bound, then + Expand_Sliding_Conversion is applied to the operand. + * exp_ch6.adb (Expand_Simple_Function_Return): If the result + subtype is an unconstrained array subtype with fixed lower + bound, then Expand_Sliding_Conversion is applied to the return + object. + * exp_util.ads (Expand_Sliding_Conversion): New procedure for + applying a sliding subtype conversion to an array object of a + fixed-lower-bound subtype when needed. + * exp_util.adb: Add with_clause for Freeze. + (Expand_Sliding_Conversion): New procedure for applying a + sliding subtype conversion to an array object of a + fixed-lower-bound subtype when needed. It traverses the indexes + of the unconstrained array type/subtype to create a target + constrained subtype and rewrites the array object to be a + conversion to that subtype, when there's at least one index + whose lower bound does not statically match the fixed-lower + bound of the target subtype. + * gen_il-fields.ads (type Opt_Field_Enum): Add literals + Is_Fixed_Lower_Bound_Array_Subtype and + Is_Fixed_Lower_Bound_Index_Subtype for new flags on type + entities. + * gen_il-gen-gen_entities.adb: Add calls to + Create_Semantic_Field for the new fixed-lower-bound flags on + type entities. + * par-ch3.adb (P_Array_Type_Definition): Add handling for + parsing of fixed-lower-bound index ranges in unconstrained array + types. Report an error if such an index is encountered and GNAT + language extensions are not enabled. + (P_Index_Subtype_Def_With_Fixed_Lower_Bound): Support procedure + for parsing unconstrained index ranges. + (P_Index_Or_Discriminant_Constraint): Add handling for parsing + of index constraints that specify ranges with fixed lower + bounds. Report an error if such an index is encountered and GNAT + language extensions are not enabled. + * sem_ch3.adb (Analyze_Object_Declaration): If the object's + nominal subtype is an array subtype with fixed lower bound, then + Expand_Sliding_Conversion is applied to the object. + (Array_Type_Declaration): Mark the array type and the subtypes + of any indexes that specify a fixed lower bound as being + fixed-lower-bound subtypes, and set the High_bound of the range + of such an index to the upper bound of the named subtype. + (Constrain_Array): For an array subtype with one or more index + ranges specifying a fixed lower bound, set Is_Constrained to + False and set the array subtype's + Is_Fixed_Lower_Bound_Array_Subtype flag to True. + (Constrain_Index): Mark the subtypes of an index that specifies + a fixed lower bound as being a fixed-lower-bound index subtype, + and set the High_bound of the range of such an index to the + upper bound of the base type of the array type's corresponding + index. + * sem_res.adb (Resolve_Actuals): If a formal is of an + unconstrained array subtype with fixed lower bound, then + Expand_Sliding_Conversion is applied to the actual. + * sem_util.adb (Build_Actual_Subtype): If the actual subtype + corresponds to an unconstrained array subtype having any indexes + with fixed lower bounds, then set the lower bounds of any such + indexes of the actual subtype to the appropriate fixed lower + bound of the formal subtype (rather than taking it from the + formal itself). + * sprint.adb (Sprint_Node_Actual, case N_Range): If a range's + Etype has a fixed lower bound, then print "<>" rather than the + High_Bound of the range. + +2021-06-17 Bob Duff + + * sem_util.adb, sem_util.ads (Has_Access_Values): New formal + Include_Internal to indicate whether internal types should be + included. + * sem_warn.adb (Check_References): Change E_Out_Parameter to + Formal_Kind, to match the comment about Spec_Entity. Pass + Include_Internal => False to Has_Access_Values, so that we warn + on types with access values that happen to be in internal types, + such as Unbounded_String. + * sem_attr.adb (Attribute_Has_Access_Values): Pass + Include_Internal => True to Has_Access_Values, to preserve + existing behavior. + * libgnat/g-rewdat.adb (Do_Output): Change B from 'in out' to + 'in', to avoid warning enabled by the change to sem_warn.adb. + * libgnat/s-objrea.adb (Check_Read_Offset): Change S from 'in + out' to 'in', to avoid warning enabled by the change to + sem_warn.adb. + +2021-06-17 Steve Baird + + * exp_ch5.adb + (Expand_N_Case_Statement.Expand_General_Case_Statement): New + subprogram. + (Expand_N_Case_Statement): If extensions are allowed and the + case selector is not of a discrete type, then call + Expand_General_Case_Statement to generate expansion instead of + flagging the non-discrete selector as an error. + * sem_case.ads (Is_Case_Choice_Pattern): New Boolean-valued + function for testing whether a given expression occurs as part + of a case choice pattern. + * sem_case.adb (Composite_Case_Ops): New package providing + support routines for the new form of case statements. This + includes a nested package, Composite_Case_Ops.Value_Sets, which + encapsulates the "representative values" implementation of + composite value sets. + (Check_Choices.Check_Case_Pattern_Choices): New procedure for + semantic checking of non-discrete case choices. This includes + the checks pertaining to coverage and overlapping. + (Check_Choices.Check_Composite_Case_Selector): New procedure for + semantic checking of non-discrete case selectors. + (Check_Choices): If extensions are allowed then a non-discrete + selector type no longer implies that an error must have been + flagged earlier. Instead of simply returning, call + Check_Composite_Case_Selector and Check_Case_Pattern_Choices. + (Is_Case_Choice_Pattern): Body of new function declared in + sem_case.ads . + * sem_ch5.adb (Analyze_Case_Statement): If extensions are + allowed, then we can't use RM 5.4's "The selecting_expression is + expected to be of any discrete type" name resolution rule. + Handle the case where the type of the selecting expression is + not discrete, as well as the new ambiguous-name-resolution error + cases made possible by this change. + * sem_res.adb (Resolve_Entity_Name): It is ok to treat the name + of a type or subtype as an expression if it is part of a case + choice pattern, as in "(Field1 => Positive, Field2 => <>)". + * exp_aggr.adb (Expand_Record_Aggregate): Do not expand case + choice aggregates. + * gen_il-fields.ads: Define two new node attributes, + Binding_Chars and Multidefined_Bindings. + * gen_il-gen-gen_nodes.adb: The new Multidefined_Bindings + attribute is Boolean-valued and may be set on + N_Case_Statement_Alternative nodes. The new Binding_Chars + attribute is Name_Id-valued and may be set on + N_Component_Association nodes. + * par-ch4.adb (P_Record_Or_Array_Component_Association): When + parsing a component association, check for both new syntax forms + used to specify a bound value in a case-choice aggregate. In + the case of a box value, an identifier may occur within the box, + as in "Foo => " instead of "Foo => <>". In the more general + case, an expression (or a box) may be followed by "is + ", as in + "Foo => Bar is Abc" instead of just "Foo => Bar". + * sem_aggr.adb (Resolve_Record_Aggregate): Do not transform box + component values in a case-choice aggregate. + * sinfo.ads: Provide comments for the new attributes added in + gen_il-fields.ads. + * doc/gnat_rm/implementation_defined_pragmas.rst: Describe this + new feature in documentation for pragma Extensions_Allowed. + * gnat_rm.texi: Regenerate. + +2021-06-17 Arnaud Charlet + + * exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action): + Do not abandon processing on a nested N_Expression_With_Actions + or N_Loop_Statement, otherwise we may miss some transient + declarations. + +2021-06-17 Arnaud Charlet + + * exp_util.adb (Find_Hook_Context): Do not stop on an aggregate + node. + +2021-06-17 Piotr Trojanek + + * sem_util.adb (Is_Valid_Renaming): Check not only indexed + components, but slices too. + +2021-06-17 Piotr Trojanek + + * sem_ch3.adb (Analyze_Private_Extension_Declaration): Check + No_Wide_Characters restriction after rejecting illegal parent + types. + (Derived_Type_Declaration): Likewise. + (Find_Type_Of_Subtype_Indic): Remove check for + No_Wide_Characters restriction, which was done too early. + +2021-06-17 Piotr Trojanek + + * sem_util.adb (Is_Valid_Renaming): Body moved from its nested + routine. + +2021-06-17 Gary Dismukes + + * sem_ch12.adb (Instantiate_Type): If the actual type for an + incomplete formal type is also incomplete, but has a Full_View, + use the Full_View of the actual type rather than the incomplete + view. + +2021-06-17 Piotr Trojanek + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst + (-gnatw.I): Remove double period at the end of sentence. + * gnat_ugn.texi: Regenerate. + +2021-06-17 Piotr Trojanek + + * sem_util.adb (Denotes_Same_Object): Call Get_Index_Bounds with + the range of a slice object, not its type. + +2021-06-17 Piotr Trojanek + + * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix style; + refactor repeated calls to Nkind; remove early RETURN. + +2021-06-17 Piotr Trojanek + + * sem_warn.adb (Warn_On_Overlapping_Actuals): Ignore formal of + generic types, but keep examining other parameters. + +2021-06-17 Piotr Trojanek + + * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove dead code. + +2021-06-17 Piotr Trojanek + + * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove repeated + code. + +2021-06-17 Piotr Trojanek + + * checks.adb (Overlap_Check): Replace Set_Casing with + Adjust_Name_Case and adapt surrounding code as needed. + +2021-06-17 Arnaud Charlet + + * libgnat/s-putaim.ads, libgnat/s-putaim.adb: Move... + * libgnarl/s-putaim.ads, libgnarl/s-putaim.adb: ... here. + +2021-06-17 Arnaud Charlet + + * uintp.ads, uintp.adb (UI_To_Unsigned_64): New. + +2021-06-17 Piotr Trojanek + + * sem_prag.adb (Get_Overflow_Mode): Reword error message. + * switch-c.adb (Get_Overflow_Mode): Likewise. + +2021-06-17 Richard Kenner + + * exp_util.adb (Expand_Static_Predicates_In_Choices): Handle + Others_Discrete_Choices in N_Others_Choice. + +2021-06-17 Arnaud Charlet + + * atree.adb: Remove redundant comment with spec. + * sem_warn.adb: Fix typo in comment. + +2021-06-17 Arnaud Charlet + + * atree.adb: Do not suppress checks. + +2021-06-17 Justin Squirek + + * exp_ch3.adb (Check_Missing_Others): Add comment. + (Build_Initialization_Call): Remove inaccurate accessibility + comment. + * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Remove + test for Ada2012. + (Analyze_Package_Instantiation): Remove speculative comment. + (Inline_Instance_Body): Add comments for loops. + (Build_Subprogram_Renaming): Remove comment about fix being + partial and "ugly." + (Instantiate_Subprogram_Body): Remove comment referencing DEC + related internal issue. + (Subtypes_Match): Add comment and simplify anonymous access + test. + (Is_Global): Add test for when E is an expanded name, and + calculate the scope accordingly. + * sem_ch6.adb (Analyze_Function_Return): Update comment + regarding accessibility, and add check for + Warn_On_Ada_2012_Compatibility. + (Mask_Type_Refs): Add comments. + (Analyze_Subprogram_Declaration): Remove mysterious suppression + of elaboration checks. + * sem_ch7.adb (Preserve_Full_Attributes): Preserve Is_Atomic + value. + * sem_ch8.adb (Most_Descendant_Use_Clause): Remove comment. + (Note_Redundant_Use): Fix calls to Find_First_Use to be + Find_Most_Prev. + (Get_Object_Name): Modify error message to be more descriptive. + (Known_But_Visible): Remove mysterious special case for + GNAT_Mode. + (Find_First_Use): Removed. + (Find_Most_Prev): Renamed from Find_First_Use. + * sem_prag.adb (Check_Static_Constraint): Add comments to + routine. + +2021-06-17 Bob Duff + + * treepr.adb (Print_Node): Display the Entity or Associated_Node + fields if appropriate. + * sinfo-utils.ads (F_Associated_Node, F_Entity): Remove. These + are no longer needed. + +2021-06-17 Piotr Trojanek + + * checks.adb (Apply_Parameter_Aliasing_Checks): Replace calls to + Is_Object_Reference with calls to Is_Name_Reference; remove + asymmetric condition that only detected an aggregate as the + first actual (aggregate objects were just a special case of an + object reference that was not a name). + +2021-06-17 Bob Duff + + * gen_il-gen.adb, gen_il-internals.ads: Generate field + enumeration literals with "F_" prefix. Update all generated + references accordingly. + * atree.adb, einfo-utils.adb, sem_ch3.adb, sem_ch5.adb, + sem_ch6.adb, sem_ch8.adb, sinfo-cn.adb, sinfo-utils.adb, + sinfo-utils.ads, treepr.adb: Add "F_" prefix to all uses of the + field enumeration literals. + +2021-06-17 Arnaud Charlet + + * libgnat/i-c.ads, libgnat/i-cexten.ads, + libgnat/i-cexten__128.ads: bool renamed C_bool. + +2021-06-17 Piotr Trojanek + + * sem_ch4.adb (Analyze_Allocator): Reject allocators in + restricted contexts. + +2021-06-17 Arnaud Charlet + + * gcc-interface/Make-lang.in: Use libgnat.so if libgnat.a cannot + be found. + +2021-06-16 Piotr Trojanek + + * sem_util.adb (Is_Volatile_Function): Follow the exact wording + of SPARK (regarding volatile functions) and Ada (regarding + protected functions). + +2021-06-16 Piotr Trojanek + + * sem_util.adb (Is_OK_Volatile_Context): All references to + volatile objects are legal in preanalysis. + (Within_Volatile_Function): Previously it was wrongly called on + Empty entities; now it is only called on E_Return_Statement, + which allow the body to be greatly simplified. + +2021-06-16 Yannick Moy + + * sem_res.adb (Set_Slice_Subtype): Revert special-case + introduced previously, which is not needed as Itypes created for + slices are precisely always used. + +2021-06-16 Eric Botcazou + + * urealp.adb (Scale): Change first paramter to Uint and adjust. + (Equivalent_Decimal_Exponent): Pass U.Den directly to Scale. + * libgnat/s-exponr.adb (Negative): Rename to... + (Safe_Negative): ...this and change its lower bound. + (Exponr): Adjust to above renaming and deal with Integer'First. + +2021-06-16 Piotr Trojanek + + * sem_res.adb (Flag_Effectively_Volatile_Objects): Detect also + allocators within restricted contexts and not just entity names. + (Resolve_Actuals): Remove duplicated code for detecting + restricted contexts; it is now exclusively done in + Is_OK_Volatile_Context. + (Resolve_Entity_Name): Adapt to new parameter of + Is_OK_Volatile_Context. + * sem_util.ads, sem_util.adb (Is_OK_Volatile_Context): Adapt to + handle contexts both inside and outside of subprogram call + actual parameters. + (Within_Subprogram_Call): Remove; now handled by + Is_OK_Volatile_Context itself and its parameter. + +2021-06-16 Piotr Trojanek + + * sinput.adb (Sloc_Range): Refactor several repeated calls to + Sloc and two comparisons with No_Location. + +2021-06-16 Piotr Trojanek + + * checks.adb (Apply_Scalar_Range_Check): Fix handling of check depending + on the parameter passing mechanism. Grammar adjustment ("has" + => "have"). + (Parameter_Passing_Mechanism_Specified): Add a hyphen in a comment. + +2021-06-16 Piotr Trojanek + + * exp_ch3.adb (Build_Slice_Assignment): Remove unused + initialization. + +2021-06-16 Piotr Trojanek + + * restrict.adb, sem_attr.adb, types.ads: Fix typos in + "occuring"; refill comment as necessary. + +2021-06-16 Piotr Trojanek + + * sem_util.ads (Is_Actual_Parameter): Update comment. + * sem_util.adb (Is_Actual_Parameter): Also detect entry parameters. + +2021-06-16 Arnaud Charlet + + * rtsfind.ads, libgnarl/s-taskin.ads, exp_ch3.adb, exp_ch4.adb, + exp_ch6.adb, exp_ch9.adb, sem_ch6.adb: Move master related + entities to the expander directly. + +2021-06-16 Piotr Trojanek + + * sem_res.adb (Is_Assignment_Or_Object_Expression): Whitespace + cleanup. + (Is_Attribute_Expression): Prevent AST climbing from going to + the root of the compilation unit. + +2021-06-16 Steve Baird + + * doc/gnat_rm/implementation_advice.rst: Add a section for RM + A.18 . + * gnat_rm.texi: Regenerate. + +2021-06-16 Justin Squirek + + * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Add + check for the mixing of entries. + +2021-06-16 Justin Squirek + + * sem_ch13.adb (Make_Aitem_Pragma): Check for static expressions + in Priority aspect arguments for restriction Static_Priorities. + +2021-06-16 Justin Squirek + + * sem_util.adb (Accessibility_Level): Take into account + renamings of loop parameters. + +2021-06-16 Matthieu Eyraud + + * par_sco.adb (Set_Statement_Entry): Change sloc for dominance + marker. + (Traverse_One): Fix typo. + (Output_Header): Fix comment. + +2021-06-16 Richard Kenner + + * exp_unst.adb (Register_Subprogram): Don't look for aliases for + subprograms that are generic. Reorder tests for efficiency. + +2021-06-16 Eric Botcazou + + * sem_util.adb (Incomplete_Or_Partial_View): Retrieve the scope of + the parameter and use it to find its incomplete view, if any. + +2021-06-16 Eric Botcazou + + * freeze.adb (Check_No_Parts_Violations): Return earlier if the + type is elementary or does not come from source. + +2021-06-16 Bob Duff + + * ghost.adb: Add another special case where full analysis is + needed. This bug is due to quirks in the way + Mark_And_Set_Ghost_Assignment works (it happens very early, + before name resolution is done). + +2021-06-16 Eric Botcazou + + * sem_util.adb (Current_Entity_In_Scope): Reimplement. + +2021-06-16 Piotr Trojanek + + * sem_ch8.adb (End_Scope): Remove extra parens. + +2021-06-16 Javier Miranda + + * exp_disp.adb (Build_Class_Wide_Check): Ensure that evaluation + of actuals is side effects free (since the check duplicates + actuals). + +2021-06-16 Ed Schonberg + + * sem_res.adb (Resolve_Raise_Expression): Apply Ada_2020 rules + concerning the need for parentheses around Raise_Expressions in + various contexts. + +2021-06-16 Piotr Trojanek + + * sem_ch13.adb (Validate_Unchecked_Conversion): Move detection + of generic types before switching to their private views; fix + style in using AND THEN. + +2021-06-16 Arnaud Charlet + + * sem_ch3.adb (Analyze_Component_Declaration): Do not special + case raise expressions. + +2021-06-16 Sergey Rybin + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: + Instead of referring to the formatting of the Ada examples in + Ada RM add use the list of checks that are actually performed. + * gnat_ugn.texi: Regenerate. + +2021-06-16 Eric Botcazou + + * initialize.c: Do not include vxWorks.h and fcntl.h from here. + (__gnat_initialize) [__MINGW32__]: Remove #ifdef and attribute + (__gnat_initialize) [init_float]: Delete. + (__gnat_initialize) [VxWorks]: Likewise. + (__gnat_initialize) [PA-RISC HP-UX 10]: Likewise. + * runtime.h: Add comment about vxWorks.h include. + +2021-06-16 Eric Botcazou + + * libgnat/s-except.ads (ZCX_By_Default): Delete. + (Require_Body): Likewise. + * libgnat/s-except.adb: Replace body with pragma No_Body. + +2021-06-15 Steve Baird + + * exp_util.adb (Kill_Dead_Code): Generalize the existing + handling of if statements to handle case statements similarly. + +2021-06-15 Eric Botcazou + + * raise.h (_gnat_builtin_longjmp): Delete. + (set_gnat_exit_status): Likewise. + +2021-06-15 Piotr Trojanek + + * exp_util.adb (Possible_Side_Effect_In_SPARK): Handle component + declaration just like full type and subtype declarations. + +2021-06-15 Yannick Moy + + * errout.adb (First_And_Last_Node): Also apply to arbitrary late + declarations, not only subprogram specs. + +2021-06-15 Bob Duff + + * sem_ch3.adb (Make_Class_Wide_Type): Make sure all the calls to + Reinit_Field_To_Zero are for the correct Ekinds. + +2021-06-15 Bob Duff + + * aspects.ads (No_Task_Parts): New aspect. + * snames.ads-tmpl: Add the aspect name. + * exp_ch6.adb (Might_Have_Tasks): Return False if this is a + class-wide type whose specific type has No_Task_Parts. + * freeze.adb (Check_No_Parts_Violations): This is an adaptation + of the procedure formerly known as + Check_No_Controlled_Parts_Violations, which now supports both + No_Controlled_Parts and No_Task_Parts. It takes a parameter + indicating which aspect is being checked. + (Freeze_Entity): Call Check_No_Parts_Violations for both + aspects. + * sem_ch13.adb (Analyze_Aspect_Specifications): The code for + Aspect_No_Controlled_Parts already works as is with + Aspect_No_Task_Parts. + * libgnat/a-iteint.ads: Add No_Task_Parts aspect to the two + iterator iterfaces. + * doc/gnat_rm/implementation_defined_aspects.rst: Add + documentation for the No_Task_Parts aspect. + * gnat_rm.texi: Regenerate. + +2021-06-15 Arnaud Charlet + + * exp_unst.adb (Unnest_Subprogram.Build_Table.Visit_Node): Fix + handling of scopes for subprogram calls. + +2021-06-15 Piotr Trojanek + + * sem_prag.adb: Fix typos in comments related to access types. + * sem_util.adb (Is_Access_Variable): Stronger condition. + +2021-06-15 Arnaud Charlet + + * Make-generated.in: Add rule to copy runtime files needed + during stage1. + * raise.c: Remove obsolete symbols used during bootstrap. + * gcc-interface/Make-lang.in: Do not use libgnat sources during + stage1. + (GNAT_ADA_OBJS, GNATBIND_OBJS): Split in two parts, the common + part and the part only used outside of stage1. + (ADA_GENERATED_FILES): Add runtime files needed during bootstrap + when recent APIs are needed. + (ada/b_gnatb.adb): Remove prerequisite. + * gcc-interface/system.ads: Remove obsolete entries. + +2021-06-15 Eric Botcazou + + * raise-gcc.c (__gnat_personality_seh0): Use PERSONALITY_FUNCTION. + +2021-06-15 Ed Schonberg + + * sem_util.adb (Is_Confirming): Separate the handling of + Implicit_Dereference, for which no pragma is generated but which + is already checked for legality in Sem_Ch13, including renamed + discriminants in a derived type. + (Is_Confirming, Same_Name): For expanded names, only check + matching of selector, because prefix may correspond to original + and derived types with different names and/or scopes. Semantic + checks on aspect expression have already verified its legality. + Add comments regarding possible gaps in RM description of the + feature. + +2021-06-15 Gary Dismukes + + * freeze.adb (Freeze_Subprogram): Don't propagate conventions + Intrinsic or Entry to anonymous access-to-subprogram types + associated with subprograms having those conventions. Update + related comment. + * sem_attr.adb (Resolve_Attribute, Attribute_*Access): Remove + special-case warning code for cases where a called subprogram + has convention Intrinsic as well as its formal's type (the + expected type for the Access attribute), since this case can no + longer occur. + +2021-06-15 Piotr Trojanek + + * exp_imgv.adb (Expand_User_Defined_Enumeration_Image): Fix + typos. + +2021-06-15 Bob Duff + + * einfo-utils.adb (Known_Component_Size, + Known_Static_Component_Size, Unknown_Component_Size): Use + Implementation_Base_Type instead of Base_Type. + +2021-06-15 Bob Duff + + * gen_il-gen-gen_entities.adb (E_Loop_Parameter): Add + Interface_Name field. + +2021-06-15 Bob Duff + + * sem_cat.adb (Check_Non_Static_Default_Expr): Allow nonstatic + expression in predefined unit with pragma Preelaborate. + +2021-06-15 Yannick Moy + + * doc/gnat_rm/intrinsic_subprograms.rst: More details on shift + operations for signed types. Also add the missing Import and + Convention on the example. + * gnat_rm.texi: Regenerate. + +2021-06-15 Eric Botcazou + + * raise-gcc.c: Include instead of in C++. + Include and unconditionally in C. + +2021-06-15 Piotr Trojanek + + * sem_util.ads (Find_Overlaid_Entity): Simplify comment for + spec. + * sem_util.adb (Find_Overlaid_Entity): Remove defensive code + from body. + +2021-06-15 Eric Botcazou + + * argv.c: Add include of for the runtime. + (gnat_argv): Change type to char ** and initialize to NULL. + (gnat_envp): Likewise. + * argv-lynxos178-raven-cert.c: Add include of . + (gnat_argv): Change type to char ** and initialize to NULL. + (gnat_envp): Likewise. + +2021-06-15 Bob Duff + + * gen_il-gen.adb (Setter_Needs_Parent): Add missing + Then_Actions. Fix self-contradictory comment. + * exp_util.adb (Insert_Actions): Minor comment improvments. + +2021-06-15 Arnaud Charlet + + * sem_eval.adb (Eval_Logical_Op, Test_Expression_Is_Foldable): + Add support for folding more "and"/"or" expressions. + * exp_util.adb (Side_Effect_Free): Fix handling of membership + tests. + +2021-06-15 Piotr Trojanek + + * sem_res.adb (Resolve_Actual): Replace repeated calls to + "Etype (F)" with references to "F_Typ", which keeps the results + of exactly that call. + +2021-06-15 Bob Duff + + * gen_il-gen.adb (To_Bit_Offset): Use 'Base to avoid overflow in + computations in Last_Bit when Offset = 'Last. + (Choose_Offset): Give a better error message when we run out of + fields. In particular, point out that + Gen_IL.Internals.Bit_Offset'Last needs to be increased. + +2021-06-15 Bob Duff + + * atree.ads, einfo-utils.ads, einfo-utils.adb, fe.h, gen_il.adb, + gen_il.ads, gen_il-gen-gen_entities.adb, + gen_il-gen-gen_nodes.adb, sem_ch12.adb, sem_ch3.adb, + sem_util.adb, sinfo-utils.ads, treepr.adb, types.ads: Clean up + ??? comments and other comments. + * atree.adb: Clean up ??? comments and other comments. + (Validate_Node): Fix bug: "Off_0 (N) < Off_L (N)" + should be "Off_0 (N) <= Off_L (N)". + * gen_il-gen.adb, gen_il-gen.ads: Clean up ??? + comments and other comments. Add support for getter-specific + and setter-specific preconditions. Detect the error of putting + a field in the wrong subrange. Misc cleanup. + (Node_Field vs. Entity_Field): Clean up Nmake. Improve + comments. + * gen_il-utils.ads: Misc cleanup. Move... + * gen_il-internals.ads: ... here. + * gen_il-utils.adb: Misc cleanup. Move... + * gen_il-internals.adb: ... here. + * gen_il-fields.ads: Move Was_Default_Init_Box_Association, + which was in the wrong subrange. Add comments. Misc cleanup. + * gen_il-types.ads: Add Named_Access_Kind. + * sinfo-cn.adb: Clean up ??? comments and other comments. + Remove redundant assertions. + * einfo.ads, sinfo.ads: Clean up ??? comments and other + comments. Remove all the comments indicating field offsets. + These are obsolete now that Gen_IL computes the offsets + automatically. + +2021-06-15 Arnaud Charlet + + * einfo.ads, errout.adb, errout.ads, exp_aggr.adb, exp_ch5.adb, + exp_ch6.adb, exp_ch8.adb, exp_ch9.adb, exp_imgv.adb, + exp_put_image.adb, fe.h, impunit.adb, impunit.ads, + libgnat/a-cobove.ads, libgnat/a-convec.ads, opt.ads, + par-ch12.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, + par-ch6.adb, par-prag.adb, par-util.adb, scans.ads, scng.adb, + sem_aggr.adb, sem_attr.adb, sem_ch10.adb, sem_ch12.adb, + sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb, + sem_ch8.adb, sem_elab.adb, sem_eval.adb, sem_prag.adb, + sem_res.adb, sem_type.adb, sem_util.adb, sem_util.ads, + sinfo.ads, snames.ads-tmpl, sprint.adb, switch-c.adb, usage.adb, + doc/gnat_ugn/building_executable_programs_with_gnat.rst, + doc/gnat_rm/implementation_defined_aspects.rst, + gcc-interface/trans.c: Update all references to Ada 2020 to Ada + 2022. Rename pragma Ada_2020 to Ada_2022. Update documentation + accordingly. + * gnat_ugn.texi, gnat_rm.texi: Regenerate. + +2021-06-15 Steve Baird + + * sem_util.adb (Gather_Components): Factor the test that was + already being used to govern emitting a pre-Ada_2020 error + message into an expression function, + OK_Scope_For_Discrim_Value_Error_Messages. Call that new + function in two places: the point where the same test was being + performed previously, and in governing emission of a newer + Ada_2020 error message. In both cases, the out-mode parameter + Gather_Components.Report_Errors is set to True even if no error + messages are generated within Gather_Components. + * sem_util.ads: Correct a comment. + +2021-06-15 Richard Kenner + + * sem_ch3.adb (Array_Type_Declaration, Build_Derived_Type): + Reinitialize Stored_Constraint when needed. + (Set_Modular_Size): Likewise. + * atree.adb: (Check_Vanishing_Fields): Add node id to debugging + information. + +2021-06-15 Bob Duff + + * sem_util.adb (Propagate_Invariant_Attributes): Call + Set_Has_Own_Invariants on the base type, because these are + Base_Type_Only. The problem is that the base type of a type is + indeed a base type when Set_Base_Type is called, but then the + type is mutated into a subtype in rare cases. + * atree.ads, atree.adb (Is_Entity): Export. Correct subtype of + parameter in body. + * gen_il-gen.adb: Improve getters so that "Pre => ..." can refer + to the value of the field. Put Warnings (Off) on some with + clauses that are not currently used, but might be used by such + Pre's. + +2021-06-15 Piotr Trojanek + + * sem_ch3.adb (Access_Type_Declaration): Add comments to explain + the ordering of Mutate_Kind and Set_Directly_Designated_Type; + remove temporary setting of Ekind to E_Access_Type for building + _master objects, since now the Ekind is already set to its final + value. Move repeated code into Setup_Access_Type routine and use + it so that Process_Subtype is executed before mutating the kind + of the type entity. + * gen_il-gen-gen_entities.adb (Gen_Entities): Remove + Directly_Designated_Type from E_Void, E_Private_Record, + E_Limited_Private_Type and Incomplete_Kind; now it only belongs + to Access_Kind entities. + * sem_util.adb: Minor reformatting. + +2021-06-03 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Add PAT + local constant and use it throughout. If it is set, use a ref-all + pointer type for the pointer-to-array field of the fat pointer type. + : Add PAT local constant and use it throughout. + +2021-05-26 Jakub Jelinek + + * init.c (__gnat_error_handler): Remove register keyword. + +2021-05-25 Martin Liska + + * doc/share/conf.py: Fix Sphinx 4.0.x error. + +2021-05-21 Piotr Trojanek + + * gcc-interface/trans.c (Raise_Error_to_gnu): Add an assertion. + +2021-05-21 Eric Botcazou + + * gcc-interface/utils.c (gnat_pushdecl): Fix typo in comment. + * gcc-interface/utils2.c (build_simple_component_ref): Build NULL_EXPR + if the offset of the field has overflowed. + (build_component_ref): Add gigi checking assertion that the reference + has been built and replace the discriminant check by a Program_Error. + +2021-05-21 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do + not pass default value in call to create_var_decl. + : Likewise. + : Both pass true for const_flag and false for + const_decl_allowed_p in call to create_var_decl. + Small tweaks in the generic record type case. + (elaborate_expression): Rename need_debug into need_for_debug and + adjust throughout. + (elaborate_expression_1): Likewise. Pass Needs_Debug_Info instead + of need_for_debug in call to create_var_decl. + (elaborate_expression_2): Likewise. + * gcc-interface/utils.c (maybe_pad_type): Pass false for + const_decl_allowed_p in call to create_var_decl. + +2021-05-21 Ghjuvan Lacambre + + * gcc-interface/decl.c (gnat_to_gnu_entity): Replace ? with ??. + (gnat_to_gnu_param): Likewise. + (gnat_to_gnu_subprog_type): Likewise. + (warn_on_field_placement): Likewise. + (intrin_arglists_compatible_p): Likewise. + * gcc-interface/trans.c (Pragma_to_gnu): Likewise. + (gnat_to_gnu): Likewise. + (validate_unchecked_conversion): Likewise. + * gcc-interface/utils.c (maybe_pad_type): Likewise. + +2021-05-21 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Process + the implementation type of a packed type implemented specially. + +2021-05-21 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Always translate + the Is_Pure flag into the "pure" attribute of GNU C. + +2021-05-21 Eric Botcazou + + * gcc-interface/trans.c (Call_to_gnu): Restrict previous change + to bitfields whose size is not equal to the type size. + (gnat_to_gnu): Likewise. + +2021-05-21 Eric Botcazou + + * gcc-interface/trans.c (Call_to_gnu): Minor tweaks. + (gnat_to_gnu_external): Likewise. + (Raise_Error_to_gnu): Return an empty statement list if there is a + condition and it is always false. + (gnat_to_gnu): Do not check for elaboration code a priori during the + translation but a posteriori instead. + +2021-05-21 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu) : + Put a SLOC on the assignment from the return value to the return + object in the copy-in/copy-out case. + +2021-05-21 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Replace + CEIL_DIV_EXPR with EXACT_DIV_EXPR. + * gcc-interface/misc.c (gnat_type_max_size): Likewise. + * gcc-interface/utils.c (maybe_pad_type): Likewise. + (finish_record_type): Likewise. And always compute the unit size. + +2021-05-14 Martin Liska + + * doc/Makefile: Add gnat-style target. + * doc/share/conf.py: Likewise. + * doc/gnat-style.rst: New file. + +2021-05-12 Bob Duff + + PR ada/100564 + * atree.adb (Change_Node): Do not call Zero_Slots on a Node_Id + when the Nkind has not yet been set; call the other Zero_Slots + that takes a range of slot offsets. Call the new Mutate_Kind + that takes an Old_Size, for the same reason -- the size cannot + be computed without the Nkind. + (Mutate_Nkind): New function that allows specifying the Old_Size. + (Size_In_Slots): Assert that the Nkind has proper (nonzero) value. + * atree.ads: Minor reformatting. + +2021-05-12 Martin Liska + + * doc/share/conf.py: Do not use binary mode. + Do not use u' literals as Python3 uses unicode by default. + +2021-05-11 Martin Liska + + * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): Use builtins + from COROUTINES. + (BUILT_IN_UNLIKELY): Likewise. + +2021-05-11 Eric Botcazou + + * gnatvsn.adb (Version_String): Rename to... + (C_Version_String): ...this. + (Gnat_Version_String): Adjust to above renaming. + * version.c : Fix formatting glitches. + +2021-05-10 Martin Liska + + PR bootstrap/100506 + * Make-generated.in: Replace version.c with ada/version.c. + * gcc-interface/Make-lang.in: Add version.o to GNAT1_C_OBJS and + GNATBIND_OBJS. + * gcc-interface/Makefile.in: Replace version.c with ada/version.c. + Add version.o to TOOLS_LIBS. + * gnatvsn.adb: Replace version_string with gnat_version_string. + * version.c: New file. + +2021-05-10 Eric Botcazou + + * einfo-utils.ads (Classification Attributes): Add pragma Inline. + (Synthesized Attribute Functions): Move pragma Inline around. + (Type Representation Attribute Predicates): Likewise. + (Field Initialization Routines): Likewise. + (Miscellaneous Subprogram): Likewise. + +2021-05-10 Eric Botcazou + + * atree.ads (Slot): Remove pragma Provide_Shift_Operators. + (Shift_Left): New intrinsic function. + (Shift_Right): Likewise. + * atree.adb (Get_1_Bit_Val): Use Natural instead of Integer. + (Get_2_Bit_Val): Likewise. + (Get_4_Bit_Val): Likewise. + (Get_8_Bit_Val): Likewise. + (Set_1_Bit_Val): Likewise. + (Set_2_Bit_Val): Likewise. + (Set_4_Bit_Val): Likewise. + (Set_8_Bit_Val): Likewise. + +2021-05-10 Eric Botcazou + + * atree.adb (Zero_Slots): Remove obsolete comment and add header. + +2021-05-10 Eric Botcazou + + * atree.h (Get_32_Bit_Field): Tidy up. + (Get_32_Bit_Field_With_Default): Likewise. + +2021-05-10 Eric Botcazou + + * Make-generated.in (do_gen_il): Replace with... + (ada/stamp-gen_il): ...this. Do not copy files into generated/. + +2021-05-10 Martin Liska + + * gcc-interface/utils.c (def_builtin_1): Use startswith + function instead of strncmp. + +2021-05-07 Piotr Trojanek + + * einfo-utils.adb (Is_Access_Object_Type): Use + Directly_Designated_Type. + (Is_Access_Subprogram_Type): Use Directly_Designated_Type. + (Set_Convention): Use plain Ekind. + * gen_il-gen-gen_entities.adb (Type_Kind): Use plain Ekind. + * sem_ch3.adb (Access_Type_Declaration): When seeing an illegal + completion with an access type don't attempt to decorate the + completion entity; previously the entity had its Ekind set to + E_General_Access_Type or E_Access_Type, but its Designated_Type + was empty, which caused a crash in freezing. (Actually, the + error recovery in the surrounding context is still incomplete, + e.g. we will crash when the illegal completion is an access to + an unknown identifier). + +2021-05-07 Bob Duff + + * par_sco.adb: Align with/use clauses. + (Traverse_Declarations_Or_Statements): Minor comment fix. + * aspects.adb, atree.adb, atree.ads, checks.adb, comperr.adb, + contracts.adb, cstand.adb, debug_a.adb, einfo-utils.adb, + errout.adb, eval_fat.adb, exp_aggr.adb, expander.adb, + exp_atag.adb, exp_attr.adb, exp_cg.adb, exp_ch11.adb, + exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, + exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, + exp_ch9.adb, exp_code.adb, exp_dbug.adb, exp_disp.adb, + exp_dist.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb, + exp_pakd.adb, exp_prag.adb, exp_put_image.adb, exp_sel.adb, + exp_smem.adb, exp_spark.adb, exp_strm.adb, exp_tss.adb, + exp_unst.adb, exp_util.adb, exp_util.ads, freeze.adb, + frontend.adb, ghost.adb, gnat1drv.adb, gnat_cuda.adb, + impunit.adb, inline.adb, itypes.adb, itypes.ads, layout.adb, + lib.adb, lib-load.adb, lib-writ.adb, lib-xref.adb, + lib-xref-spark_specific.adb, live.adb, nlists.adb, par.adb, + par-ch11.adb, par-ch3.adb, par-ch5.adb, par-ch6.adb, pprint.adb, + repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, scn.adb, + sem.adb, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_case.adb, + sem_cat.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, + sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, + sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, + sem_dim.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb, + sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_mech.adb, + sem_prag.adb, sem_res.adb, sem_scil.adb, sem_smem.adb, + sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb, + sinfo-cn.adb, sinfo-utils.ads, sinput.adb, sinput-l.adb, + sprint.adb, style.adb, styleg.adb, tbuild.adb, tbuild.ads, + treepr.adb, uname.adb: Align with/use clauses. + +2021-05-07 Bob Duff + + * atree.ads, atree.adb, gen_il-gen.ads: Fix comments and clean + up ??? marks. Rename Set_Ekind to be Mutate_Ekind. + * einfo.ads, sinfo.ads: Likewise. Change "definitive + definition" to "official definition", because the former sounds + redundant. Rename Set_Ekind to be Mutate_Ekind. + * checks.adb, contracts.adb, cstand.adb, exp_aggr.adb, + exp_attr.adb, exp_ch11.adb, exp_ch3.adb, exp_ch5.adb, + exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_disp.adb, + exp_dist.adb, exp_imgv.adb, exp_intr.adb, exp_prag.adb, + exp_unst.adb, exp_util.adb, gen_il-gen.adb, inline.adb, + lib-writ.adb, lib-xref-spark_specific.adb, sem_aggr.adb, + sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, + sem_ch3.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, + sem_ch9.adb, sem_dist.adb, sem_elab.adb, sem_prag.adb, + sem_util.adb: Rename Set_Ekind to be Mutate_Ekind. + +2021-05-07 Bob Duff + + * atree.adb: Move nnd-related code from here, and leave a + comment pointing to sinfo-utils.adb. + * sinfo-utils.ads, sinfo-utils.adb: Move nnd-related code to + here. + +2021-05-07 Piotr Trojanek + + * einfo.ads: Move Corresponding_Protected_Entry... + * sinfo.ads: ... here. + * exp_ch9.adb (Build_Entry_Body): Link procedure and entry + bodies. + * gen_il-fields.ads (Opt_Field_Enum): Add + Corresponding_Entry_Body field to nodes; remove + Corresponding_Protected_Entry field from entities. + * gen_il-gen-gen_entities.adb (Gen_Entities): Remove + Corresponding_Protected_Entry field from E_Void and + E_Subprogram_Body. + * gen_il-gen-gen_nodes.adb (Gen_Nodes): Add + Corresponding_Entry_Body field to N_Subprogram_Body. + * sem_ch6.adb (Analyze_Subprogram_Specification): Remove + manipulation of Ekind and Corresponding_Protected_Entry added as + part of the support for varsize-nodes. + +2021-05-07 Bob Duff + + * sem_ch3.adb (Process_Incomplete_Dependents): Reset + Private_Dependents field to zero before calling Set_Ekind. Also + move Set_Etype to after Set_Ekind, because it's always best to + set the Ekind as early as possible. + * atree.adb: Improve debugging facilities for vanishing fields. + +2021-05-07 Eric Botcazou + + * atree.ads (Slot): Change to modular type. + (Slot_1_Bit): Delete. + (Slot_2_Bit): Likewise. + (Slot_4_Bit): Likewise. + (Slot_8_Bit): Likewise. + (Slot_32_Bit): Likewise. + * atree.adb (Get_1_Bit_Val): Adjust to above change. + (Get_2_Bit_Val): Likewise. + (Get_4_Bit_Val): Likewise. + (Get_8_Bit_Val): Likewise. + (Get_32_Bit_Val): Likewise. + (Set_1_Bit_Val): Likewise. + (Set_2_Bit_Val): Likewise. + (Set_4_Bit_Val): Likewise. + (Set_8_Bit_Val): Likewise. + (Set_32_Bit_Val): Likewise. + (Print_Atree_Info): Likewise. + (Zero): Likewise. + * atree.h (Get_1_Bit_Field): Likewise. + (Get_2_Bit_Field): Likewise. + (Get_4_Bit_Field): Likewise. + (Get_8_Bit_Field): Likewise. + (Get_32_Bit_Field): Likewise. + (Get_32_Bit_Field_With_Default): Likewise. + * types.h (slot_1_bit): Delete. + (slot_2_bit): Likewise. + (slot_4_bit): Likewise. + (slot_8_bit): Likewise. + (slot_32_bit): Likewise. + (any_slot): Change to unsigned int. + (Slot_Size): New macro. + +2021-05-07 Eric Botcazou + + * gcc-interface/gigi.h (enum standard_datatype): Remove + ADT_exception_data_name_id and add ADT_not_handled_by_others_name_id. + (exception_data_name_id): Delete. + (not_handled_by_others_name_id): New macro. + * gcc-interface/decl.c (gnat_to_gnu_entity) : Remove old + kludge for exceptions. + : Likewise. + (gnat_to_gnu_field): Force character type on Not_Handled_By_Others. + * gcc-interface/misc.c (gnat_argv): Change type to char **. + (gnat_init_options): Adjust accordingly. + * gcc-interface/trans.c (gigi): Set not_handled_by_others_name_id + and use it to set not_handled_by_others_decl. + (Exception_Handler_to_gnu_fe_sjlj): Fix indentation. + +2021-05-07 Eric Botcazou + + * raise-gcc.c (__gnat_others_value): Remove const qualifier. + (__gnat_all_others_value): Likewise. + (__gnat_unhandled_others_value): Likewise. + (GNAT_OTHERS): Cast to Exception_Id instead of _Unwind_Ptr. + (GNAT_ALL_OTHERS): Likewise. + (GNAT_UNHANDLED_OTHERS): Likewise. + (Is_Handled_By_Others): Change parameter type to Exception_Id. + (Language_For): Likewise. + (Foreign_Data_For): Likewise. + (is_handled_by): Likewise. Adjust throughout, remove redundant + line and fix indentation. + * libgnat/a-exexpr.adb (Is_Handled_By_Others): Remove pragma and + useless qualification from parameter type. + (Foreign_Data_For): Likewise. + (Language_For): Likewise. + +2021-05-07 Eric Botcazou + + * libgnat/s-stalib.ads (Exception_Data): Mark components as aliased. + * stand.ads (Standard_Entity_Type): Enhance comments. + * cstand.adb (Make_Component): Rename into... + (Make_Aliased_Component): ...this; set Is_Aliased and Is_Independent + flags on the component. + (Create_Standard): Adjust the types of the component of the record + Standard_Exception_Type and mark them as aliased. + * exp_ch11.adb (Expand_N_Exception_Declaration): Use OK + conversion to Standard_Address for Full_Name component, except + in CodePeer_Mode (set it to 0). + * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Likewise. + * raise.h (struct Exception_Data): Change the type of Full_Name, + HTable_Ptr and Foreign_Data. + +2021-05-07 Eric Botcazou + + * atree.h (Slots_Ptr): Change pointed-to type to any_slot. + * fe.h (Get_RT_Exception_Name): Change type of parameter. + * namet.ads (Name_Entry): Mark non-boolean components as aliased, + reorder the boolean components and add an explicit Spare component. + * namet.adb (Name_Enter): Adjust aggregate accordingly. + (Name_Find): Likewise. + (Reinitialize): Likewise. + * namet.h (struct Name_Entry): Adjust accordingly. + (Names_Ptr): Use correct type. + (Name_Chars_Ptr): Likewise. + (Get_Name_String): Fix declaration and adjust to above changes. + * types.ads (RT_Exception_Code): Add pragma Convention C. + * types.h (Column_Number_Type): Fix original type. + (slot): Rename union type to... + (any_slot): ...this and adjust assertion accordingly. + (RT_Exception_Code): New enumeration type. + * uintp.ads (Uint_Entry): Mark components as aliased. + * uintp.h (Uints_Ptr): Use correct type. + (Udigits_Ptr): Likewise. + * gcc-interface/gigi.h (gigi): Adjust name and type of parameter. + * gcc-interface/cuintp.c (UI_To_gnu): Adjust references to Uints_Ptr + and Udigits_Ptr. + * gcc-interface/trans.c (Slots_Ptr): Adjust pointed-to type. + (gigi): Adjust type of parameter. + (build_raise_check): Add cast in call to Get_RT_Exception_Name. + +2021-05-07 Eric Botcazou + + * init.c (__gnat_raise_program_error): Fix parameter type. + (Raise_From_Signal_Handler): Likewise and mark as no-return. + * raise-gcc.c (__gnat_others_value): Fix type. + (__gnat_all_others_value): Likewise. + (__gnat_unhandled_others_value): Likewise. + * seh_init.c (Raise_From_Signal_Handler): Fix parameter type. + * libgnat/a-except.ads (Raise_From_Signal_Handler): Use convention C + and new symbol name, move declaration to... + (Raise_From_Controlled_Operation): Minor tweak. + * libgnat/a-except.adb (Raise_From_Signal_Handler): ...here. + * libgnat/a-exexpr.adb (bool): New C compatible boolean type. + (Is_Handled_By_Others): Use it as return type for the function. + +2021-05-07 Eric Botcazou + + * errout.ads (Set_Identifier_Casing): Add pragma Convention C. + * eval_fat.ads (Rounding_Mode): Likewise. + (Machine): Add WARNING comment line. + * exp_code.ads (Clobber_Get_Next): Add pragma Convention C. + * fe.h (Compiler_Abort): Fix return type. + (Set_Identifier_Casing): Change type of parameters. + (Clobber_Get_Next): Change return type. + * gcc-interface/trans.c (gnat_to_gnu) : Add cast. + +2021-05-07 Eric Botcazou + + * atree.h (Parent): Remove duplicate declaration. + (Get_1_Bit_Field): Also use INLINE specifier in the declaration, + fix formatting and use gcc_unreachable for the default case. + (Get_2_Bit_Field): Likewise. + (Get_4_Bit_Field): Likewise. + (Get_8_Bit_Field): Likewise. + (Get_32_Bit_Field): Likewise. + (Get_32_Bit_Field_With_Default): Likewise. + +2021-05-07 Bob Duff + + * atree.ads, atree.adb: Major rewrite to support variable-sized + node types. Add pragmas Suppress and Assertion_Policy. We now + have an extra level of indirection: Node_Offsets is a table + mapping Node_Ids to the offset of the start of each node in + Slots. Slots is a table containing one or more contiguous slots + for each node. Each slot is a 32-bit unchecked union that can + contain any mixture of 1, 2, 4, 8, and 32-bit fields that fits. + The old low-level getters and setters (e.g. Flag123) are + removed. + * gen_il-fields.ads, gen_il-gen-gen_entities.adb, + gen_il-gen-gen_nodes.adb, gen_il-gen.adb, gen_il-gen.ads, + gen_il-main.adb, gen_il-types.ads, gen_il-utils.adb, + gen_il-utils.ads, gen_il.adb, gen_il.ads: New gen_il program + that generates various Ada and C++ files. In particular, the + following files are generated by gen_il: einfo-entities.adb + einfo-entities.ads, gnatvsn.ads, nmake.adb, nmake.ads, + seinfo.ads, seinfo_tables.adb, seinfo_tables.ads, + sinfo-nodes.adb, sinfo-nodes.ads, einfo.h, and sinfo.h. + * sinfo-utils.adb, sinfo-utils.ads, einfo-utils.adb, + einfo-utils.ads: New files containing code that needs to refer + to Sinfo.Nodes and Einfo.Entities. This code is mostly moved + here from Sinfo and Einfo to break cycles. + * back_end.adb: Pass node_offsets_ptr and slots_ptr to gigi, + instead of nodes_ptr and flags_ptr. The Nodes and Flags tables + no longer exist. (Note that gigi never used the Flags table.) + * sinfo-cn.ads (Change_Identifier_To_Defining_Identifier, + Change_Character_Literal_To_Defining_Character_Literal, + Change_Operator_Symbol_To_Defining_Operator_Symbol): Turn N into + an IN formal. + * sinfo-cn.adb: Update. Add assertions, which can be removed at + some point. Rewrite to use higher-level facilities. Make sure + vanishing fields are zeroed out. Add with/use for new packages. + * sem_util.adb: Remove "Assert(False)" immediately followed by + "raise Program_Error". Use higher-level facilities such as + Walk_Sinfo_Fields instead of depending on low-level Set_FieldN + routines that no longer exist. Use Get_Comes_From_Source_Default + instead of Default_Node.Comes_From_Source (Default_Node no + longer exists). Use Set_Basic_Convention instead of + Basic_Set_Convention. Add with/use for new packages. + * sem_util.ads: The Convention field had getter Convention and + setter Basic_Set_Convention. Make that more uniform: there is + now a field called Basic_Convention, with Basic_Convention and + Set_Basic_Convention as getter/setter, and write Convention and + Set_Convention here. + * nlists.adb: Rewrite to use abstractions, rather then depending + on low-level implementation details of Atree. Necessary because + those details have changed. Add with/use for new packages. + * sem_ch12.adb: Use higher-level facilities such as + Walk_Sinfo_Fields instead of depending on low-level Set_FieldN + routines that no longer exist. Add with/use for new packages. + * exp_cg.adb, sem_ch10.adb, sem_ch4.adb, sem_eval.adb, + sem_prag.adb, sem_warn.adb: Change expanded names to refer to + the new packages for things that moved. Add with/use for new + packages. + * sem_ch3.adb: Likewise. Reinitialize vanishing fields. + * exp_disp.adb: Likewise. Remove failing assertion. + * sinfo.ads, einfo.ads: Remove code that is now generated into + Sinfo.Nodes and Einfo.Entities. + * sinfo.adb, einfo.adb: Replace bodies with "pragma No_Body;". + We should delete these at some point, but No_Body makes make + files easier. Some code is moved to Sinfo.Nodes, Einfo.Entities, + Sinfo.Utils, and Einfo.Utils. Some is no longer necessary. + * treepr.adb: Rewrite to use new tables. We no longer need + treeprs.ads. + * treepr.ads: Add comment. + * types.ads: Move types Component_Alignment_Kind and + Float_Rep_Kind here. + * atree.h: Major update to match atree.ads changes. Add slot + types, for use by getters/setters. + * types.h: Move types Component_Alignment_Kind and + Float_Rep_Kind here. + * fe.h: Rewrite to deal with code that has changed or moved from + Atree, Sinfo, Einfo. + * nlists.h: Move some code to fe.h. + * alloc.ads: Split Nodes_* constants into Node_Offsets and + Slots, because Atree has two separate tables. Increase values. + Remove Nodes_Release_Threshold. Improve comment. + * debug.adb, gnat1drv.adb: Remove obsolete gnatd.A and gnatd.N + switches. Add with/use for new packages. + * opt.ads: Minor comment fix. + * aspects.adb, checks.adb, comperr.adb, contracts.adb, + cstand.adb, debug_a.adb, errout.adb, eval_fat.adb, exp_aggr.adb, + exp_atag.adb, exp_attr.adb, exp_ch11.adb, exp_ch12.adb, + exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, + exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb, + exp_code.adb, exp_dbug.adb, exp_dist.adb, exp_fixd.adb, + exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb, + exp_put_image.adb, exp_sel.adb, exp_smem.adb, exp_spark.adb, + exp_strm.adb, exp_tss.adb, exp_unst.adb, exp_util.adb, + exp_util.ads, expander.adb, freeze.adb, frontend.adb, + get_targ.ads, ghost.adb, gnat_cuda.adb, impunit.adb, inline.adb, + itypes.adb, itypes.ads, layout.adb, lib.adb, lib-load.adb, + lib-writ.adb, lib-xref.adb, lib-xref.ads, + lib-xref-spark_specific.adb, live.adb, par.adb, par_sco.adb, + pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, + scn.adb, sem.adb, sem.ads, sem_aggr.adb, sem_attr.adb, + sem_aux.adb, sem_case.adb, sem_cat.adb, sem_ch11.adb, + sem_ch13.adb, sem_ch2.adb, sem_ch5.adb, sem_ch6.adb, + sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dim.adb, + sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_elim.adb, + sem_intr.adb, sem_mech.adb, sem_res.adb, sem_scil.adb, + sem_smem.adb, sem_type.adb, set_targ.ads, sinput.adb, + sinput-l.adb, sprint.adb, style.adb, styleg.adb, tbuild.adb, + tbuild.ads, uname.adb: Add with/use for new packages. + * libgnat/a-stoubu.adb, libgnat/a-stouut.adb: Simplify to ease + bootstrap. + * libgnat/a-stobfi.adb, libgnat/a-stoufi.adb (Create_File, + Create_New_File): Create file in binary format, to avoid + introducing unwanted text conversions on Windows. Simplify to + ease bootstrap. + * libgnat/a-stteou__bootstrap.ads: New. + * ceinfo.adb, csinfo.adb, nmake.adt, treeprs.adt, xeinfo.adb, + xnmake.adb, xsinfo.adb, xtreeprs.adb: Delete. + * Make-generated.in: Build and run the gen_il program to + generate files. The files are generated in the ada/gen_il + subdirectory, and then moved up to ada. We rely on gnatmake (as + opposed to make) to build the gen_il program efficiently (i.e. + don't do anything if the sources didn't change). + * gcc-interface/Makefile.in (ADAFLAGS): Add -gnatU. + (GNATMAKE_OBJS): Add new object files. + (GENERATED_FILES_FOR_TOOLS): New variable. + (../stamp-tools): Create a link for all + GENERATED_FILES_FOR_TOOLS. + * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add new object + files. Remove ada/treeprs.o. + (GNATBIND_OBJS): Add new object files. + (ada.mostlyclean): Remove ada/sdefault.adb and add + ada/stamp-gen_il. + (ada.maintainer-clean): Remove ada/treeprs.ads. + (update-sources): Remove obsolete target. + (ada_generated_files): Rename to... + (ADA_GENERATED_FILES): ... this. Add new source files. Add + comment. + * gcc-interface/trans.c: Remove obsolete Nodes_Ptr and + Flags_ptr. Add Node_Offsets_Ptr and Slots_Ptr, which point to + the corresponding tables in Atree. + * gcc-interface/gigi.h (gigi): New parameters for initializing + Node_Offsets_Ptr and Slots_Ptr. + * gcc-interface/decl.c: Numeric_Kind, + Discrete_Or_Fixed_Point_Kind, and Record_Kind were + nonhierarchical, and were therefore removed for simplicity. + Replace uses with calls to Is_In_... functions. + +2021-05-07 Ed Schonberg + + * exp_ch4.adb (Unconstrained_UU_In_Component_Declaration): A + component declaration whose subtype indication is an entity name + without an explicit constraint is an Unchecked_Union type only + if the entity has an unconstrained nominal subtype (record type + or private type) whose parent type is an Unchecked_Union. + +2021-05-07 Piotr Trojanek + + * sem_res.adb (Flag_Object): Ignore prefixes of attribute + Address. + +2021-05-07 Yannick Moy + + * opt.ads: Update comment for Warn_On_Suspicious_Modulus_Value. + * sem_res.adb (Resolve_Unary_Op): Generate warning. + * usage.adb: Refine doc for -gnatw.m/M switch. + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: + Update doc on -gnatw.m switch. + * gnat_ugn.texi: Regenerate. + +2021-05-07 Piotr Trojanek + + * sem_res.adb (Flag_Object): Replace chained IF with a CASE; + remove repeated calls to Entity; do not traverse into + N_Identifier and N_Expanded_Name, because only need to examine + their Entity field anyway. + +2021-05-07 Piotr Trojanek + + * sem_ch4.adb (Analyze_Call): Remove call to End_Interp_List. + (Process_Overloaded_Indexed_Component): Remove call to + End_Interp_List. + * sem_util.adb (Insert_Explicit_Dereference): Remove call to + End_Interp_List. + * sem_type.ads (End_Interp_List): Remove. + * sem_type.adb (Add_Entry): The guard against duplicate entries + is now checked before other conditions, so that EXIT statements + do not bypass this guard. + (End_Interp_List): Remove. + +2021-05-07 Ed Schonberg + + * exp_util.adb (Remove_Init_Call): If a simple initialization + call is present, and the next statement is an initialization + block (that contains a call to a Deep_ Initialize routine), + remove the block as well, and insert the first initialization + call in it, in case it is needed for later relocation. + +2021-05-07 Gary Dismukes + + * errout.ads (Size_Too_Small_Message): Remove low-value ??? + comment. + * exp_util.ads: Remove ??? in part of overall package comments + and restructure comment to clarify. + (Duplicate_Subexpr): Remove ??? comment that seems unnecessary. + * sem_ch3.ads (Analyze_Declarations): Remove two parenthesized + ??? comments and add more description of the procedure's + actions. + (Get_Discriminant_Value): Remove ??? comment requesting more + documentation, expanding description of the function's actions. + * sem_disp.ads (Check_Operation_From_Incomplete_Type): Add more + semantic description of the procedure and remove ??? comment + requesting such. + (Propagate_Tag): Refine comment to indicate meaning of formal + parameters and generally improve the spec comment (and remove + ??? comment asking about the parameters). + +2021-05-07 Arnaud Charlet + + * sem_eval.adb (Fold_Shift): Fix computation of Shift_Left + resulting in negative signed values. + +2021-05-07 Eric Botcazou + + * sem_util.ads (Defining_Entity): Remove Empty_On_Errors parameter. + (Defining_Entity_Or_Empty): New function. + * sem_util.adb (Defining_Entity): Move bulk of implementation to... + (Defining_Entity_Or_Empty): ...here. Do not raise Program_Error. + (Innermost_Master_Scope_Depth): Call Defining_Entity_Or_Empty. + +2021-05-07 Justin Squirek + + * aspects.ads: Add entries to register + Aspect_No_Controlled_Parts. + * freeze.adb (Check_No_Controlled_Parts_Violations): Added to + check requirements of aspect No_Controlled_Parts after a type + has been frozen. + (Freeze_Entity): Add call to + Check_No_Controlled_Parts_Violations. + (Find_Aspect_No_Controlled_Parts): Created to obtain the aspect + specification for No_Controlled_Parts on a given type when + present. + (Find_Aspect_No_Controlled_Parts_Value): Protect against invalid + value. + (Has_Aspect_No_Controlled_Parts): Created as a prediate function + to check if No_Controlled_Parts has been specified on a type for + Get_Anacestor_Types_With_Specification. + (Get_Aspect_No_Controlled_Parts_Value): Created to obtain the + value of the aspect No_Controlled_Parts when specified on a + given type. + (Get_Generic_Formal_Types_In_Hierarchy): Created to collect + formal types in a given type's hierarchy. + (Get_Types_With_Aspect_In_Hierarchy): Created to collect types + in a given type's hierarchy with No_Controlled_Parts specified. + * sem_ch13.adb (Analyze_One_Aspect): Add processing for + No_Controlled_Parts, and fix error in check for allowed pragmas + for formal types. + (Check_Expr_Is_OK_Static_Expression): Created to enforce + checking of static expressions in the same vein as + Analyze_Pragma.Check_Expr_OK_Static_Expression. + * sem_util.adb (Collect_Types_In_Hierarchy): Created to collect + types in a given type's hierarchy that match a given predicate + function. + * sem_util.ads: Fix typo. + * snames.ads-tmpl: Add entry for No_Controlled_Parts. + +2021-05-07 Eric Botcazou + + * libgnat/s-fatgen.adb (Scaling): Raise Constraint_Error in the + overflow case when T'Machine_Overflows is True. + +2021-05-07 Bob Duff + + * libgnat/a-conhel.adb (TC_Check): Move the Assert into the + 'if'. + +2021-05-07 Frederic Konrad + + * sigtramp-vxworks-target.inc: Use a local label for the TOC. + +2021-05-07 Claire Dross + + * exp_ch4.adb (Has_Inferable_Discriminants): Moved to Sem_Util. + * sem_util.ads, sem_util.adb (Has_Inferable_Discriminants): + Moved from Exp_Ch4. + +2021-05-07 Ed Schonberg + + * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): + Add guard to verify that the enclosing pragma is a precondition. + +2021-05-06 Javier Miranda + + * exp_disp.adb (Build_Class_Wide_Check): Extending the + functionality of this routine to climb to the ancestors + searching for the enclosing overridden dispatching primitive + that has a class-wide precondition to generate the check. + +2021-05-06 Piotr Trojanek + + * sem_ch3.adb (Constraint_Index): Remove redundant problematic + analysis. + +2021-05-06 Arnaud Charlet + + * exp_unst.adb (Note_Uplevel_Bound): Exclude + E_Enumeration_Literal. + +2021-05-06 Arnaud Charlet + + * exp_ch4.adb (Expand_N_If_Expression): + Apply_Arithmetic_Overflow_Check will not deal with + Then/Else_Actions so skip minimizing overflow checks if any + actions are present. + +2021-05-06 Boris Yakobowski + + * gnat1drv.adb (Adjust_Global_Switches): Simplify logic. + +2021-05-06 Arnaud Charlet + + * libgnat/i-c.ads (bool): New type. + * libgnat/i-cexten.ads, libgnat/i-cexten__128.ads (bool): Now + a subtype of Interfaces.C.bool. + * libgnarl/s-interr__vxworks.adb (Interrupt_Manager): Qualify + False. + * libgnarl/s-interr.adb, libgnarl/s-interr__hwint.adb, + libgnarl/s-tasini.adb, libgnarl/s-tasren.adb, + libgnarl/s-tassta.adb, libgnarl/s-tpobmu.adb, + libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb: Replace + Assert (False) by Assert (Standard.False). + +2021-05-06 Ghjuvan Lacambre + + * make.adb (Compute_Executable): Document parameter. + +2021-05-06 Eric Botcazou + + * libgnat/s-fatgen.adb (Scaling): Use single handling of + underflow. Add pragma Annotate. + +2021-05-06 Ghjuvan Lacambre + + * sem_eval.adb (Is_OK_Static_Subtype): Call Is_Static_Subtype, + remove redundant checks. + +2021-05-06 Piotr Trojanek + + * sem_res.adb (First_Last_Ref): Simplify "if [condition] then + return True" in "return [condition]". + (Resolve_Range): Remove calls appearing in IF condition from the + THEN statements. + +2021-05-06 Piotr Trojanek + + * sem_case.adb (Missing_Choice): Fix typo in comment. + (Lit_Of): Simplify with Make_Character_Literal. + (Check_Choices): Remove extra spaces in parameter + specifications. + * sem_case.ads: Same reformatting. + +2021-05-06 Ed Schonberg + + * exp_aggr.adb (Expand_Array_Aggregate): If the expression in an + Others_Clause has not been analyzed because previous analysis of + the enclosing aggregate showed the clause to be ineffective i.e. + cover a null range, analyze it now to detect a possible type + illegality. + +2021-05-06 Eric Botcazou + + * libgnat/s-fatgen.adb (Scaling): Fix off-by-one bug for underflow. + +2021-05-06 Arnaud Charlet + + * sem_ch6.adb (Is_Inline_Pragma): Protect against N not being a + list member in both branches. + +2021-05-06 Piotr Trojanek + + * libgnat/a-cofove.adb (Insert_Space): Remove hardcoded pragma + Warnings. + +2021-05-06 Piotr Trojanek + + * sem_ch4.adb (Analyze_Selected_Component): Remove explicit call + to Set_Raises_Constraint_Error on statically missing component. + * sem_eval.adb (Eval_Arithmetic_Op): Likewise for static + divisions by integer and real zeros. + * sem_util.adb (Apply_Compile_Time_Constraint_Error): Call + Set_Raises_Constraint_Error before exiting early in GNATprove + mode. + +2021-05-06 Justin Squirek + + * checks.adb (Make_Discriminant_Constraint_Check): Add check for + null when the type being converted is an access type. + +2021-05-06 Arnaud Charlet + + * exp_pakd.adb (Expand_Packed_Eq): Fix handling of PATs. + +2021-05-06 Piotr Trojanek + + * osint.adb (Read_Library_Info_From_Full): Cleanup unused + initial value. + +2021-05-06 Eric Botcazou + + * doc/gnat_rm/implementation_defined_characteristics.rst (3.5.7): + Mention the IEEE standard explicitly. Use current format names. + Document assumed rounding mode and new features of I/O support. + * gnat_rm.texi: Regenerate. + +2021-05-06 Eric Botcazou + + * init.c (__gnat_init_float): Use full version on Linux too. + +2021-05-06 Eric Botcazou + + * libgnat/s-fatgen.adb (Valid): Do a bit comparison with 0.0 + when denormalized numbers are not supported. + +2021-05-06 Piotr Trojanek + + * sem_attr.adb (Check_Enum_Image): Reword comment; add + Check_Enumeration_Maps parameter. Now this routine combines + both referencing enumeration literals and checking restriction + No_Enumeration_Maps, if required. + (Analyze_Attribute): Remove duplicated code and instead call + Check_Enum_Image. + +2021-05-06 Piotr Trojanek + + * sem_attr.adb (Analyze_Image_Attribute): Remove redundant + condition; add a missing header box. + +2021-05-06 Gary Dismukes + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add + mention of underscore and fix grammar error in doc for -gnatd. + * gnat_ugn.texi: Regenerate. + +2021-05-06 Eric Botcazou + + * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-exponr, s-exnflt + and s-exnlfl. + * exp_ch4.adb (Expand_N_Op_Expon): Use RE_Exn_Float for Short_Float. + * rtsfind.ads (RTU_Id): Add System_Exn_Flt and System_Exn_LFlt. + (RE_Id): Adjust entries for RE_Exn_Float and RE_Exn_Long_Float. + (RE_Unit_Table): Likewise. + * libgnat/s-exnflt.ads: New file. + * libgnat/s-exnlfl.ads: Likewise. + * libgnat/s-exnllf.ads: Change to mere instantiation. + * libgnat/s-exnllf.adb: Move implementation to... + * libgnat/s-exponr.ads: New generic unit. + * libgnat/s-exponr.adb: ...here and also make it generic. + (Expon): Do the computation in double precision internally. + +2021-05-06 Piotr Trojanek + + * lib-writ.adb, osint.adb, osint.ads: Cleanup. + +2021-05-06 Piotr Trojanek + + * exp_ch3.adb (Expand_Freeze_Array_Type): Remove excessive + condition. + (Expand_N_Object_Declaration): Likewise. + (Build_Equivalent_Aggregate): Likewise. + (Initialization_Warning): Likewise; change another excessive + condition into assertion. + * freeze.adb (Freeze_Entity): Remove excessive condition. + +2021-05-06 Ed Schonberg + + * sem_res.adb (Resolve_If_Expression): If the context of the + expression is an indexed_component, resolve the expression and + its dependent_expressions with the base type of the index, to + ensure that an index check is generated when resolving the + enclosing indexxed_component, and avoid an improper use of + discriminants out of scope, when the index type is + discriminant-dependent. + +2021-05-06 Arnaud Charlet + + * einfo.ads, exp_prag.adb, exp_util.adb: Fix typos. + +2021-05-05 Piotr Trojanek + + * exp_attr.adb (Expand_N_Attribute_Reference): Fix expansion of + attributes Input and Output for unchecked unions. + * sem_case.ads: Fix typo "disriminant" and refill comment. + +2021-05-05 Piotr Trojanek + + * exp_attr.adb, exp_ch9.adb, sem_ch3.adb: Reuse + Has_Defaulted_Discriminants. + * sem_ch4.adb (Analyze_Allocator): Reuse + Has_Defaulted_Discriminants (after reordering conjuncts); remove + redundant IF statement, whose condition is implied by + Has_Defaulted_Discriminants. + * sem_util.adb (Has_Defaulted_Discriminants): Has_Discriminants + implies that the First_Discriminant is present. + (Is_Fully_Initialized_Type): Reuse Has_Defaulted_Discriminants. + +2021-05-05 Justin Squirek + + * exp_ch6.adb (Expand_Call_Helper): Add condition to check for + expanded actuals and remove dead code. + +2021-05-05 Piotr Trojanek + + * exp_ch4.adb (Has_Unconstrained_UU_Component): Rewrite to + follow the Ada RM grammar. + +2021-05-05 Piotr Trojanek + + * exp_ch4.adb (User_Defined_Primitive_Equality_Op): Refine type + of a local variable. + * exp_dbug.adb (Scope_Contains): Refine all types from Node_Id + to Entity_Id; rename parameters to match those of the + Scope_Within routine (which is similar but not the same); also, + simplify an OR ELSE into a membership test. + +2021-05-05 Piotr Trojanek + + * exp_ch4.adb (Component_Is_Unconstrained_UU): Detect both + qualified and unqualified names of unchecked union components. + +2021-05-05 Piotr Trojanek + + * exp_ch4.adb (Variant_Is_Unconstrained_UU): Remove redundant + check for empty list. + * exp_disp.adb (Find_Entry_Index): Simplify by removing + redundant check and counting from zero; fix type of a local + variable. + * sem_ch12.adb (Save_Global_Descendant): Remove an unnecessary + special-case for empty lists. + +2021-05-05 Piotr Trojanek + + * exp_ch4.adb (Apply_Accessibility_Check): Skip a statically + true condition in expanded raise statement. + +2021-05-05 Bob Duff + + * libgnat/s-os_lib.adb (Missed_Drive_Letter): Simplify the code. + +2021-05-05 Ed Schonberg + + * sem_ch5.adb (Analyze_Assignment): Do not emit the warning that + a previous value of the target object is useless if the + right-hand side of the assignment includes target names. + +2021-05-05 Eric Botcazou + + * exp_imgv.adb: Add with/use clauses for Targparm. + (Build_Enumeration_Image_Tables): Set type of Threshold to Nat and + initialize it to Nat'Last if the type is local and the target does + not support descriptors. Adjust Threshold_For_Size similarly. + (Expand_Value_Attribute): Minor tweaks. + +2021-05-05 Ghjuvan Lacambre + + * exp_ch7.adb (Expand_N_Package_Body): Add CUDA init call. + * sem_ch7.adb (Analyze_Package_Body_Helper): Remove CUDA init + call. + +2021-05-05 Ghjuvan Lacambre + + * par-ch5.adb (P_Condition): Check if expression is declare + expression. + +2021-05-05 Piotr Trojanek + + * make.adb (Make): Use GNAT.Ctrl_C.Install_Handler instead of a + custom imported procedure. + +2021-05-05 Eric Botcazou + + * exp_imgv.adb (Is_User_Defined_Enumeration_Type): Delete. + (Expand_Image_Attribute): Move inline expansion into normal flow of + control, move down declarations and remove superfluous processing. + +2021-05-05 Piotr Trojanek + + * libgnat/g-alleve.adb (Bit_Operation): Now a not-null type. + * libgnat/g-sechas.adb (Fill_Buffer_Access): Likewise. + * libgnat/s-dwalin.adb (Callback): Likewise. + +2021-05-05 Ghjuvan Lacambre + + * exp_util.adb (Is_Possibly_Unaligned_Object): Remove commented + code. + +2021-05-05 Ed Schonberg + + * sem_ch3.adb (Find_Type_Of_Object): When In_Spec_Expression is + set and the object declaration generates a subtype indication, + build the corresponding subtype declaration and place it in tree + without the use of Insert_Actions, which is disabled in this + context. + +2021-05-05 Eric Botcazou + + * debug.adb (d_x): Document extended usage. + * exp_imgv.adb (Expand_Standard_Boolean_Image): New procedure. + (Expand_Image_Attribute): Call it to expand in line the attribute + for standard boolean by default. + +2021-05-05 Eric Botcazou + + * debug.adb (d_x): Document new usage. + * exp_imgv.adb (Expand_User_Defined_Enumeration_Image): Add Typ + parameter and use it throughout the processing. + (Expand_Image_Attribute): Retrieve the underlying type of the + prefix and use the inline expansion for user-defined enumeration + types with a literal string by default. + +2021-05-05 Eric Botcazou + + * libgnat/s-dorepr.adb (Split): Declare a per-size temporary. + Add pragma Annotate. + +2021-05-05 Piotr Trojanek + + * exp_ch4.adb, sem_ch13.adb, sem_eval.adb, sem_res.adb: Remove + redundant calls to UI_From_Int. + +2021-05-05 Eric Botcazou + + * exp_imgv.ads (Build_Enumeration_Image_Tables): Adjust comment. + * exp_imgv.adb (Build_Enumeration_Image_Tables): Add the + declaration nodes of the 4 tables to the declaration list of the + function body. + +2021-05-05 Piotr Trojanek + + * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-imagen, s-imen16, + s-imen32, s-imenu8, s-pehage, s-valuen, s-vaen16, s-vaen32 and + s-vaenu8. Remove s-imenne, s-imgenu and s-valenu. + * debug.adb (d_h): Document new usage. + * einfo.ads (Lit_Hash): New attribute for enumeration types. + (Set_Lit_Hash): Declare. + * einfo.adb (Lit_Hash): New function. + (Set_Lit_Hash): New procedure. + (Write_Field21_Name): Print Lit_Hash for Enumeration_Kind. + * exp_imgv.ads (Build_Enumeration_Image_Tables): Fix description + and document the hash function and its tables. + * exp_imgv.adb: Add with/use clauses for Debug. Add with clause + for System.Perfect_Hash_Generators. + (Append_Table_To): New helper routine. + (Build_Enumeration_Image_Tables): Call it to build the tables. + In the main unit, register the literals with the hash generator. + If they are sufficiently many and -gnatd_h is not passed, generate + a perfect hash function and its tables; otherwise, generate a dummy + hash function. For the other units, generate only the declaration. + In all cases, set Lit_Hash to the entity of the function, if any. + (Expand_Value_Attribute): Pass the 'Unrestricted_Access of Lit_Hash, + if any, as third argument to the Value_Enumeration_NN function. + * gnat1drv.adb (Adjust_Global_Switches): force simpler implementation + of 'Value in CodePeer_Mode. + * lib.ads (Synchronize_Serial_Number): Add SN parameter. + * lib.adb (Synchronize_Serial_Number): Assert that it is larger than + the serial number of the current unit and set the latter to it only + in this case. + * rtsfind.ads (RTU_Id): Add System_Img_Enum_8, System_Img_Enum_16, + System_Img_Enum_32, System_Val_Enum_8, System_Val_Enum_16 and + System_Val_Enum_32. Remove System_Img_Enum, System_Img_Enum_New + and System_Val_Enum. + * sem_attr.adb (Analyze_Access_Attribute): Do not flag a compiler + generated Unrestricted_Access attribute as illegal in a declare + expression. + (RE_Unit_Table): Adjust to above changes. + * libgnat/g-heasor.ads: Add pragma Compiler_Unit_Warning. + * libgnat/g-table.ads: Likewise. + * libgnat/g-pehage.ads: Add with clause and local renaming for + System.Perfect_Hash_Generators. + (Optimization): Turn into derived type. + (Verbose): Turn into renaming. + (Too_Many_Tries): Likewise. + (Table_Name): Move to System.Perfect_Hash_Generators. + (Define): Likewise. + (Value): Likewise. + * libgnat/g-pehage.adb: Remove with clause for Ada.Directories, + GNAT.Heap_Sort_G and GNAT.Table. Move bulk of implementation + to System.Perfect_Hash_Generators, only keep the output part. + * libgnat/s-imagen.ads: New generic unit. + * libgnat/s-imagen.adb: New body. + * libgnat/s-imen16.ads: New unit. + * libgnat/s-imen32.ads: Likewise. + * libgnat/s-imenu8.ads: Likewise. + * libgnat/s-imenne.ads: Adjust description. + * libgnat/s-imgenu.ads: Delete. + * libgnat/s-imgenu.adb: Likewise. + * libgnat/s-pehage.ads: New unit from GNAT.Perfect_Hash_Generators. + * libgnat/s-pehage.adb: New body from GNAT.Perfect_Hash_Generators. + * libgnat/s-valuen.ads: New generic unit. + * libgnat/s-valuen.adb: New body. + * libgnat/s-vaen16.ads: New unit. + * libgnat/s-vaen32.ads: Likewise. + * libgnat/s-vaenu8.ads: Likewise. + * libgnat/s-valenu.ads: Delete. + * libgnat/s-valenu.adb: Likewise. + * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-pehage.o. + (GNATBIND_OBJS): Remove s-imgenu.o. + +2021-05-05 Piotr Trojanek + + * sem_util.ads (Apply_Compile_Time_Constraint_Error): Remove + parameter Rep from the function spec and "and if the flag Rep is + set" from the comment. + * sem_util.adb (Apply_Compile_Time_Constraint_Error): Remove + parameter Rep. + +2021-05-05 Ed Schonberg + + * sem_aggr.adb (Resolve_Indexed_Aggregate): For indexed + aggregates with component associations verify that if there is + more than one component association then all the choices are + static, that the set of choices define a continuous sequence of + values, and that if loop specfications appear, they do not + include iterator filters or key expressions. + +2021-05-05 Eric Botcazou + + * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-dourea, s-imager, + s-imgflt, s-imglfl and s-imgllf. + (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorks]: Use s-dorepr__fma.adb. + (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorksAE]: Likewise. + (LIBGNAT_TARGET_PAIRS) [Aarch64/VxWorks]: Likewise. + (LIBGNAT_TARGET_PAIRS) [Aarch64/QNX]: Likewise. + (LIBGNAT_TARGET_PAIRS) [Aarch64/FreeBSD]: Likewise. + (LIBGNAT_TARGET_PAIRS) [PowerPC/Linux]: Likewise. + (LIBGNAT_TARGET_PAIRS) [Aarch64/Linux]: Likewise. + (LIBGNAT_TARGET_PAIRS) [IA-64/Linux]: Likewise. + (LIBGNAT_TARGET_PAIRS) [IA-64/HP-UX]: Likewise. + (LIBGNAT_TARGET_PAIRS) [RISC-V/Linux]: Likewise. + (LIBGNAT_TARGET_PAIRS) [PowerPC/Darwin]: Likewise. + * exp_attr.adb (Expand_N_Attribute_Reference) [Attribute_Fore]: Use + Fixed suffix and Long_Float type. + * exp_imgv.adb (Expand_Image_Attribute): For floating-point types, + use the routine of the corresponding root type. For ordinary fixed + point types, use Fixed suffix and Long_Float type. + (Expand_Value_Attribute): Revert latest change for Long_Long_Float. + * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove libgnat units + g-hesora.o and s-imgenu.o, add g-heasor.o, g-table.o and s-pehage.o. + (GNATBIND_OBJS): Remove libgnat unit s-imgenu.o. + * rtsfind.ads (RTU_Id): Add System_Img_Flt, System_Img_LFlt and + System_Img_LLF. Remove System_Img_Real. + (RE_Id): Rename RE_Fore_Real to RE_Fore_Fixed. Add RE_Image_Float, + RE_Image_Long_Float and RE_Image_Long_Long_Float. Rename + RE_Image_Ordinary_Fixed_Point to RE_Image_Fixed. + (RE_Unit_Table): Adjust to above changes. + * libgnat/a-nbnbre.adb (Fixed_Conversions): Use Long_Float instead + of Long_Long_Float. + * libgnat/a-textio.ads (Field): Remove obsolete comment. + * libgnat/a-ticoau.ads (Aux): Adjust ancestor package. + * libgnat/a-ticoau.adb: Remove with/use clause for System.Img_Real. + (Puts): Call Aux.Set_Image instead of Set_Image_Real. + * libgnat/a-ticoio.adb: Add with/use clauses for System.Img_Flt, + System.Img_LFlt and System.Img_LLF. + (Scalar_Float): Add third actual parameter. + (Scalar_Long_Float): Likewise. + (Scalar_Long_Long_Float): Likewise. + * libgnat/a-tifiio.adb: Add with/use clauses for System.Img_LFlt + and System.Val_LFlt. Remove the one for System.Val_LLF. Replace + Long_Long_Float with Long_Float throughout. + * libgnat/a-tifiio__128.adb: Likewise. + * libgnat/a-tiflau.ads: Add Set_Image formal parameter. + * libgnat/a-tiflau.adb: Add with/use clause for System.Img_Util, + remove the one for System.Img_Real. + (Put): Call Set_Image instead of Set_Image_Real. + (Puts): Likewise. + * libgnat/a-tiflio.adb: Add with/use clause for System.Img_Flt, + System.Img_LFlt and System.Img_LLF. + (Aux_Float): Add third actual parameter. + (Aux_Long_Float): Likewise. + (Aux_Long_Long_Float): Likewise. + * libgnat/a-witeio.ads (Field): Remove obsolete comment. + * libgnat/a-wtcoau.ads (Aux): Adjust ancestor package. + * libgnat/a-wtcoau.adb: Remove with/use clause for System.Img_Real. + (Puts): Call Aux.Set_Image instead of Set_Image_Real. + * libgnat/a-wtcoio.adb: Add with/use clauses for System.Img_Flt, + System.Img_LFlt and System.Img_LLF. + (Scalar_Float): Add third actual parameter. + (Scalar_Long_Float): Likewise. + (Scalar_Long_Long_Float): Likewise. + * libgnat/a-wtfiio.adb: Add with/use clauses for System.Img_LFlt + and System.Val_LFlt. Remove the one for System.Val_LLF. Replace + Long_Long_Float with Long_Float throughout. + * libgnat/a-wtfiio__128.adb: Likewise. + * libgnat/a-wtflau.ads: Add Set_Image formal parameter. + * libgnat/a-wtflau.adb: Add with/use clause for System.Img_Util, + remove the one for System.Img_Real. + (Put): Call Set_Image instead of Set_Image_Real. + (Puts): Likewise. + * libgnat/a-wtflio.adb: Add with/use clause for System.Img_Flt, + System.Img_LFlt and System.Img_LLF. + (Aux_Float): Add third actual parameter. + (Aux_Long_Float): Likewise. + (Aux_Long_Long_Float): Likewise. + * libgnat/a-ztexio.ads (Field): Remove obsolete comment. + * libgnat/a-ztcoau.ads (Aux): Adjust ancestor package. + * libgnat/a-ztcoau.adb: Remove with/use clause for System.Img_Real. + (Puts): Call Aux.Set_Image instead of Set_Image_Real. + * libgnat/a-ztcoio.adb: Add with/use clauses for System.Img_Flt, + System.Img_LFlt and System.Img_LLF. + (Scalar_Float): Add third actual parameter. + (Scalar_Long_Float): Likewise. + (Scalar_Long_Long_Float): Likewise. + * libgnat/a-ztfiio.adb: Add with/use clauses for System.Img_LFlt + and System.Val_LFlt. Remove the one for System.Val_LLF. Replace + Long_Long_Float with Long_Float throughout. + * libgnat/a-ztfiio__128.adb: Likewise. + * libgnat/a-ztflau.ads: Add Set_Image formal parameter. + * libgnat/a-ztflau.adb: Add with/use clause for System.Img_Util, + remove the one for System.Img_Real. + (Put): Call Set_Image instead of Set_Image_Real. + (Puts): Likewise. + * libgnat/a-ztflio.adb: Add with/use clause for System.Img_Flt, + System.Img_LFlt and System.Img_LLF. + (Aux_Float): Add third actual parameter. + (Aux_Long_Float): Likewise. + (Aux_Long_Long_Float): Likewise. + * libgnat/s-dorepr.adb: New file. + * libgnat/s-dorepr__fma.adb: Likewise. + * libgnat/s-dourea.ads: Likewise. + * libgnat/s-dourea.adb: Likewise. + * libgnat/s-forrea.ads (Fore_Real): Rename into... + (Fore_Fixed): ...this and take Long_Float parameters. + * libgnat/s-forrea.adb (Fore_Real): Likewise. + (Fore_Fixed): Likewise. + * libgnat/s-imgrea.ads: Move to... + (Set_Image_Real): Turn into mere renaming. + * libgnat/s-imager.ads: ...here. + (Image_Ordinary_Fixed_Point): Turn into... + (Image_Fixed_Point): ...this. + * libgnat/s-imgrea.adb: Add pragma No_Body. Move to... + * libgnat/s-imager.adb: ...here. + (Image_Ordinary_Fixed_Point): Turn into... + (Image_Fixed_Point): ...this. + (Is_Negative): Replace Long_Long_Float with Num. + (Set_Image_Real): Likewise. Use Double_T instead of single Num + throughout the algorithm. + * libgnat/s-imgflt.ads: New file. + * libgnat/s-imglfl.ads: Likewise. + * libgnat/s-imgllf.ads: Likewise. + * libgnat/s-imagef.ads: Adjust comment. + * libgnat/s-imguti.ads (Max_Real_Image_Length): New named number. + * libgnat/s-powflt.ads (Maxpow): Adjust. + (Powten): Turn into an exact table of double Float. + * libgnat/s-powlfl.ads (Maxpow): Adjust. + (Powten): Turn into an exact table of double Long_Float. + * libgnat/s-powllf.ads (Maxpow): Adjust. + (Powten): Turn into an exact table of double Long_Long_Float. + * libgnat/s-valrea.ads: Change order of formal parameters. + * libgnat/s-valrea.adb: Add with clause for System.Double_Real. + (Double_Real): New instantiation. + (Fast2Sum): Delete. + (Large_Powten): New function. + (Integer_to_Real): Use Quick_Two_Sum instead of Fast2Sum. Convert + the value to Double_T. Do the scaling in Double_T for base 10. + * libgnat/s-valflt.ads: Remove with/use clasue for Interfaces, + add it for System.Unsigned_Types. Use Unsigned. + * libgnat/s-vallfl.ads: Remove with/use clasue for Interfaces, + add it for System.Unsigned_Types. Use Long_Unsigned. + * libgnat/s-valllf.ads: Remove with/use clasue for Interfaces, + add it for System.Unsigned_Types. Use Long_Long_Unsigned. + +2021-05-05 Piotr Trojanek + + * sem_eval.adb (Eval_Arithmetic_Op): Call + Set_Raises_Constraint_Error on real division by zero just like + it is called for integer division by zero earlier in this + routine. + +2021-05-05 Piotr Trojanek + + * freeze.adb (Build_Renamed_Body): Simplify IF and WHILE + statements with the same condition. + +2021-05-05 Piotr Trojanek + + * pprint.adb (Expr_Name): Introduce local constants to make the + code more readable and avoid repeated calls to Next to reach the + ELSE part of an if-expression. + +2021-05-04 Piotr Trojanek + + * pprint.adb: Remove qualification of arbitrary calls to + Sinfo.Expressions and Sinfo.Parameter_Associations. + +2021-05-04 Piotr Trojanek + + * pprint.adb (Expr_Name): Simplify with functional variant of + UI_Image. + +2021-05-04 Piotr Trojanek + + * pprint.adb (To_Mixed): Removed. + +2021-05-04 Piotr Trojanek + + * pprint.adb (List_Name_Count): Change type from Integer to + Natural. + +2021-05-04 Yannick Moy + + * pprint.adb (Expression_Image): Special case for + expression-with-actions. + +2021-05-04 Bob Duff + + * exp_ch4.adb (Expand_Concatenate): Remove the non-optimization. + +2021-05-04 Piotr Trojanek + + * lib-xref.adb (Generate_Reference_To_Formals): Remove dedicated + branch for generic subprograms (they are now handled together + with non-generic subprograms in the ELSE branch); replace a + low-level Ekind membership test with a high-level call to + Is_Access_Subprogram_Type. + +2021-05-04 Piotr Trojanek + + * sem_ch12.adb (Check_Abstract_Primitives): Match First_Formal + with Next_Formal. + * sem_ch6.adb (Is_Non_Overriding_Operation): Likewise. + +2021-05-04 Piotr Trojanek + + * sem_prag.adb (Collect_Global_Item): Iterate directly over + formals. + +2021-05-04 Piotr Trojanek + + * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update + comment; this routine is no longer used by GNATprove. + * sem_prag.adb (Find_Role): The IN parameter is on output only + when it belongs to non-function; also, the otherwise constant + object can only be written by a non-function. + (Collect_Global_Item): The IN parameter can only be written when + it belongs to non-function; also, unnest this check to make it + easier to read. + +2021-05-04 Arnaud Charlet + + * libgnat/s-assert.ads (Assert_Failure): Now a renaming of + Assertion_Error. + * libgnat/a-assert.ads (Assertion_Error): Now a first class + citizen. Remove dependency on System.Assertions. + * gcc-interface/a-assert.ads, gcc-interface/a-assert.adb: New. + * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add + a-assert.o from gcc-interface. + +2021-05-04 Yannick Moy + + * erroutc.adb (Matches): Move spec... + * erroutc.ads (Matches): ...here. + +2021-05-04 Yannick Moy + + * gnat1drv.adb (Adjust_Global_Switches): Force error marker in + GNATprove mode. + +2021-05-04 Bob Duff + + * binde.adb: No need for ??? marks in Binde, because it is + superseded by Bindo. + * bindo-writers.adb (Write_Unit_Closure): Verified that -Ra + works. + * exp_ch4.adb, sinfo.ads (Expand_N_Type_Conversion): Rules for + conversions passed to gigi are documented in sinfo.ads. + (Expand_N_Unchecked_Type_Conversion): Comment is a duplicate of + one in sinfo.ads. + (Expand_N_In): Robert already added sufficient comments years + after the ??? comment was inserted. + (Expand_Membership_Minimize_Eliminate_Overflow): I don't see any + reason why Stand should export Long_Long_Integer'Base -- it + doesn't export any other base types. + (Size_In_Storage_Elements): We are doing an allocator, so we + don't care about sizes in bits. + (Expand_N_Allocator): PolyORB isn't going to be significantly + improved, so we're not going to mess with remote access to + class-wide types. + (Optimize_Return_Stmt): It's not important to optimize return + statements in predicate functions -- there are many + more-important optimizations we could do. Keep part of the + comment without "???", to clarify why the "and then ...". + (User_Defined_Primitive_Equality_Op): The optimization doesn't + seem important enough. + (Expand_N_Unchecked_Type_Conversion): Refactor to use + Expand_N_Unchecked_Expression. + (Make_Array_Comparison_Op): This seems like a case of "it it's + not broken, don't fix it". Too much risk of causing bugs. + * debug_a.adb: Remove ??? comments asking why Current_Error_Node + is maintained unconditionally, and add a comment explaining why. + * errout.adb: These kinds of minor bugs do indeed exist, but + we're never going to get around to fixing them "properly", so we + need this code for robustness. + * gnatchop.adb (Read_File): Document when read can fail. + * gnatdll.adb (Parse_Command_Line): Nobody is complaining about + these arbitrary limits, so no need to use Table. Increase the + limits just in case. It is clear from the names what they are + limits on. + * gnatlink.adb: Add needed comments. + (Delete): An existing comment makes clear it's intentional, and + it's been like that since 1996. + (Process_Args): Improve comments. + (Search_Library_Path): Refactoring to avoid deep nesting. + * inline.adb (Build_Body_To_Inline): Probably won't get around + to doing that optimization. + (Is_Unit_Subprogram): No, this should not be moved to Sem_Aux, + because it is too specialized to this context. + (Do_Reset): No comment is needed here; it's clear from the + comment on Reset_Dispatching_Calls. Do_Reset is an artificial + subprogram; if we had proper iterators, it would just be an if + statement in the loop. + (Rewrite_Function_Call): Probably won't get around to doing that + optimization. + * layout.adb (Layout_Type): The gigi comment doesn't need to be + a ??? comment, and it's been that way since 2000. The + limitation to scalars will likely never be investigated, and + it's been that way since 2009. + * lib.adb (Check_Same_Extended_Unit): This doesn't look like + something that needs fixing; it looks like a permanent + workaround. + * lib-load.adb (Change_Main_Unit_To_Spec): It is good enough in + practice. + (Load_Unit): Nobody will ever get around to investigating the + obscure PMES oddity, and the optimization is not worth the + trouble. + * live.adb: It's not worth documenting this. It is used only + with a debug switch. Nobody who has done significant work on it + is still around, so it would require substantial investigation. + * mdll.ads: I see no reason for USE. + * namet.ads: Routines are obsolete, but they're not going + anywhere anytime soon (too much work, and surprisingly delicate + because of dependences on global variables). + * osint.ads: Minor. + * osint.adb: Improve comments. + (Full_Lib_File_Name): Use Smart_Find_File. + +2021-05-04 Piotr Trojanek + + * exp_prag.adb, sem_prag.adb: Replace low-level Ekind membership + tests with a high-level call to Is_Formal_Object. + +2021-05-04 Arnaud Charlet + + * cstand.adb, sprint.adb, switch-c.adb, xr_tabls.ads, + xr_tabls.adb, xref_lib.adb: Address ??? comments. + +2021-05-04 Piotr Trojanek + + * sem_prag.adb (Analyze_Global_Item): Take subprogram kind into + account when accepting or rejecting a constant of an + access-to-variable type as a global Output/In_Out; do this check + inside an ELSIF branch to avoid unnecessary evaluation of the + subsequent condition. + +2021-05-04 Piotr Trojanek + + * sem_prag.adb (Role_Error, Usage_Error): Replace calls to + Name_Find and Get_Name_String with a call to To_String. + +2021-05-04 Ed Schonberg + + * exp_aggr.adb (Build_Siz_Exp): new function, subsidiary of + Expand_Container_Aggregate, to create an expression to be used + in the dynamic allocation of a container with a single container + element association. + (Add_Range): Handle static bounds of ranges over enumerations. + (Expand_Container_Aggregate): Add declaration for size + expression when needed, and use it in container object + declaration for container. + +2021-05-04 Arnaud Charlet + + * exp_ch7.adb (Build_Finalizer_Helper.New_Finalizer_Name): + Unnest so that it can be reused. + (Build_Finalizer_Helper.Process_Declarations): Call the + xxx__finalize_body procedure of a package instantiation in case + it contains finalization statements. Code clean ups. + (Build_Finalizer_Helper.Create_Finalizer): Export and set an + Interface_Name for library level finalizers since these may be + imported now. + (Build_Finalizer_Helper): Need to process library level package + body instantiations which may contain objects requiring + finalization. + * libgnat/s-finmas.ads: Fix typo. + +2021-05-04 Arnaud Charlet + + * checks.adb (Append_Range_Checks, Apply_Selected_Length_Checks, + Determine_Range, Insert_Range_Checks, + Install_Null_Excluding_Check, Selected_Length_Checks, + Selected_Range_Checks): Address ??? comments and code cleanups. + +2021-05-04 Piotr Trojanek + + * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): + Apply the rule even with no explicit Global contract (and remove + a dead condition for Refined_Global). + +2021-05-04 Piotr Trojanek + + * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): + Extend check to protected entries. + +2021-05-04 Piotr Trojanek + + * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): + Fix reference to SPARK RM rule number. + +2021-05-04 Eric Botcazou + + * exp_intr.adb: Remove with/use clauses for Urealp. + (Expand_Is_Negative): Delete. + (Expand_Intrinsic_Call): Do not call it. + * rtsfind.ads (RE_Id): Remove RE_Float_Unsigned. + (RE_Unit_Table): Remove entry for RE_Float_Unsigned. + * snames.ads-tmpl (Name_Is_Negative): Delete. + * libgnat/s-imgrea.ads (Set_Image_Real): Fix mode of S parameter. + * libgnat/s-imgrea.adb: Add with/use clauses for System.Img_Util. + (LLU): New subtype. + (Maxdigs): Use it. + (Is_Negative): Reimplement. + (Image_Floating_Point): Simplify. + (Set_Image_Real): Fix mode of S parameter. Remove the low-level + processing on characters. Flip the sign of the Scale variable. + Compute the maximum number of digits for the straight notation. + Call Set_Decimal_Digits at the end to do the final formatting. + * libgnat/s-imguti.ads (Floating_Invalid_Value): New type. + (Set_Floating_Invalid_Value): New procedure. + * libgnat/s-imguti.adb (Set_Floating_Invalid_Value): Implement it + based on existing code from Set_Image_Real. + * libgnat/s-unstyp.ads (Float_Unsigned): Delete. + +2021-05-04 Piotr Trojanek + + * csets.adb (Initialize): Refactor into CASE statement; raise + exception on unsupported code of character set (it will be + gently rejected earlier when scanning command line switches). + * switch-b.adb (Scan_Binder_Switches): Refactor into a + membership expression; add missing '9' choice; reorder as + described by GNAT UG, section 4.3.11. + * switch-c.adb (Scan_Front_End_Switches): Refactor into a + membership expression and reorder as above. + * doc/gnat_ugn/building_executable_programs_with_gnat.rst + (gnatic): Mention '5' as an allowed value for "c". + * gnat_ugn.texi: Regenerate. + +2021-05-04 Piotr Trojanek + + * errout.adb (Error_Msg_Internal): Add assertion to prevent + style mistakes reappearing in the future. + +2021-05-04 Javier Miranda + + * exp_ch4.adb (Tagged_Membership): Remove wrong condition that + is not consistent with the documentation of this subprogram. + +2021-05-04 Yannick Moy + + * sem_res.adb (Valid_Conversion): Make message a continuation. + +2021-05-04 Arnaud Charlet + + * styleg.adb: Address ??? comments. + +2021-05-03 Arnaud Charlet + + * libgnat/a-stunau.ads, libgnat/a-stunau.adb, + libgnat/a-stunau__shared.adb (Set_String): Remove old version, + replace by a new version taking a callback to set the string. + +2021-05-03 Arnaud Charlet + + * libgnat/a-coorma.ads (Map): Add missing + Preelaborate_Initialization. + +2021-05-03 Piotr Trojanek + + * exp_ch4.adb (Analyze_Number_Declaration, Expand_N_Op_Expon): + Simplify with Is_Universal_Numeric_Type. + * sem_attr.adb (Resolve_Attribute): Likewise. + * sem_ch3.adb: Likewise. + * sem_ch4.adb (Check_Common_Type, Check_Arithmetic_Pair): + Likewise. + * sem_eval.adb (Eval_Unary_Op, Test_In_Range): Likewise. + * sem_res.adb (Resolve_Arithmetic_Op, Resolve_Membership_Op, + Resolve_Op_Expon, Resolve_Unary_Op, Set_Mixed_Mode_Operand, + Set_Operand_Type): Likewise. + * sem_type.adb (Disambiguate, Find_Unique_Type): Likewise. + * sem_util.adb (Universal_Interpretation): Likewise. + +2021-05-03 Piotr Trojanek + + * exp_aggr.adb (Max_Aggregate_Size): Add header boxes for nested + routines; move a local constant after nested subprogram bodies; + refill comment. + +2021-05-03 Piotr Trojanek + + * sem_attr.adb (Analyze_Attribute): Reuse Resolve with implicit + type when analysing attribute Priority. + * sem_ch5.adb (Analyze_Case_Statement): Likewise for a rare case + in analysis of case statements. + (Analyze_Iterator_Specification): Likewise for non-overloaded + domain of iteration. + +2021-05-03 Piotr Trojanek + + * einfo.adb (Write_Entity_Info): Simplify an Ekind membership + test. + * exp_aggr.adb (Is_CCG_Supported_Aggregate): Likewise. + +2021-05-03 Piotr Trojanek + + * exp_ch7.adb (Build_Finalize_Statements): Refine type of a + local counter variable. + * exp_dist.adb (Append_Record_Traversal): Refine type of Counter + parameter. + (Add_Process_Element): Likewise. + (Build_From_Any_Call): Refine type of a local counter variable. + (Build_From_Any_Function): Likewise. + (Build_To_Any_Function): Likewise. + (FA_Rec_Add_Process_Element): Likewise. + (TA_Append_Record_Traversal): Likewise. + (TA_Rec_Add_Process_Element): Likewise. + +2021-05-03 Piotr Trojanek + + * rtsfind.adb (SPARK_Implicit_Load): Simplify with Discard_Node. + +2021-05-03 Arnaud Charlet + + * Makefile.rtl: Update copyright notice. + * ada_get_targ.adb: Likewise. + * adabkend.adb: Likewise. + * adabkend.ads: Likewise. + * adadecode.c: Likewise. + * adadecode.h: Likewise. + * adaint.c: Likewise. + * adaint.h: Likewise. + * affinity.c: Likewise. + * ali-util.adb: Likewise. + * ali-util.ads: Likewise. + * ali.adb: Likewise. + * ali.ads: Likewise. + * alloc.ads: Likewise. + * argv-lynxos178-raven-cert.c: Likewise. + * argv.c: Likewise. + * aspects.adb: Likewise. + * aspects.ads: Likewise. + * atree.adb: Likewise. + * atree.ads: Likewise. + * atree.h: Likewise. + * aux-io.c: Likewise. + * back_end.adb: Likewise. + * back_end.ads: Likewise. + * bcheck.adb: Likewise. + * bcheck.ads: Likewise. + * binde.adb: Likewise. + * binde.ads: Likewise. + * binderr.adb: Likewise. + * binderr.ads: Likewise. + * bindgen.adb: Likewise. + * bindgen.ads: Likewise. + * bindo-augmentors.adb: Likewise. + * bindo-augmentors.ads: Likewise. + * bindo-builders.adb: Likewise. + * bindo-builders.ads: Likewise. + * bindo-diagnostics.adb: Likewise. + * bindo-diagnostics.ads: Likewise. + * bindo-elaborators.adb: Likewise. + * bindo-elaborators.ads: Likewise. + * bindo-graphs.adb: Likewise. + * bindo-graphs.ads: Likewise. + * bindo-units.adb: Likewise. + * bindo-units.ads: Likewise. + * bindo-validators.adb: Likewise. + * bindo-validators.ads: Likewise. + * bindo-writers.adb: Likewise. + * bindo-writers.ads: Likewise. + * bindo.adb: Likewise. + * bindo.ads: Likewise. + * bindusg.adb: Likewise. + * bindusg.ads: Likewise. + * butil.adb: Likewise. + * butil.ads: Likewise. + * cal.c: Likewise. + * casing.adb: Likewise. + * casing.ads: Likewise. + * ceinfo.adb: Likewise. + * checks.adb: Likewise. + * checks.ads: Likewise. + * cio.c: Likewise. + * clean.adb: Likewise. + * clean.ads: Likewise. + * comperr.adb: Likewise. + * comperr.ads: Likewise. + * contracts.adb: Likewise. + * contracts.ads: Likewise. + * csets.adb: Likewise. + * csets.ads: Likewise. + * csinfo.adb: Likewise. + * cstand.adb: Likewise. + * cstand.ads: Likewise. + * cstreams.c: Likewise. + * ctrl_c.c: Likewise. + * debug.adb: Likewise. + * debug.ads: Likewise. + * debug_a.adb: Likewise. + * debug_a.ads: Likewise. + * einfo.adb: Likewise. + * einfo.ads: Likewise. + * elists.adb: Likewise. + * elists.ads: Likewise. + * elists.h: Likewise. + * env.c: Likewise. + * env.h: Likewise. + * err_vars.ads: Likewise. + * errno.c: Likewise. + * errout.adb: Likewise. + * errout.ads: Likewise. + * erroutc.adb: Likewise. + * erroutc.ads: Likewise. + * errutil.adb: Likewise. + * errutil.ads: Likewise. + * eval_fat.adb: Likewise. + * eval_fat.ads: Likewise. + * exit.c: Likewise. + * exp_aggr.adb: Likewise. + * exp_aggr.ads: Likewise. + * exp_atag.adb: Likewise. + * exp_atag.ads: Likewise. + * exp_attr.adb: Likewise. + * exp_attr.ads: Likewise. + * exp_cg.adb: Likewise. + * exp_cg.ads: Likewise. + * exp_ch10.ads: Likewise. + * exp_ch11.adb: Likewise. + * exp_ch11.ads: Likewise. + * exp_ch12.adb: Likewise. + * exp_ch12.ads: Likewise. + * exp_ch13.adb: Likewise. + * exp_ch13.ads: Likewise. + * exp_ch2.adb: Likewise. + * exp_ch2.ads: Likewise. + * exp_ch3.adb: Likewise. + * exp_ch3.ads: Likewise. + * exp_ch4.adb: Likewise. + * exp_ch4.ads: Likewise. + * exp_ch5.adb: Likewise. + * exp_ch5.ads: Likewise. + * exp_ch6.adb: Likewise. + * exp_ch6.ads: Likewise. + * exp_ch7.adb: Likewise. + * exp_ch7.ads: Likewise. + * exp_ch8.adb: Likewise. + * exp_ch8.ads: Likewise. + * exp_ch9.adb: Likewise. + * exp_ch9.ads: Likewise. + * exp_code.adb: Likewise. + * exp_code.ads: Likewise. + * exp_dbug.adb: Likewise. + * exp_dbug.ads: Likewise. + * exp_disp.adb: Likewise. + * exp_disp.ads: Likewise. + * exp_dist.adb: Likewise. + * exp_dist.ads: Likewise. + * exp_fixd.adb: Likewise. + * exp_fixd.ads: Likewise. + * exp_imgv.adb: Likewise. + * exp_imgv.ads: Likewise. + * exp_intr.adb: Likewise. + * exp_intr.ads: Likewise. + * exp_pakd.adb: Likewise. + * exp_pakd.ads: Likewise. + * exp_prag.adb: Likewise. + * exp_prag.ads: Likewise. + * exp_put_image.adb: Likewise. + * exp_put_image.ads: Likewise. + * exp_sel.adb: Likewise. + * exp_sel.ads: Likewise. + * exp_smem.adb: Likewise. + * exp_smem.ads: Likewise. + * exp_spark.adb: Likewise. + * exp_spark.ads: Likewise. + * exp_strm.adb: Likewise. + * exp_strm.ads: Likewise. + * exp_tss.adb: Likewise. + * exp_tss.ads: Likewise. + * exp_unst.adb: Likewise. + * exp_unst.ads: Likewise. + * exp_util.adb: Likewise. + * exp_util.ads: Likewise. + * expander.adb: Likewise. + * expander.ads: Likewise. + * expect.c: Likewise. + * fe.h: Likewise. + * final.c: Likewise. + * fmap.adb: Likewise. + * fmap.ads: Likewise. + * fname-sf.adb: Likewise. + * fname-sf.ads: Likewise. + * fname-uf.adb: Likewise. + * fname-uf.ads: Likewise. + * fname.adb: Likewise. + * fname.ads: Likewise. + * freeze.adb: Likewise. + * freeze.ads: Likewise. + * frontend.adb: Likewise. + * frontend.ads: Likewise. + * gcc-interface/ada-tree.h: Likewise. + * gcc-interface/ada.h: Likewise. + * gcc-interface/cuintp.c: Likewise. + * gcc-interface/decl.c: Likewise. + * gcc-interface/gadaint.h: Likewise. + * gcc-interface/gigi.h: Likewise. + * gcc-interface/lang-specs.h: Likewise. + * gcc-interface/misc.c: Likewise. + * gcc-interface/system.ads: Likewise. + * gcc-interface/targtyps.c: Likewise. + * gcc-interface/trans.c: Likewise. + * gcc-interface/utils.c: Likewise. + * gcc-interface/utils2.c: Likewise. + * get_scos.adb: Likewise. + * get_scos.ads: Likewise. + * get_targ.adb: Likewise. + * get_targ.ads: Likewise. + * ghost.adb: Likewise. + * ghost.ads: Likewise. + * gnat1drv.adb: Likewise. + * gnat1drv.ads: Likewise. + * gnat_cuda.adb: Likewise. + * gnat_cuda.ads: Likewise. + * gnatbind.adb: Likewise. + * gnatbind.ads: Likewise. + * gnatchop.adb: Likewise. + * gnatclean.adb: Likewise. + * gnatcmd.adb: Likewise. + * gnatcmd.ads: Likewise. + * gnatdll.adb: Likewise. + * gnatfind.adb: Likewise. + * gnatkr.adb: Likewise. + * gnatkr.ads: Likewise. + * gnatlink.adb: Likewise. + * gnatlink.ads: Likewise. + * gnatls.adb: Likewise. + * gnatls.ads: Likewise. + * gnatmake.adb: Likewise. + * gnatmake.ads: Likewise. + * gnatname.adb: Likewise. + * gnatname.ads: Likewise. + * gnatprep.adb: Likewise. + * gnatprep.ads: Likewise. + * gnatvsn.adb: Likewise. + * gnatvsn.ads: Likewise. + * gnatxref.adb: Likewise. + * gprep.adb: Likewise. + * gprep.ads: Likewise. + * gsocket.h: Likewise. + * hostparm.ads: Likewise. + * impunit.adb: Likewise. + * impunit.ads: Likewise. + * indepsw-aix.adb: Likewise. + * indepsw-darwin.adb: Likewise. + * indepsw-gnu.adb: Likewise. + * indepsw.adb: Likewise. + * indepsw.ads: Likewise. + * init.c: Likewise. + * initialize.c: Likewise. + * inline.adb: Likewise. + * inline.ads: Likewise. + * itypes.adb: Likewise. + * itypes.ads: Likewise. + * krunch.adb: Likewise. + * krunch.ads: Likewise. + * layout.adb: Likewise. + * layout.ads: Likewise. + * lib-list.adb: Likewise. + * lib-load.adb: Likewise. + * lib-load.ads: Likewise. + * lib-sort.adb: Likewise. + * lib-util.adb: Likewise. + * lib-util.ads: Likewise. + * lib-writ.adb: Likewise. + * lib-writ.ads: Likewise. + * lib-xref-spark_specific.adb: Likewise. + * lib-xref.adb: Likewise. + * lib-xref.ads: Likewise. + * lib.adb: Likewise. + * lib.ads: Likewise. + * libgnarl/a-astaco.adb: Likewise. + * libgnarl/a-dispat.adb: Likewise. + * libgnarl/a-dynpri.adb: Likewise. + * libgnarl/a-etgrbu.ads: Likewise. + * libgnarl/a-exetim__darwin.adb: Likewise. + * libgnarl/a-exetim__default.ads: Likewise. + * libgnarl/a-exetim__mingw.adb: Likewise. + * libgnarl/a-exetim__mingw.ads: Likewise. + * libgnarl/a-exetim__posix.adb: Likewise. + * libgnarl/a-interr.adb: Likewise. + * libgnarl/a-interr.ads: Likewise. + * libgnarl/a-intnam.ads: Likewise. + * libgnarl/a-intnam__aix.ads: Likewise. + * libgnarl/a-intnam__darwin.ads: Likewise. + * libgnarl/a-intnam__dragonfly.ads: Likewise. + * libgnarl/a-intnam__dummy.ads: Likewise. + * libgnarl/a-intnam__freebsd.ads: Likewise. + * libgnarl/a-intnam__hpux.ads: Likewise. + * libgnarl/a-intnam__linux.ads: Likewise. + * libgnarl/a-intnam__lynxos.ads: Likewise. + * libgnarl/a-intnam__mingw.ads: Likewise. + * libgnarl/a-intnam__qnx.ads: Likewise. + * libgnarl/a-intnam__rtems.ads: Likewise. + * libgnarl/a-intnam__solaris.ads: Likewise. + * libgnarl/a-intnam__vxworks.ads: Likewise. + * libgnarl/a-reatim.adb: Likewise. + * libgnarl/a-reatim.ads: Likewise. + * libgnarl/a-retide.adb: Likewise. + * libgnarl/a-retide.ads: Likewise. + * libgnarl/a-rttiev.adb: Likewise. + * libgnarl/a-rttiev.ads: Likewise. + * libgnarl/a-synbar.adb: Likewise. + * libgnarl/a-synbar.ads: Likewise. + * libgnarl/a-synbar__posix.adb: Likewise. + * libgnarl/a-synbar__posix.ads: Likewise. + * libgnarl/a-sytaco.adb: Likewise. + * libgnarl/a-sytaco.ads: Likewise. + * libgnarl/a-tasatt.adb: Likewise. + * libgnarl/a-tasatt.ads: Likewise. + * libgnarl/a-taside.adb: Likewise. + * libgnarl/a-taside.ads: Likewise. + * libgnarl/a-tasini.adb: Likewise. + * libgnarl/a-tasini.ads: Likewise. + * libgnarl/a-taster.adb: Likewise. + * libgnarl/g-boubuf.adb: Likewise. + * libgnarl/g-boubuf.ads: Likewise. + * libgnarl/g-boumai.ads: Likewise. + * libgnarl/g-semaph.adb: Likewise. + * libgnarl/g-semaph.ads: Likewise. + * libgnarl/g-signal.adb: Likewise. + * libgnarl/g-signal.ads: Likewise. + * libgnarl/g-tastus.ads: Likewise. + * libgnarl/g-thread.adb: Likewise. + * libgnarl/g-thread.ads: Likewise. + * libgnarl/i-vxinco.adb: Likewise. + * libgnarl/i-vxinco.ads: Likewise. + * libgnarl/s-inmaop.ads: Likewise. + * libgnarl/s-inmaop__dummy.adb: Likewise. + * libgnarl/s-inmaop__posix.adb: Likewise. + * libgnarl/s-inmaop__vxworks.adb: Likewise. + * libgnarl/s-interr.adb: Likewise. + * libgnarl/s-interr.ads: Likewise. + * libgnarl/s-interr__dummy.adb: Likewise. + * libgnarl/s-interr__hwint.adb: Likewise. + * libgnarl/s-interr__sigaction.adb: Likewise. + * libgnarl/s-interr__vxworks.adb: Likewise. + * libgnarl/s-intman.ads: Likewise. + * libgnarl/s-intman__android.adb: Likewise. + * libgnarl/s-intman__dummy.adb: Likewise. + * libgnarl/s-intman__lynxos.adb: Likewise. + * libgnarl/s-intman__mingw.adb: Likewise. + * libgnarl/s-intman__posix.adb: Likewise. + * libgnarl/s-intman__qnx.adb: Likewise. + * libgnarl/s-intman__solaris.adb: Likewise. + * libgnarl/s-intman__susv3.adb: Likewise. + * libgnarl/s-intman__vxworks.adb: Likewise. + * libgnarl/s-intman__vxworks.ads: Likewise. + * libgnarl/s-linux.ads: Likewise. + * libgnarl/s-linux__alpha.ads: Likewise. + * libgnarl/s-linux__android.ads: Likewise. + * libgnarl/s-linux__hppa.ads: Likewise. + * libgnarl/s-linux__mips.ads: Likewise. + * libgnarl/s-linux__riscv.ads: Likewise. + * libgnarl/s-linux__sparc.ads: Likewise. + * libgnarl/s-linux__x32.ads: Likewise. + * libgnarl/s-mudido.adb: Likewise. + * libgnarl/s-mudido__affinity.adb: Likewise. + * libgnarl/s-osinte__aix.adb: Likewise. + * libgnarl/s-osinte__aix.ads: Likewise. + * libgnarl/s-osinte__android.adb: Likewise. + * libgnarl/s-osinte__android.ads: Likewise. + * libgnarl/s-osinte__darwin.adb: Likewise. + * libgnarl/s-osinte__darwin.ads: Likewise. + * libgnarl/s-osinte__dragonfly.adb: Likewise. + * libgnarl/s-osinte__dragonfly.ads: Likewise. + * libgnarl/s-osinte__dummy.ads: Likewise. + * libgnarl/s-osinte__freebsd.adb: Likewise. + * libgnarl/s-osinte__freebsd.ads: Likewise. + * libgnarl/s-osinte__gnu.adb: Likewise. + * libgnarl/s-osinte__gnu.ads: Likewise. + * libgnarl/s-osinte__hpux-dce.adb: Likewise. + * libgnarl/s-osinte__hpux-dce.ads: Likewise. + * libgnarl/s-osinte__hpux.ads: Likewise. + * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise. + * libgnarl/s-osinte__linux.ads: Likewise. + * libgnarl/s-osinte__lynxos178.adb: Likewise. + * libgnarl/s-osinte__lynxos178e.ads: Likewise. + * libgnarl/s-osinte__mingw.ads: Likewise. + * libgnarl/s-osinte__posix.adb: Likewise. + * libgnarl/s-osinte__qnx.adb: Likewise. + * libgnarl/s-osinte__qnx.ads: Likewise. + * libgnarl/s-osinte__rtems.adb: Likewise. + * libgnarl/s-osinte__rtems.ads: Likewise. + * libgnarl/s-osinte__solaris.adb: Likewise. + * libgnarl/s-osinte__solaris.ads: Likewise. + * libgnarl/s-osinte__vxworks.adb: Likewise. + * libgnarl/s-osinte__vxworks.ads: Likewise. + * libgnarl/s-osinte__x32.adb: Likewise. + * libgnarl/s-proinf.adb: Likewise. + * libgnarl/s-proinf.ads: Likewise. + * libgnarl/s-qnx.ads: Likewise. + * libgnarl/s-solita.adb: Likewise. + * libgnarl/s-solita.ads: Likewise. + * libgnarl/s-stusta.adb: Likewise. + * libgnarl/s-stusta.ads: Likewise. + * libgnarl/s-taasde.adb: Likewise. + * libgnarl/s-taasde.ads: Likewise. + * libgnarl/s-tadeca.adb: Likewise. + * libgnarl/s-tadeca.ads: Likewise. + * libgnarl/s-tadert.adb: Likewise. + * libgnarl/s-tadert.ads: Likewise. + * libgnarl/s-taenca.adb: Likewise. + * libgnarl/s-taenca.ads: Likewise. + * libgnarl/s-taprob.adb: Likewise. + * libgnarl/s-taprob.ads: Likewise. + * libgnarl/s-taprop.ads: Likewise. + * libgnarl/s-taprop__dummy.adb: Likewise. + * libgnarl/s-taprop__hpux-dce.adb: Likewise. + * libgnarl/s-taprop__linux.adb: Likewise. + * libgnarl/s-taprop__mingw.adb: Likewise. + * libgnarl/s-taprop__posix.adb: Likewise. + * libgnarl/s-taprop__qnx.adb: Likewise. + * libgnarl/s-taprop__solaris.adb: Likewise. + * libgnarl/s-taprop__vxworks.adb: Likewise. + * libgnarl/s-tarest.adb: Likewise. + * libgnarl/s-tarest.ads: Likewise. + * libgnarl/s-tasdeb.adb: Likewise. + * libgnarl/s-tasdeb.ads: Likewise. + * libgnarl/s-tasinf.adb: Likewise. + * libgnarl/s-tasinf.ads: Likewise. + * libgnarl/s-tasinf__linux.adb: Likewise. + * libgnarl/s-tasinf__linux.ads: Likewise. + * libgnarl/s-tasinf__mingw.adb: Likewise. + * libgnarl/s-tasinf__mingw.ads: Likewise. + * libgnarl/s-tasinf__solaris.adb: Likewise. + * libgnarl/s-tasinf__solaris.ads: Likewise. + * libgnarl/s-tasinf__vxworks.ads: Likewise. + * libgnarl/s-tasini.adb: Likewise. + * libgnarl/s-tasini.ads: Likewise. + * libgnarl/s-taskin.adb: Likewise. + * libgnarl/s-taskin.ads: Likewise. + * libgnarl/s-taspri__dummy.ads: Likewise. + * libgnarl/s-taspri__hpux-dce.ads: Likewise. + * libgnarl/s-taspri__lynxos.ads: Likewise. + * libgnarl/s-taspri__mingw.ads: Likewise. + * libgnarl/s-taspri__posix-noaltstack.ads: Likewise. + * libgnarl/s-taspri__posix.ads: Likewise. + * libgnarl/s-taspri__solaris.ads: Likewise. + * libgnarl/s-taspri__vxworks.ads: Likewise. + * libgnarl/s-tasque.adb: Likewise. + * libgnarl/s-tasque.ads: Likewise. + * libgnarl/s-tasren.adb: Likewise. + * libgnarl/s-tasren.ads: Likewise. + * libgnarl/s-tasres.ads: Likewise. + * libgnarl/s-tassta.adb: Likewise. + * libgnarl/s-tassta.ads: Likewise. + * libgnarl/s-tasuti.adb: Likewise. + * libgnarl/s-tasuti.ads: Likewise. + * libgnarl/s-tataat.adb: Likewise. + * libgnarl/s-tataat.ads: Likewise. + * libgnarl/s-tpinop.adb: Likewise. + * libgnarl/s-tpinop.ads: Likewise. + * libgnarl/s-tpoaal.adb: Likewise. + * libgnarl/s-tpoben.adb: Likewise. + * libgnarl/s-tpoben.ads: Likewise. + * libgnarl/s-tpobmu.adb: Likewise. + * libgnarl/s-tpobmu.ads: Likewise. + * libgnarl/s-tpobop.adb: Likewise. + * libgnarl/s-tpobop.ads: Likewise. + * libgnarl/s-tpopmo.adb: Likewise. + * libgnarl/s-tpopsp__posix-foreign.adb: Likewise. + * libgnarl/s-tpopsp__posix.adb: Likewise. + * libgnarl/s-tpopsp__solaris.adb: Likewise. + * libgnarl/s-tpopsp__tls.adb: Likewise. + * libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise. + * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise. + * libgnarl/s-tpopsp__vxworks.adb: Likewise. + * libgnarl/s-tporft.adb: Likewise. + * libgnarl/s-tposen.adb: Likewise. + * libgnarl/s-tposen.ads: Likewise. + * libgnarl/s-vxwext.adb: Likewise. + * libgnarl/s-vxwext.ads: Likewise. + * libgnarl/s-vxwext__kernel-smp.adb: Likewise. + * libgnarl/s-vxwext__kernel.adb: Likewise. + * libgnarl/s-vxwext__kernel.ads: Likewise. + * libgnarl/s-vxwext__noints.adb: Likewise. + * libgnarl/s-vxwext__rtp-smp.adb: Likewise. + * libgnarl/s-vxwext__rtp.adb: Likewise. + * libgnarl/s-vxwext__rtp.ads: Likewise. + * libgnarl/s-vxwext__vthreads.ads: Likewise. + * libgnarl/s-vxwork__aarch64.ads: Likewise. + * libgnarl/s-vxwork__arm.ads: Likewise. + * libgnarl/s-vxwork__ppc.ads: Likewise. + * libgnarl/s-vxwork__x86.ads: Likewise. + * libgnarl/thread.c: Likewise. + * libgnat/a-assert.adb: Likewise. + * libgnat/a-assert.ads: Likewise. + * libgnat/a-btgbso.adb: Likewise. + * libgnat/a-btgbso.ads: Likewise. + * libgnat/a-calari.adb: Likewise. + * libgnat/a-calari.ads: Likewise. + * libgnat/a-calcon.adb: Likewise. + * libgnat/a-calcon.ads: Likewise. + * libgnat/a-caldel.adb: Likewise. + * libgnat/a-caldel.ads: Likewise. + * libgnat/a-calend.adb: Likewise. + * libgnat/a-calend.ads: Likewise. + * libgnat/a-calfor.adb: Likewise. + * libgnat/a-calfor.ads: Likewise. + * libgnat/a-catizo.adb: Likewise. + * libgnat/a-cbdlli.adb: Likewise. + * libgnat/a-cbdlli.ads: Likewise. + * libgnat/a-cbhama.adb: Likewise. + * libgnat/a-cbhama.ads: Likewise. + * libgnat/a-cbhase.adb: Likewise. + * libgnat/a-cbhase.ads: Likewise. + * libgnat/a-cbmutr.adb: Likewise. + * libgnat/a-cbmutr.ads: Likewise. + * libgnat/a-cborma.adb: Likewise. + * libgnat/a-cborma.ads: Likewise. + * libgnat/a-cborse.adb: Likewise. + * libgnat/a-cborse.ads: Likewise. + * libgnat/a-cbprqu.adb: Likewise. + * libgnat/a-cbprqu.ads: Likewise. + * libgnat/a-cbsyqu.adb: Likewise. + * libgnat/a-cbsyqu.ads: Likewise. + * libgnat/a-cdlili.adb: Likewise. + * libgnat/a-cdlili.ads: Likewise. + * libgnat/a-cfdlli.adb: Likewise. + * libgnat/a-cfdlli.ads: Likewise. + * libgnat/a-cfhama.adb: Likewise. + * libgnat/a-cfhama.ads: Likewise. + * libgnat/a-cfhase.adb: Likewise. + * libgnat/a-cfhase.ads: Likewise. + * libgnat/a-cfinve.adb: Likewise. + * libgnat/a-cfinve.ads: Likewise. + * libgnat/a-cforma.adb: Likewise. + * libgnat/a-cforma.ads: Likewise. + * libgnat/a-cforse.adb: Likewise. + * libgnat/a-cforse.ads: Likewise. + * libgnat/a-cgaaso.adb: Likewise. + * libgnat/a-cgaaso.ads: Likewise. + * libgnat/a-cgarso.adb: Likewise. + * libgnat/a-cgcaso.adb: Likewise. + * libgnat/a-chacon.adb: Likewise. + * libgnat/a-chacon.ads: Likewise. + * libgnat/a-chahan.adb: Likewise. + * libgnat/a-chahan.ads: Likewise. + * libgnat/a-chlat9.ads: Likewise. + * libgnat/a-chtgbk.adb: Likewise. + * libgnat/a-chtgbk.ads: Likewise. + * libgnat/a-chtgbo.adb: Likewise. + * libgnat/a-chtgbo.ads: Likewise. + * libgnat/a-chtgke.adb: Likewise. + * libgnat/a-chtgke.ads: Likewise. + * libgnat/a-chtgop.adb: Likewise. + * libgnat/a-chtgop.ads: Likewise. + * libgnat/a-chzla1.ads: Likewise. + * libgnat/a-chzla9.ads: Likewise. + * libgnat/a-cidlli.adb: Likewise. + * libgnat/a-cidlli.ads: Likewise. + * libgnat/a-cihama.adb: Likewise. + * libgnat/a-cihama.ads: Likewise. + * libgnat/a-cihase.adb: Likewise. + * libgnat/a-cihase.ads: Likewise. + * libgnat/a-cimutr.adb: Likewise. + * libgnat/a-cimutr.ads: Likewise. + * libgnat/a-ciorma.adb: Likewise. + * libgnat/a-ciorma.ads: Likewise. + * libgnat/a-ciormu.adb: Likewise. + * libgnat/a-ciormu.ads: Likewise. + * libgnat/a-ciorse.adb: Likewise. + * libgnat/a-ciorse.ads: Likewise. + * libgnat/a-clrefi.adb: Likewise. + * libgnat/a-clrefi.ads: Likewise. + * libgnat/a-coboho.adb: Likewise. + * libgnat/a-coboho.ads: Likewise. + * libgnat/a-cobove.adb: Likewise. + * libgnat/a-cobove.ads: Likewise. + * libgnat/a-cofove.adb: Likewise. + * libgnat/a-cofove.ads: Likewise. + * libgnat/a-cofuba.adb: Likewise. + * libgnat/a-cofuba.ads: Likewise. + * libgnat/a-cofuma.adb: Likewise. + * libgnat/a-cofuma.ads: Likewise. + * libgnat/a-cofuse.adb: Likewise. + * libgnat/a-cofuse.ads: Likewise. + * libgnat/a-cofuve.adb: Likewise. + * libgnat/a-cofuve.ads: Likewise. + * libgnat/a-cogeso.adb: Likewise. + * libgnat/a-cogeso.ads: Likewise. + * libgnat/a-cohama.adb: Likewise. + * libgnat/a-cohama.ads: Likewise. + * libgnat/a-cohase.adb: Likewise. + * libgnat/a-cohase.ads: Likewise. + * libgnat/a-cohata.ads: Likewise. + * libgnat/a-coinho.adb: Likewise. + * libgnat/a-coinho.ads: Likewise. + * libgnat/a-coinho__shared.adb: Likewise. + * libgnat/a-coinho__shared.ads: Likewise. + * libgnat/a-coinve.adb: Likewise. + * libgnat/a-coinve.ads: Likewise. + * libgnat/a-colien.adb: Likewise. + * libgnat/a-colien.ads: Likewise. + * libgnat/a-colire.adb: Likewise. + * libgnat/a-colire.ads: Likewise. + * libgnat/a-comlin.adb: Likewise. + * libgnat/a-comlin.ads: Likewise. + * libgnat/a-comutr.adb: Likewise. + * libgnat/a-comutr.ads: Likewise. + * libgnat/a-conhel.adb: Likewise. + * libgnat/a-conhel.ads: Likewise. + * libgnat/a-convec.adb: Likewise. + * libgnat/a-convec.ads: Likewise. + * libgnat/a-coorma.adb: Likewise. + * libgnat/a-coorma.ads: Likewise. + * libgnat/a-coormu.adb: Likewise. + * libgnat/a-coormu.ads: Likewise. + * libgnat/a-coorse.adb: Likewise. + * libgnat/a-coorse.ads: Likewise. + * libgnat/a-coprnu.adb: Likewise. + * libgnat/a-coprnu.ads: Likewise. + * libgnat/a-crbltr.ads: Likewise. + * libgnat/a-crbtgk.adb: Likewise. + * libgnat/a-crbtgk.ads: Likewise. + * libgnat/a-crbtgo.adb: Likewise. + * libgnat/a-crbtgo.ads: Likewise. + * libgnat/a-crdlli.adb: Likewise. + * libgnat/a-crdlli.ads: Likewise. + * libgnat/a-csquin.ads: Likewise. + * libgnat/a-cuprqu.adb: Likewise. + * libgnat/a-cuprqu.ads: Likewise. + * libgnat/a-cusyqu.adb: Likewise. + * libgnat/a-cusyqu.ads: Likewise. + * libgnat/a-cwila1.ads: Likewise. + * libgnat/a-cwila9.ads: Likewise. + * libgnat/a-decima.adb: Likewise. + * libgnat/a-decima.ads: Likewise. + * libgnat/a-decima__128.ads: Likewise. + * libgnat/a-dhfina.adb: Likewise. + * libgnat/a-dhfina.ads: Likewise. + * libgnat/a-diocst.adb: Likewise. + * libgnat/a-diocst.ads: Likewise. + * libgnat/a-direct.adb: Likewise. + * libgnat/a-direct.ads: Likewise. + * libgnat/a-direio.adb: Likewise. + * libgnat/a-direio.ads: Likewise. + * libgnat/a-dirval.adb: Likewise. + * libgnat/a-dirval.ads: Likewise. + * libgnat/a-dirval__mingw.adb: Likewise. + * libgnat/a-einuoc.adb: Likewise. + * libgnat/a-einuoc.ads: Likewise. + * libgnat/a-elchha.adb: Likewise. + * libgnat/a-elchha.ads: Likewise. + * libgnat/a-elchha__vxworks-ppc-full.adb: Likewise. + * libgnat/a-envvar.adb: Likewise. + * libgnat/a-excach.adb: Likewise. + * libgnat/a-except.adb: Likewise. + * libgnat/a-except.ads: Likewise. + * libgnat/a-exctra.adb: Likewise. + * libgnat/a-exctra.ads: Likewise. + * libgnat/a-exexda.adb: Likewise. + * libgnat/a-exexpr.adb: Likewise. + * libgnat/a-exextr.adb: Likewise. + * libgnat/a-exstat.adb: Likewise. + * libgnat/a-finali.adb: Likewise. + * libgnat/a-finali.ads: Likewise. + * libgnat/a-locale.adb: Likewise. + * libgnat/a-locale.ads: Likewise. + * libgnat/a-nagefl.ads: Likewise. + * libgnat/a-naliop.ads: Likewise. + * libgnat/a-naliop__nolibm.ads: Likewise. + * libgnat/a-nallfl.ads: Likewise. + * libgnat/a-nallfl__wraplf.ads: Likewise. + * libgnat/a-nalofl.ads: Likewise. + * libgnat/a-nashfl.ads: Likewise. + * libgnat/a-nashfl__wraplf.ads: Likewise. + * libgnat/a-nbnbin.adb: Likewise. + * libgnat/a-nbnbin__gmp.adb: Likewise. + * libgnat/a-nbnbre.adb: Likewise. + * libgnat/a-ngcefu.adb: Likewise. + * libgnat/a-ngcoar.adb: Likewise. + * libgnat/a-ngcoty.adb: Likewise. + * libgnat/a-ngcoty.ads: Likewise. + * libgnat/a-ngelfu.adb: Likewise. + * libgnat/a-ngelfu.ads: Likewise. + * libgnat/a-ngrear.adb: Likewise. + * libgnat/a-ngrear.ads: Likewise. + * libgnat/a-nuauco.ads: Likewise. + * libgnat/a-nuauco__x86.ads: Likewise. + * libgnat/a-nuaufl.ads: Likewise. + * libgnat/a-nuaufl__wraplf.ads: Likewise. + * libgnat/a-nudira.adb: Likewise. + * libgnat/a-nudira.ads: Likewise. + * libgnat/a-nuflra.adb: Likewise. + * libgnat/a-nuflra.ads: Likewise. + * libgnat/a-numaux.ads: Likewise. + * libgnat/a-rbtgbk.adb: Likewise. + * libgnat/a-rbtgbk.ads: Likewise. + * libgnat/a-rbtgbo.adb: Likewise. + * libgnat/a-rbtgbo.ads: Likewise. + * libgnat/a-rbtgso.adb: Likewise. + * libgnat/a-rbtgso.ads: Likewise. + * libgnat/a-sbecin.adb: Likewise. + * libgnat/a-sbecin.ads: Likewise. + * libgnat/a-sbhcin.adb: Likewise. + * libgnat/a-sbhcin.ads: Likewise. + * libgnat/a-sblcin.adb: Likewise. + * libgnat/a-sblcin.ads: Likewise. + * libgnat/a-secain.adb: Likewise. + * libgnat/a-secain.ads: Likewise. + * libgnat/a-sequio.adb: Likewise. + * libgnat/a-sequio.ads: Likewise. + * libgnat/a-sfecin.ads: Likewise. + * libgnat/a-sfhcin.ads: Likewise. + * libgnat/a-sflcin.ads: Likewise. + * libgnat/a-shcain.adb: Likewise. + * libgnat/a-shcain.ads: Likewise. + * libgnat/a-siocst.adb: Likewise. + * libgnat/a-siocst.ads: Likewise. + * libgnat/a-slcain.adb: Likewise. + * libgnat/a-slcain.ads: Likewise. + * libgnat/a-ssicst.adb: Likewise. + * libgnat/a-ssicst.ads: Likewise. + * libgnat/a-stboha.adb: Likewise. + * libgnat/a-stmaco.ads: Likewise. + * libgnat/a-stobbu.adb: Likewise. + * libgnat/a-stobbu.ads: Likewise. + * libgnat/a-stobfi.adb: Likewise. + * libgnat/a-stobfi.ads: Likewise. + * libgnat/a-storio.adb: Likewise. + * libgnat/a-stoubu.adb: Likewise. + * libgnat/a-stoubu.ads: Likewise. + * libgnat/a-stoufi.adb: Likewise. + * libgnat/a-stoufi.ads: Likewise. + * libgnat/a-stoufo.adb: Likewise. + * libgnat/a-stoufo.ads: Likewise. + * libgnat/a-stouut.adb: Likewise. + * libgnat/a-stouut.ads: Likewise. + * libgnat/a-strbou.adb: Likewise. + * libgnat/a-strbou.ads: Likewise. + * libgnat/a-stream.adb: Likewise. + * libgnat/a-stream.ads: Likewise. + * libgnat/a-strfix.adb: Likewise. + * libgnat/a-strhas.adb: Likewise. + * libgnat/a-strmap.adb: Likewise. + * libgnat/a-strmap.ads: Likewise. + * libgnat/a-strsea.adb: Likewise. + * libgnat/a-strsea.ads: Likewise. + * libgnat/a-strsto.ads: Likewise. + * libgnat/a-strsup.adb: Likewise. + * libgnat/a-strsup.ads: Likewise. + * libgnat/a-strunb.adb: Likewise. + * libgnat/a-strunb.ads: Likewise. + * libgnat/a-strunb__shared.adb: Likewise. + * libgnat/a-strunb__shared.ads: Likewise. + * libgnat/a-ststbo.adb: Likewise. + * libgnat/a-ststbo.ads: Likewise. + * libgnat/a-ststio.adb: Likewise. + * libgnat/a-ststio.ads: Likewise. + * libgnat/a-ststun.adb: Likewise. + * libgnat/a-ststun.ads: Likewise. + * libgnat/a-stteou.ads: Likewise. + * libgnat/a-stunau.adb: Likewise. + * libgnat/a-stunau.ads: Likewise. + * libgnat/a-stunau__shared.adb: Likewise. + * libgnat/a-stunha.adb: Likewise. + * libgnat/a-stuten.adb: Likewise. + * libgnat/a-stwibo.adb: Likewise. + * libgnat/a-stwibo.ads: Likewise. + * libgnat/a-stwifi.adb: Likewise. + * libgnat/a-stwiha.adb: Likewise. + * libgnat/a-stwima.adb: Likewise. + * libgnat/a-stwima.ads: Likewise. + * libgnat/a-stwise.adb: Likewise. + * libgnat/a-stwise.ads: Likewise. + * libgnat/a-stwisu.adb: Likewise. + * libgnat/a-stwisu.ads: Likewise. + * libgnat/a-stwiun.adb: Likewise. + * libgnat/a-stwiun.ads: Likewise. + * libgnat/a-stwiun__shared.adb: Likewise. + * libgnat/a-stwiun__shared.ads: Likewise. + * libgnat/a-stzbou.adb: Likewise. + * libgnat/a-stzbou.ads: Likewise. + * libgnat/a-stzfix.adb: Likewise. + * libgnat/a-stzhas.adb: Likewise. + * libgnat/a-stzmap.adb: Likewise. + * libgnat/a-stzmap.ads: Likewise. + * libgnat/a-stzsea.adb: Likewise. + * libgnat/a-stzsea.ads: Likewise. + * libgnat/a-stzsup.adb: Likewise. + * libgnat/a-stzsup.ads: Likewise. + * libgnat/a-stzunb.adb: Likewise. + * libgnat/a-stzunb.ads: Likewise. + * libgnat/a-stzunb__shared.adb: Likewise. + * libgnat/a-stzunb__shared.ads: Likewise. + * libgnat/a-suecin.adb: Likewise. + * libgnat/a-suecin.ads: Likewise. + * libgnat/a-suenco.adb: Likewise. + * libgnat/a-suenst.adb: Likewise. + * libgnat/a-suewst.adb: Likewise. + * libgnat/a-suezst.adb: Likewise. + * libgnat/a-suhcin.adb: Likewise. + * libgnat/a-suhcin.ads: Likewise. + * libgnat/a-sulcin.adb: Likewise. + * libgnat/a-sulcin.ads: Likewise. + * libgnat/a-suteio.adb: Likewise. + * libgnat/a-suteio.ads: Likewise. + * libgnat/a-suteio__shared.adb: Likewise. + * libgnat/a-swbwha.adb: Likewise. + * libgnat/a-swmwco.ads: Likewise. + * libgnat/a-swunau.adb: Likewise. + * libgnat/a-swunau.ads: Likewise. + * libgnat/a-swunau__shared.adb: Likewise. + * libgnat/a-swuwha.adb: Likewise. + * libgnat/a-swuwti.adb: Likewise. + * libgnat/a-swuwti.ads: Likewise. + * libgnat/a-swuwti__shared.adb: Likewise. + * libgnat/a-szbzha.adb: Likewise. + * libgnat/a-szmzco.ads: Likewise. + * libgnat/a-szunau.adb: Likewise. + * libgnat/a-szunau.ads: Likewise. + * libgnat/a-szunau__shared.adb: Likewise. + * libgnat/a-szuzha.adb: Likewise. + * libgnat/a-szuzti.adb: Likewise. + * libgnat/a-szuzti.ads: Likewise. + * libgnat/a-szuzti__shared.adb: Likewise. + * libgnat/a-tags.adb: Likewise. + * libgnat/a-tags.ads: Likewise. + * libgnat/a-teioed.adb: Likewise. + * libgnat/a-teioed.ads: Likewise. + * libgnat/a-textio.adb: Likewise. + * libgnat/a-textio.ads: Likewise. + * libgnat/a-tiboio.adb: Likewise. + * libgnat/a-ticoau.adb: Likewise. + * libgnat/a-ticoau.ads: Likewise. + * libgnat/a-ticoio.adb: Likewise. + * libgnat/a-ticoio.ads: Likewise. + * libgnat/a-tideau.adb: Likewise. + * libgnat/a-tideau.ads: Likewise. + * libgnat/a-tideio.adb: Likewise. + * libgnat/a-tideio.ads: Likewise. + * libgnat/a-tideio__128.adb: Likewise. + * libgnat/a-tienau.adb: Likewise. + * libgnat/a-tienau.ads: Likewise. + * libgnat/a-tienio.adb: Likewise. + * libgnat/a-tifiau.adb: Likewise. + * libgnat/a-tifiau.ads: Likewise. + * libgnat/a-tifiio.adb: Likewise. + * libgnat/a-tifiio__128.adb: Likewise. + * libgnat/a-tiflau.adb: Likewise. + * libgnat/a-tiflau.ads: Likewise. + * libgnat/a-tiflio.adb: Likewise. + * libgnat/a-tiflio.ads: Likewise. + * libgnat/a-tigeau.adb: Likewise. + * libgnat/a-tigeau.ads: Likewise. + * libgnat/a-tigeli.adb: Likewise. + * libgnat/a-tiinau.adb: Likewise. + * libgnat/a-tiinau.ads: Likewise. + * libgnat/a-tiinio.adb: Likewise. + * libgnat/a-tiinio.ads: Likewise. + * libgnat/a-tiinio__128.adb: Likewise. + * libgnat/a-timoio.adb: Likewise. + * libgnat/a-timoio.ads: Likewise. + * libgnat/a-timoio__128.adb: Likewise. + * libgnat/a-tiocst.adb: Likewise. + * libgnat/a-tiocst.ads: Likewise. + * libgnat/a-tirsfi.adb: Likewise. + * libgnat/a-tirsfi.ads: Likewise. + * libgnat/a-titest.adb: Likewise. + * libgnat/a-undesu.adb: Likewise. + * libgnat/a-wichha.adb: Likewise. + * libgnat/a-wichun.adb: Likewise. + * libgnat/a-wichun.ads: Likewise. + * libgnat/a-witeio.adb: Likewise. + * libgnat/a-witeio.ads: Likewise. + * libgnat/a-wrstfi.adb: Likewise. + * libgnat/a-wrstfi.ads: Likewise. + * libgnat/a-wtcoau.adb: Likewise. + * libgnat/a-wtcoau.ads: Likewise. + * libgnat/a-wtcoio.adb: Likewise. + * libgnat/a-wtcstr.adb: Likewise. + * libgnat/a-wtcstr.ads: Likewise. + * libgnat/a-wtdeau.adb: Likewise. + * libgnat/a-wtdeau.ads: Likewise. + * libgnat/a-wtdeio.adb: Likewise. + * libgnat/a-wtdeio__128.adb: Likewise. + * libgnat/a-wtedit.adb: Likewise. + * libgnat/a-wtedit.ads: Likewise. + * libgnat/a-wtenau.adb: Likewise. + * libgnat/a-wtenau.ads: Likewise. + * libgnat/a-wtenio.adb: Likewise. + * libgnat/a-wtfiau.adb: Likewise. + * libgnat/a-wtfiau.ads: Likewise. + * libgnat/a-wtfiio.adb: Likewise. + * libgnat/a-wtfiio__128.adb: Likewise. + * libgnat/a-wtflau.adb: Likewise. + * libgnat/a-wtflau.ads: Likewise. + * libgnat/a-wtflio.adb: Likewise. + * libgnat/a-wtgeau.adb: Likewise. + * libgnat/a-wtgeau.ads: Likewise. + * libgnat/a-wtinau.adb: Likewise. + * libgnat/a-wtinau.ads: Likewise. + * libgnat/a-wtinio.adb: Likewise. + * libgnat/a-wtinio__128.adb: Likewise. + * libgnat/a-wtmoio.adb: Likewise. + * libgnat/a-wtmoio.ads: Likewise. + * libgnat/a-wtmoio__128.adb: Likewise. + * libgnat/a-wttest.adb: Likewise. + * libgnat/a-wwboio.adb: Likewise. + * libgnat/a-zchhan.adb: Likewise. + * libgnat/a-zchuni.adb: Likewise. + * libgnat/a-zchuni.ads: Likewise. + * libgnat/a-zrstfi.adb: Likewise. + * libgnat/a-zrstfi.ads: Likewise. + * libgnat/a-ztcoau.adb: Likewise. + * libgnat/a-ztcoio.adb: Likewise. + * libgnat/a-ztcstr.adb: Likewise. + * libgnat/a-ztcstr.ads: Likewise. + * libgnat/a-ztdeau.adb: Likewise. + * libgnat/a-ztdeau.ads: Likewise. + * libgnat/a-ztdeio.adb: Likewise. + * libgnat/a-ztdeio__128.adb: Likewise. + * libgnat/a-ztedit.adb: Likewise. + * libgnat/a-ztedit.ads: Likewise. + * libgnat/a-ztenau.adb: Likewise. + * libgnat/a-ztenau.ads: Likewise. + * libgnat/a-ztenio.adb: Likewise. + * libgnat/a-ztexio.adb: Likewise. + * libgnat/a-ztexio.ads: Likewise. + * libgnat/a-ztfiau.adb: Likewise. + * libgnat/a-ztfiau.ads: Likewise. + * libgnat/a-ztfiio.adb: Likewise. + * libgnat/a-ztfiio__128.adb: Likewise. + * libgnat/a-ztflau.adb: Likewise. + * libgnat/a-ztflau.ads: Likewise. + * libgnat/a-ztflio.adb: Likewise. + * libgnat/a-ztgeau.adb: Likewise. + * libgnat/a-ztgeau.ads: Likewise. + * libgnat/a-ztinau.adb: Likewise. + * libgnat/a-ztinau.ads: Likewise. + * libgnat/a-ztinio.adb: Likewise. + * libgnat/a-ztinio__128.adb: Likewise. + * libgnat/a-ztmoio.adb: Likewise. + * libgnat/a-ztmoio__128.adb: Likewise. + * libgnat/a-zttest.adb: Likewise. + * libgnat/a-zzboio.adb: Likewise. + * libgnat/g-allein.ads: Likewise. + * libgnat/g-alleve.adb: Likewise. + * libgnat/g-alleve.ads: Likewise. + * libgnat/g-alleve__hard.adb: Likewise. + * libgnat/g-alleve__hard.ads: Likewise. + * libgnat/g-altcon.adb: Likewise. + * libgnat/g-altcon.ads: Likewise. + * libgnat/g-altive.ads: Likewise. + * libgnat/g-alveop.adb: Likewise. + * libgnat/g-alveop.ads: Likewise. + * libgnat/g-alvety.ads: Likewise. + * libgnat/g-alvevi.ads: Likewise. + * libgnat/g-arrspl.adb: Likewise. + * libgnat/g-arrspl.ads: Likewise. + * libgnat/g-awk.adb: Likewise. + * libgnat/g-awk.ads: Likewise. + * libgnat/g-binenv.adb: Likewise. + * libgnat/g-binenv.ads: Likewise. + * libgnat/g-brapre.ads: Likewise. + * libgnat/g-bubsor.adb: Likewise. + * libgnat/g-bubsor.ads: Likewise. + * libgnat/g-busora.adb: Likewise. + * libgnat/g-busora.ads: Likewise. + * libgnat/g-busorg.adb: Likewise. + * libgnat/g-busorg.ads: Likewise. + * libgnat/g-byorma.adb: Likewise. + * libgnat/g-byorma.ads: Likewise. + * libgnat/g-bytswa.adb: Likewise. + * libgnat/g-bytswa.ads: Likewise. + * libgnat/g-calend.adb: Likewise. + * libgnat/g-calend.ads: Likewise. + * libgnat/g-casuti.adb: Likewise. + * libgnat/g-casuti.ads: Likewise. + * libgnat/g-catiio.adb: Likewise. + * libgnat/g-catiio.ads: Likewise. + * libgnat/g-cgi.adb: Likewise. + * libgnat/g-cgi.ads: Likewise. + * libgnat/g-cgicoo.adb: Likewise. + * libgnat/g-cgicoo.ads: Likewise. + * libgnat/g-cgideb.adb: Likewise. + * libgnat/g-cgideb.ads: Likewise. + * libgnat/g-comlin.adb: Likewise. + * libgnat/g-comlin.ads: Likewise. + * libgnat/g-comver.adb: Likewise. + * libgnat/g-comver.ads: Likewise. + * libgnat/g-cppexc.adb: Likewise. + * libgnat/g-cppexc.ads: Likewise. + * libgnat/g-crc32.adb: Likewise. + * libgnat/g-crc32.ads: Likewise. + * libgnat/g-ctrl_c.adb: Likewise. + * libgnat/g-ctrl_c.ads: Likewise. + * libgnat/g-curexc.ads: Likewise. + * libgnat/g-debpoo.adb: Likewise. + * libgnat/g-debpoo.ads: Likewise. + * libgnat/g-debuti.adb: Likewise. + * libgnat/g-debuti.ads: Likewise. + * libgnat/g-decstr.adb: Likewise. + * libgnat/g-decstr.ads: Likewise. + * libgnat/g-deutst.ads: Likewise. + * libgnat/g-diopit.adb: Likewise. + * libgnat/g-diopit.ads: Likewise. + * libgnat/g-dirope.adb: Likewise. + * libgnat/g-dirope.ads: Likewise. + * libgnat/g-dynhta.adb: Likewise. + * libgnat/g-dynhta.ads: Likewise. + * libgnat/g-dyntab.adb: Likewise. + * libgnat/g-dyntab.ads: Likewise. + * libgnat/g-eacodu.adb: Likewise. + * libgnat/g-encstr.adb: Likewise. + * libgnat/g-encstr.ads: Likewise. + * libgnat/g-enutst.ads: Likewise. + * libgnat/g-excact.adb: Likewise. + * libgnat/g-excact.ads: Likewise. + * libgnat/g-except.ads: Likewise. + * libgnat/g-exctra.adb: Likewise. + * libgnat/g-exctra.ads: Likewise. + * libgnat/g-expect.adb: Likewise. + * libgnat/g-expect.ads: Likewise. + * libgnat/g-exptty.adb: Likewise. + * libgnat/g-exptty.ads: Likewise. + * libgnat/g-flocon.ads: Likewise. + * libgnat/g-forstr.adb: Likewise. + * libgnat/g-forstr.ads: Likewise. + * libgnat/g-graphs.adb: Likewise. + * libgnat/g-graphs.ads: Likewise. + * libgnat/g-heasor.adb: Likewise. + * libgnat/g-heasor.ads: Likewise. + * libgnat/g-hesora.adb: Likewise. + * libgnat/g-hesora.ads: Likewise. + * libgnat/g-hesorg.adb: Likewise. + * libgnat/g-hesorg.ads: Likewise. + * libgnat/g-htable.adb: Likewise. + * libgnat/g-htable.ads: Likewise. + * libgnat/g-io-put__vxworks.adb: Likewise. + * libgnat/g-io.adb: Likewise. + * libgnat/g-io.ads: Likewise. + * libgnat/g-io_aux.adb: Likewise. + * libgnat/g-io_aux.ads: Likewise. + * libgnat/g-lists.adb: Likewise. + * libgnat/g-lists.ads: Likewise. + * libgnat/g-locfil.adb: Likewise. + * libgnat/g-locfil.ads: Likewise. + * libgnat/g-mbdira.adb: Likewise. + * libgnat/g-mbdira.ads: Likewise. + * libgnat/g-mbflra.adb: Likewise. + * libgnat/g-mbflra.ads: Likewise. + * libgnat/g-md5.adb: Likewise. + * libgnat/g-md5.ads: Likewise. + * libgnat/g-memdum.adb: Likewise. + * libgnat/g-memdum.ads: Likewise. + * libgnat/g-moreex.adb: Likewise. + * libgnat/g-moreex.ads: Likewise. + * libgnat/g-os_lib.adb: Likewise. + * libgnat/g-os_lib.ads: Likewise. + * libgnat/g-pehage.adb: Likewise. + * libgnat/g-pehage.ads: Likewise. + * libgnat/g-rannum.adb: Likewise. + * libgnat/g-rannum.ads: Likewise. + * libgnat/g-regexp.adb: Likewise. + * libgnat/g-regexp.ads: Likewise. + * libgnat/g-regist.adb: Likewise. + * libgnat/g-regist.ads: Likewise. + * libgnat/g-regpat.adb: Likewise. + * libgnat/g-regpat.ads: Likewise. + * libgnat/g-rewdat.adb: Likewise. + * libgnat/g-rewdat.ads: Likewise. + * libgnat/g-sechas.adb: Likewise. + * libgnat/g-sechas.ads: Likewise. + * libgnat/g-sehamd.adb: Likewise. + * libgnat/g-sehamd.ads: Likewise. + * libgnat/g-sehash.adb: Likewise. + * libgnat/g-sehash.ads: Likewise. + * libgnat/g-sercom.adb: Likewise. + * libgnat/g-sercom.ads: Likewise. + * libgnat/g-sercom__linux.adb: Likewise. + * libgnat/g-sercom__mingw.adb: Likewise. + * libgnat/g-sestin.ads: Likewise. + * libgnat/g-sets.adb: Likewise. + * libgnat/g-sets.ads: Likewise. + * libgnat/g-sha1.adb: Likewise. + * libgnat/g-sha1.ads: Likewise. + * libgnat/g-sha224.ads: Likewise. + * libgnat/g-sha256.ads: Likewise. + * libgnat/g-sha384.ads: Likewise. + * libgnat/g-sha512.ads: Likewise. + * libgnat/g-shsh32.adb: Likewise. + * libgnat/g-shsh32.ads: Likewise. + * libgnat/g-shsh64.adb: Likewise. + * libgnat/g-shsh64.ads: Likewise. + * libgnat/g-shshco.adb: Likewise. + * libgnat/g-shshco.ads: Likewise. + * libgnat/g-soccon.ads: Likewise. + * libgnat/g-socket.adb: Likewise. + * libgnat/g-socket.ads: Likewise. + * libgnat/g-socket__dummy.adb: Likewise. + * libgnat/g-socket__dummy.ads: Likewise. + * libgnat/g-socpol.adb: Likewise. + * libgnat/g-socpol.ads: Likewise. + * libgnat/g-socpol__dummy.adb: Likewise. + * libgnat/g-socpol__dummy.ads: Likewise. + * libgnat/g-socthi.adb: Likewise. + * libgnat/g-socthi.ads: Likewise. + * libgnat/g-socthi__dummy.adb: Likewise. + * libgnat/g-socthi__dummy.ads: Likewise. + * libgnat/g-socthi__mingw.adb: Likewise. + * libgnat/g-socthi__mingw.ads: Likewise. + * libgnat/g-socthi__vxworks.adb: Likewise. + * libgnat/g-socthi__vxworks.ads: Likewise. + * libgnat/g-soliop.ads: Likewise. + * libgnat/g-soliop__lynxos.ads: Likewise. + * libgnat/g-soliop__mingw.ads: Likewise. + * libgnat/g-soliop__qnx.ads: Likewise. + * libgnat/g-soliop__solaris.ads: Likewise. + * libgnat/g-sopowa.adb: Likewise. + * libgnat/g-sopowa__mingw.adb: Likewise. + * libgnat/g-sopowa__posix.adb: Likewise. + * libgnat/g-sothco.adb: Likewise. + * libgnat/g-sothco.ads: Likewise. + * libgnat/g-sothco__dummy.adb: Likewise. + * libgnat/g-sothco__dummy.ads: Likewise. + * libgnat/g-souinf.ads: Likewise. + * libgnat/g-spchge.adb: Likewise. + * libgnat/g-spchge.ads: Likewise. + * libgnat/g-speche.adb: Likewise. + * libgnat/g-speche.ads: Likewise. + * libgnat/g-spipat.adb: Likewise. + * libgnat/g-spipat.ads: Likewise. + * libgnat/g-spitbo.adb: Likewise. + * libgnat/g-spitbo.ads: Likewise. + * libgnat/g-spogwa.adb: Likewise. + * libgnat/g-spogwa.ads: Likewise. + * libgnat/g-sptabo.ads: Likewise. + * libgnat/g-sptain.ads: Likewise. + * libgnat/g-sptavs.ads: Likewise. + * libgnat/g-sse.ads: Likewise. + * libgnat/g-ssvety.ads: Likewise. + * libgnat/g-sthcso.adb: Likewise. + * libgnat/g-stheme.adb: Likewise. + * libgnat/g-strhas.ads: Likewise. + * libgnat/g-string.adb: Likewise. + * libgnat/g-string.ads: Likewise. + * libgnat/g-strspl.ads: Likewise. + * libgnat/g-stseme.adb: Likewise. + * libgnat/g-stsifd__sockets.adb: Likewise. + * libgnat/g-table.adb: Likewise. + * libgnat/g-table.ads: Likewise. + * libgnat/g-tasloc.adb: Likewise. + * libgnat/g-tasloc.ads: Likewise. + * libgnat/g-timsta.adb: Likewise. + * libgnat/g-timsta.ads: Likewise. + * libgnat/g-traceb.adb: Likewise. + * libgnat/g-traceb.ads: Likewise. + * libgnat/g-trasym.adb: Likewise. + * libgnat/g-trasym.ads: Likewise. + * libgnat/g-tty.adb: Likewise. + * libgnat/g-tty.ads: Likewise. + * libgnat/g-u3spch.adb: Likewise. + * libgnat/g-u3spch.ads: Likewise. + * libgnat/g-utf_32.adb: Likewise. + * libgnat/g-utf_32.ads: Likewise. + * libgnat/g-wispch.adb: Likewise. + * libgnat/g-wispch.ads: Likewise. + * libgnat/g-wistsp.ads: Likewise. + * libgnat/g-zspche.adb: Likewise. + * libgnat/g-zspche.ads: Likewise. + * libgnat/g-zstspl.ads: Likewise. + * libgnat/gnat.ads: Likewise. + * libgnat/i-c.adb: Likewise. + * libgnat/i-cexten.ads: Likewise. + * libgnat/i-cexten__128.ads: Likewise. + * libgnat/i-cobol.adb: Likewise. + * libgnat/i-cobol.ads: Likewise. + * libgnat/i-cpoint.adb: Likewise. + * libgnat/i-cpoint.ads: Likewise. + * libgnat/i-cstrea.adb: Likewise. + * libgnat/i-cstrea.ads: Likewise. + * libgnat/i-cstrin.adb: Likewise. + * libgnat/i-cstrin.ads: Likewise. + * libgnat/i-fortra.adb: Likewise. + * libgnat/i-pacdec.adb: Likewise. + * libgnat/i-pacdec.ads: Likewise. + * libgnat/i-vxwoio.adb: Likewise. + * libgnat/i-vxwoio.ads: Likewise. + * libgnat/i-vxwork.ads: Likewise. + * libgnat/i-vxwork__x86.ads: Likewise. + * libgnat/interfac.ads: Likewise. + * libgnat/interfac__2020.ads: Likewise. + * libgnat/memtrack.adb: Likewise. + * libgnat/s-addima.adb: Likewise. + * libgnat/s-addima.ads: Likewise. + * libgnat/s-addope.adb: Likewise. + * libgnat/s-addope.ads: Likewise. + * libgnat/s-aoinar.adb: Likewise. + * libgnat/s-aoinar.ads: Likewise. + * libgnat/s-aomoar.adb: Likewise. + * libgnat/s-aomoar.ads: Likewise. + * libgnat/s-aotase.adb: Likewise. + * libgnat/s-aotase.ads: Likewise. + * libgnat/s-aridou.adb: Likewise. + * libgnat/s-aridou.ads: Likewise. + * libgnat/s-arit128.adb: Likewise. + * libgnat/s-arit128.ads: Likewise. + * libgnat/s-arit32.adb: Likewise. + * libgnat/s-arit32.ads: Likewise. + * libgnat/s-arit64.adb: Likewise. + * libgnat/s-arit64.ads: Likewise. + * libgnat/s-assert.adb: Likewise. + * libgnat/s-assert.ads: Likewise. + * libgnat/s-atacco.adb: Likewise. + * libgnat/s-atacco.ads: Likewise. + * libgnat/s-atocou.adb: Likewise. + * libgnat/s-atocou.ads: Likewise. + * libgnat/s-atocou__builtin.adb: Likewise. + * libgnat/s-atocou__x86.adb: Likewise. + * libgnat/s-atoope.ads: Likewise. + * libgnat/s-atopex.adb: Likewise. + * libgnat/s-atopex.ads: Likewise. + * libgnat/s-atopri.adb: Likewise. + * libgnat/s-atopri.ads: Likewise. + * libgnat/s-auxdec.adb: Likewise. + * libgnat/s-auxdec.ads: Likewise. + * libgnat/s-bignum.adb: Likewise. + * libgnat/s-bignum.ads: Likewise. + * libgnat/s-bitfie.ads: Likewise. + * libgnat/s-bitops.adb: Likewise. + * libgnat/s-bitops.ads: Likewise. + * libgnat/s-bituti.adb: Likewise. + * libgnat/s-bituti.ads: Likewise. + * libgnat/s-boarop.ads: Likewise. + * libgnat/s-boustr.adb: Likewise. + * libgnat/s-boustr.ads: Likewise. + * libgnat/s-bytswa.ads: Likewise. + * libgnat/s-carsi8.adb: Likewise. + * libgnat/s-carsi8.ads: Likewise. + * libgnat/s-carun8.adb: Likewise. + * libgnat/s-carun8.ads: Likewise. + * libgnat/s-casi128.adb: Likewise. + * libgnat/s-casi128.ads: Likewise. + * libgnat/s-casi16.adb: Likewise. + * libgnat/s-casi16.ads: Likewise. + * libgnat/s-casi32.adb: Likewise. + * libgnat/s-casi32.ads: Likewise. + * libgnat/s-casi64.adb: Likewise. + * libgnat/s-casi64.ads: Likewise. + * libgnat/s-casuti.adb: Likewise. + * libgnat/s-casuti.ads: Likewise. + * libgnat/s-caun128.adb: Likewise. + * libgnat/s-caun128.ads: Likewise. + * libgnat/s-caun16.adb: Likewise. + * libgnat/s-caun16.ads: Likewise. + * libgnat/s-caun32.adb: Likewise. + * libgnat/s-caun32.ads: Likewise. + * libgnat/s-caun64.adb: Likewise. + * libgnat/s-caun64.ads: Likewise. + * libgnat/s-chepoo.ads: Likewise. + * libgnat/s-commun.adb: Likewise. + * libgnat/s-commun.ads: Likewise. + * libgnat/s-conca2.adb: Likewise. + * libgnat/s-conca2.ads: Likewise. + * libgnat/s-conca3.adb: Likewise. + * libgnat/s-conca3.ads: Likewise. + * libgnat/s-conca4.adb: Likewise. + * libgnat/s-conca4.ads: Likewise. + * libgnat/s-conca5.adb: Likewise. + * libgnat/s-conca5.ads: Likewise. + * libgnat/s-conca6.adb: Likewise. + * libgnat/s-conca6.ads: Likewise. + * libgnat/s-conca7.adb: Likewise. + * libgnat/s-conca7.ads: Likewise. + * libgnat/s-conca8.adb: Likewise. + * libgnat/s-conca8.ads: Likewise. + * libgnat/s-conca9.adb: Likewise. + * libgnat/s-conca9.ads: Likewise. + * libgnat/s-crc32.adb: Likewise. + * libgnat/s-crc32.ads: Likewise. + * libgnat/s-crtl.ads: Likewise. + * libgnat/s-dfmkio.ads: Likewise. + * libgnat/s-dfmopr.ads: Likewise. + * libgnat/s-dgmgop.ads: Likewise. + * libgnat/s-diflio.adb: Likewise. + * libgnat/s-diflio.ads: Likewise. + * libgnat/s-diflmk.ads: Likewise. + * libgnat/s-digemk.ads: Likewise. + * libgnat/s-diinio.adb: Likewise. + * libgnat/s-diinio.ads: Likewise. + * libgnat/s-dilomk.ads: Likewise. + * libgnat/s-dim.ads: Likewise. + * libgnat/s-dimkio.ads: Likewise. + * libgnat/s-dimmks.ads: Likewise. + * libgnat/s-direio.adb: Likewise. + * libgnat/s-direio.ads: Likewise. + * libgnat/s-dlmkio.ads: Likewise. + * libgnat/s-dlmopr.ads: Likewise. + * libgnat/s-dmotpr.ads: Likewise. + * libgnat/s-dsaser.ads: Likewise. + * libgnat/s-dwalin.adb: Likewise. + * libgnat/s-dwalin.ads: Likewise. + * libgnat/s-elaall.adb: Likewise. + * libgnat/s-elaall.ads: Likewise. + * libgnat/s-excdeb.adb: Likewise. + * libgnat/s-excdeb.ads: Likewise. + * libgnat/s-except.adb: Likewise. + * libgnat/s-except.ads: Likewise. + * libgnat/s-excmac__arm.adb: Likewise. + * libgnat/s-excmac__arm.ads: Likewise. + * libgnat/s-excmac__gcc.adb: Likewise. + * libgnat/s-excmac__gcc.ads: Likewise. + * libgnat/s-exctab.adb: Likewise. + * libgnat/s-exctab.ads: Likewise. + * libgnat/s-exctra.adb: Likewise. + * libgnat/s-exctra.ads: Likewise. + * libgnat/s-exnint.adb: Likewise. + * libgnat/s-exnint.ads: Likewise. + * libgnat/s-exnllf.adb: Likewise. + * libgnat/s-exnllf.ads: Likewise. + * libgnat/s-exnlli.adb: Likewise. + * libgnat/s-exnlli.ads: Likewise. + * libgnat/s-exnllli.ads: Likewise. + * libgnat/s-expint.adb: Likewise. + * libgnat/s-expint.ads: Likewise. + * libgnat/s-explli.adb: Likewise. + * libgnat/s-explli.ads: Likewise. + * libgnat/s-expllli.ads: Likewise. + * libgnat/s-explllu.ads: Likewise. + * libgnat/s-expllu.adb: Likewise. + * libgnat/s-expllu.ads: Likewise. + * libgnat/s-expmod.adb: Likewise. + * libgnat/s-expmod.ads: Likewise. + * libgnat/s-exponn.adb: Likewise. + * libgnat/s-exponn.ads: Likewise. + * libgnat/s-expont.adb: Likewise. + * libgnat/s-expont.ads: Likewise. + * libgnat/s-exponu.adb: Likewise. + * libgnat/s-exponu.ads: Likewise. + * libgnat/s-expuns.adb: Likewise. + * libgnat/s-expuns.ads: Likewise. + * libgnat/s-fatflt.ads: Likewise. + * libgnat/s-fatgen.adb: Likewise. + * libgnat/s-fatgen.ads: Likewise. + * libgnat/s-fatlfl.ads: Likewise. + * libgnat/s-fatllf.ads: Likewise. + * libgnat/s-ficobl.ads: Likewise. + * libgnat/s-filatt.ads: Likewise. + * libgnat/s-fileio.adb: Likewise. + * libgnat/s-fileio.ads: Likewise. + * libgnat/s-finmas.adb: Likewise. + * libgnat/s-finmas.ads: Likewise. + * libgnat/s-finroo.adb: Likewise. + * libgnat/s-finroo.ads: Likewise. + * libgnat/s-flocon.adb: Likewise. + * libgnat/s-flocon.ads: Likewise. + * libgnat/s-flocon__none.adb: Likewise. + * libgnat/s-fode128.ads: Likewise. + * 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.adb: Likewise. + * libgnat/s-fore_d.ads: Likewise. + * libgnat/s-fore_f.adb: Likewise. + * libgnat/s-fore_f.ads: Likewise. + * libgnat/s-forrea.adb: Likewise. + * libgnat/s-forrea.ads: Likewise. + * libgnat/s-gearop.adb: Likewise. + * libgnat/s-gearop.ads: Likewise. + * libgnat/s-genbig.adb: Likewise. + * libgnat/s-genbig.ads: Likewise. + * libgnat/s-geveop.adb: Likewise. + * libgnat/s-geveop.ads: Likewise. + * libgnat/s-gloloc.adb: Likewise. + * libgnat/s-gloloc.ads: Likewise. + * libgnat/s-gloloc__mingw.adb: Likewise. + * libgnat/s-htable.adb: Likewise. + * libgnat/s-htable.ads: Likewise. + * libgnat/s-imageb.adb: Likewise. + * libgnat/s-imageb.ads: Likewise. + * libgnat/s-imaged.adb: Likewise. + * libgnat/s-imaged.ads: Likewise. + * libgnat/s-imagef.adb: Likewise. + * libgnat/s-imagef.ads: Likewise. + * libgnat/s-imagei.adb: Likewise. + * libgnat/s-imagei.ads: Likewise. + * libgnat/s-imageu.adb: Likewise. + * libgnat/s-imageu.ads: Likewise. + * libgnat/s-imagew.adb: Likewise. + * libgnat/s-imagew.ads: Likewise. + * libgnat/s-imde128.ads: Likewise. + * libgnat/s-imde32.ads: Likewise. + * libgnat/s-imde64.ads: Likewise. + * libgnat/s-imenne.adb: Likewise. + * libgnat/s-imenne.ads: Likewise. + * libgnat/s-imfi128.ads: Likewise. + * libgnat/s-imfi32.ads: Likewise. + * libgnat/s-imfi64.ads: Likewise. + * libgnat/s-imgbiu.adb: Likewise. + * libgnat/s-imgbiu.ads: Likewise. + * libgnat/s-imgboo.adb: Likewise. + * libgnat/s-imgboo.ads: Likewise. + * libgnat/s-imgcha.adb: Likewise. + * libgnat/s-imgcha.ads: Likewise. + * libgnat/s-imgenu.adb: Likewise. + * libgnat/s-imgenu.ads: Likewise. + * libgnat/s-imgint.adb: Likewise. + * libgnat/s-imgint.ads: Likewise. + * libgnat/s-imgllb.adb: Likewise. + * libgnat/s-imgllb.ads: Likewise. + * libgnat/s-imglli.adb: Likewise. + * libgnat/s-imglli.ads: Likewise. + * libgnat/s-imglllb.ads: Likewise. + * libgnat/s-imgllli.ads: Likewise. + * libgnat/s-imglllu.ads: Likewise. + * libgnat/s-imglllw.ads: Likewise. + * libgnat/s-imgllu.adb: Likewise. + * libgnat/s-imgllu.ads: Likewise. + * libgnat/s-imgllw.adb: Likewise. + * libgnat/s-imgllw.ads: Likewise. + * libgnat/s-imgrea.adb: Likewise. + * libgnat/s-imgrea.ads: Likewise. + * libgnat/s-imguns.adb: Likewise. + * libgnat/s-imguns.ads: Likewise. + * libgnat/s-imguti.adb: Likewise. + * libgnat/s-imguti.ads: Likewise. + * libgnat/s-imgwch.adb: Likewise. + * libgnat/s-imgwch.ads: Likewise. + * libgnat/s-imgwiu.adb: Likewise. + * libgnat/s-imgwiu.ads: Likewise. + * libgnat/s-io.adb: Likewise. + * libgnat/s-io.ads: Likewise. + * libgnat/s-llflex.ads: Likewise. + * libgnat/s-maccod.ads: Likewise. + * libgnat/s-mantis.adb: Likewise. + * libgnat/s-mantis.ads: Likewise. + * libgnat/s-mastop.adb: Likewise. + * libgnat/s-mastop.ads: Likewise. + * libgnat/s-memcop.ads: Likewise. + * libgnat/s-memory.adb: Likewise. + * libgnat/s-memory.ads: Likewise. + * libgnat/s-mmap.adb: Likewise. + * libgnat/s-mmap.ads: Likewise. + * libgnat/s-mmauni__long.ads: Likewise. + * libgnat/s-mmosin__mingw.adb: Likewise. + * libgnat/s-mmosin__mingw.ads: Likewise. + * libgnat/s-mmosin__unix.adb: Likewise. + * libgnat/s-mmosin__unix.ads: Likewise. + * libgnat/s-multip.adb: Likewise. + * libgnat/s-objrea.adb: Likewise. + * libgnat/s-objrea.ads: Likewise. + * libgnat/s-optide.adb: Likewise. + * libgnat/s-os_lib.adb: Likewise. + * libgnat/s-os_lib.ads: Likewise. + * libgnat/s-osprim.ads: Likewise. + * libgnat/s-osprim__darwin.adb: Likewise. + * libgnat/s-osprim__lynxos.ads: Likewise. + * libgnat/s-osprim__mingw.adb: Likewise. + * libgnat/s-osprim__posix.adb: Likewise. + * libgnat/s-osprim__posix2008.adb: Likewise. + * libgnat/s-osprim__rtems.adb: Likewise. + * libgnat/s-osprim__solaris.adb: Likewise. + * libgnat/s-osprim__unix.adb: Likewise. + * libgnat/s-osprim__vxworks.adb: Likewise. + * libgnat/s-osprim__x32.adb: Likewise. + * libgnat/s-osvers__vxworks-653.ads: Likewise. + * libgnat/s-pack03.adb: Likewise. + * libgnat/s-pack03.ads: Likewise. + * libgnat/s-pack05.adb: Likewise. + * libgnat/s-pack05.ads: Likewise. + * libgnat/s-pack06.adb: Likewise. + * libgnat/s-pack06.ads: Likewise. + * libgnat/s-pack07.adb: Likewise. + * libgnat/s-pack07.ads: Likewise. + * libgnat/s-pack09.adb: Likewise. + * libgnat/s-pack09.ads: Likewise. + * libgnat/s-pack10.adb: Likewise. + * libgnat/s-pack10.ads: Likewise. + * libgnat/s-pack100.adb: Likewise. + * libgnat/s-pack100.ads: Likewise. + * libgnat/s-pack101.adb: Likewise. + * libgnat/s-pack101.ads: Likewise. + * libgnat/s-pack102.adb: Likewise. + * libgnat/s-pack102.ads: Likewise. + * libgnat/s-pack103.adb: Likewise. + * libgnat/s-pack103.ads: Likewise. + * libgnat/s-pack104.adb: Likewise. + * libgnat/s-pack104.ads: Likewise. + * libgnat/s-pack105.adb: Likewise. + * libgnat/s-pack105.ads: Likewise. + * libgnat/s-pack106.adb: Likewise. + * libgnat/s-pack106.ads: Likewise. + * libgnat/s-pack107.adb: Likewise. + * libgnat/s-pack107.ads: Likewise. + * libgnat/s-pack108.adb: Likewise. + * libgnat/s-pack108.ads: Likewise. + * libgnat/s-pack109.adb: Likewise. + * libgnat/s-pack109.ads: Likewise. + * libgnat/s-pack11.adb: Likewise. + * libgnat/s-pack11.ads: Likewise. + * libgnat/s-pack110.adb: Likewise. + * libgnat/s-pack110.ads: Likewise. + * libgnat/s-pack111.adb: Likewise. + * libgnat/s-pack111.ads: Likewise. + * libgnat/s-pack112.adb: Likewise. + * libgnat/s-pack112.ads: Likewise. + * libgnat/s-pack113.adb: Likewise. + * libgnat/s-pack113.ads: Likewise. + * libgnat/s-pack114.adb: Likewise. + * libgnat/s-pack114.ads: Likewise. + * libgnat/s-pack115.adb: Likewise. + * libgnat/s-pack115.ads: Likewise. + * libgnat/s-pack116.adb: Likewise. + * libgnat/s-pack116.ads: Likewise. + * libgnat/s-pack117.adb: Likewise. + * libgnat/s-pack117.ads: Likewise. + * libgnat/s-pack118.adb: Likewise. + * libgnat/s-pack118.ads: Likewise. + * libgnat/s-pack119.adb: Likewise. + * libgnat/s-pack119.ads: Likewise. + * libgnat/s-pack12.adb: Likewise. + * libgnat/s-pack12.ads: Likewise. + * libgnat/s-pack120.adb: Likewise. + * libgnat/s-pack120.ads: Likewise. + * libgnat/s-pack121.adb: Likewise. + * libgnat/s-pack121.ads: Likewise. + * libgnat/s-pack122.adb: Likewise. + * libgnat/s-pack122.ads: Likewise. + * libgnat/s-pack123.adb: Likewise. + * libgnat/s-pack123.ads: Likewise. + * libgnat/s-pack124.adb: Likewise. + * libgnat/s-pack124.ads: Likewise. + * libgnat/s-pack125.adb: Likewise. + * libgnat/s-pack125.ads: Likewise. + * libgnat/s-pack126.adb: Likewise. + * libgnat/s-pack126.ads: Likewise. + * libgnat/s-pack127.adb: Likewise. + * libgnat/s-pack127.ads: Likewise. + * libgnat/s-pack13.adb: Likewise. + * libgnat/s-pack13.ads: Likewise. + * libgnat/s-pack14.adb: Likewise. + * libgnat/s-pack14.ads: Likewise. + * libgnat/s-pack15.adb: Likewise. + * libgnat/s-pack15.ads: Likewise. + * libgnat/s-pack17.adb: Likewise. + * libgnat/s-pack17.ads: Likewise. + * libgnat/s-pack18.adb: Likewise. + * libgnat/s-pack18.ads: Likewise. + * libgnat/s-pack19.adb: Likewise. + * libgnat/s-pack19.ads: Likewise. + * libgnat/s-pack20.adb: Likewise. + * libgnat/s-pack20.ads: Likewise. + * libgnat/s-pack21.adb: Likewise. + * libgnat/s-pack21.ads: Likewise. + * libgnat/s-pack22.adb: Likewise. + * libgnat/s-pack22.ads: Likewise. + * libgnat/s-pack23.adb: Likewise. + * libgnat/s-pack23.ads: Likewise. + * libgnat/s-pack24.adb: Likewise. + * libgnat/s-pack24.ads: Likewise. + * libgnat/s-pack25.adb: Likewise. + * libgnat/s-pack25.ads: Likewise. + * libgnat/s-pack26.adb: Likewise. + * libgnat/s-pack26.ads: Likewise. + * libgnat/s-pack27.adb: Likewise. + * libgnat/s-pack27.ads: Likewise. + * libgnat/s-pack28.adb: Likewise. + * libgnat/s-pack28.ads: Likewise. + * libgnat/s-pack29.adb: Likewise. + * libgnat/s-pack29.ads: Likewise. + * libgnat/s-pack30.adb: Likewise. + * libgnat/s-pack30.ads: Likewise. + * libgnat/s-pack31.adb: Likewise. + * libgnat/s-pack31.ads: Likewise. + * libgnat/s-pack33.adb: Likewise. + * libgnat/s-pack33.ads: Likewise. + * libgnat/s-pack34.adb: Likewise. + * libgnat/s-pack34.ads: Likewise. + * libgnat/s-pack35.adb: Likewise. + * libgnat/s-pack35.ads: Likewise. + * libgnat/s-pack36.adb: Likewise. + * libgnat/s-pack36.ads: Likewise. + * libgnat/s-pack37.adb: Likewise. + * libgnat/s-pack37.ads: Likewise. + * libgnat/s-pack38.adb: Likewise. + * libgnat/s-pack38.ads: Likewise. + * libgnat/s-pack39.adb: Likewise. + * libgnat/s-pack39.ads: Likewise. + * libgnat/s-pack40.adb: Likewise. + * libgnat/s-pack40.ads: Likewise. + * libgnat/s-pack41.adb: Likewise. + * libgnat/s-pack41.ads: Likewise. + * libgnat/s-pack42.adb: Likewise. + * libgnat/s-pack42.ads: Likewise. + * libgnat/s-pack43.adb: Likewise. + * libgnat/s-pack43.ads: Likewise. + * libgnat/s-pack44.adb: Likewise. + * libgnat/s-pack44.ads: Likewise. + * libgnat/s-pack45.adb: Likewise. + * libgnat/s-pack45.ads: Likewise. + * libgnat/s-pack46.adb: Likewise. + * libgnat/s-pack46.ads: Likewise. + * libgnat/s-pack47.adb: Likewise. + * libgnat/s-pack47.ads: Likewise. + * libgnat/s-pack48.adb: Likewise. + * libgnat/s-pack48.ads: Likewise. + * libgnat/s-pack49.adb: Likewise. + * libgnat/s-pack49.ads: Likewise. + * libgnat/s-pack50.adb: Likewise. + * libgnat/s-pack50.ads: Likewise. + * libgnat/s-pack51.adb: Likewise. + * libgnat/s-pack51.ads: Likewise. + * libgnat/s-pack52.adb: Likewise. + * libgnat/s-pack52.ads: Likewise. + * libgnat/s-pack53.adb: Likewise. + * libgnat/s-pack53.ads: Likewise. + * libgnat/s-pack54.adb: Likewise. + * libgnat/s-pack54.ads: Likewise. + * libgnat/s-pack55.adb: Likewise. + * libgnat/s-pack55.ads: Likewise. + * libgnat/s-pack56.adb: Likewise. + * libgnat/s-pack56.ads: Likewise. + * libgnat/s-pack57.adb: Likewise. + * libgnat/s-pack57.ads: Likewise. + * libgnat/s-pack58.adb: Likewise. + * libgnat/s-pack58.ads: Likewise. + * libgnat/s-pack59.adb: Likewise. + * libgnat/s-pack59.ads: Likewise. + * libgnat/s-pack60.adb: Likewise. + * libgnat/s-pack60.ads: Likewise. + * libgnat/s-pack61.adb: Likewise. + * libgnat/s-pack61.ads: Likewise. + * libgnat/s-pack62.adb: Likewise. + * libgnat/s-pack62.ads: Likewise. + * libgnat/s-pack63.adb: Likewise. + * libgnat/s-pack63.ads: Likewise. + * libgnat/s-pack65.adb: Likewise. + * libgnat/s-pack65.ads: Likewise. + * libgnat/s-pack66.adb: Likewise. + * libgnat/s-pack66.ads: Likewise. + * libgnat/s-pack67.adb: Likewise. + * libgnat/s-pack67.ads: Likewise. + * libgnat/s-pack68.adb: Likewise. + * libgnat/s-pack68.ads: Likewise. + * libgnat/s-pack69.adb: Likewise. + * libgnat/s-pack69.ads: Likewise. + * libgnat/s-pack70.adb: Likewise. + * libgnat/s-pack70.ads: Likewise. + * libgnat/s-pack71.adb: Likewise. + * libgnat/s-pack71.ads: Likewise. + * libgnat/s-pack72.adb: Likewise. + * libgnat/s-pack72.ads: Likewise. + * libgnat/s-pack73.adb: Likewise. + * libgnat/s-pack73.ads: Likewise. + * libgnat/s-pack74.adb: Likewise. + * libgnat/s-pack74.ads: Likewise. + * libgnat/s-pack75.adb: Likewise. + * libgnat/s-pack75.ads: Likewise. + * libgnat/s-pack76.adb: Likewise. + * libgnat/s-pack76.ads: Likewise. + * libgnat/s-pack77.adb: Likewise. + * libgnat/s-pack77.ads: Likewise. + * libgnat/s-pack78.adb: Likewise. + * libgnat/s-pack78.ads: Likewise. + * libgnat/s-pack79.adb: Likewise. + * libgnat/s-pack79.ads: Likewise. + * libgnat/s-pack80.adb: Likewise. + * libgnat/s-pack80.ads: Likewise. + * libgnat/s-pack81.adb: Likewise. + * libgnat/s-pack81.ads: Likewise. + * libgnat/s-pack82.adb: Likewise. + * libgnat/s-pack82.ads: Likewise. + * libgnat/s-pack83.adb: Likewise. + * libgnat/s-pack83.ads: Likewise. + * libgnat/s-pack84.adb: Likewise. + * libgnat/s-pack84.ads: Likewise. + * libgnat/s-pack85.adb: Likewise. + * libgnat/s-pack85.ads: Likewise. + * libgnat/s-pack86.adb: Likewise. + * libgnat/s-pack86.ads: Likewise. + * libgnat/s-pack87.adb: Likewise. + * libgnat/s-pack87.ads: Likewise. + * libgnat/s-pack88.adb: Likewise. + * libgnat/s-pack88.ads: Likewise. + * libgnat/s-pack89.adb: Likewise. + * libgnat/s-pack89.ads: Likewise. + * libgnat/s-pack90.adb: Likewise. + * libgnat/s-pack90.ads: Likewise. + * libgnat/s-pack91.adb: Likewise. + * libgnat/s-pack91.ads: Likewise. + * libgnat/s-pack92.adb: Likewise. + * libgnat/s-pack92.ads: Likewise. + * libgnat/s-pack93.adb: Likewise. + * libgnat/s-pack93.ads: Likewise. + * libgnat/s-pack94.adb: Likewise. + * libgnat/s-pack94.ads: Likewise. + * libgnat/s-pack95.adb: Likewise. + * libgnat/s-pack95.ads: Likewise. + * libgnat/s-pack96.adb: Likewise. + * libgnat/s-pack96.ads: Likewise. + * libgnat/s-pack97.adb: Likewise. + * libgnat/s-pack97.ads: Likewise. + * libgnat/s-pack98.adb: Likewise. + * libgnat/s-pack98.ads: Likewise. + * libgnat/s-pack99.adb: Likewise. + * libgnat/s-pack99.ads: Likewise. + * libgnat/s-parame.adb: Likewise. + * libgnat/s-parame.ads: Likewise. + * libgnat/s-parame__ae653.ads: Likewise. + * libgnat/s-parame__hpux.ads: Likewise. + * libgnat/s-parame__rtems.adb: Likewise. + * libgnat/s-parame__vxworks.adb: Likewise. + * libgnat/s-parame__vxworks.ads: Likewise. + * libgnat/s-parint.adb: Likewise. + * libgnat/s-parint.ads: Likewise. + * libgnat/s-pooglo.adb: Likewise. + * libgnat/s-pooglo.ads: Likewise. + * libgnat/s-pooloc.adb: Likewise. + * libgnat/s-pooloc.ads: Likewise. + * libgnat/s-poosiz.adb: Likewise. + * libgnat/s-poosiz.ads: Likewise. + * libgnat/s-powflt.ads: Likewise. + * libgnat/s-powlfl.ads: Likewise. + * libgnat/s-powllf.ads: Likewise. + * libgnat/s-purexc.ads: Likewise. + * libgnat/s-putaim.adb: Likewise. + * libgnat/s-putaim.ads: Likewise. + * libgnat/s-putima.adb: Likewise. + * libgnat/s-putima.ads: Likewise. + * libgnat/s-rannum.adb: Likewise. + * libgnat/s-rannum.ads: Likewise. + * libgnat/s-ransee.adb: Likewise. + * libgnat/s-ransee.ads: Likewise. + * libgnat/s-regexp.adb: Likewise. + * libgnat/s-regexp.ads: Likewise. + * libgnat/s-regpat.adb: Likewise. + * libgnat/s-regpat.ads: Likewise. + * libgnat/s-resfil.adb: Likewise. + * libgnat/s-resfil.ads: Likewise. + * libgnat/s-restri.adb: Likewise. + * libgnat/s-restri.ads: Likewise. + * libgnat/s-rident.ads: Likewise. + * libgnat/s-rpc.adb: Likewise. + * libgnat/s-rpc.ads: Likewise. + * libgnat/s-scaval.adb: Likewise. + * libgnat/s-scaval.ads: Likewise. + * libgnat/s-scaval__128.adb: Likewise. + * libgnat/s-scaval__128.ads: Likewise. + * libgnat/s-secsta.adb: Likewise. + * libgnat/s-secsta.ads: Likewise. + * libgnat/s-sequio.adb: Likewise. + * libgnat/s-sequio.ads: Likewise. + * libgnat/s-shabig.ads: Likewise. + * libgnat/s-shasto.adb: Likewise. + * libgnat/s-shasto.ads: Likewise. + * libgnat/s-soflin.adb: Likewise. + * libgnat/s-soflin.ads: Likewise. + * libgnat/s-soliin.adb: Likewise. + * libgnat/s-soliin.ads: Likewise. + * libgnat/s-sopco3.adb: Likewise. + * libgnat/s-sopco3.ads: Likewise. + * libgnat/s-sopco4.adb: Likewise. + * libgnat/s-sopco4.ads: Likewise. + * libgnat/s-sopco5.adb: Likewise. + * libgnat/s-sopco5.ads: Likewise. + * libgnat/s-spsufi.adb: Likewise. + * libgnat/s-spsufi.ads: Likewise. + * libgnat/s-stache.adb: Likewise. + * libgnat/s-stache.ads: Likewise. + * libgnat/s-stalib.adb: Likewise. + * libgnat/s-stalib.ads: Likewise. + * libgnat/s-statxd.adb: Likewise. + * libgnat/s-statxd.ads: Likewise. + * libgnat/s-stausa.adb: Likewise. + * libgnat/s-stausa.ads: Likewise. + * libgnat/s-stchop.adb: Likewise. + * libgnat/s-stchop.ads: Likewise. + * libgnat/s-stchop__limit.ads: Likewise. + * libgnat/s-stchop__rtems.adb: Likewise. + * libgnat/s-stchop__vxworks.adb: Likewise. + * libgnat/s-stoele.adb: Likewise. + * libgnat/s-stoele.ads: Likewise. + * libgnat/s-stopoo.adb: Likewise. + * libgnat/s-stopoo.ads: Likewise. + * libgnat/s-stposu.adb: Likewise. + * libgnat/s-stposu.ads: Likewise. + * libgnat/s-stratt.adb: Likewise. + * libgnat/s-stratt.ads: Likewise. + * libgnat/s-strcom.adb: Likewise. + * libgnat/s-strcom.ads: Likewise. + * libgnat/s-strhas.adb: Likewise. + * libgnat/s-strhas.ads: Likewise. + * libgnat/s-string.adb: Likewise. + * libgnat/s-string.ads: Likewise. + * libgnat/s-strops.adb: Likewise. + * libgnat/s-strops.ads: Likewise. + * libgnat/s-ststop.adb: Likewise. + * libgnat/s-ststop.ads: Likewise. + * libgnat/s-tasloc.adb: Likewise. + * libgnat/s-tasloc.ads: Likewise. + * libgnat/s-thread.ads: Likewise. + * libgnat/s-thread__ae653.adb: Likewise. + * libgnat/s-traceb.adb: Likewise. + * libgnat/s-traceb.ads: Likewise. + * libgnat/s-traceb__hpux.adb: Likewise. + * libgnat/s-traceb__mastop.adb: Likewise. + * libgnat/s-traent.adb: Likewise. + * libgnat/s-traent.ads: Likewise. + * libgnat/s-trasym.adb: Likewise. + * libgnat/s-trasym.ads: Likewise. + * libgnat/s-trasym__dwarf.adb: Likewise. + * libgnat/s-tsmona.adb: Likewise. + * libgnat/s-tsmona__linux.adb: Likewise. + * libgnat/s-tsmona__mingw.adb: Likewise. + * libgnat/s-unstyp.ads: Likewise. + * libgnat/s-utf_32.adb: Likewise. + * libgnat/s-utf_32.ads: Likewise. + * libgnat/s-vade128.ads: Likewise. + * 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-valboo.adb: Likewise. + * libgnat/s-valboo.ads: Likewise. + * libgnat/s-valcha.adb: Likewise. + * libgnat/s-valcha.ads: Likewise. + * libgnat/s-valenu.adb: Likewise. + * libgnat/s-valenu.ads: Likewise. + * libgnat/s-valflt.ads: Likewise. + * libgnat/s-valint.adb: Likewise. + * libgnat/s-valint.ads: Likewise. + * libgnat/s-vallfl.ads: Likewise. + * libgnat/s-valllf.ads: Likewise. + * libgnat/s-vallli.adb: Likewise. + * libgnat/s-vallli.ads: Likewise. + * libgnat/s-valllli.ads: Likewise. + * libgnat/s-vallllu.ads: Likewise. + * libgnat/s-valllu.adb: Likewise. + * libgnat/s-valllu.ads: Likewise. + * libgnat/s-valrea.adb: Likewise. + * libgnat/s-valrea.ads: Likewise. + * libgnat/s-valued.adb: Likewise. + * libgnat/s-valued.ads: Likewise. + * libgnat/s-valuef.adb: Likewise. + * libgnat/s-valuef.ads: Likewise. + * libgnat/s-valuei.adb: Likewise. + * libgnat/s-valuei.ads: Likewise. + * libgnat/s-valuer.adb: Likewise. + * libgnat/s-valuer.ads: Likewise. + * libgnat/s-valueu.adb: Likewise. + * libgnat/s-valueu.ads: Likewise. + * libgnat/s-valuns.adb: Likewise. + * libgnat/s-valuns.ads: Likewise. + * libgnat/s-valuti.adb: Likewise. + * libgnat/s-valuti.ads: Likewise. + * libgnat/s-valwch.adb: Likewise. + * libgnat/s-valwch.ads: Likewise. + * libgnat/s-veboop.adb: Likewise. + * libgnat/s-veboop.ads: Likewise. + * libgnat/s-vector.ads: Likewise. + * libgnat/s-vercon.adb: Likewise. + * libgnat/s-vercon.ads: Likewise. + * libgnat/s-wchcnv.adb: Likewise. + * libgnat/s-wchcnv.ads: Likewise. + * libgnat/s-wchcon.adb: Likewise. + * libgnat/s-wchcon.ads: Likewise. + * libgnat/s-wchjis.adb: Likewise. + * libgnat/s-wchjis.ads: Likewise. + * libgnat/s-wchstw.adb: Likewise. + * libgnat/s-wchstw.ads: Likewise. + * libgnat/s-wchwts.adb: Likewise. + * libgnat/s-wchwts.ads: Likewise. + * libgnat/s-widboo.adb: Likewise. + * libgnat/s-widboo.ads: Likewise. + * libgnat/s-widcha.adb: Likewise. + * libgnat/s-widcha.ads: Likewise. + * libgnat/s-widenu.adb: Likewise. + * libgnat/s-widenu.ads: Likewise. + * libgnat/s-widint.ads: Likewise. + * libgnat/s-widlli.adb: Likewise. + * libgnat/s-widlli.ads: Likewise. + * libgnat/s-widllli.ads: Likewise. + * libgnat/s-widlllu.ads: Likewise. + * libgnat/s-widllu.adb: Likewise. + * libgnat/s-widllu.ads: Likewise. + * libgnat/s-widthi.adb: Likewise. + * libgnat/s-widthi.ads: Likewise. + * libgnat/s-widthu.adb: Likewise. + * libgnat/s-widthu.ads: Likewise. + * libgnat/s-widuns.ads: Likewise. + * libgnat/s-widwch.adb: Likewise. + * libgnat/s-widwch.ads: Likewise. + * libgnat/s-win32.ads: Likewise. + * libgnat/s-winext.ads: Likewise. + * libgnat/s-wwdcha.adb: Likewise. + * libgnat/s-wwdcha.ads: Likewise. + * libgnat/s-wwdenu.adb: Likewise. + * libgnat/s-wwdenu.ads: Likewise. + * libgnat/s-wwdwch.adb: Likewise. + * libgnat/s-wwdwch.ads: Likewise. + * libgnat/system-aix.ads: Likewise. + * libgnat/system-darwin-arm.ads: Likewise. + * libgnat/system-darwin-ppc.ads: Likewise. + * libgnat/system-darwin-x86.ads: Likewise. + * libgnat/system-djgpp.ads: Likewise. + * libgnat/system-dragonfly-x86_64.ads: Likewise. + * libgnat/system-freebsd.ads: Likewise. + * libgnat/system-hpux-ia64.ads: Likewise. + * libgnat/system-hpux.ads: Likewise. + * libgnat/system-linux-alpha.ads: Likewise. + * libgnat/system-linux-arm.ads: Likewise. + * libgnat/system-linux-hppa.ads: Likewise. + * libgnat/system-linux-ia64.ads: Likewise. + * libgnat/system-linux-m68k.ads: Likewise. + * libgnat/system-linux-mips.ads: Likewise. + * libgnat/system-linux-ppc.ads: Likewise. + * libgnat/system-linux-riscv.ads: Likewise. + * libgnat/system-linux-s390.ads: Likewise. + * libgnat/system-linux-sh4.ads: Likewise. + * libgnat/system-linux-sparc.ads: Likewise. + * libgnat/system-linux-x86.ads: Likewise. + * libgnat/system-lynxos178-ppc.ads: Likewise. + * libgnat/system-lynxos178-x86.ads: Likewise. + * libgnat/system-mingw.ads: Likewise. + * libgnat/system-qnx-aarch64.ads: Likewise. + * libgnat/system-rtems.ads: Likewise. + * libgnat/system-solaris-sparc.ads: Likewise. + * libgnat/system-solaris-x86.ads: Likewise. + * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise. + * libgnat/system-vxworks-arm-rtp.ads: Likewise. + * libgnat/system-vxworks-arm.ads: Likewise. + * libgnat/system-vxworks-e500-kernel.ads: Likewise. + * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise. + * libgnat/system-vxworks-e500-rtp.ads: Likewise. + * libgnat/system-vxworks-e500-vthread.ads: Likewise. + * libgnat/system-vxworks-ppc-kernel.ads: Likewise. + * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise. + * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise. + * libgnat/system-vxworks-ppc-rtp.ads: Likewise. + * libgnat/system-vxworks-ppc-vthread.ads: Likewise. + * libgnat/system-vxworks-ppc.ads: Likewise. + * libgnat/system-vxworks-x86-kernel.ads: Likewise. + * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise. + * libgnat/system-vxworks-x86-rtp.ads: Likewise. + * libgnat/system-vxworks-x86-vthread.ads: Likewise. + * libgnat/system-vxworks-x86.ads: Likewise. + * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise. + * libgnat/system-vxworks7-aarch64.ads: Likewise. + * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise. + * libgnat/system-vxworks7-arm.ads: Likewise. + * libgnat/system-vxworks7-e500-kernel.ads: Likewise. + * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise. + * libgnat/system-vxworks7-e500-rtp.ads: Likewise. + * libgnat/system-vxworks7-ppc-kernel.ads: Likewise. + * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise. + * libgnat/system-vxworks7-ppc-rtp.ads: Likewise. + * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise. + * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise. + * libgnat/system-vxworks7-x86-kernel.ads: Likewise. + * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise. + * libgnat/system-vxworks7-x86-rtp.ads: Likewise. + * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise. + * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise. + * link.c: Likewise. + * live.adb: Likewise. + * live.ads: Likewise. + * locales.c: Likewise. + * make.adb: Likewise. + * make.ads: Likewise. + * make_util.adb: Likewise. + * make_util.ads: Likewise. + * makeusg.adb: Likewise. + * makeusg.ads: Likewise. + * mdll-fil.adb: Likewise. + * mdll-fil.ads: Likewise. + * mdll-utl.adb: Likewise. + * mdll-utl.ads: Likewise. + * mdll.adb: Likewise. + * mdll.ads: Likewise. + * mingw32.h: Likewise. + * mkdir.c: Likewise. + * namet-sp.adb: Likewise. + * namet-sp.ads: Likewise. + * namet.adb: Likewise. + * namet.ads: Likewise. + * namet.h: Likewise. + * nlists.adb: Likewise. + * nlists.ads: Likewise. + * nlists.h: Likewise. + * opt.adb: Likewise. + * opt.ads: Likewise. + * osint-b.adb: Likewise. + * osint-b.ads: Likewise. + * osint-c.adb: Likewise. + * osint-c.ads: Likewise. + * osint-l.adb: Likewise. + * osint-l.ads: Likewise. + * osint-m.adb: Likewise. + * osint-m.ads: Likewise. + * osint.adb: Likewise. + * osint.ads: Likewise. + * output.adb: Likewise. + * output.ads: Likewise. + * par-ch10.adb: Likewise. + * par-ch11.adb: Likewise. + * par-ch12.adb: Likewise. + * par-ch13.adb: Likewise. + * par-ch2.adb: Likewise. + * par-ch3.adb: Likewise. + * par-ch4.adb: Likewise. + * par-ch5.adb: Likewise. + * par-ch6.adb: Likewise. + * par-ch7.adb: Likewise. + * par-ch8.adb: Likewise. + * par-ch9.adb: Likewise. + * par-endh.adb: Likewise. + * par-labl.adb: Likewise. + * par-load.adb: Likewise. + * par-prag.adb: Likewise. + * par-sync.adb: Likewise. + * par-tchk.adb: Likewise. + * par-util.adb: Likewise. + * par.adb: Likewise. + * par.ads: Likewise. + * par_sco.adb: Likewise. + * par_sco.ads: Likewise. + * pprint.adb: Likewise. + * pprint.ads: Likewise. + * prep.adb: Likewise. + * prep.ads: Likewise. + * prepcomp.adb: Likewise. + * prepcomp.ads: Likewise. + * put_scos.adb: Likewise. + * put_scos.ads: Likewise. + * raise-gcc.c: Likewise. + * raise.c: Likewise. + * raise.h: Likewise. + * repinfo-input.adb: Likewise. + * repinfo-input.ads: Likewise. + * repinfo.adb: Likewise. + * repinfo.ads: Likewise. + * repinfo.h: Likewise. + * restrict.adb: Likewise. + * restrict.ads: Likewise. + * rident.ads: Likewise. + * rtfinal.c: Likewise. + * rtinit.c: Likewise. + * rtsfind.adb: Likewise. + * rtsfind.ads: Likewise. + * runtime.h: Likewise. + * s-oscons-tmplt.c: Likewise. + * sa_messages.adb: Likewise. + * sa_messages.ads: Likewise. + * scans.adb: Likewise. + * scans.ads: Likewise. + * scil_ll.adb: Likewise. + * scil_ll.ads: Likewise. + * scn.adb: Likewise. + * scn.ads: Likewise. + * scng.adb: Likewise. + * scng.ads: Likewise. + * scos.adb: Likewise. + * scos.ads: Likewise. + * scos.h: Likewise. + * sdefault.ads: Likewise. + * seh_init.c: Likewise. + * sem.adb: Likewise. + * sem.ads: Likewise. + * sem_aggr.adb: Likewise. + * sem_aggr.ads: Likewise. + * sem_attr.adb: Likewise. + * sem_attr.ads: Likewise. + * sem_aux.adb: Likewise. + * sem_aux.ads: Likewise. + * sem_case.adb: Likewise. + * sem_case.ads: Likewise. + * sem_cat.adb: Likewise. + * sem_cat.ads: Likewise. + * sem_ch10.adb: Likewise. + * sem_ch10.ads: Likewise. + * sem_ch11.adb: Likewise. + * sem_ch11.ads: Likewise. + * sem_ch12.adb: Likewise. + * sem_ch12.ads: Likewise. + * sem_ch13.adb: Likewise. + * sem_ch13.ads: Likewise. + * sem_ch2.adb: Likewise. + * sem_ch2.ads: Likewise. + * sem_ch3.adb: Likewise. + * sem_ch3.ads: Likewise. + * sem_ch4.adb: Likewise. + * sem_ch4.ads: Likewise. + * sem_ch5.adb: Likewise. + * sem_ch5.ads: Likewise. + * sem_ch6.adb: Likewise. + * sem_ch6.ads: Likewise. + * sem_ch7.adb: Likewise. + * sem_ch7.ads: Likewise. + * sem_ch8.adb: Likewise. + * sem_ch8.ads: Likewise. + * sem_ch9.adb: Likewise. + * sem_ch9.ads: Likewise. + * sem_dim.adb: Likewise. + * sem_dim.ads: Likewise. + * sem_disp.adb: Likewise. + * sem_disp.ads: Likewise. + * sem_dist.adb: Likewise. + * sem_dist.ads: Likewise. + * sem_elab.adb: Likewise. + * sem_elab.ads: Likewise. + * sem_elim.adb: Likewise. + * sem_elim.ads: Likewise. + * sem_eval.adb: Likewise. + * sem_eval.ads: Likewise. + * sem_intr.adb: Likewise. + * sem_intr.ads: Likewise. + * sem_mech.adb: Likewise. + * sem_mech.ads: Likewise. + * sem_prag.adb: Likewise. + * sem_prag.ads: Likewise. + * sem_res.adb: Likewise. + * sem_res.ads: Likewise. + * sem_scil.adb: Likewise. + * sem_scil.ads: Likewise. + * sem_smem.adb: Likewise. + * sem_smem.ads: Likewise. + * sem_type.adb: Likewise. + * sem_type.ads: Likewise. + * sem_util.adb: Likewise. + * sem_util.ads: Likewise. + * sem_warn.adb: Likewise. + * sem_warn.ads: Likewise. + * set_targ.adb: Likewise. + * set_targ.ads: Likewise. + * sfn_scan.adb: Likewise. + * sfn_scan.ads: Likewise. + * sigtramp-armdroid.c: Likewise. + * sigtramp-ios.c: Likewise. + * sigtramp-qnx.c: Likewise. + * sigtramp-vxworks.c: Likewise. + * sigtramp.h: Likewise. + * sinfo-cn.adb: Likewise. + * sinfo-cn.ads: Likewise. + * sinfo.adb: Likewise. + * sinfo.ads: Likewise. + * sinput-c.adb: Likewise. + * sinput-c.ads: Likewise. + * sinput-d.adb: Likewise. + * sinput-d.ads: Likewise. + * sinput-l.adb: Likewise. + * sinput-l.ads: Likewise. + * sinput.adb: Likewise. + * sinput.ads: Likewise. + * snames.adb-tmpl: Likewise. + * snames.ads-tmpl: Likewise. + * socket.c: Likewise. + * spark_xrefs.adb: Likewise. + * spark_xrefs.ads: Likewise. + * sprint.adb: Likewise. + * sprint.ads: Likewise. + * stand.ads: Likewise. + * stringt.adb: Likewise. + * stringt.ads: Likewise. + * stringt.h: Likewise. + * style.adb: Likewise. + * style.ads: Likewise. + * styleg.adb: Likewise. + * styleg.ads: Likewise. + * stylesw.adb: Likewise. + * stylesw.ads: Likewise. + * switch-b.adb: Likewise. + * switch-b.ads: Likewise. + * switch-c.adb: Likewise. + * switch-c.ads: Likewise. + * switch-m.adb: Likewise. + * switch-m.ads: Likewise. + * switch.adb: Likewise. + * switch.ads: Likewise. + * sysdep.c: Likewise. + * table.adb: Likewise. + * table.ads: Likewise. + * targext.c: Likewise. + * targparm.adb: Likewise. + * targparm.ads: Likewise. + * tbuild.adb: Likewise. + * tbuild.ads: Likewise. + * tempdir.adb: Likewise. + * tempdir.ads: Likewise. + * terminals.c: Likewise. + * tracebak.c: Likewise. + * treepr.adb: Likewise. + * treepr.ads: Likewise. + * ttypes.ads: Likewise. + * types.adb: Likewise. + * types.ads: Likewise. + * types.h: Likewise. + * uintp.adb: Likewise. + * uintp.ads: Likewise. + * uintp.h: Likewise. + * uname.adb: Likewise. + * uname.ads: Likewise. + * urealp.adb: Likewise. + * urealp.ads: Likewise. + * urealp.h: Likewise. + * usage.adb: Likewise. + * usage.ads: Likewise. + * validsw.adb: Likewise. + * validsw.ads: Likewise. + * vast.adb: Likewise. + * vast.ads: Likewise. + * warnsw.adb: Likewise. + * warnsw.ads: Likewise. + * widechar.adb: Likewise. + * widechar.ads: Likewise. + * xeinfo.adb: Likewise. + * xnmake.adb: Likewise. + * xoscons.adb: Likewise. + * xr_tabls.adb: Likewise. + * xr_tabls.ads: Likewise. + * xref_lib.adb: Likewise. + * xref_lib.ads: Likewise. + * xsinfo.adb: Likewise. + * xsnamest.adb: Likewise. + * xtreeprs.adb: Likewise. + * xutil.adb: Likewise. + * xutil.ads: Likewise. + +2021-05-03 Piotr Trojanek + + * exp_dist.adb (Build_From_Any_Call): Remove initial value for + Fnam; fix style. + (Build_To_Any_Call): Remove initial value for Fnam. + (Build_TypeCode_Call): Likewise. + +2021-05-03 Piotr Trojanek + + * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb, + exp_disp.adb, exp_imgv.adb, exp_util.adb, sem_attr.adb, + sem_ch13.adb, sem_ch8.adb, sem_eval.adb, sem_scil.adb, + sem_util.adb: Replace calls to RTE with Is_RTE. + +2021-05-03 Piotr Trojanek + + * sem_ch4.adb (Try_Object_Operation): Reuse local constant. + +2021-05-03 Ed Schonberg + + * sem_ch4.adb (Try_Object_Operation): When a prefixed call is + overloaded and illegal, and the All_Errors flag is off, generate + an error message if the re-analysis of some candidate + interpretation fails to produce one. + +2021-05-03 Dmitriy Anisimkov + + * libgnat/g-casuti.adb: Replace with "pragma No_Body". + * libgnat/g-casuti.ads: Replace with a package renaming. + +2021-05-03 Piotr Trojanek + + * sem_attr.adb (Check_Program_Unit): Fix references to + Concurrent_Kind and Is_Concurrent_Type; avoid repeated calls to + Entity. + +2021-05-03 Piotr Trojanek + + * sem_attr.adb (Check_Program_Unit): Replace tests for Task_Kind + and Protected_Kind with a collective test for Concurrent_Kind; + likewise, replace calls to Is_Task_Type and Is_Protected_Type + with a collective call to Is_Concurrent_Type; simplify into a + single membership test; add missing Entry_Kind alternative. + +2021-05-03 Piotr Trojanek + + * sem_aggr.adb (Resolve_Record_Aggregate): Fix casing in error + message. + * sem_ch3.adb (Add_Internal_Interface_Entities): Fix unbalanced + parens. + * sem_elim.adb (Eliminate_Error_Msg): Add insertion character. + +2021-05-03 Piotr Trojanek + + * freeze.adb (Freeze_Profile): Replace Error_Msg_NE with + Error_Msg_N; change to continuation message. + * sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch5.adb: Replace + calls to Error_Msg_NE with calls to Error_Msg_N. + +2021-05-03 Piotr Trojanek + + * exp_disp.adb, sem_aggr.adb, sem_cat.adb, sem_ch10.adb, + sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, + sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_prag.adb, + sem_res.adb: Remove extra leading and trailing space in error + messages. + +2021-05-03 Arnaud Charlet + + * sem_prag.adb (Set_Exported): Do not warn on exporting a type. + +2021-05-03 Ed Schonberg + + * sem_warn.adb (Check_References): Do not emit warning on a + selected component when enclosing type has no discriminant and + type of component has partial initialization. + +2021-05-03 Justin Squirek + + * contracts.adb (Build_Postconditions_Procedure): Remove + internally generated if statement used to control finalization + actions. + * exp_ch6.adb (Add_Return, Expand_Non_Function_Return, + Expand_Simple_Function_Return): Add if statement around + _postconditions to control finalization. + * exp_ch7.adb (Build_Finalizer): Likewise. + * sem_prag.adb (Find_Related_Declaration_Or_Body): Add case to + handle Context itself being a handled sequence of statements. + +2021-05-03 Justin Squirek + + * sem_util.adb (In_Return_Value): Modified to detect when + implicit dereference is specified on the return type of a + function call within the expression being checked. + +2021-05-03 Ed Schonberg + + * exp_aggr.adb (Expand_Array_Aggregate): If the parent node of + the aggregate is a subprogram call there is no target in which + to build the aggregate, and it has to be expanded into component + assignments. + +2021-05-03 Piotr Trojanek + + * exp_prag.adb (Expand_Pragma_CUDA_Execute): Refill comments; + remove periods after single-line comments; use procedural + variant of Next_Entity. + * gnat_cuda.adb: Refill comments; remove periods after + single-line comments; replace calls to UI_From_Int with + constants; change iteration bounds so they match the comments. + * sem_prag.adb (Analyze_Pragma): Add checks for malformed pragma + CUDA_Kernel aggregate; simplify processing of pragma CUDA_Global + with Check_Arg_Count; sync comment with code for CUDA_Global. + +2021-05-03 Arnaud Charlet + + * tbuild.adb (Make_Implicit_Loop_Statement): Disable restriction + checking on dead paths. + +2021-05-03 Arnaud Charlet + + * sem_util.adb (Check_Result_And_Post_State): Replace custom + Has_In_Out_Parameter with existing Has_Out_Or_In_Out_Parameter + flag which corresponds exactly to what we need. + +2021-05-03 Arnaud Charlet + + * libgnat/a-ztcoio.adb: Remove unused with clause. + +2021-05-03 Piotr Trojanek + + * sem_ch13.adb (Build_Predicate_Functions): Fix typo in comment. + (Resolve_Aspect_Expressions): Fix typo in comment; remove + redundant check for no aspects; simplify with Discard_Node. + +2021-05-03 Ed Schonberg + + * sem_util.adb (Build_Constrained_Itype): Remove prior patch, + issue is better handled in Sem_Ch13.Build_Predicate_Functions. + * sem_ch13.adb (Build_Predicate_Functions): Do not build + predicate function for an Itype with a defined + Predicated_Parent, even if that designated parent does not yet + have a Predicate_Function. This can happen in instance bodies + nested within a generic unit. + +2021-04-29 Eric Botcazou + + * exp_attr.adb (Expand_N_Attribute_Reference) + : Apply the checks for + universal integer contexts only in the default case. + * exp_ch4.adb (Get_Size_For_Range): Move to library level. + (Expand_N_Type_Conversion): If the operand has Universal_Integer + type and the conversion requires an overflow check, try to do an + intermediate conversion to a narrower type. + +2021-04-29 Arnaud Charlet + + * sem_ch3.adb (Check_Anonymous_Access_Component): Factor out + core processing of Check_Anonymous_Access_Components. + (Check_Anonymous_Access_Components): Call + Check_Anonymous_Access_Component. + (Process_Discriminants): Call Check_Anonymous_Access_Component. + * freeze.adb (Freeze_Record_Type): Code cleanups and add more tree + checking to handle changes in sem_ch3.adb. + * sem_ch8.adb (Find_Type): Remove special case for access + discriminant in task types, these are now supported. + +2021-04-29 Eric Botcazou + + * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): Remove + entry condition. + (Expand_N_In): Call Minimized_Eliminated_Overflow_Check on the left + operand before doing the special overflow expansion. + (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_Ne): Likewise. + (Minimized_Eliminated_Overflow_Check): Return False for Minimized + if the size of the type is greater than that of Long_Long_Integer. + +2021-04-29 Arnaud Charlet + + * exp_ch5.adb (Expand_N_If_Statement): Only perform the + simplification on return True/False for internal nodes when + -fpreserve-control-flow is not set. + +2021-04-29 Eric Botcazou + + * sem_attr.adb (Eval_Attribute) : Use + Round_Even instead of Round in the call to the Machine routine. + +2021-04-29 Bob Duff + + * sem_attr.adb (Analyze_Attribute): Change "$" to "&". + Otherwise, Errout will trip over an uninitialized (invalid) + variable (Error_Msg_Unit_1). + +2021-04-29 Eric Botcazou + + * libgnat/s-valuer.adb (Scan_Decimal_Digits): Set Extra to zero + when the precision limit is reached by means of trailing zeros + and prevent it from being overwritten later. + +2021-04-29 Yannick Moy + + * errout.adb (Output_Messages): Insert SGR strings where needed. + * erroutc.adb (Output_Message_Txt): Insert SGR strings where + needed in the text of the message itself. + (Output_Msg_Text): Allow for style message not to start + with (style). + * erroutc.ads: Add new constants and functions to control colors + in messages output to the terminal. Add variable Use_SGR_Control + that should be set to True for using SGR color control strings. + +2021-04-29 Yannick Moy + + * sem_eval.adb (Check_Non_Static_Context_For_Overflow): Apply + compile-time checking for overflows in non-static contexts + including inlined code. + (Eval_Arithmetic_Op): Use the new procedure. + (Eval_Unary_Op, Eval_Op_Expon): Add call to the new procedure. + +2021-04-29 Justin Squirek + + * checks.adb (Apply_Type_Conversion_Checks): Move out constraint + check generation, and add case for general access types with + constraints. + (Make_Discriminant_Constraint_Check): Created to centralize + generation of constraint checks for stored discriminants. + +2021-04-29 Eric Botcazou + + * gnat1drv.adb (Adjust_Global_Switches): Force a 32-bit Duration + type if the maximum integer size is lower than 64 bits. + +2021-04-29 Arnaud Charlet + + * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove unused files. + (ADA_INCLUDE_SRCS): Remove libgnat/system.ads + +2021-04-29 Arnaud Charlet + + * exp_aggr.adb (Collect_Initialization_Statements): Removed. + (Convert_Aggr_In_Object_Decl, Expand_Array_Aggregate): Fix + creation and insertion of Initialization_Statements. Do not set + Initialization_Statements when a transient scope is involved. + Move processing of Array_Slice here. Ensure that an object with + an Array_Slice call gets its array component initialized. Add + comments. + * exp_ch7.adb: Update comments. + (Store_Actions_In_Scope): Deal properly with an empty list which + might now be generated by Convert_Aggr_In_Object_Decl. + * exp_ch3.adb: Update comments. + (Expand_N_Object_Declaration): Remove processing of Array_Slice. + +2021-04-29 Arnaud Charlet + + * sem_ch8.adb (Analyze_Object_Renaming): Update check for + AI12-0401. + +2021-04-29 Patrick Bernardi + + * libgnat/s-stoele.ads (Storage_Offset): Cleanup comment. + +2021-04-29 Gary Dismukes + + * exp_util.adb (Add_Own_DIC): Relax the suppression of adding a + DIC Check pragma that's done for abstract types by still doing + it in the case where GNATprove_Mode is set. + +2021-04-29 Joel Brobecker + + * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove s-gcc.adb, s-gcc.ads, + s-gccdiv.adb, s-gccdiv.ads, s-gccshi.adb and s-gccshi.ads. + +2021-04-29 Piotr Trojanek + + * layout.adb (Layout_Type): Refine type of a local variable with + the required size of object from Int to Pos (it is initialized + with 8 and only multiplied by 2); fix unbalanced parens in + comment. + +2021-04-29 Eric Botcazou + + * eval_fat.adb (Succ): Use Ureal_Half in a couple of places. + +2021-04-29 Ed Schonberg + + * sem_util.adb (Build_Constrained_Itype): Inhibit the generation + of predicate functions for this Itype, which is created for an + aggregate of a discriminated type. The object to which the + aggregate is assigned, e.g a writable actual parameter, will + apply the predicates if any are inherited from the base type. + +2021-04-29 Piotr Trojanek + + * sem_cat.adb (Set_Categorization_From_Pragmas): Remove special + case for generic child units; remove optimization for empty list + of pragmas; properly restore visibility. + +2021-04-29 Piotr Trojanek + + * sem_elab.adb (Process_SPARK_Instantiation): Fix typo in + comment. + * sem_prag.adb (Find_Related_Context): Add missing reference to + No_Caching in the comment; handle pragmas on compilation units. + +2021-04-29 Piotr Trojanek + + * doc/gnat_rm/implementation_defined_attributes.rst: Change all + occurrences of "permissible prefix" to "allowed prefix", for + consistency. + * gnat_rm.texi: Regenerate. + +2021-04-29 Eric Botcazou + + * eval_fat.adb (Succ): Add a special case for zero if the type does + not support denormalized numbers. Always use the canonical formula + in other cases and add commentary throughout the function. + +2021-04-29 Eric Botcazou + + * libgnat/s-fatgen.adb: Remove with clause for Interfaces and + use type clauses for Interfaces.Unsigned_{16,32,64}. + (Small16): Remove. + (Small32): Likewise + (Small64): Likewise. + (Small80): Likewise. + (Tiny16): Likewise. + (Tiny32): Likewise. + (Tiny64): Likewise. + (Tiny80): Likewise. + (Siz): Always use 16. + (NR): New constant. + (Rep_Last): Use it in the computation. + (Exp_Factor): Remove special case for 80-bit. + (Sign_Mask): Likewise. + (Finite_Succ): New function implementing the Succ attribute for + finite numbers. + (Pred): Rewrite in terms of Finite_Succ. + (Succ): Likewise. + +2021-04-29 Arnaud Charlet + + * debug_a.adb (Debug_Output_Astring): Remove obsolete comment. + +2021-04-29 Arnaud Charlet + + * sem_attr.adb (Check_Image_Type): Protect against empty + Image_Type. + +2021-04-29 Arnaud Charlet + + * libgnat/a-nbnbin.ads (From_Universal_Image): New. + (Big_Integer): Update definition. + * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb + (From_Universal_Image): New. + (From_String): Remove alternate body, replaced by + From_Universal_Image. + (Big_Real): Update definition. + +2021-04-29 Gary Dismukes + + * sem_ch8.adb (Find_Type): Check the No_Obsolescent_Features + restriction for 'Class applied to an untagged incomplete + type (when Ada_Version >= Ada_2005). Remove disabling of the + warning message for such usage, along with the ??? comment, + which no longer applies (because the -gnatg switch no longer + sets Warn_On_Obsolescent_Feature). + +2021-04-29 Yannick Moy + + * errout.adb (Error_Msg_NEL): Extract span from node. + (First_And_Last_Nodes): Use spans for subtype indications and + attribute definition clauses. + (Write_Source_Code_Lines): Fix for tabulation characters. Change + output for large spans to skip intermediate lines. + * sem_case.adb (Check_Choice_Set): Report duplicate choice on + the Original_Node for the case. + (Generic_Check_Choices): Set the Original_Node for the rewritten + case, so that the subtree used in spans has the correct + locations. + +2021-04-28 Piotr Trojanek + + * sem_ch13.adb, sem_util.adb: Fix style. + +2021-04-28 Piotr Trojanek + + * nlists.ads (List_Length): Adapt comment to match the + behaviour. + +2021-04-28 Arnaud Charlet + + * sem_eval.adb (Eval_Selected_Component): Only consider compile + time known aggregates. + +2021-04-28 Eric Botcazou + + * libgnat/s-fatgen.adb: Add use clause for Interfaces.Unsigned_16 + and Interfaces.Unsigned_32. + (Small16): New constant. + (Small32): Likewise. + (Small64): Likewise. + (Small80): Likewise. + (Pred): Declare a local overlay for Small and return it negated + for zero if the type does not support denormalized numbers. + (Succ): Likewise, but return it directly. + +2021-04-28 Piotr Trojanek + + * inline.adb (Formal_Is_Used_Once): Refine type of the counter + variable; remove redundant assignment. + +2021-04-28 Patrick Bernardi + + * libgnarl/s-interr.adb (Install_Restricted_Handlers): Change + Prio parameter to type Interrupt_Priority. + * libgnarl/s-interr.ads (Install_Restricted_Handlers): Likewise. + * libgnarl/s-interr__dummy.adb (Install_Restricted_Handlers): + Likewise. + * libgnarl/s-interr__hwint.adb (Install_Restricted_Handlers): + Likewise. + * libgnarl/s-interr__sigaction.adb (Install_Restricted_Handlers): + Likewise. + * libgnarl/s-interr__vxworks.adb (Install_Restricted_Handlers): + Likewise. + +2021-04-28 Piotr Trojanek + + * sem_type.ads (Write_Interp_Ref): Removed; no longer needed. + * sem_type.adb (Headers): Removed; now the hash table is + directly in the Interp_Map alone. + (Interp_Map): Now an instance of the GNAT.HTable.Simple_HTable. + (Last_Overloaded): New variable to emulate Interp_Map.Last. + (Add_One_Interp): Adapt to new data structure. + (Get_First_Interp): Likewise. + (Hash): Likewise. + (Init_Interp_Tables): Likewise. + (New_Interps): Likewise. + (Save_Interps): Likewise; handle O_N variable like in + Get_First_Interp. + (Write_Interp_Ref): Removed; no longer needed. + +2021-04-28 Piotr Trojanek + + * inline.adb (Do_Reset_Calls): Now an instance of Traverse_Proc. + +2021-04-28 Piotr Trojanek + + * sem_ch13.adb (Analyze_Aspect_Static): Reuse + Error_Msg_Ada_2020_Feature for aspect Static. + (Analyze_One_Aspect): Likewise for aspect Full_Access. + +2021-04-28 Piotr Trojanek + + * sem_ch13.adb (Analyze_Aspect_Static): Refactor to have a + single check for the expression being present; adapt comments. + +2021-04-28 Piotr Trojanek + + * sem_ch13.adb (Analyze_Aspect_Static): Use aspect name in the + error message. + +2021-04-28 Piotr Trojanek + + * sem_eval.adb (Eval_Selected_Component): Simplify with + Unqualify. + +2021-04-28 Eric Botcazou + + * libgnat/s-valrea.adb (Fast2Sum): New function. + (Integer_to_Real): Use it in an iterated addition with exact + error handling for the case where an extra digit is needed. + Move local variable now only used in the exponentiation case. + +2021-04-28 Yannick Moy + + * errout.adb: (Error_Msg_Internal): Use span instead of + location. + (Error_Msg, Error_Msg_NEL): Add versions with span parameter. + (Error_Msg_F, Error_Msg_FE, Error_Msg_N, Error_Msg_NE, + Error_Msg_NW): Retrieve span from node. + (First_Node): Use the new First_And_Last_Nodes. + (First_And_Last_Nodes): Expand on previous First_Node. Apply to + other nodes than expressions. + (First_Sloc): Protect against inconsistent locations. + (Last_Node): New function based on First_And_Last_Nodes. + (Last_Sloc): New function similar to First_Sloc. + (Output_Messages): Update output when -gnatdF is used. Use + character ~ for making the span visible, similar to what is done + in GCC and Clang. + * errout.ads (Error_Msg, Error_Msg_NEL): Add versions with span + parameter. + (First_And_Last_Nodes, Last_Node, Last_Sloc): New subprograms. + * erroutc.adb: Adapt to Sptr field being a span. + * erroutc.ads (Error_Msg_Object): Change field Sptr from + location to span. + * errutil.adb: Adapt to Sptr field being a span. + * freeze.adb: Use Errout reporting procedures for nodes to get + spans. + * par-ch3.adb: Likewise. + * par-prag.adb: Likewise. + * par-util.adb: Likewise. + * sem_case.adb: Likewise. + * sem_ch13.adb: Likewise. + * sem_ch3.adb: Likewise. + * sem_prag.adb: Likewise. + * types.ads: (Source_Span): New type for spans. + (To_Span): Basic constructors for spans. + +2021-04-28 Arnaud Charlet + + * einfo.adb (Discriminant_Constraint): Refine assertion. + +2021-04-28 Gary Dismukes + + * exp_util.adb (Add_Own_DIC): Suppress expansion of a DIC pragma + when the pragma occurs for an abstract type, since that could + lead to a call to an abstract function, and such DIC checks can + never be performed for abstract types in any case. + * sem_disp.adb (Check_Dispatching_Context): Suppress the check + for illegal calls to abstract subprograms when the call occurs + within a Default_Initial_Condition aspect and the call is passed + the current instance as an actual. + (Has_Controlling_Current_Instance_Actual): New function to test + a call to see if it has any actuals given by direct references + to a current instance of a type + * sem_res.adb (Resolve_Actuals): Issue an error for a call + within a DIC aspect to a nonprimitive subprogram with an actual + given by the name of the DIC type's current instance (which will + show up as a reference to the formal parameter of a DIC + procedure). + +2021-04-28 Ed Schonberg + + * exp_ch3.adb (Expand_Record_Extension): Set Parent_Subtype on + the type extension when within a generic unit, even though + expansion is disabled, to allow for proper resolution of + selected components inherited from an ancestor. + +2021-04-28 Arnaud Charlet + + * sem_aux.adb (Is_Limited_Type): Fix logic to check Is_Type + before assuming Ent is a typo. + * sem_ch4.adb (Analyze_Expression_With_Actions): Update + comments, minor reformatting. + * sem_res.adb (Resolve_Declare_Expression): Add protection + against no type. + +2021-04-28 Arnaud Charlet + + * exp_ch6.adb: Fix typo in comment. + * sem_ch3.adb (Access_Subprogram_Declaration): Add missing call + to Create_Extra_Formals. Remove obsolete bootstrap check. + * sem_eval.adb (Eval_Selected_Component): Simplify a + selected_component on an aggregate. + +2021-04-28 Piotr Trojanek + + * fmap.ads (Reset_Tables): Remove outdated references to + GNSA/ASIS. + * sem_eval.ads (Initialize): Likewise. + * sem_type.adb (Headers): Remove initialization at elaboration. + * sem_type.ads (Init_Interp_Tables): Remove outdated reference + to gnatf. + * stringt.ads (Initialize): Fix style in comment. + +2021-04-28 Piotr Trojanek + + * sem_res.ads: Update reference in comment. + * sem_type.ads: Fix casing in a name of a unit. + +2021-04-28 Yannick Moy + + * ghost.adb (Check_Ghost_Context): Add continuation message when + in predicate. + +2021-04-28 Eric Botcazou + + * libgnat/s-valrea.adb (Integer_to_Real): Use a subtype of Num + for the component type of the table of powers of ten. + * libgnat/s-valuer.adb (Round_Extra): Add assertion on Base. + +2021-04-28 Piotr Trojanek + + * sem_ch5.adb (Analyze_Case_Statement): Extend optimization to + all objects; fix typo in comment. + +2021-04-28 Piotr Trojanek + + * exp_ch9.adb (Build_Barrier_Function): Refine type of a + protected type entity. + (Is_Pure_Barrier): Fix style. + +2021-04-28 Bob Duff + + * exp_ch3.adb (Simple_Init_Defaulted_Type): Simplify the code, + and always use OK_Convert_To, rather than Unchecked_Convert_To + and Convert_To. + +2021-04-28 Arnaud Charlet + + * sem_ch3.adb (Analyze_Object_Declaration): Remove dead code. + * ali.ads, ali.adb (Scan_ALI): Remove unused parameters. + Remove unused code related to Xref lines. + (Get_Typeref): Removed, no longer used. + +2021-04-28 Arnaud Charlet + + * exp_attr.adb (Build_Array_VS_Func, Build_Record_VS_Func, + Expand_N_Attribute_Reference): Use Get_Fullest_View instead of + Validated_View. + (Build_Record_VS_Func): Adjust to keep using Validated_View. + (Expand_N_Attribute_Reference) [Valid]: Use + Small_Integer_Type_For to allow for more compile time + evaluations. + * sem_util.adb (Cannot_Raise_Constraint_Error): Add more precise + support for N_Indexed_Component and fix support for + N_Selected_Component which wasn't completely safe. + (List_Cannot_Raise_CE): New. + * libgnat/i-cobol.adb (Valid_Packed): Simplify test to address + new GNAT warning. + +2021-04-28 Arnaud Charlet + + * .gitignore: New. + * doc/share/conf.py: Add Python 3 compatibility. + * doc/share/gnat.sty: Add missing file. + +2021-04-28 Richard Wai + + * libgnat/a-cohase.ads (Cursor): Synchronize comments for the Cursor + type definition to be consistent with identical definitions in other + container packages. Add additional comments regarding the importance of + maintaining the "Position" component for predefined equality. + * libgnat/a-cohama.ads (Cursor): Likewise. + * libgnat/a-cihama.ads (Cursor): Likewise. + * libgnat/a-cohase.adb (Find, Insert): Ensure that Cursor objects + always have their "Position" component set to ensure predefined + equality works as required. + * libgnat/a-cohama.adb (Find, Insert): Likewise. + * libgnat/a-cihama.adb (Find, Insert): Likewise. + +2021-04-28 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Do not demote a + const or pure function because of a parameter whose type is pointer + to function. + * gcc-interface/trans.c (Call_to_gnu): Do not put back a conversion + between an actual and a formal that are unconstrained array types. + (gnat_gimplify_expr) : New case. + * gcc-interface/utils2.c (build_binary_op): Do not use |= operator. + (gnat_stabilize_reference_1): Likewise. + (gnat_rewrite_reference): Likewise. + (build_unary_op): Do not clear existing TREE_CONSTANT on the result. + (gnat_build_constructor): Also accept the address of a constant + CONSTRUCTOR as constant element. + +2021-04-28 Eric Botcazou + + * gcc-interface/trans.c (is_array_of_scalar_type): New predicate. + (find_decls_r): New function. + (return_slot_opt_for_pure_call_p): New predicate. + (Call_to_gnu): Do not create a temporary for the return value if the + parent node is an aggregate. If there is a target, try to apply the + return slot optimization to regular calls to pure functions returning + an array of scalar type. + +2021-04-28 Eric Botcazou + + * gcc-interface/trans.c (language_function): Add comment. + (loop_info_d): Add fndecl and invariants fields. + (find_loop_for): Test fndecl instead of the context of var. + (find_loop): New function. + (Regular_Loop_to_gnu): Fold back into... + (Loop_Statement_to_gnu): ...this. Emit invariants on entry, if any. + (gnat_to_gnu) : Record nonconstant invariant + offset computations in loops when optimization is enabled. + * gcc-interface/utils2.c (gnat_invariant_expr): Handle BIT_AND_EXPR. + +2021-04-20 Martin Liska + + * gnatvsn.ads: Bump Library_Version to 12. + +2021-04-13 Eric Botcazou + + * gcc-interface/misc.c (gnat_init): Set default range bits to 0. + * gcc-interface/trans.c (extract_encoding): Delete. + (decode_name): Likewise. + (File_Name_to_gnu): New function. + (gigi): Call it to translate file names. Replace assertion on + 1-1 mapping between files and line maps with conditional error. + +2021-04-11 Gerald Pfeifer + + * gnat_ugn.texi (Top): Avoid invalid "up" link. + +2021-03-29 Eric Botcazou + + PR ada/99802 + * freeze.adb (Is_Full_Access_Aggregate): Call Is_Full_Access_Object + on the name of an N_Assignment_Statement to spot full access. + +2021-03-10 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Build a TYPE_STUB_DECL + for the main variant of an enumeration type declared as volatile. + +2021-03-09 Mikael Pettersson + + * raise-gcc.c: On Cygwin include mingw32.h to prevent + windows.h from including x86intrin.h or emmintrin.h. + +2021-03-05 Eric Botcazou + + PR ada/99264 + * init.c (__gnat_alternate_sta) [Linux]: Remove preprocessor test on + MINSIGSTKSZ and bump size to 32KB. + * libgnarl/s-osinte__linux.ads (Alternate_Stack_Size): Bump to 32KB. + +2021-03-02 Mikael Pettersson + + PR bootstrap/98590 + * cstreams.c: Ensure fileno_unlocked() is visible on Cygwin. + +2021-03-02 Eric Botcazou + + PR ada/99095 + * sem_ch8.adb (Check_Constrained_Object): Restrict again the special + optimization for limited types to non-array types except in the case + of an extended return statement. + +2021-03-02 Eric Botcazou + + PR ada/99020 + * sem_ch3.adb (Build_Discriminated_Subtype): Set the Cloned_Subtype + only if the type is not private. + +2021-02-26 YunQiang Su + + PR ada/98996 + * Makefile.rtl: + add 128Bit operation file for MIPS N64 and N32 to + LIBGNAT_TARGET_PAIRS and EXTRA_GNATRTL_NONTASKING_OBJS + +2021-02-12 Arnaud Charlet + + * repinfo.ads, repinfo.adb (*SO_Ref*): Restore. + +2021-02-03 Eric Botcazou + + * gcc-interface/decl.c (components_to_record): If the first component + with rep clause is the _Parent field with variable size, temporarily + set it aside when computing the internal layout of the REP part again. + * gcc-interface/utils.c (finish_record_type): Revert to taking the + maximum when merging sizes for all record types with rep clause. + (merge_sizes): Put SPECIAL parameter last and adjust recursive calls. + +2021-02-03 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Make the + two fields of the fat pointer type addressable, and do not make the + template type read-only. + : If the type has discriminants mark it as may_alias. + * gcc-interface/utils.c (make_dummy_type): Likewise. + (build_dummy_unc_pointer_types): Likewise. + +2021-01-26 Marius Hillenbrand + + PR ada/98228 + * gcc-interface/utils.c (maybe_pad_type): Test the size of the new + packable type instead of its alignment for addressability's sake. + +2021-01-25 Eric Botcazou + + * gcc-interface/trans.c (make_covariant_thunk): Set the DECL_CONTEXT + of the parameters and do not set TREE_PUBLIC on the thunk. + (maybe_make_gnu_thunk): Pass the alias to the covariant thunk. + * gcc-interface/utils.c (finish_subprog_decl): Set the DECL_CONTEXT + of the parameters here... + (begin_subprog_body): ...instead of here. + +2021-01-19 Eric Botcazou + + PR ada/98740 + * gcc-interface/trans.c (add_decl_expr): Always mark TYPE_ADA_SIZE. + +2021-01-14 Sebastian Huber + + PR ada/98595 + * Makefile.rtl (LIBGNAT_TARGET_PAIRS) : Use + wraplf version of Aux_Long_Long_Float. + +2021-01-03 Eric Botcazou + + * gnatvsn.ads: Bump copyright year. + +2021-01-01 Jakub Jelinek + + * gnat_ugn.texi: Bump @copying's copyright year. + * gnat_rm.texi: Likewise. + +2021-01-01 Jakub Jelinek + + * ChangeLog-2020: Rotate ChangeLog. New file. + +Copyright (C) 2021 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/cp/ChangeLog-2021 b/gcc/cp/ChangeLog-2021 new file mode 100644 index 0000000..c577b82 --- /dev/null +++ b/gcc/cp/ChangeLog-2021 @@ -0,0 +1,5512 @@ +2021-12-20 Patrick Palka + + * call.c (build_new_method_call): Set + BASELINK_FUNCTIONS_MAYBE_INCOMPLETE_P on the pruned baselink. + * cp-tree.h (BASELINK_FUNCTIONS_MAYBE_INCOMPLETE_P): Define. + * pt.c (filter_memfn_lookup): New subroutine of tsubst_baselink. + (tsubst_baselink): Use filter_memfn_lookup on the new lookup + result when BASELINK_FUNCTIONS_MAYBE_INCOMPLETE_P is set on the + old baselink. Remove redundant BASELINK_P check. + * search.c (build_baselink): Set + BASELINK_FUNCTIONS_MAYBE_INCOMPLETE_P appropriately. + +2021-12-20 Patrick Palka + + * call.c (build_new_method_call): For a non-dependent call + expression inside a template, returning a templated tree + whose overload set contains just the selected function. + * semantics.c (finish_call_expr): Likewise. + +2021-12-19 Matthias Kretz + + * module.cc (trees_out::get_merge_kind): NAMESPACE_DECLs also + cannot have a DECL_TEMPLATE_INFO. + +2021-12-19 Patrick Palka + + PR c++/94376 + * lambda.c (lambda_capture_field_type): Strip location wrappers + before checking for a capture proxy. + (is_capture_proxy): Assert that we don't see a location wrapper. + (mark_const_cap_r): Don't call is_constant_capture_proxy on a + location wrapper. + +2021-12-19 Patrick Palka + + PR c++/103714 + * constraint.cc (satisfy_declaration_constraints): Do + push_to_top_level and pop_from_top_level around the call to + satisfy_normalized_constraints. + +2021-12-17 Marek Polacek + + PR c/103649 + * parser.c (cp_parser_declaration): Don't warn for attribute_ignored_p. + (cp_parser_std_attribute): Skip parsing of the attribute + arguments when the attribute is ignored. + +2021-12-17 Marek Polacek + + PR c++/103749 + * decl.c (lookup_and_check_tag): Give an error when a class was + declared as template but no template header has been provided. + * pt.c (do_class_deduction): Don't deduce CLASSTYPE_ERRONEOUS + types. + +2021-12-17 Iain Sandoe + + PR c++/100127 + * coroutines.cc (coro_rewrite_function_body): Handle initial + await expressions that try to produce a reference value. + +2021-12-17 Iain Sandoe + + PR c++/100772 + * coroutines.cc (morph_fn_to_coro): Convert function parms + from reference before constructing any operator-new args + list. + +2021-12-17 Jason Merrill + + * constraint.cc (deduce_concept_introduction): Adjust comment. + +2021-12-17 Jason Merrill + + PR c++/103681 + * cp-tree.h (struct lang_type): Add non_pod_aggregate. + (CLASSTYPE_NON_POD_AGGREGATE): New. + * class.c (check_field_decls): Set it. + (check_bases_and_members): Check it. + (check_non_pod_aggregate): New. + (enum eoc_mode): New. + (end_of_class): Always include non-empty fields. + Add eoc_nv_or_dsize mode. + (include_empty_classes, layout_class_type): Adjust. + +2021-12-16 Marek Polacek + + PR c++/99980 + * parser.c (cp_parser_single_declaration): Maybe pass + CP_PARSER_FLAGS_DELAY_NOEXCEPT down to cp_parser_init_declarator. + +2021-12-16 Martin Sebor + + PR c++/103703 + * parser.c (class_decl_loc_t::diag_mismatched_tags): Check for class + type before assuming a type is one. + +2021-12-16 Patrick Palka + + PR c++/51577 + PR c++/83035 + PR c++/100465 + * call.c (add_operator_candidates): Add lookups parameter. + Use it to avoid performing a second unqualified lookup when + instantiating a dependent operator expression. + (build_new_op): Add lookups parameter and pass it appropriately. + * constraint.cc (finish_constraint_binary_op): Use + build_min_nt_loc instead of build_x_binary_op. + * coroutines.cc (build_co_await): Adjust call to build_new_op. + * cp-objcp-common.c (cp_common_init_ts): Mark + DEPENDENT_OPERATOR_TYPE appropriately. + * cp-tree.def (DEPENDENT_OPERATOR_TYPE): Define. + * cp-tree.h (WILDCARD_TYPE_P): Accept DEPENDENT_OPERATOR_TYPE. + (FOLD_EXPR_OP_RAW): New, renamed from ... + (FOLD_EXPR_OP): ... this. Change this to return the tree_code directly. + (DEPENDENT_OPERATOR_TYPE_SAVED_LOOKUPS): Define. + (templated_operator_saved_lookups): Define. + (build_new_op): Add lookups parameter. + (build_dependent_operator_type): Declare. + (build_x_indirect_ref): Add lookups parameter. + (build_x_binary_op): Likewise. + (build_x_unary_op): Likewise. + (build_x_compound_expr): Likewise. + (build_x_modify_expr): Likewise. + * cxx-pretty-print.c (get_fold_operator): Adjust after + FOLD_EXPR_OP change. + * decl.c (start_preparsed_function): Don't call + push_operator_bindings. + * decl2.c (grok_array_decl): Adjust calls to build_new_op. + * method.c (do_one_comp): Likewise. + (build_comparison_op): Likewise. + * module.cc (trees_out::type_node): Handle DEPENDENT_OPERATOR_TYPE. + (trees_in::tree_node): Likewise. + * name-lookup.c (lookup_name): Revert r11-2876 change. + (op_unqualified_lookup): Remove. + (maybe_save_operator_binding): Remove. + (discard_operator_bindings): Remove. + (push_operator_bindings): Remove. + * name-lookup.h (maybe_save_operator_binding): Remove. + (push_operator_bindings): Remove. + (discard_operator_bindings): Remove. + * parser.c (cp_parser_unary_expression): Adjust calls to build_x_*. + (cp_parser_binary_expression): Likewise. + (cp_parser_assignment_expression): Likewise. + (cp_parser_expression): Likewise. + (do_range_for_auto_deduction): Likewise. + (cp_convert_range_for): Likewise. + (cp_parser_perform_range_for_lookup): Likewise. + (cp_parser_template_argument): Likewise. + (cp_parser_omp_for_cond): Likewise. + (cp_parser_omp_for_incr): Likewise. + (cp_parser_omp_for_loop_init): Likewise. + (cp_convert_omp_range_for): Likewise. + (cp_finish_omp_range_for): Likewise. + * pt.c (fold_expression): Adjust after FOLD_EXPR_OP change. Pass + templated_operator_saved_lookups to build_x_*. + (tsubst_omp_for_iterator): Adjust call to build_x_modify_expr. + (tsubst_expr) : Pass + templated_operator_saved_lookups to build_x_*. + (tsubst_copy_and_build) : Likewise. + : Likewise. + : Likewise. + : Likewise. + : Likewise. + (dependent_type_p_r): Return true for DEPENDENT_OPERATOR_TYPE. + * ptree.c (cxx_print_type): Handle DEPENDENT_OPERATOR_TYPE. + * semantics.c (finish_increment_expr): Adjust call to + build_x_unary_op. + (finish_unary_op_expr): Likewise. + (handle_omp_for_class_iterator): Adjust calls to build_x_*. + (finish_omp_cancel): Likewise. + (finish_unary_fold_expr): Use build_dependent_operator_type. + (finish_binary_fold_expr): Likewise. + * tree.c (cp_free_lang_data): Don't call discard_operator_bindings. + * typeck.c (rationalize_conditional_expr): Adjust call to + build_x_binary_op. + (op_unqualified_lookup): Define. + (build_dependent_operator_type): Define. + (build_x_indirect_ref): Add lookups parameter and use + build_dependent_operator_type. + (build_x_binary_op): Likewise. + (build_x_array_ref): Likewise. + (build_x_unary_op): Likewise. + (build_x_compound_expr_from_list): Adjust call to + build_x_compound_expr. + (build_x_compound_expr_from_vec): Likewise. + (build_x_compound_expr): Add lookups parameter and use + build_dependent_operator_type. + (cp_build_modify_expr): Adjust call to build_new_op. + (build_x_modify_expr): Add lookups parameter and use + build_dependent_operator_type. + * typeck2.c (build_x_arrow): Adjust call to build_new_op. + +2021-12-15 Marek Polacek + + PR c++/102229 + * decl.c (check_decltype_auto): New. + (grokdeclarator): Call it. + * pt.c (do_auto_deduction): Don't check decltype(auto) here. + +2021-12-15 Martin Liska + + PR c++/103713 + * tree.c (maybe_warn_parm_abi): Fix warning word splitting. + +2021-12-15 Jakub Jelinek + + PR c++/103704 + * semantics.c (finish_omp_target_clauses_r): For OMP_CLAUSEs + just walk subtrees. + +2021-12-14 Patrick Palka + + PR c++/103408 + * constraint.cc (type_deducible_p): Remove workaround for + non-templated requires-expressions. + (normalize_placeholder_type_constraints): Likewise. + * cp-tree.h (current_template_depth): Define. + (PROCESSING_REAL_TEMPLATE_DECL): Inspect current_template_depth + instead of the magnitude of processing_template_decl. + * decl.c (start_decl): Likewise. + (grokfndecl): Likewise. + (grokvardecl): Likewise. + (grokdeclarator): Likewise. + * friend.c (make_friend_class): Likewise. Calculate + friend_depth differently when called at instantiation time + instead of parse time. + (do_friend): Likewise. + * parser.c (cp_parser_requires_clause_expression): Remove + workaround for lambdas inside constraints. + (cp_parser_constraint_expression): Likewise. + (cp_parser_requires_expression): Likewise. + (synthesize_implicit_template_parm): Add to current_template_parms + before calling process_template_parm. + * pt.c (inline_needs_template_parms): Inspect + current_template_depth instead of the magnitude of + processing_template_decl. + (push_inline_template_parms_recursive): Likewise. + (maybe_begin_member_template_processing): Likewise. + (begin_template_parm_list): Likewise. + (process_template_parm): Likewise. + (end_template_parm_list): Likewise. + (push_template_decl): Likewise. + (add_inherited_template_parms): Likewise. + (instantiate_class_template_1): Don't adjust + processing_template_decl around the call to make_friend_class. + adjust_processing_template_decl to adjust_template_depth. Set + current_template_parms instead of processing_template_decl when + adjust_template_depth. + (make_auto_1): Inspect current_template_depth instead of the + magnitude of processing_template_decl. + (splice_late_return_type): Likewise. + * semantics.c (fixup_template_type): Likewise. + +2021-12-14 Patrick Palka + + * call.c (build_new_op): Use releasing_vec for arglist. Declare + conv in the scope it's used. + +2021-12-14 Patrick Palka + + * cp-tree.h (COMPOUND_EXPR_OVERLOADED): Remove. + * pt.c (build_non_dependent_expr): Don't inspect the flag. + * tree.c (build_min_non_dep): Don't set the flag. + +2021-12-12 Jonathan Wakely + + * error.c: Define INCLUDE_MEMORY instead of + INCLUDE_UNIQUE_PTR. + * lex.c: Likewise. + * name-lookup.c: Likewise. + (class namespace_limit_reached): Use std::unique_ptr instead of + gnu::unique_ptr. + (suggest_alternatives_for): Use std::move instead of gnu::move. + (suggest_alternatives_in_other_namespaces): Likewise. + * parser.c: Define INCLUDE_MEMORY instead of INCLUDE_UNIQUE_PTR. + +2021-12-09 Marek Polacek + + PR c++/103401 + * parser.c (cp_parser_decltype): Clear + auto_is_implicit_function_template_parm_p. + (cp_parser_type_id_1): Give errors only when !cp_parser_simulate_error. + (cp_parser_parameter_declaration): Clear + auto_is_implicit_function_template_parm_p after parsing the + decl-specifier-seq. + (cp_parser_sizeof_operand): Clear + auto_is_implicit_function_template_parm_p. + +2021-12-09 Jakub Jelinek + + PR pch/71934 + * module.cc (nop): Add another void * argument. + * name-lookup.c (resort_member_name_cmp): Pass the same pointer twice + to resort_data.new_value. + +2021-12-08 Chung-Lin Tang + + * parser.c (struct omp_dim): New struct type for use inside + cp_parser_omp_var_list_no_open. + (cp_parser_omp_var_list_no_open): Allow multiple levels of array and + component accesses in array section base-pointer expression. + (cp_parser_omp_all_clauses): Set 'allow_deref' to true in call to + cp_parser_omp_var_list for to/from clauses. + * semantics.c (handle_omp_array_sections_1): Extend allowed range + of base-pointer expressions involving INDIRECT/MEM/ARRAY_REF and + POINTER_PLUS_EXPR. + (handle_omp_array_sections): Adjust pointer map generation of + references. + (finish_omp_clauses): Extend allowed ranged of expressions + involving INDIRECT/MEM/ARRAY_REF and POINTER_PLUS_EXPR. + +2021-12-08 Chung-Lin Tang + + PR middle-end/92120 + * cp-tree.h (finish_omp_target): New declaration. + (finish_omp_target_clauses): Likewise. + * parser.c (cp_parser_omp_clause_map): Adjust call to + cp_parser_omp_var_list_no_open to set 'allow_deref' argument to true. + (cp_parser_omp_target): Factor out code, adjust into calls to new + function finish_omp_target. + * pt.c (tsubst_expr): Add call to finish_omp_target_clauses for + OMP_TARGET case. + * semantics.c (handle_omp_array_sections_1): Add handling to create + 'this->member' from 'member' FIELD_DECL. Remove case of rejecting + 'this' when not in declare simd. + (handle_omp_array_sections): Likewise. + (finish_omp_clauses): Likewise. Adjust to allow 'this[]' in OpenMP + map clauses. Handle 'A->member' case in map clauses. Remove case of + rejecting 'this' when not in declare simd. + (struct omp_target_walk_data): New struct for walking over + target-directive tree body. + (finish_omp_target_clauses_r): New function for tree walk. + (finish_omp_target_clauses): New function. + (finish_omp_target): New function. + +2021-12-07 Marek Polacek + + PR c++/95009 + * typeck.c (is_bitfield_expr_with_lowered_type) : + Handle UNARY_PLUS_EXPR, NEGATE_EXPR, NON_LVALUE_EXPR, BIT_NOT_EXPR, + P*CREMENT_EXPR too. + +2021-12-04 Jakub Jelinek + + * cp-tree.h (is_byte_access_type_not_plain_char): Declare. + * tree.c (is_byte_access_type_not_plain_char): New function. + * constexpr.c (clear_uchar_or_std_byte_in_mask): New function. + (cxx_eval_bit_cast): Don't error about padding bits if target + type is unsigned char or std::byte, instead return no clearing + ctor. Use clear_uchar_or_std_byte_in_mask. + +2021-12-03 Jason Merrill + + * error.c (current_dump_scope): New variable. + (dump_scope): Check it. + (dump_function_decl): Set it. + +2021-12-03 Marek Polacek + + PR c++/103403 + * cp-gimplify.c (cp_fold): Don't recurse if maybe_undo_parenthesized_ref + doesn't change its argument. + * pt.c (do_auto_deduction): Don't strip REFERENCE_REF_P trees if they + are REF_PARENTHESIZED_P. Use stripped_init when checking for + id-expression. + * semantics.c (force_paren_expr): Set REF_PARENTHESIZED_P on + REFERENCE_REF_P trees too. + (maybe_undo_parenthesized_ref): Remove dead code. + +2021-12-02 Marek Polacek + + PR c++/94490 + * pt.c (expand_integer_pack): Call + instantiate_non_dependent_expr_sfinae. + +2021-12-02 Marek Polacek + + PR c++/103408 + * cxx-pretty-print.c (pp_cxx_parameter_mapping): Print "" + rather than crash on an unnamed template parameter. + +2021-12-01 Jason Merrill + + PR c++/103310 + * constexpr.c (cxx_eval_binary_expression): Use + fold_binary_initializer_loc if manifestly cxeval. + +2021-11-30 Jason Merrill + + * cp-gimplify.c (genericize_if_stmt): Always build a COND_EXPR. + +2021-11-30 Richard Biener + + * logic.cc (cnf_size_r): Remove unreachable and inconsistently + placed gcc_unreachable ()s. + * pt.c (iterative_hash_template_arg): Remove unreachable + gcc_unreachable and return. + +2021-11-30 Thomas Schwinge + + * semantics.c (finish_omp_clauses): Remove "gang reduction on an + orphan loop" checking. + +2021-11-30 Cesar Philippidis + Thomas Schwinge + + * semantics.c (finish_omp_clauses): Emit an error on orphan + OpenACC gang reductions. + +2021-11-30 Jakub Jelinek + + * cp-gimplify.c (cp_fold_r): Perform folding of + std::source_location::current() calls here... + (cp_fold): ... rather than here. + +2021-11-30 Richard Biener + + * parser.c (cp_parser_postfix_expression): Remove + unreachable code. + * pt.c (tsubst_expr): Remove unreachable breaks. + +2021-11-29 Eric Gallager + + PR other/103021 + * Make-lang.in: Use ETAGS variable in TAGS target. + +2021-11-29 Patrick Palka + + PR c++/100493 + * parser.c (cp_parser_lambda_introducer): In C++17, don't + diagnose a redundant 'this' capture alongside a by-copy + capture default unless -pedantic. Move the diagnostic into + -Wc++20-extensions and adjust wording accordingly. + +2021-11-26 Jakub Jelinek + + PR c++/102753 + * cp-tree.h (struct ptrmem_cst): Add locus member. + (PTRMEM_CST_LOCATION): Define. + * tree.c (make_ptrmem_cst): Set PTRMEM_CST_LOCATION to input_location. + (cp_expr_location): Return PTRMEM_CST_LOCATION for PTRMEM_CST. + * typeck.c (build_x_unary_op): Overwrite PTRMEM_CST_LOCATION for + PTRMEM_CST instead of calling maybe_wrap_with_location. + (cp_build_addr_expr_1): Don't diagnose taking address of + immediate functions here. Instead when taking their address make + sure the returned ADDR_EXPR has EXPR_LOCATION set. + (expand_ptrmemfunc_cst): Copy over PTRMEM_CST_LOCATION to ADDR_EXPR's + EXPR_LOCATION. + (convert_for_assignment): Use cp_expr_loc_or_input_loc instead of + EXPR_LOC_OR_LOC. + * pt.c (tsubst_copy): Use build1_loc instead of build1. Ensure + ADDR_EXPR of immediate function has EXPR_LOCATION set. + * cp-gimplify.c (cp_fold_r): Diagnose taking address of immediate + functions here. For consteval if don't walk THEN_CLAUSE. + (cp_genericize_r): Move evaluation of calls to + std::source_location::current from here to... + (cp_fold): ... here. Don't assert calls to immediate functions must + be source_location_current_p, instead only constant evaluate + calls to source_location_current_p. + +2021-11-25 Jakub Jelinek + + PR c++/101180 + * pt.c (apply_late_template_attributes): Return early if there are no + dependent attributes. + +2021-11-25 Jakub Jelinek + + PR c++/102611 + * cp-tree.h (build_op_subscript): Implement P2128R6 + - Multidimensional subscript operator. Declare. + (class releasing_vec): Add release method. + (grok_array_decl): Remove bool argument, add vec ** + and tsubst_flags_t arguments. + (build_min_non_dep_op_overload): Declare another overload. + * parser.c (cp_parser_parenthesized_expression_list_elt): New function. + (cp_parser_postfix_open_square_expression): Mention C++23 syntax in + function comment. For C++23 parse zero or more than one initializer + clauses in expression list, adjust grok_array_decl caller. + (cp_parser_parenthesized_expression_list): Use + cp_parser_parenthesized_expression_list_elt. + (cp_parser_builtin_offsetof): Adjust grok_array_decl caller. + * decl.c (grok_op_properties): For C++23 don't check number + of arguments of operator[]. + * decl2.c (grok_array_decl): Remove decltype_p argument, add + index_exp_list and complain arguments. If index_exp is NULL, + handle *index_exp_list as the subscript expression list. + * tree.c (build_min_non_dep_op_overload): New overload. + * call.c (add_operator_candidates, build_over_call): Adjust comments + for removal of build_new_op_1. + (build_op_subscript): New function. + * pt.c (tsubst_copy_and_build_call_args): New function. + (tsubst_copy_and_build) : If second + operand is magic CALL_EXPR with ovl_op_identifier (ARRAY_REF) + as CALL_EXPR_FN, tsubst CALL_EXPR arguments including expanding + pack expressions in it and call grok_array_decl instead of + build_x_array_ref. + : Use tsubst_copy_and_build_call_args. + * semantics.c (handle_omp_array_sections_1): Adjust grok_array_decl + caller. + +2021-11-24 Marek Polacek + + PR c++/103347 + * cp-tree.h (struct cp_declarator): Add a location_t member. + (maybe_warn_cpp0x): Add a location_t parameter with a default argument. + (loc_or_input_loc): New. + * decl.c (grokdeclarator): Use loc_or_input_loc. Pass init_loc down + to maybe_warn_cpp0x. + * error.c (maybe_warn_cpp0x): Add a location_t parameter. Use it. + * parser.c (make_declarator): Initialize init_loc. + (cp_parser_member_declaration): Set init_loc. + (cp_parser_condition): Likewise. + (cp_parser_init_declarator): Likewise. + (cp_parser_parameter_declaration): Likewise. + +2021-11-24 Jason Merrill + + * call.c + * decl.c + * name-lookup.c: + Use auto_cond_timevar instead of timevar_cond_start/stop. + Remove wrapper functions. + +2021-11-23 Martin Sebor + + PR c++/96507 + * typeck.c (warn_for_null_address): Handle reference members. + +2021-11-23 Marek Polacek + + PR c++/19808 + * init.c (emit_mem_initializers): Don't add is_really_empty_class + members into uninitialized. + +2021-11-23 Jakub Jelinek + + * semantics.c (clone_omp_udr): Don't initialize + id.transform_lang_insert_block. + * optimize.c (clone_body): Likewise. + +2021-11-22 Jason Merrill + + * typeck.c (build_x_unary_op): Set address location. + (convert_member_func_to_ptr): Handle location wrapper. + * pt.c (convert_nontype_argument): Likewise. + +2021-11-22 Jason Merrill + + * typeck.c (check_return_expr): Only strip location wrapper during + NRV handling. + +2021-11-22 Jakub Jelinek + + PR c++/101731 + * parser.c (cp_parser_late_parsing_oacc_routine): Set + parser->oacc_routine->fndecl_seen here, rather than ... + (cp_finalize_oacc_routine): ... here. Don't error if + parser->oacc_routine->fndecl_seen is set for FUNCTION_DECLs. + +2021-11-22 Jakub Jelinek + + PR c++/103349 + * constexpr.c (potential_constant_expression_1): Punt on OMP_MASKED. + +2021-11-19 Jakub Jelinek + + PR c++/101180 + * pt.c (apply_late_template_attributes): Temporarily override + current_optimize_pragma, optimization_current_node, + current_target_pragma and scope_chain->omp_declare_target_attribute, + so that cplus_decl_attributes doesn't add implicit attributes. + +2021-11-19 Martin Sebor + + PR c++/33925 + PR c/102867 + * typeck.c (warn_for_null_address): Suppress warnings for code + resulting from macro expansion. + +2021-11-19 Martin Liska + + Revert: + 2021-11-19 Martin Liska + + * parser.c (add_debug_begin_stmt): Use option directly. + +2021-11-19 Patrick Palka + + * tree.c (cp_walk_subtrees) : Don't explicitly + walk the operands. + +2021-11-19 Patrick Palka + + PR c++/94376 + * lambda.c (lambda_capture_field_type): Simplify by handling the + is_this case first. When capturing by-value a capture proxy, + consider the type of the corresponding field instead. + +2021-11-19 Richard Biener + + PR c++/103326 + * pt.c (tsubst_copy): Handle VECTOR_CST. + +2021-11-19 Jakub Jelinek + + PR c++/70796 + * cp-gimplify.c (cp_gimplify_arg): New function. + (cp_gimplify_expr): Use cp_gimplify_arg instead of gimplify_arg, + pass true as last argument to it if there are any following + arguments in strong evaluation order with side-effects. + +2021-11-19 Marek Polacek + + PR c++/19808 + PR c++/96121 + * init.c (perform_member_init): Remove a forward declaration. + Walk the initializer using find_uninit_fields_r. New parameter + to track uninitialized fields. If a member is initialized, + remove it from the hash set. + (perform_target_ctor): Return the initializer. + (struct find_uninit_data): New class. + (find_uninit_fields_r): New function. + (find_uninit_fields): New function. + (emit_mem_initializers): Keep and initialize a set holding fields + that are not initialized. When handling delegating constructors, + walk the constructor tree using find_uninit_fields_r. Also when + initializing base clases. Pass uninitialized down to + perform_member_init. + +2021-11-19 Patrick Palka + + PR c++/103198 + * pt.c (any_template_parm_r): Walk the TREE_TYPE of a dummy + object. + +2021-11-18 Marek Polacek + + PR c++/103049 + * semantics.c (finish_compound_literal): Accept C++23 auto{x}. + * typeck2.c (build_functional_cast_1): Accept C++23 auto(x). + +2021-11-18 Patrick Palka + + * pt.c (tsubst_copy_and_build) : Disable the + -fpermissive fallback for C++20 template-id ADL, but keep the + diagnostic. + +2021-11-18 Jan Hubicka + + * decl.c (finish_function): Update use of decl_replaceable_p. + +2021-11-18 Patrick Palka + + PR c++/99911 + * pt.c (tsubst_copy_and_build) : Don't diagnose + name lookup failure if the arguments to an unresolved template + name are still dependent. + +2021-11-18 Patrick Palka + + PR c++/102670 + * pt.c (tsubst_copy_and_build) : When looking + for an identifier callee in the koenig_p case, also look through + TEMPLATE_ID_EXPR. Use tsubst_copy to substitute through the + template arguments of the template-id. + +2021-11-18 Matthias Kretz + + * constexpr.c (cxx_eval_constant_expression): Handle PAREN_EXPR + via cxx_eval_constant_expression. + * cp-objcp-common.c (names_builtin_p): Handle + RID_BUILTIN_ASSOC_BARRIER. + * cp-tree.h: Adjust TREE_LANG_FLAG documentation to include + PAREN_EXPR in REF_PARENTHESIZED_P. + (REF_PARENTHESIZED_P): Add PAREN_EXPR. + * parser.c (cp_parser_postfix_expression): Handle + RID_BUILTIN_ASSOC_BARRIER. + * pt.c (tsubst_copy_and_build): If the PAREN_EXPR is not a + parenthesized initializer, build a new PAREN_EXPR. + * semantics.c (force_paren_expr): Simplify conditionals. Set + REF_PARENTHESIZED_P on PAREN_EXPR. + (maybe_undo_parenthesized_ref): Test PAREN_EXPR for + REF_PARENTHESIZED_P. + +2021-11-18 Martin Liska + + * parser.c (add_debug_begin_stmt): Use option directly. + +2021-11-16 Jason Merrill + + * ptree.c (cxx_print_xnode): Handle PTRMEM_CST. + +2021-11-15 Jason Merrill + + * cp-tree.h (struct lang_decl_fn): Add implicit_constexpr. + (decl_implicit_constexpr_p): New. + * class.c (type_maybe_constexpr_destructor): Use + TYPE_HAS_TRIVIAL_DESTRUCTOR and maybe_constexpr_fn. + (finalize_literal_type_property): Simplify. + * constexpr.c (is_valid_constexpr_fn): Check for dtor. + (maybe_save_constexpr_fundef): Try to set DECL_DECLARED_CONSTEXPR_P + on inlines. + (cxx_eval_call_expression): Use maybe_constexpr_fn. + (maybe_constexpr_fn): Handle flag_implicit_constexpr. + (var_in_maybe_constexpr_fn): Use maybe_constexpr_fn. + (potential_constant_expression_1): Likewise. + (decl_implicit_constexpr_p): New. + * decl.c (validate_constexpr_redeclaration): Allow change with + -fimplicit-constexpr. + (grok_special_member_properties): Use maybe_constexpr_fn. + * error.c (dump_function_decl): Don't print 'constexpr' + if it's implicit. + * Make-lang.in (check-c++-all): Update. + +2021-11-15 Jason Merrill + + * typeck2.c (split_nonconstant_init_1): Handle flexarrays better. + +2021-11-15 Jakub Jelinek + + * parser.c (OMP_TARGET_CLAUSE_MASK): Add + PRAGMA_OMP_CLAUSE_THREAD_LIMIT. + +2021-11-15 Jason Merrill + + * call.c (perform_implicit_conversion_flags): Use the location of + the argument. + * lambda.c (build_lambda_object): Set location on the TARGET_EXPR. + +2021-11-15 Jason Merrill + + * constexpr.c (maybe_save_constexpr_fundef): Also check whether the + body of a constructor is potentially constant. + +2021-11-15 Jason Merrill + + * semantics.c (is_this_parameter): Check DECL_HAS_VALUE_EXPR_P + instead of is_capture_proxy. + +2021-11-15 Jason Merrill + + PR c++/70690 + * init.c (build_vec_init): Check default_init_uninitialized_part in + C++20. + +2021-11-15 Jason Merrill + + * constexpr.c (maybe_constant_value): Don't evaluate + in an unevaluated operand unless manifestly const-evaluated. + (fold_non_dependent_expr_template): Likewise. + * decl.c (compute_array_index_type_loc): This context is + manifestly constant-evaluated. + +2021-11-15 Jason Merrill + + * constexpr.c (cxx_eval_thunk_call): Error instead of ICE + on vbase thunk to constexpr function. + +2021-11-11 Patrick Palka + + * parser.c (cp_parser_template_argument_list): Use auto_vec + instead of manual memory management. + +2021-11-11 Jakub Jelinek + + * parser.c (cp_parser_omp_clause_num_teams): Parse optional + lower-bound and store it into OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR. + Use OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR instead of + OMP_CLAUSE_NUM_TEAMS_EXPR. + (cp_parser_omp_target): For OMP_CLAUSE_NUM_TEAMS evaluate before + combined target teams even lower-bound expression. + * semantics.c (finish_omp_clauses): Handle + OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR of OMP_CLAUSE_NUM_TEAMS clause. + * pt.c (tsubst_omp_clauses): Likewise. + (tsubst_expr): For OMP_CLAUSE_NUM_TEAMS evaluate before + combined target teams even lower-bound expression. + +2021-11-09 Marek Polacek + + * class.c (default_init_uninitialized_part): Use + next_initializable_field. + * method.c (walk_field_subobs): Skip unnamed bit-fields. + +2021-11-09 Jakub Jelinek + + PR c++/103114 + * parser.c (cp_parser_userdef_numeric_literal): Use fold_build2 + with COMPLEX_EXPR arg instead of build_complex, use build_zero_cst + instead of fold_convert from integer_zero_node. + +2021-11-09 Patrick Palka + + PR c++/98394 + PR c++/85846 + * parser.c (cp_parser_placeholder_type_specifier): Declare + static. Don't override tentative to false when tmpl is a + concept-id with empty argument list. Don't emit a "does not + constrain a type" error when tentative. + +2021-11-09 Patrick Palka + + PR c++/100652 + * pt.c (push_template_decl): Check for bare parameter packs in + the argument list of a variable template partial specialization. + +2021-11-09 Aldy Hernandez + + * ptree.c (cxx_print_xnode): Add more space to pfx array. + +2021-11-04 Jason Merrill + + * call.c (build_array_conv): Use range-for. + (build_complex_conv): Likewise. + * constexpr.c (clear_no_implicit_zero) + (reduced_constant_expression_p): Likewise. + * decl.c (cp_complete_array_type): Likewise. + * decl2.c (mark_vtable_entries): Likewise. + * pt.c (iterative_hash_template_arg): + (invalid_tparm_referent_p, unify) + (type_dependent_expression_p): Likewise. + * typeck.c (build_ptrmemfunc_access_expr): Likewise. + +2021-11-03 Joseph Myers + + PR c/103031 + * cvt.c (convert_init): New function. + +2021-11-02 Richard Sandiford + + * decl.c: Include langhooks-def.h. + (cxx_simulate_record_decl): New function. + * cp-objcp-common.h (cxx_simulate_record_decl): Declare. + (LANG_HOOKS_SIMULATE_RECORD_DECL): Override. + +2021-10-29 Jakub Jelinek + + PR c++/102820 + * semantics.c (maybe_zero_constructor_nelts): New function. + (finish_compound_literal): Implement DR2351 - void{}. + If type is cv void and compound_literal has no elements, return + void_node. If type is cv void and compound_literal might have no + elements after expansion, handle it like other dependent compound + literals. + +2021-10-28 Patrick Palka + + PR c++/102933 + * parser.c (cp_parser_simple_type_specifier): Adjust diagnostic + for using auto in parameter declaration. + * pt.c (extract_autos_r): Ignore CTAD placeholders. + (extract_autos): Use range-based for. + (do_auto_deduction): Use extract_autos only for the concepts TS + and not also for standard concepts. + (type_uses_auto): Likewise with for_each_template_parm. + (check_auto_in_tmpl_args): Just return false outside of the + concepts TS. Simplify. + +2021-10-28 Patrick Palka + + PR c++/102780 + * constexpr.c (potential_constant_expression_1) : + When tf_error isn't set, preemptively check potentiality of the + second operand before performing trial evaluation of the first + operand. + (potential_constant_expression_1): When tf_error is set, first check + potentiality quietly and return true if successful, otherwise + proceed noisily to give errors. + +2021-10-27 Jakub Jelinek + + PR c++/102854 + * semantics.c (handle_omp_for_class_iterator, + finish_omp_for): Adjust c_omp_check_loop_iv_exprs caller. + +2021-10-27 Jakub Jelinek + + PR c++/102753 + * constexpr.c (cxx_eval_outermost_constant_expr): Perform + find_immediate_fndecl discovery if is_consteval or + in_immediate_context () rather than if is_consteval, t != r + and not in immediate function's body. + +2021-10-27 Jakub Jelinek + + PR c++/102753 + * cp-tree.h (saved_scope): Document that consteval_if_p member + is also set while processing immediate invocation. + (in_immediate_context): Declare. + * call.c (in_immediate_context): New function. + (immediate_invocation_p): Use it. + (struct in_consteval_if_p_temp_override): New class. + (build_over_call): Temporarily set in_consteval_if_p for processing + immediate invocation arguments. + * typeck.c (cp_build_addr_expr_1): Diagnose taking address of + an immediate method. Use t instead of TREE_OPERAND (arg, 1). + Use in_immediate_context function. + * constexpr.c (find_immediate_fndecl): Handle PTRMEM_CST + which refers to immediate function decl. + +2021-10-26 Marek Polacek + + PR c++/102617 + * parser.c (cp_parser_for): Maybe call cp_parser_init_statement + twice. Warn about range-based for loops with initializer here. + (cp_parser_init_statement): Don't duplicate code. Allow + alias-declaration in init-statement. + +2021-10-22 Eric Gallager + + PR other/102663 + * Make-lang.in: Add dummy c++.install-dvi target. + +2021-10-20 Jason Merrill + + * parser.c (cp_parser_parse_and_diagnose_invalid_type_name): + Pass true for declarator_p. + (cp_parser_nested_name_specifier_opt): Only look through + TYPENAME_TYPE if check_dependency_p is false. + +2021-10-20 Jakub Jelinek + + PR c++/102642 + * name-lookup.c (push_local_extern_decl_alias): Don't call + set_decl_tls_model on error_mark_node. + * decl.c (make_rtl_for_nonlocal_decl): Don't call + set_user_assembler_name on error_mark_node. + * parser.c (cp_parser_oacc_declare): Ignore DECL_LOCAL_DECL_ALIAS + if it is error_mark_node. + (cp_parser_omp_declare_target): Likewise. + +2021-10-19 Jakub Jelinek + + PR c++/102786 + * constexpr.c (cxx_eval_constant_expression): Don't reject + INTEGER_CSTs with type POINTER_TYPE to METHOD_TYPE. + +2021-10-15 Jason Merrill + + PR c++/51851 + PR c++/101402 + PR c++/102033 + PR c++/102034 + PR c++/102039 + PR c++/102044 + * pt.c (determine_specialization): Remove redundant code. + (fn_type_unification): Check for mismatched length. + (type_unification_real): Ignore terminal void. + (get_bindings): Don't stop at void_list_node. + * class.c (resolve_address_of_overloaded_function): Likewise. + +2021-10-15 Jason Merrill + + * constexpr.c (cxx_bind_parameters_in_call): Replace + new_call parameter with fun. + (cxx_eval_call_expression): Call it before instantiation. + (cxx_eval_outermost_constant_expr): Only instantiate fns + when manifestly_const_eval. + * typeck2.c (check_narrowing): This context is manifestly + constant-evaluated. + +2021-10-14 Kwok Cheung Yeung + + * decl.c (omp_declare_variant_finalize_one): Change call from + c_omp_mark_declare_variant to omp_mark_declare_variant. + * parser.c (cp_finish_omp_declare_variant): Change call from + c_omp_check_context_selector to omp_check_context_selector. + +2021-10-09 Jakub Jelinek + + * parser.c (cp_parser_omp_structured_block): Remove disallow_omp_attrs + argument. + (cp_parser_omp_structured_block_sequence): New function. + (cp_parser_omp_scan_loop_body): Use it. + (cp_parser_omp_sections_scope): Likewise. + +2021-10-08 Martin Liska + + * constexpr.c (maybe_warn_about_constant_value): Use new macro + OPTION_SET_P. + * decl.c (redeclaration_error_message): Likewise. + (cxx_init_decl_processing): Likewise. + +2021-10-08 Jakub Jelinek + + PR c++/102640 + * parser.c (handle_omp_declare_target_clause): New function. + (cp_parser_omp_declare_target): Use it. + +2021-10-07 Patrick Palka + + PR c++/61355 + * pt.c (convert_template_argument): Perform array/function to + pointer conversion on the substituted type of an NTTP. + +2021-10-07 Patrick Palka + + PR c++/99904 + * pt.c (is_compatible_template_arg): Set processing_template_decl + around tsubst_constraint_info. + +2021-10-07 Jonathan Wakely + + PR c++/102482 + * init.c (maybe_warn_list_ctor): Do not warn for a reference to + a non-const std::initializer_list. + +2021-10-06 Jakub Jelinek + + PR c++/102612 + * parser.c (cp_parser_jump_statement): Implement C++23 P2242R3. + Allow goto expressions in constexpr function bodies for C++23. + Adjust error message for older standards to mention it. + * decl.c (start_decl): Allow static and thread_local declarations + in constexpr function bodies for C++23. Adjust error message for + older standards to mention it. + * constexpr.c (ensure_literal_type_for_constexpr_object): Allow + declarations of variables with non-literal type in constexpr function + bodies for C++23. Adjust error message for older standards to mention + it. + (cxx_eval_constant_expression) : Diagnose declarations + of initialization of static or thread_local vars. + (cxx_eval_constant_expression) : Diagnose goto + statements for C++23. + (potential_constant_expression_1) : Swap the + CP_DECL_THREAD_LOCAL_P and TREE_STATIC checks. + (potential_constant_expression_1) : Allow labels for + C++23. Adjust error message for older standards to mention it. + +2021-10-06 Jakub Jelinek + Jason Merrill + + PR c++/98712 + PR c++/102490 + * cp-tree.h (maybe_synthesize_method): Declare. + * method.c (genericize_spaceship): Use + LOOKUP_NORMAL | LOOKUP_NONVIRTUAL | LOOKUP_DEFAULTED instead of + LOOKUP_NORMAL for flags. + (comp_info): Remove defining member. Add complain, code, retcat. + (comp_info::comp_info): Adjust. + (do_one_comp): Split out from build_comparison_op. Use + LOOKUP_NORMAL | LOOKUP_NONVIRTUAL | LOOKUP_DEFAULTED instead of + LOOKUP_NORMAL for flags. + (build_comparison_op): Add defining argument. Adjust comp_info + construction. Use defining instead of info.defining. Assert that + if defining, ctype is a complete type. Walk base binfos. + (synthesize_method, maybe_explain_implicit_delete, + explain_implicit_non_constexpr): Adjust build_comparison_op callers. + (maybe_synthesize_method): New function. + * class.c (check_bases_and_members): Don't call defaulted_late_check + for sfk_comparison. + (finish_struct_1): Call it here instead after class has been + completed. + * pt.c (maybe_instantiate_noexcept): Call maybe_synthesize_method + instead of synthesize_method. + +2021-10-05 Jakub Jelinek + + PR c++/102548 + * tree.c (apply_identity_attributes): Fix handling of the + case where an attribute in the list doesn't affect type + identity but some attribute before it does. + +2021-10-05 Patrick Palka + + PR c++/102547 + * constexpr.c (potential_constant_expression_1): Handle + NONTYPE_ARGUMENT_PACK. + +2021-10-05 Patrick Palka + + PR c++/98930 + * pt.c (has_value_dependent_address): Return true for a static + local variable from a function template. + +2021-10-04 Marek Polacek + + PR c++/97573 + * typeck.c (cp_build_binary_op): Call do_warn_array_compare. + +2021-10-03 Iain Sandoe + + PR c++/101765 + * coroutines.cc (register_local_var_uses): Emit a sorry if + we encounter a VLA in the coroutine local variables. + +2021-10-03 Iain Sandoe + + PR c++/99710 + * coroutines.cc (await_statement_walker): Report an error if + an await expression is found in a handler body. + +2021-10-03 John Eivind Helset + + PR c++/100673 + * coroutines.cc (build_co_await): Guard against NULL + await_suspend types. + +2021-10-03 Iain Sandoe + + PR c++/101133 + * coroutines.cc (build_co_await): Mark co_await_expr trees + with TREE_SIDE_EFFECTS, also mark any containing expression. + (finish_co_await_expr): Mark type-dependent co_await_expr + trees with TREE_SIDE_EFFECTS. + +2021-10-03 Iain Sandoe + + PR c++/99575 + * coroutines.cc (build_co_await): Strip NOPs from + candidate awaiter expressions before testing to see + if they need a temporary. + +2021-10-01 Martin Sebor + + PR c/102103 + * typeck.c (warn_for_null_address): Enhance. + (cp_build_binary_op): Call it also for member pointers. + +2021-10-01 qingzhe huang + + PR c++/101783 + * tree.c (cp_build_qualified_type_real): Exclude typedef from + error. + +2021-10-01 Jakub Jelinek + Richard Biener + + PR sanitizer/102515 + * typeck.c (cp_build_binary_op): Call ubsan_instrument_division + for division even for SANITIZE_SI_OVERFLOW. + +2021-10-01 Jakub Jelinek + + * parser.c (cp_parser_omp_clause_order): Set + OMP_CLAUSE_ORDER_REPRODUCIBLE for explicit reproducible: modifier. + +2021-10-01 Jakub Jelinek + + PR c++/102496 + * name-lookup.c (push_local_extern_decl_alias): Return early even for + tls vars with non-dependent type when processing_template_decl. For + CP_DECL_THREAD_LOCAL_P vars call set_decl_tls_model on alias. + +2021-09-30 Patrick Palka + + PR c++/102535 + * method.c (is_xible_helper): Don't exit early for multi-arg + ctors in C++20. + +2021-09-30 Patrick Palka + + * parser.c (cp_parser_trait_expr): Call nreverse on the reversed + list of trailing arguments. + +2021-09-30 Patrick Palka + + PR c++/95567 + * method.c (build_comparison_op): Skip DECL_VIRTUAL_P fields. + +2021-09-28 Patrick Palka + + PR c++/99909 + * pt.c (coerce_template_template_parms): Keep + processing_template_decl set around the call to unify as well. + +2021-09-28 Iain Sandoe + + PR c++/102454 + * coroutines.cc (analyze_fn_parms): Clean up synthetic names for + unnamed function params. + (morph_fn_to_coro): Do not try to set a guard variable for param + DTORs in the ramp, unless we have exceptions active. + +2021-09-27 Patrick Palka + + PR c++/102479 + * pt.c (rewrite_template_parm): Handle single-level tsubst_args. + Avoid a tree cycle when assigning the DECL_TEMPLATE_PARMS for a + rewritten ttp. + (alias_ctad_tweaks): Set current_template_parms accordingly. + +2021-09-23 Michel Morin + + * parser.c (cp_keyword_starts_decl_specifier_p): Do not + handle RID_ATTRIBUTE. + (cp_parser_constructor_declarator_p): Remove now-redundant + checks. + (cp_parser_lambda_declarator_opt): Likewise. + +2021-09-23 Michel Morin + + PR c++/77565 + * parser.c (cp_keyword_starts_decl_specifier_p): Handle more + decl-specifiers (typedef/inline/cv/explicit/virtual/friend). + +2021-09-23 Patrick Palka + + * ptree.c (cxx_print_decl): Dump the DECL_TEMPLATE_RESULT of + a TEMPLATE_DECL. Dump the DECL_TEMPLATE_INFO rather than just + printing its pointer value. + +2021-09-23 Jakub Jelinek + + PR c++/102413 + * parser.c (cp_parser_omp_directive_args): Diagnose if omp::directive + is not followed by a balanced token sequence starting with open paren. + +2021-09-22 Patrick Palka + + DR 2446 + PR c++/102412 + * constexpr.c (cxx_eval_constant_expression) + : Check value_dependent_expression_p + instead of processing_template_decl. + * pt.c (value_dependent_expression_p) : + Return true only if any_dependent_template_arguments_p. + (instantiation_dependent_r) : Remove this case. + : Likewise. + +2021-09-22 Jakub Jelinek + + * parser.c (cp_parser_omp_clause_allocate): Parse allocate clause + modifiers. + * semantics.c (finish_omp_clauses) : Perform + semantic analysis of OMP_CLAUSE_ALLOCATE_ALIGN. + * pt.c (tsubst_omp_clauses) : Handle + also OMP_CLAUSE_ALLOCATE_ALIGN. + +2021-09-22 Barrett Adair + + * pt.c (find_parm_usage_r): New walk_tree callback to find func + parms. + (any_template_arguments_need_structural_equality_p): New special + case. + +2021-09-21 wangpc + + * decl.c (start_decl_1): Move verify_type_context to ... + (cp_finish_decl): ... to here. + +2021-09-18 Jakub Jelinek + + * parser.c (cp_parser_omp_clause_order): Parse unconstrained + and reproducible modifiers. + (OMP_DISTRIBUTE_CLAUSE_MASK): Add order clause. + +2021-09-18 Jakub Jelinek + + * parser.c (cp_parser_omp_clause_default): Handle private and + firstprivate arguments, adjust diagnostics on unknown argument. + * cp-gimplify.c (cxx_omp_finish_clause): Handle OMP_CLAUSE_PRIVATE. + +2021-09-18 Jason Merrill + + * cp-tree.h (dependentish_scope_p): Declare. + * pt.c (dependentish_scope_p): New. + * parser.c (cp_parser_lookup_name): Return a TYPENAME_TYPE + for lookup of a type in a dependent object. + (cp_parser_template_id): Handle TYPENAME_TYPE. + (cp_parser_template_name): If we're looking for a type, + a name followed by < names a template. + +2021-09-18 Jason Merrill + + * cp-tree.h: Fix typo in LANG_FLAG list. + +2021-09-17 Jakub Jelinek + + * cp-tree.h (finish_omp_atomic): Add r and weak arguments. + * parser.c (cp_parser_omp_atomic): Update function comment for + OpenMP 5.1 atomics, parse OpenMP 5.1 atomics and fail, compare and + weak clauses. + * semantics.c (finish_omp_atomic): Add r and weak arguments, handle + them, handle COND_EXPRs. + * pt.c (tsubst_expr): Adjust for COND_EXPR forms that + finish_omp_atomic can now produce. + +2021-09-16 Patrick Palka + + PR c++/98486 + * constraint.cc (get_normalized_constraints_from_decl): Always + look up constraints using the most general template. + * decl.c (grokdeclarator): Set constraints on a static data + member template. + * pt.c (determine_specialization): Check constraints on a + variable template. + +2021-09-16 Iain Sandoe + + * coroutines.cc (await_statement_walker): Code cleanups. + +2021-09-16 Jason Merrill + + * constexpr.c (cxx_eval_outermost_constant_expr): Use + protected_set_expr_location. + +2021-09-15 Patrick Palka + + PR c++/101904 + * call.c (build_user_type_conversion_1): Add tf_conv to complain. + (add_candidates): When in a SFINAE context, instead of adding a + candidate to bad_fns just mark it unviable. + +2021-09-15 Jason Merrill + + * cp-tree.h (parsing_function_declarator): Declare. + * name-lookup.c (set_decl_context_in_fn): Use it. + * parser.c (cp_parser_direct_declarator): Use it. + (parsing_function_declarator): New. + +2021-09-15 Jakub Jelinek + + PR c++/88578 + PR c++/102295 + * typeck2.c (split_nonconstant_init_1): Don't throw away empty + initializers of flexible array members if they have non-zero type + size. + +2021-09-15 Patrick Palka + + PR c++/102050 + * decl.c (grok_special_member_properties): Set + TYPE_HAS_COPY_CTOR, TYPE_HAS_DEFAULT_CONSTRUCTOR + and TYPE_HAS_LIST_CTOR independently from each other. + +2021-09-15 Jason Merrill + + * decl.c (cxx_init_decl_processing): Only warn about odd + interference sizes if they were specified with --param. + +2021-09-15 Jason Merrill + + PR c++/48396 + * cp-tree.h (enum cp_tree_index): Remove CPTI_TYPE_INFO_PTR_TYPE. + (type_info_ptr_type): Remove. + * rtti.c (init_rtti_processing): Don't predeclare std::type_info. + (typeid_ok_p): Check for null const_type_info_type_node. + (type_info_ptr_type, get_void_tinfo_ptr): New fns. + (get_tinfo_decl_dynamic, get_tinfo_ptr): Use them. + (ptr_initializer, ptm_initializer, get_pseudo_ti_init): Use them. + (get_tinfo_desc): Use const_ptr_type_node. + +2021-09-15 Jason Merrill + + * parser.c (cp_parser_template_name): Move object type. + (cp_parser_pre_parsed_nested_name_specifier): Likewise. + +2021-09-15 Jason Merrill + + * parser.c (cp_parser_unqualified_id): Only complain about ~A in + a declarator. + +2021-09-14 Iain Sandoe + + * coroutines.cc (struct param_info): Add copy_var. + (build_actor_fn): Use simplified param references. + (register_param_uses): Likewise. + (rewrite_param_uses): Likewise. + (analyze_fn_parms): New function. + (coro_rewrite_function_body): Add proxies for the fn + parameters to the outer bind scope of the rewritten code. + (morph_fn_to_coro): Use simplified version of param ref. + +2021-09-14 Iain Sandoe + + * coroutines.cc (coro_resume_fn_id, coro_destroy_fn_id, + coro_promise_id, coro_frame_needs_free_id, coro_resume_index_id, + coro_self_handle_id, coro_actor_continue_id, + coro_frame_i_a_r_c_id): New. + (coro_init_identifiers): Initialize new name identifiers. + (coro_promise_type_found_p): Use pre-built identifiers. + (struct await_xform_data): Remove unused fields. + (transform_await_expr): Delete code that is now unused. + (build_actor_fn): Simplify interface, use pre-built identifiers and + remove transforms that are no longer needed. + (build_destroy_fn): Use revised field names. + (register_local_var_uses): Use pre-built identifiers. + (coro_rewrite_function_body): Simplify interface, use pre-built + identifiers. Generate proxy vars in the outer bind expr scope for the + implementation state that we wish to expose. + (morph_fn_to_coro): Adjust comments for new variable names, use pre- + built identifiers. Remove unused code to generate frame entries for + the implementation state. Adjust call for build_actor_fn. + +2021-09-14 Patrick Palka + + PR c++/102163 + * constexpr.c (cxx_eval_call_expression): After evaluating a + subobject constructor call for an empty union member, produce a + side effect that makes sure the member gets activated. + +2021-09-14 Jakub Jelinek + + PR c++/102295 + * decl.c (layout_var_decl): For aggregates ending with a flexible + array member, add the size of the initializer for that member to + DECL_SIZE and DECL_SIZE_UNIT. + +2021-09-14 Jakub Jelinek + + PR c++/102305 + * method.c (is_xible_helper): Call complete_type on to. + +2021-09-14 Jason Merrill + + * decl.c (cxx_init_decl_processing): Don't warn if L1 cache line + size is smaller than maxalign. + +2021-09-13 Jason Merrill + + * constexpr.c (maybe_warn_about_constant_value): + Complain about std::hardware_destructive_interference_size. + (cxx_eval_constant_expression): Call it. + * decl.c (cxx_init_decl_processing): Check + --param *-interference-size values. + +2021-09-13 Patrick Palka + + PR c++/101764 + * cp-tree.h (PACK_EXPANSION_FORCE_EXTRA_ARGS_P): New accessor + macro. + * pt.c (has_extra_args_mechanism_p): New function. + (find_parameter_pack_data::found_extra_args_tree_p): New data + member. + (find_parameter_packs_r): Set ppd->found_extra_args_tree_p + appropriately. + (make_pack_expansion): Set PACK_EXPANSION_FORCE_EXTRA_ARGS_P if + ppd.found_extra_args_tree_p. + (use_pack_expansion_extra_args_p): Return true if there were + unsubstituted packs and PACK_EXPANSION_FORCE_EXTRA_ARGS_P. + (tsubst_pack_expansion): Pass the pack expansion to + use_pack_expansion_extra_args_p. + +2021-09-10 Jakub Jelinek + + * parser.c (cp_parser_omp_atomic): Allow acq_rel on atomic read/write + and acq_rel/acquire clauses on update. + * semantics.c (finish_omp_atomic): Adjust c_finish_omp_atomic caller. + +2021-09-08 Richard Biener + + PR c++/102228 + * cp-tree.h (ANON_AGGR_TYPE_FIELD): New define. + * decl.c (fixup_anonymous_aggr): Wipe RTTI info put in + place on invalid code. + * decl2.c (reset_type_linkage): Guard CLASSTYPE_TYPEINFO_VAR + access. + * module.cc (trees_in::read_class_def): Likewise. Reconstruct + ANON_AGGR_TYPE_FIELD. + * semantics.c (finish_member_declaration): Populate + ANON_AGGR_TYPE_FIELD for anon aggregate typed members. + * typeck.c (lookup_anon_field): Remove DFS search and return + ANON_AGGR_TYPE_FIELD directly. + +2021-09-07 Jakub Jelinek + + PR c++/100495 + * constexpr.c (maybe_save_constexpr_fundef): Save body even for + constexpr deleting dtors. + (cxx_eval_call_expression): Don't use DECL_CLONED_FUNCTION for + deleting dtors. + +2021-09-07 Marcel Vollweiler + + * parser.c (cp_parser_omp_flush): Parse 'seq_cst' clause on 'flush' + directive. + * semantics.c (finish_omp_flush): Handle MEMMODEL_SEQ_CST. + +2021-09-03 Iain Sandoe + + * coroutines.cc (register_local_var_uses): Do not mangle + frame entries for the outermost scope. Record the outer + scope as nesting depth 0. + +2021-09-03 Iain Sandoe + + * coroutines.cc (coro_build_artificial_var): New. + (build_actor_fn): Use var builder, rename vars to use + implementation namespace. + (coro_rewrite_function_body): Likewise. + (morph_fn_to_coro): Likewise. + +2021-09-03 Iain Sandoe + + * coroutines.cc (transform_local_var_uses): Record + frame offset expressions as DECL_VALUE_EXPRs instead of + rewriting them. + +2021-09-03 Patrick Palka + + PR c++/101904 + * call.c (build_this_conversion): New function, split out from + add_function_candidate. + (add_function_candidate): New parameter shortcut_bad_convs. + Document it. Use build_this_conversion. Stop at the first bad + argument conversion when shortcut_bad_convs is true. + (add_template_candidate_real): New parameter shortcut_bad_convs. + Use build_this_conversion to check the 'this' conversion before + attempting deduction. When the rejection reason code is + rr_bad_arg_conversion, pass -1 instead of 0 as the viable + parameter to add_candidate. Pass 'convs' to add_candidate. + (add_template_candidate): New parameter shortcut_bad_convs. + (add_template_conv_candidate): Pass false as shortcut_bad_convs + to add_template_candidate_real. + (add_candidates): Prefer to shortcut bad conversions during + overload resolution under the assumption that we'll eventually + see a strictly viable candidate. If this assumption turns out + to be false, re-process the non-strictly viable candidates + without shortcutting those bad conversions. + +2021-09-03 Jason Merrill + + * pt.c (limit_bad_template_recursion): Suppress -Wunused for decls + we decide not to instantiate. + +2021-09-03 Jakub Jelinek + + PR target/102024 + * class.c (build_base_field): Use SET_DECL_FIELD_ABI_IGNORED + instead of writing to DECL_FIELD_ABI_IGNORED. + (layout_class_type): Likewise. In the place where zero-width + bitfields used to be removed, use + SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD on those fields instead. + +2021-09-01 Iain Sandoe + + * call.c (build_over_call): Handle unavailable state in addition to + deprecation. + * class.c (type_build_ctor_call): Likewise. + (type_build_dtor_call): Likewise. + * cp-tree.h: Rename cp_warn_deprecated_use to + cp_handle_deprecated_or_unavailable. + * decl.c (duplicate_decls): Merge unavailability. + (grokdeclarator): Handle unavailability in addition to deprecation. + (type_is_unavailable): New. + (grokparms): Handle unavailability in addition to deprecation. + * decl.h (enum deprecated_states): Add + UNAVAILABLE_DEPRECATED_SUPPRESS. + * decl2.c (cplus_decl_attributes): Propagate unavailability to + templates. + (cp_warn_deprecated_use): Rename to ... + (cp_handle_deprecated_or_unavailable): ... this and amend to handle + the unavailable case. It remains a warning in the case of deprecation + but becomes an error in the case of unavailability. + (cp_warn_deprecated_use_scopes): Handle unavailability. + (mark_used): Likewise. + * parser.c (cp_parser_template_name): Likewise. + (cp_parser_template_argument): Likewise. + (cp_parser_parameter_declaration_list): Likewise. + * typeck.c (build_class_member_access_expr): Likewise. + (finish_class_member_access_expr): Likewise. + * typeck2.c (build_functional_cast_1): Likewise. + +2021-09-01 Iain Sandoe + + * coroutines.cc (build_actor_fn): Add begin/finish clauses + to the initial test in the actor function. + +2021-09-01 Iain Sandoe + + * coroutines.cc (await_statement_walker): Use build_stmt and + add_stmt instead of build1 and finish_expr_stmt. + +2021-08-31 Jason Merrill + + * coroutines.cc (flatten_await_stmt): Fix copyo. + * decl.c (reshape_init_class): Simplify. + * module.cc (module_state::read_language): Add null check. + * parser.c (build_range_temp): Avoid type_uses_auto. + (cp_parser_class_specifier_1): Add null check. + +2021-08-31 Patrick Palka + + PR c++/12672 + * call.c (rejection_reason::call_varargs_p): Rename this + previously unused member to ... + (rejection_reason::least_p): ... this. + (arity_rejection): Add least_p parameter. + (add_template_candidate_real): When there are explicit + template arguments, check that the arity of the call agrees with + the arity of the function before attempting deduction. + (print_arity_information): Add least_p parameter. + (print_z_candidate): Adjust call to print_arity_information. + +2021-08-31 Martin Sebor + + * parser.c (cp_parser_selection_statement): Use direct initialization + instead of copy. + +2021-08-31 Jason Merrill + + * constexpr.c (explain_invalid_constexpr_fn): Use iloc_sentinel. + +2021-08-31 Jason Merrill + + PR c++/92193 + * cp-tree.h (FNDECL_MANIFESTLY_CONST_EVALUATED): New. + * constexpr.c (cxx_eval_call_expression): Set it. + * pt.c (neglectable_inst_p): Check it. + +2021-08-31 Marcel Vollweiler + + * parser.c (cp_parser_omp_clause_device): Parse device-modifiers 'device_num' + and 'ancestor' in 'target device' clauses. + * semantics.c (finish_omp_clauses): Error handling. Constant device ids must + evaluate to '1' if 'ancestor' is used. + +2021-08-30 Jason Merrill + + PR c++/96286 + * cp-tree.h (struct lang_type): Add erroneous bit-field. + (CLASSTYPE_ERRONEOUS): New. + * pt.c (limit_bad_template_recursion): Check it. + (instantiate_class_template_1): Set it. + +2021-08-30 Jason Merrill + + * constexpr.c (cxx_eval_outermost_constant_expr): Copy + expr location to result. + +2021-08-30 Jason Merrill + + PR c++/101460 + * cp-tree.h (cxx_constant_value_sfinae): Declare. + * constexpr.c (cxx_constant_value_sfinae): New. + * pt.c (fold_targs_r, maybe_fold_fn_template_args): New. + (tsubst_copy_and_build) [CALL_EXPR]: Call + maybe_fold_fn_template_args. + +2021-08-30 Jason Merrill + + * parser.c (cp_parser_simple_requirement): Warn about missing + requires. + +2021-08-27 Jason Merrill + + * typeck2.c (build_x_arrow): Do set TREE_TYPE when operand is + a dependent pointer. + +2021-08-25 Andrew Pinski + + PR c++/66590 + * cp-objcp-common.c (cxx_block_may_fallthru): Handle + CLEANUP_STMT for the case which will be try/finally. + +2021-08-25 Jakub Jelinek + + PR c++/102019 + * init.c (build_value_init_noctor): Ignore unnamed zero-width + bitfields. + +2021-08-23 Jakub Jelinek + + * parser.c (cp_parser_omp_clause_num_tasks, + cp_parser_omp_clause_grainsize): Parse the optional strict: modifier. + +2021-08-20 Jakub Jelinek + + * parser.c (cp_parser_handle_statement_omp_attributes): Determine if + PRAGMA_OMP_ERROR directive is C_OMP_DIR_STANDALONE. + (cp_parser_omp_error): New function. + (cp_parser_pragma): Handle PRAGMA_OMP_ERROR. + +2021-08-20 Jakub Jelinek + + * parser.c (cp_parser_omp_clause_depend_sink): Reject spurious + comma at the end of list. Don't parse closing paren here... + (cp_parser_omp_clause_depend): ... but here instead. + +2021-08-19 Patrick Palka + + PR c++/101803 + * cp-tree.h (CONSTRUCTOR_IS_PAREN_INIT): Clarify comment. + +2021-08-19 Jakub Jelinek + + * parser.c (cp_parser_omp_requires): Don't call cp_lexer_nth_token_is + and optionally consume token if current token is CPP_EOF, + CPP_PRAGMA_EOL or CPP_CLOSE_PAREN. + +2021-08-19 Jakub Jelinek + + * parser.c (cp_parser_omp_nothing): Use cp_parser_require_pragma_eol + instead of cp_parser_skip_to_pragma_eol. + +2021-08-18 Patrick Palka + + PR c++/101344 + PR c++/101803 + * cp-tree.h (CONSTRUCTOR_BRACES_ELIDED_P): Define. + * decl.c (reshape_init_r): Set it. + * pt.c (collect_ctor_idx_types): Recurse into a sub-CONSTRUCTOR + iff CONSTRUCTOR_BRACES_ELIDED_P. + +2021-08-18 Patrick Palka + + PR c++/101883 + * pt.c (convert_template_argument): Pass LOOKUP_IMPLICIT to + do_auto_deduction. + +2021-08-18 Jakub Jelinek + + * parser.c (cp_parser_omp_nothing): New function. + (cp_parser_pragma): Handle PRAGMA_OMP_NOTHING. + +2021-08-18 Jakub Jelinek + + * parser.c (cp_parser_omp_ordered): Return true instead of + false after emitting errors that the directive is not allowed in + pragma_stmt context. + (cp_parser_omp_target_update): Likewise. + (cp_parser_omp_cancellation_point): Change return type from void to + bool, return false if the directive should be ignored in pragma_stmt + contexts. + (cp_parser_omp_target_enter_data, cp_parser_omp_target_exit_data): + Change return type from tree to bool, return false if the + directive should be ignored in pragma_stmt contexts. + (cp_parser_omp_target): Adjust callers of cp_parser_omp_target_*_data, + return their result directly. + (cp_parser_pragma): For PRAGMA_OMP_CANCELLATION_POINT return what + cp_parser_omp_cancellation_point returned. Return true instead of + false after emitting errors that the directive is not allowed in + pragma_stmt context. + +2021-08-17 Jakub Jelinek + + PR c++/101539 + * cp-tree.h (enum cp_trait_kind): Add CPTK_IS_LAYOUT_COMPATIBLE. + (enum cp_built_in_function): Add CP_BUILT_IN_IS_CORRESPONDING_MEMBER. + (fold_builtin_is_corresponding_member, next_common_initial_seqence, + layout_compatible_type_p): Declare. + * parser.c (cp_parser_primary_expression): Handle + RID_IS_LAYOUT_COMPATIBLE. + (cp_parser_trait_expr): Likewise. + * cp-objcp-common.c (names_builtin_p): Likewise. + * constraint.cc (diagnose_trait_expr): Handle + CPTK_IS_LAYOUT_COMPATIBLE. + * decl.c (cxx_init_decl_processing): Register + __builtin_is_corresponding_member builtin. + * constexpr.c (cxx_eval_builtin_function_call): Handle + CP_BUILT_IN_IS_CORRESPONDING_MEMBER builtin. + * semantics.c (is_corresponding_member_union, + is_corresponding_member_aggr, fold_builtin_is_corresponding_member): + New functions. + (trait_expr_value): Handle CPTK_IS_LAYOUT_COMPATIBLE. + (finish_trait_expr): Likewise. + * typeck.c (next_common_initial_seqence, layout_compatible_type_p): + New functions. + * cp-gimplify.c (cp_gimplify_expr): Fold + CP_BUILT_IN_IS_CORRESPONDING_MEMBER. + (cp_fold): Likewise. + * tree.c (builtin_valid_in_constant_expr_p): Handle + CP_BUILT_IN_IS_CORRESPONDING_MEMBER. + * cxx-pretty-print.c (pp_cxx_trait_expression): Handle + CPTK_IS_LAYOUT_COMPATIBLE. + * class.c (remove_zero_width_bit_fields): Remove. + (layout_class_type): Don't call it. + +2021-08-17 Jakub Jelinek + + * parser.c (OMP_SCOPE_CLAUSE_MASK): Define. + (cp_parser_omp_scope): New function. + (cp_parser_omp_construct, cp_parser_pragma): Handle PRAGMA_OMP_SCOPE. + * pt.c (tsubst_expr): Handle OMP_SCOPE. + +2021-08-12 Jakub Jelinek + + * parser.c (cp_parser_omp_clause_name): Parse filter clause name. + (cp_parser_omp_clause_filter): New function. + (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FILTER. + (OMP_MASKED_CLAUSE_MASK): Define. + (cp_parser_omp_masked): New function. + (cp_parser_omp_parallel): Handle parallel masked. + (cp_parser_omp_construct, cp_parser_pragma): Handle PRAGMA_OMP_MASKED. + * semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_FILTER. + * pt.c (tsubst_omp_clauses): Likewise. + (tsubst_expr): Handle OMP_MASKED. + +2021-08-12 Sergei Trofimovich + + PR c++/101219 + * pt.c (tsubst_copy_and_build): Use build_ptrmemfunc_access_expr + to construct ptrmemfunc expression instantiation. + +2021-08-12 Tobias Burnus + + * parser.c (cp_parser_omp_clause_proc_bind): Accept + 'primary' as alias for 'master'. + +2021-08-12 Jakub Jelinek + + * cp-tree.h (omp_declare_target_attr): New type. + (struct saved_scope): Change type of omp_declare_target_attribute + from int to vec * and move it. + * parser.c (cp_parser_omp_declare_target): Instead of + incrementing scope_chain->omp_declare_target_attribute, push + a struct containing parser->lexer->in_omp_attribute_pragma to + the vector. + (cp_parser_omp_end_declare_target): Instead of decrementing + scope_chain->omp_declare_target_attribute, pop a structure + from it. Diagnose mismatching declare target vs. + end declare target syntax. + * semantics.c (finish_translation_unit): Use vec_safe_length + and vec_safe_truncate on scope_chain->omp_declare_target_attributes. + * decl2.c (cplus_decl_attributes): Use vec_safe_length + on scope_chain->omp_declare_target_attributes. + +2021-08-12 Jakub Jelinek + + * parser.c (cp_parser_lambda_body): Add temp overrides + for parser->{omp_declare_simd,oacc_routine,omp_attrs_forbidden_p}. + (cp_parser_statement): Restore parser->omp_attrs_forbidden_p for + cp_parser_declaration_statement. + (cp_parser_default_argument): Add temp override for + parser->omp_attrs_forbidden_p. + (cp_parser_late_parsing_omp_declare_simd): Diagnose declare simd + or declare variant in attribute syntax on a declaration immediately + following an OpenMP construct in pragma syntax. + +2021-08-12 Jakub Jelinek + + PR c++/94162 + * method.c (cat_tag_for): Return cc_last for !CLASS_TYPE_P + or for classes not in std namespace. + +2021-08-12 Jakub Jelinek + + * name-lookup.c (finish_using_directive): Diagnose omp::directive + or omp::sequence attributes on using-directive. + +2021-08-12 Jakub Jelinek + + * parser.c (cp_parser_block_declaration): Call + cp_parser_using_directive for C++11 attributes followed by + using namespace tokens. + (cp_parser_using_directive): Parse C++11 attributes at the start + of the directive rather than at the end, only parse GNU attributes + at the end. + +2021-08-12 Patrick Palka + + PR c++/101663 + * constexpr.c (cxx_eval_store_expression): Handle the lval=true + case in the early exit code path for empty stores with mismatched + types. + +2021-08-11 Patrick Palka + + PR c++/101725 + DR 2082 + * cp-tree.h (unevaluated_p): Return true for REQUIRES_EXPR. + * decl.c (local_variable_p_walkfn): Don't walk into unevaluated + operands. + * parser.c (cp_parser_primary_expression) : Never + reject uses of local variables in unevaluated contexts. + * tree.c (cp_walk_subtrees) : Increment + cp_unevaluated_operand. Use cp_walk_tree directly instead of + WALK_SUBTREE to avoid the goto. Use REQUIRES_EXPR_REQS instead + of TREE_OPERAND directly. + +2021-08-11 Jakub Jelinek + + PR c++/101786 + * decl2.c (var_defined_without_dynamic_init): Return true for + DECL_DECLARED_CONSTINIT_P with complete type and trivial destructor. + +2021-08-11 Patrick Palka + + PR c++/79501 + * parser.c (maybe_adjust_declarator_for_dguide): New, split + out from ... + (cp_parser_init_declarator): ... here. + (cp_parser_member_declaration): Use it. + +2021-08-11 Patrick Palka + + PR c++/89062 + * parser.c (cp_parser_parameter_declaration_list): Don't call + grokdeclarator if cp_parser_error_occurred. + (cp_parser_parameter_declaration): Simulate an error if we see + the beginning of a CTAD form, i.e. if we see an opening brace + after the decl-specifier-seq and the type is a CTAD placeholder. + +2021-08-10 Jakub Jelinek + + * parser.c (cp_parser_member_declaration): Move odsd declaration + before cp_parser_using_declaration call to avoid errors with + GCC 4.8 to 6. + +2021-08-10 Jakub Jelinek + + * parser.h (struct cp_omp_declare_simd_data): Remove + in_omp_attribute_pragma and clauses members, add loc and attribs. + (struct cp_oacc_routine_data): Remove loc member, add clauses + member. + * parser.c (cp_finalize_omp_declare_simd): New function. + (cp_parser_handle_statement_omp_attributes): Mention in + function comment the function is used also for + attribute-declaration. + (cp_parser_handle_directive_omp_attributes): New function. + (cp_parser_statement): Don't call + cp_parser_handle_statement_omp_attributes if statement doesn't + have attribute-specifier-seq at the beginning at all or if + if those attributes don't appertain to the statement. + (cp_parser_simple_declaration): Call + cp_parser_handle_directive_omp_attributes and + cp_finalize_omp_declare_simd. + (cp_parser_explicit_instantiation): Likewise. + (cp_parser_init_declarator): Initialize prefix_attributes + only after parsing declarators. + (cp_parser_direct_declarator): Call + cp_parser_handle_directive_omp_attributes and + cp_finalize_omp_declare_simd. + (cp_parser_member_declaration): Likewise. + (cp_parser_single_declaration): Likewise. + (cp_parser_omp_declare_simd): Don't initialize + data.in_omp_attribute_pragma, instead initialize + data.attribs[0] and data.attribs[1]. + (cp_finish_omp_declare_variant): Remove + in_omp_attribute_pragma argument, instead use + parser->lexer->in_omp_attribute_pragma. + (cp_parser_late_parsing_omp_declare_simd): Adjust + cp_finish_omp_declare_variant caller. Handle attribute-syntax + declare simd/variant. + +2021-08-06 Tamar Christina + + * cp-objcp-common.h (cxx_simulate_enum_decl): Pass vec<> by pointer. + * decl.c (cxx_simulate_enum_decl): Likewise. + +2021-08-04 Jakub Jelinek + + PR c++/101759 + * parser.c (cp_parser_default_argument): Temporarily override + parser->omp_declare_simd and parser->oacc_routine to NULL. + +2021-08-02 Patrick Palka + + PR c++/100828 + * logic.cc (formula::formula): Use emplace_back instead of + push_back. + (formula::branch): Insert a copy of m_current directly after + m_current instead of at the end of the list. + (formula::erase): Define. + (decompose_formula): Remove. + (decompose_antecedents): Remove. + (decompose_consequents): Remove. + (derive_proofs): Remove. + (max_problem_size): Remove. + (diagnose_constraint_size): Remove. + (subsumes_constraints_nonnull): Rewrite directly in terms of + decompose_clause and derive_proof, interleaving decomposition + with implication checking. Remove limit on constraint complexity. + Use formula::erase to free the current clause before moving on to + the next one. + +2021-07-31 Jason Merrill + + PR c++/96636 + * decl.c (fixup_anonymous_aggr): Clear TYPE_NEEDS_CONSTRUCTING + after error. + +2021-07-31 Jason Merrill + + * ptree.c (cxx_print_type) [TYPE_PACK_EXPANSION]: Also print + PACK_EXPANSION_PATTERN. + +2021-07-31 Jakub Jelinek + + * parser.c (cp_parser_declaration): Handle OpenMP directives + in attribute-declaration. + +2021-07-30 Jakub Jelinek + + PR c++/101539 + * cp-tree.h (enum cp_trait_kind): Add + CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF. + (enum cp_built_in_function): Add + CP_BUILT_IN_IS_POINTER_INTERCONVERTIBLE_WITH_CLASS. + (fold_builtin_is_pointer_inverconvertible_with_class): Declare. + * parser.c (cp_parser_primary_expression): Handle + RID_IS_POINTER_INTERCONVERTIBLE_BASE_OF. + (cp_parser_trait_expr): Likewise. + * cp-objcp-common.c (names_builtin_p): Likewise. + * constraint.cc (diagnose_trait_expr): Handle + CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF. + * decl.c (cxx_init_decl_processing): Register + __builtin_is_pointer_interconvertible_with_class builtin. + * constexpr.c (cxx_eval_builtin_function_call): Handle + CP_BUILT_IN_IS_POINTER_INTERCONVERTIBLE_WITH_CLASS builtin. + * semantics.c (pointer_interconvertible_base_of_p, + first_nonstatic_data_member_p, + fold_builtin_is_pointer_inverconvertible_with_class): New functions. + (trait_expr_value): Handle CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF. + (finish_trait_expr): Likewise. Formatting fix. + * cp-gimplify.c (cp_gimplify_expr): Fold + CP_BUILT_IN_IS_POINTER_INTERCONVERTIBLE_WITH_CLASS. Call + fndecl_built_in_p just once. + (cp_fold): Likewise. + * tree.c (builtin_valid_in_constant_expr_p): Handle + CP_BUILT_IN_IS_POINTER_INTERCONVERTIBLE_WITH_CLASS. Call + fndecl_built_in_p just once. + * cxx-pretty-print.c (pp_cxx_trait_expression): Handle + CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF. + +2021-07-30 Jason Merrill + + * class.c (finish_struct_anon): Improve comment. + * decl.c (fixup_anonymous_aggr): Reject anonymous struct + with bases. + +2021-07-30 Jakub Jelinek + + * parser.c (cp_parser_statement): Rollback attributes not just + when std_attrs is non-NULL, but whenever + cp_parser_std_attribute_spec_seq parsed any tokens. + +2021-07-30 Jakub Jelinek + + PR c++/101582 + * parser.c (cp_parser_skip_std_attribute_spec_seq): Add a forward + declaration. + (cp_parser_declaration): Parse empty-declaration and + attribute-declaration. + (cp_parser_toplevel_declaration): Don't parse empty-declaration here. + +2021-07-28 Martin Sebor + + * init.c: Include new header. + +2021-07-27 Marek Polacek + + DR 1512 + PR c++/99701 + * cp-gimplify.c (cp_fold): Remove {LE,LT,GE,GT_EXPR} from + a switch. + * typeck.c (cp_build_binary_op): Reject ordered comparison + of two null pointers. + +2021-07-26 Jakub Jelinek + + * parser.h (struct cp_lexer): Add orphan_p member. + * parser.c (cp_parser_statement): Don't change in_omp_attribute_pragma + upon restart from CPP_PRAGMA handling. Fix up condition when a lexer + should be destroyed and adjust saved_tokens if it records tokens from + the to be destroyed lexer. + (cp_parser_omp_section_scan): New function. + (cp_parser_omp_scan_loop_body): Use it. If + parser->lexer->in_omp_attribute_pragma, allow optional comma + after scan. + (cp_parser_omp_sections_scope): Use cp_parser_omp_section_scan. + +2021-07-23 Jakub Jelinek + + * parser.h (struct cp_parser): Add omp_attrs_forbidden_p member. + * parser.c (cp_parser_handle_statement_omp_attributes): Diagnose + mixing of attribute and pragma syntax directives when seeing + omp::directive if parser->omp_attrs_forbidden_p or if attribute syntax + directives are followed by OpenMP pragma. + (cp_parser_statement): Clear parser->omp_attrs_forbidden_p after + the cp_parser_handle_statement_omp_attributes call. + (cp_parser_omp_structured_block): Add disallow_omp_attrs argument, + if true, set parser->omp_attrs_forbidden_p. + (cp_parser_omp_scan_loop_body, cp_parser_omp_sections_scope): Pass + false as disallow_omp_attrs to cp_parser_omp_structured_block. + (cp_parser_omp_parallel, cp_parser_omp_task): Set + parser->omp_attrs_forbidden_p. + +2021-07-21 Thomas Schwinge + Joseph Myers + Cesar Philippidis + + * parser.c (cp_parser_omp_clause_name): Handle 'nohost'. + (cp_parser_oacc_all_clauses): Handle 'PRAGMA_OACC_CLAUSE_NOHOST'. + (OACC_ROUTINE_CLAUSE_MASK): Add 'PRAGMA_OACC_CLAUSE_NOHOST'. + * pt.c (tsubst_omp_clauses): Handle 'OMP_CLAUSE_NOHOST'. + * semantics.c (finish_omp_clauses): Likewise. + +2021-07-21 Jakub Jelinek + + PR c++/101516 + * semantics.c (finish_omp_reduction_clause): Also call + complete_type_or_else and return true if it fails. + +2021-07-19 Iain Sandoe + + PR c++/95520 + * coroutines.cc (struct coroutine_info): Add fields for + actor and destroy function decls. + (to_ramp): New. + (coro_get_ramp_function): New. + (coro_get_actor_function): New. + (coro_get_destroy_function): New. + (act_des_fn): Set up mapping between ramp, actor and + destroy functions. + (morph_fn_to_coro): Adjust interface to the builder for + helper function decls. + * cp-tree.h (DECL_ACTOR_FN, DECL_DESTROY_FN, DECL_RAMP_FN, + JOIN_STR): New. + * mangle.c (write_encoding): Handle coroutine helpers. + (write_unqualified_name): Handle lambda coroutine helpers. + +2021-07-16 Patrick Palka + + PR c++/101233 + * pt.c (alias_ctad_tweaks): Clear cp_unevaluated_operand for + substituting DECL_ARGUMENTS. + +2021-07-16 Patrick Palka + + DR 960 + PR c++/99664 + * search.c (check_final_overrider): Compare TYPE_REF_IS_RVALUE + when the return types are references. + +2021-07-16 Marek Polacek + + * typeck2.c (check_narrowing): Don't suppress the pedantic error + in system headers. + +2021-07-15 Jakub Jelinek + + PR c++/101443 + * cp-gimplify.c (cp_fold): For comparisons with NULLPTR_TYPE + operands, fold them right away to true or false. + +2021-07-15 Jason Merrill + + PR c++/101095 + * cp-objcp-common.c (cp_common_init_ts): Mark types as types. + (cp_tree_size): Remove redundant entries. + +2021-07-14 Patrick Palka + + PR c++/88252 + * cp-tree.h (TEMPLATE_TYPE_PARM_FOR_CLASS): Remove. + * pt.c (push_template_decl): Remove TEMPLATE_TYPE_PARM_FOR_CLASS + handling. + (redeclare_class_template): Likewise. + (forwarding_reference_p): Define. + (maybe_adjust_types_for_deduction): Use it instead. Add 'tparms' + parameter. + (unify_one_argument): Pass tparms to + maybe_adjust_types_for_deduction. + (try_one_overload): Likewise. + (unify): Likewise. + (rewrite_template_parm): Remove TEMPLATE_TYPE_PARM_FOR_CLASS + handling. + +2021-07-14 Jason Merrill + + * class.c (struct find_final_overrider_data): Use auto_vec. + (find_final_overrider): Remove explicit release. + * coroutines.cc (process_conditional): Use auto_vec. + * cp-gimplify.c (struct cp_genericize_data): Use auto_vec. + (cp_genericize_tree): Remove explicit release. + * parser.c (cp_parser_objc_at_property_declaration): Use + auto_delete_vec. + * semantics.c (omp_reduction_lookup): Use auto_vec. + +2021-07-14 Marek Polacek + + PR c++/101371 + * constexpr.c (cxx_eval_array_reference): Create a new .object + and .ctor for the non-aggregate non-scalar case too when + value-initializing. + +2021-07-12 Patrick Palka + + PR c++/79501 + PR c++/100983 + * decl.c (grokfndecl): Don't require that deduction guides are + declared at namespace scope. Check that class-scope deduction + guides have the same access as the member class template. + (grokdeclarator): Pretend class-scope deduction guides are static. + * search.c (lookup_member): Don't use a BASELINK for (class-scope) + deduction guides. + +2021-07-10 Patrick Palka + + PR c++/82110 + * init.c (build_aggr_init): Return error_mark_node if + expand_aggr_init_1 returns false. + (expand_default_init): Change return type to bool. Return false + on error, true on success. + (expand_aggr_init_1): Likewise. + +2021-07-09 Jason Merrill + + PR c++/101098 + * decl.c (function_requirements_equivalent_p): Only compare + trailing requirements on a specialization. + +2021-07-09 Iain Sandoe + + * coroutines.cc (build_actor_fn): Move common code to + act_des_fn. + (build_destroy_fn): Likewise. + (act_des_fn): Build the void return here. Ensure that the + source location matches the original function. + +2021-07-09 Iain Sandoe + + * coroutines.cc + (coro_rewrite_function_body): Connect the replacement + function block to the block nest correctly. + +2021-07-09 Patrick Palka + + PR c++/101181 + * constraint.cc (tsubst_requires_expr): Pass complain/in_decl to + add_extra_args. + * cp-tree.h (add_extra_args): Add complain/in_decl parameters. + * pt.c (build_extra_args): Make a copy of args. + (add_extra_args): Add complain/in_decl parameters. Enable the + code for handling the case where the extra arguments are + dependent. + (tsubst_pack_expansion): Pass complain/in_decl to + add_extra_args. + (tsubst_template_args): Handle missing template arguments. + (tsubst_expr) : Pass complain/in_decl to + add_extra_args. + +2021-07-09 Patrick Palka + + PR c++/101247 + * pt.c (any_template_parm_r) : Just walk the + DECL_CONTEXT. + +2021-07-08 Martin Sebor + + PR bootstrap/101372 + * module.cc (identifier): Suppress warning. + (module_state::read_macro_maps): Remove warning suppression. + (module_state::install_macros): Ditto. + +2021-07-08 Marek Polacek + + PR c++/101087 + * cp-tree.h (unevaluated_p): New. + * except.c (check_noexcept_r): Use it. Don't walk into + unevaluated operands. + +2021-07-08 Martin Sebor + + PR bootstrap/101374 + * module.cc (module_state::read_macro_maps): Temporarily disable + -Warray-bounds. + (module_state::install_macros): Same. + +2021-07-06 Martin Sebor + + * error.c (cp_printer): Remove support for %G and %K. + +2021-07-02 Jakub Jelinek + + * parser.h (struct cp_lexer): Add in_omp_attribute_pragma member. + (struct cp_omp_declare_simd_data): Likewise. + * cp-tree.h (enum cp_tree_index): Add CPTI_OMP_IDENTIFIER. + (omp_identifier): Define. + * parser.c (cp_parser_skip_to_pragma_eol): Handle + in_omp_attribute_pragma CPP_PRAGMA_EOL followed by CPP_EOF. + (cp_parser_require_pragma_eol): Likewise. + (struct cp_omp_attribute_data): New type. + (cp_parser_handle_statement_omp_attributes): New function. + (cp_parser_statement): Handle OpenMP directives in statement's + attribute-specifier-seq. + (cp_parser_omp_directive_args, cp_parser_omp_sequence_args): New + functions. + (cp_parser_std_attribute): Handle omp::directive and omp::sequence + attributes. + (cp_parser_omp_all_clauses): If in_omp_attribute_pragma, allow + a comma also before the first clause. + (cp_parser_omp_allocate): Likewise. + (cp_parser_omp_atomic): Likewise. + (cp_parser_omp_depobj): Likewise. + (cp_parser_omp_flush): Likewise. + (cp_parser_omp_ordered): Likewise. + (cp_parser_omp_declare_simd): Save in_omp_attribute_pragma + into struct cp_omp_declare_simd_data. + (cp_finish_omp_declare_variant): Add in_omp_attribute_pragma + argument. If set, allow a comma also before match clause. + (cp_parser_late_parsing_omp_declare_simd): If in_omp_attribute_pragma, + allow a comma also before the first clause. Adjust + cp_finish_omp_declare_variant caller. + (cp_parser_omp_declare_target): If in_omp_attribute_pragma, allow + a comma also before the first clause. + (cp_parser_omp_declare_reduction_exprs): Likewise. + (cp_parser_omp_requires): Likewise. + * decl.c (initialize_predefined_identifiers): Initialize + omp_identifier. + * decl2.c (cplus_decl_attributes): Reject omp::directive and + omp::sequence attributes. + +2021-07-02 Jakub Jelinek + + PR c/101297 + * parser.c (cp_parser_omp_atomic): Consume comma only if it + appears before a CPP_NAME. + +2021-07-02 Patrick Palka + + PR c++/101247 + * pt.c (any_template_parm_r) : Rewrite to + use common_enclosing_class and to not depend on the TREE_TYPE + of outer levels pointing to the corresponding primary template. + +2021-07-01 Patrick Palka + + PR c++/101194 + * constexpr.c (cxx_eval_array_reference): When the element type + is an empty type and the corresponding element is omitted, just + return an empty CONSTRUCTOR instead of attempting value + initialization. + +2021-07-01 Patrick Palka + + PR c++/96204 + * pt.c (finish_template_variable): Pass the partially + instantiated template and its args to instantiate_template. + (instantiate_class_template_1): No need to call + push_nested_class and pop_nested_class around the call to + most_specialized_partial_spec. + (instantiate_template_1): Pass the partially instantiated + template to lookup_template_variable. + (most_specialized_partial_spec): Use push_access_scope_guard + to set the access scope appropriately. Use + deferring_access_check_sentinel to force access to get checked + immediately. + (instantiate_decl): Just pass the VAR_DECL to + most_specialized_partial_spec. + +2021-06-30 Patrick Palka + + * constraint.cc (get_normalized_constraints_from_decl): Use + push_access_scope_guard instead of push_nested_class_guard. + * cp-tree.h (struct push_nested_class_guard): Replace with ... + (struct push_access_scope_guard): ... this. + * pt.c (push_access_scope): When the argument corresponds to + a class type, push the class instead of its context. + (pop_access_scope): Adjust accordingly. + +2021-06-30 Marek Polacek + + PR c++/100975 + DR 2397 + * decl.c (create_array_type_for_decl): Allow array of auto. + +2021-06-29 Jason Merrill + + * pt.c (instantiate_decl): Only consider partial specializations of + actual variable templates. + +2021-06-26 Patrick Palka + + PR c++/96204 + * pt.c (instantiate_class_template_1): Enter the scope of the + type when calling most_specialized_partial_spec. + +2021-06-26 Jason Merrill + + PR c++/101040 + PR c++/97566 + * class.c (is_empty_field): Handle null argument. + * constexpr.c (cxx_eval_bare_aggregate): Discard initializer + for empty field. + +2021-06-26 Marek Polacek + + PR c++/100752 + * parser.c (cp_parser_declarator): Pass flags down to + cp_parser_declarator. Also pass static_p/member_p. + +2021-06-25 Martin Sebor + + * call.c (build_over_call): Replace direct uses of TREE_NO_WARNING + with warning_suppressed_p, suppress_warning, and copy_no_warning, or + nothing if not necessary. + (set_up_extended_ref_temp): Same. + * class.c (layout_class_type): Same. + * constraint.cc (constraint_satisfaction_value): Same. + * coroutines.cc (finish_co_await_expr): Same. + (finish_co_yield_expr): Same. + (finish_co_return_stmt): Same. + (build_actor_fn): Same. + (coro_rewrite_function_body): Same. + (morph_fn_to_coro): Same. + * cp-gimplify.c (genericize_eh_spec_block): Same. + (gimplify_expr_stmt): Same. + (cp_genericize_r): Same. + (cp_fold): Same. + * cp-ubsan.c (cp_ubsan_instrument_vptr): Same. + * cvt.c (cp_fold_convert): Same. + (convert_to_void): Same. + * decl.c (wrapup_namespace_globals): Same. + (grokdeclarator): Same. + (finish_function): Same. + (require_deduced_type): Same. + * decl2.c (no_linkage_error): Same. + (c_parse_final_cleanups): Same. + * except.c (expand_end_catch_block): Same. + * init.c (build_new_1): Same. + (build_new): Same. + (build_vec_delete_1): Same. + (build_vec_init): Same. + (build_delete): Same. + * method.c (defaultable_fn_check): Same. + * parser.c (cp_parser_fold_expression): Same. + (cp_parser_primary_expression): Same. + * pt.c (push_tinst_level_loc): Same. + (tsubst_copy): Same. + (tsubst_omp_udr): Same. + (tsubst_copy_and_build): Same. + * rtti.c (build_if_nonnull): Same. + * semantics.c (maybe_convert_cond): Same. + (finish_return_stmt): Same. + (finish_parenthesized_expr): Same. + (cp_check_omp_declare_reduction): Same. + * tree.c (build_cplus_array_type): Same. + * typeck.c (build_ptrmemfunc_access_expr): Same. + (cp_build_indirect_ref_1): Same. + (cp_build_function_call_vec): Same. + (warn_for_null_address): Same. + (cp_build_binary_op): Same. + (unary_complex_lvalue): Same. + (cp_build_modify_expr): Same. + (build_x_modify_expr): Same. + (convert_for_assignment): Same. + +2021-06-24 Patrick Palka + + PR c++/98832 + * pt.c (maybe_aggr_guide): Handle alias templates appropriately. + +2021-06-24 Patrick Palka + + PR c++/101182 + * constraint.cc (evaluate_requires_expr): Adjust function comment. + * cp-gimplify.c (cp_genericize_r) : Move to ... + (cp_fold) : ... here. + +2021-06-24 Jakub Jelinek + + * parser.c (cp_omp_split_clauses): Pass C_ORT_OMP_TARGET instead of + C_ORT_OMP for clauses on target construct. + (OMP_TARGET_CLAUSE_MASK): Add in_reduction clause. + (cp_parser_omp_target): For non-combined target add + map (always, tofrom:) clauses for OMP_CLAUSE_IN_REDUCTION. Pass + C_ORT_OMP_TARGET to finish_omp_clauses. + * semantics.c (handle_omp_array_sections_1): Adjust ort handling + for addition of C_ORT_OMP_TARGET and simplify, mapping clauses are + never present on C_ORT_*DECLARE_SIMD. + (handle_omp_array_sections): Likewise. + (finish_omp_clauses): Likewise. Handle OMP_CLAUSE_IN_REDUCTION + on C_ORT_OMP_TARGET, set OMP_CLAUSE_MAP_IN_REDUCTION on + corresponding map clauses. + * pt.c (tsubst_expr): Pass C_ORT_OMP_TARGET instead of C_ORT_OMP for + clauses on target construct. + +2021-06-23 Patrick Palka + + PR c++/101174 + * pt.c (push_access_scope): For artificial deduction guides, + set the access scope to that of the constructor. + (pop_access_scope): Likewise. + (build_deduction_guide): Don't set DECL_CONTEXT on the guide. + +2021-06-23 Patrick Palka + + PR c++/86439 + * call.c (print_error_for_call_failure): Constify 'args' parameter. + (perform_dguide_overload_resolution): Define. + * cp-tree.h: (perform_dguide_overload_resolution): Declare. + * pt.c (do_class_deduction): Use perform_dguide_overload_resolution + instead of build_new_function_call. Don't use tf_decltype or + set cp_unevaluated_operand. Remove unnecessary NULL_TREE tests. + +2021-06-21 Patrick Palka + + PR c++/67302 + * typeck.c (check_return_expr): Call maybe_undo_parenthesized_ref + sooner, before the NRVO handling. + +2021-06-21 Patrick Palka + + PR c++/80431 + * tree.c (bot_replace): Use convert_to_base to build the + conversion to the (morally) virtual base. + +2021-06-21 Jakub Jelinek + + PR inline-asm/100785 + * typeck.c (cxx_mark_addressable): Diagnose trying to make + bit-fields addressable. + +2021-06-17 Jason Merrill + + PR c++/101106 + * decl.c (duplicate_decls): Make 'deleted after first declaration' + pedwarn on by default. + +2021-06-17 Jason Merrill + + PR c++/101029 + * init.c (build_vec_init): Preserve the type of base. + +2021-06-16 Jason Merrill + + PR c++/101078 + PR c++/91706 + * pt.c (tsubst_baselink): Update binfos in non-dependent case. + +2021-06-15 Robin Dapp + + * decl.c (duplicate_decls): Likewise. + +2021-06-14 Tobias Burnus + + PR c/100913 + * parser.c (cp_parser_omp_clause_affinity): No need to set iterator + var in the error case. + +2021-06-13 Trevor Saunders + + * constexpr.c (cxx_eval_call_expression): Iterate over vec<> + with range based for. + (cxx_eval_store_expression): Likewise. + (cxx_eval_loop_expr): Likewise. + * decl.c (wrapup_namespace_globals): Likewise. + (cp_finish_decl): Likewise. + (cxx_simulate_enum_decl): Likewise. + * parser.c (cp_parser_postfix_expression): Likewise. + +2021-06-12 Jason Merrill + + PR c++/101029 + * init.c (build_vec_init): Shortcut [0] case. + +2021-06-12 Jason Merrill + + * pt.c (lookup_template_class_1): Shortcut current_class_type. + +2021-06-11 Patrick Palka + + DR 1227 + PR c++/96560 + * pt.c (tsubst_arg_types): Rearrange so that we substitute into + TYPE_ARG_TYPES in forward order while short circuiting + appropriately. Adjust formatting. + +2021-06-11 Jakub Jelinek + + PR c++/100974 + * cp-tree.h (struct saved_scope): Add consteval_if_p + member. Formatting fix for the discarded_stmt comment. + (in_consteval_if_p, IF_STMT_CONSTEVAL_P): Define. + * parser.c (cp_parser_lambda_expression): Temporarily disable + in_consteval_if_p when parsing lambda body. + (cp_parser_selection_statement): Parse consteval if. + * decl.c (struct named_label_entry): Add in_consteval_if member. + (level_for_consteval_if): New function. + (poplevel_named_label_1, check_previous_goto_1, check_goto): Handle + consteval if. + * constexpr.c (cxx_eval_builtin_function_call): Clarify in comment + why CP_BUILT_IN_IS_CONSTANT_EVALUATED needs to *non_constant_p + for !ctx->manifestly_const_eval. + (cxx_eval_conditional_expression): For IF_STMT_CONSTEVAL_P evaluate + condition as if it was __builtin_is_constant_evaluated call. + (potential_constant_expression_1): For IF_STMT_CONSTEVAL_P always + recurse on both branches. + * cp-gimplify.c (genericize_if_stmt): Genericize IF_STMT_CONSTEVAL_P + as the else branch. + * pt.c (tsubst_expr) : Copy IF_STMT_CONSTEVAL_P. + Temporarily set in_consteval_if_p when recursing on + IF_STMT_CONSTEVAL_P then branch. + (tsubst_lambda_expr): Temporarily disable + in_consteval_if_p when instantiating lambda body. + * call.c (immediate_invocation_p): Return false when + in_consteval_if_p. + +2021-06-11 Marek Polacek + + PR c++/100995 + * constexpr.c (maybe_constexpr_fn): New. + * cp-tree.h (maybe_constexpr_fn): Declare. + * semantics.c (find_std_constant_evaluated_r): New. + (maybe_warn_for_constant_evaluated): New. + (finish_if_stmt_cond): Call it. + +2021-06-10 Patrick Palka + + PR c++/67829 + * pt.c (unify) : When + the TEMPLATE_DECL of a BOUND_TEMPLATE_TEMPLATE_PARM argument is + a template template parameter, adjust to the + TEMPLATE_TEMPLATE_PARAMETER before falling through. + +2021-06-10 Patrick Palka + + PR c++/100946 + * constraint.cc (normalize_placeholder_type_constraints): When + normalizing a non-templated return-type-requirement, add a dummy + level to initial_parms. + +2021-06-08 Marek Polacek + + PR c++/100065 + * decl.c (grokdeclarator): Store a value-dependent + explicit-specifier even for deduction guides. + +2021-06-08 Jason Merrill + + * parser.c (cp_parser_string_literal): Adjust diagnostic. + +2021-06-08 Jason Merrill + + PR c++/100963 + * call.c (perfect_conversion_p): Check check_narrowing. + +2021-06-08 Jason Merrill + + PR c++/91706 + * name-lookup.c (get_class_binding): Keep a BASELINK. + (set_inherited_value_binding_p): Adjust. + * lambda.c (is_lambda_ignored_entity): Adjust. + * pt.c (lookup_template_function): Copy a BASELINK before + modifying it. + +2021-06-08 Jason Merrill + + PR c++/91706 + * semantics.c (baselink_for_fns): Fix BASELINK_BINFO. + +2021-06-08 Jason Merrill + + * module.cc (duplicate_hash::hash): Comment out. + (trees_in::tree_value): Adjust loop counter. + +2021-06-08 Jason Merrill + + PR c++/100102 + * init.c (build_offset_ref): Return the BASELINK for a static + member function. + +2021-06-07 Patrick Palka + + PR c++/100918 + * parser.c (cp_parser_lookup_name): Check access of the lookup + result before we potentially adjust an injected-class-name to + its TEMPLATE_DECL. + +2021-06-06 Jakub Jelinek + + PR c/100902 + * parser.c (cp_parser_omp_target): Call c_omp_adjust_map_clauses + even when target is combined with other constructs. + +2021-06-04 Patrick Palka + + PR c++/100893 + * pt.c (convert_template_argument): Strip top-level cv-quals + on the substituted type of a non-type template parameter. + +2021-06-04 Patrick Palka + + PR c++/100102 + * pt.c (tsubst_function_decl): Remove old code for reducing + args when it has excess levels. + +2021-06-04 Jakub Jelinek + + PR c++/100872 + * name-lookup.c (maybe_save_operator_binding): Add op_attr after all + ATTR_IS_DEPENDENT attributes in the DECL_ATTRIBUTES list rather than + to the start. + +2021-06-03 Patrick Palka + + PR c++/100592 + * decl.c (make_typename_type): After calling + lookup_template_class, adjust the result to its TYPE_NAME and + then consider the tf_keep_type_decl flag. + +2021-06-03 Patrick Palka + + PR c++/100862 + * pt.c (set_current_access_from_decl): Move to ... + * class.c (set_current_access_from_decl): ... here. + (handle_using_decl): Use it to propagate the access of the + using-enum decl to the copy of the imported enumerator. + * cp-tree.h (set_current_access_from_decl): Declare. + * decl.c (build_enumerator): Simplify using make_temp_override + and set_current_access_from_decl. + +2021-06-03 Jakub Jelinek + + PR c++/100859 + * semantics.c (handle_omp_array_sections_1): For + OMP_CLAUSE_{AFFINITY,DEPEND} handle FIELD_DECL base using + finish_non_static_data_member and allow this as base. + (finish_omp_clauses): Move OMP_CLAUSE_AFFINITY + after depend only cases. Let this be diagnosed by !lvalue_p + case for OMP_CLAUSE_{AFFINITY,DEPEND} and remove useless + assert. + * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_AFFINITY. + +2021-06-02 Jason Merrill + + PR c++/100838 + * call.c (convert_like_internal): Clear tf_no_cleanup when + recursing. + (build_user_type_conversion_1): Only add ck_rvalue if + LOOKUP_ONLYCONVERTING. + +2021-06-01 Patrick Palka + + PR c++/65816 + * init.c (expand_aggr_init_1): Check + type_has_non_user_provided_default_constructor instead of + type_has_user_provided_constructor. + +2021-06-01 Jason Merrill + + PR c++/91859 + * call.c (build_op_delete_call): Don't set CALL_FROM_NEW_OR_DELETE_P + for destroying delete. + * init.c (build_delete): Don't clobber before destroying delete. + +2021-06-01 Jason Merrill + + PR c++/94492 + * decl2.c (cp_warn_deprecated_use): Check warning_enabled_at. + +2021-05-31 Richard Biener + + PR c++/88601 + * cp-objcp-common.c (names_builtin_p): Handle + RID_BUILTIN_SHUFFLEVECTOR. + * cp-tree.h (build_x_shufflevector): Declare. + * parser.c (cp_parser_postfix_expression): Handle + RID_BUILTIN_SHUFFLEVECTOR. + * pt.c (tsubst_copy_and_build): Handle IFN_SHUFFLEVECTOR. + * typeck.c (build_x_shufflevector): Build either a lowered + VEC_PERM_EXPR or an unlowered shufflevector via a temporary + internal function IFN_SHUFFLEVECTOR. + +2021-05-28 Jason Merrill + + * constexpr.c (build_data_member_initialization): Use tsi_range. + (build_constexpr_constructor_member_initializers): Likewise. + (constexpr_fn_retval, cxx_eval_statement_list): Likewise. + (potential_constant_expression_1): Likewise. + * coroutines.cc (await_statement_expander): Likewise. + (await_statement_walker): Likewise. + * module.cc (trees_out::core_vals): Likewise. + * pt.c (tsubst_expr): Likewise. + * semantics.c (set_cleanup_locs): Likewise. + +2021-05-28 Jason Merrill + + PR c++/100797 + PR c++/95719 + * call.c (build_over_call): Adjust base_binfo in + resolves_to_fixed_type_p case. + +2021-05-28 Jakub Jelinek + + PR middle-end/99928 + * semantics.c (handle_omp_array_sections): Copy + OMP_CLAUSE_MAP_IMPLICIT. + (finish_omp_clauses): Move not just OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT + marked clauses last, but also OMP_CLAUSE_MAP_IMPLICIT. Add + map_firstprivate_head bitmap, set it for GOMP_MAP_FIRSTPRIVATE_POINTER + maps and silently remove OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT if it is + present too. For OMP_CLAUSE_MAP_IMPLICIT silently remove the clause + if present in map_head, map_field_head or map_firstprivate_head + bitmaps. + +2021-05-28 Tobias Burnus + + * parser.c (cp_parser_omp_clause_affinity): New. + (cp_parser_omp_clause_name, cp_parser_omp_var_list_no_open, + cp_parser_omp_all_clauses, OMP_TASK_CLAUSE_MASK): Handle affinity + clause. + * semantics.c (handle_omp_array_sections_1, handle_omp_array_sections, + finish_omp_clauses): Likewise. + +2021-05-27 Matthias Kretz + + PR c++/100716 + * error.c (dump_template_bindings): Include code to print + "[with" and ']', conditional on whether anything is printed at + all. This is tied to whether a semicolon is needed to separate + multiple template parameters. If the template argument repeats + the template parameter (T = T), then skip the parameter. + (dump_substitution): Moved code to print "[with" and ']' to + dump_template_bindings. + (dump_function_decl): Partial revert of PR50828, which masked + TFF_TEMPLATE_NAME for all of dump_function_decl. Now + TFF_TEMPLATE_NAME is masked for the scope of the function and + only carries through to dump_function_name. + (dump_function_name): Avoid calling dump_template_parms if + TFF_TEMPLATE_NAME is set. + +2021-05-27 Matthias Kretz + + PR c++/100763 + * error.c: Call dump_scope when printing a typedef. + +2021-05-27 Patrick Palka + + PR c++/99893 + * tree.c (cp_walk_subtrees) : New case. + +2021-05-27 Jason Merrill + + PR c++/86355 + * pt.c (use_pack_expansion_extra_args_p): Don't compare + args from the same argument pack. + +2021-05-27 Patrick Palka + + DR 1315 + PR c++/67593 + PR c++/96555 + * pt.c (process_partial_specialization): Don't error on a + non-simple non-type template argument that involves template + parameters. + (for_each_template_parm_r): Don't walk TRAIT_EXPR, PLUS_EXPR, + MULT_EXPR, or SCOPE_REF when include_nondeduced_p is false. + +2021-05-26 Patrick Palka + + PR c++/100502 + * typeck.c (finish_class_member_access_expr): Disable ahead + of time access checking during the member lookup. + +2021-05-26 Patrick Palka + + PR c++/100368 + * tree.c (build_target_expr_with_type): Don't call force_rvalue + on CALL_EXPR initializer. Simplify now that bot_manip is no + longer a caller. + (bot_manip): Use force_target_expr instead of + build_target_expr_with_type. + +2021-05-26 Patrick Palka + + PR c++/97420 + * cvt.c (noexcept_conv_p): Remove redundant checks and simplify. + (fnptr_conv_p): Don't call non_reference. Use INDIRECT_TYPE_P + instead of TYPE_PTR_P. + * pt.c (convert_nontype_argument_function): Look through + implicit INDIRECT_REFs before calling strip_fnptr_conv. + +2021-05-25 Jakub Jelinek + + PR c++/100666 + * call.c (convert_arg_to_ellipsis): For expressions with NULLPTR_TYPE + and side-effects, temporarily disable -Wunused-result warning when + building COMPOUND_EXPR. + +2021-05-21 Jakub Jelinek + + PR middle-end/99928 + * semantics.c (finish_omp_clauses): Move firstprivate clauses with + OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT to the end of the chain. Don't error + if a decl is mentioned both in map clause and in such firstprivate + clause unless OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET is also set. + +2021-05-20 Jason Merrill + + * call.c (reference_binding): Check for designator. + (implicit_conversion_1, build_special_member_call): Likewise. + * decl.c (reshape_init_r): Likewise. + * pt.c (do_class_deduction): Likewise. + * typeck2.c (digest_init_r): Likewise. + +2021-05-20 Jason Merrill + + PR c++/100489 + * decl.c (reshape_init_class): Handle designator for + member of anonymous aggregate here. + * typeck2.c (process_init_constructor_record): Not here. + +2021-05-20 Jonathan Wakely + + * call.c (maybe_warn_array_conv): Use new warning option. + * decl.c (mark_inline_variable, grokdeclarator): Likewise. + * error.c (maybe_warn_cpp0x): Likewise. + * parser.c (cp_parser_primary_expression) + (cp_parser_unqualified_id) + (cp_parser_pseudo_destructor_name) + (cp_parser_lambda_introducer) + (cp_parser_lambda_declarator_opt) + (cp_parser_selection_statement) + (cp_parser_init_statement) + (cp_parser_decomposition_declaration) + (cp_parser_function_specifier_opt) + (cp_parser_static_assert) + (cp_parser_namespace_definition) + (cp_parser_using_declaration) + (cp_parser_asm_definition) + (cp_parser_ctor_initializer_opt_and_function_body) + (cp_parser_initializer_list) + (cp_parser_type_parameter_key) + (cp_parser_member_declaration) + (cp_parser_try_block) + (cp_parser_std_attribute_spec): Likewise. + * pt.c (check_template_variable): Likewise. + +2021-05-20 Jason Merrill + + PR c++/100634 + * pt.c (invalid_nontype_parm_type_p): Return true for COMPLEX_TYPE. + +2021-05-20 Jason Merrill + + PR c++/100659 + * cp-tree.h (CONST_DECL_USING_P): Check for null TREE_TYPE. + +2021-05-19 Jason Merrill + + PR c++/100367 + PR c++/96299 + * method.c (genericize_spaceship): Use fold_build2 for scalar + operands. + +2021-05-19 Jason Merrill + + * pt.c (build_deduction_guide): Treat the implicit deduction guide + as a member of the class. + +2021-05-19 Marek Polacek + + PR c++/100596 + * cp-tree.h (any_non_type_attribute_p): Remove. + * decl.c (grokdeclarator): Turn an error into a warning and only + warn for standard attributes. + * decl2.c (any_non_type_attribute_p): Remove. + * parser.c (cp_parser_elaborated_type_specifier): Turn an error + into a warning and only warn for standard attributes. + (cp_parser_member_declaration): Likewise. + +2021-05-19 Martin Liska + + PR testsuite/100658 + * mangle.c (write_encoding): Fix typos. + +2021-05-19 Jakub Jelinek + + PR middle-end/99928 + * parser.c (cp_parser_omp_master): Set OMP_MASTER_COMBINED on + master when combined with taskloop. + (cp_parser_omp_parallel): Don't set OMP_PARALLEL_COMBINED on + parallel master when not combined with taskloop. + +2021-05-19 Jason Merrill + + PR c++/100261 + * rtti.c (get_tinfo_decl_direct): Check TYPE_TRANSPARENT_AGGR. + +2021-05-19 Jason Merrill + + PR c++/100372 + * tree.c (strip_typedefs): Only look at the pattern of a + TYPE_PACK_EXPANSION if it's a type. + +2021-05-18 Marek Polacek + + * class.c (classtype_has_non_deleted_copy_ctor): Remove. + * constraint.cc (contains_wildcard_p): Likewise. + (get_template_head_requirements): Likewise. + (check_constrained_friend): Likewise. + (subsumes_constraints): Likewise. + * cp-tree.h (classtype_has_non_deleted_copy_ctor): Likewise. + (push_void_library_fn): Likewise. + (get_pattern_parm): Likewise. + (get_template_parms_at_level): Likewise. + (lambda_return_type): Likewise. + (get_template_head_requirements): Likewise. + (check_constrained_friend): Likewise. + (subsumes_constraints): Likewise. + * decl.c (push_void_library_fn): Likewise. + * lambda.c (lambda_return_type): Likewise. + * pt.c (get_template_parms_at_level): Likewise. + (get_pattern_parm): Likewise. + +2021-05-18 Jason Merrill + + PR c++/100644 + * call.c (perfect_candidate_p): An implicitly deleted move + is not perfect. + +2021-05-18 Andreas Krebbel + + PR c++/100281 + * cvt.c (cp_convert_to_pointer): Use the size of the target + pointer type. + * tree.c (cp_build_reference_type): Call + cp_build_reference_type_for_mode with VOIDmode. + (cp_build_reference_type_for_mode): Rename from + cp_build_reference_type. Add MODE argument and invoke + build_reference_type_for_mode. + (strip_typedefs): Use build_pointer_type_for_mode and + cp_build_reference_type_for_mode for pointers and references. + +2021-05-17 Jonathan Wakely + + PR c++/100635 + * call.c (convert_like_internal): Print different diagnostic if + the lvalue reference is const. + +2021-05-14 Jason Merrill + + PR c++/95870 + * pt.c (enclosing_instantiation_of): Just compare + DECL_SOURCE_LOCATION. + (regenerate_decl_from_template): Copy DECL_SOURCE_LOCATION. + +2021-05-14 Marek Polacek + Jason Merrill + + PR c++/99032 + * cp-tree.h (any_non_type_attribute_p): Declare. + * decl.c (grokdeclarator): Diagnose when an attribute appertains to + a friend declaration that is not a definition. + * decl2.c (any_non_type_attribute_p): New. + * parser.c (cp_parser_decl_specifier_seq): Diagnose standard attributes + in the middle of decl-specifiers. + (cp_parser_elaborated_type_specifier): Diagnose when an attribute + appertains to a friend declaration that is not a definition. + (cp_parser_member_declaration): Likewise. + +2021-05-12 Marek Polacek + + * pt.c (tsubst_copy_and_build): Add warn_int_in_bool_context + sentinel. + +2021-05-12 Marcel Vollweiler + + * parser.c (cp_parser_omp_clause_map): Support map-type-modifier + 'close'. + +2021-05-11 Jason Merrill + + PR c++/100517 + * typeck.c (build_reinterpret_cast_1): Check intype on + cast to vector. + +2021-05-11 Patrick Palka + + PR c++/51577 + * name-lookup.c (maybe_save_operator_binding): Unconditionally + enable for all function templates, not just generic lambdas. + Handle compound-assignment operator expressions. + * typeck.c (build_x_compound_expr): Call maybe_save_operator_binding + in the type-dependent case. + (build_x_modify_expr): Likewise. Move declaration of 'op' closer + to its first use. + +2021-05-11 Patrick Palka + + PR c++/100138 + * constraint.cc (tsubst_constraint): Set up cp_unevaluated. + (satisfy_atom): Set up iloc_sentinel before calling + cxx_constant_value. + * pt.c (tsubst_pack_expansion): When returning a rebuilt pack + expansion, carry over PACK_EXPANSION_LOCAL_P and + PACK_EXPANSION_SIZEOF_P from the original pack expansion. + +2021-05-10 Richard Biener + + PR middle-end/100464 + PR c++/100468 + * call.c (set_up_extended_ref_temp): Mark the temporary + addressable if the TARGET_EXPR was. + +2021-05-10 Martin Liska + + * decl.c (duplicate_decls): Use startswith + function instead of strncmp. + (cxx_builtin_function): Likewise. + (omp_declare_variant_finalize_one): Likewise. + (grokfndecl): Likewise. + * error.c (dump_decl_name): Likewise. + * mangle.c (find_decomp_unqualified_name): Likewise. + (write_guarded_var_name): Likewise. + (decl_tls_wrapper_p): Likewise. + * parser.c (cp_parser_simple_type_specifier): Likewise. + (cp_parser_tx_qualifier_opt): Likewise. + * pt.c (template_parm_object_p): Likewise. + (dguide_name_p): Likewise. + +2021-05-10 Martin Liska + + PR c++/99616 + * decl.c (grokdeclarator): Remove redundant NULL check. + +2021-05-07 Jason Merrill + + * tree.c (rvalue): Assert expr is not a class lvalue. + +2021-05-07 Jason Merrill + + * cp-tree.h (build_stub_object): Declare. + * method.c (build_stub_object): No longer static. + * call.c (can_convert): Use it. + * tree.c (build_dummy_object): Adjust comment. + * typeck.c (cp_build_binary_op): Wrap SPACESHIP_EXPR in a + TARGET_EXPR. + +2021-05-07 Jason Merrill + + * coroutines.cc (build_co_await): Don't call 'rvalue'. + (flatten_await_stmt): Simplify initialization. + (morph_fn_to_coro): Change 'rvalue' to 'move'. Simplify. + +2021-05-04 Tobias Burnus + + * semantics.c (finish_omp_reduction_clause): Accept float + complex + for || and && reductions. + +2021-05-03 Patrick Palka + + PR c++/100362 + * parser.c (cp_parser_class_head): Reinstate calls to pushclass + and popclass when parsing the base-clause that were removed in + r11-6815. + +2021-05-03 Patrick Palka + + PR c++/68942 + PR c++/100344 + * pt.c (tsubst_copy_and_build) : Set tf_conv + only when the callee is a FUNCTION_DECL. + +2021-05-03 Marek Polacek + + PR c++/100055 + * decl.c (grokfndecl): Check current_template_parms. + +2021-05-03 Marek Polacek + + DR 1312 + * constexpr.c (cxx_eval_constant_expression): Don't check + integer_zerop. + +2021-05-01 Jason Merrill + + * cp-tree.h (class ovl_iterator): Allow copying. Add op==. + (class ovl_range, class lkp_range): New. + * call.c (build_op_call_1, add_candidates): Use them. + (build_op_delete_call, has_trivial_copy_assign_p): Likewise. + (has_trivial_copy_p): Likewise. + * class.c (handle_using_decl, get_basefndecls): Likewise. + (maybe_warn_about_overly_private_class): Likewise. + (warn_hidden, add_implicitly_declared_members): Likewise. + (check_methods, clone_constructors_and_destructors): Likewise. + (type_has_user_nondefault_constructor): Likewise. + +2021-04-29 Jason Merrill + + * constexpr.c (cxx_fold_indirect_ref_1): Only set *empty_base if we + don't find a field. + +2021-04-29 Jason Merrill + + PR c++/51344 + * decl2.c (grokfield): Call cplus_decl_attributes for friend. + (save_template_attributes): Use chainon. + * friend.c (do_friend): Remove attrlist parm. + * cp-tree.h (do_friend): Adjust. + * class.c (add_implicitly_declared_members): Adjust. + * decl.c (grokdeclarator): Adjust. + * pt.c (apply_late_template_attributes): Optimize. + +2021-04-29 Jason Merrill + + PR c++/97974 + * class.c (finish_struct_anon_r): Drop complain parm. + Remove non-field diagnostic. + (finish_struct_anon): Adjust. + * decl.c (fixup_anonymous_aggr): Move non-field diagnostic here. + +2021-04-29 Jason Merrill + + * cp-tree.h (cp_evaluated): Add reset parm to constructor. + * parser.c (cp_parser_constant_expression): Change + allow_non_constant_p to int. Use cp_evaluated. + (cp_parser_initializer_clause): Pass 2 to allow_non_constant_p. + * semantics.c (finish_id_expression_1): Don't mess with + cp_unevaluated_operand here. + +2021-04-29 Jason Merrill + + * cp-tree.h: Clarify comments. + * pt.c (get_template_parm_object): Add assert. + * semantics.c (finish_compound_literal): Clear TREE_HAS_CONSTRUCTOR. + * tree.c (zero_init_expr_p): Check TREE_HAS_CONSTRUCTOR. + * typeck2.c (store_init_value): Likewise. + +2021-04-29 Patrick Palka + + PR c++/68942 + * pt.c (tsubst_copy_and_build) : When KOENIG_P, + set tf_conv during the initial substitution into the function. + +2021-04-29 Jakub Jelinek + + PR c++/100319 + * semantics.c (finish_omp_clauses): Fix up check that variable + mentioned in detach clause doesn't appear in data-sharing clauses. + +2021-04-28 Jakub Jelinek + + * module.cc: Remove #error that triggers if DEV-PHASE is empty. + +2021-04-27 Jason Merrill + + PR c++/92145 + * class.c (classtype_has_depr_implicit_copy): Check DECL_CONTEXT + of operator=. + +2021-04-27 Patrick Palka + + PR c++/88580 + * pt.c (tsubst_initializer_list): Correctly handle the case + where an argument inside a base initializer pack expansion is + itself a pack expansion. + +2021-04-26 Patrick Palka + + PR c++/100209 + * constexpr.c (cxx_fold_indirect_ref): Try to canonicalize the + object/offset pair for a POINTER_PLUS_EXPR of a COMPONENT_REF + with a negative offset into one whose offset is nonnegative + before calling cxx_fold_indirect_ref_1. + +2021-04-24 Patrick Palka + + PR c++/89565 + PR c++/93383 + PR c++/95291 + PR c++/99200 + PR c++/99683 + * pt.c (do_class_deduction): Punt if the initializer is + type-dependent. + +2021-04-24 Patrick Palka + + PR c++/87709 + * parser.c (cp_parser_type_id_1): If we see a template + placeholder, first try simulating an error before issuing + a real error. + +2021-04-23 Patrick Palka + + PR c++/98767 + * cxx-pretty-print.c (pp_cxx_parameter_declaration_clause): + Adjust parameter list loop to iterate over 'types' instead of + 'args'. Output the trailing '...' for a variadic function. + Remove PARM_DECL support. + (pp_cxx_requires_expr): Pretty print the parameter list directly + instead of going through pp_cxx_parameter_declaration_clause. + +2021-04-23 Patrick Palka + + DR 2374 + * decl.c (is_direct_enum_init): Check the implicit + convertibility requirement added by CWG 2374. + +2021-04-23 Martin Liska + + * cp-tree.h (STATIC_ASSERT): Prefer static assert. + * lex.c (init_operators): Remove run-time check. + +2021-04-22 Marek Polacek + + PR c++/100161 + * pt.c (tsubst_copy_and_build) : Test op0 and + op1 separately for value- or type-dependence. + +2021-04-21 Marek Polacek + + PR c++/96380 + * parser.c (cp_parser_enum_specifier): Don't allow defining + types in enum-base. + +2021-04-21 Martin Liska + + Revert: + 2021-04-21 Martin Liska + + * error.c (dump_decl): Use flags in dump_generic_node call. + +2021-04-21 Martin Liska + + * error.c (dump_decl): Use flags in dump_generic_node call. + +2021-04-21 Martin Liska + + * error.c (dump_decl): Support anonymous labels. + +2021-04-20 Jason Merrill + + PR c++/100109 + * pt.c (find_parameter_packs_r): Look into enum initializers. + +2021-04-19 Marek Polacek + + PR c++/97536 + * decl.c (grokvardecl): Given an error when a concept is not defined + at namespace scope. + +2021-04-16 Jakub Jelinek + + PR c++/100111 + * constexpr.c (cxx_eval_store_expression): Don't add CONSTRUCTORs + for empty classes into *valp when types don't match even when *valp + is NULL. + +2021-04-16 Marek Polacek + + PR c++/99803 + * decl.c (make_typename_type): Give an error and return when + name is is_overloaded_fn. + * parser.c (cp_parser_class_name): Don't check is_overloaded_fn + before calling make_typename_type. + +2021-04-16 Patrick Palka + + PR c++/99700 + * constexpr.c (reduced_constant_expression_p): For array + CONSTRUCTORs, use a dedicated loop that additionally verifies + the CONSTRUCTOR spans the entire array. + +2021-04-16 Jakub Jelinek + + PR c++/99850 + * parser.c (cp_parser_constraint_requires_parens) : + If lambda_p, return pce_ok instead of pce_maybe_postfix. + +2021-04-16 Jakub Jelinek + + PR c++/99833 + * pt.c (extract_locals_r): When handling DECL_EXPR of a structured + binding, add to data.internal also all corresponding structured + binding decls. + +2021-04-16 Jason Merrill + + PR c++/100079 + * cp-tree.h (first_field): Declare. + * mangle.c (range_expr_nelts): New. + (write_expression): Improve class NTTP mangling. + * pt.c (get_template_parm_object): Clear TREE_HAS_CONSTRUCTOR. + * tree.c (zero_init_expr_p): Improve class NTTP handling. + * decl.c: Adjust comment. + +2021-04-15 Jason Merrill + + PR c++/80456 + * call.c (build_new_method_call_1): Check again for side-effects + with a volatile object. + +2021-04-15 Jason Merrill + + PR c++/100101 + PR c++/99583 + * pt.c (find_parameter_packs_r) [FUNCTION_TYPE]: Walk into + TYPE_RAISES_EXCEPTIONS here. + * tree.c (cp_walk_subtrees): Not here. + +2021-04-15 Jason Merrill + + PR c++/100091 + PR c++/99478 + * parser.c (cp_parser_default_type_template_argument): Set + parser->local_variables_forbidden_p. + +2021-04-15 Richard Sandiford + + PR c++/98852 + * typeck.c (merge_type_attributes_from): New function. + (cp_common_type): Use it for vector types. + +2021-04-14 Jason Merrill + + PR c++/100078 + PR c++/93085 + * pt.c (uses_outer_template_parms): Also look at default + template argument. + +2021-04-14 Jason Merrill + + PR c++/93314 + * semantics.c (finish_id_expression_1): Clear cp_unevaluated_operand + for a non-static data member in a constant-expression. + +2021-04-14 Patrick Palka + + PR c++/83476 + PR c++/99885 + * pt.c (deducible_expression): Look through implicit + INDIRECT_REFs as well. + +2021-04-14 Jason Merrill + + PR c++/99478 + * parser.c (cp_parser_lambda_expression): Reject lambda + in template parameter type. + +2021-04-14 Jason Merrill + + PR c++/90674 + * decl.c (duplicate_decls): Don't propagate + DECL_INITIALIZED_IN_CLASS_P to a specialization. + +2021-04-14 Jason Merrill + + PR c++/88742 + PR c++/49951 + PR c++/58123 + * semantics.c (set_cleanup_locs): New. + (do_poplevel): Call it. + * parser.c (cp_parser_compound_statement): Consume the } + before finish_compound_stmt. + +2021-04-13 Jason Merrill + + PR c++/100032 + * pt.c (get_underlying_template): Compare TYPE_QUALS. + +2021-04-13 Jason Merrill + + PR c++/100054 + PR c++/90479 + * init.c (get_nsdmi): Do more context adjustment for local classes. + +2021-04-13 Patrick Palka + + PR c++/99008 + * pt.c (do_class_deduction): Reject alias CTAD in C++17 mode + rather than issuing a pedwarn. + * typeck2.c (build_functional_cast_1): Handle CTAD uniformly + for consistent diagnostics. + +2021-04-13 Jason Merrill + + PR c++/91933 + * class.c (build_base_path): Shortcut simple non-pointer case. + +2021-04-13 Eric Botcazou + + * module.cc (ordinary_loc_of): Test LINEMAPS_MACRO_LOWEST_LOCATION + of the linemap. + (module_state::write_location): Likewise. + +2021-04-13 Patrick Palka + + PR c++/97134 + * pt.c (do_class_deduction): Look through EXPR_PACK_EXPANSION + when checking if the initializer is an equivalent class + placeholder template parameter. + +2021-04-13 Patrick Palka + + PR c++/99961 + PR c++/99994 + * constraint.cc (satisfy_normalized_constraints): Set + cp_unevaluated. + * parser.c (cp_parser_concept_definition): Likewise. + (cp_parser_requires_clause_opt): Likewise. + +2021-04-12 Jason Merrill + + PR c++/93085 + * pt.c (uses_outer_template_parms): Handle non-type and template + template parameters specifically. + +2021-04-11 Jason Merrill + + PR c++/97974 + * decl.c (fixup_anonymous_aggr): Prune all functions from + CLASSTYPE_MEMBER_VEC. + +2021-04-10 Jason Merrill + + PR c++/98800 + PR c++/97399 + * parser.c (cp_parser_direct_declarator): Don't + inject_this_parameter if static_p. + (cp_parser_omp_var_list_no_open): Parse 'this' even if + current_class_ptr isn't set for a better diagnostic. + +2021-04-10 Jason Merrill + + PR c++/99180 + PR c++/93295 + PR c++/93867 + PR c++/99118 + PR c++/96873 + * pt.c (alias_ctad_tweaks): Handle failure better. + +2021-04-10 Jason Merrill + + PR c++/100006 + * pt.c (find_parameter_packs_r) [TAG_DEFN]: Look into bases. + +2021-04-09 Patrick Palka + + * cp-tree.h (LAMBDA_EXPR_REGENERATED_FROM) + (LAMBDA_EXPR_REGENERATING_TARGS): Replace these with ... + (LAMBDA_EXPR_REGEN_INFO): ... this. + (tree_lambda_expr::regenerated_from) + (tree_lambda_expr::regenerating_targs): Replace these with ... + (tree_lambda_expr::regen_info): ... this. + * constraint.cc (satisfy_declaration_constraints): Adjust + accordingly. + * lambda.c (build_lambda_expr): Likewise. + * pt.c (regenerated_lambda_fn_p): Likewise. + (most_general_lambda): Likewise. + (tsubst_lambda_expr): Likewise. + +2021-04-09 Marek Polacek + + PR c++/99806 + * parser.c (cp_parser_member_declaration): Call + cp_parser_save_default_args even for function templates. Use + STRIP_TEMPLATE on the declaration we're passing. + +2021-04-08 Patrick Palka + + PR c++/99874 + * constraint.cc (get_normalized_constraints_from_decl): Handle + regenerated lambdas. + (satisfy_declaration_constraints): Likewise. Check for + dependent args later. + * cp-tree.h (LAMBDA_EXPR_INSTANTIATED): Replace with ... + (LAMBDA_EXPR_REGENERATED_FROM): ... this. + (LAMBDA_EXPR_REGENERATING_TARGS): New. + (tree_lambda_expr::regenerated_from): New data member. + (tree_lambda_expr::regenerating_targs): New data member. + (add_to_template_args): Declare. + (regenerated_lambda_fn_p): Likewise. + (most_general_lambda): Likewise. + * lambda.c (build_lambda_expr): Set LAMBDA_EXPR_REGENERATED_FROM + and LAMBDA_EXPR_REGENERATING_TARGS. + * pt.c (add_to_template_args): No longer static. + (tsubst_function_decl): Unconditionally propagate constraints on + the substituted function decl. + (instantiated_lambda_fn_p): Rename to ... + (regenerated_lambda_fn_p): ... this. Check + LAMBDA_EXPR_REGENERATED_FROM instead of + LAMBDA_EXPR_INSTANTIATED. + (most_general_lambda): Define. + (enclosing_instantiation_of): Adjust after renaming + instantiated_lambda_fn_p. + (tsubst_lambda_expr): Don't set LAMBDA_EXPR_INSTANTIATED. Set + LAMBDA_EXPR_REGENERATED_FROM and LAMBDA_EXPR_REGENERATING_TARGS. + Don't substitute or set constraints on the regenerated lambda. + +2021-04-08 Patrick Palka + + PR c++/97679 + * pt.c (build_deduction_guide): Document OUTER_ARGS. Substitute + them into the propagated constraints. + +2021-04-08 Jason Merrill + + PR c++/91849 + * call.c (convert_like_internal): Improve reference diagnostic. + +2021-04-08 Jakub Jelinek + + PR c++/99859 + * constexpr.c (addr_of_non_const_var): New function. + (cxx_bind_parameters_in_call): Set *non_constant_args to true + even if cp_walk_tree on arg with addr_of_non_const_var callback + returns true. + +2021-04-08 Jason Merrill + + PR c++/94529 + * pt.c (determine_specialization): Improve diagnostic. + +2021-04-08 Marek Polacek + + PR c++/99844 + * decl.c (build_explicit_specifier): Call + check_for_bare_parameter_packs. + * except.c (build_noexcept_spec): Likewise. + +2021-04-07 Jason Merrill + + PR c++/41723 + * parser.c (cp_parser_class_name): Check dependent_scope_p. + +2021-04-07 Jason Merrill + + PR c++/52625 + * pt.c (maybe_process_partial_specialization): Check + DECL_SELF_REFERENCE_P. + +2021-04-07 Jason Merrill + + PR c++/92918 + * name-lookup.c (push_class_level_binding_1): Do overload a new + function with a previous using-declaration. + +2021-04-06 Jason Merrill + + PR c++/96673 + * init.c (get_nsdmi): Don't defer access checking. + +2021-04-06 Jason Merrill + + PR c++/99901 + * decl.c (cp_finish_decl): mark_needed an implicitly inline + static data member with an out-of-class redeclaration. + +2021-04-06 Jason Merrill + + PR c++/91241 + * mangle.c (write_compact_number): Add sanity check. + (write_local_name): Use list_length for parm number. + +2021-04-06 Patrick Palka + + PR c++/99899 + * pt.c (do_auto_deduction): Don't exit early when deducing the + array type of a structured binding. Also handle adc_decomp_type + during constraint checking. + +2021-04-05 Jason Merrill + + PR c++/96311 + * typeck.c (check_return_expr): Call mark_exp_read in dependent + case. + +2021-04-05 Jason Merrill + + PR c++/98440 + * typeck.c (build_reinterpret_cast_1): Don't perform + temporary materialization. + +2021-04-05 Jason Merrill + + PR c++/95317 + * pt.c (lookup_template_class_1): Do tsubst_enum when + tsubsting a generic lambda. + +2021-04-05 Jason Merrill + + PR c++/95870 + * pt.c (enclosing_instantiation_of): Compare DECL_SOURCE_LOCATION if + there is no enclosing non-lambda function. + +2021-04-05 Nathan Sidwell + + PR c++/99380 + * module.cc (name_pending_imports): Drop 'atend' parm. Don't + query export when not needed. + (preprocess_module, preprocessed_module): Adjust. + +2021-04-05 Jason Merrill + + PR c++/99066 + * pt.c (mark_decl_instantiated): Set DECL_EXTERNAL. + +2021-04-05 Jason Merrill + + PR c++/99201 + * pt.c (class el_data): Add visited field. + (extract_local_specs): Pass it to cp_walk_tree. + (extract_locals_r): Walk into the body of a lambda. + +2021-04-05 Jason Merrill + + * ptree.c (cxx_print_decl): Check DECL_MODULE_IMPORT_P on + template result. + +2021-04-04 Jason Merrill + + PR c++/99643 + * typeck2.c (massage_init_elt): Don't strip TARGET_EXPR. + +2021-04-03 Marek Polacek + + PR c++/91416 + * parser.c: Create a GC root for attributes in a decl specifier. + (cp_parser_type_specifier): Push/pop ->attributes onto/from it. + +2021-04-03 Jason Merrill + + PR c++/91217 + * pt.c (tsubst_lambda_expr): Skip the body block from + DECL_SAVED_TREE. + +2021-04-03 Jason Merrill + + PR c++/90664 + * cvt.c (can_convert_qual): Check fnptr_conv_p. + +2021-04-03 Jason Merrill + + PR c++/97900 + * pt.c (regenerate_decl_from_template): tsubst_decl + the parms. + +2021-04-02 Patrick Palka + + PR c++/99869 + * parser.c (do_range_for_auto_deduction): Pass adc_variable_type + to do_auto_deduction. + +2021-04-02 Patrick Palka + + PR c++/99586 + * semantics.c (finish_compound_literal): Check + template_placeholder_p instead of type_uses_auto. + +2021-04-02 Jason Merrill + + PR c++/97938 + * cp-tree.h (PACK_EXPANSION_AUTO_P): New. + * lambda.c (add_capture): Set it. + * pt.c (tsubst_pack_expansion): Handle it. + +2021-04-02 Nathan Sidwell + + * cp-tree.h (lang_decl_base): Correct module flag comment. + * module.cc (trees_in::assert_definition): Break out + not_tmpl var. + (trees_out::lang_decl_bools): Do not write purview for header units. + +2021-04-01 Marek Polacek + + PR c++/99831 + * method.c (defaulted_late_check): ++ and -- function_depth around + the call to synthesize_method. + * pt.c: Remove the saved_trees global. + +2021-04-01 Jason Merrill + + PR c++/99583 + PR c++/99584 + * tree.c (cp_walk_subtrees) [FUNCTION_TYPE]: Walk into + TYPE_RAISES_EXCEPTIONS. + +2021-04-01 Iain Sandoe + + * mapper-client.cc (INCLUDE_MAP): New; require map to be + included from system.h. + * mapper-resolver.cc (INCLUDE_MAP): Likewise. + +2021-04-01 Jason Merrill + + PR c++/98481 + * mangle.c (write_expression): Adjust. + * class.c (find_abi_tags_r): Disable PR98481 fix for ABI v14. + (mark_abi_tags_r): Likewise. + +2021-04-01 Nathan Sidwell + + PR c++/99283 + * module.cc (trees_out::decl_node): Adjust importedness reference + assert. + (module_state::intercluster_seed): New. Seed both imports and + inter-cluster references. Broken out of ... + (module_state::write_cluster): ... here. Call it. + +2021-03-31 Jason Merrill + + PR c++/99445 + * tree.c (strip_typedefs): Handle TYPE_PACK_EXPANSION. + +2021-03-31 Patrick Palka + + PR c++/88115 + * mangle.c (write_expression): Adjust the mangling of + __alignof__. + +2021-03-31 Patrick Palka + + PR c++/99815 + * pt.c (placeholder_type_constraint_dependent_p): Expand + argument packs to separate the first non-pack argument + from the rest. + +2021-03-30 Nathan Sidwell + + PR c++/99283 + * module.cc (dumper::operator): Make less brittle. + (trees_out::core_bools): VAR_DECLs always have a context. + (trees_out::key_mergeable): Use same_type_p for asserting. + (trees_in::read_var_def): Propagate + DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. + +2021-03-30 Jakub Jelinek + + PR c++/99790 + * cp-gimplify.c (cp_gimplify_expr): Handle PTRMEM_CST. + +2021-03-26 Marek Polacek + + PR c++/98352 + * method.c (implicitly_declare_fn): Pass &raises to + synthesized_method_walk. + +2021-03-26 Nathan Sidwell + + PR c++/99283 + * cp-tree.h (DECL_MODULE_CHECK): Ban TEMPLATE_DECL. + (SET_TYPE_TEMPLATE_INFO): Restore Alias template setting. + * decl.c (duplicate_decls): Remove template_decl module flag + propagation. + * module.cc (merge_kind_name): Add alias tmpl spec as a thing. + (dumper::impl::nested_name): Adjust for template-decl module flag + change. + (trees_in::assert_definition): Likewise. + (trees_in::install_entity): Likewise. + (trees_out::decl_value): Likewise. Remove alias template + separation of template and type_decl. + (trees_in::decl_value): Likewise. + (trees_out::key_mergeable): Likewise, + (trees_in::key_mergeable): Likewise. + (trees_out::decl_node): Adjust for template-decl module flag + change. + (depset::hash::make_dependency): Likewise. + (get_originating_module, module_may_redeclare): Likewise. + (set_instantiating_module, set_defining_module): Likewise. + * name-lookup.c (name_lookup::search_adl): Likewise. + (do_pushdecl): Likewise. + * pt.c (build_template_decl): Likewise. + (lookup_template_class_1): Remove special alias_template handling + of DECL_TI_TEMPLATE. + (tsubst_template_decl): Likewise. + +2021-03-26 Jakub Jelinek + + PR c++/99705 + * tree.c (bot_manip): Remap artificial automatic temporaries mentioned + in DECL_EXPR or in BIND_EXPR_VARS. + +2021-03-25 Jakub Jelinek + + PR c++/99672 + * parser.c (cp_parser_postfix_expression): For calls, create + combined_loc and temporarily set input_location to it before + calling finish_call_expr. + +2021-03-25 Marek Polacek + + PR c++/94751 + * call.c (build_over_call): Maybe call mark_used in case + deduce_inheriting_ctor fails and return error_mark_node. + * cp-tree.h (deduce_inheriting_ctor): Adjust declaration. + * method.c (deduce_inheriting_ctor): Return bool if the deduction + fails. + (implicitly_declare_fn): If raises is error_mark_node, call + synthesized_method_walk with diag being true. + +2021-03-25 Jakub Jelinek + + PR c++/99745 + * decl2.c (grokbitfield): Diagnose bitfields containing bare parameter + packs and don't set DECL_BIT_FIELD_REPRESENTATIVE in that case. + +2021-03-25 Marek Polacek + + PR c++/99331 + * call.c (build_converted_constant_expr_internal): Don't emit + -Wconversion warnings. + +2021-03-25 Jakub Jelinek + + PR c++/99565 + * call.c (build_conditional_expr_1): Pass OEP_ADDRESS_OF_SAME_FIELD + to operand_equal_p. + * cvt.c (convert_to_void): Preserve location_t on COND_EXPR or + or COMPOUND_EXPR. + +2021-03-23 Nathan Sidwell + + PR c++/99283 + * name-lookup.c (check_module_override): Set global or partition + DUP on the binding vector. + +2021-03-23 Marek Polacek + + PR c++/99318 + * decl2.c (cp_warn_deprecated_use_scopes): Only call + cp_warn_deprecated_use when decl is a namespace, class, or enum. + +2021-03-23 Nathan Sidwell + + PR c++/99239 + * decl.c (duplicate_decls): Remove assert about maybe-imported + artificial decls. + +2021-03-23 Jakub Jelinek + + PR c++/99650 + * decl.c (cp_finish_decomp): Diagnose void initializers when + using tuple_element and get. + +2021-03-22 Nathan Sidwell + + PR c++/99480 + * module.cc (depset::hash::make_dependency): Propagate flags for + partial specialization. + (module_may_redeclare): Handle partial specialization. + +2021-03-22 Nathan Sidwell + + PR c++/99425 + * cp-tree.h (map_context_from, map_context_to): Delete. + (add_mergeable_specialization): Add is_alias parm. + * pt.c (add_mergeable_specialization): Add is_alias parm, add them. + * module.cc (map_context_from, map_context_to): Delete. + (trees_in::decl_value): Add specializations later, adjust call. + Drop useless alias lookup. Set duplicate fn parm context. + (check_mergeable_decl): Drop context mapping. + (trees_in::is_matching_decl): Likewise. + (trees_in::read_function_def): Drop parameter context adjustment + here. + +2021-03-22 Martin Liska + + PR c++/99687 + * module.cc (fini_modules): Call vec_free instead of delete. + +2021-03-20 Jakub Jelinek + + PR debug/99230 + * cp-gimplify.c (cp_genericize_r) : Remove + special code, instead call c_genericize_control_stmt. + +2021-03-19 Jakub Jelinek + + PR c++/99456 + * constexpr.c (cxx_eval_constant_expression): For CONVERT_EXPR from + INDIRECT_TYPE_P to ARITHMETIC_TYPE_P, when !ctx->manifestly_const_eval + don't diagnose it, set *non_constant_p nor return t. + +2021-03-19 Marek Polacek + + PR c++/99500 + * parser.c (cp_parser_requirement_parameter_list): Handle + error_mark_node. + +2021-03-18 Marek Polacek + + * pt.c (tsubst_copy_and_build) : Remove. + +2021-03-18 Marek Polacek + + * pt.c (tsubst_copy_and_build): Add assert. + +2021-03-18 Iain Sandoe + + PR objc++/49070 + * parser.c (cp_debug_parser): Add Objective-C++ message + state flag. + (cp_parser_nested_name_specifier_opt): Allow colon to + terminate an assignment-expression when parsing Objective- + C++ messages. + (cp_parser_objc_message_expression): Set and clear message + parsing state on entry and exit. + * parser.h (struct cp_parser): Add a context flag for + Objective-C++ message state. + +2021-03-18 Martin Liska + + PR c++/99617 + * coroutines.cc (struct var_nest_node): Init then_cl and else_cl + to NULL. + +2021-03-17 Marek Polacek + + PR c++/97973 + * call.c (conv_unsafe_in_template_p): New. + (convert_like): Use it. + +2021-03-17 Anthony Sharp + Jason Merrill + + * semantics.c (get_class_access_diagnostic_decl): New + function that examines special cases when a parent + class causes a private access failure. + (enforce_access): Slightly modified to call function + above. + +2021-03-16 Jason Merrill + + * tree.c (cp_tree_equal): Use real_identical. + +2021-03-16 Jakub Jelinek + + PR c++/99613 + * decl.c (expand_static_init): For thread guards, call __cxa_atexit + before calling __cxa_guard_release rather than after it. Formatting + fixes. + +2021-03-16 Martin Liska + Jason Merrill + + PR c++/99108 + * call.c (get_function_version_dispatcher): Handle + DECL_LOCAL_DECL_P. + * decl.c (maybe_version_functions): Likewise. + (maybe_mark_function_versioned): New. + * name-lookup.c (push_local_extern_decl_alias): No longer static. + * name-lookup.h (push_local_extern_decl_alias): Adjust. + +2021-03-16 Nathan Sidwell + + PR c++/99496 + * module.cc (trees_out::decl_value): Adjust typedef streaming, + indicate whether it is a dependent alias. + (trees_in::decl_value): Likewise. Set as dependent alias, if it + is one. + +2021-03-15 Iain Sandoe + + PR c++/99047 + * coroutines.cc (expand_one_await_expression): If the + await_ready() expression is not a boolean then convert it + as required. + +2021-03-15 Iain Sandoe + + PR c++/98704 + * coroutines.cc (build_actor_fn): Make destroy index 1 + correspond to the abnormal unhandled_exception() exit. + Substitute the proxy for the resume index. + (coro_rewrite_function_body): Arrange to reset the resume + index and make done = true for a rethrown exception from + unhandled_exception (). + (morph_fn_to_coro): Adjust calls to build_actor_fn and + coro_rewrite_function_body. + +2021-03-15 Iain Sandoe + + PR c++/98480 + * coroutines.cc (replace_continue): Rewrite continue into + 'goto label'. + (await_statement_walker): Handle await expressions in the + initializer, condition and iteration expressions of for + loops. + +2021-03-15 Iain Sandoe + + PR c++/96749 + * coroutines.cc (flatten_await_stmt): Allow for the case + where a target expression variable only has uses in the + second part of a compound expression. + (maybe_promote_temps): Avoid emiting empty statements. + +2021-03-15 Tobias Burnus + + PR c++/99509 + * decl.c (cp_finish_decl): For 'omp declare target implicit' vars, + ensure that the varpool node is marked as offloadable. + +2021-03-12 Nathan Sidwell + + PR c++/99238 + * module.cc (depset::hash::add_binding_entity): Assert not + visited. + (depset::add::add_specializations): Likewise. + * name-lookup.c (name_lookup::dedup): New. + (name_lookup::~name_lookup): Assert not deduping. + (name_lookup::restore_state): Likewise. + (name_lookup::add_overload): Replace outlined code with dedup + call. + (name_lookup::add_value): Likewise. + (name_lookup::search_namespace_only): Likewise. + (name_lookup::adl_namespace_fns): Likewise. + (name_lookup::adl_class_fns): Likewise. + (name_lookup::search_adl): Likewise. Add clearing dedup call. + (name_lookup::search_qualified): Likewise. + (name_lookup::search_unqualified): Likewise. + +2021-03-12 Jakub Jelinek + + PR c++/99507 + * call.c (build_over_call): For immediate evaluation of functions + that return references, undo convert_from_reference effects before + calling cxx_constant_value and call convert_from_reference + afterwards. + +2021-03-11 Nathan Sidwell + + PR c++/99248 + * name-lookup.c (lookup_elaborated_type_1): Access slot not bind + when there's a binding vector. + * ptree.c (cxx_print_xnode): Lazy flags are no longer a thing. + +2021-03-11 Nathan Sidwell + + PR c++/99528 + * module.cc (enum merge_kind): Delete MK_type_tmpl_spec, + MK_decl_tmpl_spec. + (trees_in::decl_value): Adjust add_mergeable_specialization call. + (trees_out::get_merge_kind): Adjust detecting a partial template + instantiation. + (trees_out::key_mergeable): Adjust handling same. + (trees_in::key_mergeabvle): Likewise. + +2021-03-10 Nathan Sidwell + + PR c++/99423 + * module.cc (post_load_processing): Assert not gcable. + (laxy_load_pendings): Extend no-gc region around + post_load_processing. + +2021-03-10 Nathan Sidwell + + PR c++/99508 + * decl.c (make_rtl_for_nonlocal_decl): Propagate local-extern's + assembler name to the ns alias. + +2021-03-09 Jakub Jelinek + + PR c++/99459 + * coroutines.cc (build_co_await): Look through NOP_EXPRs in + build_special_member_call return value to find the CALL_EXPR. + Simplify. + +2021-03-09 Nathan Sidwell + + PR c++/99472 + * parser.c (cp_parser_diagnose_invalid_type_name): Clarify + that C++20 does not yet imply modules. + +2021-03-08 Nathan Sidwell + + PR c++/99436 + * name-lookup.c (get_cxx_dialect_name): Add cxx23. + +2021-03-08 Nathan Sidwell + + * lex.c (module_token_filter::resume): Ignore module-decls inside + header-unit. + * parser.c (cp_parser_module_declaration): Reject in header-unit. + +2021-03-08 Nathan Sidwell + + PR c++/99285 + * cp-tree.h (match_mergeable_specialization) + (add_mergeable_specialization): Adjust parms. + * module.cc (trees_in::decl_value): Adjust + add_mergeable_specialization calls. + (trees_out::key_mergeable): Adjust match_mergeable_specialization + calls. + (specialization_add): Likewise. + * pt.c (match_mergeable_specialization): Do not insert. + (add_mergeable_specialization): Add to hash table here. + +2021-03-06 Patrick Palka + Jakub Jelinek + + PR c++/99287 + * constexpr.c (cxx_eval_increment_expression): Pass lval when + evaluating the MODIFY_EXPR, and update 'mod' with the result of + this evaluation. Check *non_constant_p afterwards. For prefix + ops, just return 'mod'. + +2021-03-06 Patrick Palka + Jakub Jelinek + + PR c++/96330 + * pt.c (tsubst_copy) : Rename local + variable 'fn' to 'tmpl'. Handle a variable template-id by + calling lookup_template_variable. + +2021-03-06 Patrick Palka + + PR c++/99365 + * pt.c (unify) : Pass targs as + outer_targs to do_auto_deduction. + (placeholder_type_constraint_dependent_p): Define. + (do_auto_deduction): When processing_template_decl != 0 + and context is adc_unify and we have constraints, pretend the + constraints are satisfied instead of punting. Otherwise don't + punt unless placeholder_type_constraint_dependent_p holds. + Add some clarifying sanity checks. Add a hack to add missing + outermost template levels to outer_args before checking + satisfaction. Don't substitute outer_targs into type if it's + already been done. + +2021-03-05 Marek Polacek + + PR c++/99374 + * call.c (standard_conversion): When converting pointers to + member, don't return NULL when the bases are equivalent but + incomplete. + +2021-03-05 Marek Polacek + + PR c++/99120 + * name-lookup.c (check_local_shadow): Check if the type of decl + is non-null before checking TYPE_PTR*. + +2021-03-05 Nathan Sidwell + + PR c++/99245 + * module.cc (module_state::write_cluster): Relax binding assert. + +2021-03-05 Nathan Sidwell + + PR c++/99377 + * pt.c (instantiate_decl): Call set_instantiating_module. + +2021-03-05 Iain Sandoe + + PR c++/98118 + * coroutines.cc (build_co_await): Use type_build_ctor_call() + to determine cases when a CTOR needs to be built. + (flatten_await_stmt): Likewise. + (morph_fn_to_coro): Likewise. + +2021-03-05 Iain Sandoe + + PR c++/95616 + * coroutines.cc (coro_diagnose_throwing_fn): New helper. + (coro_diagnose_throwing_final_aw_expr): New helper. + (build_co_await): Diagnose throwing final await expression + components. + (build_init_or_final_await): Diagnose a throwing promise + final_suspend() call. + +2021-03-05 Iain Sandoe + + PR c++/95615 + * coroutines.cc (struct param_info): Track parameter copies that need + a DTOR. + (coro_get_frame_dtor): New helper function factored from build_actor(). + (build_actor_fn): Use coro_get_frame_dtor(). + (morph_fn_to_coro): Track parameters that need DTORs on exception, + likewise the frame promise and the return object. On exception, run the + DTORs for these, destroy the frame and then rethrow the exception. + +2021-03-05 Nathan Sidwell + + PR c++/99389 + * pt.c (instantiate_class_template_1): Set instantiating module + here. + +2021-03-05 Tobias Burnus + + PR c/99137 + * parser.c (cp_parser_oacc_clause_async): Reject comma expressions. + +2021-03-04 Jakub Jelinek + + PR c++/88146 + PR c++/99362 + * cvt.c (convert_to_void): Revert 2019-10-17 changes. Clarify + comment. + +2021-03-04 Nathan Sidwell + + PR c++/99170 + * module.cc (class uintset): Delete. + (typedef attached_map_t): A hash map. + (attached_table): Use attached_map_t. Adjust uses ... + (trees_out::decl_value, trees_in::decl_value): ... here ... + (trees_out::key_mergeable): ... here ... + (trees_in::key_mergeable): ... here ... + (maybe_attach_decl): ... here ... + (direct_import): ... and here. + +2021-03-04 Nathan Sidwell + + PR c++/99170 + * cp-tree.h + * lex.c (cxx_dup_lang_specific_decl): Adjust for module_attached_p + rename. + * module.cc (class pending_key): New. + (default_hash_traits): New specialization. + (pending_map_t): New typedef. + (pending_table): Replace old table. + (trees_out::lang_decl_bools): Adjust. + (trees_in::lang_decl_bools): Adjust. + (trees_in::install_entity): Drop pending member and specialization + handling. + (find_pending_key): New. + (depset::hash::fiund_dependencies): Use it. + (pendset_lazy_load): Delete. + (module_state::write_cluster): Don't count pendings here. Bye + Duff's device-like thing. + (module_state::write_pendings): Reimplement. + (module_state::read_pendings): Reimplement. + (lazy_specializations_p): Delete. + (module_state::write): Adjust write_pendings call. + (lazy_load_pendings): New. + (lazy_load_specializations): Delete. + (lazy_load_members): Delete. + (init_modules): Adjust. + * name-lookup.c (maybe_lazily_declare): Call lazy_load_pendings + not lazy_load_members. + (note_pending_specializations): Delete. + (load_pending_specializations): Delete. + * name-lookup.h (BINDING_VECTR_PENDING_SPECIALIZATIONS_P): Delete. + (BINDING_VECTOR_PENDING_MEMBERS_P): Delete. + (BINDING_VECTR_PENDING_MEMBERS_P): Delete. + (note_pending_specializations): Delete. + (load_pending_specializations): Delete. + * pt.c (lookup_template_class_1): Call lazy_load_pendings not + lazy_load_specializations. + (instantiate_template_class_1): Likewise. + (instantiate_decl): Call lazy_load_pendings. + * typeck.c (complete_type): Likewise. + +2021-03-03 Nathan Sidwell + + PR c++/99170 + * module.cc (post_load_decls): New. + (lazy_snum, recursive_lazy): Move earlier. + (module_state::read_cluster): Push cloning onto post_load_decls. + (post_load_processing): New. Do the cloning here. + (module_state::read_inits): Call post_load_processing. + (module_state::read_language): Likewise. + (lazy_load_binding, lazy_load_specializations): Likewise + (lazy_load_members): Likewise + +2021-03-03 Nathan Sidwell + + PR c++/99170 + * module.cc (trees_out::decl_value): Stream specialization keys + after decl. + (trees_in::decl_value): Stream them back and insert after + completing the decl. + (trees_out::key_mergeable): Drop some streaming here ... + (trees_in::key_mergeable): ... and here. Don't insert into + specialization tables. + +2021-03-03 Patrick Palka + + * constraint.cc (struct sat_info): Document the different + meanings of noisy() and diagnose_unsatisfaction_p() during + satisfaction and requires-expression evaluation. + (tsubst_valid_expression_requirement): Take a sat_info instead + of a subst_info. Perform the substitution quietly first. Fold + in error-replaying code from diagnose_valid_expression. + (tsubst_simple_requirement): Take a sat_info instead of a + subst_info. + (tsubst_type_requirement_1): New. Fold in error-replaying code + from diagnose_valid_type. + (tsubst_type_requirement): Use the above. Take a sat_info + instead of a subst_info. + (tsubst_compound_requirement): Likewise. Fold in + error-replaying code from diagnose_compound_requirement. + (tsubst_nested_requirement): Take a sat_info instead of a + subst_info. Fold in error-replaying code from + diagnose_nested_requirement. + (tsubst_requirement): Take a sat_info instead of a subst_info. + (tsubst_requires_expr): Split into two versions, one that takes + a sat_info argument and another that takes a complain and + in_decl argument. Remove outdated documentation. Document the + effects of the sat_info argument. Don't short-circuit + processing of requirements when diagnosing unsatisfaction, + mirroring diagnose_requires_expr. + (satisfy_nondeclaration_constraint) : Remove + assert, and se the three-parameter version of tsubst_requires_expr. + (diagnose_trait_expr): Make static. Take a template argument + vector instead of a parameter mapping. + (diagnose_valid_expression): Remove. + (diagnose_valid_type): Remove. + (diagnose_simple_requirement): Remove. + (diagnose_compound_requirement): Remove. + (diagnose_type_requirement): Remove. + (diagnose_nested_requirement): Remove. + (diagnose_requirement): Remove. + (diagnose_requires_expr): Remove. + (diagnose_atomic_constraint): Take a sat_info instead of a + subst_info. Adjust call to diagnose_trait_expr. Call + tsubst_requires_expr instead of diagnose_requires_expr. + (diagnose_constraints): Remove special casing of REQUIRES_EXPR + and just always call constraint_satisfaction_value. + +2021-03-03 Patrick Palka + + * constexpr.c (cxx_eval_call_expression): Adjust call to + evaluate_concept_check. + (cxx_eval_constant_expression) : Use + evaluate_requires_expression instead of + satisfy_constraint_expression. + : Adjust call to evaluate_concept_check. + * constraint.cc (struct sat_info): Adjust comment about which + satisfaction entrypoints use noisy-unsat. + (normalize_template_requirements): Remove (and adjust callers + appropriately). + (normalize_nontemplate_requirements): Likewise. + (tsubst_nested_requirement): Use constraint_satisfaction_value + instead of satisfy_constraint_expression, which'll do the + noisy replaying of ill-formed quiet satisfaction for us. + (decl_satisfied_cache): Adjust comment. + (satisfy_constraint): Rename to ... + (satisfy_normalized_constraints): ... this. + (satisfy_associated_constraints): Remove (and make its + callers check for dependent arguments). + (satisfy_constraint_expression): Rename to ... + (satisfy_nondeclaration_constraints): ... this. Assert that + 'args' is empty when 't' is a concept-id. Removing handling + bare constraint-expressions, and handle REQUIRES_EXPRs + specially. Adjust comment accordingly. + (satisfy_declaration_constraints): Assert in the two-parameter + version that 't' is not a TEMPLATE_DECL. Adjust following + removal of normalize_(non)?template_requirements and + satisfy_asociated_constraints. + (constraint_satisfaction_value): Combine the two- and + three-parameter versions in the natural way. + (constraints_satisfied_p): Combine the one- and two-parameter + versions in the natural way. Improve documentation. + (evaluate_requires_expr): Define. + (evaluate_concept_check): Remove 'complain' parameter. Use + constraint_satisfaction_value instead of + satisfy_constraint_expression. + (diagnose_nested_requirement): Adjust following renaming of + satisfy_constraint_expression. + (diagnose_constraints): Handle REQUIRES_EXPR by going through + diagnose_requires_expr directly instead of treating it as a + constraint-expression. Improve documentation. + * cp-gimplify.c (cp_genericize_r) : Adjust call + to evaluate_concept_check. + : Use evaluate_requires_expr instead of + constraints_satisfied_p. + : Adjust call to evaluate_concept_check. + * cp-tree.h (evaluate_requires_expr): Declare. + (evaluate_concept_check): Remove tsubst_flag_t parameter. + (satisfy_constraint_expression): Remove declaration. + (constraints_satisfied_p): Remove one-parameter declaration. + Add a default argument to the two-parameter declaration. + * cvt.c (convert_to_void): Adjust call to + evaluate_concept_check. + +2021-03-03 Jakub Jelinek + + PR c++/82959 + * call.c (op_is_ordered): Handle TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR + and COMPOUND_EXPR. + +2021-03-03 Marek Polacek + + PR c++/97034 + PR c++/99009 + * pt.c (build_deduction_guide): Use INNERMOST_TEMPLATE_ARGS. + (maybe_aggr_guide): Use the original template type where needed. In + a class member template, partially instantiate the result of + collect_ctor_idx_types. + (do_class_deduction): Defer the deduction until the enclosing + scope is non-dependent. + +2021-03-03 Jason Merrill + + PR c++/95675 + * call.c (build_temp): Wrap a CALL_EXPR in a TARGET_EXPR + if it didn't get one before. + +2021-03-03 Nathan Sidwell + + PR c++/99344 + * module.cc (trees_out::decl_node): Small refactor. + (depset::hash::add_binding_entity): Return true on meeting an + import. Set namespace's import here. + (module_state:write_namespaces): Inform of purview too. + (module_state:read_namespaces): Adjust. + * name-lookup.c (implicitly_export_namespace): Delete. + (do_pushdecl): Don't call it. + (push_namespace): Likewise, set purview. + (add_imported_namespace): Reorder parms. + * name-lookup.h (add_imported_namespace): Alter param ordering. + +2021-03-02 Martin Sebor + + PR c++/99251 + * class.c (build_base_path): Call build_if_nonnull. + * cp-tree.h (build_if_nonnull): Declare. + * rtti.c (ifnonnull): Rename... + (build_if_nonnull): ...to this. Set no-warning bit on COND_EXPR. + (build_dynamic_cast_1): Adjust to name change. + +2021-03-02 Patrick Palka + + PR c++/96443 + PR c++/96960 + * constraint.cc (type_deducible_p): Don't substitute into the + constraints, and instead just pass 'args' to do_auto_deduction + as the outer template arguments. + (tsubst_parameter_mapping): Remove confused code for handling + placeholder type arguments. + (normalize_placeholder_type_constraint): Define. + (satisfy_constraint_expression): Use it to handle placeholder + 'auto' types. + * cp-tree.h (PLACEHOLDER_TYPE_CONSTRAINTS_INFO): Define. + (PLACEHOLDER_TYPE_CONSTRAINTS): Redefine in terms of the above. + * pt.c (tsubst) : Use + PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead. + (make_constrained_placeholder_type): Set + PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead. + (do_auto_deduction): Clarify comments about the outer_targs + parameter. Rework satisfaction of a placeholder type constraint + to pass in the complete set of template arguments directly to + constraints_satisfied_p. + (splice_late_return_type): Use PLACEHOLDER_TYPE_CONSTRAINTS_INFO + instead. Also rebuild the the constraint info on the new auto. + +2021-03-02 Patrick Palka + + * constraint.cc (build_parameter_mapping): Rely on the caller to + determine the in-scope template parameters. + (norm_info::norm_info): Delegate the tsubst_flags_t constructor + to the two-parameter constructor. In the two-parameter + constructor, fold in the definition of make_context, set + initial_parms appropriately, and don't set the now-removed + orig_decl member. + (norm_info::make_context): Remove, now that its only use is + inlined into the caller. + (norm_info::update_context): Adjust call to + build_parameter_mapping to pass in the relevant set of in-scope + template parameters. + (norm_info::ctx_parms): Define this member function. + (norm_info::context): Initialize to NULL_TREE. + (norm_info::orig_decl): Remove this data member. + (norm_info::initial_parms): Define this data member. + (normalize_atom): Adjust call to build_parameter_mapping to pass + in the relevant set of in-scope template parameters. Use + info.initial_parms instead of info.orig_decl. + (normalize_constraint_expression): Take a norm_info object + instead of a bool. Cache the result of normalization. + (tsubst_nested_requirement): Call satisfy_constraint_expression + instead of satisfy_constraint, so that we normalize on demand. + (satisfy_constraint_expression): Handle a NESTED_REQ argument. + Adjust call to normalize_constraint_expression. + (finish_nested_requirement): Set the TREE_TYPE of the NESTED_REQ + to current_template_parms. + (diagnose_nested_requirements): Go through + satisfy_constraint_expression, as with tsubst_nested_requirement. + +2021-03-02 Patrick Palka + + * constraint.cc (tsubst_parameter_mapping): Canonicalize the + arguments of a substituted TYPE_ARGUMENT_PACK even if we've + started with a TYPE_ARGUMENT_PACK. + (finish_requires_expr): Don't set DECL_CONTEXT and + CONSTRAINT_VAR_P on each of the introduced parameters here. + * parser.c (cp_parser_requirement_parameter_list): Instead set + these fields earlier, here. + * pt.c (do_auto_deduction): Canonicalize the result of + do_auto_deduction. Pass 'complain' to finish_decltype_type. + +2021-03-02 Patrick Palka + + * constraint.cc (tsubst_simple_requirement): Just return + boolean_true_node on success. + (tsubst_type_requirement): Likewise. + (tsubst_compound_requirement): Likewise. + (tsubst_nested_requirement): Likewise. + (tsubst_requirement_body): Remove. + (check_constaint_variables): Rename to ... + (check_constraint_variables): ... this. + (tsubst_constraint_variables): Adjust. + (tsubst_requires_expr): Fold tsubst_requirement_body into here. + +2021-03-01 Nathan Sidwell + + PR c++/99294 + * class.c (fixup_type_variants): Propagate mode, precision, + alignment & emptiness. + * module.cc (trees_out::type_node): Use TYPE_ALIGN_RAW. + (trees_in::tree_node): Rematerialize alignment here. + +2021-02-27 Jason Merrill + + PR c++/90333 + * parser.c (cp_parser_lambda_declarator_opt): Accept GNU attributes + between () and ->. + +2021-02-26 Jakub Jelinek + + * parser.c (cp_parser_lambda_declarator_opt): Implement + P1102R2 - Down with ()! Make ()s optional before lambda specifiers + for -std={c,gnu}++2b or with pedwarn in earlier versions. + +2021-02-26 Jakub Jelinek + + PR c++/95451 + * lambda.c (is_lambda_ignored_entity): Before checking for + LAMBDA_FUNCTION_P, use OVL_FIRST. Drop FUNCTION_DECL check. + +2021-02-26 Jason Merrill + + PR c++/98810 + * pt.c (tsubst_copy) [VIEW_CONVERT_EXPR]: Add const + to a class non-type template argument that needs it. + +2021-02-26 Patrick Palka + + PR c++/98990 + * pt.c (splice_late_return_type): Rebuild the entire return type + if we have to adjust the level of an auto within. + (type_uses_auto): Adjust call to find_type_usage. + * type-utils.h (find_type_usage): Revert r10-6571 change that + made this function return a pointer to the auto node. + +2021-02-25 Patrick Palka + + PR c++/99213 + PR c++/94521 + * error.c (dump_scope): Pass TFF_NO_TEMPLATE_BINDINGS instead of + TFF_NO_FUNCTION_ARGUMENTS when dumping a function scope. + +2021-02-25 Patrick Palka + + PR c++/99103 + * pt.c (is_spec_or_derived): Drop cv-qualifiers from 'etype'. + (maybe_aggr_guide): Fix order of arguments to is_spec_or_derived. + +2021-02-25 Marek Polacek + + DR 1312 + PR c++/99176 + * constexpr.c (is_std_construct_at): New overload. + (is_std_allocator_allocate): New overload. + (cxx_eval_call_expression): Use the new overloads. + (cxx_eval_constant_expression): Reject casting + from void * as per DR 1312. Don't check can_convert. + +2021-02-25 Iain Sandoe + + PR c++/97587 + * coroutines.cc (struct param_info): Track rvalue refs. + (morph_fn_to_coro): Track rvalue refs, and call the promise + CTOR with the frame copy of passed parms. + +2021-02-25 Iain Sandoe + + PR c++/95822 + * coroutines.cc (morph_fn_to_coro): Unconditionally remove any + set throwing_cleanup marker. + +2021-02-25 Nathan Sidwell + + PR c++/99166 + * module.cc (module_state::inform_cmi_p): Renamed field. + (module_state::do_import): Adjust. + (init_modules, finish_module_processing): Likewise. + (handle_module_option): Likewise. + +2021-02-25 Nathan Sidwell + + PR c++/98318 + * mapper-client.cc (module_client::open_module_client): Fix typo + of fd init. + +2021-02-24 Nathan Sidwell + + PR c++/98718 + * module.cc (ool): New indirection vector. + (loc_spans::maybe_propagate): Location is not optional. + (loc_spans::open): Likewise. Assert monotonically advancing. + (module_for_ordinary_loc): Use ool indirection vector. + (module_state::write_prepare_maps): Do not count empty macro + expansions. Elide empty spans. + (module_state::write_macro_maps): Skip empty expansions. + (ool_cmp): New qsort comparator. + (module_state::write): Create and destroy ool vector. + (name_pending_imports): Fix dump push/pop. + (preprocess_module): Likewise. Add more dumping. + (preprocessed_module): Likewise. + +2021-02-24 Iain Sandoe + + PR c++/96251 + * coroutines.cc (coro_common_keyword_context_valid_p): Suppress + error reporting when instantiating for a constexpr. + +2021-02-23 Nathan Sidwell + + PR c++/99208 + * decl.c (name_unnamed_type): Check DECL identity, not IDENTIFIER + identity. + +2021-02-23 Patrick Palka + + PR c++/95468 + * pt.c (tsubst_copy_and_build) : New case, copied + over from tsubst_copy. + +2021-02-23 Patrick Palka + + * pt.c (instantiation_dependent_expression_p): Check + processing_template_decl before calling + potential_constant_expression. + +2021-02-22 Nathan Sidwell + + PR c++/99174 + * module.cc (struct module_state): Add visited_p flag. + (name_pending_imports): Use it to avoid duplicate requests. + (preprocess_module): Don't read preprocessor state if we failed to + load a module's config. + +2021-02-22 Nathan Sidwell + + PR c++/99153 + * decl.c (duplicate_decls): Move DECL_MODULE_IMPORT_P propagation + to common-path. + * module.cc (set_defining_module): Add assert. + +2021-02-19 Nathan Sidwell + + PR c++/98741 + * module.cc (pending_imports): New. + (declare_module): Adjust test condition. + (name_pending_imports): New. + (preprocess_module): Reimplement using pending_imports. + (preprocessed_module): Move name-getting to name_pending_imports. + * name-lookup.c (append_imported_binding_slot): Assert module + ordering is increasing. + +2021-02-19 Nathan Sidwell + + * module.cc (note_cmis): New. + (struct module_state): Add inform_read_p bit. + (module_state::do_import): Inform of CMI location, if enabled. + (init_modules): Canonicalize note_cmis entries. + (handle_module_option): Handle -flang-info-module-read=FOO. + +2021-02-19 Jason Merrill + + PR c++/96926 + * call.c (perfect_conversion_p): Limit rvalueness + test to reference bindings. + +2021-02-19 Jason Merrill + + PR c++/96926 + * call.c (perfect_conversion_p): New. + (perfect_candidate_p): New. + (add_candidates): Ignore templates after a perfect non-template. + +2021-02-18 Nathan Sidwell + + PR c++/99023 + * module.cc (canonicalize_header_name): Use + cpp_probe_header_unit. + (maybe_translate_include): Fix note_includes comparison. + (init_modules): Fix note_includes string termination. + +2021-02-18 Jakub Jelinek + + PR c++/99132 + * cp-gimplify.c (cp_genericize_r) : Use + cp_get_callee_fndecl_nofold instead of cp_get_callee_fndecl to check + for immediate function calls. + +2021-02-17 Nathan Sidwell + + PR c++/99023 + * module.cc (struct macro_export): Add GTY markers. + (macro_exports): Likewise, us a va_gc Vector. + +2021-02-17 Jakub Jelinek + + PR sanitizer/99106 + * init.c (build_zero_init_1): For flexible array members just return + NULL_TREE instead of returning empty CONSTRUCTOR with non-complete + ARRAY_TYPE. + +2021-02-17 Nathan Sidwell + + PR c++/99116 + * name-lookup.c (do_pushdecl): Don't peek under template_parm + bindings here ... + (set_identifier_type_value_with_scope): ... or here. + (do_pushtag): Only set_identifier_type_value_with_scope at + non-class template parm scope, and use parent scope. + +2021-02-17 Nathan Sidwell + + PR c++/99071 + * name-lookup.c (maybe_record_mergeable_decl): Deref the correct + pointer. + +2021-02-17 Patrick Palka + + PR debug/96997 + PR c++/94034 + * tree.c (build_aggr_init_expr): Revert r10-7718 change. + +2021-02-12 Nathan Sidwell + + * module.cc (module_state::write_cluster): Check bindings for + imported using-decls. + +2021-02-12 Nathan Sidwell + + PR c++/99040 + * module.cc (trees_in::decl_value): Call add_module_namespace_decl + for new namespace-scope entities. + (module_state::read_cluster): Don't call add_module_decl here. + * name-lookup.h (add_module_decl): Rename to ... + (add_module_namespace_decl): ... this. + * name-lookup.c (newbinding_bookkeeping): Move into ... + (do_pushdecl): ... here. Its only remaining caller. + (add_module_decl): Rename to ... + (add_module_namespace_decl): ... here. Add checking-assert for + circularity. Don't call newbinding_bookkeeping, just extern_c + checking and incomplete var checking. + +2021-02-12 Nathan Sidwell + + PR c++/99039 + PR c++/99040 + * cp-tree.h (CPTI_GLOBAL_TYPE): Delete. + (global_type_node): Delete. + (IDENTIFIER_TYPE_VALUE): Delete. + (IDENTIFIER_HAS_TYPE_VALUE): Delete. + (get_type_value): Delete. + * name-lookup.h (identifier_type_value): Delete. + * name-lookup.c (check_module_override): Don't + SET_IDENTIFIER_TYPE_VALUE here. + (do_pushdecl): Nor here. + (identifier_type_value_1, identifier_type_value): Delete. + (set_identifier_type_value_with_scope): Only + SET_IDENTIFIER_TYPE_VALUE for local and class scopes. + (pushdecl_nanmespace_level): Remove shadow stack nadgering. + (do_pushtag): Use REAL_IDENTIFIER_TYPE_VALUE. + * call.c (check_dtor_name): Use lookup_name. + * decl.c (cxx_init_decl_processing): Drop global_type_node. + * decl2.c (cplus_decl_attributes): Don't SET_IDENTIFIER_TYPE_VALUE + here. + * init.c (get_type_value): Delete. + * pt.c (instantiate_class_template_1): Don't call pushtag or + SET_IDENTIFIER_TYPE_VALUE here. + (tsubst): Assert never an identifier. + (dependent_type_p): Drop global_type_node assert. + * typeck.c (error_args_num): Don't use IDENTIFIER_HAS_TYPE_VALUE + to determine ctorness. + +2021-02-12 Jakub Jelinek + + PR c++/97742 + * parser.c (cp_parser_requirement_seq): Stop iterating after reaching + CPP_EOF. + +2021-02-12 Jason Merrill + + PR c++/97246 + PR c++/94546 + * pt.c (extract_fnparm_pack): Check DECL_PACK_P here. + (register_parameter_specializations): Not here. + +2021-02-11 Marek Polacek + + PR c++/95888 + * pt.c (lookup_template_class_1): Pass tf_none to tsubst when looking + for the partial instantiation. + +2021-02-11 Jakub Jelinek + + PR c++/99033 + * init.c (build_zero_init_1): Handle zero initialiation of + flexible array members like initialization of [0] arrays. + Use integer_minus_onep instead of comparison to integer_minus_one_node + and integer_zerop instead of comparison against size_zero_node. + Formatting fixes. + +2021-02-11 Marek Polacek + + PR c++/99063 + * semantics.c (finish_do_stmt): Check for unexpanded parameter packs. + +2021-02-11 Patrick Palka + + PR c++/97582 + * name-lookup.c (op_unqualified_lookup): Handle an ambiguous + lookup result by discarding it if the first element is a + class-scope declaration, otherwise return it. + (push_operator_bindings): Handle an ambiguous lookup result by + doing push_local_binding on each element in the list. + +2021-02-11 Marek Polacek + + * parser.c (cp_parser_selection_statement): Use vec_free. + +2021-02-10 Jakub Jelinek + + PR c++/98988 + PR c++/99031 + * constexpr.c: Include cgraph.h. + (cxx_eval_call_expression): Call varpool_node::finalize_decl on + heap artificial vars. + (cxx_eval_outermost_constant_expr): Remove varpool nodes for + heap artificial vars. + +2021-02-10 Nathan Sidwell + + PR c++/99030 + * pt.c (tsubst_copy) [VAR_DECL]: For a DECL_LOCAL_DECL_P T is the + answer if there's no local specialization. + +2021-02-09 Nathan Sidwell + + PR c++/98944 + * module.cc (module_state::is_rooted): Rename to ... + (module_state::has_location): ... here. Adjust callers. + (module_state::read_partitions): Adjust validity check. + Don't overwrite a known location. + +2021-02-09 Jason Merrill + + PR c++/96905 + * pt.c (mark_decl_instantiated): Exit early if consteval. + +2021-02-09 Jason Merrill + + PR c++/98326 + PR c++/20408 + * cp-gimplify.c (simple_empty_class_p): Don't touch an invisiref + parm. + +2021-02-09 Jason Merrill + + PR c++/98994 + PR c++/97566 + * constexpr.c (cxx_eval_store_expression): Only skip empty fields in + RECORD_TYPE. + +2021-02-08 Nathan Sidwell + + * decl.c (start_cleanup_fn): Push function into + namespace. + +2021-02-08 Nathan Sidwell + + PR c++/98531 + * cp-tree.h (push_abi_namespace, pop_abi_namespace): Declare. + * decl.c (push_abi_namespace, pop_abi_namespace): Moved + from rtti.c, add default namespace arg. + (check_redeclaration_exception_specification): Allow a lazy + builtin's eh spec to differ from an lready-declared user + declaration. + (declare_global_var): Use push/pop_abi_namespace. + (get_atexit_node): Push the fndecl into a namespace. + * rtti.c (push_abi_namespace, pop_abi_namespace): Moved to + decl.c. + +2021-02-08 Marek Polacek + + * cp-tree.h (CLASSTYPE_TI_TEMPLATE): Fix typo. + +2021-02-05 Marek Polacek + + PR c++/98947 + * call.c (build_conditional_expr_1): Don't call mark_lvalue_use + on arg2/arg3. + * expr.c (mark_use) : Don't check read_p when + issuing the -Wvolatile warning. Only set TREE_THIS_VOLATILE if + a warning was emitted. + +2021-02-05 Marek Polacek + + PR c++/96462 + * name-lookup.c (lookup_using_decl): Hoist the destructor check. + +2021-02-05 Jakub Jelinek + + PR c++/97878 + * decl.c (check_array_initializer): For structured bindings, require + the array type to be complete. + +2021-02-04 Jason Merrill + + PR c++/98717 + * constraint.cc (build_concept_check_arguments): Remove assert. + (build_concept_check): Allow empty args. + +2021-02-04 Tom Greenslade (thomgree) + + PR c++/90926 + * call.c (can_convert_array): Extend to handle all valid aggregate + initializers of an array; including by string literals, not just by + brace-init-list. + (build_aggr_conv): Call can_convert_array more often, not just in + brace-init-list case. + * typeck2.c (array_string_literal_compatible_p): New function. + (digest_init_r): call array_string_literal_compatible_p + * cp-tree.h: (array_string_literal_compatible_p): Declare. + +2021-02-04 Jason Merrill + + PR c++/98802 + * pt.c (do_class_deduction): No aggregate guide if any_dguides_p. + +2021-02-04 Jason Merrill + + PR c++/95192 + * pt.c (tsubst_attribute): Handle error. + (apply_late_template_attributes): Return false on error. + (tsubst_function_decl): Check its return value. + (tsubst_decl): Likewise. + (push_template_decl): Assert current_template_parms. + (tsubst_template_decl): Set current_template_parms. + +2021-02-03 Marek Polacek + + PR c++/98951 + * call.c (struct z_candidate): Mark rewritten and reversed as const. + (struct NonPublicField): Mark operator() as const. + (struct NonTrivialField): Likewise. + +2021-02-03 Jason Merrill + + PR c++/98926 + PR c++/98570 + * pt.c (spec_hasher::equal): Set processing_template_decl. + * Make-lang.in (check-g++-strict-gc): Add --param + hash-table-verification-limit=10000. + +2021-02-03 Marek Polacek + + PR c++/98899 + * parser.c (cp_parser_class_specifier_1): Use any possible + DEFPARSE_INSTANTIATIONS to update DEFERRED_NOEXCEPT_PATTERN. + (cp_parser_save_noexcept): Initialize DEFPARSE_INSTANTIATIONS. + * pt.c (tsubst_exception_specification): Stash new_specs into + DEFPARSE_INSTANTIATIONS. + * tree.c (fixup_deferred_exception_variants): Use + UNPARSED_NOEXCEPT_SPEC_P. + +2021-02-02 Jason Merrill + + PR c++/98929 + PR c++/96199 + * error.c (dump_expr): Ignore dummy object. + * pt.c (tsubst_baselink): Handle dependent scope. + +2021-02-01 Patrick Palka + + PR c++/98295 + * constexpr.c (cxx_eval_array_reference): Also set + new_ctx.object when setting new_ctx.ctor. + +2021-02-01 Marek Polacek + + PR c++/98355 + * parser.c (cp_parser_has_attribute_expression): Use + uses_template_parms instead of type_dependent_expression_p. + +2021-02-01 Jason Merrill + + PR c++/98570 + * cp-tree.h: Declare it. + * pt.c (comparing_dependent_aliases): New flag. + (template_args_equal, spec_hasher::equal): Set it. + (dependent_alias_template_spec_p): Assert that we don't + get non-types other than error_mark_node. + (instantiate_alias_template): SET_TYPE_STRUCTURAL_EQUALITY + on complex alias specializations. Set TYPE_DEPENDENT_P here. + (tsubst_decl): Not here. + * module.cc (module_state::read_cluster): Set + comparing_dependent_aliases instead of + comparing_specializations. + * tree.c (cp_tree_equal): Remove comparing_specializations + module handling. + * typeck.c (structural_comptypes): Adjust. + (comptypes): Remove comparing_specializations handling. + +2021-01-29 Nathan Sidwell + + PR c++/98843 + * module.cc (module_state_config): Add num_entities field. + (module_state::read_entities): The entity_ary span is + already allocated. + (module_state::write_config): Write num_entities. + (module_state::read_config): Read num_entities. + (module_state::write): Set config's num_entities. + (module_state::read_initial): Allocate the entity ary + span here. + (module_state::read_language): Do not set entity_lwm + here. + +2021-01-29 Marek Polacek + + PR c++/96137 + * parser.c (cp_parser_class_name): If parser->scope is + error_mark_node, return it, otherwise continue. + +2021-01-28 Jakub Jelinek + + PR c++/98841 + * typeck.c (build_x_indirect_ref): For *this, return current_class_ref. + +2021-01-28 Jakub Jelinek + + PR c++/33661 + PR c++/98847 + * decl.c (cp_finish_decl): For register vars with asmspec in templates + call set_user_assembler_name and set DECL_HARD_REGISTER. + * pt.c (tsubst_expr): When instantiating DECL_HARD_REGISTER vars, + pass asmspec_tree to cp_finish_decl. + +2021-01-28 Nathan Sidwell + + PR c++/98770 + * module.cc (trees_out::decl_value): Swap is_typedef & TYPE_NAME + check order. + (trees_in::decl_value): Do typedef frobbing only when installing + a new typedef, adjust is_matching_decl call. Swap is_typedef + & TYPE_NAME check. + (trees_in::is_matching_decl): Add is_typedef parm. Adjust variable + names and deal with typedef checking. + +2021-01-27 Jason Merrill + + PR c++/97874 + * name-lookup.c (lookup_using_decl): Clean up handling + of dependency and inherited constructors. + (finish_nonmember_using_decl): Handle DECL_DEPENDENT_P. + * pt.c (tsubst_expr): Handle DECL_DEPENDENT_P. + +2021-01-26 Jason Merrill + + PR c++/97474 + * call.c (type_passed_as): Don't mark invisiref restrict. + +2021-01-26 Jason Merrill + + PR c++/97566 + PR c++/98463 + * class.c (layout_class_type): An empty field gets size 0. + (is_empty_field): New. + (check_bases): Check it. + * cp-tree.h (is_empty_field): Declare it. + * constexpr.c (cxx_eval_store_expression): Check it. + (cx_check_missing_mem_inits): Likewise. + * init.c (perform_member_init): Likewise. + * typeck2.c (process_init_constructor_record): Likewise. + +2021-01-25 Martin Sebor + + PR c++/98646 + * cvt.c (cp_fold_convert): Propagate TREE_NO_WARNING. + +2021-01-25 Jason Merrill + + PR c++/98463 + * constexpr.c (get_or_insert_ctor_field): Add check. + (cxx_eval_store_expression): Handle discontinuity of refs. + +2021-01-23 Anthony Sharp + + * call.c (complain_about_access): Altered function. + * cp-tree.h (complain_about_access): Changed parameters of function. + (get_parent_with_private_access): Declared new function. + * search.c (get_parent_with_private_access): Defined new function. + * semantics.c (enforce_access): Modified function. + * typeck.c (complain_about_unrecognized_member): Updated function + arguments in complain_about_access. + +2021-01-23 Patrick Palka + + PR c++/97399 + * cp-tree.h (shared_member_p): Adjust declaration. + * parser.c (cp_parser_init_declarator): If the storage class + specifier is sc_static, pass true for static_p to + cp_parser_declarator. + (cp_parser_direct_declarator): Don't do inject_this_parm when + the declarator is a friend. + * search.c (shared_member_p): Change return type to bool and + adjust function body accordingly. Return false for a dependent + USING_DECL instead of aborting. + * semantics.c (finish_qualified_id_expr): Rely on shared_member_p + even when type-dependent. + +2021-01-22 Marek Polacek + + PR c++/96623 + * parser.c (inject_parm_decls): Remove a redundant assignment. + (cp_parser_class_specifier_1): Clear current_class_{ptr,ref} + before calling inject_parm_decls. + +2021-01-22 Jason Merrill + + PR c++/98744 + * call.c (make_base_init_ok): Use DECL_HAS_VTT_PARM_P. + +2021-01-22 Jakub Jelinek + + PR sanitizer/95693 + * init.c (build_zero_init_1): Revert the 2018-03-06 change to + return build_zero_cst for reference types. + * typeck2.c (process_init_constructor_record): Instead call + build_zero_cst here during error recovery instead of build_zero_init. + +2021-01-22 Marek Polacek + + PR c++/98545 + * mangle.c (write_member_name): Emit abi_warn_or_compat_version_crosses + warnings regardless of abi_version_at_least. + (write_expression): When the expression is a dependent name + and an operator name, write "on" before writing its name. + +2021-01-22 Marek Polacek + + PR c++/97966 + * pt.c (instantiate_class_template_1): Instantiate members + marked with attribute used only after we're done instantiating + the class. + +2021-01-21 Patrick Palka + + PR c++/71879 + * semantics.c (finish_decltype_type): Set up a cp_unevaluated + sentinel at the start of the function. Remove a now-redundant + manual adjustment of cp_unevaluated_operand. + +2021-01-21 Nathan Sidwell + + PR c++/98624 + * module.cc (depset::hash::find_dependencies): Add + module arg. + (trees_out::core_vals): Check state before calling + write_location. + (sort_cluster, module_state::write): Adjust + find_dependencies call. + +2021-01-21 Jakub Jelinek + + PR c++/98672 + * constexpr.c (check_for_return_continue_data): Add break_stmt member. + (check_for_return_continue): Also look for BREAK_STMT. Handle + SWITCH_STMT by ignoring break_stmt from its body. + (potential_constant_expression_1) , + : If the condition isn't constant true, check if + the loop body can contain a return stmt. + : Adjust check_for_return_continue_data initializer. + : If recursion with tf_none is successful, + merge *jump_target from the branches - returns with highest priority, + breaks or continues lower. If then branch is potentially constant and + doesn't return, check the else branch if it could return, break or + continue. + +2021-01-21 Nathan Sidwell + + PR c++/98530 + * name-lookup.c (lookup_class_binding): Rearrange a stat-hack. + +2021-01-20 Nathan Sidwell + + * module.cc (bytes_in::i, bytes_in::wi): Avoid left shift of + signed type. + +2021-01-20 Patrick Palka + + PR c++/95434 + * pt.c (tsubst) : If tsubsting + CLASS_PLACEHOLDER_TEMPLATE yields a TEMPLATE_TEMPLATE_PARM, + adjust to its TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. + +2021-01-20 Patrick Palka + + PR c++/82613 + * parser.c (cp_parser_class_head): Defer access checking when + parsing the base-clause until all bases are seen and attached + to the class type. + * pt.c (instantiate_class_template): Likewise when substituting + into dependent bases. + +2021-01-20 Jakub Jelinek + + PR c++/98742 + * semantics.c (finish_omp_clauses) : If + error_operand_p, remove clause without further checking. Check + for non-NULL TYPE_NAME. + +2021-01-19 Marek Polacek + + PR c++/98659 + * pt.c (maybe_instantiate_noexcept): Return false if FN is + error_mark_node. + +2021-01-19 Marek Polacek + + PR c++/98687 + * name-lookup.c (push_using_decl_bindings): New, broken out of... + (finish_nonmember_using_decl): ...here. + * name-lookup.h (push_using_decl_bindings): Update declaration. + * pt.c (tsubst_expr): Update the call to push_using_decl_bindings. + +2021-01-19 Patrick Palka + + PR c++/41437 + PR c++/58993 + * search.c (friend_accessible_p): If scope is a hidden friend + defined inside a dependent class, consider access from the + class. + * parser.c (cp_parser_late_parsing_for_member): Don't push a + dk_no_check access state. + +2021-01-19 Marek Polacek + + PR c++/98333 + * parser.c (cp_parser_class_specifier_1): Perform late-parsing + of NSDMIs before late-parsing of noexcept-specifiers. + +2021-01-19 Nathan Sidwell + + * module.cc (identifier): Merge overloads. + +2021-01-19 Nathan Sidwell + + PR c++/98624 + * module.cc (trees_out::write_location): Make static. + +2021-01-16 Kwok Cheung Yeung + + * parser.c (cp_parser_omp_clause_detach): New. + (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH. + (OMP_TASK_CLAUSE_MASK): Add mask for PRAGMA_OMP_CLAUSE_DETACH. + * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_DETACH clause. + * semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_DETACH clause. + Prevent use of detach with mergeable and overriding the data sharing + mode of the event handle. + +2021-01-15 Nathan Sidwell + + PR c++/98538 + * tree.c (cp_build_qualified_type_real): Propagate an array's + dependentness to the copy, if known. + +2021-01-15 Jason Merrill + + PR c++/98642 + * call.c (unsafe_return_slot_p): Return int. + (init_by_return_slot_p): Split out from... + (unsafe_copy_elision_p): ...here. + (unsafe_copy_elision_p_opt): New name for old meaning. + (build_over_call): Adjust. + (make_safe_copy_elision): New. + * typeck2.c (split_nonconstant_init_1): Elide copy from safe + list-initialization. + * cp-tree.h: Adjust. + +2021-01-15 Jason Merrill + + * call.c (base_ctor_for, make_base_init_ok): New. + (build_over_call): Use make_base_init_ok. + +2021-01-15 Jason Merrill + + PR c++/63707 + * tree.c (build_vec_init_expr): Don't call build_vec_init_elt + if we got a CONSTRUCTOR. + +2021-01-15 Nathan Sidwell + + PR c++/98591 + * lang-specs.h: Fix handling of -fmodule-only with -fsyntax-only. + +2021-01-14 Jason Merrill + + * typeck2.c (process_init_constructor_record): Use fldtype + variable consistently. + +2021-01-14 Nathan Sidwell + + PR c++/98372 + * tree.c (cp_tree_equal): Correct map_context logic. + +2021-01-13 Marek Polacek + + PR c++/98231 + * name-lookup.c (push_using_decl_bindings): New. + * name-lookup.h (push_using_decl_bindings): Declare. + * pt.c (tsubst_expr): Call push_using_decl_bindings. + +2021-01-13 Nathan Sidwell + + PR c++/98626 + * module.cc (module_add_import_initializers): Pass a + zero-element argument vector. + +2021-01-12 Patrick Palka + + PR c++/98611 + * tree.c (cp_walk_subtrees) : Visit + the template of a CTAD placeholder. + +2021-01-12 Marek Polacek + + PR c++/98620 + * typeck2.c (process_init_constructor_record): Don't emit + -Wmissing-field-initializers warnings in unevaluated contexts. + +2021-01-11 Jakub Jelinek + + PR c++/98481 + * class.c (find_abi_tags_r): Set *walk_subtrees to 2 instead of 1 + for types. + (mark_abi_tags_r): Likewise. + * decl2.c (min_vis_r): Likewise. + * tree.c (cp_walk_subtrees): If *walk_subtrees_p is 2, look through + typedefs. + +2021-01-08 Patrick Palka + + PR c++/98551 + * constexpr.c (cxx_eval_call_expression): Check CLASS_TYPE_P + instead of AGGREGATE_TYPE_P before calling replace_result_decl. + +2021-01-08 Patrick Palka + + PR c++/98515 + * semantics.c (check_accessibility_of_qualified_id): Punt if + we're checking access of a scoped non-static member inside a + class template. + +2021-01-07 Jakub Jelinek + + PR c++/98329 + * pt.c (tsubst_copy) : Don't call + cp_build_bit_cast here, instead just build_min a BIT_CAST_EXPR and set + its location. + (tsubst_copy_and_build): Handle BIT_CAST_EXPR. + +2021-01-07 Marek Polacek + + PR c++/98441 + * decl.c (grokdeclarator): Move the !funcdecl_p check inside the + !late_return_type block. + +2021-01-07 Jason Merrill + + * constexpr.c (cxx_bind_parameters_in_call): Add comment. + (cxx_eval_store_expression): Add comment. + +2021-01-07 Jason Merrill + + * call.c (has_next): Factor out from... + (next_conversion): ...here. + (strip_standard_conversion): And here. + (is_subseq): And here. + (build_conv): Check it. + (standard_conversion): Don't call build_conv + for ck_identity. + +2021-01-06 Martin Sebor + + PR c++/95768 + * error.c (dump_expr): Call c_pretty_printer::unary_expression. + +2021-01-05 Patrick Palka + + * pt.c (unify) : After walking into + the type of the NTTP, substitute into the type again. If the + type is still dependent, don't unify the NTTP. + +2021-01-05 Jakub Jelinek + + * Make-lang.in (cc1plus-checksum, cc1plus$(exeext): Add + $(CODYLIB) after $(BACKEND). + +2021-01-05 Jakub Jelinek + + PR c++/98469 + * constexpr.c (cxx_eval_constant_expression) : + Punt if lval is true. + * semantics.c (cp_build_bit_cast): Call get_target_expr_sfinae on + the result if it has a class type. + +2021-01-05 Marek Polacek + + PR c++/82099 + * pt.c (resolve_overloaded_unification): Call + maybe_instantiate_noexcept after instantiating the function + decl. + +2021-01-05 Nathan Sidwell + + * parser.c (cp_parser_module_declaration): Alter diagnostic + text to say where is permissable. + +2021-01-05 Rainer Orth + + PR c++/98316 + * Make-lang.in (cc1plus$(exeext)): Add $(CODYLIB), $(NETLIBS). + +2021-01-02 Jan Hubicka + + * cp-tree.h (cp_tree_c_finish_parsing): Declare. + * decl2.c (c_parse_final_cleanups): Call cp_tree_c_finish_parsing. + * tree.c (cp_tree_c_finish_parsing): New function. + +2021-01-01 Jakub Jelinek + + * ChangeLog-2020: Rotate ChangeLog. New file. + +Copyright (C) 2021 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/d/ChangeLog-2021 b/gcc/d/ChangeLog-2021 new file mode 100644 index 0000000..5a7c0b7 --- /dev/null +++ b/gcc/d/ChangeLog-2021 @@ -0,0 +1,1068 @@ +2021-12-28 Martin Liska + + * gdc.texi: Use one more https. + +2021-12-28 Martin Liska + + * gdc.texi: Replace http:// with https. + +2021-12-20 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd ad8412530. + * expr.cc (ExprVisitor::visit (DeleteExp *)): Remove code generation + of _d_delstruct. + * runtime.def (DELSTRUCT): Remove. + +2021-12-15 Iain Buclaw + + * d-lang.cc (d_init_options): Set default -fextern-std= to C++17. + * dmd/MERGE: Merge upstream dmd 93108bb9e. + * gdc.texi (Runtime Options): Document the default for -fextern-std=. + +2021-12-10 Iain Buclaw + + PR d/103529 + * dmd/MERGE: Merge upstream dmd 3982604c5. + * Make-lang.in (D_FRONTEND_OBJS): Add d/root-optional.o. + * d-attribs.cc (build_attributes): Update for new front-end interface. + * d-codegen.cc (d_build_call): Likewise. + * d-compiler.cc (Compiler::paintAsType): Likewise. + * d-lang.cc (d_handle_option): Remove OPT_fpreview_intpromote, add + handling of OPT_frevert_intpromote. + * d-port.cc (Port::valcpy): Assert buffer is aligned. + * d-target.cc (Target::isVectorOpSupported): Update for new front-end + interface. + * decl.cc (layout_class_initializer): Likewise. + * expr.cc (lvalue_p): Likewise. + (binop_assignment): Likewise. + (ExprVisitor::visit): Likewise. + (ExprVisitor::visit (AssignExp *)): Remove generation of _d_arrayctor + and _d_arraysetctor library helpers. + (ExprVisitor::visit (VarExp *)): Support __traits(initSymbol). + * intrinsics.cc (expand_intrinsic_rotate): Update for new front-end + interface. + * lang.opt (fpreview=intpromote): Remove. + (frevert=intpromote): New. + * runtime.def (ARRAYCTOR): Remove. + (ARRAYSETCTOR): Remove. + * toir.cc (IRVisitor::visit): Update for new front-end interface. + * types.cc (layout_aggregate_members): Likewise. + * dmd/root/optional.d: New file. + * dmd/root/optional.h: New file. + +2021-12-10 Iain Buclaw + + * decl.cc (get_symbol_decl): Align methods to MINIMUM_METHOD_BOUNDARY. + +2021-12-09 Martin Liska + + * expr.cc: Call memcpy only when length != 0. + +2021-12-08 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd 568496d5b. + * Make-lang.in (D_FRONTEND_OBJS): Add d/common-file.o, + d/common-outbuffer.o, d/common-string.o, d/file_manager.o, + d/importc.o. Remove d/root-outbuffer.o. + (d/common-%.o): New recipe. + * d-builtins.cc (build_frontend_type): Update for new front-end + interface. + (d_build_d_type_nodes): Set noreturn_type_node. + * d-codegen.cc (d_build_call): Don't call function if one of the + arguments is type 'noreturn'. + (build_vthis_function): Propagate TYPE_QUAL_VOLATILE from original + function type. + * d-frontend.cc (eval_builtin): Update signature. + (getTypeInfoType): Likewise. + (toObjFile): New function. + * d-gimplify.cc (d_gimplify_call_expr): Always evaluate arguments from + left to right. + * d-lang.cc (d_handle_option): Handle OPT_ftransition_in. + (d_parse_file): Don't generate D main if it is declared in user code. + * d-tree.h (CALL_EXPR_ARGS_ORDERED): Remove. + (enum d_tree_index): Add DTI_BOTTOM_TYPE. + (noreturn_type_node): New. + * decl.cc (apply_pragma_crt): Remove. + (DeclVisitor::visit): Update for new front-end interface. + (DeclVisitor::visit (PragmaDeclaration *)): Don't handle + crt_constructor and crt_destructor pragmas. + (DeclVisitor::visit (VarDeclaration *)): Don't generate declarations + of type 'noreturn'. + (DeclVisitor::visit (FuncDeclaration *)): Stop adding parameters when + 'noreturn' type has been encountered. + (get_symbol_decl): Set DECL_STATIC_CONSTRUCTOR and + DECL_STATIC_DESTRUCTOR on decl node if requested. + (aggregate_initializer_decl): Update for new front-end interface. + * expr.cc (ExprVisitor::visit (CallExp *)): Always use the 'this' + object as the result of calling any constructor function. + (ExprVisitor::visit): Update for new front-end interface. + * gdc.texi (Runtime Options): Document -fmain and -ftransition=in. + * lang.opt (ftransition=in): New option. + * modules.cc (get_internal_fn): Update for new front-end interface. + * types.cc (TypeVisitor::visit): Likewise. + (TypeVisitor::visit (TypeNoreturn *)): Return noreturn_type_node. + (TypeVisitor::visit (TypeFunction *)): Stop adding parameters when + 'notreturn' type has been encountered. Qualify function types that + return 'noreturn' as TYPE_QUAL_VOLATILE. + +2021-12-02 Iain Buclaw + + PR d/103520 + * d-frontend.h (gc_disable): Declare. + * d-lang.cc (d_init_options): Disable the D runtime garbage collector + after initializing. + +2021-12-02 Iain Buclaw + + * Make-lang.in (D_FRONTEND_OBJS): Prefix object files from the root + package with root-. + (d/root-%.o): New recipe. + +2021-12-01 Iain Buclaw + + * d-spec.cc (lang_specific_driver): Set SKIPOPT on -static-libstdc++ + and -static-libphobos only when target supports LD_STATIC_DYNAMIC. + Remove generate_option to re-add -static-libstdc++. + +2021-12-01 Iain Buclaw + + * gdc.texi (Runtime Options): Document -fcheckaction=, -fextern-std=, + -fpreview=, -frevert=. + (Code Generation): Document -fdump-c++-spec=, -fdump-c++-spec-verbose, + -fsave-mixins=. + (Warnings): Update list of supported -ftransitions=. + +2021-11-30 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd b8384668f. + * Make-lang.in (d-warn): Use strict warnings. + (DMD_WARN_CXXFLAGS): Remove. + (DMD_COMPILE): Remove. + (CHECKING_DFLAGS): Define. + (WARN_DFLAGS): Define. + (ALL_DFLAGS): Define. + (DCOMPILE.base): Define. + (DCOMPILE): Define. + (DPOSTCOMPILE): Define. + (DLINKER): Define. + (DLLINKER): Define. + (D_FRONTEND_OBJS): Add new dmd front-end objects. + (D_GENERATED_SRCS): Remove. + (D_GENERATED_OBJS): Remove. + (D_ALL_OBJS): Remove D_GENERATED_OBJS. + (d21$(exeext)): Build using DLLINKER and -static-libphobos. + (d.tags): Remove dmd/*.c and dmd/root/*.c. + (d.mostlyclean): Remove D_GENERATED_SRCS, d/idgen$(build_exeext), + d/impcnvgen$(build_exeext). + (D_INCLUDES): Include $(srcdir)/d/dmd/res. + (CFLAGS-d/id.o): Remove. + (CFLAGS-d/impcnvtab.o): Remove. + (d/%.o): Build using DCOMPILE and DPOSTCOMPILE. Update dependencies + from d/dmd/%.c to d/dmd/%.d. + (d/idgen$(build_exeext)): Remove. + (d/impcnvgen$(build_exeext)): Remove. + (d/id.c): Remove. + (d/id.h): Remove. + (d/impcnvtab.c): Remove. + (d/%.dmdgen.o): Remove. + (D_SYSTEM_H): Remove. + (d/idgen.dmdgen.o): Remove. + (d/impcnvgen.dmdgen.o): Remove. + * config-lang.in (boot_language): New variable. + * d-attribs.cc: Include dmd/expression.h. + * d-builtins.cc: Include d-frontend.h. + (build_frontend_type): Update for new front-end interface. + (d_eval_constant_expression): Likewise. + (d_build_builtins_module): Likewise. + (maybe_set_builtin_1): Likewise. + (d_build_d_type_nodes): Likewise. + * d-codegen.cc (d_decl_context): Likewise. + (declaration_reference_p): Likewise. + (declaration_type): Likewise. + (parameter_reference_p): Likewise. + (parameter_type): Likewise. + (get_array_length): Likewise. + (build_delegate_cst): Likewise. + (build_typeof_null_value): Likewise. + (identity_compare_p): Likewise. + (lower_struct_comparison): Likewise. + (build_filename_from_loc): Likewise. + (build_assert_call): Remove LIBCALL_SWITCH_ERROR. + (build_bounds_index_condition): Call LIBCALL_ARRAYBOUNDS_INDEXP on + bounds error. + (build_bounds_slice_condition): Call LIBCALL_ARRAYBOUNDS_SLICEP on + bounds error. + (array_bounds_check): Update for new front-end interface. + (checkaction_trap_p): Handle CHECKACTION_context. + (get_function_type): Update for new front-end interface. + (d_build_call): Likewise. + * d-compiler.cc: Remove include of dmd/scope.h. + (Compiler::genCmain): Remove. + (Compiler::paintAsType): Update for new front-end interface. + (Compiler::onParseModule): Likewise. + * d-convert.cc (convert_expr): Remove call to LIBCALL_ARRAYCAST. + (convert_for_rvalue): Update for new front-end interface. + (convert_for_assignment): Likewise. + (convert_for_condition): Likewise. + (d_array_convert): Likewise. + * d-diagnostic.cc (error): Remove. + (errorSupplemental): Remove. + (warning): Remove. + (warningSupplemental): Remove. + (deprecation): Remove. + (deprecationSupplemental): Remove. + (message): Remove. + (vtip): New. + * d-frontend.cc (global): Remove. + (Global::_init): Remove. + (Global::startGagging): Remove. + (Global::endGagging): Remove. + (Global::increaseErrorCount): Remove. + (Loc::Loc): Remove. + (Loc::toChars): Remove. + (Loc::equals): Remove. + (isBuiltin): Update for new front-end interface. + (eval_builtin): Likewise. + (getTypeInfoType): Likewise. + (inlineCopy): Remove. + * d-incpath.cc: Include d-frontend.h. + (add_globalpaths): Call d_gc_malloc to allocate Strings. + (add_filepaths): Likewise. + * d-lang.cc: Include dmd/id.h, dmd/root/file.h, d-frontend.h. Remove + include of dmd/mars.h, id.h. + (entrypoint_module): Remove. + (entrypoint_root_module): Remove. + (deps_write_string): Update for new front-end interface. + (deps_write): Likewise. + (d_init_options): Call rt_init. Remove setting global params that are + default initialized by the front-end. + (d_handle_option): Handle OPT_fcheckaction_, OPT_fdump_c___spec_, + OPT_fdump_c___spec_verbose, OPT_fextern_std_, OPT_fpreview, + OPT_revert, OPT_fsave_mixins_, and OPT_ftransition. + (d_post_options): Propagate dip1021 and dip1000 preview flags to + dip25, and flag_diagnostics_show_caret to printErrorContext. + (d_add_entrypoint_module): Remove. + (d_parse_file): Update for new front-end interface. + (d_type_promotes_to): Likewise. + (d_types_compatible_p): Likewise. + * d-longdouble.cc (CTFloat::zero): Remove. + (CTFloat::one): Remove. + (CTFloat::minusone): Remove. + (CTFloat::half): Remove. + * d-system.h (POSIX): Remove. + (realpath): Remove. + (isalpha): Remove. + (isalnum): Remove. + (isdigit): Remove. + (islower): Remove. + (isprint): Remove. + (isspace): Remove. + (isupper): Remove. + (isxdigit): Remove. + (tolower): Remove. + (_mkdir): Remove. + (INT32_MAX): Remove. + (INT32_MIN): Remove. + (INT64_MIN): Remove. + (UINT32_MAX): Remove. + (UINT64_MAX): Remove. + * d-target.cc: Include calls.h. + (target): Remove. + (define_float_constants): Remove initialization of snan. + (Target::_init): Update for new front-end interface. + (Target::isVectorTypeSupported): Likewise. + (Target::isVectorOpSupported): Remove cases for unordered operators. + (TargetCPP::typeMangle): Update for new front-end interface. + (TargetCPP::parameterType): Likewise. + (Target::systemLinkage): Likewise. + (Target::isReturnOnStack): Likewise. + (Target::isCalleeDestroyingArgs): Define. + (Target::preferPassByRef): Define. + * d-tree.h (d_add_entrypoint_module): Remove. + * decl.cc (gcc_attribute_p): Update for new front-end interface. + (apply_pragma_crt): Define. + (DeclVisitor::visit(PragmaDeclaration *)): Handle pragmas + crt_constructor and crt_destructor. + (DeclVisitor::visit(TemplateDeclaration *)): Update for new front-end + interface. + (DeclVisitor::visit): Likewise. + (DeclVisitor::finish_vtable): Likewise. + (get_symbol_decl): Error if template has more than one nesting + context. Update for new front-end interface. + (make_thunk): Update for new front-end interface. + (get_vtable_decl): Likewise. + * expr.cc (ExprVisitor::visit): Likewise. + (build_return_dtor): Likewise. + * imports.cc (ImportVisitor::visit): Likewise. + * intrinsics.cc: Include dmd/expression.h. Remove include of + dmd/mangle.h. + (maybe_set_intrinsic): Update for new front-end interface. + * intrinsics.def (INTRINSIC_ROL): Update intrinsic signature. + (INTRINSIC_ROR): Likewise. + (INTRINSIC_ROR_TIARG): Likewise. + (INTRINSIC_TOPREC): Likewise. + (INTRINSIC_TOPRECL): Likewise. + (INTRINSIC_TAN): Update intrinsic module and signature. + (INTRINSIC_ISNAN): Likewise. + (INTRINSIC_ISFINITE): Likewise. + (INTRINSIC_COPYSIGN): Define intrinsic. + (INTRINSIC_COPYSIGNI): Define intrinsic. + (INTRINSIC_EXP): Update intrinsic module. + (INTRINSIC_EXPM1): Likewise. + (INTRINSIC_EXP2): Likewise. + (INTRINSIC_LOG): Likewise. + (INTRINSIC_LOG2): Likewise. + (INTRINSIC_LOG10): Likewise. + (INTRINSIC_POW): Likewise. + (INTRINSIC_ROUND): Likewise. + (INTRINSIC_FLOORF): Likewise. + (INTRINSIC_FLOOR): Likewise. + (INTRINSIC_FLOORL): Likewise. + (INTRINSIC_CEILF): Likewise. + (INTRINSIC_CEIL): Likewise. + (INTRINSIC_CEILL): Likewise. + (INTRINSIC_TRUNC): Likewise. + (INTRINSIC_FMIN): Likewise. + (INTRINSIC_FMAX): Likewise. + (INTRINSIC_FMA): Likewise. + (INTRINSIC_VA_ARG): Update intrinsic signature. + (INTRINSIC_VASTART): Likewise. + * lang.opt (fcheck=): Add alternate aliases for contract switches. + (fcheckaction=): New option. + (check_action): New Enum and EnumValue entries. + (fdump-c++-spec-verbose): New option. + (fdump-c++-spec=): New option. + (fextern-std=): New option. + (extern_stdcpp): New Enum and EnumValue entries + (fpreview=): New options. + (frevert=): New options. + (fsave-mixins): New option. + (ftransition=): Update options. + * modules.cc (get_internal_fn): Replace Prot with Visibility. + (build_internal_fn): Likewise. + (build_dso_cdtor_fn): Likewise. + (build_module_tree): Remove check for __entrypoint module. + * runtime.def (P5): Define. + (ARRAYBOUNDS_SLICEP): Define. + (ARRAYBOUNDS_INDEXP): Define. + (NEWTHROW): Define. + (ADCMP2): Remove. + (ARRAYCAST): Remove. + (SWITCH_STRING): Remove. + (SWITCH_USTRING): Remove. + (SWITCH_DSTRING): Remove. + (SWITCH_ERROR): Remove. + * toir.cc (IRVisitor::visit): Update for new front-end interface. + (IRVisitor::check_previous_goto): Remove checks for case and default + statements. + (IRVisitor::visit(SwitchStatement *)): Remove handling of string + switch conditions. + * typeinfo.cc: Include d-frontend.h. + (get_typeinfo_kind): Update for new front-end interface. + (make_frontend_typeinfo): Likewise. + (TypeInfoVisitor::visit): Likewise. + (builtin_typeinfo_p): Likewise. + (get_typeinfo_decl): Likewise. + (build_typeinfo): Likewise. + * types.cc (valist_array_p): Likewise. + (make_array_type): Likewise. + (merge_aggregate_types): Likewise. + (TypeVisitor::visit(TypeBasic *)): Likewise. + (TypeVisitor::visit(TypeFunction *)): Likewise. + (TypeVisitor::visit(TypeStruct *)): Update comment. + * verstr.h: Removed. + * d-frontend.h: New file. + +2021-11-29 Eric Gallager + + PR other/103021 + * Make-lang.in: Use ETAGS variable in TAGS target. + +2021-11-28 Martin Liska + + * d-attribs.cc (parse_optimize_options): Fix thinko. + +2021-11-26 Martin Liska + + * d-attribs.cc (parse_optimize_options): Check index before + accessing cl_options. + +2021-11-18 Iain Buclaw + + * decl.cc (d_finish_decl): Use HOST_WIDE_INT for type size + temporaries. + +2021-10-22 Eric Gallager + + PR other/102663 + * Make-lang.in: Allow dvi-formatted documentation + to be installed. + +2021-10-08 Martin Liska + + * d-lang.cc (d_post_options): Use new macro + OPTION_SET_P. + +2021-10-05 Iain Sandoe + + * d-spec.cc (lang_specific_driver): Push the -static-libstdc++ + option back onto the command line for targets without support + for -Bstatic/dynamic. + +2021-10-04 Iain Buclaw + + PR d/102574 + * d-spec.cc (lang_specific_driver): Link libstdc++ statically if + -static-libstdc++ was given on command-line. + +2021-10-04 Iain Buclaw + + * d-attribs.cc (d_handle_optimize_attribute): Save target node before + calling parse_optimize_options in case it changes. + +2021-09-12 Iain Buclaw + + PR d/102185 + * d-builtins.cc (d_eval_constant_expression): Don't include + terminating null pointer in string expression conversion. + +2021-08-29 Iain Buclaw + + * d-codegen.cc: Include dmd/module.h. + (build_filename_from_loc): New function. + (d_assert_call): Rename to... + (build_assert_call): ...this. + (build_array_bounds_call): Call arrayboundsp variant of the array + bounds failure callback. + (build_bounds_condition): Rename to... + (build_bounds_index_condition): ...this. Update signature. + (build_bounds_slice_condition): New function. + (checkaction_trap_p): New function. + (d_assert_call): Call assertp variant of assert failure callback. + * d-tree.h (class IndexExp): Declare. + (class SliceExp): Declare. + (build_bounds_condition): Remove. + (build_assert_call): Declare. + (build_bounds_index_condition): Declare. + (build_bounds_slice_condition): Declare. + (checkaction_trap_p): Declare. + (d_assert_call): Remove. + * expr.cc (ExprVisitor::visit(IndexExp *)): Call + build_bounds_index_condition. + (ExprVisitor::visit(SliceExp *)): Call build_bounds_slice_condition. + (ExprVisitor::visit(AssertExp *)): Update setting of libcall. + * runtime.cc (enum d_libcall_type): Add LCT_IMMUTABLE_CHARPTR. + (get_libcall_type): Handle LCT_IMMUTABLE_CHARPTR. + * runtime.def (ASSERT): Rename to... + (ASSERTP): ...this. Update signature. + (UNITTEST): Rename to... + (UNITTESTP): ...this. Update signature. + (ARRAY_BOUNDS): Rename to... + (ARRAYBOUNDSP): ...this. Updates signature. + * toir.cc (IRVisitor::visit(SwitchErrorStatement *)): Update call. + +2021-08-29 Iain Buclaw + + * typeinfo.cc (class TypeInfoVisitor::layout_base): Update comment. + +2021-08-29 Iain Buclaw + + * typeinfo.cc (TypeInfoVisitor::visit(TypeInfoClassDeclaration *)): + Use int to store type flags. + (TypeInfoVisitor::visit(TypeInfoStructDeclaration *)): Likewise. + +2021-08-29 Iain Buclaw + + * types.cc (TypeVisitor::visit(TypeEnum*)): Get wchar_t type from + build_frontend_type. + +2021-08-29 Iain Buclaw + + * d-convert.cc (convert_for_rvalue): Convert switch statement into if + condition. + +2021-08-29 Iain Buclaw + + * d-builtins.cc (d_init_versions): Use POINTER_SIZE for testing + whether to predefine D_LP64. + +2021-08-29 Iain Buclaw + + PR d/102094 + * d-codegen.cc (build_frame_type): Set TYPE_CXX_ODR_P. + +2021-08-25 Lewis Hyatt + + PR other/93067 + * d-lang.cc (d_input_charset_callback): New function. + (d_init): Call new function + diagnostic_initialize_input_context(). + +2021-07-30 Iain Buclaw + + * expr.cc (binary_op): Remove dead code. + +2021-07-30 Iain Buclaw + + * typeinfo.cc (TypeInfoVisitor::visit (TypeInfoClassDeclaration *)): + Always layout initializer for the m_RTInfo field. + +2021-07-30 Iain Buclaw + + * expr.cc (ExprVisitor::visit (AssertExp *)): Don't generate + PREDICT_EXPR. + +2021-07-30 Iain Buclaw + + * expr.cc (ExprVisitor::visit (AssignExp *)): Clarify comment + for generating static array assignment with literal. + +2021-07-30 Iain Buclaw + + * decl.cc (enum_initializer_decl): Only handle named enums. + +2021-07-30 Iain Buclaw + + * decl.cc (make_thunk): Set COMDAT and visibility of thunks only if + they are public. + +2021-07-30 Iain Buclaw + + * decl.cc (DeclVisitor::visit (StructDeclaration *)): Don't use sinit + for declaration directly. + (DeclVisitor::visit (ClassDeclaration *)): Likewise. + (aggregate_initializer_decl): Likewise. Set sinit after creating. + +2021-07-30 Iain Buclaw + + * d-builtins.cc (build_frontend_type): Use Identifier::idPool to + generate anonymous field name. + +2021-07-30 Iain Buclaw + + * types.cc (layout_aggregate_type): Call hasMonitor. + * typeinfo.cc (TypeInfoVisitor::layout_base): Likewise. + (layout_cpp_typeinfo): Likewise. Don't emit vtable unless + have_typeinfo_p. + +2021-07-30 Iain Buclaw + + * d-lang.cc (deps_add_target): Insert null terminator in buffer. + (deps_write): Likewise. + (d_parse_file): Likewise. + +2021-07-30 Iain Buclaw + + * d-builtins.cc (build_frontend_type): Restore builtin_converted_decls + length on conversion failure. + +2021-07-30 Iain Buclaw + + * d-codegen.cc (d_nested_class): Rename to ... + (get_outer_function): ... this. Handle all aggregate declarations. + (d_nested_struct): Remove. + (find_this_tree): Use get_outer_function. + (get_framedecl): Likewise. + +2021-07-29 Iain Buclaw + + PR d/101672 + * typeinfo.cc (make_frontend_typeinfo): Generate Object class if it + doesn't exist. + (check_typeinfo_type): Don't warn if there's no location. + +2021-07-29 Iain Buclaw + + PR d/101664 + * expr.cc (ExprVisitor::visit (CallExp *)): Use object expression as + result for C++ constructor calls. + +2021-07-29 Iain Buclaw + + PR d/96435 + * d-convert.cc (convert_for_rvalue): New function. + * d-tree.h (convert_for_rvalue): Declare. + * expr.cc (ExprVisitor::visit (CastExp *)): Use convert_for_rvalue. + (build_return_dtor): Likewise. + +2021-07-29 Iain Buclaw + + PR d/101657 + * d-lang.cc (d_parse_file): Remove generated D header files on error. + +2021-07-29 Iain Buclaw + + PR d/101656 + * d-diagnostic.cc (escape_d_format): Don't escape quoted format + strings. + +2021-07-28 Iain Buclaw + + PR d/101640 + * expr.cc (binary_op): Use build2 instead of fold_build2. + +2021-07-28 Iain Buclaw + + PR d/101490 + * dmd/MERGE: Merge upstream dmd 27e388b4c. + * d-codegen.cc (build_array_index): Handle void arrays same as byte. + * d-convert.cc (convert_expr): Handle converting to zero-sized arrays. + +2021-07-28 Iain Buclaw + + PR d/101441 + * dmd/MERGE: Merge upstream dmd f8c1ca928. + +2021-07-28 Iain Buclaw + + PR d/101127 + * d-builtins.cc (d_builtin_function_ext_scope): New function. + * d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Define. + * d-tree.h (d_builtin_function_ext_scope): Declare. + +2021-07-28 Iain Buclaw + + PR d/101619 + * dmd/MERGE: Merge upstream dmd 1d8386a63. + +2021-07-03 Iain Buclaw + + PR d/101273 + * toir.cc (IRVisitor::visit (ReturnStatement *)): Detect returns that + use a temporary, and replace with return value. + +2021-07-02 Iain Buclaw + + PR d/101282 + * d-codegen.cc (build_assign): Force target_expr on RHS for non-POD + assignment expressions. + +2021-06-11 Iain Buclaw + + PR d/100999 + * dmd/MERGE: Merge upstream dmd 7a3808254. + +2021-06-10 Iain Buclaw + + PR d/100967 + * d-frontend.cc (getTypeInfoType): Move TypeInfo checks to + check_typeinfo_type and call new function. + * d-tree.h (check_typeinfo_type): Declare. + * typeinfo.cc: Include dmd/scope.h. + (create_frontend_tinfo_types): Generate front-end types even if Object + is missing. + (build_typeinfo): Move TypeInfo checks to check_typeinfo_type and call + new function. + (check_typeinfo_type): New function. + +2021-06-09 Iain Buclaw + + PR d/100964 + * dmd/MERGE: Merge upstream dmd 4a4e46a6f. + +2021-06-09 Iain Buclaw + + PR d/100935 + * dmd/MERGE: Merge upstream dmd f3fdeb578. + +2021-06-04 Iain Buclaw + + PR d/100882 + * d-codegen.cc (build_assign): Construct initializations inside + TARGET_EXPR_INITIAL. + (compound_expr): Remove intermediate expressions that have no + side-effects. + (return_expr): Construct returns inside TARGET_EXPR_INITIAL. + * expr.cc (ExprVisitor::visit (CallExp *)): Remove useless assignment + to TARGET_EXPR_SLOT. + +2021-05-18 Iain Buclaw + + * d-incpath.cc (prefixed_path): Use filename_ncmp instead of strncmp. + +2021-05-18 Iain Buclaw + + * types.cc (TypeVisitor::visit (TypeEnum *)): Use startswith function + instead of strncmp. + +2021-05-18 Iain Buclaw + + * dmd/dinterpret.c (evaluateIfBuiltin): Revert last change. + * dmd/dmangle.c: Likewise. + * dmd/hdrgen.c: Likewise. + * dmd/identifier.c (Identifier::toHChars2): Likewise. + +2021-05-10 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd b7d146c4c. + +2021-05-10 Martin Liska + + * d-builtins.cc (do_build_builtin_fn): Use startswith + function instead of strncmp. + * dmd/dinterpret.c (evaluateIfBuiltin): Likewise. + * dmd/dmangle.c: Likewise. + * dmd/hdrgen.c: Likewise. + * dmd/identifier.c (Identifier::toHChars2): Likewise. + +2021-04-19 Iain Buclaw + + PR d/98457 + * d-diagnostic.cc (expand_d_format): Handle escaped backticks. + (escape_d_format): New funtion. + (verror): Call escape_d_format on prefixing strings. + (vdeprecation): Likewise. + +2021-04-17 Iain Buclaw + + PR d/99914 + * d-target.def (d_templates_always_comdat): New hook. + * d-tree.h (mark_needed): Remove prototype. + * decl.cc: Include d-target.h. + (mark_needed): Rename to... + (d_mark_needed): ...this. Make static. + (set_linkage_for_decl): Put variables in comdat if + d_templates_always_comdat. + +2021-04-17 Iain Buclaw + + * d-target.cc (d_handle_target_object_format): New function. + (d_language_target_info): Add d_handle_target_object_format as handler + for objectFormat key. + (Target::getTargetInfo): Continue if handler returned NULL_TREE. + +2021-04-14 Iain Buclaw + + * d-target.cc (Target::_init): Call new targetdm hook to register OS + specific target info keys. + * d-target.def (d_register_os_target_info): New hook. + +2021-04-14 Iain Buclaw + + * d-builtins.cc (d_add_builtin_version): Remove all setting of + target-specific global.params. + * typeinfo.cc (create_typeinfo): Don't add argType fields to + TypeInfo_Struct. + +2021-04-14 Iain Buclaw + + PR d/99914 + * decl.cc (DeclVisitor::visit (StructDeclaration *)): Don't set + DECL_INSTANTIATED on static initializer declarations. + (DeclVisitor::visit (ClassDeclaration *)): Likewise. + (DeclVisitor::visit (EnumDeclaration *)): Likewise. + (d_finish_decl): Move call to set_linkage_for_decl to... + (declare_extern_var): ...here. + +2021-04-14 Iain Buclaw + + * d-target.cc (Target::_init): Call new targetdm hook to register CPU + specific target info keys. + * d-target.def (d_register_cpu_target_info): New hook. + +2021-04-14 Iain Buclaw + + * d-target.cc (Target::systemLinkage): Return LINKwindows if + d_has_stdcall_convention applies to LINKsystem. + * d-target.def (d_has_stdcall_convention): New hook. + * types.cc (TypeVisitor::visit (TypeFunction *)): Insert "stdcall" + function attribute if d_has_stdcall_convention applies to LINKwindows. + +2021-04-10 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd 0450061c8. + +2021-04-08 Iain Buclaw + + * d-attribs.cc: Include fold-const.h and opts.h. + (attr_noreturn_exclusions): Add alloc_size. + (attr_const_pure_exclusions): Likewise. + (attr_inline_exclusions): Add target_clones. + (attr_noinline_exclusions): Rename forceinline to always_inline. + (attr_target_exclusions): New array. + (attr_target_clones_exclusions): New array. + (attr_alloc_exclusions): New array. + (attr_cold_hot_exclusions): New array. + (d_langhook_common_attribute_table): Add new D attribute handlers. + (build_attributes): Update to look for gcc.attributes. Issue warning + if not given a struct literal. Handle void initialized arguments. + (handle_always_inline_attribute): Remove function. + (d_handle_noinline_attribute): Don't extract TYPE_LANG_FRONTEND. + (d_handle_forceinline_attribute): Rename to... + (d_handle_always_inline_attribute): ...this. Remove special handling. + (d_handle_flatten_attribute): Don't extract TYPE_LANG_FRONTEND. + (d_handle_target_attribute): Likewise. Warn about empty arguments. + (d_handle_target_clones_attribute): New function. + (optimize_args): New static variable. + (parse_optimize_options): New function. + (d_handle_optimize_attribute): New function. + (d_handle_noclone_attribute): Don't extract TYPE_LANG_FRONTEND. + (d_handle_alias_attribute): Remove function. + (d_handle_noicf_attribute): New function. + (d_handle_noipa_attribute): New function. + (d_handle_section_attribute): Call the handle_generic_attribute target + hook after performing target independent processing. + (d_handle_symver_attribute): New function. + (d_handle_noplt_attribute): New function. + (positional_argument): New function. + (d_handle_alloc_size_attribute): New function. + (d_handle_cold_attribute): New function. + (d_handle_restrict_attribute): New function. + (d_handle_used_attribute): New function. + * decl.cc (gcc_attribute_p): Update to look for gcc.attributes. + (get_symbol_decl): Update decl source location of old prototypes to + the new declaration being merged. + * types.cc (layout_aggregate_members): Apply user defined attributes + on fields. + +2021-04-06 Iain Buclaw + + PR d/99917 + * dmd/MERGE: Merge upstream dmd d16195406. + +2021-04-06 Iain Buclaw + + * d-codegen.cc (build_frame_type): Use Array::find to get index of + element. + +2021-04-06 Iain Buclaw + + * d-diagnostic.cc (vwarning): Increment gaggedWarnings if warning + message was suppressed. + (vdeprecation): Likewise for deprecation messages. + +2021-04-06 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd 5cc71ff83. + +2021-04-05 Iain Buclaw + + PR d/99914 + * d-lang.cc (d_init): Disable flag_weak_templates if no support for + weak or one-only symbols. + * d-tree.h (VAR_OR_FUNCTION_DECL_CHECK): New macro. + (DECL_INSTANTIATED): New macro. + (d_comdat_linkage): Remove declaration. + (d_linkonce_linkage): Remove declaration. + (set_linkage_for_decl): New declaration. + * decl.cc (DeclVisitor::visit (StructDeclaration *)): Replace call to + d_linkonce_linkage with setting DECL_INSTANTIATED. + (DeclVisitor::visit (ClassDeclaration *)): Likewise. + (DeclVisitor::visit (EnumDeclaration *)): Likewise. + (DeclVisitor::visit (InterfaceDeclaration *)): Remove call to + d_linkonce_linkage. + (get_symbol_decl): Call set_linkage_for_decl instead of + d_linkonce_linkage. + (d_finish_decl): Call set_linkage_for_decl. + (d_comdat_linkage): Made function static. Only set DECL_COMDAT for + DECL_INSTANTIATED decls. + (d_linkonce_linkage): Remove function. + (d_weak_linkage): New function. + (set_linkage_for_decl): New function. + * gdc.texi (Runtime Options): Rename -fno-weak to -fno-weak-templates, + update documentation of option. + * lang.opt (fweak): Rename option to ... + (fweak-templates): ... this. Update help string. + * modules.cc (get_internal_fn): Add Prot parameter. Set generated + function flag. + (build_internal_fn): Update call to get_internal_fn. + (build_dso_cdtor_fn): Likewise. + (register_moduleinfo): Call d_finish_decl on dso_slot_node and + dso_initialized_node. + * typeinfo.cc (TypeInfoVisitor::internal_reference): Call + set_linkage_for_decl instead of d_comdat_linkage. + (TypeInfoDeclVisitor::visit (TypeInfoDeclaration *)): Remove calls to + d_linkonce_linkage and d_comdat_linkage. + (get_cpp_typeinfo_decl): Likewise. + +2021-04-03 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd 3b808e838. + * Make-lang.in (D_FRONTEND_OBJS): Add d/chkformat.o. + * d-codegen.cc (build_struct_literal): Handle special enums. + * d-convert.cc (convert_expr): Handle noreturn type. + (convert_for_condition): Likewise. + * d-target.cc (Target::_init): Set type for wchar_t. + (TargetCPP::derivedClassOffset): New method. + (Target::libraryObjectMonitors): New method. + * decl.cc (get_symbol_decl): Set TREE_THIS_VOLATILE for functions of + type noreturn. + * toir.cc (IRVisitor::visit (ReturnStatement *)): Handle returning + noreturn types. + * types.cc (TypeVisitor::visit (TypeNoreturn *)): New method. + (TypeVisitor::visit (TypeEnum *)): Handle special enums. + +2021-03-28 Iain Buclaw + + * d-builtins.cc (d_init_versions): Predefine D_PIE if flag_pie is set. + +2021-03-28 Iain Buclaw + + * d-lang.cc (d_enum_underlying_base_type): New function. + (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Set as + d_enum_underlying_base_type. + +2021-03-28 Iain Buclaw + + * Make-lang.in (DMDGEN_COMPILE): Remove. + (d/%.dmdgen.o): Use COMPILER_FOR_BUILD and BUILD_COMPILERFLAGS to + build all D generator programs. + (D_SYSTEM_H): New macro. + (d/idgen.dmdgen.o): Add dependencies to build. + (d/impcnvgen.dmdgen.o): Likewise. + * d-system.h: Include bconfig.h if GENERATOR_FILE is defined. + +2021-03-28 Iain Buclaw + + * config-lang.in (gtfiles): Remove modules.cc. + * modules.cc (struct module_info): Remove GTY marker. + (static_ctor_list): Remove variable. + (static_dtor_list): Remove variable. + (register_moduleinfo): Directly set DECL_STATIC_CONSTRUCTOR on + dso_ctor, and DECL_STATIC_DESTRUCTOR on dso_dtor. + (d_finish_compilation): Remove static ctor/dtor handling. + +2021-03-06 Iain Buclaw + + * d-lang.cc (d_init_options_struct): Don't set default + flag_complex_method. + +2021-03-03 Iain Buclaw + + PR d/99337 + * dmd/MERGE: Merge upstream dmd a3c9bf422. + +2021-02-13 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd 7132b3537. + * Make-lang.in (D_FRONTEND_OBJS): Add d/dsymbolsem.o, d/semantic2.o, + d/semantic3.o, and d/templateparamsem.o. + * d-compiler.cc (Compiler::genCmain): Update calls to semantic + entrypoint functions. + * d-lang.cc (d_parse_file): Likewise. + * typeinfo.cc (make_frontend_typeinfo): Likewise. + +2021-02-05 Iain Buclaw + + * d-tree.h (DEF_D_INTRINSIC): Don't insert INTRINSIC_ into the + intrinsic code name. + * intrinsics.cc (DEF_D_INTRINSIC): Don't insert INTRISIC_ and + BUILT_IN_ into the intrinsic and built-in code names. + * intrinsics.def: Explicitly use full intrinsic and built-in + codes in all definitions. + +2021-02-04 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd 46133f761. + * d-builtins.cc (d_build_builtins_module): Set builtins as BUILTINgcc. + (maybe_set_builtin_1): Likewise. + * d-frontend.cc (eval_builtin): Adjust condition for early return. + * intrinsics.cc (maybe_set_intrinsic): Set intrinsics as BUILTINgcc. + (maybe_expand_intrinsic): Add case for INTRINSIC_BSWAP16. + * intrinsics.def (INTRINSIC_BT): Update signature. + (INTRINSIC_BT64): Likewise. + (INTRINSIC_BSWAP16): New intrinsic. + (INTRINSIC_VLOAD8): Update module. + (INTRINSIC_VLOAD16): Likewise. + (INTRINSIC_VLOAD32): Likewise. + (INTRINSIC_VLOAD64): Likewise. + (INTRINSIC_VSTORE8): Likewise. + (INTRINSIC_VSTORE16): Likewise. + (INTRINSIC_VSTORE32): Likewise. + (INTRINSIC_VSTORE64): Likewise. + (INTRINSIC_ADDS): Update signature. + (INTRINSIC_ADDSL): Likewise. + (INTRINSIC_ADDU): Likewise. + (INTRINSIC_ADDUL): Likewise. + (INTRINSIC_SUBS): Likewise. + (INTRINSIC_SUBSL): Likewise. + (INTRINSIC_SUBU): Likewise. + (INTRINSIC_SUBUL): Likewise. + (INTRINSIC_MULS): Likewise. + (INTRINSIC_MULSL): Likewise. + (INTRINSIC_MULU): Likewise. + (INTRINSIC_MULUI): Likewise. + (INTRINSIC_MULUL): Likewise. + (INTRINSIC_NEGS): Likewise. + (INTRINSIC_NEGSL): Likewise. + +2021-02-02 Iain Buclaw + + PR d/98921 + * dmd/MERGE: Merge upstream dmd 5e2a81d9c. + +2021-01-30 Iain Buclaw + + * typeinfo.cc (TypeInfoVisitor::visit (TypeInfoDeclaration *)): Don't + layout m_arg1 and m_arg2 fields. + +2021-01-26 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd 609c3ce2d. + * d-compiler.cc (Compiler::loadModule): Rename to ... + (Compiler::onParseModule): ... this. + (Compiler::onImport): New function. + * d-lang.cc (d_parse_file): Remove call to Compiler::loadModule. + +2021-01-21 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd 3a7ebef73. + +2021-01-11 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd 2d3d13748. + * d-lang.cc (d_handle_option): Remove OPT_ftransition_checkimports and + OPT_ftransition_import. + * gdc.texi (Warnings): Remove documentation for -ftransition=import + and -ftransition=checkimports. + * lang.opt (ftransition=checkimports): Remove. + (ftransition=import): Remove. + +2021-01-09 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd cb1106ad5. + +2021-01-09 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd 9bba772fa. + +2021-01-09 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd e598f69c0. + +2021-01-07 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd 9038e64c5. + * d-builtins.cc (build_frontend_type): Update call to + Parameter::create. + +2021-01-05 Iain Buclaw + + * dmd/MERGE: Merge upstream dmd a5c86f5b9. + * d-builtins.cc (d_eval_constant_expression): Handle ADDR_EXPR trees + created by build_string_literal. + * d-frontend.cc (retStyle): Remove function. + * d-target.cc (d_language_target_info): New variable. + (d_target_info_table): Likewise. + (Target::_init): Initialize d_target_info_table. + (Target::isReturnOnStack): New function. + (d_add_target_info_handlers): Likewise. + (d_handle_target_cpp_std): Likewise. + (d_handle_target_cpp_runtime_library): Likewise. + (Target::getTargetInfo): Likewise. + * d-target.h (struct d_target_info_spec): New type. + (d_add_target_info_handlers): Declare. + +2021-01-01 Jakub Jelinek + + * gdc.texi: Bump @copyrights-d year. + +2021-01-01 Jakub Jelinek + + * ChangeLog-2020: Rotate ChangeLog. New file. + +Copyright (C) 2021 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/fortran/ChangeLog-2021 b/gcc/fortran/ChangeLog-2021 new file mode 100644 index 0000000..04889e2 --- /dev/null +++ b/gcc/fortran/ChangeLog-2021 @@ -0,0 +1,2563 @@ +2021-12-29 Harald Anlauf + + PR fortran/102332 + * expr.c (gfc_get_variable_expr): Avoid NULL pointer dereferences + during handling of errors with invalid uses of CLASS variables. + * match.c (select_type_set_tmp): Likewise. + * primary.c (gfc_match_varspec): Likewise. + * resolve.c (resolve_variable): Likewise. + (resolve_select_type): Likewise. + +2021-12-28 Francois-Xavier Coudert + + PR fortran/103828 + * trans-decl.c (generate_local_decl): Do not call + gfc_conv_scalar_char_value(), but check the type tree. + * trans-expr.c (gfc_conv_scalar_char_value): Rename to + conv_scalar_char_value, do not alter type tree. + (gfc_conv_procedure_call): Adjust call to renamed + conv_scalar_char_value() function. + * trans-types.c (gfc_sym_type): Take care of + CHARACTER(C_CHAR), VALUE arguments. + * trans.h (gfc_conv_scalar_char_value): Remove prototype. + +2021-12-28 Martin Liska + + * gfortran.texi: Replace http:// with https. + * intrinsic.texi: Likewise. + +2021-12-22 Harald Anlauf + + PR fortran/103778 + * check.c (is_c_interoperable): A BOZ literal constant is not + interoperable. + +2021-12-22 Harald Anlauf + + PR fortran/103776 + * match.c (match_case_selector): Reject expressions in CASE + selector which are not scalar. + +2021-12-18 Harald Anlauf + + PR fortran/103412 + * check.c (gfc_check_sizeof): Reject BOZ type argument. + +2021-12-14 Harald Anlauf + + PR fortran/103717 + * frontend-passes.c (doloop_code): Prevent NULL pointer + dereference when checking for passing a do-loop variable to a + contained procedure with an interface mismatch. + +2021-12-14 Harald Anlauf + + PR fortran/103718 + PR fortran/103719 + * frontend-passes.c (doloop_contained_procedure_code): Add several + checks to prevent NULL pointer dereferences on valid and invalid + code called within do-loops. + +2021-12-14 Manfred Schwarb + + PR fortran/91497 + * simplify.c (simplify_min_max): Disable conversion warnings for + MIN1 and MAX1. + +2021-12-13 Tobias Burnus + + PR fortran/103576 + * openmp.c (is_scalar_intrinsic_expr): Fix condition. + (resolve_omp_atomic): Fix/update checks, accept compare. + * trans-openmp.c (gfc_trans_omp_atomic): Handle compare. + +2021-12-11 Harald Anlauf + + PR fortran/103606 + * resolve.c (resolve_fl_procedure): Do not access CLASS components + before class container has been built. + +2021-12-10 Harald Anlauf + + PR fortran/103418 + * check.c (variable_check): Replace previous check of procedure + dummy arguments with INTENT(IN) attribute when passed to intrinsic + procedures by gfc_check_vardef_context. + * expr.c (gfc_check_vardef_context): Correct check of INTENT(IN) + dummy arguments for the case of sub-components of a CLASS pointer. + +2021-12-08 Harald Anlauf + + PR fortran/103609 + * symbol.c (gfc_sym_get_dummy_args): Catch NULL pointer + dereference. + +2021-12-08 Harald Anlauf + + PR fortran/103610 + * array.c (spec_dimen_size): Fix simplification of SHAPE: + dimensions must be non-negative. + +2021-12-08 Chung-Lin Tang + + * trans-openmp.c (gfc_trans_omp_array_section): Do not generate + GOMP_MAP_ALWAYS_POINTER map for main array maps of ARRAY_TYPE type. + +2021-12-07 Harald Anlauf + + PR fortran/103607 + * frontend-passes.c (do_subscript): Ensure that array bounds are + of type INTEGER before performing checks on array subscripts. + +2021-12-07 Harald Anlauf + + PR fortran/103588 + * array.c (gfc_ref_dimen_size): Do not generate internal error on + failed simplification of stride expression; just return failure. + +2021-12-07 Harald Anlauf + + PR fortran/103591 + * match.c (match_case_selector): Check type of upper bound in case + range. + +2021-12-04 Tobias Burnus + + * dump-parse-tree.c (show_omp_clauses): Handle + weak/compare/fail clause. + * gfortran.h (gfc_omp_clauses): Add weak, compare, fail. + * openmp.c (enum omp_mask1, gfc_match_omp_clauses, + OMP_ATOMIC_CLAUSES): Update for new clauses. + (gfc_match_omp_atomic): Update for 5.1 atomic changes. + (is_conversion): Support widening in one go. + (is_scalar_intrinsic_expr): New. + (resolve_omp_atomic): Update for 5.1 atomic changes. + * parse.c (parse_omp_oacc_atomic): Update for compare. + * resolve.c (gfc_resolve_blocks): Update asserts. + * trans-openmp.c (gfc_trans_omp_atomic): Handle new clauses. + +2021-12-03 Harald Anlauf + Steven G. Kargl + + PR fortran/103505 + * array.c (match_array_element_spec): Try to simplify array + element specifications to improve early checking. + * expr.c (gfc_try_simplify_expr): New. Try simplification of an + expression via gfc_simplify_expr. When an error occurs, roll + back. + * gfortran.h (gfc_try_simplify_expr): Declare it. + +2021-12-03 Tobias Burnus + + * trans-stmt.c (gfc_trans_allocate): Set e3_has_nodescriptor to true + only for non-named arrays. + +2021-12-02 Chung-Lin Tang + + PR fortran/90030 + * trans-openmp.c (gfc_omp_finish_clause): Remove fold_convert to pointer + to char_type_node, add gcc_assert of POINTER_TYPE_P. + (gfc_trans_omp_array_section): Likewise. + (gfc_trans_omp_clauses): Likewise. + +2021-11-30 Harald Anlauf + + PR fortran/102787 + * array.c (expand_constructor): When encountering a constant array + expression or array section within a constructor, simplify it to + enable better expansion. + +2021-11-30 Harald Anlauf + + PR fortran/103473 + * simplify.c (simplify_minmaxloc_nodim): Avoid NULL pointer + dereference when shape is not set. + +2021-11-30 Harald Anlauf + Steven G. Kargl + + PR fortran/101565 + * check.c (gfc_check_image_index): Verify that SUB argument to + IMAGE_INDEX is of type integer. + +2021-11-30 Richard Biener + + * frontend-passes.c (gfc_expr_walker): Add comment to + indicate tail recursion. + +2021-11-30 Richard Biener + + * target-memory.c (gfc_element_size): Remove unreachable return. + +2021-11-30 Thomas Schwinge + + * openmp.c (resolve_oacc_loop_blocks): Remove "gang reduction on + an orphan loop" checking. + (oacc_is_parallel, oacc_is_kernels, oacc_is_serial) + (oacc_is_compute_construct): Remove. + +2021-11-30 Frederik Harwath + Thomas Schwinge + + * openmp.c (oacc_is_parallel_or_serial): Evolve into... + (oacc_is_compute_construct): ... this function. + (resolve_oacc_loop_blocks): Use "oacc_is_compute_construct" + instead of "oacc_is_parallel_or_serial" for checking that a + loop is not orphaned. + +2021-11-30 Kwok Cheung Yeung + Thomas Schwinge + + * openmp.c (oacc_is_serial, oacc_is_parallel_or_serial): New. + (resolve_oacc_loop_blocks): Use oacc_is_parallel_or_serial instead of + oacc_is_parallel. + +2021-11-30 Cesar Philippidis + Thomas Schwinge + + * openmp.c (oacc_is_parallel, oacc_is_kernels): New 'static' + functions. + (resolve_oacc_loop_blocks): Emit an error on orphan OpenACC gang + reductions. + +2021-11-30 Richard Biener + + * decl.c (gfc_insert_parameter_exprs): Only return after + resetting type_param_spec_list. + +2021-11-30 Richard Biener + + * frontend-passes.c (gfc_expr_walker): Remove unreachable + break. + * scanner.c (skip_fixed_comments): Remove unreachable + gcc_unreachable. + * trans-expr.c (gfc_expr_is_variable): Refactor to make + control flow more obvious. + +2021-11-29 Eric Gallager + + PR other/103021 + * Make-lang.in: Use ETAGS variable in TAGS target. + +2021-11-26 Harald Anlauf + + PR fortran/103411 + * check.c (gfc_check_reshape): Improve check of size of source + array for the RESHAPE intrinsic against the given shape when pad + is not given, and shape is a parameter. Try other simplifications + of shape. + +2021-11-23 Harald Anlauf + + PR fortran/103392 + * simplify.c (simplify_bound): Do not try to simplify + LBOUND/UBOUND for arrays with POINTER or ALLOCATABLE attribute. + +2021-11-23 Harald Anlauf + + PR fortran/87711 + PR fortran/87851 + * trans-array.c (arg_evaluated_for_scalarization): Add LEN_TRIM to + list of intrinsics for which an optional KIND argument needs to be + removed before scalarization. + +2021-11-21 Jakub Jelinek + + PR debug/103315 + * trans-types.c (gfc_get_array_descr_info): Use DW_OP_deref_size 1 + instead of DW_OP_deref for DW_AT_rank. + +2021-11-21 Harald Anlauf + Steven G. Kargl + + PR fortran/99061 + * trans-intrinsic.c (gfc_lookup_intrinsic): Helper function for + looking up gfortran builtin intrinsics. + (gfc_conv_intrinsic_atrigd): Use it. + (gfc_conv_intrinsic_cotan): Likewise. + (gfc_conv_intrinsic_cotand): Likewise. + (gfc_conv_intrinsic_atan2d): Likewise. + +2021-11-18 Harald Anlauf + Steven G. Kargl + + PR fortran/101329 + * check.c (is_c_interoperable): Reject NULL() as it is not + interoperable. + +2021-11-16 Harald Anlauf + + PR fortran/103286 + * resolve.c (resolve_select): Choose appropriate range limit to + avoid NULL pointer dereference when generating error message. + +2021-11-16 Mikael Morin + + * interface.c (gfc_dummy_arg_get_name): New function. + * gfortran.h (gfc_dummy_arg_get_name): Declare it. + * trans-array.c (arg_evaluated_for_scalarization): Pass a dummy + argument wrapper as argument instead of an actual argument + and an index number. Check it’s non-NULL. Use its name + to identify it. + (gfc_walk_elemental_function_args): Update call to + arg_evaluated for scalarization. Remove argument counting. + +2021-11-16 Mikael Morin + + * gfortran.h (gfc_actual_arglist::missing_arg_type): Remove. + * interface.c (gfc_compare_actual_formal): Remove + missing_arg_type initialization. + * intrinsic.c (sort_actual): Ditto. + * trans-expr.c (gfc_conv_procedure_call): Use associated_dummy + and gfc_dummy_arg_get_typespec to get the dummy argument type. + +2021-11-16 Mikael Morin + + * interface.c (gfc_dummy_arg_get_typespec, + gfc_dummy_arg_is_optional): New functions. + * gfortran.h (gfc_dummy_arg_get_typespec, + gfc_dummy_arg_is_optional): Declare them. + * trans.h (gfc_ss_info::dummy_arg): Use the wrapper type + as declaration type. + * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference): + use gfc_dummy_arg_get_typespec function to get the type. + (gfc_walk_elemental_function_args): Remove proc_ifc argument. + Get info about the dummy arg using the associated_dummy field. + * trans-array.h (gfc_walk_elemental_function_args): Update declaration. + * trans-intrinsic.c (gfc_walk_intrinsic_function): + Update call to gfc_walk_elemental_function_args. + * trans-stmt.c (gfc_trans_call): Ditto. + (get_proc_ifc_for_call): Remove. + +2021-11-16 Mikael Morin + + * gfortran.h (gfc_dummy_arg_kind, gfc_dummy_arg): New. + (gfc_actual_arglist): New field associated_dummy. + (gfc_intrinsic_arg): Remove field actual. + * interface.c (get_nonintrinsic_dummy_arg): New. + (gfc_compare_actual): Initialize associated_dummy. + * intrinsic.c (get_intrinsic_dummy_arg): New. + (sort_actual):  Add argument vectors. + Use loops with indices on argument vectors. + Initialize associated_dummy. + +2021-11-16 Mikael Morin + + * intrinsic.c (sort_actual): initialise variable and use it earlier. + +2021-11-15 Tobias Burnus + + * openmp.c (OMP_TARGET_CLAUSES): Add thread_limit. + * trans-openmp.c (gfc_split_omp_clauses): Add thread_limit also to + teams. + +2021-11-12 Tobias Burnus + + * parse.c (decode_omp_directive): Fix permitting 'nowait' for some + combined directives, add missing 'omp end ... loop'. + (gfc_ascii_statement): Fix ST_OMP_END_TEAMS_LOOP result. + * openmp.c (resolve_omp_clauses): Add missing combined loop constructs + case values to the 'if(directive-name: ...)' check. + * trans-openmp.c (gfc_split_omp_clauses): Put nowait on target if + first leaf construct accepting it. + +2021-11-12 Martin Jambor + + * trans-types.c (gfc_get_array_descr_info): Use build_debug_expr_decl + instead of building DEBUG_EXPR_DECL manually. + +2021-11-12 Mikael Morin + + PR fortran/97896 + * intrinsic.c (add_sym_4ind): Remove. + (add_functions): Use add_sym4 instead of add_sym4ind. + Don’t special case the index intrinsic. + * iresolve.c (gfc_resolve_index_func): Use the individual arguments + directly instead of the full argument list. + * intrinsic.h (gfc_resolve_index_func): Update the declaration + accordingly. + * trans-decl.c (gfc_get_extern_function_decl): Don’t modify the + list of arguments in the case of the index intrinsic. + * trans-array.h (gfc_get_intrinsic_for_expr, + gfc_get_proc_ifc_for_expr): New. + * trans-array.c (gfc_get_intrinsic_for_expr, + arg_evaluated_for_scalarization): New. + (gfc_walk_elemental_function_args): Add intrinsic procedure + as argument. Count arguments. Check arg_evaluated_for_scalarization. + * trans-intrinsic.c (gfc_walk_intrinsic_function): Update call. + * trans-stmt.c (get_intrinsic_for_code): New. + (gfc_trans_call): Update call. + +2021-11-12 Jakub Jelinek + + * types.def (BT_FN_VOID_UINT_UINT): Remove. + (BT_FN_BOOL_UINT_UINT_UINT_BOOL): New. + +2021-11-11 Tobias Burnus + + * gfortran.h (struct gfc_omp_clauses): Rename num_teams to + num_teams_upper, add num_teams_upper. + * dump-parse-tree.c (show_omp_clauses): Update to handle + lower-bound num_teams clause. + * frontend-passes.c (gfc_code_walker): Likewise + * openmp.c (gfc_free_omp_clauses, gfc_match_omp_clauses, + resolve_omp_clauses): Likewise. + * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses, + gfc_trans_omp_target): Likewise. + +2021-11-11 Jakub Jelinek + + * trans-openmp.c (gfc_trans_omp_clauses): Use + OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR instead of OMP_CLAUSE_NUM_TEAMS_EXPR. + +2021-11-10 Harald Anlauf + + PR fortran/103137 + PR fortran/103138 + * check.c (gfc_check_shape): Avoid NULL pointer dereference on + missing ref. + * simplify.c (gfc_simplify_cshift): Avoid NULL pointer dereference + when shape not set. + (gfc_simplify_transpose): Likewise. + +2021-11-09 Bernhard Reutner-Fischer + + PR fortran/68800 + * class.c (generate_finalization_wrapper): Do not leak + finalization wrappers if they will not be used. + * expr.c (gfc_free_actual_arglist): Formatting fix. + * gfortran.h (gfc_free_symbol): Pass argument by reference. + (gfc_release_symbol): Likewise. + (gfc_free_namespace): Likewise. + * symbol.c (gfc_release_symbol): Adjust acordingly. + (free_components): Set procedure pointer components + of derived types to NULL after freeing. + (free_tb_tree): Likewise. + (gfc_free_symbol): Set sym to NULL after freeing. + (gfc_free_namespace): Set namespace to NULL after freeing. + +2021-11-09 Martin Liska + + * symbol.c (gfc_get_ultimate_derived_super_type): Remove. + +2021-11-09 Aldy Hernandez + + * misc.c (gfc_dummy_typename): Make sure ts->kind is + non-negative. + +2021-11-07 Thomas Koenig + + * intrinsic.c (add_subroutines): Change keyword "operator" + to the correct one, "operation". + * check.c (gfc_check_co_reduce): Change OPERATOR to + OPERATION in error messages. + * intrinsic.texi: Change OPERATOR to OPERATION in + documentation. + +2021-11-07 Sandra Loosemore + + * interface.c (gfc_compare_actual_formal): Continue checking + all arguments after encountering an error. + * intrinsic.c (do_ts29113_check): Likewise. + * resolve.c (resolve_operator): Continue resolving on op2 error. + +2021-11-06 Harald Anlauf + + PR fortran/102715 + * decl.c (add_init_expr_to_sym): Reject rank mismatch between + array and its initializer. + +2021-11-05 Harald Anlauf + + PR fortran/102817 + * expr.c (simplify_parameter_variable): Copy shape of referenced + subobject when simplifying. + +2021-11-05 Harald Anlauf + + PR fortran/69419 + * match.c (gfc_match_common): Check array spec of a symbol in a + COMMON object list and reject it if it is a coarray. + +2021-11-05 Bernhard Reutner-Fischer + + PR fortran/100972 + * decl.c (gfc_match_implicit_none): Fix typo in warning. + * resolve.c (resolve_unknown_f): Reject external procedures + without explicit EXTERNAL attribute whe IMPLICIT none (external) + is in effect. + +2021-11-05 Bernhard Reutner-Fischer + + * decl.c (gfc_insert_kind_parameter_exprs): Make static. + * expr.c (gfc_build_init_expr): Make static + (gfc_build_default_init_expr): Move below its static helper. + * gfortran.h (gfc_insert_kind_parameter_exprs, gfc_add_saved_common, + gfc_add_common, gfc_use_derived_tree, gfc_free_charlen, + gfc_get_ultimate_derived_super_type, + gfc_resolve_oacc_parallel_loop_blocks, gfc_build_init_expr, + gfc_iso_c_sub_interface): Delete. + * symbol.c (gfc_new_charlen, gfc_get_derived_super_type): Make + static. + +2021-11-05 Sandra Loosemore + + PR fortran/35276 + * gfortran.texi (Mixed-Language Programming): Talk about C++, + and how to link. + +2021-11-04 Sandra Loosemore + + * gfortran.texi (Projects): Add bullet for helping with + incomplete standards compliance. + (Proposed Extensions): Delete section. + +2021-11-04 Sandra Loosemore + + * intrinsic.texi (Introduction to Intrinsics): Genericize + references to standard versions. + * invoke.texi (-fall-intrinsics): Likewise. + (-fmax-identifier-length=): Likewise. + +2021-11-04 Sandra Loosemore + + * gfortran.texi (Interoperability with C): Copy-editing. Add + more index entries. + (Intrinsic Types): Likewise. + (Derived Types and struct): Likewise. + (Interoperable Global Variables): Likewise. + (Interoperable Subroutines and Functions): Likewise. + (Working with C Pointers): Likewise. + (Further Interoperability of Fortran with C): Likewise. Rewrite + to reflect that this is now fully supported by gfortran. + +2021-11-04 Sandra Loosemore + + * gfortran.texi (About GNU Fortran): Consolidate material + formerly in other sections. Copy-editing. + (Preprocessing and conditional compilation): Delete, moving + most material to invoke.texi. + (GNU Fortran and G77): Delete. + (Project Status): Delete. + (Standards): Update. + (Fortran 95 status): Mention conditional compilation here. + (Fortran 2003 status): Rewrite to mention the 1 missing feature + instead of all the ones implemented. + (Fortran 2008 status): Similarly for the 2 missing features. + (Fortran 2018 status): Rewrite to reflect completion of TS29113 + feature support. + * invoke.texi (Preprocessing Options): Move material formerly + in introductory chapter here. + +2021-11-04 Sandra Loosemore + + * gfortran.texi (Standards): Move discussion of specific + standard versions here.... + (Fortran standards status): ...from here, and delete this node. + +2021-10-31 Bernhard Reutner-Fischer + + * symbol.c (gfc_get_typebound_proc): Revert memcpy. + +2021-10-31 Bernhard Reutner-Fischer + + * resolve.c (resolve_fl_procedure): Initialize + allocatable_or_pointer. + +2021-10-30 Manfred Schwarb + + * intrinsic.texi: Remove entries for SHORT and LONG intrinsics. + +2021-10-30 Manfred Schwarb + + * check.c (gfc_check_intconv): Change error message. + +2021-10-30 Manfred Schwarb + + * intrinsic.texi (REAL): Fix entries in Specific names table. + +2021-10-30 Manfred Schwarb + + * intrinsic.texi: Adjust @columnfractions commands to improve + appearance for narrow 80 character terminals. + +2021-10-30 Bernhard Reutner-Fischer + + * parse.c (clean_up_modules): Free gsym. + +2021-10-30 Harald Anlauf + + * gfortran.texi (bug reports): credit Gerhard Steinmetz for + numerous bug reports. + +2021-10-30 Steve Kargl + + PR fortran/99853 + * resolve.c (resolve_select): Generate regular gfc_error on + invalid conversions instead of an gfc_internal_error. + +2021-10-29 Bernhard Reutner-Fischer + + * symbol.c (free_tb_tree): Free type-bound procedure struct. + (gfc_get_typebound_proc): Use explicit memcpy for clarity. + +2021-10-27 Bernhard Reutner-Fischer + + * intrinsic.h (gfc_check_sum, gfc_resolve_atan2d, gfc_resolve_kill, + gfc_resolve_kill_sub): Delete declaration. + +2021-10-27 Bernhard Reutner-Fischer + + * trans-types.h (gfc_convert_function_code): Delete. + +2021-10-27 Bernhard Reutner-Fischer + + * trans-stmt.h (gfc_trans_deallocate_array): Delete. + +2021-10-27 Bernhard Reutner-Fischer + + * trans-array.c (gfc_trans_scalarized_loop_end): Make static. + * trans-array.h (gfc_trans_scalarized_loop_end, + gfc_conv_tmp_ref, gfc_conv_array_transpose): Delete declaration. + +2021-10-27 Bernhard Reutner-Fischer + + * constructor.c (gfc_constructor_get_base): Make static. + (gfc_constructor_expr_foreach, gfc_constructor_swap): Delete. + * constructor.h (gfc_constructor_get_base): Remove declaration. + (gfc_constructor_expr_foreach, gfc_constructor_swap): Delete. + +2021-10-27 Bernhard Reutner-Fischer + + * decl.c (gfc_match_old_kind_spec, set_com_block_bind_c, + set_verify_bind_c_sym, set_verify_bind_c_com_block, + get_bind_c_idents, gfc_match_suffix, gfc_get_type_attr_spec, + check_extended_derived_type): Make static. + (gfc_match_gcc_unroll): Add comment. + * match.c (gfc_match_small_int_expr): Delete definition. + * match.h (gfc_match_small_int_expr): Delete declaration. + (gfc_match_name_C, gfc_match_old_kind_spec, set_com_block_bind_c, + set_verify_bind_c_sym, set_verify_bind_c_com_block, + get_bind_c_idents, gfc_match_suffix, + gfc_get_type_attr_spec): Delete declaration. + +2021-10-27 Bernhard Reutner-Fischer + + * expr.c (is_non_empty_structure_constructor): Make static. + * gfortran.h (gfc_check_any_c_kind): Delete. + * match.c (gfc_match_label): Make static. + * match.h (gfc_match_label): Delete declaration. + * scanner.c (file_changes_cur, file_changes_count, + file_changes_allocated): Make static. + * trans-expr.c (gfc_get_character_len): Make static. + (gfc_class_len_or_zero_get): Make static. + (VTAB_GET_FIELD_GEN): Undefine. + (gfc_get_class_array_ref): Make static. + (gfc_finish_interface_mapping): Make static. + * trans-types.c (gfc_check_any_c_kind): Delete. + (pfunc_type_node, dtype_type_node, gfc_get_ppc_type): Make static. + * trans-types.h (gfc_get_ppc_type): Delete declaration. + * trans.c (gfc_msg_wrong_return): Delete. + * trans.h (gfc_class_len_or_zero_get, gfc_class_vtab_extends_get, + gfc_vptr_extends_get, gfc_get_class_array_ref, gfc_get_character_len, + gfc_finish_interface_mapping, gfc_msg_wrong_return, + gfc_get_function_decl): Delete declaration. + +2021-10-27 Tobias Burnus + + * trans-stmt.c (gfc_trans_select_rank_cases): Fix condition + for allocatables/pointers. + +2021-10-26 Harald Anlauf + + PR fortran/102956 + * symbol.c (gfc_check_conflict): Add conflict check for PDT KIND + and LEN type parameters. + +2021-10-26 Harald Anlauf + + PR fortran/102917 + * decl.c (match_attr_spec): Remove invalid integer kind checks on + KIND and LEN attributes of PDTs. + +2021-10-26 Harald Anlauf + + PR fortran/102816 + * resolve.c (resolve_structure_cons): Reject invalid array spec of + a DT component referenced in a structure constructor. + +2021-10-26 Tobias Burnus + + PR fortran/102885 + * trans-decl.c (gfc_conv_cfi_to_gfc): Properly handle nonconstant + character lenghts. + +2021-10-25 Andrew MacLeod + + * trans-decl.c (gfc_conv_cfi_to_gfc): Initialize rank to NULL_TREE. + +2021-10-22 Eric Gallager + + PR other/102663 + * Make-lang.in: Allow dvi-formatted documentation + to be installed. + +2021-10-22 Tobias Burnus + + PR fortran/92621 + * trans-expr.c (gfc_trans_assignment_1): Add STRIP_NOPS. + +2021-10-21 Chung-Lin Tang + + * decl.c (gfc_match_end): Add COMP_OMP_STRICTLY_STRUCTURED_BLOCK case + together with COMP_BLOCK. + * parse.c (parse_omp_structured_block): Change return type to + 'gfc_statement', add handling for strictly-structured block case, adjust + recursive calls to parse_omp_structured_block. + (parse_executable): Adjust calls to parse_omp_structured_block. + * parse.h (enum gfc_compile_state): Add + COMP_OMP_STRICTLY_STRUCTURED_BLOCK. + * trans-openmp.c (gfc_trans_omp_workshare): Add EXEC_BLOCK case + handling. + +2021-10-21 Sandra Loosemore + + PR fortran/94070 + * expr.c (gfc_simplify_expr): Handle GFC_ISYM_SHAPE along with + GFC_ISYM_LBOUND and GFC_ISYM_UBOUND. + * trans-array.c (gfc_conv_ss_startstride): Likewise. + (set_loop_bounds): Likewise. + * trans-intrinsic.c (gfc_trans_intrinsic_bound): Extend to + handle SHAPE. Correct logic for zero-size special cases and + detecting assumed-rank arrays associated with an assumed-size + argument. + (gfc_conv_intrinsic_shape): Deleted. + (gfc_conv_intrinsic_function): Handle GFC_ISYM_SHAPE like + GFC_ISYM_LBOUND and GFC_ISYM_UBOUND. + (gfc_add_intrinsic_ss_code): Likewise. + (gfc_walk_intrinsic_bound): Likewise. + +2021-10-20 Chung-Lin Tang + + * openmp.c (gfc_match_omp_clause_reduction): Add 'openmp_target' default + false parameter. Add 'always,tofrom' map for OMP_LIST_IN_REDUCTION case. + (gfc_match_omp_clauses): Add 'openmp_target' default false parameter, + adjust call to gfc_match_omp_clause_reduction. + (match_omp): Adjust call to gfc_match_omp_clauses + * trans-openmp.c (gfc_trans_omp_taskgroup): Add call to + gfc_match_omp_clause, create and return block. + +2021-10-19 Tobias Burnus + + * trans-types.c (create_fn_spec): For allocatable/pointer + character(len=:), use 'w' not 'R' as fn spec for the length dummy + argument. + +2021-10-19 Tobias Burnus + + PR fortran/92482 + * trans-expr.c (gfc_conv_procedure_call): Use TREE_OPERAND not + build_fold_indirect_ref_loc to undo an ADDR_EXPR. + +2021-10-18 Tobias Burnus + + PR fortran/102086 + PR fortran/92189 + PR fortran/92621 + PR fortran/101308 + PR fortran/101309 + PR fortran/101635 + PR fortran/92482 + * decl.c (gfc_verify_c_interop_param): Remove 'sorry' for + scalar allocatable/pointer and len=*. + * expr.c (is_CFI_desc): Return true for for those. + * gfortran.h (CFI_type_kind_shift, CFI_type_mask, + CFI_type_from_type_kind, CFI_VERSION, CFI_MAX_RANK, + CFI_attribute_pointer, CFI_attribute_allocatable, + CFI_attribute_other, CFI_type_Integer, CFI_type_Logical, + CFI_type_Real, CFI_type_Complex, CFI_type_Character, + CFI_type_ucs4_char, CFI_type_struct, CFI_type_cptr, + CFI_type_cfunptr, CFI_type_other): New #define. + * trans-array.c (CFI_FIELD_BASE_ADDR, CFI_FIELD_ELEM_LEN, + CFI_FIELD_VERSION, CFI_FIELD_RANK, CFI_FIELD_ATTRIBUTE, + CFI_FIELD_TYPE, CFI_FIELD_DIM, CFI_DIM_FIELD_LOWER_BOUND, + CFI_DIM_FIELD_EXTENT, CFI_DIM_FIELD_SM, + gfc_get_cfi_descriptor_field, gfc_get_cfi_desc_base_addr, + gfc_get_cfi_desc_elem_len, gfc_get_cfi_desc_version, + gfc_get_cfi_desc_rank, gfc_get_cfi_desc_type, + gfc_get_cfi_desc_attribute, gfc_get_cfi_dim_item, + gfc_get_cfi_dim_lbound, gfc_get_cfi_dim_extent, gfc_get_cfi_dim_sm): + New define/functions to access the CFI array descriptor. + (gfc_conv_descriptor_type): New function for the GFC descriptor. + (gfc_get_array_span): Handle expr of CFI descriptors and + assumed-type descriptors. + (gfc_trans_array_bounds): Remove 'static'. + (gfc_conv_expr_descriptor): For assumed type, use the dtype of + the actual argument. + (structure_alloc_comps): Remove ' ' inside tabs. + * trans-array.h (gfc_trans_array_bounds, gfc_conv_descriptor_type, + gfc_get_cfi_desc_base_addr, gfc_get_cfi_desc_elem_len, + gfc_get_cfi_desc_version, gfc_get_cfi_desc_rank, + gfc_get_cfi_desc_type, gfc_get_cfi_desc_attribute, + gfc_get_cfi_dim_lbound, gfc_get_cfi_dim_extent, gfc_get_cfi_dim_sm): + New prototypes. + * trans-decl.c (gfor_fndecl_cfi_to_gfc, gfor_fndecl_gfc_to_cfi): + Remove global vars. + (gfc_build_builtin_function_decls): Remove their initialization. + (gfc_get_symbol_decl, create_function_arglist, + gfc_trans_deferred_vars): Update for CFI. + (convert_CFI_desc): Remove and replace by ... + (gfc_conv_cfi_to_gfc): ... this function + (gfc_generate_function_code): Call it; create local GFC var for CFI. + * trans-expr.c (gfc_maybe_dereference_var): Handle CFI. + (gfc_conv_subref_array_arg): Handle the if-noncontigous-only copy in + when the result should be a descriptor. + (gfc_conv_gfc_desc_to_cfi_desc): Completely rewritten. + (gfc_conv_procedure_call): CFI fixes. + * trans-openmp.c (gfc_omp_is_optional_argument, + gfc_omp_check_optional_argument): Handle optional + CFI. + * trans-stmt.c (gfc_trans_select_rank_cases): Cleanup, avoid invalid + code for allocatable/pointer dummies, which cannot be assumed size. + * trans-types.c (gfc_cfi_descriptor_base): New global var. + (gfc_get_dtype_rank_type): Skip rank init for rank < 0. + (gfc_sym_type): Handle CFI dummies. + (gfc_get_function_type): Update call. + (gfc_get_cfi_dim_type, gfc_get_cfi_type): New. + * trans-types.h (gfc_sym_type): Update prototype. + (gfc_get_cfi_type): New prototype. + * trans.c (gfc_trans_runtime_check): Make conditions more consistent + to avoid ' AND_THEN ' in conditions. + * trans.h (gfor_fndecl_cfi_to_gfc, gfor_fndecl_gfc_to_cfi): Remove + global-var declaration. + +2021-10-18 Tobias Burnus + + PR fortran/102745 + * intrinsic.c (gfc_convert_type_warn): Fix checks by checking CLASS + and do typcheck in correct order for type extension. + * misc.c (gfc_typename): Print proper not internal CLASS type name. + +2021-10-15 Harald Anlauf + Tobias Burnus + + PR fortran/102685 + * decl.c (match_clist_expr): Set rank/shape of clist initializer + to match LHS. + * resolve.c (resolve_structure_cons): In a structure constructor, + compare shapes of array components against declared shape. + +2021-10-14 Harald Anlauf + + PR fortran/102717 + * simplify.c (gfc_simplify_reshape): Replace assert by error + message for negative elements in SHAPE array. + +2021-10-14 Harald Anlauf + + PR fortran/102716 + * check.c (gfc_check_shape): Reorder checks so that invalid KIND + arguments can be detected. + +2021-10-14 Kwok Cheung Yeung + + * gfortran.h (enum gfc_statement): Add ST_OMP_DECLARE_VARIANT. + (enum gfc_omp_trait_property_kind): New. + (struct gfc_omp_trait_property): New. + (gfc_get_omp_trait_property): New macro. + (struct gfc_omp_selector): New. + (gfc_get_omp_selector): New macro. + (struct gfc_omp_set_selector): New. + (gfc_get_omp_set_selector): New macro. + (struct gfc_omp_declare_variant): New. + (gfc_get_omp_declare_variant): New macro. + (struct gfc_namespace): Add omp_declare_variant field. + (gfc_free_omp_declare_variant_list): New prototype. + * match.h (gfc_match_omp_declare_variant): New prototype. + * openmp.c (gfc_free_omp_trait_property_list): New. + (gfc_free_omp_selector_list): New. + (gfc_free_omp_set_selector_list): New. + (gfc_free_omp_declare_variant_list): New. + (gfc_match_omp_clauses): Add extra optional argument. Handle end of + clauses for context selectors. + (omp_construct_selectors, omp_device_selectors, + omp_implementation_selectors, omp_user_selectors): New. + (gfc_match_omp_context_selector): New. + (gfc_match_omp_context_selector_specification): New. + (gfc_match_omp_declare_variant): New. + * parse.c: Include tree-core.h and omp-general.h. + (decode_omp_directive): Handle 'declare variant'. + (case_omp_decl): Include ST_OMP_DECLARE_VARIANT. + (gfc_ascii_statement): Handle ST_OMP_DECLARE_VARIANT. + (gfc_parse_file): Initialize omp_requires_mask. + * symbol.c (gfc_free_namespace): Call + gfc_free_omp_declare_variant_list. + * trans-decl.c (gfc_get_extern_function_decl): Call + gfc_trans_omp_declare_variant. + (gfc_create_function_decl): Call gfc_trans_omp_declare_variant. + * trans-openmp.c (gfc_trans_omp_declare_variant): New. + * trans-stmt.h (gfc_trans_omp_declare_variant): New prototype. + +2021-10-13 Tobias Burnus + + * dump-parse-tree.c (show_omp_clauses): Handle ancestor modifier, + avoid ICE for GFC_OMP_ATOMIC_SWAP. + * gfortran.h (gfc_omp_clauses): Change 'anecestor' into a bitfield. + +2021-10-12 Tobias Burnus + + PR fortran/102541 + * check.c (gfc_check_present): Handle optional CLASS. + * interface.c (gfc_compare_actual_formal): Likewise. + * trans-array.c (gfc_trans_g77_array): Likewise. + * trans-decl.c (gfc_build_dummy_array_decl): Likewise. + * trans-types.c (gfc_sym_type): Likewise. + * primary.c (gfc_variable_attr): Fixes for dummy and + pointer when 'class%_data' is passed. + * trans-expr.c (set_dtype_for_unallocated, gfc_conv_procedure_call): + For assumed-rank dummy, fix setting rank for dealloc/notassoc actual + and setting ubound to -1 for assumed-size actuals. + +2021-10-10 Harald Anlauf + + PR fortran/99348 + PR fortran/102521 + * decl.c (add_init_expr_to_sym): Extend initialization of + parameter arrays from scalars to handle derived types. + +2021-10-09 Harald Anlauf + + PR fortran/65454 + * module.c (read_module): Handle old and new-style relational + operators when used in USE module, ONLY: OPERATOR(op). + +2021-10-08 Sandra Loosemore + + PR fortran/54753 + * interface.c (gfc_compare_actual_formal): Add diagnostic + for F2018:C839. Refactor shared code and fix bugs with class + array info lookup, and extend similar diagnostic from PR94110 + to also cover class types. + +2021-10-08 Martin Liska + + * options.c (gfc_post_options): Use new macro + OPTION_SET_P. + +2021-10-06 Tobias Burnus + + * resolve.c (resolve_values): Only show + deprecated warning if attr.referenced. + +2021-10-04 Tobias Burnus + + PR fortran/54753 + * resolve.c (can_generate_init, resolve_fl_variable_derived, + resolve_symbol): Only do initialization with intent(out) if not + inside of an interface block. + +2021-10-01 Martin Sebor + + PR c/102103 + * array.c: Remove an unnecessary test. + * trans-array.c: Same. + +2021-10-01 Jakub Jelinek + + * gfortran.h (gfc_omp_clauses): Add order_reproducible bitfield. + * dump-parse-tree.c (show_omp_clauses): Print REPRODUCIBLE: for it. + * openmp.c (gfc_match_omp_clauses): Set order_reproducible for + explicit reproducible: modifier. + * trans-openmp.c (gfc_trans_omp_clauses): Set + OMP_CLAUSE_ORDER_REPRODUCIBLE for order_reproducible. + (gfc_split_omp_clauses): Also copy order_reproducible. + +2021-09-30 Harald Anlauf + + PR fortran/102458 + * simplify.c (simplify_size): Resolve expressions used in array + specifications so that SIZE can be simplified. + +2021-09-30 Harald Anlauf + + * expr.c: The correct reference to Fortran standard is: F2018:10.1.12. + +2021-09-30 Tobias Burnus + + PR fortran/71703 + PR fortran/84007 + * trans-intrinsic.c (gfc_conv_same_type_as): Fix handling + of UNLIMITED_POLY. + * trans.h (gfc_vtpr_hash_get): Renamed prototype to ... + (gfc_vptr_hash_get): ... this to match function name. + +2021-09-29 Harald Anlauf + + PR fortran/102520 + * array.c (expand_constructor): Do not dereference NULL pointer. + +2021-09-27 Tobias Burnus + + PR fortran/94070 + * trans-array.c (gfc_tree_array_size): New function to + find size inline (whole array or one dimension). + (array_parameter_size): Use it, take stmt_block as arg. + (gfc_conv_array_parameter): Update call. + * trans-array.h (gfc_tree_array_size): Add prototype. + * trans-decl.c (gfor_fndecl_size0, gfor_fndecl_size1): Remove + these global vars. + (gfc_build_intrinsic_function_decls): Remove their initialization. + * trans-expr.c (gfc_conv_procedure_call): Update + bounds of pointer/allocatable actual args to nonallocatable/nonpointer + dummies to be one based. + * trans-intrinsic.c (gfc_conv_intrinsic_shape): Fix case for + assumed rank with allocatable/pointer dummy. + (gfc_conv_intrinsic_size): Update to use inline function. + * trans.h (gfor_fndecl_size0, gfor_fndecl_size1): Remove var decl. + +2021-09-26 Tobias Burnus + + PR fortran/101334 + * trans-intrinsic.c (gfc_conv_associated): Support assumed-rank + 'pointer' with scalar/array 'target' argument. + +2021-09-24 Harald Anlauf + + PR fortran/102458 + * expr.c (is_non_constant_intrinsic): Check for intrinsics + excluded in constant expressions (F2018:10.1.2). + (gfc_is_constant_expr): Use that check. + +2021-09-24 Sandra Loosemore + + PR fortran/101333 + * interface.c (compare_parameter): Enforce F2018 C711. + +2021-09-24 Tobias Burnus + + PR fortran/55534 + * scanner.c (load_file): Return void, call (gfc_)fatal_error for + all errors. + (include_line, include_stmt, gfc_new_file): Remove exit call + for failed load_file run. + +2021-09-23 Sandra Loosemore + + PR fortran/101320 + * decl.c (gfc_verify_c_interop_param): Handle F2018 C1557, + aka TS29113 C516. + +2021-09-23 Harald Anlauf + Tobias Burnus + + PR fortran/93834 + * trans-intrinsic.c (gfc_conv_allocated): Cleanup. Handle + coindexed scalar coarrays. + +2021-09-23 Sandra Loosemore + + PR fortran/101319 + * interface.c (gfc_compare_actual_formal): Extend existing + assumed-type diagnostic to also check for argument with type + parameters. + +2021-09-23 Sandra Loosemore + + PR fortran/101334 + * check.c (gfc_check_associated): Allow an assumed-rank + array for the pointer argument. + * interface.c (compare_parameter): Also give rank mismatch + error on assumed-rank array. + +2021-09-23 Sandra Loosemore + + * trans-stmt.c (trans_associate_var): Check that result of + GFC_DECL_SAVED_DESCRIPTOR is not null before using it. + +2021-09-22 Tobias Burnus + + PR fortran/55534 + * cpp.c (gfc_cpp_register_include_paths, gfc_cpp_post_options): + Add new bool verbose_missing_dir_warn argument. + * cpp.h (gfc_cpp_post_options): Update prototype. + * f95-lang.c (gfc_init): Remove duplicated file-not found diag. + * gfortran.h (gfc_check_include_dirs): Takes bool + verbose_missing_dir_warn arg. + (gfc_new_file): Returns now void. + * options.c (gfc_post_options): Update to warn for -I and -J, + only, by default but for all when user requested. + * scanner.c (gfc_do_check_include_dir): + (gfc_do_check_include_dirs, gfc_check_include_dirs): Take bool + verbose warn arg and update to avoid printing the same message + twice or never. + (load_file): Fix indent. + (gfc_new_file): Return void and exit when load_file failed + as all other load_file users do. + +2021-09-22 Tobias Burnus + + * trans-expr.c (gfc_simple_for_loop): New. + * trans.h (gfc_simple_for_loop): New prototype. + +2021-09-21 Tobias Burnus + + PR fortran/55534 + * cpp.c: Define GCC_C_COMMON_C for #include "options.h" to make + cpp_reason_option_codes available. + (gfc_cpp_register_include_paths): Make static, set pfile's + warn_missing_include_dirs and move before caller. + (gfc_cpp_init_cb): New, cb code moved from ... + (gfc_cpp_init_0): ... here. + (gfc_cpp_post_options): Call gfc_cpp_init_cb. + (cb_cpp_diagnostic_cpp_option): New. As implemented in c-family + to match CppReason flags to -W... names. + (cb_cpp_diagnostic): Use it to replace single special case. + * cpp.h (gfc_cpp_register_include_paths): Remove as now static. + * gfortran.h (gfc_check_include_dirs): New prototype. + (gfc_add_include_path): Add new bool arg. + * options.c (gfc_init_options): Don't set -Wmissing-include-dirs. + (gfc_post_options): Set it here after commandline processing. Call + gfc_add_include_path with defer_warn=false. + (gfc_handle_option): Call it with defer_warn=true. + * scanner.c (gfc_do_check_include_dir, gfc_do_check_include_dirs, + gfc_check_include_dirs): New. Diagnostic moved from ... + (add_path_to_list): ... here, which came before cmdline processing. + Take additional bool defer_warn argument. + (gfc_add_include_path): Take additional defer_warn arg. + * scanner.h (struct gfc_directorylist): Reorder for alignment issues, + add new 'bool warn'. + +2021-09-20 Tobias Burnus + + * gfortran.h (gfc_omp_clauses): Add order_unconstrained. + * dump-parse-tree.c (show_omp_clauses): Dump it. + * openmp.c (gfc_match_omp_clauses): Match unconstrained/reproducible + modifiers to ordered(concurrent). + (OMP_DISTRIBUTE_CLAUSES): Accept ordered clause. + (resolve_omp_clauses): Reject ordered + order on same directive. + * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses): Pass + on unconstrained modifier of ordered(concurrent). + +2021-09-17 Harald Anlauf + + PR fortran/102366 + * trans-decl.c (gfc_finish_var_decl): Disable the warning message + for variables moved from stack to static storange if they are + declared in the main, but allow the move to happen. + +2021-09-17 Sandra Loosemore + + * intrinsic.texi (ISO_C_BINDING): Change C_FLOAT128 to correspond + to _Float128 rather than __float128. + * iso-c-binding.def (c_float128): Update comments. + * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Likewise. + (build_round_expr): Likewise. + (gfc_build_intrinsic_lib_fndcecls): Likewise. + * trans-types.h (gfc_real16_is_float128): Likewise. + +2021-09-16 Harald Anlauf + + PR fortran/102287 + * trans-expr.c (gfc_conv_procedure_call): Wrap deallocation of + allocatable components of optional allocatable derived type + procedure arguments with INTENT(OUT) into a presence check. + +2021-09-14 Harald Anlauf + + PR fortran/102311 + * resolve.c (resolve_entries): Attempt to recover cleanly after + rejecting mismatched function entries. + +2021-09-14 Tobias Burnus + + PR fortran/102313 + * parse.c (gfc_ascii_statement): Add missing ST_OMP_END_SCOPE. + +2021-09-13 Harald Anlauf + + PR fortran/82314 + * decl.c (add_init_expr_to_sym): For proper initialization of + array-valued named constants the array bounds need to be + simplified before adding the initializer. + +2021-09-13 Harald Anlauf + + PR fortran/85130 + * expr.c (find_substring_ref): Handle given substring start and + end indices as signed integers, not unsigned. + +2021-09-09 Harald Anlauf + + PR fortran/98490 + * trans-expr.c (gfc_conv_substring): Do not generate substring + bounds check for implied do loop index variable before it actually + becomes defined. + +2021-09-08 liuhongt + + * options.c (gfc_post_options): Issue an error for + -fexcess-precision=16. + +2021-09-07 Harald Anlauf + + PR fortran/101327 + * expr.c (find_array_element): When bounds cannot be determined as + constant, return error instead of aborting. + +2021-09-07 Marcel Vollweiler + + * openmp.c (gfc_match_omp_flush): Parse 'seq_cst' clause on 'flush' + directive. + * trans-openmp.c (gfc_trans_omp_flush): Handle OMP_MEMORDER_SEQ_CST. + +2021-09-03 Tobias Burnus + + * decl.c (gfc_verify_c_interop_param): Reject pointer with + CONTIGUOUS attributes as dummy arg. Reject character len > 1 + when passed as byte stream. + +2021-09-01 Harald Anlauf + + PR fortran/56985 + * resolve.c (resolve_common_vars): Fix grammar and improve wording + of error message rejecting an unlimited polymorphic in COMMON. + +2021-08-31 Harald Anlauf + + PR fortran/100950 + * simplify.c (substring_has_constant_len): Minimize checks for + substring expressions being allowed. + +2021-08-31 Marcel Vollweiler + + * gfortran.h: Add variable for 'ancestor' in struct gfc_omp_clauses. + * openmp.c (gfc_match_omp_clauses): Parse device-modifiers 'device_num' + and 'ancestor' in 'target device' clauses. + * trans-openmp.c (gfc_trans_omp_clauses): Set OMP_CLAUSE_DEVICE_ANCESTOR. + +2021-08-30 Harald Anlauf + + PR fortran/102113 + * match.c (gfc_match_goto): Allow for whitespace in parsing list + of labels. + +2021-08-30 Harald Anlauf + + PR fortran/101349 + * resolve.c (resolve_allocate_expr): An unlimited polymorphic + argument to ALLOCATE must be ALLOCATABLE or a POINTER. Fix the + corresponding check. + +2021-08-28 Harald Anlauf + + PR fortran/87737 + * resolve.c (resolve_entries): For functions of type CHARACTER + tighten the checks for matching characteristics. + +2021-08-25 Lewis Hyatt + + PR other/93067 + * cpp.c (gfc_cpp_post_options): Call new function + diagnostic_initialize_input_context(). + +2021-08-24 Harald Anlauf + + PR fortran/98411 + * trans-decl.c (gfc_finish_var_decl): Adjust check to handle + implicit SAVE as well as variables in the main program. Improve + warning message text. + +2021-08-23 Tobias Burnus + + * openmp.c (gfc_match_dupl_check, gfc_match_dupl_memorder, + gfc_match_dupl_atomic): New. + (gfc_match_omp_clauses): Use them; remove duplicate + 'release'/'relaxed' clause matching; improve error dignostic + for 'default'. + +2021-08-23 Tobias Burnus + + * dump-parse-tree.c (show_omp_clauses): Handle 'strict' modifier + on grainsize/num_tasks + * gfortran.h (gfc_omp_clauses): Add grainsize_strict + and num_tasks_strict. + * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses): + Handle 'strict' modifier on grainsize/num_tasks. + * openmp.c (gfc_match_omp_clauses): Likewise. + +2021-08-20 Tobias Burnus + + * error.c + (error_uinteger): Take 'long long unsigned' instead + of 'long unsigned' as argumpent. + (error_integer): Take 'long long' instead of 'long'. + (error_hwuint, error_hwint): New. + (error_print): Update to handle 'll' and 'w' + length modifiers. + * simplify.c (substring_has_constant_len): Use '%wd' + in gfc_error. + +2021-08-20 Harald Anlauf + + PR fortran/100950 + * simplify.c (substring_has_constant_len): Fix format string of + gfc_error, pass HOST_WIDE_INT bounds values via char buffer. + +2021-08-20 Tobias Burnus + + * dump-parse-tree.c (show_omp_clauses): Handle 'at', 'severity' + and 'message' clauses. + (show_omp_node, show_code_node): Handle EXEC_OMP_ERROR. + * gfortran.h (gfc_statement): Add ST_OMP_ERROR. + (gfc_omp_severity_type, gfc_omp_at_type): New. + (gfc_omp_clauses): Add 'at', 'severity' and 'message' clause; + use more bitfields + ENUM_BITFIELD. + (gfc_exec_op): Add EXEC_OMP_ERROR. + * match.h (gfc_match_omp_error): New. + * openmp.c (enum omp_mask1): Add OMP_CLAUSE_(AT,SEVERITY,MESSAGE). + (gfc_match_omp_clauses): Handle new clauses. + (OMP_ERROR_CLAUSES, gfc_match_omp_error): New. + (resolve_omp_clauses): Resolve new clauses. + (omp_code_to_statement, gfc_resolve_omp_directive): Handle + EXEC_OMP_ERROR. + * parse.c (decode_omp_directive, next_statement, + gfc_ascii_statement): Handle 'omp error'. + * resolve.c (gfc_resolve_blocks): Likewise. + * st.c (gfc_free_statement): Likewise. + * trans-openmp.c (gfc_trans_omp_error): Likewise. + (gfc_trans_omp_directive): Likewise. + * trans.c (trans_code): Likewise. + +2021-08-20 Jakub Jelinek + + * types.def (BT_FN_VOID_CONST_PTR_SIZE): New DEF_FUNCTION_TYPE_2. + * f95-lang.c (ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST): Define. + +2021-08-19 Harald Anlauf + + PR fortran/100950 + * simplify.c (substring_has_constant_len): New. + (gfc_simplify_len): Handle case of substrings with constant + bounds. + +2021-08-18 Tobias Burnus + + * match.h (gfc_match_omp_nothing): New. + * openmp.c (gfc_match_omp_nothing): New. + * parse.c (decode_omp_directive): Match 'nothing' directive. + +2021-08-17 Tobias Burnus + + * dump-parse-tree.c (show_omp_node, show_code_node): Handle + EXEC_OMP_SCOPE. + * gfortran.h (enum gfc_statement): Add ST_OMP_(END_)SCOPE. + (enum gfc_exec_op): Add EXEC_OMP_SCOPE. + * match.h (gfc_match_omp_scope): New. + * openmp.c (OMP_SCOPE_CLAUSES): Define + (gfc_match_omp_scope): New. + (gfc_match_omp_cancellation_point, gfc_match_omp_end_nowait): + Improve error diagnostic. + (omp_code_to_statement): Handle ST_OMP_SCOPE. + (gfc_resolve_omp_directive): Handle EXEC_OMP_SCOPE. + * parse.c (decode_omp_directive, next_statement, + gfc_ascii_statement, parse_omp_structured_block, + parse_executable): Handle OpenMP's scope construct. + * resolve.c (gfc_resolve_blocks): Likewise + * st.c (gfc_free_statement): Likewise + * trans-openmp.c (gfc_trans_omp_scope): New. + (gfc_trans_omp_directive): Call it. + * trans.c (trans_code): handle EXEC_OMP_SCOPE. + +2021-08-16 Tobias Burnus + + * dump-parse-tree.c (show_omp_clauses): Handle 'filter' clause. + (show_omp_node, show_code_node): Handle (combined) omp masked construct. + * frontend-passes.c (gfc_code_walker): Likewise. + * gfortran.h (enum gfc_statement): Add ST_OMP_*_MASKED*. + (enum gfc_exec_op): Add EXEC_OMP_*_MASKED*. + * match.h (gfc_match_omp_masked, gfc_match_omp_masked_taskloop, + gfc_match_omp_masked_taskloop_simd, gfc_match_omp_parallel_masked, + gfc_match_omp_parallel_masked_taskloop, + gfc_match_omp_parallel_masked_taskloop_simd): New prototypes. + * openmp.c (enum omp_mask1): Add OMP_CLAUSE_FILTER. + (gfc_match_omp_clauses): Match it. + (OMP_MASKED_CLAUSES, gfc_match_omp_parallel_masked, + gfc_match_omp_parallel_masked_taskloop, + gfc_match_omp_parallel_masked_taskloop_simd, + gfc_match_omp_masked, gfc_match_omp_masked_taskloop, + gfc_match_omp_masked_taskloop_simd): New. + (resolve_omp_clauses): Resolve filter clause. + (gfc_resolve_omp_parallel_blocks, resolve_omp_do, + omp_code_to_statement, gfc_resolve_omp_directive): Handle + omp masked constructs. + * parse.c (decode_omp_directive, case_exec_markers, + gfc_ascii_statement, parse_omp_do, parse_omp_structured_block, + parse_executable): Likewise. + * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise. + * st.c (gfc_free_statement): Likewise. + * trans-openmp.c (gfc_trans_omp_clauses): Handle filter clause. + (GFC_OMP_SPLIT_MASKED, GFC_OMP_MASK_MASKED): New enum values. + (gfc_trans_omp_masked): New. + (gfc_split_omp_clauses): Handle combined masked directives. + (gfc_trans_omp_master_taskloop): Rename to ... + (gfc_trans_omp_master_masked_taskloop): ... this; handle also + combined masked directives. + (gfc_trans_omp_parallel_master): Rename to ... + (gfc_trans_omp_parallel_master_masked): ... this; handle + combined masked directives. + (gfc_trans_omp_directive): Handle EXEC_OMP_*_MASKED*. + * trans.c (trans_code): Likewise. + +2021-08-15 Harald Anlauf + + PR fortran/99351 + * match.c (sync_statement): Replace %v code by %e in gfc_match to + allow for function references as STAT and ERRMSG arguments. + * resolve.c (resolve_sync): Adjust checks of STAT= and ERRMSG= to + being definable arguments. Function references with a data + pointer result are accepted. + * trans-stmt.c (gfc_trans_sync): Adjust assertion. + +2021-08-12 Tobias Burnus + + * gfortran.h (gfc_omp_proc_bind_kind): Add OMP_PROC_BIND_PRIMARY. + * dump-parse-tree.c (show_omp_clauses): Add TODO comment to + change 'master' to 'primary' in proc_bind for OpenMP 5.1. + * intrinsic.texi (OMP_LIB): Mention OpenMP 5.1; add + omp_proc_bind_primary. + * openmp.c (gfc_match_omp_clauses): Accept + 'primary' as alias for 'master'. + * trans-openmp.c (gfc_trans_omp_clauses): Handle + OMP_PROC_BIND_PRIMARY. + +2021-08-11 Sandra Loosemore + + * iso-c-binding.def (c_float128, c_float128_complex): Check + float128_type_node instead of gfc_float128_type_node. + * trans-types.c (gfc_init_kinds, gfc_build_real_type): + Update comments re supported 128-bit floating-point types. + +2021-08-11 Richard Biener + + * trans-common.c (create_common): Set TREE_THIS_VOLATILE on the + COMPONENT_REF if the field is volatile. + +2021-08-07 Harald Anlauf + + PR fortran/68568 + * primary.c (gfc_expr_attr): Variable attribute can only be + inquired when symtree is non-NULL. + +2021-07-28 Harald Anlauf + + PR fortran/101564 + * expr.c (gfc_check_vardef_context): Add check for KIND and LEN + parameter inquiries. + * match.c (gfc_match): Fix comment for %v code. + (gfc_match_allocate, gfc_match_deallocate): Replace use of %v code + by %e in gfc_match to allow for function references as STAT and + ERRMSG arguments. + * resolve.c (resolve_allocate_deallocate): Avoid NULL pointer + dereferences and shortcut for bad STAT and ERRMSG argument to + (DE)ALLOCATE. Remove bogus parts of checks for STAT and ERRMSG. + +2021-07-26 José Rui Faustino de Sousa + Tobias Burnus + + PR fortran/93308 + PR fortran/93963 + PR fortran/94327 + PR fortran/94331 + PR fortran/97046 + * trans-decl.c (convert_CFI_desc): Only copy out the descriptor + if necessary. + * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Updated attribute + handling which reflect a previous intermediate version of the + standard. Only copy out the descriptor if necessary. + +2021-07-23 Harald Anlauf + + PR fortran/101536 + * check.c (array_check): Adjust check for the case of CLASS + arrays. + +2021-07-21 Thomas Schwinge + Joseph Myers + Cesar Philippidis + + * dump-parse-tree.c (show_attr): Update. + * gfortran.h (symbol_attribute): Add 'oacc_routine_nohost' member. + (gfc_omp_clauses): Add 'nohost' member. + * module.c (ab_attribute): Add 'AB_OACC_ROUTINE_NOHOST'. + (attr_bits, mio_symbol_attribute): Update. + * openmp.c (omp_mask2): Add 'OMP_CLAUSE_NOHOST'. + (gfc_match_omp_clauses): Handle 'OMP_CLAUSE_NOHOST'. + (OACC_ROUTINE_CLAUSES): Add 'OMP_CLAUSE_NOHOST'. + (gfc_match_oacc_routine): Update. + * trans-decl.c (add_attributes_to_decl): Update. + * trans-openmp.c (gfc_trans_omp_clauses): Likewise. + +2021-07-21 Harald Anlauf + + PR fortran/101514 + * target-memory.c (gfc_interpret_derived): Size of array component + of derived type can only be computed here for explicit shape. + * trans-types.c (gfc_get_nodesc_array_type): Do not dereference + NULL pointers. + +2021-07-21 Tobias Burnus + + * decl.c (gfc_verify_c_interop_param): Update for F2008 + F2018 + changes; reject unsupported bits with 'Error: Sorry,'. + * trans-expr.c (gfc_conv_procedure_call): Fix condition to + For using CFI descriptor with characters. + +2021-07-18 Harald Anlauf + + PR fortran/101084 + * io.c (resolve_tag_format): Extend FORMAT check to unknown type. + +2021-07-14 Harald Anlauf + + PR fortran/100949 + * trans-expr.c (gfc_trans_class_init_assign): Call + gfc_conv_expr_present only for dummy variables. + +2021-07-06 Thomas Koenig + + PR fortran/100227 + * frontend-passes.c (traverse_io_block): Adjust test for + when a variable is eligible for the transformation to + array slice. + +2021-06-28 Martin Sebor + + * trans-array.c (trans_array_constructor): Replace direct uses + of TREE_NO_WARNING with warning_suppressed_p, and suppress_warning. + * trans-decl.c (gfc_build_qualified_array): Same. + (gfc_build_dummy_array_decl): Same. + (generate_local_decl): Same. + (gfc_generate_function_code): Same. + * trans-openmp.c (gfc_omp_clause_default_ctor): Same. + (gfc_omp_clause_copy_ctor): Same. + * trans-types.c (get_dtype_type_node): Same. + (gfc_get_desc_dim_type): Same. + (gfc_get_array_descriptor_base): Same. + (gfc_get_caf_vector_type): Same. + (gfc_get_caf_reference_type): Same. + * trans.c (gfc_create_var_np): Same. + +2021-06-23 Tobias Burnus + + * dump-parse-tree.c (show_omp_clauses): Fix enum type used + for dumping gfc_omp_defaultmap_category. + +2021-06-23 Andre Vehreschild + + PR fortran/100337 + * trans-intrinsic.c (conv_co_collective): Check stat for null ptr + before dereferrencing. + +2021-06-18 Harald Anlauf + + PR fortran/100283 + PR fortran/101123 + * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Unconditionally + convert result of min/max to result type. + +2021-06-16 Harald Anlauf + + PR fortran/95501 + PR fortran/95502 + * expr.c (gfc_check_pointer_assign): Avoid NULL pointer + dereference. + * match.c (gfc_match_pointer_assignment): Likewise. + * parse.c (gfc_check_do_variable): Avoid comparison with NULL + symtree. + +2021-06-16 Harald Anlauf + + Revert: + 2021-06-16 Harald Anlauf + + PR fortran/95501 + PR fortran/95502 + * expr.c (gfc_check_pointer_assign): Avoid NULL pointer + dereference. + * match.c (gfc_match_pointer_assignment): Likewise. + * parse.c (gfc_check_do_variable): Avoid comparison with NULL + symtree. + +2021-06-16 Harald Anlauf + + PR fortran/95501 + PR fortran/95502 + * expr.c (gfc_check_pointer_assign): Avoid NULL pointer + dereference. + * match.c (gfc_match_pointer_assignment): Likewise. + * parse.c (gfc_check_do_variable): Avoid comparison with NULL + symtree. + +2021-06-15 Tobias Burnus + + PR fortran/92568 + * dump-parse-tree.c (show_omp_clauses): Update for defaultmap. + * f95-lang.c (LANG_HOOKS_OMP_ALLOCATABLE_P, + LANG_HOOKS_OMP_SCALAR_TARGET_P): New. + * gfortran.h (enum gfc_omp_defaultmap, + enum gfc_omp_defaultmap_category): New. + * openmp.c (gfc_match_omp_clauses): Update defaultmap matching. + * trans-decl.c (gfc_finish_decl_attrs): Set GFC_DECL_SCALAR_TARGET. + * trans-openmp.c (gfc_omp_allocatable_p, gfc_omp_scalar_target_p): New. + (gfc_omp_scalar_p): Take 'ptr_alloc_ok' argument. + (gfc_trans_omp_clauses, gfc_split_omp_clauses): Update for + defaultmap changes. + * trans.h (gfc_omp_scalar_p): Update prototype. + (gfc_omp_allocatable_p, gfc_omp_scalar_target_p): New. + (struct lang_decl): Add scalar_target. + (GFC_DECL_SCALAR_TARGET, GFC_DECL_GET_SCALAR_TARGET): New. + +2021-06-14 Tobias Burnus + + * resolve.c (resolve_variable): Remove *XCNEW used to + nullify nullified memory. + +2021-06-09 Martin Liska + + * intrinsic.texi: Add missing @headitem to tables with a header. + +2021-06-09 Jakub Jelinek + + PR fortran/100965 + * trans-openmp.c (gfc_omp_finish_clause): Gimplify OMP_CLAUSE_SIZE. + +2021-06-08 Tobias Burnus + + PR middle-end/99928 + * trans-openmp.c (gfc_add_clause_implicitly): New. + (gfc_split_omp_clauses): Use it. + (gfc_free_split_omp_clauses): New. + (gfc_trans_omp_do_simd, gfc_trans_omp_parallel_do, + gfc_trans_omp_parallel_do_simd, gfc_trans_omp_distribute, + gfc_trans_omp_teams, gfc_trans_omp_target, gfc_trans_omp_taskloop, + gfc_trans_omp_master_taskloop, gfc_trans_omp_parallel_master): Use it. + +2021-06-08 Martin Liska + + * intrinsic.texi: Fix typo. + * trans-expr.c (gfc_trans_pointer_assignment): Likewise. + +2021-06-05 José Rui Faustino de Sousa + + PR fortran/100120 + PR fortran/100816 + PR fortran/100818 + PR fortran/100819 + PR fortran/100821 + * trans-array.c (gfc_get_array_span): rework the way character + array "span" was calculated. + (gfc_conv_expr_descriptor): improve handling of character sections + and unlimited polymorphic objects. + * trans-expr.c (gfc_get_character_len): new function to calculate + character string length. + (gfc_get_character_len_in_bytes): new function to calculate + character string length in bytes. + (gfc_conv_scalar_to_descriptor): add call to set the "span". + (gfc_trans_pointer_assignment): set "_len" and antecipate the + initialization of the deferred character length hidden argument. + * trans-intrinsic.c (gfc_conv_associated): set "force_no_tmp" to + avoid the creation of a temporary. + * trans-types.c (gfc_get_dtype_rank_type): rework type detection + so that unlimited polymorphic objects get proper type infomation, + also important for bind(c). + (gfc_get_dtype): add argument to pass the rank if necessary. + (gfc_get_array_type_bounds): cosmetic change to have character + arrays called character instead of unknown. + * trans-types.h (gfc_get_dtype): modify prototype. + * trans.c (get_array_span): rework the way character array "span" + was calculated. + * trans.h (gfc_get_character_len): new prototype. + (gfc_get_character_len_in_bytes): new prototype. + Add "unlimited_polymorphic" flag to "gfc_se" type to signal when + expression carries an unlimited polymorphic object. + +2021-06-04 Harald Anlauf + + PR fortran/99839 + * frontend-passes.c (inline_matmul_assign): Do not inline matmul + if the assignment to the resulting array if it is not of canonical + type (real/integer/complex/logical). + +2021-06-04 Tobias Burnus + + * dump-parse-tree.c (show_code_node): Handle + EXEC_OMP_(TARGET_)(,PARALLEL_,TEAMS_)LOOP. + +2021-06-04 Tobias Burnus + + * scanner.c (skip_fixed_omp_sentinel): Set openacc_flag if + this is not an (OpenMP) continuation line. + (skip_fixed_oacc_sentinel): Likewise for openmp_flag and OpenACC. + (gfc_next_char_literal): gfc_error_now to force error for mixed OMP/ACC + continuation once per location and return '\n'. + +2021-06-04 Tobias Burnus + + PR middle-end/99928 + * openmp.c (gfc_match_omp_clauses): Fix typo in error message. + +2021-06-04 Tobias Burnus + + PR middle-end/99928 + * dump-parse-tree.c (show_omp_clauses): Handle bind clause. + (show_omp_node): Handle loop directive. + * frontend-passes.c (gfc_code_walker): Likewise. + * gfortran.h (enum gfc_statement): Add + ST_OMP_(END_)(TARGET_)(|PARALLEL_|TEAMS_)LOOP. + (enum gfc_omp_bind_type): New. + (gfc_omp_clauses): Use it. + (enum gfc_exec_op): Add EXEC_OMP_(TARGET_)(|PARALLEL_|TEAMS_)LOOP. + * match.h (gfc_match_omp_loop, gfc_match_omp_parallel_loop, + gfc_match_omp_target_parallel_loop, gfc_match_omp_target_teams_loop, + gfc_match_omp_teams_loop): New. + * openmp.c (enum omp_mask1): Add OMP_CLAUSE_BIND. + (gfc_match_omp_clauses): Handle it. + (OMP_LOOP_CLAUSES, gfc_match_omp_loop, gfc_match_omp_teams_loop, + gfc_match_omp_target_teams_loop, gfc_match_omp_parallel_loop, + gfc_match_omp_target_parallel_loop): New. + (resolve_omp_clauses, resolve_omp_do, omp_code_to_statement, + gfc_resolve_omp_directive): Handle omp loop. + * parse.c (decode_omp_directive case_exec_markers, gfc_ascii_statement, + parse_omp_do, parse_executable): Likewise. + (parse_omp_structured_block): Remove ST_ which use parse_omp_do. + * resolve.c (gfc_resolve_blocks): Add omp loop. + * st.c (gfc_free_statement): Likewise. + * trans-openmp.c (gfc_trans_omp_clauses): Handle bind clause. + (gfc_trans_omp_do, gfc_trans_omp_parallel_do, gfc_trans_omp_distribute, + gfc_trans_omp_teams, gfc_trans_omp_target, gfc_trans_omp_directive): + Handle loop directive. + (gfc_split_omp_clauses): Likewise; fix firstprivate/lastprivate + and (in_)reduction for taskloop. + * trans.c (trans_code): Handle omp loop directive. + +2021-06-01 Tobias Burnus + + PR middle-end/99928 + * dump-parse-tree.c (show_omp_node, show_code_node): Handle + (parallel) master taskloop (simd). + * frontend-passes.c (gfc_code_walker): Set in_omp_workshare + to false for parallel master taskloop (simd). + * gfortran.h (enum gfc_statement): + Add ST_OMP_(END_)(PARALLEL_)MASTER_TASKLOOP(_SIMD). + (enum gfc_exec_op): EXEC_OMP_(PARALLEL_)MASTER_TASKLOOP(_SIMD). + * match.h (gfc_match_omp_master_taskloop, + gfc_match_omp_master_taskloop_simd, + gfc_match_omp_parallel_master_taskloop, + gfc_match_omp_parallel_master_taskloop_simd): New prototype. + * openmp.c (gfc_match_omp_parallel_master_taskloop, + gfc_match_omp_parallel_master_taskloop_simd, + gfc_match_omp_master_taskloop, + gfc_match_omp_master_taskloop_simd): New. + (gfc_match_omp_taskloop_simd): Permit 'reduction' clause. + (resolve_omp_clauses): Handle new combined directives; remove + inscan-reduction check to reduce multiple errors; add + task-reduction error for 'taskloop simd'. + (gfc_resolve_omp_parallel_blocks, + resolve_omp_do, omp_code_to_statement, + gfc_resolve_omp_directive): Handle new combined constructs. + * parse.c (decode_omp_directive, next_statement, + gfc_ascii_statement, parse_omp_do, parse_omp_structured_block, + parse_executable): Likewise. + * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise. + * st.c (gfc_free_statement): Likewise. + * trans.c (trans_code): Likewise. + * trans-openmp.c (gfc_split_omp_clauses, + gfc_trans_omp_directive): Likewise. + (gfc_trans_omp_parallel_master): Move after gfc_trans_omp_master_taskloop; + handle parallel master taskloop (simd) as well. + (gfc_trans_omp_taskloop): Take gfc_exec_op as arg. + (gfc_trans_omp_master_taskloop): New. + +2021-05-30 Gerald Pfeifer + + * gfortran.texi (BOZ literal constants): Fix typo. + +2021-05-28 Tobias Burnus + + * dump-parse-tree.c (show_iterator): New. + (show_omp_namelist): Handle iterators. + (show_omp_clauses): Handle affinity. + * gfortran.h (gfc_free_omp_namelist): New union with 'udr' and new 'ns'. + * match.c (gfc_free_omp_namelist): Add are to choose union element. + * openmp.c (gfc_free_omp_clauses, gfc_match_omp_detach, + gfc_match_omp_clause_reduction, gfc_match_omp_flush): Update + call to gfc_free_omp_namelist. + (gfc_match_omp_variable_list): Likewise; permit preceeding whitespace. + (enum omp_mask1): Add OMP_CLAUSE_AFFINITY. + (gfc_match_iterator): New. + (gfc_match_omp_clauses): Use it; update call to gfc_free_omp_namelist. + (OMP_TASK_CLAUSES): Add OMP_CLAUSE_AFFINITY. + (gfc_match_omp_taskwait): Match depend clause. + (resolve_omp_clauses): Handle affinity; update for udr/union change. + (gfc_resolve_omp_directive): Resolve clauses of taskwait. + * st.c (gfc_free_statement): Update gfc_free_omp_namelist call. + * trans-openmp.c (gfc_trans_omp_array_reduction_or_udr): Likewise + (handle_iterator): New. + (gfc_trans_omp_clauses): Handle iterators for depend/affinity clause. + (gfc_trans_omp_taskwait): Handle depend clause. + (gfc_trans_omp_directive): Update call. + +2021-05-27 Harald Anlauf + + PR fortran/100602 + * trans-intrinsic.c (gfc_conv_intrinsic_size): Use CLASS data + attributes for CLASS arrays for generation of runtime error. + +2021-05-27 Harald Anlauf + + PR fortran/100656 + * trans-array.c (gfc_conv_ss_startstride): Do not call check for + presence of a dummy argument when a symbol actually refers to a + non-dummy. + +2021-05-25 Tobias Burnus + Johannes Nendwich + + * intrinsic.texi (GERROR, GETARGS, GETLOG, NORM2, PARITY, RANDOM_INIT, + RANDOM_NUMBER): Fix typos and copy'n'paste errors. + +2021-05-24 Tobias Burnus + + PR fortran/86470 + * trans-expr.c (gfc_copy_class_to_class): Add unshare_expr. + * trans-openmp.c (gfc_is_polymorphic_nonptr, + gfc_is_unlimited_polymorphic_nonptr): New. + (gfc_omp_clause_copy_ctor, gfc_omp_clause_dtor): Handle + polymorphic scalars. + +2021-05-23 Harald Anlauf + + PR fortran/100551 + * trans-expr.c (gfc_conv_procedure_call): Adjust check for + implicit conversion of actual argument to an unlimited polymorphic + procedure argument. + +2021-05-23 Tobias Burnus + + * intrinsic.texi (ATOMIC_ADD, ATOMIC_FETCH_ADD): Use the + proper variable name in the description. + +2021-05-22 Andre Vehreschild + Steve Kargl + + PR fortran/98301 + * trans-decl.c (gfc_build_builtin_function_decls): Move decl. + * trans-intrinsic.c (conv_intrinsic_random_init): Use bool for + lib-call of caf_random_init instead of logical (4-byte). + * trans.h: Add tree var for random_init. + +2021-05-20 Marcel Vollweiler + + * openmp.c (gfc_match_omp_clauses): Support map-type-modifier 'close'. + +2021-05-18 Tobias Burnus + + PR fortran/100642 + * openmp.c (omp_code_to_statement): Add missing EXEC_OMP_DEPOBJ. + +2021-05-17 Harald Anlauf + + PR fortran/98411 + * trans-decl.c (gfc_finish_var_decl): Add check for explicit SAVE + attribute. + +2021-05-17 Tobias Burnus + + PR fortran/100633 + * resolve.c (gfc_resolve_code): Reject nonintrinsic assignments in + OMP WORKSHARE. + +2021-05-14 Tobias Burnus + + * dump-parse-tree.c (show_omp_node, show_code_node): Handle + EXEC_OMP_PARALLEL_MASTER. + * frontend-passes.c (gfc_code_walker): Likewise. + * gfortran.h (enum gfc_statement): Add ST_OMP_PARALLEL_MASTER and + ST_OMP_END_PARALLEL_MASTER. + (enum gfc_exec_op): Add EXEC_OMP_PARALLEL_MASTER.. + * match.h (gfc_match_omp_parallel_master): Handle it. + * openmp.c (gfc_match_omp_parallel_master, resolve_omp_clauses, + omp_code_to_statement, gfc_resolve_omp_directive): Likewise. + * parse.c (decode_omp_directive, case_exec_markers, + gfc_ascii_statement, parse_omp_structured_block, + parse_executable): Likewise. + * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise. + * st.c (gfc_free_statement): Likewise. + * trans-openmp.c (gfc_trans_omp_parallel_master, + gfc_trans_omp_workshare, gfc_trans_omp_directive): Likewise. + * trans.c (trans_code): Likewise. + +2021-05-14 Tobias Burnus + + * resolve.c (resolve_symbol): Handle implicit SAVE of main-program + for vars in 'omp threadprivate' and 'omp declare target'. + +2021-05-10 Martin Liska + + * decl.c (variable_decl): Use startswith + function instead of strncmp. + (gfc_match_end): Likewise. + * gfortran.h (gfc_str_startswith): Likewise. + * module.c (load_omp_udrs): Likewise. + (read_module): Likewise. + * options.c (gfc_handle_runtime_check_option): Likewise. + * primary.c (match_arg_list_function): Likewise. + * trans-decl.c (gfc_get_symbol_decl): Likewise. + * trans-expr.c (gfc_conv_procedure_call): Likewise. + * trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Likewise. + +2021-05-06 Paul Thomas + + PR fortran/46991 + PR fortran/99819 + * class.c (gfc_build_class_symbol): Remove the error that + disables assumed size class arrays. Class array types that are + not deferred shape or assumed rank are given a unique name and + placed in the procedure namespace. + * trans-array.c (gfc_trans_g77_array): Obtain the data pointer + for class arrays. + (gfc_trans_dummy_array_bias): Suppress the runtime error for + extent violations in explicit shape class arrays because it + always fails. + * trans-expr.c (gfc_conv_procedure_call): Handle assumed size + class actual arguments passed to non-descriptor formal args by + using the data pointer, stored as the symbol's backend decl. + +2021-05-05 Harald Anlauf + + PR fortran/100274 + * interface.c (gfc_compare_actual_formal): Continue checks after + emitting warning for argument length mismatch. + * trans-expr.c (gfc_conv_procedure_call): Check for NULL pointer + dereference. + +2021-05-04 Tobias Burnus + + PR testsuite/100397 + * trans-openmp.c (gfc_trans_omp_depobj): Fix pasto in enum values. + +2021-04-28 Tobias Burnus + + * openmp.c (gfc_match_omp_variable_list): Gobble whitespace before + checking whether a '%' or parenthesis-open follows as next character. + +2021-04-28 José Rui Faustino de Sousa + + PR fortran/82376 + * trans-expr.c (gfc_conv_procedure_call): Evaluate function result + and then pass a pointer. + +2021-04-26 Thomas Schwinge + Nathan Sidwell + Tom de Vries + Julian Brown + Kwok Cheung Yeung + + * lang.opt (Wopenacc-parallelism): New. + +2021-04-24 Harald Anlauf + + PR fortran/100154 + * check.c (variable_check): Allow function reference having a data + pointer result. + (arg_strlen_is_zero): New function. + (gfc_check_fgetputc_sub): Add static check of character and status + arguments. + (gfc_check_fgetput_sub): Likewise. + * intrinsic.c (add_subroutines): Fix argument name for the + character argument to intrinsic subroutines fget[c], fput[c]. + +2021-04-24 Harald Anlauf + + PR fortran/100218 + * expr.c (gfc_check_vardef_context): Extend check to allow pointer + from a function reference. + +2021-04-22 Martin Liska + + PR testsuite/100159 + PR testsuite/100192 + * frontend-passes.c (optimize_expr): Fix typos and missing comments. + +2021-04-22 Michael Meissner + + PR fortran/96983 + * trans-intrinsic.c (build_round_expr): If int type is larger than + long long, do the round and convert to the integer type. Do not + try to find a floating point type the exact size of the integer + type. + +2021-04-21 Tobias Burnus + + * dump-parse-tree.c (show_omp_namelist): Handle depobj + mutexinoutset + in the depend clause. + (show_omp_clauses, show_omp_node, show_code_node): Handle depobj. + * gfortran.h (enum gfc_statement): Add ST_OMP_DEPOBJ. + (enum gfc_omp_depend_op): Add OMP_DEPEND_UNSET, + OMP_DEPEND_MUTEXINOUTSET and OMP_DEPEND_DEPOBJ. + (gfc_omp_clauses): Add destroy, depobj_update and depobj. + (enum gfc_exec_op): Add EXEC_OMP_DEPOBJ + * match.h (gfc_match_omp_depobj): Match 'omp depobj'. + * openmp.c (gfc_match_omp_clauses): Add depobj + mutexinoutset + to depend clause. + (gfc_match_omp_depobj, resolve_omp_clauses, gfc_resolve_omp_directive): + Handle 'omp depobj'. + * parse.c (decode_omp_directive, next_statement, gfc_ascii_statement): + Likewise. + * resolve.c (gfc_resolve_code): Likewise. + * st.c (gfc_free_statement): Likewise. + * trans-openmp.c (gfc_trans_omp_clauses): Handle depobj + mutexinoutset + in the depend clause. + (gfc_trans_omp_depobj, gfc_trans_omp_directive): Handle EXEC_OMP_DEPOBJ. + * trans.c (trans_code): Likewise. + +2021-04-20 Paul Thomas + + PR fortran/100110 + * trans-decl.c (gfc_get_symbol_decl): Replace test for host + association with a check that the current and symbol namespaces + are the same. + +2021-04-19 Thomas Schwinge + + * lang.opt (fopenacc-kernels=): Remove. + +2021-04-16 José Rui Faustino de Sousa + + PR fortran/100094 + * trans-array.c (gfc_trans_deferred_array): Add code to initialize + pointers and allocatables with correct TKR parameters. + +2021-04-16 José Rui Faustino de Sousa + + PR fortran/100018 + * resolve.c: Add association check before de-referencing pointer. + +2021-04-16 Harald Anlauf + Paul Thomas + + PR fortran/63797 + * module.c (write_symtree): Do not write interface of intrinsic + procedure to module file for F2003 and newer. + +2021-04-15 Paul Thomas + + PR fortran/99307 + * symbol.c: Remove trailing white space. + * trans-array.c (gfc_trans_create_temp_array): Create a class + temporary for class expressions and assign the new descriptor + to the data field. + (build_class_array_ref): If the class expr can be extracted, + then use that for 'decl'. Class function results are reliably + handled this way. Call gfc_find_and_cut_at_last_class_ref to + eliminate largely redundant code. Remove dead code and recast + the rest of the code to extract 'decl' for remaining cases. + Call gfc_build_spanned_array_ref. + (gfc_alloc_allocatable_for_assignment): Use class descriptor + element length for 'elemsize1'. Eliminate repeat set of dtype + for class expressions. + * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Include + additional code from build_class_array_ref, and use optional + gfc_typespec pointer argument. + (gfc_trans_scalar_assign): Make use of pre and post blocks for + all class expressions. + * trans.c (get_array_span): For unlimited polymorphic exprs + multiply the span by the value of the _len field. + (gfc_build_spanned_array_ref): New function. + (gfc_build_array_ref): Call gfc_build_spanned_array_ref and + eliminate repeated code. + * trans.h: Add arg to gfc_find_and_cut_at_last_class_ref and + add prototype for gfc_build_spanned_array_ref. + +2021-04-14 Martin Liska + + * intrinsic.texi: The table has first column empty and it makes + trouble when processing makeinfo --xml output. + +2021-04-09 Tobias Burnus + + PR fortran/99817 + * trans-types.c (gfc_get_function_type): Also generate hidden + coarray argument for character arguments. + +2021-04-03 Paul Thomas + + PR fortran/99818 + * interface.c (compare_parameter): The codimension attribute is + applied to the _data field of class formal arguments. + +2021-04-01 Harald Anlauf + + PR fortran/99840 + * simplify.c (gfc_simplify_transpose): Properly initialize + resulting shape. + +2021-03-28 Paul Thomas + + PR fortran/99602 + * trans-expr.c (gfc_conv_procedure_call): Use the _data attrs + for class expressions and detect proc pointer evaluations by + the non-null actual argument list. + +2021-03-27 Steve Kargl + + * misc.c (gfc_typename): Fix off-by-one in buffer sizes. + +2021-03-26 Tobias Burnus + + PR fortran/99651 + * intrinsic.c (gfc_intrinsic_func_interface): Set + attr.proc = PROC_INTRINSIC if FL_PROCEDURE. + +2021-03-24 Tobias Burnus + + PR fortran/99369 + * resolve.c (resolve_operator): Make 'msg' buffer larger + and use snprintf. + +2021-03-23 Tobias Burnus + + PR fortran/93660 + * trans-decl.c (build_function_decl): Add comment; + increment hidden_typelist for caf_token/caf_offset. + * trans-types.c (gfc_get_function_type): Add comment; + add missing caf_token/caf_offset args. + +2021-03-22 Tobias Burnus + + PR fortran/99688 + * match.c (select_type_set_tmp, gfc_match_select_type, + gfc_match_select_rank): Fix 'name' buffersize to avoid out of bounds. + * resolve.c (resolve_select_type): Likewise. + +2021-03-19 Thomas Koenig + + * frontend-passes.c (inline_limit_check): Add rank_a + argument. If a is rank 1, set the second dimension to 1. + (inline_matmul_assign): Pass rank_a argument to inline_limit_check. + (call_external_blas): Likewise. + +2021-03-15 Thomas Koenig + + PR fortran/99345 + * frontend-passes.c (doloop_contained_procedure_code): + Properly handle EXEC_IOLENGTH. + +2021-03-15 Paul Thomas + + PR fortran/99545 + * trans-stmt.c (gfc_trans_allocate): Mark the initialization + assignment by setting init_flag. + +2021-03-14 Harald Anlauf + Paul Thomas + + * trans-expr.c (gfc_conv_procedure_call): Fix runtime checks for + CLASS arguments. + * trans-intrinsic.c (gfc_conv_intrinsic_size): Likewise. + +2021-03-13 Paul Thomas + + PR fortran/99125 + * trans-array.c (gfc_conv_expr_descriptor): For deferred length + length components use the ss_info string length instead of + gfc_get_expr_charlen. Make sure that the deferred string length + is a variable before assigning to it. Otherwise use the expr. + * trans-expr.c (gfc_conv_string_length): Make sure that the + deferred string length is a variable before assigning to it. + +2021-03-12 Tobias Burnus + + PR fortran/99514 + * resolve.c (resolve_symbol): Accept vars which are in DATA + and hence (either) implicit SAVE (or in common). + +2021-03-10 Harald Anlauf + + PR fortran/99205 + * data.c (gfc_assign_data_value): Reject non-constant character + length for lvalue. + * trans-array.c (gfc_conv_array_initializer): Restrict loop to + elements which are defined to avoid NULL pointer dereference. + +2021-03-10 Tobias Burnus + + * intrinsic.texi (MIN): Correct 'maximum' to 'minimum'. + +2021-03-10 Eric Botcazou + + PR fortran/96983 + * trans-intrinsic.c (build_round_expr): Do not implicitly assume + that __float128 is the 128-bit floating-point type. + +2021-03-08 Harald Anlauf + + PR fortran/49278 + * data.c (gfc_assign_data_value): Reject variable with PARAMETER + attribute in DATA statement. + +2021-03-05 Tobias Burnus + + PR fortran/99355 + PR fortran/57871 + * invoke.texi (-freal{4,8}-real-*): Extend description. + * primary.c (match_real_constant): Also promote real literals + with '_kind' number. + +2021-03-04 Tobias Burnus + + PR fortran/99355 + * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Avoid + redoing kind conversions. + * primary.c (match_real_constant): Likewise. + +2021-02-28 Jakub Jelinek + + PR fortran/99303 + * openmp.c (gfc_omp_requires_add_clause): Fix up diagnostic message + wordings. + (resolve_omp_clauses): Likewise. + +2021-02-28 Jakub Jelinek + + PR fortran/99300 + * frontend-passes.c (doloop_code): Replace double space in diagnostics + with a single space. + +2021-02-24 Paul Thomas + + PR fortran/98342 + * trans-expr.c (gfc_conv_derived_to_class): Add optional arg. + 'derived_array' to hold the fixed, parmse expr in the case of + assumed rank formal arguments. Deal with optional arguments. + (gfc_conv_procedure_call): Null 'derived' array for each actual + argument. Add its address to the call to gfc_conv_derived_to_ + class. Access the 'data' field of scalar descriptors before + deallocating allocatable components. Also strip NOPs before the + calls to gfc_deallocate_alloc_comp. Use 'derived' array as the + input to gfc_deallocate_alloc_comp if it is available. + * trans.h : Include the optional argument 'derived_array' to + the prototype of gfc_conv_derived_to_class. The default value + is NULL_TREE. + +2021-02-23 Paul Thomas + + PR fortran/99124 + * resolve.c (resolve_fl_procedure): Include class results in + the test for F2018, C15100. + * trans-array.c (get_class_info_from_ss): Do not use the saved + descriptor to obtain the class expression for variables. Use + gfc_get_class_from_expr instead. + +2021-02-23 Harald Anlauf + + PR fortran/99206 + * simplify.c (gfc_simplify_reshape): Set string length for + character arguments. + +2021-02-22 Tobias Burnus + + PR fortran/99171 + * trans-openmp.c (gfc_omp_is_optional_argument): Regard optional + dummy procs as nonoptional as no special treatment is needed. + +2021-02-21 Harald Anlauf + + * trans-expr.c (gfc_conv_procedure_call): Do not add clobber to + allocatable intent(out) argument. + +2021-02-19 Jerry DeLisle + + PR fortran/98686 + * match.c (gfc_match_namelist): If BT_UNKNOWN, check for + IMPLICIT NONE and and issue an error, otherwise set the type + to its IMPLICIT type so that any subsequent use of objects will + will confirm their types. + +2021-02-19 Harald Anlauf + + * symbol.c (gfc_add_flavor): Reverse order of conditions. + +2021-02-19 Tobias Burnus + + PR fortran/99010 + * dependency.c (gfc_dep_resolver): Fix coarray handling. + +2021-02-19 Tobias Burnus + + PR fortran/99146 + * interface.c: + +2021-02-19 Tobias Burnus + + PR fortran/99027 + * simplify.c (simplify_bound_dim): Honor DIMEN_ELEMENT + when using dim=. + +2021-02-17 Julian Brown + + * openmp.c (resolve_omp_clauses): Disallow selecting components + of arrays of derived type. + +2021-02-17 Julian Brown + + * trans-openmp.c (gfc_trans_omp_clauses): Handle element selection + for arrays of derived types. + +2021-02-16 Tobias Burnus + + * expr.c (gfc_is_simplify_contiguous): Handle REF_INQUIRY, i.e. + %im and %re which are EXPR_VARIABLE. + * openmp.c (resolve_omp_clauses): Diagnose %re/%im explicitly. + +2021-02-16 Tobias Burnus + + PR fortran/99111 + * io.c (resolve_tag_format): Reject BT_DERIVED/CLASS/VOID + as (array-valued) FORMAT tag. + +2021-02-12 Tobias Burnus + + PR fortran/99043 + * trans-expr.c (gfc_conv_procedure_call): Don't reset + rank of assumed-rank array. + +2021-02-11 Paul Thomas + + PR fortran/98897 + * match.c (gfc_match_call): Include associate names as possible + entities with typebound subroutines. The target needs to be + resolved for the type. + +2021-02-11 Paul Thomas + + PR fortran/99060 + * primary.c (gfc_match_varspec): Test for non-null 'previous' + before using its name in the error message. + +2021-02-11 Tobias Burnus + + * intrinsic.texi (FINDLOC): Add 'MASK' to argument table. + (MAXLOC, MAXVAL, MINLOC, MINVAL): For 'MASK', remove 'an + array' as scalars are also permitted. + +2021-02-10 Julian Brown + + PR fortran/98979 + * openmp.c (resolve_omp_clauses): Omit OpenACC update in + contiguity check and stride-specified error. + +2021-02-04 Julian Brown + + * openmp.c (resolve_omp_clauses): Omit OpenACC update in + contiguity check and stride-specified error. + +2021-02-04 Julian Brown + + * trans-openmp.c (gfc_trans_omp_clauses): Use class_pointer attribute + for BT_CLASS. + +2021-02-04 Julian Brown + + * trans-openmp.c (gfc_trans_omp_clauses): Fix dereferencing for + BT_DERIVED members. + +2021-02-04 Tobias Burnus + + * openmp.c (resolve_omp_clauses): Explicitly diagnose + substrings as not permitted. + +2021-02-03 Jeff Law + + * intrinsic.texi (ANINT): Fix typo. + +2021-02-03 Tobias Burnus + + PR fortran/98913 + * dependency.c (gfc_dep_resolver): Treat local access + to coarrays like any array access in dependency analysis. + +2021-01-28 Harald Anlauf + + PR fortran/86470 + * trans.c (gfc_call_malloc): Allocate area of size 1 if passed + size is NULL (as documented). + +2021-01-27 Paul Thomas + + PR fortran/93924 + PR fortran/93925 + * trans-expr.c (gfc_conv_procedure_call): Suppress the call to + gfc_conv_intrinsic_to_class for unlimited polymorphic procedure + pointers. + (gfc_trans_assignment_1): Similarly suppress class assignment + for class valued procedure pointers. + +2021-01-27 Paul Thomas + + PR fortran/98472 + * trans-array.c (gfc_conv_expr_descriptor): Include elemental + procedure pointers in the assert under the comment 'elemental + function' and eliminate the second, spurious assert. + +2021-01-25 Harald Anlauf + + PR fortran/70070 + * data.c (create_character_initializer): Check substring indices + against bounds. + (gfc_assign_data_value): Catch error returned from + create_character_initializer. + +2021-01-25 Tobias Burnus + + * intrinsic.texi (CO_BROADCAST, CO_MIN, CO_REDUCE, CO_SUM): Fix typos. + +2021-01-25 Steve Kargl + + PR fortran/98517 + * resolve.c (resolve_charlen): Check that length expression is + present before testing for scalar/integer.. + +2021-01-22 Paul Thomas + + PR fortran/98565 + * trans-intrinsic.c (gfc_conv_associated): Do not add a _data + component for scalar class function targets. Instead, fix the + function result and access the _data from that. + +2021-01-21 Jorge D'Elia + + * intrinsic.texi (CO_MAX): Fix typo. + +2021-01-21 Paul Thomas + + PR fortran/96320 + * decl.c (gfc_match_modproc): It is not an error to find a + module procedure declaration within a contains block. + * expr.c (gfc_check_vardef_context): Pure procedure result is + assignable. Change 'own_scope' accordingly. + * resolve.c (resolve_typebound_procedure): A procedure that + has the module procedure attribute is almost certainly a + module procedure, whatever its interface. + +2021-01-19 Tobias Burnus + + PR fortran/98476 + * openmp.c (resolve_omp_clauses): Change use_device_ptr + to use_device_addr for unless type(c_ptr); check all + list item for is_device_ptr. + +2021-01-16 Kwok Cheung Yeung + + * dump-parse-tree.c (show_omp_clauses): Handle detach clause. + * frontend-passes.c (gfc_code_walker): Walk detach expression. + * gfortran.h (struct gfc_omp_clauses): Add detach field. + (gfc_c_intptr_kind): New. + * openmp.c (gfc_free_omp_clauses): Free detach clause. + (gfc_match_omp_detach): New. + (enum omp_mask1): Add OMP_CLAUSE_DETACH. + (enum omp_mask2): Remove OMP_CLAUSE_DETACH. + (gfc_match_omp_clauses): Handle OMP_CLAUSE_DETACH for OpenMP. + (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DETACH. + (resolve_omp_clauses): Prevent use of detach with mergeable and + overriding the data sharing mode of the event handle. + * trans-openmp.c (gfc_trans_omp_clauses): Handle detach clause. + * trans-types.c (gfc_c_intptr_kind): New. + (gfc_init_kinds): Initialize gfc_c_intptr_kind. + * types.def + (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename + to... + (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR): + ...this. Add extra argument. + +2021-01-14 Harald Anlauf + + * gfortran.h (gfc_resolve_substring): Add prototype. + * primary.c (match_string_constant): Simplify substrings with + constant starting and ending points. + * resolve.c: Rename resolve_substring to gfc_resolve_substring. + (gfc_resolve_ref): Use renamed function gfc_resolve_substring. + +2021-01-14 Harald Anlauf + + PR fortran/98661 + * resolve.c (resolve_component): Derived type components with + ALLOCATABLE or POINTER attribute shall have a deferred shape. + +2021-01-14 Harald Anlauf + + Revert: + 2021-01-14 Harald Anlauf + + PR fortran/98661 + * resolve.c (resolve_component): Derived type components with + ALLOCATABLE or POINTER attribute shall have a deferred shape. + +2021-01-14 Harald Anlauf + + PR fortran/98661 + * resolve.c (resolve_component): Derived type components with + ALLOCATABLE or POINTER attribute shall have a deferred shape. + +2021-01-08 Paul Thomas + + PR fortran/93794 + * trans-expr.c (gfc_conv_component_ref): Remove the condition + that deferred character length components only be allocatable. + +2021-01-08 Paul Thomas + + PR fortran/98458 + * simplify.c (is_constant_array_expr): If an array constructor + expression has elements other than constants or structures, try + fixing the expression with gfc_reduce_init_expr. Also, if shape + is NULL, obtain the array size and set it. + +2021-01-07 Paul Thomas + + PR fortran/93701 + * resolve.c (find_array_spec): Put static prototype for + resolve_assoc_var before this function and call for associate + variables. + +2021-01-06 Harald Anlauf + + * resolve.c (resolve_component): Add check for valid CLASS + reference before trying to access CLASS data. + +2021-01-04 Martin Liska + + * ChangeLog-2018: Remove duplicate ChangeLog entries. + +2021-01-01 Harald Anlauf + + * class.c (gfc_find_vtab): Add check on attribute is_class. + +2021-01-01 Jakub Jelinek + + * gfortranspec.c (lang_specific_driver): Update copyright notice + dates. + * gfc-internals.texi: Bump @copying's copyright year. + * gfortran.texi: Ditto. + * intrinsic.texi: Ditto. + * invoke.texi: Ditto. + +2021-01-01 Jakub Jelinek + + * ChangeLog-2020: Rotate ChangeLog. New file. + +Copyright (C) 2021 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/gcc/testsuite/ChangeLog-2021 b/gcc/testsuite/ChangeLog-2021 new file mode 100644 index 0000000..21b8841 --- /dev/null +++ b/gcc/testsuite/ChangeLog-2021 @@ -0,0 +1,20646 @@ +2021-12-31 Francois-Xavier Coudert + + PR fortran/89639 + * gfortran.dg/ieee/ieee_9.f90: Adjust test for targets without + REAL128. + +2021-12-31 Uroš Bizjak + + * lib/target-supports.exp (check_vect_slp_store_usage): + Handle TEST_V2QI_2. + (check_effective_target_vect_slp_v2qi_store_unalign): New procedure. + * c-c++-common/Wstringop-overflow-2.c: XFAIL specific tests for + vect_slp_v2qi_store_unalign targets. + * g++.dg/warn/Wstringop-overflow-3.C: Ditto. + * gcc.dg/Wstringop-overflow-28.c: Ditto. + * gcc.dg/Wstringop-overflow-68.c: Ditto. + * gcc.dg/Wstringop-overflow-75.c: Ditto. + * gcc.dg/Wstringop-overflow-76.c: Ditto. + +2021-12-30 Jakub Jelinek + + PR rtl-optimization/103756 + * g++.dg/opt/pr103756.C: New test. + +2021-12-30 Jakub Jelinek + + PR preprocessor/89971 + * c-c++-common/cpp/va-opt-9.c: New test. + +2021-12-30 Jakub Jelinek + + PR debug/103808 + * gcc.dg/pr103808.c: New test. + +2021-12-30 Jakub Jelinek + + PR c++/103012 + PR c++/103012 + * g++.dg/cpp/pr103012.C: New test. + * g++.target/i386/pr103012.C: New test. + +2021-12-30 Jakub Jelinek + + PR rtl-optimization/103860 + * gcc.dg/pr103860.c: New test. + +2021-12-30 Xionghu Luo + + * gcc.dg/loop-invariant-2.c: New. + +2021-12-29 Jakub Jelinek + + PR debug/103742 + * g++.dg/opt/pr103742.C: New test. + +2021-12-29 Francois-Xavier Coudert + + PR testsuite/47334 + PR testsuite/103823 + * lib/prune.exp: Prune some warnings related to LTO and + visibility. + +2021-12-29 Harald Anlauf + + PR fortran/102332 + * gfortran.dg/pr102332.f90: New test. + +2021-12-29 Xionghu Luo + + PR tree-optimization/103793 + * gcc.dg/pr103793.c: New test. + +2021-12-28 Francois-Xavier Coudert + + PR fortran/103828 + * gfortran.dg/c_char_tests_3.f90: New file. + * gfortran.dg/c_char_tests_3_c.c: New file. + * gfortran.dg/c_char_tests_4.f90: New file. + * gfortran.dg/c_char_tests_5.f90: New file. + +2021-12-28 Jason Merrill + + PR c++/99968 + * g++.dg/ext/is_enum2.C: New test. + +2021-12-28 Jakub Jelinek + + PR middle-end/103813 + * gcc.c-torture/compile/pr103813.c: New test. + +2021-12-28 Jakub Jelinek + + PR rtl-optimization/103837 + * gcc.dg/pr103837.c: New test. + +2021-12-28 Jakub Jelinek + + PR debug/103838 + * gcc.dg/pr103838.c: New test. + +2021-12-28 Jakub Jelinek + + PR target/103842 + * g++.dg/opt/pr103842.C: New test. + +2021-12-28 Haochen Jiang + + * gcc.target/i386/amx-check.h (check_float_tile_register): + New check function for float to prevent precision loss. + * gcc.target/i386/amxbf16-dpbf16ps-2.c: Correct the type convert + and byte offset. Use the new check function. + +2021-12-27 Patrick Palka + + PR c++/101239 + * g++.dg/template/sfinae32a.C: New test. + +2021-12-27 Patrick Palka + + PR c++/103700 + * g++.dg/template/sfinae32.C: New test. + +2021-12-27 H.J. Lu + + * gcc.target/i386/pr103762-1a.c: New test. + * gcc.target/i386/pr103762-1b.c: Likewise. + * gcc.target/i386/pr103762-1c.c: Likewise. + +2021-12-27 Uroš Bizjak + + PR target/95046 + * gfortran.dg/extract_recip_1.f: Adjust testcase. + +2021-12-27 LiaoShihua + + * gcc.target/riscv/pr103302.c: skip if -march=rv32* + +2021-12-26 H.J. Lu + + PR target/103785 + * gcc.target/i386/pr103785.c: New test. + +2021-12-26 Francois-Xavier Coudert + + PR libfortran/98076 + * gfortran.dg/pr98076.f90: New test. + +2021-12-24 Uroš Bizjak + + PR target/95046 + PR target/103797 + * gcc.target/i386/pr95046-1.c (test_div): Add. + (dg-options): Add -mno-recip. + +2021-12-24 Iain Sandoe + + * gcc.dg/darwin-aligned-globals.c: New test. + * gcc.dg/darwin-comm-1.c: New test. + * gcc.dg/attr-aligned.c: Amend for new alignment values on + Darwin. + * gcc.target/i386/pr89261.c: Likewise. + +2021-12-23 H.J. Lu + + * gcc.target/i386/smuldi3_highpart.c: Replace long with long long. + +2021-12-23 Roger Sayle + Uroš Bizjak + + PR target/103773 + * gcc.target/i386/pr103773-2.c: New test case. + * gcc.target/i386/pr103773.c: New test case. + +2021-12-23 konglin1 + + * gcc.target/i386/avx512bf16-cvtsbh2ss-1.c: New test. + * gcc.target/i386/avx512bf16-vcvtpbh2ps-1.c: Ditto. + * gcc.target/i386/avx512bf16vl-cvtness2sbh-1.c: Ditto. + * gcc.target/i386/avx512bf16vl-vcvtpbh2ps-1.c: Ditto. + +2021-12-23 liuhongt + + * gcc.target/i386/avx512bw-pr103750-1.c: New test. + * gcc.target/i386/avx512bw-pr103750-2.c: New test. + * gcc.target/i386/avx512f-pr103750-1.c: New test. + * gcc.target/i386/avx512f-pr103750-2.c: New test. + * gcc.target/i386/avx512fp16-pr103750-1.c: New test. + * gcc.target/i386/avx512fp16-pr103750-2.c: New test. + +2021-12-22 Harald Anlauf + + PR fortran/103778 + * gfortran.dg/illegal_boz_arg_3.f90: New test. + +2021-12-22 Harald Anlauf + + PR fortran/103776 + * gfortran.dg/select_10.f90: New test. + +2021-12-22 Murray Steele + + * gcc.target/arm/mve/mve.exp: Add new subdirectories. + * gcc.target/arm/mve/general-c/type_redef_1.c: New test. + * gcc.target/arm/mve/general/double_pragmas_1.c: New test. + * gcc.target/arm/mve/general/nomve_1.c: New test. + +2021-12-21 Jiang Haochen + + * gcc.target/i386/bmi-1.c: Add test for new intrinsic. + * gcc.target/i386/bmi-2.c: Ditto. + * gcc.target/i386/bmi-3.c: Ditto. + +2021-12-21 Xionghu Luo + + * gcc.dg/tree-ssa/recip-3.c: Adjust. + * gcc.dg/tree-ssa/ssa-lim-19.c: New test. + * gcc.dg/tree-ssa/ssa-lim-20.c: New test. + * gcc.dg/tree-ssa/ssa-lim-21.c: New test. + * gcc.dg/tree-ssa/ssa-lim-22.c: New test. + * gcc.dg/tree-ssa/ssa-lim-23.c: New test. + +2021-12-21 Xionghu Luo + + PR middle-end/103270 + * gcc.dg/pr103270.c: New test. + +2021-12-20 Patrick Palka + + * g++.dg/lookup/memfn1.C: New test. + * g++.dg/template/non-dependent16b.C: New test. + +2021-12-20 Olivier Hainque + + * gcc.dg/vect/vect-simd-20.c: Fix size of p[] + to accommodate the number of strides performed + by foo() for s == 78. + +2021-12-20 Roger Sayle + Uroš Bizjak + + * gcc.target/i386/smuldi3_highpart.c: New test case. + +2021-12-20 Patrick Palka + + * g++.dg/cpp0x/error2.C: Make the call to foo type-dependent in + order to avoid latent pretty-printing issue for FUNCTION_DECL + inside MODOP_EXPR. + * g++.dg/cpp0x/fntmp-equiv1.C: Make the calls to d, d2 and d3 + within the function signatures dependent. + * g++.dg/template/non-dependent16.C: New test. + * g++.dg/template/non-dependent16a.C: New test. + * g++.dg/template/non-dependent17.C: New test. + +2021-12-20 Jan Hubicka + + PR ipa/103669 + * g++.dg/torture/pr103669.C: New test. + +2021-12-20 liuhongt + + * gcc.target/i386/pr98468.c: New test. + +2021-12-19 Andrew Pinski + + * gcc.dg/uninit-pr89230-1.c: Change the dg-bogus messages + around and xfail both of them. + +2021-12-19 Patrick Palka + + PR c++/94376 + * g++.dg/cpp0x/lambda/lambda-nested9a.C: New test. + +2021-12-19 Patrick Palka + + PR c++/103714 + * g++.dg/cpp2a/concepts-uneval5.C: New test. + +2021-12-19 Francois-Xavier Coudert + + * gcc.dg/pr100509.c: Needs alias. + * gcc.dg/pragma-diag-10.c: Needs alias. + +2021-12-18 Harald Anlauf + + PR fortran/103412 + * gfortran.dg/illegal_boz_arg_2.f90: New test. + +2021-12-18 Roger Sayle + Uroš Bizjak + + PR target/103611 + * gcc.target/i386/pr103611-2.c: New test case. + +2021-12-18 Roger Sayle + + PR target/32803 + * gcc.target/i386/pr32803.c: New test case. + +2021-12-18 François-Xavier Coudert + + * gcc.dg/darwin-minversion-link.c: Test darwin21. + * obj-c++.dg/cxx-ivars-3.mm: Homogeneize darwin versions. + * obj-c++.dg/objc-gc-3.mm: Homogeneize darwin versions. + * objc.dg/objc-gc-4.m: Homogeneize darwin versions. + +2021-12-17 Marek Polacek + + PR c/103649 + * c-c++-common/Wno-attributes-6.c: New test. + +2021-12-17 David Edelsohn + + * gcc.target/powerpc/fold-vec-insert-float-p9.c + +2021-12-17 Olivier Hainque + + * gcc.target/powerpc/pr97142.c: Add -mdejagnu-cpu=power7 + to the dg-options. + +2021-12-17 Marek Polacek + + PR c++/103749 + * g++.dg/template/redecl4.C: Adjust dg-error. + * g++.dg/diagnostic/redeclaration-2.C: New test. + +2021-12-17 Segher Boessenkool + + PR target/103624 + * gcc.target/powerpc/darn-0.c: Remove target clause. + * gcc.target/powerpc/darn-1.c: Remove target clause. Remove lp64 + requirement. Change return type to long. + * gcc.target/powerpc/darn-2.c: Ditto. + * gcc.target/powerpc/darn-3.c: Remove target clause. + +2021-12-17 Iain Sandoe + + PR c++/100127 + * g++.dg/coroutines/pr100127.C: New test. + +2021-12-17 Iain Sandoe + + PR c++/100772 + * g++.dg/coroutines/pr100772-a.C: New test. + * g++.dg/coroutines/pr100772-b.C: New test. + +2021-12-17 Iain Sandoe + + PR c++/96517 + * g++.dg/coroutines/pr96517.C: New test. + +2021-12-17 David Edelsohn + + * gcc.target/powerpc/pragma-optimize.c: Require ifunc support. + +2021-12-17 Richard Sandiford + + PR tree-optimization/103744 + * gcc.dg/vect/pr103744-1.c: New test. + * gcc.dg/vect/pr103744-2.c: Likewise. + +2021-12-17 Tamar Christina + + PR tree-optimization/103741 + * gcc.target/aarch64/pr103741.c: New test. + +2021-12-17 Haochen Jiang + + PR target/100738 + * g++.target/i386/avx512vl-pr100738-1.C: New test. + +2021-12-17 Siddhesh Poyarekar + + * g++.dg/ext/builtin-dynamic-object-size1.C: New test. + * g++.dg/ext/builtin-dynamic-object-size2.C: Likewise. + * gcc.dg/builtin-dynamic-alloc-size.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-1.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-10.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-11.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-12.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-13.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-14.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-15.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-16.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-17.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-18.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-19.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-2.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-3.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-4.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-5.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-6.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-7.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-8.c: Likewise. + * gcc.dg/builtin-dynamic-object-size-9.c: Likewise. + * gcc.dg/builtin-object-size-16.c: Adjust to allow inclusion + from builtin-dynamic-object-size-16.c. + * gcc.dg/builtin-object-size-17.c: Likewise. + +2021-12-17 Siddhesh Poyarekar + + * gcc.dg/builtin-object-size-1.c (test9): New test. + (main): Call it. + * gcc.dg/builtin-object-size-2.c (test8): New test. + (main): Call it. + * gcc.dg/builtin-object-size-3.c (test9): New test. + (main): Call it. + * gcc.dg/builtin-object-size-4.c (test8): New test. + (main): Call it. + * gcc.dg/builtin-object-size-5.c (test5, test6, test7): New + tests. + +2021-12-17 Jason Merrill + + PR c++/103681 + * g++.dg/abi/macro0.C: Update value. + * g++.dg/abi/no_unique_address6.C: New test. + * g++.dg/abi/nsdmi-aggr1.C: New test. + * g++.dg/abi/nsdmi-aggr1a.C: New test. + +2021-12-16 Sandra Loosemore + + * gcc.dg/20021029-1.c: Build with -G0 for nios2. + +2021-12-16 Marek Polacek + + PR c++/99980 + * g++.dg/cpp0x/noexcept71.C: New test. + +2021-12-16 Martin Sebor + + PR c++/103703 + * g++.dg/warn/Wmismatched-tags-9.C: New test. + +2021-12-16 Martin Sebor + + PR testsuite/103751 + * gcc.dg/Warray-bounds-48.c: Fix member alignment. + +2021-12-16 Patrick Palka + + PR c++/51577 + PR c++/83035 + PR c++/100465 + * g++.dg/lookup/operator-3.C: Split out operator overload + declarations into ... + * g++.dg/lookup/operator-3-ops.h: ... here. + * g++.dg/lookup/operator-3a.C: New test. + * g++.dg/lookup/operator-4.C: New test. + * g++.dg/lookup/operator-4a.C: New test. + * g++.dg/lookup/operator-5.C: New test. + * g++.dg/lookup/operator-5a.C: New test. + * g++.dg/lookup/operator-6.C: New test. + * g++.dg/lookup/operator-7.C: New test. + * g++.dg/lookup/operator-8.C: New test. + +2021-12-16 Uroš Bizjak + + PR target/103571 + * gcc.target/i386/pr102812.c (dg-final): Do not scan for movdqa. + +2021-12-16 Martin Liska + + PR c++/103696 + * g++.target/i386/pr103696.C: New test. + +2021-12-16 Francois-Xavier Coudert + + * gfortran.dg/iostat_5.f90: New file. + +2021-12-16 Francois-Xavier Coudert + + * gfortran.dg/date_and_time_1.f90: New file. + +2021-12-15 Marek Polacek + + PR c++/102229 + * g++.dg/cpp1y/decltype-auto5.C: New test. + +2021-12-15 Thomas Schwinge + + * lib/fortran-torture.exp (fortran-torture-compile) + (fortran-torture-execute): Be more informative for ICEs. + * lib/gcc-defs.exp (${tool}_check_compile): Likewise. + * lib/gcc-dg.exp (gcc-dg-test-1): Likewise. + * lib/go-torture.exp (go-torture-compile, go-torture-execute): + Likewise. + +2021-12-15 Martin Sebor + + PR tree-optimization/78969 + * gcc.dg/tree-ssa/builtin-snprintf-warn-6.c: New test. + +2021-12-15 Roger Sayle + + * gcc.target/nvptx/float16-2.c: New test case. + * gcc.target/nvptx/tanh-1.c: New test case. + +2021-12-15 Richard Sandiford + Tamar Christina + + PR target/103094 + * gcc.target/aarch64/pr103094.c: New test. + +2021-12-15 Tamar Christina + + PR rtl-optimization/103350 + * gcc.target/aarch64/pr103350-1.c: New test. + * gcc.target/aarch64/pr103350-2.c: New test. + +2021-12-15 Jakub Jelinek + + PR c++/103408 + * g++.dg/cpp23/auto-fncast11.C: Fix expected diagnostic wording. + +2021-12-15 Jakub Jelinek + + PR c++/103704 + * g++.dg/gomp/pr103704.C: New test. + +2021-12-15 Haochen Jiang + + PR target/101796 + * gcc.target/i386/pr101796-1.c: New test. + +2021-12-15 Michael Meissner + + * gcc.target/powerpc/vec-splat-constant-df.c: New test. + * gcc.target/powerpc/vec-splat-constant-sf.c: New test. + +2021-12-15 Michael Meissner + + * gcc.target/powerpc/pr86731-fwrapv-longlong.c: Update insn + regex for power10. + * gcc.target/powerpc/vec-splat-constant-v2df.c: New test. + * gcc.target/powerpc/vec-splat-constant-v2di.c: New test. + +2021-12-15 Michael Meissner + + * gcc.target/powerpc/vec-splat-constant-v16qi.c: New test. + * gcc.target/powerpc/vec-splat-constant-v4sf.c: New test. + * gcc.target/powerpc/vec-splat-constant-v4si.c: New test. + * gcc.target/powerpc/vec-splat-constant-v8hi.c: New test. + * gcc.target/powerpc/vec-splati-runnable.c: Update insn count. + +2021-12-15 Michael Meissner + + * gcc.target/powerpc/float128-constant.c: New test. + +2021-12-15 Alexandre Oliva + + PR target/100518 + * gcc.target/aarch64/pr100518.c: New. + +2021-12-15 Alexandre Oliva + + PR middle-end/100843 + * gcc.dg/pr100843.c: New. + +2021-12-14 liuhongt + + * gcc.c-torture/compile/pr103682.c: New test. + +2021-12-14 Peter Bergner + + PR target/103548 + * gcc.target/powerpc/mma-builtin-10-pair.c: New test. + * gcc.target/powerpc/mma-builtin-10-quad.c: New test. + +2021-12-14 Harald Anlauf + + PR fortran/103717 + * gfortran.dg/do_check_19.f90: New test. + +2021-12-14 Harald Anlauf + + PR fortran/103718 + PR fortran/103719 + * gfortran.dg/do_check_18.f90: New test. + +2021-12-14 Petter Tomner + + * jit.dg/all-non-failing-tests.h: Added two tests + * jit.dg/test-error-ctor-array-wrong-obj.c: New + * jit.dg/test-error-ctor-struct-too-big.c: New + * jit.dg/test-error-ctor-struct-wrong-field-obj.c: New + * jit.dg/test-error-ctor-struct-wrong-type.c: New + * jit.dg/test-error-ctor-struct-wrong-type2.c + * jit.dg/test-error-ctor-union-wrong-field-name.c: New + * jit.dg/test-error-global-already-init.c: New + * jit.dg/test-error-global-common-section.c: New + * jit.dg/test-error-global-init-too-small-array.c: New + * jit.dg/test-error-global-lvalue-init.c: New + * jit.dg/test-error-global-nonconst-init.c: New + * jit.dg/test-global-init-rvalue.c: New + * jit.dg/test-local-init-rvalue.c: New + +2021-12-14 Harald Anlauf + + PR libfortran/103634 + * gfortran.dg/intrinsic_pack_6.f90: New test. + +2021-12-14 Jan Hubicka + + * gcc.dg/analyzer/data-model-1.c: Disable ipa-modref. + * gcc.dg/uninit-38.c: Likewise. + * gcc.dg/uninit-pr98578.c: Liewise. + +2021-12-14 Manfred Schwarb + + PR fortran/91497 + * gfortran.dg/pr91497.f90: Adjust test to use + dg-require-effective-target directive. + * gfortran.dg/pr91497_2.f90: New test to cover all targets. + Cover MAX1 and MIN1 intrinsics. + +2021-12-14 Vladimir N. Makarov + + PR target/99531 + * gcc.target/i386/pr99531.c: Do not scan for ia32. + +2021-12-14 Przemyslaw Wirkus + + * gcc.target/aarch64/acle/ls64_asm.c: New test. + * gcc.target/aarch64/acle/ls64_ld64b.c: New test. + * gcc.target/aarch64/acle/ls64_ld64b-2.c: New test. + * gcc.target/aarch64/acle/ls64_ld64b-3.c: New test. + * gcc.target/aarch64/acle/ls64_st64b.c: New test. + * gcc.target/aarch64/acle/ls64_ld_st_o0.c: New test. + * gcc.target/aarch64/acle/ls64_st64b-2.c: New test. + * gcc.target/aarch64/acle/ls64_st64bv.c: New test. + * gcc.target/aarch64/acle/ls64_st64bv-2.c: New test. + * gcc.target/aarch64/acle/ls64_st64bv-3.c: New test. + * gcc.target/aarch64/acle/ls64_st64bv0.c: New test. + * gcc.target/aarch64/acle/ls64_st64bv0-2.c: New test. + * gcc.target/aarch64/acle/ls64_st64bv0-3.c: New test. + * gcc.target/aarch64/pragma_cpp_predefs_2.c: Add checks + for __ARM_FEATURE_LS64. + +2021-12-14 Martin Liska + + * gcc.target/i386/avx2-psraq-1.c: Use ARRAY_SIZE. + * gcc.target/i386/m128-check.h: Move it to the top-level + context. + * gcc.target/i386/sse2-psraq-1.c: Use ARRAY_SIZE. + * gcc.target/i386/sse4_2-check.h: Include the header with + ARRAY_SIZE definition. + +2021-12-14 Patrick Palka + + PR c++/103408 + * g++.dg/concepts/diagnostic18.C: Expect a "constraints on a + non-templated function" error. + * g++.dg/cpp23/auto-fncast11.C: New test. + +2021-12-14 Jakub Jelinek + + PR c/103587 + * gcc.dg/pr103587.c: New test. + +2021-12-14 Thomas Schwinge + + PR fortran/103576 + PR testsuite/103697 + * gfortran.dg/goacc/privatization-1-compute-loop.f90: Adjust. + * gfortran.dg/goacc/privatization-1-compute.f90: Likewise. + * gfortran.dg/goacc/privatization-1-routine_gang-loop.f90: + Likewise. + * gfortran.dg/goacc/privatization-1-routine_gang.f90: Likewise. + +2021-12-13 Vladimir N. Makarov + + PR target/99531 + * gcc.target/i386/pr99531.c: New test. + +2021-12-13 Roger Sayle + + * gcc.target/i386/pr103611-1.c: New test case. + +2021-12-13 Kyrylo Tkachov + + * gcc.target/aarch64/mops_3.c: New test. + +2021-12-13 Kyrylo Tkachov + + * gcc.target/aarch64/mops_2.c: New test. + +2021-12-13 Kyrylo Tkachov + + * gcc.target/aarch64/mops_1.c: New test. + +2021-12-13 Tobias Burnus + + * gfortran.dg/gomp/atomic-25.f90: Remove sorry, fix + add checks. + * gfortran.dg/gomp/atomic-26.f90: Likewise. + * gfortran.dg/gomp/atomic-21.f90: New test. + +2021-12-13 Jan Hubicka + + PR ipa/103513 + * gcc.c-torture/compile/pr103513.c: New test. + +2021-12-13 Kewen Lin + + PR target/103515 + * gcc.target/powerpc/pr103515.c: New test. + +2021-12-12 Antoni Boucher + + PR target/100688 + * jit.dg/all-non-failing-tests.h: Mention new test + link-section-assembler. + * jit.dg/test-link-section-assembler.c: New test. + * jit.dg/jit.exp: New helper function to test that the + assembly contains a pattern. + +2021-12-12 Roger Sayle + + * gcc.target/nvptx/float16-1.c: New test case. + +2021-12-12 Antoni Boucher + + PR target/95415 + * jit.dg/all-non-failing-tests.h: Add test-tls.c. + * jit.dg/test-tls.c: New test. + +2021-12-11 Antoni Boucher + + PR target/96066 + PR target/96067 + * jit.dg/all-non-failing-tests.h: Add test-builtin-types.c. + * jit.dg/test-builtin-types.c + * jit.dg/test-error-bad-assignment.c + * jit.dg/test-fuzzer.c: Add fuzzing for type qualifiers. + +2021-12-11 Harald Anlauf + + PR fortran/103606 + * gfortran.dg/pr103606.f90: New test. + +2021-12-11 Jason Merrill + + PR c++/103534 + * g++.dg/warn/Wstringop-overflow-8.C: New test. + +2021-12-10 David Malcolm + + PR jit/103562 + * jit.dg/all-non-failing-tests.h: Add comment about... + * jit.dg/test-pr103562.c: New test. + +2021-12-10 Marek Polacek + + * g++.dg/cpp23/auto-fncast10.C: New test. + +2021-12-10 Harald Anlauf + + PR fortran/103418 + * gfortran.dg/move_alloc_8.f90: Adjust error messages. + * gfortran.dg/pointer_intent_9.f90: New test. + +2021-12-10 Roger Sayle + + PR ipa/103601 + * gcc.dg/ipa/pr103601.c: New test case. + +2021-12-10 Joel Hutton + + * gcc.target/aarch64/pr103523.c: New test. + +2021-12-09 Martin Sebor + + PR tree-optimization/103215 + * gcc.dg/Wstringop-overflow-58.c: Adjust and xfail expected warnings. + * gcc.dg/Wstringop-overflow-59.c: Same. + * gcc.dg/warn-strnlen-no-nul.c: Same. + * gcc.dg/Warray-bounds-91.c: New test. + * gcc.dg/Warray-bounds-92.c: New test. + * gcc.dg/Wstringop-overflow-85.c: New test. + * gcc.dg/Wstringop-overflow-87.c: New test. + +2021-12-09 Martin Sebor + + PR middle-end/101751 + * gcc.dg/Wstringop-overflow-86.c: New test. + +2021-12-09 Martin Sebor + + PR middle-end/103143 + * gcc.dg/Wstringop-overflow-83.c: New test. + +2021-12-09 Marek Polacek + + PR c++/103401 + * g++.dg/cpp1y/lambda-generic-85713-2.C: Add dg-error. + * g++.dg/cpp1y/pr60054.C: Adjust dg-error. + * g++.dg/cpp1y/pr60332.C: Likewise. + * g++.dg/cpp2a/concepts-pr84979-2.C: Likewise. + * g++.dg/cpp2a/concepts-pr84979-3.C: Likewise. + * g++.dg/cpp2a/concepts-pr84979.C: Likewise. + * g++.dg/cpp23/auto-fncast7.C: New test. + * g++.dg/cpp23/auto-fncast8.C: New test. + * g++.dg/cpp23/auto-fncast9.C: New test. + +2021-12-09 Alexandre Oliva + + PR target/103097 + * gcc.target/i386/pr103097.c: New. + +2021-12-09 Alexandre Oliva + + PR target/103302 + * gcc.target/riscv/pr103302.c: New. + +2021-12-09 Alexandre Oliva + + PR tree-optimization/103024 + PR middle-end/103530 + * g++.dg/pr103024.C: New. + * g++.dg/pr103530.C: New. + +2021-12-08 Harald Anlauf + + PR fortran/103609 + * gfortran.dg/pr103609.f90: New test. + +2021-12-08 Dimitar Dimitrov + + * gcc.target/pru/pru_irq_map.c: New test. + +2021-12-08 Harald Anlauf + + PR fortran/103610 + * gfortran.dg/shape_11.f90: New test. + +2021-12-08 Martin Liska + + * gcc.dg/loop-unswitch-1.c: Adjust test-case based on + dump_printf_loc. + * gcc.dg/loop-unswitch-2.c: Likewise. + * gcc.dg/loop-unswitch-3.c: Likewise. + * gcc.dg/loop-unswitch-4.c: Likewise. + * gcc.dg/loop-unswitch-5.c: Likewise. + +2021-12-08 Hans-Peter Nilsson + + * gcc.dg/sibcall-1.c, gcc.dg/sibcall-10.c, + gcc.dg/sibcall-2.c, gcc.dg/sibcall-3.c, + gcc.dg/sibcall-4.c, gcc.dg/sibcall-9.c: Replace + attribute "noinline" with "noipa". + +2021-12-08 Chung-Lin Tang + + * c-c++-common/goacc/deep-copy-arrayofstruct.c: Adjust testcase. + * c-c++-common/gomp/target-enter-data-1.c: New testcase. + * c-c++-common/gomp/target-implicit-map-2.c: New testcase. + +2021-12-08 Roger Sayle + + * gcc.target/nvptx/exttrunc-2.c: New test case. + * gcc.target/nvptx/exttrunc-3.c: New test case. + * gcc.target/nvptx/exttrunc-4.c: New test case. + * gcc.target/nvptx/exttrunc-5.c: New test case. + * gcc.target/nvptx/exttrunc-6.c: New test case. + +2021-12-08 Roger Sayle + + * gcc.target/nvptx/exttrunc-1.c: New test case. + +2021-12-08 Chung-Lin Tang + + PR middle-end/92120 + * gcc.dg/gomp/target-3.c: New testcase. + * g++.dg/gomp/target-3.C: New testcase. + * g++.dg/gomp/target-lambda-1.C: New testcase. + * g++.dg/gomp/target-lambda-2.C: New testcase. + * g++.dg/gomp/target-this-1.C: New testcase. + * g++.dg/gomp/target-this-2.C: New testcase. + * g++.dg/gomp/target-this-3.C: New testcase. + * g++.dg/gomp/target-this-4.C: New testcase. + * g++.dg/gomp/target-this-5.C: New testcase. + * g++.dg/gomp/this-2.C: Adjust testcase. + +2021-12-08 Haochen Jiang + + PR target/100738 + * g++.target/i386/pr100738-1.C: New test. + +2021-12-08 Alexandre Oliva + + PR middle-end/103149 + * gcc.target/aarch64/pr103149.c: New. + +2021-12-07 Harald Anlauf + + PR fortran/103607 + * gfortran.dg/pr103607.f90: New test. + +2021-12-07 Marek Polacek + + * g++.dg/cpp0x/decltype-bitfield1.C: Change a type to unsigned + long long. Only run on longlong64 targets. + +2021-12-07 Peter Bergner + + PR testsuite/103556 + PR testsuite/103586 + * lib/target-supports.exp (check_effective_target_rop_ok): Remove '\n'. + +2021-12-07 Harald Anlauf + + PR fortran/103588 + * gfortran.dg/pr103588.f90: New test. + +2021-12-07 Harald Anlauf + + PR fortran/103591 + * gfortran.dg/select_9.f90: New test. + +2021-12-07 Marek Polacek + + PR c++/95009 + * g++.dg/cpp0x/decltype-bitfield1.C: New test. + * g++.dg/cpp0x/decltype-bitfield2.C: New test. + +2021-12-07 H.J. Lu + + PR target/103594 + * gcc.dg/pr103594.c: New test. + +2021-12-07 Richard Biener + + PR tree-optimization/103596 + * gcc.dg/torture/pr103596.c: New testcase. + +2021-12-07 YunQiang Su + + * gcc.target/mips/mips.exp: add unaligned-access + * gcc.target/mips/unaligned-2.c: New test. + * gcc.target/mips/unaligned-3.c: New test. + +2021-12-07 Eugene Rozenfeld + + * gcc.dg/tree-prof/init-array.c: New test for unrolling inner loops. + +2021-12-06 Richard Biener + + PR tree-optimization/103581 + * gcc.dg/vect/pr103581.c: New testcase. + +2021-12-06 Richard Biener + + PR tree-optimization/103544 + * gcc.dg/vect/pr103544.c: New testcase. + +2021-12-06 Tamar Christina + + PR rtl-optimization/103404 + * gcc.target/i386/pr103404.c: New test. + +2021-12-06 Hongtao Liu + Uroš Bizjak + + * gcc.target/i386/pr95740.c: New test. + +2021-12-04 Marek Polacek + + PR c++/93614 + * g++.dg/template/lookup18.C: New test. + +2021-12-04 Tobias Burnus + + * gfortran.dg/gomp/atomic-2.f90: Move now supported code to ... + * gfortran.dg/gomp/atomic.f90: here. + * gfortran.dg/gomp/atomic-10.f90: New test. + * gfortran.dg/gomp/atomic-12.f90: New test. + * gfortran.dg/gomp/atomic-15.f90: New test. + * gfortran.dg/gomp/atomic-16.f90: New test. + * gfortran.dg/gomp/atomic-17.f90: New test. + * gfortran.dg/gomp/atomic-18.f90: New test. + * gfortran.dg/gomp/atomic-19.f90: New test. + * gfortran.dg/gomp/atomic-20.f90: New test. + * gfortran.dg/gomp/atomic-22.f90: New test. + * gfortran.dg/gomp/atomic-24.f90: New test. + * gfortran.dg/gomp/atomic-25.f90: New test. + * gfortran.dg/gomp/atomic-26.f90: New test. + +2021-12-04 Jakub Jelinek + + * g++.dg/cpp2a/bit-cast11.C: New test. + * g++.dg/cpp2a/bit-cast12.C: New test. + * g++.dg/cpp2a/bit-cast13.C: New test. + * g++.dg/cpp2a/bit-cast14.C: New test. + +2021-12-04 Jakub Jelinek + + PR preprocessor/102432 + * c-c++-common/gomp/pr102432.c: New test. + * c-c++-common/goacc/pr102432.c: New test. + +2021-12-04 Alexandre Oliva + + PR rtl-optimization/103028 + * gcc.dg/pr103028.c: New. + +2021-12-04 David Edelsohn + + * gcc.target/powerpc/vec_reve_1.c: Require VSX. + +2021-12-03 Jason Merrill + + * g++.dg/diagnostic/scope1.C: New test. + +2021-12-03 Martin Liska + + PR target/101324 + * gcc.target/powerpc/pr101324.c: New test. + +2021-12-03 Peter Bergner + + * lib/target-supports.exp (check_effective_target_rop_ok): New function. + * gcc.target/powerpc/rop-1.c: Use it. + * gcc.target/powerpc/rop-2.c: Likewise. + * gcc.target/powerpc/rop-3.c: Likewise. + * gcc.target/powerpc/rop-4.c: Likewise. + * gcc.target/powerpc/rop-5.c: Likewise. + +2021-12-03 Harald Anlauf + Steven G. Kargl + + PR fortran/103505 + * gfortran.dg/pr103505.f90: New test. + +2021-12-03 Marek Polacek + + PR c++/103403 + * g++.dg/cpp1y/decltype-auto2.C: New test. + * g++.dg/cpp1y/decltype-auto3.C: New test. + * g++.dg/cpp1y/decltype-auto4.C: New test. + * g++.dg/cpp1z/decomp-decltype1.C: New test. + +2021-12-03 H.J. Lu + + PR target/103269 + * gcc.target/i386/pieces-memcpy-17.c: New test. + * gcc.target/i386/pieces-memcpy-18.c: Likewise. + * gcc.target/i386/pieces-memcpy-19.c: Likewise. + * gcc.target/i386/pieces-memcpy-20.c: Likewise. + * gcc.target/i386/pieces-memcpy-21.c: Likewise. + * gcc.target/i386/pieces-memset-45.c: Likewise. + * gcc.target/i386/pieces-memset-46.c: Likewise. + * gcc.target/i386/pieces-memset-47.c: Likewise. + * gcc.target/i386/pieces-memset-48.c: Likewise. + * gcc.target/i386/pieces-memset-49.c: Likewise. + +2021-12-03 H.J. Lu + + PR target/83782 + * gcc.target/i386/pr83782-1.c: Also scan leal x32. + * gcc.target/i386/pr83782-2.c: Likewise. + +2021-12-03 Tamar Christina + + * gcc.target/aarch64/sve/pred-combine-and.c: New test. + +2021-12-03 H.J. Lu + + PR target/51469 + PR target/83782 + * gcc.target/i386/pr83782-1.c: New test. + * gcc.target/i386/pr83782-2.c: Likewise. + +2021-12-03 Jakub Jelinek + + PR tree-optimization/103456 + * gcc.dg/ubsan/pr103456.c: Add -ffat-lto-objects to dg-options. + +2021-12-03 Tobias Burnus + + * gfortran.dg/allocate_with_source_26.f90: Adjust testcase. + * gfortran.dg/allocate_with_mold_4.f90: New testcase. + +2021-12-03 Thomas Schwinge + + PR testsuite/102735 + * lib/gcc-dg.exp (process-message): Make sure that we get unique + test names. + +2021-12-03 Andrew Pinski + + PR c++/71792 + * g++.dg/torture/pr71792.C: New test. + +2021-12-02 David Malcolm + + PR analyzer/103526 + * gcc.dg/analyzer/pr103526.c: New test. + +2021-12-02 Bill Schmidt + + * gcc.target/powerpc/bfp/scalar-extract-exp-2.c: Adjust expected error + message. + * gcc.target/powerpc/bfp/scalar-extract-sig-2.c: Likewise. + * gcc.target/powerpc/bfp/scalar-insert-exp-2.c: Likewise. + * gcc.target/powerpc/bfp/scalar-insert-exp-5.c: Likewise. + * gcc.target/powerpc/bfp/scalar-insert-exp-8.c: Likewise. + * gcc.target/powerpc/bfp/scalar-test-neg-2.c: Likewise. + * gcc.target/powerpc/bfp/scalar-test-neg-3.c: Likewise. + * gcc.target/powerpc/bfp/scalar-test-neg-5.c: Likewise. + * gcc.target/powerpc/byte-in-set-2.c: Likewise. + * gcc.target/powerpc/cmpb-2.c: Likewise. + * gcc.target/powerpc/cmpb-3.c: Likewise. + * gcc.target/powerpc/cmpb32-2.c: Likewise. + * gcc.target/powerpc/crypto-builtin-2.c: Likewise. + * gcc.target/powerpc/fold-vec-splat-floatdouble.c: Remove invalid + test and adjust xxpermdi count. + * gcc.target/powerpc/fold-vec-splat-longlong.c: Remove invalid + tests and adjust instruction counts. + * gcc.target/powerpc/fold-vec-splat-misc-invalid.c: Adjust expected + error messages. + * gcc.target/powerpc/int_128bit-runnable.c: Adjust instruction counts. + * gcc.target/powerpc/pr80315-1.c: Adjust expected error message. + * gcc.target/powerpc/pr80315-2.c: Likewise. + * gcc.target/powerpc/pr80315-3.c: Likewise. + * gcc.target/powerpc/pr80315-4.c: Likewise. + * gcc.target/powerpc/pr88100.c: Likewise. + * gcc.target/powerpc/pragma_misc9.c: Likewise. + * gcc.target/powerpc/pragma_power8.c: Undef _RS6000_VECDEFINES_H. + * gcc.target/powerpc/pragma_power9.c: Likewise. + * gcc.target/powerpc/test_fpscr_drn_builtin_error.c: Adjust expected + error messages. + * gcc.target/powerpc/test_fpscr_rn_builtin_error.c: Likewise. + * gcc.target/powerpc/vec-gnb-2.c: Likewise. + * gcc.target/powerpc/vsu/vec-all-nez-7.c: Likewise. + * gcc.target/powerpc/vsu/vec-any-eqz-7.c: Likewise. + * gcc.target/powerpc/vsu/vec-cmpnez-7.c: Likewise. + * gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c: Likewise. + * gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c: Likewise. + * gcc.target/powerpc/vsu/vec-xl-len-13.c: Likewise. + * gcc.target/powerpc/vsu/vec-xst-len-12.c: Likewise. + +2021-12-02 Tamar Christina + + * gcc.target/aarch64/advsimd-intrinsics/shrn-1.c: New test. + * gcc.target/aarch64/advsimd-intrinsics/shrn-2.c: New test. + * gcc.target/aarch64/advsimd-intrinsics/shrn-3.c: New test. + * gcc.target/aarch64/advsimd-intrinsics/shrn-4.c: New test. + +2021-12-02 Tamar Christina + + PR testsuite/103479 + * gcc.dg/bic-bitmask-18.c: Update regexpr to expect = 0;. + +2021-12-02 Marek Polacek + + PR c++/94490 + * g++.dg/ext/integer-pack5.C: New test. + +2021-12-02 Marek Polacek + + PR c++/103408 + * g++.dg/cpp23/concepts-err1.C: New test. + +2021-12-02 Chung-Lin Tang + + PR fortran/90030 + * gfortran.dg/goacc/finalize-1.f: Adjust scan test. + * gfortran.dg/gomp/affinity-clause-1.f90: Likewise. + * gfortran.dg/gomp/affinity-clause-5.f90: Likewise. + * gfortran.dg/gomp/defaultmap-4.f90: Likewise. + * gfortran.dg/gomp/defaultmap-5.f90: Likewise. + * gfortran.dg/gomp/defaultmap-6.f90: Likewise. + * gfortran.dg/gomp/map-3.f90: Likewise. + * gfortran.dg/gomp/pr78260-2.f90: Likewise. + * gfortran.dg/gomp/pr78260-3.f90: Likewise. + +2021-12-01 David Malcolm + + PR analyzer/102471 + * gcc.dg/analyzer/leak-3.c: New test. + +2021-12-01 Uroš Bizjak + + PR target/102881 + * gcc.target/i386/pr102811-1.c: New test. + * gcc.target/i386/avx512fp16-1c.c (dg-final): Update + scan-assembler-times scan strings for ia32 targets. + * gcc.target/i386/pr102327-1.c (dg-final): Ditto. + * gcc.target/i386/pr102811.c: Rename from ... + * gcc.target/i386/avx512vl-vcvtps2ph-pr102811.c: ... this. + +2021-12-01 Roger Sayle + Richard Biener + + * gcc.dg/fold-condneg-1.c: New test case. + * gcc.dg/fold-condneg-2.c: New test case. + * gcc.dg/fold-condnot-1.c: New test case. + * gcc.dg/pr101145-1.c: New test case. + * gcc.dg/pr101145-2.c: New test case. + +2021-12-01 Peter Bergner + + PR middle-end/103127 + * gcc.target/powerpc/pr103127.c: New test. + +2021-12-01 Jason Merrill + + PR c++/103310 + * g++.dg/cpp0x/constexpr-fp-except1.C: New test. + * g++.dg/cpp1z/constexpr-if36.C: New test. + * gcc.dg/tree-ssa/nonzero-1.c: Now well-formed. + * gcc.dg/tree-ssa/nonzero-1a.c: New test. + +2021-12-01 Richard Sandiford + + PR tree-optimization/103517 + * gcc.dg/vect/pr103517.c: New test. + +2021-12-01 Alex Coplan + + * gcc.target/aarch64/aapcs64/macro-def.h (PTR): Fix typo in + comment. + +2021-12-01 Jakub Jelinek + + PR c++/100977 + * g++.dg/cpp/ucnid-1.C: Adjust expected diagnostics. + * g++.dg/cpp/ucnid-1-utf8.C: Likewise. + +2021-12-01 Jakub Jelinek + + PR rtl-optimization/102356 + * gcc.dg/pr102356.c: New test. + +2021-12-01 Jakub Jelinek + + PR preprocessor/103415 + * c-c++-common/cpp/va-opt-8.c: New test. + * c-c++-common/Wimplicit-fallthrough-38.c: New test. + +2021-12-01 Tamar Christina + + * gcc.dg/bic-bitmask-10.c: Moved to gcc.dg/vect/vect-bic-bitmask-10.c. + * gcc.dg/bic-bitmask-11.c: Moved to gcc.dg/vect/vect-bic-bitmask-11.c. + * gcc.dg/bic-bitmask-12.c: Moved to gcc.dg/vect/vect-bic-bitmask-12.c. + * gcc.dg/bic-bitmask-3.c: Moved to gcc.dg/vect/vect-bic-bitmask-3.c. + * gcc.dg/bic-bitmask-23.c: Moved to gcc.dg/vect/vect-bic-bitmask-23.c. + * gcc.dg/bic-bitmask-2.c: Moved to gcc.dg/vect/vect-bic-bitmask-2.c. + * gcc.dg/bic-bitmask-4.c: Moved to gcc.dg/vect/vect-bic-bitmask-4.c. + * gcc.dg/bic-bitmask-5.c: Moved to gcc.dg/vect/vect-bic-bitmask-5.c. + * gcc.dg/bic-bitmask-6.c: Moved to gcc.dg/vect/vect-bic-bitmask-6.c. + * gcc.dg/bic-bitmask-8.c: Moved to gcc.dg/vect/vect-bic-bitmask-8.c. + * gcc.dg/bic-bitmask-9.c: Moved to gcc.dg/vect/vect-bic-bitmask-9.c. + * gcc.dg/vect/vect-bic-bitmask-10.c: New file. + * gcc.dg/vect/vect-bic-bitmask-11.c: New file. + * gcc.dg/vect/vect-bic-bitmask-12.c: New file. + * gcc.dg/vect/vect-bic-bitmask-2.c: New file. + * gcc.dg/vect/vect-bic-bitmask-23.c: New file. + * gcc.dg/vect/vect-bic-bitmask-3.c: New file. + * gcc.dg/vect/vect-bic-bitmask-4.c: New file. + * gcc.dg/vect/vect-bic-bitmask-5.c: New file. + * gcc.dg/vect/vect-bic-bitmask-6.c: New file. + * gcc.dg/vect/vect-bic-bitmask-8.c: New file. + * gcc.dg/vect/vect-bic-bitmask-9.c: New file. + +2021-12-01 Siddhesh Poyarekar + Martin Liška + + PR tree-optimization/103456 + * gcc.dg/ubsan/pr103456.c: New test. + +2021-11-30 liuhongt + + * gcc.target/i386/pr103463.c: New test. + * gcc.target/i386/pr103463-2.c: New test. + +2021-11-30 David Malcolm + + PR analyzer/94579 + * gcc.dg/analyzer/pr94579.c: New test. + +2021-11-30 David Malcolm + + PR analyzer/99269 + * gcc.dg/analyzer/pr99269.c: New test. + +2021-11-30 David Malcolm + + PR analyzer/100524 + * gcc.dg/analyzer/pragma-2.c: New test. + +2021-11-30 Harald Anlauf + + * gfortran.dg/array_constructor_54.f90: New test. + +2021-11-30 Harald Anlauf + + PR fortran/103473 + * gfortran.dg/minmaxloc_15.f90: New test. + +2021-11-30 Harald Anlauf + Steven G. Kargl + + PR fortran/101565 + * gfortran.dg/coarray_49.f90: New test. + +2021-11-30 Richard Sandiford + + PR tree-optimization/103494 + * gcc.dg/vect/pr103494.c: New test. + * g++.dg/vect/pr103494.cc: Likewise. + +2021-11-30 Iain Buclaw + + * gdc.dg/Wcastresult2.d: Update test. + * gdc.dg/asm1.d: Likewise. + * gdc.dg/asm2.d: Likewise. + * gdc.dg/asm3.d: Likewise. + * gdc.dg/gdc282.d: Likewise. + * gdc.dg/imports/gdc170.d: Likewise. + * gdc.dg/intrinsics.d: Likewise. + * gdc.dg/pr101672.d: Likewise. + * gdc.dg/pr90650a.d: Likewise. + * gdc.dg/pr90650b.d: Likewise. + * gdc.dg/pr94777a.d: Likewise. + * gdc.dg/pr95250.d: Likewise. + * gdc.dg/pr96869.d: Likewise. + * gdc.dg/pr98277.d: Likewise. + * gdc.dg/pr98457.d: Likewise. + * gdc.dg/simd1.d: Likewise. + * gdc.dg/simd2a.d: Likewise. + * gdc.dg/simd2b.d: Likewise. + * gdc.dg/simd2c.d: Likewise. + * gdc.dg/simd2d.d: Likewise. + * gdc.dg/simd2e.d: Likewise. + * gdc.dg/simd2f.d: Likewise. + * gdc.dg/simd2g.d: Likewise. + * gdc.dg/simd2h.d: Likewise. + * gdc.dg/simd2i.d: Likewise. + * gdc.dg/simd2j.d: Likewise. + * gdc.dg/simd7951.d: Likewise. + * gdc.dg/torture/gdc309.d: Likewise. + * gdc.dg/torture/pr94424.d: Likewise. + * gdc.dg/torture/pr94777b.d: Likewise. + * lib/gdc-utils.exp (gdc-convert-args): Handle new compiler options. + (gdc-convert-test): Handle CXXFLAGS, EXTRA_OBJC_SOURCES, and ARG_SETS + test directives. + (gdc-do-test): Only import modules in the test run directory. + * gdc.dg/pr94777c.d: New test. + * gdc.dg/pr96156b.d: New test. + * gdc.dg/pr96157c.d: New test. + * gdc.dg/simd_ctfe.d: New test. + * gdc.dg/torture/simd17344.d: New test. + * gdc.dg/torture/simd20052.d: New test. + * gdc.dg/torture/simd6.d: New test. + * gdc.dg/torture/simd7.d: New test. + +2021-11-30 Andrew MacLeod + + * gcc.dg/pr103440.c: New. + +2021-11-30 Richard Biener + + PR tree-optimization/103489 + * gcc.dg/torture/pr103489.c: New testcase. + +2021-11-30 Martin Liska + + PR tree-optimization/103278 + * gcc.dg/tree-ssa/if-to-switch-5.c: Make the test acceptable by + targets with no jump-tables. + +2021-11-30 Thomas Schwinge + + * c-c++-common/goacc/nested-reductions-1-routine.c: Adjust. + * c-c++-common/goacc/nested-reductions-2-routine.c: Adjust. + * c-c++-common/goacc/orphan-reductions-2.c: Adjust. + * gfortran.dg/goacc/nested-reductions-1-routine.f90: Adjust. + * gfortran.dg/goacc/nested-reductions-2-routine.f90: Adjust. + * gfortran.dg/goacc/orphan-reductions-1.f90: Adjust. + * gfortran.dg/goacc/orphan-reductions-2.f90: Adjust. + +2021-11-30 Thomas Schwinge + + * gfortran.dg/goacc/orphan-reductions-1.f90: Adjust. + +2021-11-30 Frederik Harwath + Thomas Schwinge + + * gfortran.dg/goacc/orphan-reductions-3.f90: New test + verifying that the "gang reduction on an orphan loop" error message + is not emitted for non-orphaned loops. + * c-c++-common/goacc/orphan-reductions-3.c: Likewise for C and C++. + +2021-11-30 Cesar Philippidis + Thomas Schwinge + + * c-c++-common/goacc/nested-reductions-1-routine.c: Adjust. + * c-c++-common/goacc/nested-reductions-2-routine.c: Likewise. + * gcc.dg/goacc/loop-processing-1.c: Likewise. + * gfortran.dg/goacc/nested-reductions-1-routine.f90: Likewise. + * gfortran.dg/goacc/nested-reductions-2-routine.f90: Likewise. + * c-c++-common/goacc/orphan-reductions-1.c: New test. + * c-c++-common/goacc/orphan-reductions-2.c: New test. + * gfortran.dg/goacc/orphan-reductions-1.f90: New test. + * gfortran.dg/goacc/orphan-reductions-2.f90: New test. + +2021-11-30 Kwok Cheung Yeung + Thomas Schwinge + + * c-c++-common/goacc/routine-4.c (seq, vector, worker, gang): + Remove loop reductions. + * c-c++-common/goacc/routine-4-extern.c (seq, vector, worker, gang): + Likewise. + +2021-11-30 Roger Sayle + + PR testsuite/103477 + * gcc.dg/tree-ssa/pr103345.c: Correct xor test for big-endian. + +2021-11-30 Aldy Hernandez + + PR tree-optimization/103451 + * gcc.dg/pr103451.c: New test. + +2021-11-30 Richard Sandiford + + * gcc.dg/vect/vect-gather-3.c: New test. + * gcc.dg/vect/vect-gather-4.c: Likewise. + * gcc.target/aarch64/sve/mask_gather_load_8.c: Likewise. + +2021-11-30 Richard Sandiford + + * gcc.dg/vect/pr99102.c: Add -fno-vect-cost-model. + Revert: + 2020-09-09 Richard Biener [rguenther@suse.de] + * gcc.target/i386/pr87007-4.c: Adjust. + * gcc.target/i386/pr87007-5.c: Likewise. + +2021-11-30 Richard Sandiford + + * lib/target-supports.exp + (check_effective_target_vect_gather_load_ifn): New target test. + * gcc.dg/vect/vect-gather-1.c: New test. + * gcc.dg/vect/vect-gather-2.c: Likewise. + * gcc.target/aarch64/sve/gather_load_11.c: Likewise. + +2021-11-30 Richard Sandiford + + * gcc.target/aarch64/sve/cost_model_13.c: New test. + +2021-11-30 Richard Sandiford + + * gfortran.dg/vect/vect-8.f90: Bump number of vectorized loops + to 25 for SVE. + * gcc.target/aarch64/sve/gather_load_10.c: New test. + +2021-11-30 Richard Sandiford + + * gcc.dg/add-mul-overflow-1.c: New test. + +2021-11-30 Richard Sandiford + + * gcc.dg/ubsan/commutative-1.c: New test. + +2021-11-30 Richard Sandiford + + * gcc.target/aarch64/sve/complex_mul_1.c: New test. + +2021-11-30 Richard Sandiford + + * gcc.dg/fmax-fmin-1.c: New test. + +2021-11-30 Richard Sandiford + + * gcc.dg/vect/vect-fmax-1.c: New test. + * gcc.dg/vect/vect-fmax-2.c: Likewise. + * gcc.dg/vect/vect-fmax-3.c: Likewise. + * gcc.dg/vect/vect-fmin-1.c: New test. + * gcc.dg/vect/vect-fmin-2.c: Likewise. + * gcc.dg/vect/vect-fmin-3.c: Likewise. + * gcc.target/aarch64/fmaxnm_1.c: Likewise. + * gcc.target/aarch64/fmaxnm_2.c: Likewise. + * gcc.target/aarch64/fminnm_1.c: Likewise. + * gcc.target/aarch64/fminnm_2.c: Likewise. + * gcc.target/aarch64/sve/fmaxnm_2.c: Likewise. + * gcc.target/aarch64/sve/fmaxnm_3.c: Likewise. + * gcc.target/aarch64/sve/fminnm_2.c: Likewise. + * gcc.target/aarch64/sve/fminnm_3.c: Likewise. + +2021-11-30 Jakub Jelinek + + PR c++/100977 + * c-c++-common/cpp/ucnid-2011-1-utf8.c: Expect errors in C++. + * c-c++-common/cpp/ucnid-2011-1.c: Likewise. + * g++.dg/cpp/ucnid-4-utf8.C: Add missing space to dg-options. + * g++.dg/cpp23/normalize3.C: Enable for c++11 rather than just c++23. + * g++.dg/cpp23/normalize4.C: Likewise. + * g++.dg/cpp23/normalize5.C: Likewise. + * g++.dg/cpp23/normalize7.C: Expect errors rather than just warnings + for c++11 and up rather than just c++23. + * g++.dg/cpp23/ucnid-2-utf8.C: Expect errors even for c++11 .. c++20. + +2021-11-30 Roger Sayle + Uroš Bizjak + + PR target/100711 + * gcc.target/i386/pr100711-1.c: New test case. + * gcc.target/i386/pr100711-2.c: New test case. + +2021-11-30 Richard Biener + + PR middle-end/103485 + * gcc.dg/pr103485.c: New testcase. + +2021-11-30 Kewen Lin + + PR target/102347 + * gcc.target/powerpc/pr102347.c: New test. + +2021-11-29 David Malcolm + + PR analyzer/103217 + * gcc.dg/analyzer/pr103217-2.c: New test. + * gcc.dg/analyzer/pr103217-3.c: New test. + * gcc.dg/analyzer/pr103217-4.c: New test. + * gcc.dg/analyzer/pr103217-5.c: New test. + +2021-11-29 Martin Sebor + + PR testsuite/103469 + * c-c++-common/attr-retain-5.c: Prune out valid warning. + * c-c++-common/attr-retain-6.c: Same. + * c-c++-common/attr-retain-9.c: Same. + +2021-11-29 Patrick Palka + + PR c++/100493 + * g++.dg/cpp1z/lambda-this1.C: Adjust expected diagnostics. + * g++.dg/cpp1z/lambda-this8.C: New test. + * g++.dg/cpp2a/lambda-this3.C: Compile with -pedantic in C++17 + to continue to diagnose redundant 'this' captures. + +2021-11-29 Roger Sayle + + * gcc.target/i386/sse2-v1ti-rotate.c: New test case. + +2021-11-29 liuhongt + + * gcc.target/i386/pr102811-2.c: New test. + * gcc.target/i386/avx512vl-vcvtps2ph-pr102811.c: Add new + scan-assembler-times. + +2021-11-29 Richard Biener + + PR tree-optimization/103458 + * gcc.dg/torture/pr103458.c: New testcase. + +2021-11-29 Kewen Lin + + * gcc.target/powerpc/vect-gather-1.c: New test. + +2021-11-27 Jakub Jelinek + + PR middle-end/103431 + * gcc.dg/pr103431.c: New test. + +2021-11-27 Roger Sayle + + * gcc.dg/tree-ssa/ivopts-8.c: Fix new test case for -m32. + * gcc.dg/tree-ssa/ivopts-9.c: Likewise. + +2021-11-26 Harald Anlauf + + PR fortran/103411 + * gfortran.dg/pr68153.f90: Adjust test to improved check. + * gfortran.dg/reshape_7.f90: Likewise. + * gfortran.dg/reshape_9.f90: New test. + +2021-11-26 Roger Sayle + + * gcc.dg/wrapped-binop-simplify.c: Update expected test result. + * gcc.dg/tree-ssa/ivopts-5.c: New test case. + * gcc.dg/tree-ssa/ivopts-6.c: New test case. + * gcc.dg/tree-ssa/ivopts-7.c: New test case. + * gcc.dg/tree-ssa/ivopts-8.c: New test case. + * gcc.dg/tree-ssa/ivopts-9.c: New test case. + +2021-11-26 Jan Hubicka + + * gcc.dg/ipa/inline-9.c: Update template.c + +2021-11-26 Jakub Jelinek + + PR c++/102753 + * g++.dg/cpp2a/consteval20.C: Add some extra tests. + * g++.dg/cpp2a/consteval23.C: Likewise. + * g++.dg/cpp2a/consteval25.C: New test. + * g++.dg/cpp2a/srcloc20.C: New test. + +2021-11-26 konglin1 + + PR target/102811 + * gcc.target/i386/pr90773-21.c: Allow pextrw instead of movw. + * gcc.target/i386/pr90773-23.c: Ditto. + * gcc.target/i386/avx512vl-vcvtps2ph-pr102811.c: New test. + +2021-11-25 Jan Hubicka + + * gcc.dg/ipa/inline10.c: New test. + +2021-11-25 Roger Sayle + + PR middle-end/103406 + * gcc.dg/pr103406.c: New test case. + +2021-11-25 Martin Jambor + + PR ipa/103227 + * gcc.dg/ipa/pr103227-1.c: New test. + * gcc.dg/ipa/pr103227-3.c: Likewise. + * gcc.dg/ipa/pr103227-2.c: Likewise. + * gfortran.dg/pr53787.f90: Disable IPA-SRA. + +2021-11-25 Andrew MacLeod + + PR tree-optimization/102648 + * gcc.dg/pr102648.c: New. + +2021-11-25 Andrew MacLeod + + PR tree-optimization/103359 + * gcc.dg/pr103359.c: New. + +2021-11-25 Jakub Jelinek + + PR tree-optimization/103417 + * gcc.c-torture/execute/pr103417.c: New test. + +2021-11-25 Jakub Jelinek + + PR tree-optimization/103376 + * gcc.dg/optimize-bswapsi-7.c: New test. + +2021-11-25 Jakub Jelinek + + PR c++/102611 + * g++.dg/cpp2a/comma1.C: Expect different diagnostics for C++23. + * g++.dg/cpp2a/comma3.C: Likewise. + * g++.dg/cpp2a/comma4.C: Expect diagnostics for C++23. + * g++.dg/cpp2a/comma5.C: Expect different diagnostics for C++23. + * g++.dg/cpp23/feat-cxx2b.C: Test __cpp_multidimensional_subscript + predefined macro. + * g++.dg/cpp23/subscript1.C: New test. + * g++.dg/cpp23/subscript2.C: New test. + * g++.dg/cpp23/subscript3.C: New test. + * g++.dg/cpp23/subscript4.C: New test. + * g++.dg/cpp23/subscript5.C: New test. + * g++.dg/cpp23/subscript6.C: New test. + +2021-11-25 H.J. Lu + + * gcc.target/i386/pr103194-5.c: Include . + Replace long with int64_t. + +2021-11-24 Jan Hubicka + + * gcc.c-torture/execute/pr103405.c: New test. + +2021-11-24 Richard Biener + Jan Hubicka + + PR tree-optimization/103168 + * g++.dg/tree-ssa/pr103168.C: New testcase. + +2021-11-24 Thomas Schwinge + + PR middle-end/103244 + * c-c++-common/goacc/combined-reduction.c: Revert/expect previous + OpenACC behavior. + * c-c++-common/goacc/firstprivate-mappings-1.c: Likewise. + * c-c++-common/goacc/mdc-1.c: Likewise. + * g++.dg/goacc/firstprivate-mappings-1.C: Likewise. + +2021-11-24 Jakub Jelinek + + PR middle-end/103365 + * c-c++-common/Wno-attributes-1.c: Require effective target + c || c++11 and drop dg-additional-options. + * c-c++-common/Wno-attributes-2.c: Likewise. + * c-c++-common/Wno-attributes-4.c: New test. + * c-c++-common/Wno-attributes-5.c: New test. + +2021-11-24 Jakub Jelinek + + PR tree-optimization/103376 + * gcc.c-torture/execute/pr103376.c: New test. + +2021-11-24 Tamar Christina + + * gcc.dg/bic-bitmask-10.c: New test. + * gcc.dg/bic-bitmask-11.c: New test. + * gcc.dg/bic-bitmask-12.c: New test. + * gcc.dg/bic-bitmask-13.c: New test. + * gcc.dg/bic-bitmask-14.c: New test. + * gcc.dg/bic-bitmask-15.c: New test. + * gcc.dg/bic-bitmask-16.c: New test. + * gcc.dg/bic-bitmask-17.c: New test. + * gcc.dg/bic-bitmask-18.c: New test. + * gcc.dg/bic-bitmask-19.c: New test. + * gcc.dg/bic-bitmask-2.c: New test. + * gcc.dg/bic-bitmask-20.c: New test. + * gcc.dg/bic-bitmask-21.c: New test. + * gcc.dg/bic-bitmask-22.c: New test. + * gcc.dg/bic-bitmask-23.c: New test. + * gcc.dg/bic-bitmask-3.c: New test. + * gcc.dg/bic-bitmask-4.c: New test. + * gcc.dg/bic-bitmask-5.c: New test. + * gcc.dg/bic-bitmask-6.c: New test. + * gcc.dg/bic-bitmask-7.c: New test. + * gcc.dg/bic-bitmask-8.c: New test. + * gcc.dg/bic-bitmask-9.c: New test. + * gcc.dg/bic-bitmask.h: New test. + * gcc.target/aarch64/bic-bitmask-1.c: New test. + +2021-11-24 Marek Polacek + + PR c++/103347 + * g++.dg/cpp0x/nsdmi-warn1.C: New test. + * g++.dg/cpp0x/nsdmi-warn1.h: New file. + +2021-11-24 Hongtao Liu + H.J. Lu + + * gcc.target/i386/pr103194-2.c: New test. + * gcc.target/i386/pr103194-3.c: New test. + * gcc.target/i386/pr103194-4.c: New test. + * gcc.target/i386/pr103194-5.c: New test. + * gcc.target/i386/pr103194.c: New test. + +2021-11-23 Martin Sebor + + PR c++/96507 + * g++.dg/warn/Waddress-8.C: New test. + +2021-11-23 Martin Sebor + + PR middle-end/88232 + * c-c++-common/attr-used-5.c: Suppress valid warning. + * c-c++-common/attr-used-6.c: Same. + * c-c++-common/attr-used-9.c: Same. + * g++.dg/warn/Winfinite-recursion-2.C: New test. + * g++.dg/warn/Winfinite-recursion-3.C: New test. + * g++.dg/warn/Winfinite-recursion.C: New test. + * gcc.dg/Winfinite-recursion-2.c: New test. + * gcc.dg/Winfinite-recursion.c: New test. + +2021-11-23 Harald Anlauf + + PR fortran/103392 + * gfortran.dg/bound_simplification_7.f90: New test. + +2021-11-23 Marek Polacek + + PR c++/19808 + * g++.dg/warn/Wuninitialized-28.C: Make a class nonempty. + * g++.dg/warn/Wuninitialized-29.C: Likewise. + * g++.dg/warn/Wuninitialized-31.C: New test. + +2021-11-23 Marek Polacek + + * g++.dg/warn/Waddress-5.C: Make sf static. + +2021-11-23 Bill Schmidt + + * gcc.target/powerpc/test_mffsl.c: Change effective target to + a run-time check. Fix a typo in a debug print statement. + +2021-11-23 Harald Anlauf + + PR fortran/87711 + PR fortran/87851 + * gfortran.dg/len_trim.f90: New test. + +2021-11-23 Richard Biener + + PR tree-optimization/103361 + * g++.dg/torture/pr103361.C: New testcase. + +2021-11-23 Jan Hubicka + + * gcc.dg/tree-ssa/modref-dse-4.c: Update template. + * gcc.dg/tree-ssa/modref-dse-5.c: Update template. + +2021-11-23 Andrew Pinski + + PR tree-optimization/102216 + * g++.dg/tree-ssa/pr102216-1.C: New test. + * g++.dg/tree-ssa/pr102216-2.C: New test. + +2021-11-23 Jakub Jelinek + + PR middle-end/102431 + * c-c++-common/gomp/pr102431.c: New test. + * g++.dg/gomp/pr102431.C: New test. + * gfortran.dg/gomp/pr102431.f90: New test. + +2021-11-23 Haochen Gui + + PR target/100868 + * gcc.target/powerpc/vec_reve_1.c: New test. + * gcc.target/powerpc/vec_reve_2.c: Likewise. + +2021-11-23 Navid Rahimi + + PR tree-optimization/102232 + * gcc.dg/tree-ssa/pr102232.c: Testcase for this optimization. + +2021-11-23 Navid Rahimi + + PR tree-optimization/96779 + * gcc.dg/tree-ssa/pr96779.c: Testcase for this optimization. + * gcc.dg/tree-ssa/pr96779-disabled.c: Testcase for this optimization + when -fwrapv passed. + +2021-11-22 Jason Merrill + + * g++.dg/template/crash106.C: Adjust. + * g++.dg/diagnostic/ptrtomem3.C: New test. + +2021-11-22 Jason Merrill + + * g++.dg/cpp0x/pr65327.C: Adjust location. + * g++.dg/cpp23/constexpr-nonlit4.C: Likewise. + * g++.dg/cpp23/constexpr-nonlit5.C: Likewise. + * g++.dg/cpp2a/constexpr-init1.C: Likewise. + +2021-11-22 Jakub Jelinek + Tobias Burnus + + PR preprocessor/103165 + * c-c++-common/gomp/pragma-3.c: New test. + * c-c++-common/gomp/pragma-4.c: New test. + * c-c++-common/gomp/pragma-5.c: New test. + +2021-11-22 Roger Sayle + + PR tree-optimization/98953 + PR tree-optimization/103345 + * gcc.dg/tree-ssa/pr98953.c: New test case. + * gcc.dg/tree-ssa/pr103345.c: New test case. + +2021-11-22 Jakub Jelinek + + PR c++/101731 + * c-c++-common/goacc/routine-6.c: New test. + +2021-11-22 Richard Biener + + PR tree-optimization/103351 + * g++.dg/torture/pr103351.C: New testcase. + +2021-11-22 Jakub Jelinek + + PR c++/103349 + * g++.dg/gomp/masked-1.C: New test. + +2021-11-22 liuhongt + + * gcc.target/i386/pr103275.c: New test. + +2021-11-21 Jakub Jelinek + + PR c++/101180 + * gcc.target/i386/pr101180.c: New test. + +2021-11-21 Harald Anlauf + Steven G. Kargl + + PR fortran/99061 + * gfortran.dg/dec_math_5.f90: New test. + +2021-11-21 Jan Hubicka + + PR ipa/103227 + * gcc.dg/tree-ssa/modref-15.c: New test. + +2021-11-21 Jan Hubicka + + PR ipa/103264 + * gcc.dg/tree-prof/merge_block.c: Add -fno-ipa-modref + +2021-11-21 Roger Sayle + Robin Dapp + + PR target/102117 + * gcc.target/s390/mul-wide.c: New test case. + * gcc.target/s390/umul-wide.c: New test case. + +2021-11-20 Jan Hubicka + + PR ipa/103052 + * gcc.c-torture/execute/pr103052.c: New test. + +2021-11-20 Andrew Pinski + + PR tree-optimization/103220 + * gcc.dg/tree-ssa/pr103220-1.c: New test. + * gcc.dg/tree-ssa/pr103220-2.c: New test. + * gcc.dg/pr25530.c: Update test to check for + 4294967294 in the case -2 is not matched. + +2021-11-20 Alexandre Oliva + + PR tree-optimization/102988 + * g++.dg/pr102988.C: New. + +2021-11-20 Antoni Boucher + + PR target/96889 + * jit.dg/all-non-failing-tests.h: Add test-reflection.c. + * jit.dg/test-reflection.c: New test. + +2021-11-19 Jakub Jelinek + + PR c++/101180 + * g++.target/i386/pr101180.C: New test. + +2021-11-19 David Malcolm + + PR analyzer/103217 + * gcc.dg/analyzer/explode-1.c: Update for improvement to location + of leak warning. + * gcc.dg/analyzer/pr103217.c: New test. + * gcc.dg/analyzer/pr94858-1.c: Add -Wno-analyzer-too-complex. + +2021-11-19 Marek Polacek + + * g++.dg/cpp0x/lambda/lambda-nested9.C: Adjust dg-error. + +2021-11-19 Iain Sandoe + + * gcc.dg/torture/fp-int-convert-timode-3.c: Remove XFAIL. + * gcc.dg/torture/fp-int-convert-timode-4.c: Likewise. + +2021-11-19 Jan Hubicka + + * gcc.dg/tree-ssa/modref-dse-6.c: New test. + +2021-11-19 Martin Sebor + + PR c++/33925 + PR c/102867 + * g++.dg/warn/Walways-true-2.C: Adjust to avoid a valid warning. + * c-c++-common/Waddress-5.c: New test. + * c-c++-common/Waddress-6.c: New test. + * g++.dg/warn/Waddress-7.C: New test. + * gcc.dg/Walways-true-2.c: Adjust to avoid a valid warning. + * gcc.dg/weak/weak-3.c: Expect a warning. + +2021-11-19 Andrew MacLeod + + * gcc.dg/pr103254.c: New. + +2021-11-19 Stefan Schulze Frielinghaus + + * gcc.target/s390/20211119.c: New test. + +2021-11-19 Tamar Christina + + PR tree-optimization/103311 + PR target/103330 + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c: Fix it. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c: Likewise. + * lib/target-supports.exp + (check_effective_target_vect_complex_add_double): Add Adv. SIMD. + +2021-11-19 Giuliano Belinassi + + * gcc.dg/devnull-dump.c: New. + +2021-11-19 Patrick Palka + + PR c++/94376 + * g++.dg/cpp0x/lambda/lambda-nested9.C: New test. + +2021-11-19 Andrew Pinski + + PR tree-optimization/103314 + * gcc.c-torture/compile/pr103314-1.c: New test. + +2021-11-19 Richard Biener + + PR c++/103326 + * g++.dg/pr103326.C: New testcase. + +2021-11-19 Jakub Jelinek + + PR c++/70796 + * g++.dg/cpp1z/eval-order11.C: New test. + +2021-11-19 Richard Biener + + PR middle-end/103248 + * gcc.dg/pr103248.c: New testcase. + +2021-11-19 Richard Biener + + PR tree-optimization/102436 + * gcc.dg/torture/20211118-1.c: New testcase. + * gcc.dg/tree-ssa/ssa-lim-18.c: Likewise. + +2021-11-19 Andrew Pinski + + PR tree-optimization/103317 + * gcc.c-torture/compile/pr103317-1.c: New test. + +2021-11-19 Andrew Pinski + + PR tree-optimization/103257 + * gcc.dg/tree-ssa/vrp116.c: Check optimized instead of vrp1. + * gcc.dg/tree-ssa/pr103257-1.c: New test. + +2021-11-19 Marek Polacek + + PR c++/19808 + PR c++/96121 + * g++.dg/warn/Wuninitialized-14.C: New test. + * g++.dg/warn/Wuninitialized-15.C: New test. + * g++.dg/warn/Wuninitialized-16.C: New test. + * g++.dg/warn/Wuninitialized-17.C: New test. + * g++.dg/warn/Wuninitialized-18.C: New test. + * g++.dg/warn/Wuninitialized-19.C: New test. + * g++.dg/warn/Wuninitialized-20.C: New test. + * g++.dg/warn/Wuninitialized-21.C: New test. + * g++.dg/warn/Wuninitialized-22.C: New test. + * g++.dg/warn/Wuninitialized-23.C: New test. + * g++.dg/warn/Wuninitialized-24.C: New test. + * g++.dg/warn/Wuninitialized-25.C: New test. + * g++.dg/warn/Wuninitialized-26.C: New test. + * g++.dg/warn/Wuninitialized-27.C: New test. + * g++.dg/warn/Wuninitialized-28.C: New test. + * g++.dg/warn/Wuninitialized-29.C: New test. + * g++.dg/warn/Wuninitialized-30.C: New test. + +2021-11-19 liuhongt + + * gcc.target/i386/pr102543.c: New test. + +2021-11-19 Patrick Palka + + PR c++/103198 + * g++.dg/cpp2a/concepts-this1.C: New test. + +2021-11-18 Marek Polacek + + PR c++/103049 + * g++.dg/cpp0x/auto25.C: Adjust dg-error. + * g++.dg/cpp0x/auto9.C: Likewise. + * g++.dg/cpp2a/concepts-pr84979-2.C: Likewise. + * g++.dg/cpp2a/concepts-pr84979-3.C: Likewise. + * g++.dg/cpp23/auto-fncast1.C: New test. + * g++.dg/cpp23/auto-fncast2.C: New test. + * g++.dg/cpp23/auto-fncast3.C: New test. + * g++.dg/cpp23/auto-fncast4.C: New test. + * g++.dg/cpp23/auto-fncast5.C: New test. + * g++.dg/cpp23/auto-fncast6.C: New test. + +2021-11-18 Harald Anlauf + Steven G. Kargl + + PR fortran/101329 + * gfortran.dg/pr101329.f90: New test. + +2021-11-18 Patrick Palka + + * g++.dg/cpp2a/fn-template25.C: New test. + +2021-11-18 Jan Hubicka + + * gcc.dg/lto/semantic-interposition-1_0.c: New test. + * gcc.dg/lto/semantic-interposition-1_1.c: New test. + +2021-11-18 Jan Hubicka + + PR ipa/103266 + * g++.dg/torture/pr103266.C: New test. + +2021-11-18 Tamar Christina + + PR tree-optimization/103311 + * gcc.target/aarch64/pr103311.c: New test. + +2021-11-18 H.J. Lu + + PR target/102952 + * gcc.target/i386/indirect-thunk-cs-prefix-1.c: New test. + * gcc.target/i386/indirect-thunk-cs-prefix-2.c: Likewise. + +2021-11-18 Jeff Law + + * gcc.target/mips/octeon-bbit-1.c (f3): Add noipa attribute. + +2021-11-18 Patrick Palka + + PR c++/99911 + * g++.dg/cpp2a/fn-template24.C: New test. + +2021-11-18 Patrick Palka + + PR c++/102670 + * g++.dg/cpp2a/concepts-recursive-sat1.C: Adjust to use ADL + proper. + * g++.dg/cpp2a/fn-template23.C: New test. + +2021-11-18 Tamar Christina + + PR tree-optimization/103253 + * gcc.dg/vect/pr103253.c: New test. + +2021-11-18 Matthias Kretz + + * c-c++-common/builtin-assoc-barrier-1.c: New test. + +2021-11-18 Richard Biener + + PR testsuite/103278 + * gcc.dg/tree-ssa/if-to-switch-3.c: Supply + --param case-values-threshold=4. + +2021-11-18 Richard Biener + + PR tree-optimization/103277 + * gcc.dg/pr103277.c: New testcase. + +2021-11-18 Hongyu Wang + + * gcc.target/i386/pr103069-2.c: Adjust. + +2021-11-18 konglin1 + + * gcc.target/i386/avx512fp16-vfcmulcph-1a.c: Add new test for alias. + * gcc.target/i386/avx512fp16-vfcmulcsh-1a.c: Likewise. + * gcc.target/i386/avx512fp16-vfmulcph-1a.c: Likewise. + * gcc.target/i386/avx512fp16-vfmulcsh-1a.c: Likewise. + * gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c: Likewise. + * gcc.target/i386/avx512fp16vl-vfmulcph-1a.c: Likewise. + +2021-11-17 Andrew Pinski + + PR tree-optimization/103228 + PR tree-optimization/55177 + * gcc.dg/tree-ssa/pr103228-1.c: New test. + * gcc.dg/tree-ssa/pr55177-1.c: New test. + +2021-11-17 David Malcolm + + PR preprocessor/103026 + * c-c++-common/Wbidi-chars-ranges.c: New test. + +2021-11-17 Martin Sebor + + PR tree-optimization/102759 + * gcc.dg/Warray-parameter-10.c: New test. + * gcc.dg/Wstringop-overflow-82.c: New test. + +2021-11-17 H.J. Lu + + PR target/102952 + * gcc.target/i386/harden-sls-1.c: New test. + * gcc.target/i386/harden-sls-2.c: Likewise. + * gcc.target/i386/harden-sls-3.c: Likewise. + * gcc.target/i386/harden-sls-4.c: Likewise. + * gcc.target/i386/harden-sls-5.c: Likewise. + +2021-11-17 Martin Sebor + + PR c/101702 + * gcc.dg/Warray-parameter-11.c: New test. + +2021-11-17 Jeff Law + + * gcc.target/mips/frame-header-1.c (bar): Add noipa attribute. + * gcc.target/mips/frame-header-2.c (bar): Likewise. + +2021-11-17 Jakub Jelinek + + PR preprocessor/103130 + * c-c++-common/cpp/dir-only-9.c: New test. + +2021-11-17 Martin Uecker + + PR c/91038 + PR c/29970 + * gcc.dg/vla-stexp-3.c: New test. + * gcc.dg/vla-stexp-4.c: New test. + * gcc.dg/vla-stexp-5.c: New test. + * gcc.dg/vla-stexp-6.c: New test. + * gcc.dg/vla-stexp-7.c: New test. + * gcc.dg/vla-stexp-8.c: New test. + * gcc.dg/vla-stexp-9.c: New test. + +2021-11-17 Jakub Jelinek + + PR tree-optimization/103255 + * gcc.c-torture/execute/pr103255.c: New test. + +2021-11-17 Richard Sandiford + + * gcc.target/aarch64/sve/cond_fmaxnm_5.c: New test. + * gcc.target/aarch64/sve/cond_fmaxnm_5_run.c: Likewise. + * gcc.target/aarch64/sve/cond_fmaxnm_6.c: Likewise. + * gcc.target/aarch64/sve/cond_fmaxnm_6_run.c: Likewise. + * gcc.target/aarch64/sve/cond_fmaxnm_7.c: Likewise. + * gcc.target/aarch64/sve/cond_fmaxnm_7_run.c: Likewise. + * gcc.target/aarch64/sve/cond_fmaxnm_8.c: Likewise. + * gcc.target/aarch64/sve/cond_fmaxnm_8_run.c: Likewise. + * gcc.target/aarch64/sve/cond_fminnm_5.c: Likewise. + * gcc.target/aarch64/sve/cond_fminnm_5_run.c: Likewise. + * gcc.target/aarch64/sve/cond_fminnm_6.c: Likewise. + * gcc.target/aarch64/sve/cond_fminnm_6_run.c: Likewise. + * gcc.target/aarch64/sve/cond_fminnm_7.c: Likewise. + * gcc.target/aarch64/sve/cond_fminnm_7_run.c: Likewise. + * gcc.target/aarch64/sve/cond_fminnm_8.c: Likewise. + * gcc.target/aarch64/sve/cond_fminnm_8_run.c: Likewise. + +2021-11-17 Andrew Pinski + + PR tree-optimization/103288 + * gcc.c-torture/compile/pr103288-1.c: New test. + +2021-11-17 Marek Polacek + + PR preprocessor/103026 + * c-c++-common/Wbidi-chars-1.c: New test. + * c-c++-common/Wbidi-chars-2.c: New test. + * c-c++-common/Wbidi-chars-3.c: New test. + * c-c++-common/Wbidi-chars-4.c: New test. + * c-c++-common/Wbidi-chars-5.c: New test. + * c-c++-common/Wbidi-chars-6.c: New test. + * c-c++-common/Wbidi-chars-7.c: New test. + * c-c++-common/Wbidi-chars-8.c: New test. + * c-c++-common/Wbidi-chars-9.c: New test. + * c-c++-common/Wbidi-chars-10.c: New test. + * c-c++-common/Wbidi-chars-11.c: New test. + * c-c++-common/Wbidi-chars-12.c: New test. + * c-c++-common/Wbidi-chars-13.c: New test. + * c-c++-common/Wbidi-chars-14.c: New test. + * c-c++-common/Wbidi-chars-15.c: New test. + * c-c++-common/Wbidi-chars-16.c: New test. + * c-c++-common/Wbidi-chars-17.c: New test. + +2021-11-17 David Malcolm + + PR analyzer/102695 + * gcc.dg/analyzer/pr102695.c: New test. + * gcc.dg/analyzer/strchr-1.c: New test. + +2021-11-17 David Malcolm + + PR analyzer/102779 + * gcc.dg/analyzer/capacity-1.c: Add dg-require-effective-target + alloca. Use __builtin_alloca rather than alloca. + * gcc.dg/analyzer/capacity-3.c: Likewise. + +2021-11-16 Jan Hubicka + + * gcc.dg/tree-ssa/modref-dse-4.c: New test. + +2021-11-16 Harald Anlauf + + PR fortran/103286 + * gfortran.dg/pr103286.f90: New test. + +2021-11-16 Peter Bergner + + PR target/102976 + * gcc.target/powerpc/pr102976.c: New test. + +2021-11-16 Martin Sebor + + PR tree-optimization/102960 + * gcc.dg/Wstringop-overflow-84.c: New test. + +2021-11-16 Tamar Christina + + * gcc.target/aarch64/shrn-combine-10.c: Use shrn. + +2021-11-16 Tamar Christina + + * gcc.dg/signbit-2.c: CHeck vect or scalar. + +2021-11-16 David Malcolm + + PR analyzer/102662 + * g++.dg/analyzer/pr102662.C: New test. + +2021-11-16 Andrew Pinski + + PR tree-optimization/103218 + * gcc.dg/tree-ssa/pr103218-1.c: New test. + +2021-11-16 Claudiu Zissulescu + + * gcc.target/arc/tmac-4.c: New test. + +2021-11-16 Richard Biener + + PR tree-optimization/102880 + * gcc.dg/tree-ssa/pr102880.c: New testcase. + * gcc.dg/tree-ssa/pr69270-3.c: Robustify. + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Change the number of + expected threadings. + +2021-11-16 Richard Biener + + PR tree-optimization/102880 + * gcc.dg/tree-ssa/phi-opt-26.c: New testcase. + +2021-11-16 Claudiu Zissulescu + + * gcc.target/arc/add_n-combine.c: Update test patterns. + * gcc.target/arc/builtin_eh.c: Update test for linux platforms. + * gcc.target/arc/mul64-1.c: Disable this test while running on + linux. + * gcc.target/arc/tls-gd.c: Update matching patterns. + * gcc.target/arc/tls-ie.c: Likewise. + * gcc.target/arc/tls-ld.c: Likewise. + * gcc.target/arc/uncached-8.c: Likewise. + +2021-11-16 Martin Jambor + + * gcc.dg/ipa/ipa-sra-ret-nonull.c: New test. + +2021-11-16 Jakub Jelinek + + PR tree-optimization/103208 + * c-c++-common/gomp/loop-11.c: New test. + +2021-11-16 Jakub Jelinek + + PR tree-optimization/102009 + * gcc.dg/pr102009.c: New test. + +2021-11-16 Jan Hubicka + + * gcc.dg/tree-ssa/modref-dse-5.c: New test. + +2021-11-16 Andrew Pinski + + PR tree-optimization/103245 + * gcc.dg/tree-ssa/pr103245-1.c: New test. + +2021-11-16 H.J. Lu + + PR middle-end/103268 + * gcc.dg/pr103268-1.c: New test. + * gcc.dg/pr103268-2.c: Likewise. + +2021-11-15 Jason Merrill + + * lib/g++-dg.exp: Handle "impcx". + * lib/target-supports.exp + (check_effective_target_implicit_constexpr): New. + * g++.dg/abi/abi-tag16.C: + * g++.dg/abi/abi-tag18a.C: + * g++.dg/abi/guard4.C: + * g++.dg/abi/lambda-defarg1.C: + * g++.dg/abi/mangle26.C: + * g++.dg/cpp0x/constexpr-diag3.C: + * g++.dg/cpp0x/constexpr-ex1.C: + * g++.dg/cpp0x/constexpr-ice5.C: + * g++.dg/cpp0x/constexpr-incomplete2.C: + * g++.dg/cpp0x/constexpr-memfn1.C: + * g++.dg/cpp0x/constexpr-neg3.C: + * g++.dg/cpp0x/constexpr-specialization.C: + * g++.dg/cpp0x/inh-ctor19.C: + * g++.dg/cpp0x/inh-ctor30.C: + * g++.dg/cpp0x/lambda/lambda-mangle3.C: + * g++.dg/cpp0x/lambda/lambda-mangle5.C: + * g++.dg/cpp1y/auto-fn12.C: + * g++.dg/cpp1y/constexpr-loop5.C: + * g++.dg/cpp1z/constexpr-lambda7.C: + * g++.dg/cpp2a/constexpr-dtor3.C: + * g++.dg/cpp2a/constexpr-new13.C: + * g++.dg/cpp2a/constinit11.C: + * g++.dg/cpp2a/constinit12.C: + * g++.dg/cpp2a/constinit14.C: + * g++.dg/cpp2a/constinit15.C: + * g++.dg/cpp2a/spaceship-constexpr1.C: + * g++.dg/cpp2a/spaceship-eq3.C: + * g++.dg/cpp2a/udlit-class-nttp-neg2.C: + * g++.dg/debug/dwarf2/auto1.C: + * g++.dg/debug/dwarf2/cdtor-1.C: + * g++.dg/debug/dwarf2/lambda1.C: + * g++.dg/debug/dwarf2/pr54508.C: + * g++.dg/debug/dwarf2/pubnames-2.C: + * g++.dg/debug/dwarf2/pubnames-3.C: + * g++.dg/ext/is_literal_type3.C: + * g++.dg/ext/visibility/template7.C: + * g++.dg/gcov/gcov-12.C: + * g++.dg/gcov/gcov-2.C: + * g++.dg/ipa/devirt-35.C: + * g++.dg/ipa/devirt-36.C: + * g++.dg/ipa/devirt-37.C: + * g++.dg/ipa/devirt-44.C: + * g++.dg/ipa/imm-devirt-1.C: + * g++.dg/lookup/builtin5.C: + * g++.dg/lto/inline-crossmodule-1_0.C: + * g++.dg/modules/enum-1_a.C: + * g++.dg/modules/fn-inline-1_c.C: + * g++.dg/modules/pmf-1_b.C: + * g++.dg/modules/used-1_c.C: + * g++.dg/tls/thread_local11.C: + * g++.dg/tls/thread_local11a.C: + * g++.dg/tm/pr46653.C: + * g++.dg/ubsan/pr70035.C: + * g++.old-deja/g++.other/delete6.C: + * g++.dg/modules/pmf-1_a.H: + Adjust for implicit constexpr. + +2021-11-15 Jason Merrill + + * g++.dg/ext/flexary37.C: Remove expected error. + +2021-11-15 Siddhesh Poyarekar + + * gcc.dg/fold-stringops-2.c: Define size_t. + (safe1): Adjust. + (safe4): New test. + * gcc.dg/fold-stringops-3.c: New test. + +2021-11-15 Siddhesh Poyarekar + + * gcc.dg/Wobjsize-1.c: Make warning change line agnostic. + * gcc.dg/fold-stringops-2.c: New test. + +2021-11-15 Siddhesh Poyarekar + + * gcc.dg/fold-stringops-1.c: New test. + +2021-11-15 H.J. Lu + + PR middle-end/103184 + * gcc.dg/pr103184-1.c: New test. + * gcc.dg/pr103184-2.c: Likewise. + +2021-11-15 Iain Sandoe + + * gcc.dg/vect/tsvc/tsvc.h: Use malloc for Darwin 9 and + earlier. + +2021-11-15 Aldy Hernandez + + * gcc.dg/pr103207.c: New test. + +2021-11-15 Jakub Jelinek + + PR debug/100469 + * g++.dg/opt/pr100469.C: New test. + +2021-11-15 H.J. Lu + + PR target/103205 + * gcc.target/i386/pr103205-2.c: New test. + +2021-11-15 Aldy Hernandez + + * g++.dg/tree-ssa/pr31146-2.C: Add -fno-thread-jumps. + +2021-11-15 Richard Biener + + PR tree-optimization/103237 + * gcc.dg/torture/pr103237.c: New testcase. + +2021-11-15 Hongyu Wang + + PR target/103069 + * gcc.target/i386/pr103069-1.c: New test. + * gcc.target/i386/pr103069-2.c: Ditto. + +2021-11-15 Richard Biener + + PR tree-optimization/103219 + * gcc.dg/torture/pr103219.c: New testcase. + +2021-11-15 Rainer Orth + + * gcc.target/i386/pr101346.c: Require dfp support. + +2021-11-15 Jakub Jelinek + + PR target/103205 + * gcc.target/i386/pr103205.c: New test. + +2021-11-15 Jason Merrill + + * g++.dg/cpp0x/lambda/lambda-switch.C: Adjust expected location. + +2021-11-15 Jason Merrill + + * g++.dg/cpp1y/constexpr-89285-2.C: Expect error. + * g++.dg/cpp1y/constexpr-89285.C: Adjust error. + +2021-11-15 Jason Merrill + + PR c++/70690 + * g++.dg/init/array41a.C: New test. + +2021-11-15 Jason Merrill + + * g++.dg/cpp2a/constexpr-virtual20.C: New test. + +2021-11-15 Hans-Peter Nilsson + + * gcc.dg/uninit-pred-9_b.c: Correct last adjustment, for CRIS. + +2021-11-15 Andrew Pinski + + * gcc.dg/tree-ssa/pr100278.c: Move to ... + * gcc.c-torture/compile/pr100278.c: Here. + Remove dg-do and dg-options. + * gcc.dg/tree-ssa/pr101189.c: Move to ... + * gcc.c-torture/compile/pr101189.c: Here. + Remove dg-do and dg-options. + * gcc.dg/tree-ssa/pr100453.c: Move to ... + * gcc.c-torture/execute/pr100453.c: Here. + Remove dg-do and dg-options. + * gcc.dg/tree-ssa/pr101335.c: Move to ... + * gcc.c-torture/execute/pr101335.c: Here + Remove dg-do and dg-options. + +2021-11-14 Maciej W. Rozycki + + * gcc.target/vax/setmem.c: New test. + +2021-11-14 Jan Hubicka + + * gcc.dg/tree-ssa/modref-dse-3.c: New test. + +2021-11-14 Aldy Hernandez + + * gcc.dg/pr103229.c: Removed. + +2021-11-14 Aldy Hernandez + + * gcc.dg/pr103229.c: New test. + +2021-11-14 Martin Liska + + * c-c++-common/tsan/free_race.c: Remove unnecessary -ldl. + * c-c++-common/tsan/free_race2.c: Likewise. + +2021-11-14 Jan Hubicka + + * c-c++-common/asan/null-deref-1.c: Update template. + * c-c++-common/tsan/free_race.c: Update template. + * c-c++-common/tsan/free_race2.c: Update template. + * gcc.dg/ipa/ipa-sra-4.c: Update template. + +2021-11-13 Jan Hubicka + + * g++.dg/cpp1z/inh-ctor23.C: Fix template + * g++.dg/ipa/ipa-icf-4.C: Fix template + * gcc.dg/tree-ssa/modref-dse-1.c: New test. + * gcc.dg/tree-ssa/modref-dse-2.c: New test. + +2021-11-13 David Malcolm + + * gcc.dg/analyzer/pr93382.c: Tweak expected wording. + * gcc.dg/analyzer/taint-alloc-1.c: New test. + * gcc.dg/analyzer/taint-alloc-2.c: New test. + * gcc.dg/analyzer/taint-divisor-1.c: New test. + * gcc.dg/analyzer/taint-1.c: Rename to... + * gcc.dg/analyzer/taint-read-index-1.c: ...this. Tweak expected + wording. Mark some events as xfail. + * gcc.dg/analyzer/taint-read-offset-1.c: New test. + * gcc.dg/analyzer/taint-size-1.c: New test. + * gcc.dg/analyzer/taint-write-index-1.c: New test. + * gcc.dg/analyzer/taint-write-offset-1.c: New test. + +2021-11-13 Aldy Hernandez + + * gcc.dg/pr103222.c: New test. + +2021-11-12 Jan Hubicka + + PR tree-optimization/103209 + * gcc.dg/tree-ssa/pta-callused.c: Update template. + * gcc.c-torture/execute/pr103209.c: New test. + +2021-11-12 Richard Sandiford + + * gcc.target/aarch64/stp_1.c: New test. + +2021-11-12 Tobias Burnus + + * gfortran.dg/gomp/unexpected-end.f90: Update dg-error. + * gfortran.dg/gomp/clauses-1.f90: New test. + * gfortran.dg/gomp/nowait-2.f90: New test. + * gfortran.dg/gomp/nowait-3.f90: New test. + +2021-11-12 Martin Liska + + PR testsuite/103051 + * gcc.dg/vect/tsvc/vect-tsvc-s112.c: Skip test for old Power + CPUs. + +2021-11-12 Chung-Lin Tang + + * c-c++-common/gomp/target-implicit-map-1.c: New test. + * c-c++-common/goacc/combined-reduction.c: Adjust scan test pattern. + * c-c++-common/goacc/firstprivate-mappings-1.c: Likewise. + * c-c++-common/goacc/mdc-1.c: Likewise. + * g++.dg/goacc/firstprivate-mappings-1.C: Likewise. + +2021-11-12 Mikael Morin + + PR fortran/97896 + * gfortran.dg/index_5.f90: New. + +2021-11-12 Richard Biener + + PR tree-optimization/103204 + * gcc.dg/torture/pr103204.c: New testcase. + +2021-11-11 Bill Schmidt + + * gcc.target/powerpc/test_mffsl.c: Require Power9. + +2021-11-11 Jan Hubicka + + * gfortran.dg/inline_matmul_17.f90: Fix template + +2021-11-11 Jan Hubicka + + * c-c++-common/tm/inline-asm.c: Disable pure-const. + * g++.dg/ipa/modref-1.C: Update template. + * gcc.dg/tree-ssa/modref-11.c: Disable pure-const. + * gcc.dg/tree-ssa/modref-14.c: New test. + * gcc.dg/tree-ssa/modref-8.c: Do not optimize sibling calls. + * gfortran.dg/do_subscript_3.f90: Add -O0. + +2021-11-11 Tobias Burnus + + * gfortran.dg/gomp/num-teams-1.f90: New file. + * gfortran.dg/gomp/num-teams-2.f90: New file. + +2021-11-11 Sandra Loosemore + + * g++.dg/warn/Wmismatched-new-delete-5.C: Add + -fdelete-null-pointer-checks. + * gcc.dg/attr-returns-nonnull.c: Likewise. + * gcc.dg/debug/btf/btf-datasec-1.c: Add -G0 option for nios2. + * gcc.dg/ifcvt-4.c: Skip on nios2. + * gcc.dg/struct-by-value-1.c: Add -G0 option for nios2. + +2021-11-11 Richard Biener + + PR tree-optimization/103188 + * gcc.dg/torture/pr103188.c: New testcase. + +2021-11-11 Richard Biener + + PR middle-end/103181 + * gcc.dg/torture/pr103181.c: New testcase. + +2021-11-11 Jakub Jelinek + + PR debug/101378 + * g++.dg/debug/dwarf2/pr101378.C: New test. + +2021-11-11 Prathamesh Kulkarni + + PR target/102376 + * gcc.target/aarch64/pr102376.c: New test. + +2021-11-11 Jakub Jelinek + + * c-c++-common/gomp/clauses-1.c (bar): Supply lower-bound expression + to half of the num_teams clauses. + * c-c++-common/gomp/num-teams-1.c: New test. + * c-c++-common/gomp/num-teams-2.c: New test. + * g++.dg/gomp/attrs-1.C (bar): Supply lower-bound expression + to half of the num_teams clauses. + * g++.dg/gomp/attrs-2.C (bar): Likewise. + * g++.dg/gomp/num-teams-1.C: New test. + * g++.dg/gomp/num-teams-2.C: New test. + +2021-11-11 liuhongt + + * gcc.target/i386/pr103151.c: New test. + +2021-11-10 Aldy Hernandez + + * gcc.dg/tree-ssa/pr102906.c: New test. + +2021-11-10 Andrew Pinski + + PR target/103170 + * gcc.c-torture/compile/vector-dup-1.c: New test. + +2021-11-10 H.J. Lu + + PR tree-optimization/102892 + * gcc.dg/pr102892-1.c: New file. + * gcc.dg/pr102892-2.c: Likewise. + +2021-11-10 Martin Sebor + + PR testsuite/103161 + * gcc.dg/tree-ssa/builtin-sprintf-warn-16.c: Avoid relying on + argument evaluation order. Cast width and precision to signed + to avoid undefined behavior. + +2021-11-10 qing zhao + + * gcc.target/i386/auto-init-6.c: _Complex long double is initialized + to zero now with -ftrivial-auto-var-init=pattern. + +2021-11-10 Tamar Christina + + * gcc.target/aarch64/sve/pred-not-gen-1.c: Update testcase. + * gcc.target/aarch64/sve/pred-not-gen-2.c: Update testcase. + * gcc.target/aarch64/sve/pred-not-gen-3.c: Update testcase. + * gcc.target/aarch64/sve/pred-not-gen-4.c: Update testcase. + +2021-11-10 Tamar Christina + + * gcc.target/aarch64/shrn-combine-8.c: Update. + * gcc.target/aarch64/shrn-combine-9.c: Update. + +2021-11-10 Jan Hubicka + + * gcc.dg/tree-ssa/modref-13.c: Fix typo. + +2021-11-10 Marek Polacek + + PR c++/101940 + * c-c++-common/Wno-attributes-1.c: New test. + * c-c++-common/Wno-attributes-2.c: New test. + * c-c++-common/Wno-attributes-3.c: New test. + +2021-11-10 Jan Hubicka + + * g++.dg/ipa/modref-1.C: Update template. + * gcc.dg/ipa/modref-3.c: Update template. + * gcc.dg/lto/modref-3_0.c: Update template. + * gcc.dg/lto/modref-4_0.c: Update template. + * gcc.dg/tree-ssa/modref-10.c: Update template. + * gcc.dg/tree-ssa/modref-11.c: Update template. + * gcc.dg/tree-ssa/modref-5.c: Update template. + * gcc.dg/tree-ssa/modref-6.c: Update template. + * gcc.dg/tree-ssa/modref-13.c: New test. + +2021-11-10 Tamar Christina + + PR testsuite/103042 + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c: Use + vect_long_long instead of vect_long. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c: + Likewise. + * gcc.dg/vect/complex/vect-complex-add-pattern-long.c: Likewise. + * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c: + Likewise. + +2021-11-10 Tamar Christina + + * gcc.dg/signbit-2.c: Turn off masks. + * gcc.dg/signbit-5.c: Likewise. + +2021-11-10 Richard Biener + + PR testsuite/102690 + * g++.dg/warn/Warray-bounds-16.C: XFAIL diagnostic part + and optimization. + +2021-11-10 Andre Vieira + + * gcc.target/aarch64/simd/lowering_tbaa.c: New test. + +2021-11-10 Andre Vieira + + * gcc.target/aarch64/fmla_intrinsic_1.c: Fix big-endian testism. + * gcc.target/aarch64/fmls_intrinsic_1.c: Likewise. + * gcc.target/aarch64/fmul_intrinsic_1.c: Likewise. + +2021-11-10 H.J. Lu + Hongtao Liu + + PR middle-end/102566 + * g++.target/i386/pr102566-1.C: New test. + * g++.target/i386/pr102566-2.C: Likewise. + * g++.target/i386/pr102566-3.C: Likewise. + * g++.target/i386/pr102566-4.C: Likewise. + * g++.target/i386/pr102566-5a.C: Likewise. + * g++.target/i386/pr102566-5b.C: Likewise. + * g++.target/i386/pr102566-6a.C: Likewise. + * g++.target/i386/pr102566-6b.C: Likewise. + * gcc.target/i386/pr102566-1a.c: Likewise. + * gcc.target/i386/pr102566-1b.c: Likewise. + * gcc.target/i386/pr102566-2.c: Likewise. + * gcc.target/i386/pr102566-3a.c: Likewise. + * gcc.target/i386/pr102566-3b.c: Likewise. + * gcc.target/i386/pr102566-4.c: Likewise. + * gcc.target/i386/pr102566-5.c: Likewise. + * gcc.target/i386/pr102566-6.c: Likewise. + * gcc.target/i386/pr102566-7.c: Likewise. + * gcc.target/i386/pr102566-8a.c: Likewise. + * gcc.target/i386/pr102566-8b.c: Likewise. + * gcc.target/i386/pr102566-9a.c: Likewise. + * gcc.target/i386/pr102566-9b.c: Likewise. + * gcc.target/i386/pr102566-10a.c: Likewise. + * gcc.target/i386/pr102566-10b.c: Likewise. + * gcc.target/i386/pr102566-11.c: Likewise. + * gcc.target/i386/pr102566-12.c: Likewise. + * gcc.target/i386/pr102566-13.c: New test. + * gcc.target/i386/pr102566-14.c: New test. + +2021-11-10 liuhongt + + * gcc.target/i386/ifcvt-reduction-logic-op.c: New test. + +2021-11-10 konglin1 + + * gcc.target/i386/avx512fp16-vector-complex-float.c: New test. + +2021-11-10 konglin1 + + * gcc.target/i386/avx512fp16vl-complex-broadcast-1.c: New test. + +2021-11-10 liuhongt + + * gcc.target/i386/pr102464-maxmin.c: New test. + +2021-11-10 Andrew Pinski + + PR target/101529 + * c-c++-common/torture/builtin-convertvector-2.c: New test. + * c-c++-common/torture/builtin-shufflevector-2.c: New test. + +2021-11-10 Sandra Loosemore + + * gcc.target/nios2/custom-fp-inline-1.c: New. + * gcc.target/nios2/custom-fp-inline-2.c: New. + * gcc.target/nios2/custom-fp-inline-3.c: New. + * gcc.target/nios2/custom-fp-inline-4.c: New. + +2021-11-09 David Malcolm + + * gcc.dg/bad-pragma-locations.c: New test. + +2021-11-09 Bill Schmidt + + * gcc.target/powerpc/p10_vec_xl_sext.c: Fix long long case. + +2021-11-09 Andrew Pinski + + PR tree-optimization/10352 + * gcc.c-torture/execute/pr10352-1.c: New test. + +2021-11-09 Marek Polacek + + * g++.dg/init/bitfield6.C: New test. + +2021-11-09 Kito Cheng + + * gcc.target/riscv/pr102957.c: New. + +2021-11-09 Jakub Jelinek + + PR c++/103114 + * g++.dg/ext/complex10.C: New test. + +2021-11-09 Patrick Palka + + PR c++/98394 + PR c++/85846 + * g++.dg/cpp2a/concepts-pr98394.C: New test. + * g++.dg/cpp2a/concepts-pr85846.C: New test. + +2021-11-09 Patrick Palka + + PR c++/100652 + * g++.dg/cpp1y/var-templ69.C: New test. + +2021-11-09 Przemyslaw Wirkus + + * gcc.target/arm/multilib.exp: Update test with armv9-a entries. + * lib/target-supports.exp (v9a): Add new armflag. + (__ARM_ARCH_9A__): Add new armdef. + +2021-11-09 Martin Jambor + + PR ipa/103132 + * gcc.dg/ipa/pr103132.c: New test. + +2021-11-09 Aldy Hernandez + + * gcc.dg/tree-ssa/builtin-sprintf-warn-22.c: XFAIL. + +2021-11-09 Jeff Law + + * gcc.dg/tree-ssa/bittest.c: New test + +2021-11-08 Andrew MacLeod + + * g++.dg/pr103122.C: New. + +2021-11-08 Martin Jambor + + PR ipa/103099 + PR ipa/103107 + * g++.dg/ipa/pr103099.C: New test. + * gcc.dg/ipa/pr103107.c: Likewise. + +2021-11-08 Aldy Hernandez + + * gcc.dg/pr103120.c: New test. + +2021-11-08 Martin Liska + + PR gcov-profile/100520 + * gcc.dg/pr100520.c: New test. + +2021-11-08 Richard Sandiford + + * gcc.target/aarch64/neoverse_v1_1.c: New test. + +2021-11-08 Jan Hubicka + + * gcc.dg/tree-ssa/modref-12.c: New test. + +2021-11-08 Haochen Gui + + * gcc.target/powerpc/vec-minmax-1.c: New test. + * gcc.target/powerpc/vec-minmax-2.c: Likewise. + +2021-11-08 liuhongt + + * gcc.target/i386/pr102464-fma.c: New test. + +2021-11-07 Thomas Koenig + + * gfortran.dg/co_reduce_2.f90: New test. + * gfortran.dg/coarray_collectives_14.f90: Change OPERATOR + to OPERATION. + * gfortran.dg/coarray_collectives_16.f90: Likewise. + * gfortran.dg/coarray_collectives_9.f90: Likewise. + Co-authored by: Steve Kargl + +2021-11-07 Sandra Loosemore + + * gfortran.dg/bessel_3.f90: Expect additional diagnostics from + multiple bad arguments in the call. + * gfortran.dg/pr24823.f: Likewise. + * gfortran.dg/pr39937.f: Likewise. + * gfortran.dg/pr41011.f: Likewise. + * gfortran.dg/pr61318.f90: Likewise. + * gfortran.dg/c-interop/c407b-2.f90: Remove xfails. + * gfortran.dg/c-interop/c535b-2.f90: Likewise. + +2021-11-06 Harald Anlauf + + PR fortran/102715 + * gfortran.dg/pr68019.f90: Adjust error message. + * gfortran.dg/pr102715.f90: New test. + +2021-11-06 David Edelsohn + + * gcc.dg/vect/tsvc/tsvc.h (init): Use posix_memalign on AIX. + +2021-11-05 Harald Anlauf + + PR fortran/102817 + * gfortran.dg/pr102817.f90: New test. + +2021-11-05 Jan Hubicka + + PR ipa/103073 + * g++.dg/torture/pr103073.C: New test. + * gcc.dg/tree-ssa/modref-11.c: New test. + +2021-11-05 Harald Anlauf + + PR fortran/69419 + * gfortran.dg/pr69419.f90: New test. + +2021-11-05 Bernhard Reutner-Fischer + + PR fortran/100972 + * gfortran.dg/implicit_14.f90: Adjust error. + * gfortran.dg/external_implicit_none_3.f08: New test. + +2021-11-05 Iain Sandoe + + * gcc.dg/vect/tsvc/tsvc.h: Do not try to include malloc.h + on Darwin also use posix_memalign (). + +2021-11-05 Andrew MacLeod + + * gcc.dg/pr103093.c: New. + +2021-11-05 Wilco Dijkstra + + PR target/103085 + PR target/103085 + * gcc.target/aarch64/pr103085.c: New test + +2021-11-05 Martin Liska + + PR gcov-profile/102945 + * gcc.dg/gcov-info-to-gcda.c: Filter supported targets. + +2021-11-05 Martin Liska + + PR debug/102955 + * g++.dg/pr102955.C: New test. + +2021-11-04 Jonathan Wakely + + * g++.dg/cpp0x/lambda/lambda-eh2.C: Add dg-warning for new + deprecation warnings. + * g++.dg/cpp0x/noexcept06.C: Likewise. + * g++.dg/cpp0x/noexcept07.C: Likewise. + * g++.dg/eh/forced3.C: Likewise. + * g++.dg/eh/unexpected1.C: Likewise. + * g++.old-deja/g++.eh/spec1.C: Likewise. + * g++.old-deja/g++.eh/spec2.C: Likewise. + * g++.old-deja/g++.eh/spec3.C: Likewise. + * g++.old-deja/g++.eh/spec4.C: Likewise. + * g++.old-deja/g++.mike/eh33.C: Likewise. + * g++.old-deja/g++.mike/eh34.C: Likewise. + * g++.old-deja/g++.mike/eh50.C: Likewise. + * g++.old-deja/g++.mike/eh51.C: Likewise. + +2021-11-04 Tamar Christina + + * gcc.target/aarch64/advsimd-intrinsics/vshl-opt-1.c: New test. + * gcc.target/aarch64/advsimd-intrinsics/vshl-opt-2.c: New test. + * gcc.target/aarch64/advsimd-intrinsics/vshl-opt-3.c: New test. + * gcc.target/aarch64/advsimd-intrinsics/vshl-opt-4.c: New test. + * gcc.target/aarch64/advsimd-intrinsics/vshl-opt-5.c: New test. + * gcc.target/aarch64/advsimd-intrinsics/vshl-opt-6.c: New test. + * gcc.target/aarch64/advsimd-intrinsics/vshl-opt-7.c: New test. + * gcc.target/aarch64/advsimd-intrinsics/vshl-opt-8.c: New test. + * gcc.target/aarch64/signbit-2.c: New test. + +2021-11-04 Tamar Christina + + * gcc.dg/signbit-2.c: New test. + * gcc.dg/signbit-3.c: New test. + * gcc.dg/signbit-4.c: New test. + * gcc.dg/signbit-5.c: New test. + * gcc.dg/signbit-6.c: New test. + * gcc.target/aarch64/signbit-1.c: New test. + +2021-11-04 Andrew MacLeod + + PR tree-optimization/103079 + * gcc.dg/pr103079.c: New. + +2021-11-04 Martin Jambor + + PR ipa/93385 + * gcc.dg/guality/ipa-sra-1.c: New test. + +2021-11-04 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: New code + generation tests. + +2021-11-04 Jonathan Wright + + * gcc.target/aarch64/advsimd-intrinsics/bf16_vldN_lane_2.c: + Relax incorrect register number requirement. + * gcc.target/aarch64/sve/pcs/struct_3_256.c: Accept + equivalent codegen with fmov. + +2021-11-04 H.J. Lu + + * gcc.target/i386/amxtile-3.c: Check leal/addl for x32. + +2021-11-04 Tamar Christina + + PR testsuite/103042 + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c: Update guards. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c: Likewise. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c: Likewise. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c: + Likewise. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c: + Likewise. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c: + Likewise. + * gcc.dg/vect/complex/complex-add-pattern-template.c: Likewise. + * gcc.dg/vect/complex/complex-add-template.c: Likewise. + * gcc.dg/vect/complex/complex-operations-run.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c: + Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c: + Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c: + Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c: + Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c: + Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c: + Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c: + Likewise. + * gcc.dg/vect/complex/fast-math-complex-add-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-add-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-add-half-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c: + Likewise. + * gcc.dg/vect/complex/fast-math-complex-mla-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mla-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mla-half-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mls-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mls-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mls-half-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mul-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mul-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mul-half-float.c: Likewise. + * gcc.dg/vect/complex/vect-complex-add-pattern-byte.c: Likewise. + * gcc.dg/vect/complex/vect-complex-add-pattern-int.c: Likewise. + * gcc.dg/vect/complex/vect-complex-add-pattern-long.c: Likewise. + * gcc.dg/vect/complex/vect-complex-add-pattern-short.c: Likewise. + * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c: + Likewise. + * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c: + Likewise. + * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c: + Likewise. + * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c: + Likewise. + +2021-11-04 Richard Biener + + PR rtl-optimization/103075 + * gcc.dg/pr103075.c: New testcase. + +2021-11-04 Aldy Hernandez + + PR tree-optimization/103062 + * gcc.dg/pr103062.c: New test. + +2021-11-04 Jiufu Guo + + * gcc.dg/vect/pr101145_1.c: Update case. + * gcc.dg/vect/pr101145_2.c: Update case. + * gcc.dg/vect/pr101145_3.c: Update case. + +2021-11-04 Martin Liska + + * g++.dg/asan/asan_test.C: Disable one warning. + +2021-11-04 Richard Sandiford + + * gcc.dg/rtl/aarch64/big-endian-cse-1.c: New test. + +2021-11-04 liuhongt + + * gcc.target/i386/pr101989-3.c: New test. + +2021-11-04 liuhongt + + * gcc.target/i386/pr102464-copysign-1.c: New test. + +2021-11-04 Hongyu Wang + + * gcc.target/i386/vnni-auto-vectorize-1.c: New test. + * gcc.target/i386/vnni-auto-vectorize-2.c: Ditto. + +2021-11-04 Hongyu Wang + + * gcc.target/i386/amxtile-3.c: New test. + +2021-11-04 Marek Polacek + + * g++.dg/opt/pr102970.C: Only run in C++14 and up. + +2021-11-03 Joseph Myers + + PR c/103031 + * gcc.dg/init-rounding-math-1.c: New test. + +2021-11-03 Andrew MacLeod + + * gcc.dg/tree-ssa/pr23744.c: Tweak output checks. + * gcc.dg/tree-ssa/vrp07.c: Ditto. + * gcc.dg/tree-ssa/vrp08.c: Ditto. + * gcc.dg/tree-ssa/vrp09.c: Ditto. + * gcc.dg/tree-ssa/vrp20.c: Ditto. + * gcc.dg/tree-ssa/vrp92.c: Ditto. + * jit.dg/test-sum-of-squares.c: Ditto. + +2021-11-03 Richard Biener + + PR tree-optimization/102970 + * g++.dg/opt/pr102970.C: New testcase. + +2021-11-03 Jan Hubicka + + * g++.dg/torture/pr103040.C: New test. + +2021-11-02 Jan Hubicka + + * gcc.dg/ipa/modref-3.c: New test. + +2021-11-02 Jan Hubicka + + * g++.dg/ipa/modref-1.C: Update template. + * gcc.dg/tree-ssa/modref-10.c: New test. + +2021-11-02 Stefan Schulze Frielinghaus + + * gcc.dg/tree-ssa/ldist-rawmemchr-1.c: For IBM Z set arch to z13 + and use z/Architecture since the tests require vector extensions. + * gcc.dg/tree-ssa/ldist-rawmemchr-2.c: Likewise. + * gcc.dg/tree-ssa/ldist-strlen-1.c: Likewise. + * gcc.dg/tree-ssa/ldist-strlen-3.c: Likewise. + +2021-11-02 Tamar Christina + + PR tree-optimization/103007 + * g++.dg/pr103007.C: New test. + +2021-11-02 Richard Biener + + PR middle-end/103038 + * g++.dg/pr103038.C: New testcase. + +2021-11-02 Jakub Jelinek + + PR target/103020 + * gcc.target/i386/pr103020.c: New test. + +2021-11-02 Martin Liska + + * gcc.dg/vect/vect.exp: Include also tsvc sub-directory. + * gcc.dg/vect/tsvc/license.txt: New test. + * gcc.dg/vect/tsvc/tsvc.h: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s000.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s111.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1111.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1112.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1113.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1115.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1119.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s112.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s113.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s114.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s115.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s116.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1161.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s118.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s119.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s121.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1213.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s122.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1221.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s123.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1232.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s124.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1244.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s125.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1251.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s126.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s127.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1279.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s128.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1281.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s131.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s13110.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s132.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1351.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s141.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s1421.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s151.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s152.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s161.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s162.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s171.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s172.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s173.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s174.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s175.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s176.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s2101.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s2102.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s211.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s2111.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s212.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s221.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s222.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s2233.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s2244.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s2251.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s2275.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s231.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s232.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s233.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s235.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s241.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s242.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s243.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s244.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s251.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s252.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s253.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s254.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s255.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s256.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s257.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s258.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s261.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s271.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s2710.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s2711.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s2712.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s272.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s273.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s274.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s275.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s276.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s277.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s278.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s279.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s281.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s291.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s292.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s293.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s311.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s3110.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s3111.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s31111.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s3112.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s3113.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s312.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s313.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s314.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s315.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s316.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s317.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s318.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s319.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s321.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s322.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s323.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s3251.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s331.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s332.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s341.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s342.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s343.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s351.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s352.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s353.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s4112.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s4113.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s4114.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s4115.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s4116.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s4117.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s4121.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s421.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s422.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s423.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s424.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s431.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s441.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s442.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s443.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s451.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s452.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s453.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s471.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s481.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s482.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-s491.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-va.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-vag.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-vas.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-vbor.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-vdotr.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-vif.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-vpv.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-vpvpv.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-vpvts.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-vpvtv.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-vsumr.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-vtv.c: New test. + * gcc.dg/vect/tsvc/vect-tsvc-vtvtv.c: New test. + +2021-11-02 liuhongt + + PR testsuite/102944 + * c-c++-common/Wstringop-overflow-2.c: Adjust target/xfail + selector. + * gcc.dg/Warray-bounds-48.c: Ditto. + * gcc.dg/Warray-bounds-51.c: Ditto. + * gcc.dg/Warray-parameter-3.c: Ditto. + * gcc.dg/Wstringop-overflow-14.c: Ditto. + * gcc.dg/Wstringop-overflow-21.c: Ditto. + * gcc.dg/Wstringop-overflow-68.c: Ditto + * gcc.dg/Wstringop-overflow-76.c: Ditto + * gcc.dg/Wzero-length-array-bounds-2.c: Ditto. + * lib/target-supports.exp (vect_slp_v4qi_store_unalign): New + efficient target. + (vect_slp_v4qi_store_unalign_1): Ditto. + (struct_4char_block_move): Ditto. + (struct_8char_block_move): Ditto. + (stryct_16char_block_move): Ditto. + (vect_slp_v2hi_store_align): Ditto. + (vect_slp_v2qi_store): Rename to .. + (vect_slp_v2qi_store_align): .. this. + (vect_slp_v4qi_store): Rename to .. + (vect_slp_v4qi_store_align): .. This. + (vect_slp_v8qi_store): Rename to .. + (vect_slp_v8qi_store_unalign_1): .. This. + (vect_slp_v16qi_store): Rename to .. + (vect_slp_v16qi_store_unalign_1): .. This. + (vect_slp_v2hi_store): Rename to .. + (vect_slp_v2hi_store_unalign): .. This. + (vect_slp_v4hi_store): Rename to .. + (vect_slp_v4hi_store_unalign): This. + (vect_slp_v2si_store): Rename to .. + (vect_slp_v2si_store_align): .. This. + (vect_slp_v4si_store): Rename to .. + (vect_slp_v4si_store_unalign): Ditto. + (check_vect_slp_aligned_store_usage): Rename to .. + (check_vect_slp_store_usage): .. this and adjust code to make + it an exact pattern match of corresponding testcase. + +2021-11-02 Roger Sayle + Jakub Jelinek + + PR target/102986 + * gcc.target/i386/sse2-v1ti-ashiftrt-1.c: New test case. + * gcc.target/i386/sse2-v1ti-ashiftrt-2.c: New test case. + * gcc.target/i386/sse2-v1ti-ashiftrt-3.c: New test case. + * gcc.target/i386/sse2-v1ti-shift-2.c: New test case. + * gcc.target/i386/sse2-v1ti-shift-3.c: New test case. + +2021-11-02 Jakub Jelinek + + * g++.dg/gomp/loop-8.C: New test. + +2021-11-01 Martin Liska + + * g++.dg/ipa/modref-1.C: Fix test-suite pattern scanning. + +2021-11-01 qing zhao + + * c-c++-common/pr102281.c: New test. + * gcc.target/i386/auto-init-2.c: Adjust testing case. + * gcc.target/i386/auto-init-4.c: Likewise. + * gcc.target/i386/auto-init-6.c: Likewise. + * gcc.target/aarch64/auto-init-6.c: Likewise. + +2021-11-01 Tamar Christina + + * gcc.target/aarch64/vect-cse-codegen.c: New test. + +2021-11-01 Tamar Christina + + PR testsuite/103000 + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c: + Force unroll. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c: likewise + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c: + Likewise + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c: + Likewise. + +2021-11-01 David Malcolm + + * c-c++-common/diagnostic-format-json-1.c: Add regexp to consume + "escape-source" attribute. + * c-c++-common/diagnostic-format-json-2.c: Likewise. + * c-c++-common/diagnostic-format-json-3.c: Likewise. + * c-c++-common/diagnostic-format-json-4.c: Likewise, twice. + * c-c++-common/diagnostic-format-json-5.c: Likewise. + * gcc.dg/cpp/warn-normalized-4-bytes.c: New test. + * gcc.dg/cpp/warn-normalized-4-unicode.c: New test. + * gcc.dg/encoding-issues-bytes.c: New test. + * gcc.dg/encoding-issues-unicode.c: New test. + * gfortran.dg/diagnostic-format-json-1.F90: Add regexp to consume + "escape-source" attribute. + * gfortran.dg/diagnostic-format-json-2.F90: Likewise. + * gfortran.dg/diagnostic-format-json-3.F90: Likewise. + +2021-11-01 Andrew MacLeod + + * gcc.dg/pr103003.c: New. + +2021-10-31 Jan Hubicka + + * g++.dg/ipa/modref-1.C: New test. + +2021-10-31 Iain Buclaw + + PR d/102959 + * gdc.dg/torture/pr96435.d: Adjust for BigEndian. + +2021-10-30 Tobias Burnus + + PR middle-end/102972 + * c-c++-common/gomp/target-device-ancestor-3.c: Add non-API + routine test. + * gfortran.dg/gomp/order-6.f90: Add missing bind(C). + * c-c++-common/gomp/teams-3.c: New test. + * gfortran.dg/gomp/teams-3.f90: New test. + * gfortran.dg/gomp/teams-4.f90: New test. + +2021-10-30 Manfred Schwarb + + * gfortran.dg/intrinsic_short-long.f90: New test. + +2021-10-30 Steve Kargl + + PR fortran/99853 + * gfortran.dg/pr99853.f90: New test. + +2021-10-30 Jakub Jelinek + + * c-c++-common/gomp/loop-10.c: New test. + +2021-10-29 Tamar Christina + + * g++.dg/vect/pr99149.cc: Update case. + +2021-10-29 Tobias Burnus + + * c-c++-common/gomp/pragma-1.c: New test. + * c-c++-common/gomp/pragma-2.c: New test. + +2021-10-29 Aldy Hernandez + + * gcc.dg/loop-unswitch-2.c: Adjust for threading changes. + * gcc.dg/old-style-asm-1.c: Same. + * gcc.dg/tree-ssa/phi_on_compare-1.c: Same. + * gcc.dg/tree-ssa/phi_on_compare-2.c: Same. + * gcc.dg/tree-ssa/phi_on_compare-3.c: Same. + * gcc.dg/tree-ssa/phi_on_compare-4.c: Same. + * gcc.dg/tree-ssa/pr20701.c: Same. + * gcc.dg/tree-ssa/pr21001.c: Same. + * gcc.dg/tree-ssa/pr21294.c: Same. + * gcc.dg/tree-ssa/pr21417.c: Same. + * gcc.dg/tree-ssa/pr21559.c: Same. + * gcc.dg/tree-ssa/pr21563.c: Same. + * gcc.dg/tree-ssa/pr49039.c: Same. + * gcc.dg/tree-ssa/pr59597.c: Same. + * gcc.dg/tree-ssa/pr61839_1.c: Same. + * gcc.dg/tree-ssa/pr61839_3.c: Same. + * gcc.dg/tree-ssa/pr66752-3.c: Same. + * gcc.dg/tree-ssa/pr68198.c: Same. + * gcc.dg/tree-ssa/pr77445-2.c: Same. + * gcc.dg/tree-ssa/pr77445.c: Same. + * gcc.dg/tree-ssa/ranger-threader-1.c: Same. + * gcc.dg/tree-ssa/ranger-threader-2.c: Same. + * gcc.dg/tree-ssa/ranger-threader-4.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-1.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-11.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-12.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-14.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-16.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-2b.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Same. + * gcc.dg/tree-ssa/ssa-thread-14.c: Same. + * gcc.dg/tree-ssa/ssa-thread-backedge.c: Same. + * gcc.dg/tree-ssa/ssa-vrp-thread-1.c: Same. + * gcc.dg/tree-ssa/vrp02.c: Same. + * gcc.dg/tree-ssa/vrp03.c: Same. + * gcc.dg/tree-ssa/vrp05.c: Same. + * gcc.dg/tree-ssa/vrp06.c: Same. + * gcc.dg/tree-ssa/vrp07.c: Same. + * gcc.dg/tree-ssa/vrp08.c: Same. + * gcc.dg/tree-ssa/vrp09.c: Same. + * gcc.dg/tree-ssa/vrp33.c: Same. + * gcc.dg/uninit-pred-9_b.c: Same. + * gcc.dg/uninit-pred-7_a.c: xfail. + +2021-10-29 Jeff Law + + * lib/multiline.exp (_build_multiline_regex): Use a better + regexp than .* to match up to EOL. + +2021-10-29 Andrew MacLeod + + * gcc.dg/pr102983.c: New. + +2021-10-29 Tamar Christina + + PR tree-optimization/102977 + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c: Updated. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c: Updated. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c: Updated. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c: + Updated. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c: + Updated. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c: + Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c: + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c: Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c: + Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c: + Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c: + Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c: + Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c: + Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c: Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c: + Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c: + Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c: Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c: + Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c: Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c: Updated. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c: + Updated. + * gcc.dg/vect/complex/fast-math-complex-add-double.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-add-float.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-add-half-float.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c: + Updated. + * gcc.dg/vect/complex/fast-math-complex-mla-double.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-mla-float.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-mla-half-float.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-mls-double.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-mls-float.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-mls-half-float.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-mul-double.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-mul-float.c: Updated. + * gcc.dg/vect/complex/fast-math-complex-mul-half-float.c: Updated. + * gcc.dg/vect/complex/vect-complex-add-pattern-byte.c: Updated. + * gcc.dg/vect/complex/vect-complex-add-pattern-int.c: Updated. + * gcc.dg/vect/complex/vect-complex-add-pattern-long.c: Updated. + * gcc.dg/vect/complex/vect-complex-add-pattern-short.c: Updated. + * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c: + Updated. + * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c: + Updated. + * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c: + Updated. + * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c: + Updated. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-byte.c: Removed. + * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-byte.c: + Removed. + +2021-10-29 Jakub Jelinek + + * gcc.dg/Wstringop-overflow-62.c: Adjust expected diagnostics. + +2021-10-29 Richard Biener + + * gcc.dg/torture/fp-uint64-convert-double-1.c: Add + -fexcess-precision=standard. + +2021-10-29 Jakub Jelinek + + PR c++/102820 + * g++.dg/cpp0x/dr2351.C: New test. + +2021-10-29 Xionghu Luo + + PR target/102868 + * gcc.target/powerpc/pr102868.c: New test. + +2021-10-29 liuhongt + + * gcc.target/i386/pr102464-vrndscaleph.c: New test. + +2021-10-28 Jakub Jelinek + + PR tree-optimization/102951 + * gcc.dg/tree-ssa/pr102951.c: New test. + * gcc.dg/Wstringop-overflow-62.c: Adjust expected diagnostics. + +2021-10-28 Andrew MacLeod + + * gcc.dg/ifcvt-4.c: Adjust. + +2021-10-28 Andrew MacLeod + + * gcc.dg/tree-ssa/evrp9.c: Adjust message scanned for. + * gcc.dg/tree-ssa/pr21458-2.c: Ditto. + +2021-10-28 Patrick Palka + + PR c++/102933 + * g++.dg/cpp2a/nontype-class50.C: New test. + * g++.dg/cpp2a/nontype-class50a.C: New test. + +2021-10-28 Patrick Palka + + PR c++/102780 + * g++.dg/cpp1z/fold13.C: New test. + +2021-10-28 Richard Biener + + PR middle-end/84407 + * gcc.dg/torture/fp-uint64-convert-double-1.c: New testcase. + * gcc.dg/torture/fp-uint64-convert-double-2.c: Likewise. + +2021-10-28 Aldy Hernandez + + * gcc.dg/tree-ssa/vrp106.c: Adjust for threading. + * gcc.dg/tree-ssa/vrp113.c: Same. + +2021-10-28 Richard Biener + + PR middle-end/57245 + * gcc.dg/torture/fp-double-convert-float-1.c: New testcase. + +2021-10-28 Kewen Lin + + PR target/102767 + * gcc.target/powerpc/ppc-fortran/pr102767.f90: New file. + +2021-10-28 Alexandre Oliva + + * c-c++-common/torture/harden-comp.c: New. + * c-c++-common/torture/harden-cond.c: New. + +2021-10-28 Xionghu Luo + + * gcc.target/powerpc/builtins-1.c: Adjust. + +2021-10-28 Xionghu Luo + + PR target/94613 + * gcc.target/powerpc/pr94613.c: New test. + +2021-10-28 Hongyu Wang + + * gcc.target/i386/avx512fp16-recip-1.c: New test. + * gcc.target/i386/avx512fp16-recip-2.c: Ditto. + * gcc.target/i386/pr102464.c: Add -fno-trapping-math. + +2021-10-27 Martin Sebor + + * gcc.dg/Warray-bounds-90.c: Fix a typo. + +2021-10-27 Tobias Burnus + + * gfortran.dg/PR93963.f90: Extend testcase by scan-tree-dump test. + +2021-10-27 Jakub Jelinek + + PR tree-optimization/102897 + * gcc.dg/pr102897.c: Add -Wno-psabi to dg-options. + +2021-10-27 Jakub Jelinek + + * c-c++-common/gomp/loop-8.c: New test. + * c-c++-common/gomp/loop-9.c: New test. + +2021-10-27 Jakub Jelinek + + PR c++/102854 + * g++.dg/gomp/loop-3.C: Don't expect some errors. + * g++.dg/gomp/loop-7.C: New test. + +2021-10-27 Jakub Jelinek + + PR c++/102753 + * g++.dg/cpp2a/consteval7.C: Expect diagnostics on quux. + * g++.dg/cpp2a/consteval24.C: New test. + * g++.dg/cpp23/consteval-if12.C: New test. + +2021-10-27 Jakub Jelinek + + PR c++/102753 + * g++.dg/cpp2a/consteval13.C: Don't expect errors. + * g++.dg/cpp2a/consteval20.C: New test. + * g++.dg/cpp2a/consteval21.C: New test. + * g++.dg/cpp2a/consteval22.C: New test. + * g++.dg/cpp2a/consteval23.C: New test. + * g++.dg/cpp23/consteval-if11.C: New test. + +2021-10-26 Martin Sebor + + PR tree-optimization/102238 + PR tree-optimization/102919 + * gcc.dg/tree-ssa/builtin-sprintf-warn-23.c: Remove warnings. + * gcc.dg/Wrestrict-23.c: New test. + +2021-10-26 Martin Sebor + + * gcc.dg/Wstringop-overflow-22.c: Correct typos. + * gcc.dg/Wstringop-overflow-81.c: New test. + +2021-10-26 Martin Sebor + + PR middle-end/102453 + * gcc.dg/Warray-bounds-90.c: New test. + * gcc.dg/Wstringop-overflow-77.c: New test. + * gcc.dg/Wstringop-overflow-78.c: New test. + * gcc.dg/Wstringop-overflow-79.c: New test. + * gcc.dg/Wstringop-overflow-80.c: New test. + * c-c++-common/gomp/atomic-4.c: Avoid an out-of-bounds access. + +2021-10-26 Harald Anlauf + + PR fortran/86551 + * gfortran.dg/pr86551.f90: New test to verify that PR86551 remains + fixed. + +2021-10-26 Harald Anlauf + + PR fortran/102956 + * gfortran.dg/pdt_32.f03: New test. + +2021-10-26 Vladimir N. Makarov + + PR rtl-optimization/102842 + * g++.target/arm/pr102842.C: New test. + +2021-10-26 Harald Anlauf + + PR fortran/102917 + * gfortran.dg/pdt_4.f03: Adjust testcase. + +2021-10-26 Harald Anlauf + + PR fortran/102816 + * gfortran.dg/pr102816.f90: New test. + +2021-10-26 Paul A. Clarke + + * gcc.target/powerpc/pr78102.c: Fix dg directives to require Power8 + vector support. Also, add -DNO_WARN_X86_INTRINSICS. + +2021-10-26 Marek Polacek + + PR c++/102617 + * g++.dg/cpp23/init-stmt1.C: New test. + * g++.dg/cpp23/init-stmt2.C: New test. + +2021-10-26 Sandra Loosemore + + PR testsuite/102910 + * gfortran.dg/c-interop/cf-descriptor-5-c.c: Use a static buffer + instead of alloca. + +2021-10-26 Rainer Orth + + PR testsuite/102834 + * gcc.target/i386/avx512f-pr96891-3.c: Add -mstv -mno-stackrealign + to dg-options. + +2021-10-26 Rainer Orth + + PR testsuite/102835 + * gcc.target/i386/avx512fp16-trunchf.c: Allow for %esp instead of + %ebp. + +2021-10-26 Rainer Orth + + PR testsuite/102836 + * gcc.target/i386/pieces-memset-1.c: Add -mno-stackrealign to + dg-options. + * gcc.target/i386/pieces-memset-4.c: Likewise. + * gcc.target/i386/pieces-memset-7.c: Likewise. + * gcc.target/i386/pieces-memset-8.c: Likewise. + * gcc.target/i386/pieces-memset-41.c: Likewise. + * gcc.target/i386/pr90773-1.c: Likewise. + +2021-10-26 Rainer Orth + + * gcc.target/i386/pr100704-1.c: Add -fomit-frame-pointer to + dg-options. + * gcc.target/i386/pr100704-2.c: Likewise. + +2021-10-26 Kewen Lin + + * gcc.dg/pr102897.c: New test. + +2021-10-26 Tobias Burnus + + PR fortran/102885 + * gfortran.dg/lto/bind-c-char_0.f90: New test. + +2021-10-26 Roger Sayle + + * gcc.target/i386/sse2-v1ti-shift.c: New test case. + +2021-10-26 Aldy Hernandez + + PR testsuite/102857 + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Add -fdump-tree-vrp2-stats. + Tweak for aarch64. + +2021-10-26 Aldy Hernandez + + * gcc.dg/tree-ssa/pr21090.c: Adjust for threading. + * gcc.dg/tree-ssa/ssa-thread-12.c: Removed. + +2021-10-26 Aldy Hernandez + + * gcc.dg/graphite/scop-dsyr2k-2.c: Adjust for jump threading changes. + * gcc.dg/graphite/scop-dsyr2k.c: Same. + * gcc.dg/graphite/scop-dsyrk-2.c: Same. + * gcc.dg/graphite/scop-dsyrk.c: Same. + * gcc.dg/tree-ssa/pr20701.c: Same. + * gcc.dg/tree-ssa/pr20702.c: Same. + * gcc.dg/tree-ssa/pr21086.c: Same. + * gcc.dg/tree-ssa/pr25382.c: Same. + * gcc.dg/tree-ssa/pr58480.c: Same. + * gcc.dg/tree-ssa/ssa-vrp-thread-1.c: Same. + * gcc.dg/tree-ssa/vrp08.c: Same. + * gcc.dg/tree-ssa/vrp55.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-4.c: Removed. + * gcc.dg/tree-ssa/ssa-thread-11.c: Removed. + * gcc.dg/uninit-pr89230-1.c: xfail. + * gcc.dg/tree-ssa/ssa-thread-backedge.c: New file. + +2021-10-25 Andrew MacLeod + + * gcc.dg/tree-ssa/vrp98.c: Disable evrp for vrp1 test. + * gcc.dg/tree-ssa/vrp98-1.c: New. Test for folding in evrp. + +2021-10-25 Roger Sayle + + * gcc.target/bfin/ssashift-1.c: New test case. + +2021-10-25 Tamar Christina + + PR target/102907 + * gcc.target/aarch64/shrn-combine-1.c: Disable SVE. + * gcc.target/aarch64/shrn-combine-2.c: Likewise. + * gcc.target/aarch64/shrn-combine-3.c: Likewise. + * gcc.target/aarch64/shrn-combine-4.c: Likewise. + * gcc.target/aarch64/shrn-combine-5.c: Likewise. + * gcc.target/aarch64/shrn-combine-6.c: Likewise. + * gcc.target/aarch64/shrn-combine-7.c: Likewise. + +2021-10-25 Jim Wilson + Kito Cheng + Jia-Wei Chen + Shi-Hua Liao + + * gcc.target/riscv/zba-slliuw.c: Apply zbs to this testcase. + * gcc.target/riscv/zbs-bclr.c: New. + * gcc.target/riscv/zbs-bext.c: Ditto. + * gcc.target/riscv/zbs-binv.c: Ditto. + * gcc.target/riscv/zbs-bset.c: Ditto. + +2021-10-25 Jim Wilson + + * gcc.target/riscv/zbb-li-rotr.c: New. + +2021-10-25 Jim Wilson + Kito Cheng + Jia-Wei Chen + + * gcc.target/riscv/zbb-andn-orn-xnor-01.c: New. + * gcc.target/riscv/zbb-andn-orn-xnor-02.c: Ditto. + * gcc.target/riscv/zbb-min-max.c: Ditto. + * gcc.target/riscv/zbb-rol-ror-01.c: Ditto. + * gcc.target/riscv/zbb-rol-ror-02.c: Ditto. + * gcc.target/riscv/zbb-rol-ror-03.c: Ditto. + * gcc.target/riscv/zbbw.c: Ditto. + +2021-10-25 Jim Wilson + Kito Cheng + Jia-Wei Chen + + * gcc.target/riscv/zba-adduw.c: New. + * gcc.target/riscv/zba-shNadd-01.c: Ditto. + * gcc.target/riscv/zba-shNadd-02.c: Ditto. + * gcc.target/riscv/zba-shNadd-03.c: Ditto. + * gcc.target/riscv/zba-slliuw.c: Ditto. + * gcc.target/riscv/zba-zextw.c: Ditto. + +2021-10-25 liuhongt + + PR target/102464 + * gcc.target/i386/pr102464-sqrtph.c: New test. + * gcc.target/i386/pr102464-sqrtsh.c: New test. + +2021-10-25 Richard Biener + + PR tree-optimization/102920 + * gcc.dg/torture/pr102920.c: New testcase. + +2021-10-25 konglin1 + + * gcc.target/i386/avx512fp16-complex-fma.c: New test. + +2021-10-24 Roger Sayle + + * gcc.target/bfin/20090914-3.c: Tweak test case. + +2021-10-23 H.J. Lu + + PR fortran/9262 + * gfortran.dg/bind-c-intent-out-2.f90: Moved to ... + * gfortran.dg/ubsan/bind-c-intent-out-2.f90 + +2021-10-23 Roger Sayle + + * gcc.target/i386/sse2-v1ti-logic.c: New test case. + * gcc.target/i386/sse2-v1ti-logic-2.c: New test case. + +2021-10-23 José Rui Faustino de Sousa + Sandra Loosemore + + PR fortran/95196 + * gfortran.dg/PR95196.f90: New. + +2021-10-22 Tobias Burnus + + * gfortran.dg/associate_3.f03: Replace dg-excess-errors by + other dg-* to change XFAIL to PASS. + * gfortran.dg/binding_label_tests_4.f03: Likewise. + * gfortran.dg/block_4.f08: Likewise. + * gfortran.dg/charlen_04.f90: Likewise. + * gfortran.dg/charlen_05.f90: Likewise. + * gfortran.dg/charlen_06.f90: Likewise. + * gfortran.dg/charlen_13.f90: Likewise. + * gfortran.dg/coarray_9.f90: Likewise. + * gfortran.dg/coarray_collectives_3.f90: Likewise. + * gfortran.dg/data_invalid.f90: Likewise. + * gfortran.dg/do_4.f: Likewise. + * gfortran.dg/dollar_sym_1.f90: Likewise. + * gfortran.dg/dollar_sym_3.f: Likewise. + * gfortran.dg/fmt_tab_1.f90: Likewise. + * gfortran.dg/fmt_tab_2.f90: Likewise. + * gfortran.dg/forall_16.f90: Likewise. + * gfortran.dg/g77/970125-0.f: Likewise. + * gfortran.dg/gomp/unexpected-end.f90: Likewise. + * gfortran.dg/interface_operator_1.f90: Likewise. + * gfortran.dg/interface_operator_2.f90: Likewise. + * gfortran.dg/line_length_4.f90: Likewise. + * gfortran.dg/line_length_5.f90: Likewise. + * gfortran.dg/line_length_6.f90: Likewise. + * gfortran.dg/line_length_8.f90: Likewise. + * gfortran.dg/line_length_9.f90: Likewise. + * gfortran.dg/pr65045.f90: Likewise. + * gfortran.dg/pr69497.f90: Likewise. + * gfortran.dg/submodule_21.f08: Likewise. + * gfortran.dg/tab_continuation.f: Likewise. + * gfortran.dg/typebound_proc_2.f90: Likewise. + * gfortran.dg/warnings_are_errors_1.f90: Likewise. + +2021-10-22 Tobias Burnus + + PR fortran/92621 + * gfortran.dg/bind-c-intent-out-2.f90: New test. + +2021-10-22 José Rui Faustino de Sousa + Sandra Loosemore + + PR fortran/94289 + * gfortran.dg/PR94289.f90: New. + +2021-10-22 José Rui Faustino de Sousa + Sandra Loosemore + + PR fortran/100906 + * gfortran.dg/PR100906.f90: New. + * gfortran.dg/PR100906.c: New. + +2021-10-22 Richard Biener + + PR tree-optimization/102893 + * gcc.dg/tree-ssa/ssa-dce-9.c: New testcase. + +2021-10-22 Richard Biener + + PR bootstrap/102681 + * gcc.dg/tree-ssa/ssa-fre-97.c: New testcase. + * gcc.dg/ubsan/pr81981.c: XFAIL one case. + +2021-10-21 Uroš Bizjak + + PR testsuite/102840 + * gcc.target/i386/pr22076.c: Adjust to avoid compile time optimization. + +2021-10-21 Hongyu Wang + + * gcc.target/i386/avx512fp16-13.c: Adjust scan-assembler for + xmm/ymm load/store. + +2021-10-21 Martin Liska + + PR debug/102585 + PR bootstrap/102766 + * gcc.dg/pr102585.c: New test. + +2021-10-21 Martin Jambor + + PR tree-optimization/102505 + * g++.dg/torture/pr102505.C: New test. + +2021-10-21 Jakub Jelinek + + * gfortran.dg/gomp/strictly-structured-block-1.f90: Use call do_work + instead of x = x + 1 in places where the latter could be a data race. + * gfortran.dg/gomp/strictly-structured-block-2.f90: Likewise. + * gfortran.dg/gomp/strictly-structured-block-3.f90: Likewise. + +2021-10-21 Hongyu Wang + + PR target/102812 + * gcc.target/i386/pr102812.c: New test. + +2021-10-21 Jakub Jelinek + + PR middle-end/64888 + * c-c++-common/ubsan/pr64888.c: New test. + +2021-10-21 Andrew Pinski + + * gcc.dg/pr36902.c: Move buf to be a non-static variable. + +2021-10-21 Richard Biener + + PR testsuite/102861 + * gcc.dg/vect/bb-slp-16.c: Revert previous change, scan + the vect dump instead. + +2021-10-21 Chung-Lin Tang + + * gfortran.dg/gomp/cancel-1.f90: Adjust testcase. + * gfortran.dg/gomp/nesting-3.f90: Adjust testcase. + * gfortran.dg/gomp/strictly-structured-block-1.f90: New test. + * gfortran.dg/gomp/strictly-structured-block-2.f90: New test. + * gfortran.dg/gomp/strictly-structured-block-3.f90: New test. + +2021-10-21 Sandra Loosemore + + PR fortran/94070 + * gfortran.dg/c-interop/shape-bindc.f90: New test. + * gfortran.dg/c-interop/shape-poly.f90: New test. + * gfortran.dg/c-interop/size-bindc.f90: New test. + * gfortran.dg/c-interop/size-poly.f90: New test. + * gfortran.dg/c-interop/ubound-bindc.f90: New test. + * gfortran.dg/c-interop/ubound-poly.f90: New test. + +2021-10-20 Tamar Christina + + * gcc.target/aarch64/mvn-cmeq0-1.c: New test. + +2021-10-20 Tamar Christina + + * gcc.target/aarch64/narrow_high_combine.c: Update case. + * gcc.target/aarch64/xtn-combine-1.c: New test. + * gcc.target/aarch64/xtn-combine-2.c: New test. + * gcc.target/aarch64/xtn-combine-3.c: New test. + * gcc.target/aarch64/xtn-combine-4.c: New test. + * gcc.target/aarch64/xtn-combine-5.c: New test. + * gcc.target/aarch64/xtn-combine-6.c: New test. + +2021-10-20 Tamar Christina + + * gcc.target/aarch64/shl-combine-2.c: New test. + * gcc.target/aarch64/shl-combine-3.c: New test. + * gcc.target/aarch64/shl-combine-4.c: New test. + * gcc.target/aarch64/shl-combine-5.c: New test. + +2021-10-20 Tamar Christina + + * gcc.target/aarch64/shrn-combine-10.c: New test. + * gcc.target/aarch64/shrn-combine-5.c: New test. + * gcc.target/aarch64/shrn-combine-6.c: New test. + * gcc.target/aarch64/shrn-combine-7.c: New test. + * gcc.target/aarch64/shrn-combine-8.c: New test. + * gcc.target/aarch64/shrn-combine-9.c: New test. + +2021-10-20 Tamar Christina + + * gcc.target/aarch64/shrn-combine-1.c: New test. + * gcc.target/aarch64/shrn-combine-2.c: New test. + * gcc.target/aarch64/shrn-combine-3.c: New test. + * gcc.target/aarch64/shrn-combine-4.c: New test. + +2021-10-20 Chung-Lin Tang + + * gfortran.dg/gomp/reduction4.f90: Adjust omp target in_reduction' scan + pattern. + +2021-10-20 Martin Liska + + Revert: + 2021-10-20 Martin Liska + + PR target/102374 + * gcc.target/i386/pr102374.c: New test. + +2021-10-20 Martin Liska + + Revert: + 2021-10-20 Martin Liska + + PR target/102375 + * gcc.target/aarch64/pr102375.c: New test. + +2021-10-20 Wilco Dijkstra + + PR target/100966 + * gcc.target/aarch64/frint.x: Add roundeven tests. + * gcc.target/aarch64/frint_double.c: Likewise. + * gcc.target/aarch64/frint_float.c: Likewise. + +2021-10-20 Andre Simoes Dias Vieira + + * gcc.target/aarch64/fmla_intrinsic_1.c: prevent over optimization. + * gcc.target/aarch64/fmls_intrinsic_1.c: Likewise. + * gcc.target/aarch64/fmul_intrinsic_1.c: Likewise. + * gcc.target/aarch64/mla_intrinsic_1.c: Likewise. + * gcc.target/aarch64/mls_intrinsic_1.c: Likewise. + * gcc.target/aarch64/mul_intrinsic_1.c: Likewise. + * gcc.target/aarch64/simd/vmul_elem_1.c: Likewise. + * gcc.target/aarch64/vclz.c: Likewise. + * gcc.target/aarch64/vneg_s.c: Likewise. + +2021-10-20 Andre Simoes Dias Vieira + + * gcc.target/aarch64/merge_trunc1.c: New test. + +2021-10-20 Eric Botcazou + + * gcc.dg/pr102764.c: New test. + +2021-10-20 Tobias Burnus + + PR fortran/102815 + * gfortran.dg/bind-c-contiguous-5.c (do_call, reset_var): Handle + big andian. + +2021-10-20 Jakub Jelinek + + PR c++/102642 + * g++.dg/tls/pr102642.C: New test. + +2021-10-20 Aldy Hernandez + Richard Biener + + * gcc.dg/Warray-bounds-87.c: Remove xfail. + * gcc.dg/analyzer/pr94851-2.c: Remove xfail. + * gcc.dg/graphite/pr69728.c: Remove xfail. + * gcc.dg/graphite/scop-dsyr2k.c: Remove xfail. + * gcc.dg/graphite/scop-dsyrk.c: Remove xfail. + * gcc.dg/shrink-wrap-loop.c: Remove xfail. + * gcc.dg/loop-8.c: Adjust for new threading restrictions. + * gcc.dg/tree-ssa/ifc-20040816-1.c: Same. + * gcc.dg/tree-ssa/pr21559.c: Same. + * gcc.dg/tree-ssa/pr59597.c: Same. + * gcc.dg/tree-ssa/pr71437.c: Same. + * gcc.dg/tree-ssa/pr77445-2.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-4.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Same. + * gcc.dg/vect/bb-slp-16.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-6.c: Remove. + * gcc.dg/tree-ssa/ssa-dom-thread-18.c: Remove. + * gcc.dg/tree-ssa/ssa-dom-thread-2a.c: Remove. + * gcc.dg/tree-ssa/ssa-thread-invalid.c: New test. + +2021-10-20 Jeff Law + + * gcc.dg/plugin/gil-1.c: Add dg-require-effective-target marker. + +2021-10-20 Hongtao Liu + Kewen Lin + + PR middle-end/102722 + PR middle-end/102697 + PR middle-end/102462 + PR middle-end/102706 + PR middle-end/102744 + * c-c++-common/Wstringop-overflow-2.c: Adjust testcase with new + xfail/target selector. + * gcc.dg/Warray-bounds-51.c: Ditto. + * gcc.dg/Warray-parameter-3.c: Ditto. + * gcc.dg/Wstringop-overflow-14.c: Ditto. + * gcc.dg/Wstringop-overflow-21.c: Ditto. + * gcc.dg/Wstringop-overflow-68.c: Ditto. + * gcc.dg/Wstringop-overflow-76.c: Ditto. + * gcc.dg/Warray-bounds-48.c: Ditto. + * gcc.dg/Wzero-length-array-bounds-2.c: Ditto. + * lib/target-supports.exp (check_vect_slp_aligned_store_usage): + New function. + (check_effective_target_vect_slp_v2qi_store): Ditto. + (check_effective_target_vect_slp_v4qi_store): Ditto. + (check_effective_target_vect_slp_v8qi_store): Ditto. + (check_effective_target_vect_slp_v16qi_store): Ditto. + (check_effective_target_vect_slp_v2hi_store): Ditto. + (check_effective_target_vect_slp_v4hi_store): Ditto. + (check_effective_target_vect_slp_v2si_store): Ditto. + (check_effective_target_vect_slp_v4si_store): Ditto. + * c-c++-common/Wstringop-overflow-2-novec.c: New test. + * gcc.dg/Warray-bounds-51-novec.c: New test. + * gcc.dg/Warray-bounds-48-novec.c: New test. + * gcc.dg/Warray-parameter-3-novec.c: New test. + * gcc.dg/Wstringop-overflow-14-novec.c: New test. + * gcc.dg/Wstringop-overflow-21-novec.c: New test. + * gcc.dg/Wstringop-overflow-76-novec.c: New test. + * gcc.dg/Wzero-length-array-bounds-2-novec.c: New test. + +2021-10-19 Paul A. Clarke + + * gcc.target/powerpc/sse4_2-pcmpgtq.c: Tighten dg constraints + to minimally Power8. + +2021-10-19 Tobias Burnus + + PR fortran/92482 + * gfortran.dg/bind-c-char-descr.f90: Remove xfail; extend a bit. + +2021-10-19 Martin Liska + + PR target/102375 + * gcc.target/aarch64/pr102375.c: New test. + +2021-10-19 Richard Biener + + PR tree-optimization/102827 + * gcc.dg/pr102827.c: New testcase. + +2021-10-19 Xionghu Luo + + * gcc.target/powerpc/builtins-1.c: Update instruction counts. + +2021-10-19 Haochen Gui + + * gcc.target/powerpc/p10_vec_xl_sext.c: New test. + +2021-10-19 prathamesh.kulkarni + + PR target/93183 + * gcc.target/aarch64/sve/pr93183.c: Remove -mcpu=generic+sve from dg-options. + +2021-10-19 Jakub Jelinek + + PR c++/102786 + * g++.dg/cpp2a/constexpr-virtual19.C: New test. + +2021-10-19 Martin Liska + + PR target/102374 + * gcc.target/i386/pr102374.c: New test. + +2021-10-19 dianhong xu + + * gcc.target/i386/avx512fp16-set1-pch-1a.c: New test. + * gcc.target/i386/avx512fp16-set1-pch-1b.c: New test. + * gcc.target/i386/avx512fp16vl-set1-pch-1a.c: New test. + * gcc.target/i386/avx512fp16vl-set1-pch-1b.c: New test. + +2021-10-18 Andrew MacLeod + + PR tree-optimization/102796 + * g++.dg/pr102796.C: New. + +2021-10-18 Kwok Cheung Yeung + + * gfortran.dg/gomp/declare-variant-15.f90 (variant2, base2, test2): + Add tests. + * gfortran.dg/gomp/declare-variant-16.f90 (base2, variant2, test2): + Add tests. + +2021-10-18 Uroš Bizjak + + PR target/102761 + * gcc.target/i386/pr102761.c: New test. + +2021-10-18 Jason Merrill + + * g++.dg/template/crash90.C: Check location of pedwarn. + +2021-10-18 H.J. Lu + + * gcc.target/i386/387-12.c (dg-do compile): Require ia32. + (dg-options): Remove -m32. + +2021-10-18 Roger Sayle + + * gcc.target/i386/387-12.c: Add explicit -m32 option. + +2021-10-18 Roger Sayle + + * gcc.target/bfin/ones.c: New test case. + * gcc.target/bfin/parity.c: New test case. + * gcc.target/bfin/popcount.c: New test case. + +2021-10-18 Richard Biener + + PR tree-optimization/102788 + * g++.dg/vect/pr102788.cc: New testcase. + +2021-10-18 Roger Sayle + + * gcc.target/bfin/ssabs.c: New test case. + * gcc.target/bfin/ssneg.c: New test case. + +2021-10-18 prathamesh.kulkarni + + PR target/93183 + * gcc.target/aarch64/sve/cond_unary_4.c: Adjust. + * gcc.target/aarch64/sve/pr93183.c: New test. + +2021-10-18 Tobias Burnus + + PR fortran/102086 + PR fortran/92189 + PR fortran/92621 + PR fortran/101308 + PR fortran/101309 + PR fortran/101635 + PR fortran/92482 + * gfortran.dg/ISO_Fortran_binding_4.f90: Extend testcase. + * gfortran.dg/PR100914.f90: Remove xfail. + * gfortran.dg/PR100915.c: Expect CFI_type_cfunptr. + * gfortran.dg/PR100915.f90: Handle CFI_type_cfunptr != CFI_type_cptr. + * gfortran.dg/PR93963.f90: Extend select-rank tests. + * gfortran.dg/bind-c-intent-out.f90: Change to dg-do run, + update scan-dump. + * gfortran.dg/bind_c_array_params_2.f90: Update/extend scan-dump. + * gfortran.dg/bind_c_char_10.f90: Update scan-dump. + * gfortran.dg/bind_c_char_8.f90: Remove dg-error "sorry". + * gfortran.dg/c-interop/allocatable-dummy.f90: Remove xfail. + * gfortran.dg/c-interop/c1255-1.f90: Likewise. + * gfortran.dg/c-interop/c407c-1.f90: Update dg-error. + * gfortran.dg/c-interop/cf-descriptor-5.f90: Remove xfail. + * gfortran.dg/c-interop/cf-out-descriptor-3.f90: Likewise. + * gfortran.dg/c-interop/cf-out-descriptor-4.f90: Likewise. + * gfortran.dg/c-interop/cf-out-descriptor-5.f90: Likewise. + * gfortran.dg/c-interop/contiguous-2.f90: Likewise. + * gfortran.dg/c-interop/contiguous-3.f90: Likewise. + * gfortran.dg/c-interop/deferred-character-1.f90: Likewise. + * gfortran.dg/c-interop/deferred-character-2.f90: Likewise. + * gfortran.dg/c-interop/fc-descriptor-3.f90: Likewise. + * gfortran.dg/c-interop/fc-descriptor-5.f90: Likewise. + * gfortran.dg/c-interop/fc-descriptor-6.f90: Likewise. + * gfortran.dg/c-interop/fc-out-descriptor-3.f90: Likewise. + * gfortran.dg/c-interop/fc-out-descriptor-4.f90: Likewise. + * gfortran.dg/c-interop/fc-out-descriptor-5.f90: Likewise. + * gfortran.dg/c-interop/fc-out-descriptor-6.f90: Likewise. + * gfortran.dg/c-interop/ff-descriptor-5.f90: Likewise. + * gfortran.dg/c-interop/ff-descriptor-6.f90: Likewise. + * gfortran.dg/c-interop/fc-descriptor-7.f90: Remove xfail + extend. + * gfortran.dg/c-interop/fc-descriptor-7-c.c: Update for changes. + * gfortran.dg/c-interop/shape.f90: Add implicit none. + * gfortran.dg/c-interop/typecodes-array-char-c.c: Add kind=4 char. + * gfortran.dg/c-interop/typecodes-array-char.f90: Likewise. + * gfortran.dg/c-interop/typecodes-array-float128.f90: Remove xfail. + * gfortran.dg/c-interop/typecodes-scalar-basic.f90: Likewise. + * gfortran.dg/c-interop/typecodes-scalar-float128.f90: Likewise. + * gfortran.dg/c-interop/typecodes-scalar-int128.f90: Likewise. + * gfortran.dg/c-interop/typecodes-scalar-longdouble.f90: Likewise. + * gfortran.dg/iso_c_binding_char_1.f90: Remove dg-error "sorry". + * gfortran.dg/pr93792.f90: Turn XFAIL into PASS. + * gfortran.dg/ISO_Fortran_binding_19.f90: New test. + * gfortran.dg/assumed_type_12.f90: New test. + * gfortran.dg/assumed_type_13.c: New test. + * gfortran.dg/assumed_type_13.f90: New test. + * gfortran.dg/bind-c-char-descr.f90: New test. + * gfortran.dg/bind-c-contiguous-1.c: New test. + * gfortran.dg/bind-c-contiguous-1.f90: New test. + * gfortran.dg/bind-c-contiguous-2.f90: New test. + * gfortran.dg/bind-c-contiguous-3.c: New test. + * gfortran.dg/bind-c-contiguous-3.f90: New test. + * gfortran.dg/bind-c-contiguous-4.c: New test. + * gfortran.dg/bind-c-contiguous-4.f90: New test. + * gfortran.dg/bind-c-contiguous-5.c: New test. + * gfortran.dg/bind-c-contiguous-5.f90: New test. + +2021-10-18 Richard Biener + + PR tree-optimization/102798 + * gcc.dg/pr102798.c: New testcase. + +2021-10-18 Tobias Burnus + + PR fortran/102745 + * gfortran.dg/class_72.f90: New. + +2021-10-15 Jason Merrill + + PR c++/51851 + PR c++/101402 + PR c++/102033 + PR c++/102034 + PR c++/102039 + PR c++/102044 + * g++.dg/template/fnspec2.C: New test. + * g++.dg/template/parm-cv1.C: New test. + * g++.dg/template/parm-cv2.C: New test. + * g++.dg/template/parm-cv3.C: New test. + +2021-10-15 Harald Anlauf + Tobias Burnus + + PR fortran/102685 + * gfortran.dg/derived_constructor_char_1.f90: Fix invalid code. + * gfortran.dg/pr70931.f90: Likewise. + * gfortran.dg/transfer_simplify_2.f90: Likewise. + * gfortran.dg/pr102685.f90: New test. + +2021-10-15 Aldy Hernandez + + * gcc.dg/tree-ssa/pr102736.c: Make sign explicit. + +2021-10-15 Richard Biener + + * lib/prune.exp: Prune STABS obsoletion message. + +2021-10-15 Richard Biener + + PR c/102763 + * gcc.dg/gimplefe-error-12.c: New testcase. + +2021-10-15 Richard Biener + + PR ipa/102762 + * gcc.dg/torture/pr102762.c: New testcase. + +2021-10-15 Hongyu Wang + + * gcc.target/i386/avx512fp16-builtin_shuffle-1.c: New test. + * gcc.target/i386/avx512fp16-pr101846.c: Ditto. + * gcc.target/i386/avx512fp16-pr94680.c: Ditto. + +2021-10-15 Hongyu Wang + + * gcc.target/i386/avx512fp16-v4hf-concat.c: New test. + +2021-10-15 Hongyu Wang + + * gcc.target/i386/avx512fp16-vfcmaddcph-1a.c: Add scan for + vblendmps. + * gcc.target/i386/avx512fp16-vfmaddcph-1a.c: Likewise. + * gcc.target/i386/avx512fp16vl-vfcmaddcph-1a.c: Likewise. + * gcc.target/i386/avx512fp16vl-vfmaddcph-1a.c: Likewise. + * gcc.target/i386/avx512fp16-vfmaddcsh-1a.c: Add -mno-avx512vl. + * gcc.target/i386/avx512fp16-vfcmaddcsh-1a.c: Likewise. + +2021-10-15 Jason Merrill + + * g++.dg/ext/vla22.C: Don't expect a narrowing error. + * g++.dg/cpp0x/constexpr-inst1.C: New test. + +2021-10-15 Andrew MacLeod + + * gcc.dg/pr102738.c: Add target int128. + +2021-10-14 Joseph Myers + + * gcc.dg/format/c11-dfp-printf-1.c, + gcc.dg/format/c11-dfp-scanf-1.c, gcc.dg/format/c2x-dfp-printf-1.c, + gcc.dg/format/c2x-dfp-scanf-1.c: New tests. + +2021-10-14 Raphael Moreira Zinsly + + * gcc.target/powerpc/unwind-backchain.c: New test. + +2021-10-14 Harald Anlauf + + PR fortran/102717 + * gfortran.dg/reshape_shape_2.f90: New test. + +2021-10-14 Harald Anlauf + + PR fortran/102716 + * gfortran.dg/shape_10.f90: New test. + +2021-10-14 Andrew MacLeod + + PR tree-optimization/102738 + * gcc.dg/pr102738.c: New. + +2021-10-14 Kwok Cheung Yeung + + * gfortran.dg/gomp/declare-variant-1.f90: New test. + * gfortran.dg/gomp/declare-variant-10.f90: New test. + * gfortran.dg/gomp/declare-variant-11.f90: New test. + * gfortran.dg/gomp/declare-variant-12.f90: New test. + * gfortran.dg/gomp/declare-variant-13.f90: New test. + * gfortran.dg/gomp/declare-variant-14.f90: New test. + * gfortran.dg/gomp/declare-variant-15.f90: New test. + * gfortran.dg/gomp/declare-variant-16.f90: New test. + * gfortran.dg/gomp/declare-variant-17.f90: New test. + * gfortran.dg/gomp/declare-variant-18.f90: New test. + * gfortran.dg/gomp/declare-variant-19.f90: New test. + * gfortran.dg/gomp/declare-variant-2.f90: New test. + * gfortran.dg/gomp/declare-variant-2a.f90: New test. + * gfortran.dg/gomp/declare-variant-3.f90: New test. + * gfortran.dg/gomp/declare-variant-4.f90: New test. + * gfortran.dg/gomp/declare-variant-5.f90: New test. + * gfortran.dg/gomp/declare-variant-6.f90: New test. + * gfortran.dg/gomp/declare-variant-7.f90: New test. + * gfortran.dg/gomp/declare-variant-8.f90: New test. + * gfortran.dg/gomp/declare-variant-9.f90: New test. + +2021-10-14 Jeff Law + + * gcc.target/mips/msa-insert-split.c: Turn off vectorizer. + +2021-10-14 Tamar Christina + + * gcc.target/aarch64/sve/pred-cond-reduc.c: New test. + +2021-10-14 Jeff Law + + * gcc.dg/tree-ssa/predcom-3.c: Disable vectorizer. + +2021-10-14 Aldy Hernandez + + PR tree-optimization/102736 + * gcc.dg/tree-ssa/pr102736.c: New test. + +2021-10-14 Hongyu Wang + + * gcc.target/i386/avx-1.c: Add new mask3 builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/avx512fp16-vfcmaddcsh-1a.c: Add scanning for + mask/mask3 intrinsic. + * gcc.target/i386/avx512fp16-vfmaddcsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfcmaddcsh-1c.c: New test for + -mavx512vl. + * gcc.target/i386/avx512fp16-vfmaddcsh-1c.c: Ditto. + +2021-10-14 liuhongt + + * g++.dg/warn/Wuninitialized-13.C: Add -fno-tree-vectorize. + +2021-10-13 Martin Sebor + + PR middle-end/102630 + * gcc.target/i386/addr-space-2.c: Add -Wall. + * gcc.target/i386/addr-space-3.c: New test. + +2021-10-13 Andre Vieira + + * gcc.target/arm/mve/mve.exp: Make it test main directory. + * gcc.target/arm/mve/mve_load_memory_modes.c: New test. + * gcc.target/arm/mve/mve_store_memory_modes.c: New test. + +2021-10-13 Richard Biener + + PR tree-optimization/102659 + * gcc.dg/torture/pr69760.c: Adjust the testcase. + * gcc.target/i386/avx2-vect-mask-store-move1.c: Expect to move + the conversions to unsigned as well. + +2021-10-13 Richard Biener + + PR ipa/102714 + * gcc.dg/ipa/pr102714.c: New testcase. + +2021-10-13 Kewen Lin + + PR testsuite/102658 + * gcc.target/powerpc/dform-1.c: Adjust as vectorization enabled at O2. + * gcc.target/powerpc/dform-2.c: Likewise. + * gcc.target/powerpc/pr80510-2.c: Likewise. + +2021-10-12 Joseph Myers + + * gcc.dg/format/c11-printf-1.c, gcc.dg/format/c11-scanf-1.c, + gcc.dg/format/c2x-printf-1.c, gcc.dg/format/c2x-scanf-1.c, + gcc.dg/format/ext-9.c, gcc.dg/format/ext-10.c: New tests. + +2021-10-12 Bill Schmidt + + PR target/101985 + * gcc.target/powerpc/pr101985-1.c: New. + * gcc.target/powerpc/pr101985-2.c: New. + +2021-10-12 Uroš Bizjak + + PR target/85730 + PR target/82524 + * gcc.target/i386/pr85730.c: New test. + +2021-10-12 Richard Biener + + PR tree-optimization/102696 + * g++.dg/vect/pr102696.cc: New testcase. + +2021-10-12 Richard Biener + + PR tree-optimization/102572 + * g++.dg/vect/pr102572.cc: New testcase. + +2021-10-12 Tamar Christina + + * gcc.target/aarch64/sve/pred-not-gen-1.c: New test. + * gcc.target/aarch64/sve/pred-not-gen-2.c: New test. + * gcc.target/aarch64/sve/pred-not-gen-3.c: New test. + * gcc.target/aarch64/sve/pred-not-gen-4.c: New test. + +2021-10-12 Tobias Burnus + + PR fortran/102541 + * gfortran.dg/assumed_rank_24.f90: New test. + +2021-10-12 Jakub Jelinek + + * gcc.dg/gomp/simd-2.c: Remove option -fvect-cost-model=cheap. + * gcc.dg/gomp/simd-3.c: Likewise. + +2021-10-12 liuhongt + + * gcc.target/i386/pr102483.c: New test. + * gcc.target/i386/pr102483-2.c: New test. + +2021-10-12 Paul A. Clarke + + * gcc.target/powerpc/pr78102.c: Fix dg-require-effective-target. + * gcc.target/powerpc/sse4_1-packusdw.c: Likewise. + * gcc.target/powerpc/sse4_1-pmaxsb.c: Likewise. + * gcc.target/powerpc/sse4_1-pmaxsd.c: Likewise. + * gcc.target/powerpc/sse4_1-pmaxud.c: Likewise. + * gcc.target/powerpc/sse4_1-pmaxuw.c: Likewise. + * gcc.target/powerpc/sse4_1-pminsb.c: Likewise. + * gcc.target/powerpc/sse4_1-pminsd.c: Likewise. + * gcc.target/powerpc/sse4_1-pminud.c: Likewise. + * gcc.target/powerpc/sse4_1-pminuw.c: Likewise. + * gcc.target/powerpc/sse4_1-pmovsxbd.c: Likewise. + * gcc.target/powerpc/sse4_1-pmovsxbw.c: Likewise. + * gcc.target/powerpc/sse4_1-pmovsxwd.c: Likewise. + * gcc.target/powerpc/sse4_1-pmovzxbd.c: Likewise. + * gcc.target/powerpc/sse4_1-pmovzxbq.c: Likewise. + * gcc.target/powerpc/sse4_1-pmovzxbw.c: Likewise. + * gcc.target/powerpc/sse4_1-pmovzxdq.c: Likewise. + * gcc.target/powerpc/sse4_1-pmovzxwd.c: Likewise. + * gcc.target/powerpc/sse4_1-pmovzxwq.c: Likewise. + * gcc.target/powerpc/sse4_1-pmulld.c: Likewise. + * gcc.target/powerpc/sse4_2-pcmpgtq.c: Likewise. + * gcc.target/powerpc/sse4_1-phminposuw.c: Use correct + dg-require-effective-target. + +2021-10-12 Paul A. Clarke + + * gcc.target/powerpc/pr78102.c: Copy from gcc.target/i386, + adjust dg directives to suit. + * gcc.target/powerpc/sse4_1-packusdw.c: Same. + * gcc.target/powerpc/sse4_1-pcmpeqq.c: Same. + * gcc.target/powerpc/sse4_1-pmuldq.c: Same. + * gcc.target/powerpc/sse4_1-pmulld.c: Same. + * gcc.target/powerpc/sse4_2-pcmpgtq.c: Same. + * gcc.target/powerpc/sse4_2-check.h: Copy from gcc.target/i386, + tweak to suit. + +2021-10-12 Paul A. Clarke + + * gcc.target/powerpc/sse4_1-pmovsxbd.c: Copy from gcc.target/i386, + adjust dg directives to suit. + * gcc.target/powerpc/sse4_1-pmovsxbq.c: Same. + * gcc.target/powerpc/sse4_1-pmovsxbw.c: Same. + * gcc.target/powerpc/sse4_1-pmovsxdq.c: Same. + * gcc.target/powerpc/sse4_1-pmovsxwd.c: Same. + * gcc.target/powerpc/sse4_1-pmovsxwq.c: Same. + * gcc.target/powerpc/sse4_1-pmovzxbd.c: Same. + * gcc.target/powerpc/sse4_1-pmovzxbq.c: Same. + * gcc.target/powerpc/sse4_1-pmovzxbw.c: Same. + * gcc.target/powerpc/sse4_1-pmovzxdq.c: Same. + * gcc.target/powerpc/sse4_1-pmovzxwd.c: Same. + * gcc.target/powerpc/sse4_1-pmovzxwq.c: Same. + +2021-10-12 Paul A. Clarke + + * gcc.target/powerpc/sse4_1-pmaxsb.c: Copy from gcc.target/i386. + * gcc.target/powerpc/sse4_1-pmaxsd.c: Same. + * gcc.target/powerpc/sse4_1-pmaxud.c: Same. + * gcc.target/powerpc/sse4_1-pmaxuw.c: Same. + * gcc.target/powerpc/sse4_1-pminsb.c: Same. + * gcc.target/powerpc/sse4_1-pminsd.c: Same. + * gcc.target/powerpc/sse4_1-pminud.c: Same. + * gcc.target/powerpc/sse4_1-pminuw.c: Same. + +2021-10-11 Jan Hubicka + + * gcc.dg/torture/ssa-pta-fn-1.c: Fix template; add noipa. + * gcc.dg/tree-ssa/pta-callused.c: Fix template. + +2021-10-11 Patrick Palka + + PR c++/102643 + * g++.dg/cpp2a/class-deduction-alias11.C: New test. + +2021-10-11 Richard Biener + + PR middle-end/101480 + * g++.dg/torture/pr10148.C: New testcase. + +2021-10-11 Stefan Schulze Frielinghaus + + * gcc.target/s390/rawmemchr-1.c: New test. + +2021-10-11 Stefan Schulze Frielinghaus + + * gcc.dg/tree-ssa/ldist-rawmemchr-1.c: New test. + * gcc.dg/tree-ssa/ldist-rawmemchr-2.c: New test. + * gcc.dg/tree-ssa/ldist-strlen-1.c: New test. + * gcc.dg/tree-ssa/ldist-strlen-2.c: New test. + * gcc.dg/tree-ssa/ldist-strlen-3.c: New test. + +2021-10-11 Kito Cheng + + PR target/100316 + * gcc.c-torture/compile/pr100316.c: New. + +2021-10-11 liuhongt + + PR middle-end/102669 + * gnat.dg/unroll1.adb: Add -fno-tree-vectorize. + +2021-10-10 Harald Anlauf + + PR fortran/99348 + PR fortran/102521 + * gfortran.dg/parameter_array_init_8.f90: New test. + +2021-10-10 Andrew Pinski + + PR tree-optimization/102622 + * gcc.c-torture/execute/bitfld-10.c: New test. + +2021-10-09 Harald Anlauf + + PR fortran/65454 + * gfortran.dg/interface_operator_3.f90: New test. + +2021-10-09 Kewen Lin + + * c-c++-common/Wstringop-overflow-2.c: Add missing comment. + * gcc.dg/Warray-bounds-51.c: Likewise. + * gcc.dg/Warray-parameter-3.c: Likewise. + * gcc.dg/Wstringop-overflow-14.c: Likewise. + * gcc.dg/Wstringop-overflow-21.c: Likewise. + * gcc.dg/Wstringop-overflow-76.c: Likewise. + +2021-10-09 liuhongt + + * g++.dg/tree-ssa/pr94403.C: Add -fno-tree-vectorize + * gcc.dg/optimize-bswapsi-5.c: Ditto. + * gcc.dg/optimize-bswapsi-6.c: Ditto. + * gcc.dg/Warray-bounds-51.c: Add additional option + -mtune=generic for target x86/i?86 + * gcc.dg/Wstringop-overflow-14.c: Ditto. + +2021-10-09 Jakub Jelinek + + * c-c++-common/gomp/sections1.c (foo): Don't expect errors on + multiple statements in between section directive(s). Add testcases + for invalid no statements in between section directive(s). + * gcc.dg/gomp/sections-2.c (foo): Don't expect errors on + multiple statements in between section directive(s). + * g++.dg/gomp/sections-2.C (foo): Likewise. + * g++.dg/gomp/attrs-6.C (foo): Add testcases for multiple + statements in between section directive(s). + (bar): Add testcases for multiple statements in between scan + directive. + * g++.dg/gomp/attrs-7.C (bar): Adjust expected error recovery. + +2021-10-09 liuhongt + + * g++.target/i386/pr102639.C: New test. + +2021-10-08 Sandra Loosemore + + PR fortran/54753 + * gfortran.dg/c-interop/c535c-1.f90: Rewrite and expand. + * gfortran.dg/c-interop/c535c-2.f90: Remove xfails. + * gfortran.dg/c-interop/c535c-3.f90: Likewise. + * gfortran.dg/c-interop/c535c-4.f90: Likewise. + * gfortran.dg/PR94110.f90: Extend to cover class types. + +2021-10-08 Vladimir N. Makarov + + PR rtl-optimization/102627 + * gcc.target/i386/pr102627.c: New test. + +2021-10-08 Richard Sandiford + + * gcc.dg/pr102385.c: New test. + +2021-10-08 Jakub Jelinek + + PR c++/102640 + * c-c++-common/gomp/pr102640.c: New test. + +2021-10-08 Roger Sayle + + * gcc.target/i386/sse2-mmx-paddsb-2.c: Test for -128 or 128. + * gcc.target/i386/sse2-mmx-paddusb-2.c: Test for -1 or 255. + * gcc.target/i386/sse2-mmx-psubsb-2.c: Test for -128 or 128. + +2021-10-08 liuhongt + + * gcc.target/i386/pr102464.c: New test. + +2021-10-08 liuhongt + + * gcc.target/i386/mmx-reduce-op-1.c: New test. + * gcc.target/i386/mmx-reduce-op-2.c: New test. + +2021-10-08 liuhongt + + * c-c++-common/Wstringop-overflow-2.c: Adjust testcase. + * g++.dg/tree-ssa/pr81408.C: Ditto. + * g++.dg/warn/Wuninitialized-13.C: Ditto. + * gcc.dg/Warray-bounds-51.c: Ditto. + * gcc.dg/Warray-parameter-3.c: Ditto. + * gcc.dg/Wstringop-overflow-14.c: Ditto. + * gcc.dg/Wstringop-overflow-21.c: Ditto. + * gcc.dg/Wstringop-overflow-68.c: Ditto. + * gcc.dg/Wstringop-overflow-76.c: Ditto. + * gcc.dg/gomp/pr46032-2.c: Ditto. + * gcc.dg/gomp/pr46032-3.c: Ditto. + * gcc.dg/gomp/simd-2.c: Ditto. + * gcc.dg/gomp/simd-3.c: Ditto. + * gcc.dg/graphite/fuse-1.c: Ditto. + * gcc.dg/pr67089-6.c: Ditto. + * gcc.dg/pr82929-2.c: Ditto. + * gcc.dg/pr82929.c: Ditto. + * gcc.dg/store_merging_1.c: Ditto. + * gcc.dg/store_merging_11.c: Ditto. + * gcc.dg/store_merging_13.c: Ditto. + * gcc.dg/store_merging_15.c: Ditto. + * gcc.dg/store_merging_16.c: Ditto. + * gcc.dg/store_merging_19.c: Ditto. + * gcc.dg/store_merging_24.c: Ditto. + * gcc.dg/store_merging_25.c: Ditto. + * gcc.dg/store_merging_28.c: Ditto. + * gcc.dg/store_merging_30.c: Ditto. + * gcc.dg/store_merging_5.c: Ditto. + * gcc.dg/store_merging_7.c: Ditto. + * gcc.dg/store_merging_8.c: Ditto. + * gcc.dg/strlenopt-85.c: Ditto. + * gcc.dg/tree-ssa/dump-6.c: Ditto. + * gcc.dg/tree-ssa/pr19210-1.c: Ditto. + * gcc.dg/tree-ssa/pr47059.c: Ditto. + * gcc.dg/tree-ssa/pr86017.c: Ditto. + * gcc.dg/tree-ssa/pr91482.c: Ditto. + * gcc.dg/tree-ssa/predcom-1.c: Ditto. + * gcc.dg/tree-ssa/predcom-dse-3.c: Ditto. + * gcc.dg/tree-ssa/prefetch-3.c: Ditto. + * gcc.dg/tree-ssa/prefetch-6.c: Ditto. + * gcc.dg/tree-ssa/prefetch-8.c: Ditto. + * gcc.dg/tree-ssa/prefetch-9.c: Ditto. + * gcc.dg/tree-ssa/ssa-dse-18.c: Ditto. + * gcc.dg/tree-ssa/ssa-dse-19.c: Ditto. + * gcc.dg/uninit-40.c: Ditto. + * gcc.dg/unroll-7.c: Ditto. + * gcc.misc-tests/help.exp: Ditto. + * gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c: Ditto. + * gcc.target/i386/pr34012.c: Ditto. + * gcc.target/i386/pr49781-1.c: Ditto. + * gcc.target/i386/pr95798-1.c: Ditto. + * gcc.target/i386/pr95798-2.c: Ditto. + * gfortran.dg/pr77498.f: Ditto. + +2021-10-07 Patrick Palka + + PR c++/61355 + * g++.old-deja/g++.pt/nontype5.C: Adjust. + * g++.dg/template/param6.C: New test. + +2021-10-07 Roger Sayle + + * gcc.target/i386/sse2-mmx-paddsb-2.c: New test case. + * gcc.target/i386/sse2-mmx-paddusb-2.c: New test case. + * gcc.target/i386/sse2-mmx-psubsb-2.c: New test case. + * gcc.target/i386/sse2-mmx-psubusb-2.c: New test case. + +2021-10-07 Patrick Palka + + PR c++/99904 + * g++.dg/cpp2a/concepts-ttp4.C: New test. + +2021-10-07 Jonathan Wakely + + PR c++/102482 + * g++.dg/warn/Winit-list5.C: New test. + +2021-10-07 Jan Hubicka + + * g++.dg/torture/pr102581.C: New test. + +2021-10-07 Jakub Jelinek + + PR c++/102615 + * g++.dg/cpp23/charlit-encoding1.C: New testcase for C++23 P2316R2. + +2021-10-07 Richard Biener + + * gcc.dg/gimplefe-47.c: New testcase. + +2021-10-06 Jason Merrill + + * g++.dg/cpp2a/spaceship-synth8a.C: New test. + +2021-10-06 Jakub Jelinek + + PR c++/102612 + * g++.dg/cpp23/feat-cxx2b.C: Expect __cpp_constexpr 202110L rather + than 201907L. + * g++.dg/cpp23/constexpr-nonlit1.C: New test. + * g++.dg/cpp23/constexpr-nonlit2.C: New test. + * g++.dg/cpp23/constexpr-nonlit3.C: New test. + * g++.dg/cpp23/constexpr-nonlit4.C: New test. + * g++.dg/cpp23/constexpr-nonlit5.C: New test. + * g++.dg/cpp23/constexpr-nonlit6.C: New test. + * g++.dg/diagnostic/constexpr1.C: Only expect some diagnostics for + c++20_down. + * g++.dg/cpp1y/constexpr-label.C: Likewise. + * g++.dg/cpp1y/constexpr-neg1.C: Likewise. + * g++.dg/cpp2a/constexpr-try5.C: Likewise. Adjust some expected + wording. + * g++.dg/cpp2a/constexpr-dtor3.C: Likewise. + * g++.dg/cpp2a/consteval3.C: Likewise. Add effective target c++20 + and remove dg-options. + +2021-10-06 Jakub Jelinek + + * gcc.dg/cpp/gnu11-elifdef-1.c: New test. + * gcc.dg/cpp/gnu11-elifdef-2.c: New test. + * gcc.dg/cpp/gnu11-elifdef-3.c: New test. + * gcc.dg/cpp/gnu11-elifdef-4.c: New test. + * g++.dg/cpp/elifdef-1.C: New test. + * g++.dg/cpp/elifdef-2.C: New test. + * g++.dg/cpp/elifdef-3.C: New test. + * g++.dg/cpp/elifdef-4.C: New test. + * g++.dg/cpp/elifdef-5.C: New test. + * g++.dg/cpp/elifdef-6.C: New test. + * g++.dg/cpp/elifdef-7.C: New test. + +2021-10-06 Tobias Burnus + + * gfortran.dg/attr_deprecated-2.f90: New test. + +2021-10-06 Jakub Jelinek + Jason Merrill + + PR c++/98712 + PR c++/102490 + * g++.dg/cpp2a/spaceship-synth8.C (std::strong_ordering): Provide + more complete definition. + (std::strong_ordering::less, std::strong_ordering::equal, + std::strong_ordering::greater): Define. + * g++.dg/cpp2a/spaceship-synth12.C: New test. + * g++.dg/cpp2a/spaceship-synth13.C: New test. + * g++.dg/cpp2a/spaceship-synth14.C: New test. + * g++.dg/cpp2a/spaceship-eq11.C: New test. + * g++.dg/cpp2a/spaceship-eq12.C: New test. + * g++.dg/cpp2a/spaceship-eq13.C: New test. + +2021-10-05 qing zhao + + PR middle-end/102359 + * g++.dg/pr102359_1.C: New test. + * g++.dg/pr102359_2.C: New test. + +2021-10-05 Jakub Jelinek + + PR c++/102548 + * g++.target/i386/pr102548.C: New test. + +2021-10-05 Patrick Palka + + PR c++/102547 + * g++.dg/cpp0x/variadic-partial2.C: New test. + * g++.dg/cpp0x/variadic-partial2a.C: New test. + +2021-10-05 Aldy Hernandez + + * gcc.dg/tree-ssa/ssa-thread-valid.c: New test. + +2021-10-05 Jeff Law + + * gcc.target/s390/pr80725.c: Ensure computed goto is used on + a pointer type. + +2021-10-05 Richard Biener + + PR c/102605 + * gcc.dg/gimplefe-46.c: New testcase. + +2021-10-05 Patrick Palka + + PR c++/98930 + * g++.dg/cpp1z/nontype4.C: New test. + * g++.dg/cpp1z/nontype4a.C: New test. + +2021-10-05 Tobias Burnus + + * gfortran.dg/gomp/pr43711.f90: Add dg-error + dg-prune-output, + remove dg-excess-errors to change XFAIL to PASS. + +2021-10-05 Richard Biener + + PR middle-end/102587 + PR middle-end/102285 + * gcc.target/aarch64/sve/pr102587-1.c: Add -march=armv8.3-a+sve. + * gcc.target/aarch64/sve/pr102587-2.c: Likewise. + +2021-10-05 Richard Biener + + * gfortran.dg/predict-2.f90: Adjust to avoid redundant + inner loop preheader checking code. + +2021-10-04 Marek Polacek + + PR c++/97573 + * c-c++-common/Warray-compare-1.c: New test. + * c-c++-common/Warray-compare-2.c: New test. + +2021-10-04 Richard Biener + + * gcc.dg/auto-init-hardreg-1.c: New testcase. + +2021-10-04 Richard Biener + + * c-c++-common/pr102285.c: New testcase. + +2021-10-04 Richard Biener + + PR tree-optimization/102570 + * gcc.dg/tree-ssa/ssa-fre-96.c: New testcase. + * gcc.dg/tree-ssa/ssa-pre-33.c: Likewise. + +2021-10-04 Aldy Hernandez + + * g++.dg/Walloca2.C: New test. + +2021-10-04 Richard Biener + + PR middle-end/102587 + * gcc.target/aarch64/sve/pr102587-1.c: New testcase. + * gcc.target/aarch64/sve/pr102587-2.c: Likewise. + +2021-10-04 Tobias Burnus + + PR fortran/54753 + * gfortran.dg/assumed_rank_23.f90: New file. + +2021-10-03 Iain Sandoe + + PR c++/101765 + * g++.dg/coroutines/pr101765.C: New test. + +2021-10-03 Iain Sandoe + + PR c++/99710 + * g++.dg/coroutines/pr99710.C: New test. + +2021-10-03 John Eivind Helset + + PR c++/100673 + * g++.dg/coroutines/pr100673.C: New test. + +2021-10-03 Iain Sandoe + + PR c++/101133 + * g++.dg/coroutines/pr101133.C: New test. + +2021-10-03 Iain Sandoe + + PR c++/99575 + * g++.dg/coroutines/pr99575.C: New test. + +2021-10-02 Aldy Hernandez + + * gcc.dg/tree-ssa/pr102563.c: New test. + +2021-10-02 H.J. Lu + + * gcc.dg/analyzer/torture/asm-x86-linux-rdmsr.c (DECLARE_ARGS): + Use unsigned long long for x86-64. + +2021-10-01 Aldy Hernandez + + PR tree-optimization/102546 + * gcc.dg/tree-ssa/pr102546.c: New file. + +2021-10-01 Martin Sebor + + PR c/102103 + * g++.dg/cpp0x/constexpr-array-ptr10.C: Suppress a valid warning. + * g++.dg/warn/Wreturn-local-addr-6.C: Correct a cast. + * gcc.dg/Waddress.c: Expect a warning. + * c-c++-common/Waddress-3.c: New test. + * c-c++-common/Waddress-4.c: New test. + * g++.dg/warn/Waddress-5.C: New test. + * g++.dg/warn/Waddress-6.C: New test. + * g++.dg/warn/pr101219.C: Expect a warning. + * gcc.dg/Waddress-3.c: New test. + +2021-10-01 H.J. Lu + + * c-c++-common/tsan/atomic_stack.c: Don't expect print out from + __tsan_atomic32_fetch_add. + +2021-10-01 qingzhe huang + + PR c++/101783 + * g++.dg/parse/pr101783.C: New test. + +2021-10-01 Jakub Jelinek + Richard Biener + + PR sanitizer/102515 + * c-c++-common/ubsan/div-by-zero-3.c: Use + -fsanitize=signed-integer-overflow instead of + -fsanitize=integer-divide-by-zero. + * c-c++-common/ubsan/div-by-zero-5.c: Likewise. + * c-c++-common/ubsan/div-by-zero-4.c: Likewise. Add + -fsanitize-undefined-trap-on-error. + * c-c++-common/ubsan/float-div-by-zero-2.c: New test. + * c-c++-common/ubsan/overflow-div-1.c: New test. + * c-c++-common/ubsan/overflow-div-2.c: New test. + * c-c++-common/ubsan/overflow-div-3.c: New test. + +2021-10-01 Kyrylo Tkachov + + * gcc.target/aarch64/cpymem-size.c: Adjust scan for ilp32. + +2021-10-01 Andrew Pinski + + * gcc.dg/vect/bb-slp-pr97709.c: Fix for computed goto + pointers. + +2021-10-01 Martin Liska + + * gcc.target/i386/avx512er-vrsqrt28ps-3.c: Disable fast math. + * gcc.target/i386/avx512er-vrsqrt28ps-5.c: Likewise. + * gcc.target/i386/attr-optimize.c: New test. + +2021-10-01 Jakub Jelinek + + * gfortran.dg/gomp/order-5.f90: Adjust scan-tree-dump-times regexps. + +2021-10-01 Jakub Jelinek + + PR c++/102496 + * g++.dg/tls/pr102496-1.C: New test. + * g++.dg/tls/pr102496-2.C: New test. + +2021-10-01 Richard Biener + + PR middle-end/102518 + * gcc.dg/torture/pr102518.c: New testcase. + +2021-09-30 David Edelsohn + + * gfortran.dg/c-interop/cf-descriptor-5-c.c: Include alloca.h. + +2021-09-30 Patrick Palka + + PR c++/102535 + * g++.dg/ext/is_trivially_constructible7.C: New test. + +2021-09-30 Patrick Palka + + * g++.dg/ext/is_constructible6.C: New test. + +2021-09-30 Patrick Palka + + PR c++/95567 + * g++.dg/cpp2a/spaceship-virtual1.C: New test. + +2021-09-30 Harald Anlauf + + PR fortran/102458 + * gfortran.dg/pr102458b.f90: New test. + +2021-09-30 Uroš Bizjak + + PR target/89954 + * gcc.target/i386/pr89954.c: New test. + +2021-09-30 Tobias Burnus + + PR fortran/71703 + PR fortran/84007 + * gfortran.dg/c-interop/c535b-1.f90: Remove wrong comment. + * gfortran.dg/unlimited_polymorphic_1.f03: Extend. + * gfortran.dg/unlimited_polymorphic_32.f90: New test. + +2021-09-30 Iain Buclaw + + PR d/102476 + * gdc.dg/pr102476.d: New test. + +2021-09-30 Martin Liska + + PR testsuite/102509 + * gcc.c-torture/compile/attr-complex-method.c: Skip if LTO is + used. + * gcc.c-torture/compile/attr-complex-method-2.c: Likewise. + +2021-09-29 Aldy Hernandez + + PR testsuite/102501 + * gcc.dg/tree-ssa/pr66752-3.c: Adjust. + * gcc.dg/tree-ssa/pr77445-2.c: Adjust. + +2021-09-29 Harald Anlauf + + PR fortran/102520 + * gfortran.dg/pr102520.f90: New test. + +2021-09-29 Jeff Law + + * gcc.c-torture/compile/920831-1.c: Fix computed goto types. + * gcc.c-torture/compile/pr27863.c: Likewise. + +2021-09-29 Richard Biener + + PR testsuite/102517 + * gcc.dg/pr78408-1.c: Make S not power-of-two size. + +2021-09-29 Richard Biener + + * gcc.target/i386/vect-alignment-peeling-1.c: New testcase. + * gcc.target/i386/vect-alignment-peeling-2.c: Likewise. + +2021-09-29 Kyrylo Tkachov + Kyrylo Tkachov + + * gcc.target/aarch64/cpymem-size.c: New test. + +2021-09-29 Kyrylo Tkachov + Kyrylo Tkachov + + * gcc.target/aarch64/memset-corner-cases-2.c: New test. + * gcc.target/aarch64/memset-strict-align-1.c: Adjust. + +2021-09-29 Jakub Jelinek + + PR middle-end/102504 + * c-c++-common/gomp/scope-4.c: New test. + +2021-09-29 Andrew Pinski + + * gcc.c-torture/compile/920826-1.c: Fix computed goto. + * gcc.c-torture/compile/pr27863.c: Likewise. + * gcc.c-torture/compile/pr70190.c: Likewise. + * gcc.dg/torture/pr89135.c: Likewise. + * gcc.dg/torture/pr90071.c: Likewise. + * gcc.dg/vect/bb-slp-pr97709.c: Likewise. + +2021-09-29 Richard Biener + + * gcc.dg/out-of-bounds-1.c: Make memcpied size not power-of-two. + +2021-09-28 Patrick Palka + + PR c++/99909 + * g++.dg/cpp2a/concepts-ttp3.C: New test. + +2021-09-28 Andrew Pinski + + PR c/32122 + * gcc.dg/comp-goto-5.c: New test. + * gcc.dg/comp-goto-6.c: New test. + +2021-09-28 Iain Sandoe + + PR c++/102454 + * g++.dg/coroutines/pr102454.C: New test. + +2021-09-28 Ilya Leoshkevich + + * gcc.dg/tree-ssa/reassoc-46.c: New test. + * gcc.dg/tree-ssa/reassoc-46.h: Common code for new tests. + * gcc.dg/tree-ssa/reassoc-47.c: New test. + * gcc.dg/tree-ssa/reassoc-48.c: New test. + * gcc.dg/tree-ssa/reassoc-49.c: New test. + * gcc.dg/tree-ssa/reassoc-50.c: New test. + * gcc.dg/tree-ssa/reassoc-51.c: New test. + +2021-09-28 Aldy Hernandez + + * gcc.dg/auto-init-uninit-1.c: Adjust. + * gcc.dg/auto-init-uninit-15.c: Same. + * gcc.dg/guality/example.c: Same. + * gcc.dg/loop-8.c: Same. + * gcc.dg/strlenopt-40.c: Same. + * gcc.dg/tree-ssa/pr18133-2.c: Same. + * gcc.dg/tree-ssa/pr18134.c: Same. + * gcc.dg/uninit-1.c: Same. + * gcc.dg/uninit-pr44547.c: Same. + * gcc.dg/uninit-pr59970.c: Same. + +2021-09-28 Thomas Schwinge + + * gfortran.dg/assumed_rank_22_aux.c: Adjust messages printed. + +2021-09-28 Jakub Jelinek + + PR target/102498 + * gcc.target/i386/pr102498.c: New test. + +2021-09-28 Richard Biener + + PR tree-optimization/99793 + * gcc.dg/tree-ssa/pr99793.c: New testcase. + +2021-09-28 Richard Biener + + PR tree-optimization/100112 + * gcc.dg/tree-ssa/ssa-fre-95.c: New testcase. + +2021-09-28 Jakub Jelinek + + PR middle-end/102492 + * g++.dg/gomp/simd-3.C: New test. + +2021-09-28 Aldy Hernandez + + PR tree-optimization/102511 + * gcc.dg/pr102511.c: New test. + * gcc.dg/tree-ssa/ssa-dom-thread-14.c: Adjust. + +2021-09-28 Hongyu Wang + + PR target/102230 + * gcc.target/i386/avx512fp16-floatvnhf.c: Remove xfail. + * gcc.target/i386/avx512fp16-trunc-extendvnhf.c: Ditto. + * gcc.target/i386/avx512fp16-truncvnhf.c: Ditto. + * gcc.target/i386/avx512fp16-64-32-vecop-1.c: New test. + * gcc.target/i386/avx512fp16-64-32-vecop-2.c: Ditto. + * gcc.target/i386/pr102230.c: Ditto. + +2021-09-28 Richard Biener + + * gcc.target/i386/vect-pr97352.c: Pass -mno-avx2 -mno-avx512f. + +2021-09-28 Tobias Burnus + + PR fortran/102500 + * gfortran.dg/include_15.f90: Add 'dg-prune-output' to prune + -Wmissing-include-dirs output printed or not depending on + how the testsuite is run. + +2021-09-28 Richard Biener + + * gcc.dg/vect/bb-slp-pr65935.c: Prefer 128bit vectorization + on x86. + +2021-09-28 Aldy Hernandez + + * gcc.dg/auto-init-uninit-1.c: Add -fthread-jumps. + * gcc.dg/auto-init-uninit-15.c: Same. + * gcc.dg/guality/example.c: Same. + * gcc.dg/loop-8.c: Same. + * gcc.dg/strlenopt-40.c: Same. + * gcc.dg/tree-ssa/pr18133-2.c: Same. + * gcc.dg/tree-ssa/pr18134.c: Same. + * gcc.dg/uninit-1.c: Same. + * gcc.dg/uninit-pr44547.c: Same. + * gcc.dg/uninit-pr59970.c: Same. + +2021-09-28 liuhongt + + * gcc.target/i386/vect-rebuild.c: Adjust testcases. + * gcc.target/i386/avx512f-vect-rebuild.c: New test. + +2021-09-28 liuhongt + + * gcc.target/i386/avx512fp16-reduce-op-2.c: New test. + * gcc.target/i386/avx512fp16-reduce-op-3.c: New test. + +2021-09-27 Patrick Palka + + PR c++/102479 + * g++.dg/cpp1z/class-deduction12.C: Also test alias CTAD in the + same way. + * g++.dg/cpp1z/class-deduction99.C: New test. + +2021-09-27 Aldy Hernandez + + * gcc.dg/torture/pr55107.c: Adjust. + * gcc.dg/tree-ssa/phi_on_compare-1.c: Adjust. + * gcc.dg/tree-ssa/phi_on_compare-2.c: Adjust. + * gcc.dg/tree-ssa/phi_on_compare-3.c: Adjust. + * gcc.dg/tree-ssa/phi_on_compare-4.c: Adjust. + * gcc.dg/tree-ssa/pr21559.c: Adjust. + * gcc.dg/tree-ssa/pr59597.c: Adjust. + * gcc.dg/tree-ssa/pr61839_1.c: Adjust. + * gcc.dg/tree-ssa/pr61839_3.c: Adjust. + * gcc.dg/tree-ssa/pr71437.c: Adjust. + * gcc.dg/tree-ssa/ssa-dom-thread-11.c: Adjust. + * gcc.dg/tree-ssa/ssa-dom-thread-16.c: Adjust. + * gcc.dg/tree-ssa/ssa-dom-thread-18.c: Adjust. + * gcc.dg/tree-ssa/ssa-dom-thread-2a.c: Adjust. + * gcc.dg/tree-ssa/ssa-dom-thread-4.c: Adjust. + * gcc.dg/tree-ssa/ssa-thread-14.c: Adjust. + * gcc.dg/tree-ssa/ssa-vrp-thread-1.c: Adjust. + * gcc.dg/tree-ssa/vrp106.c: Adjust. + * gcc.dg/tree-ssa/vrp55.c: Adjust. + +2021-09-27 Martin Liska + + * gcc.c-torture/compile/attr-complex-method-2.c: New test. + * gcc.c-torture/compile/attr-complex-method.c: New test. + +2021-09-27 Tobias Burnus + + PR fortran/94070 + * gfortran.dg/c-interop/cf-out-descriptor-6.f90: Remove xfail. + * gfortran.dg/c-interop/size.f90: Remove xfail. + * gfortran.dg/intrinsic_size_3.f90: Update scan-tree-dump-times. + * gfortran.dg/transpose_optimization_2.f90: Likewise. + * gfortran.dg/size_optional_dim_1.f90: Add scan-tree-dump-not. + * gfortran.dg/assumed_rank_22.f90: New test. + * gfortran.dg/assumed_rank_22_aux.c: New test. + +2021-09-27 Andrew Pinski + + PR c/94726 + * gcc.dg/pr94726.c: New test. + +2021-09-27 Richard Biener + + PR tree-optimization/97351 + PR tree-optimization/97352 + PR tree-optimization/82426 + * gcc.target/i386/vect-pr82426.c: New testcase. + * gcc.target/i386/vect-pr97352.c: Likewise. + +2021-09-27 liuhongt + + Revert: + 2021-09-27 liuhongt + + PR target/101059 + * gcc.target/i386/sse2-pr101059.c: New test. + * gcc.target/i386/sse3-pr101059.c: New test. + +2021-09-26 Tobias Burnus + + PR fortran/101334 + * gfortran.dg/associated_assumed_rank.f90: New test. + +2021-09-25 Dimitar Dimitrov + + * gcc.target/pru/regio-as-pointer.c: New negative test. + * gcc.target/pru/regio-as-pointer-2.c: New negative test. + * gcc.target/pru/regio-decl-2.c: New negative test. + * gcc.target/pru/regio-decl-3.c: New negative test. + * gcc.target/pru/regio-decl-4.c: New negative test. + * gcc.target/pru/regio-decl.c: New negative test. + * gcc.target/pru/regio-di.c: New negative test. + * gcc.target/pru/regio-hi.c: New negative test. + * gcc.target/pru/regio-qi.c: New negative test. + * gcc.target/pru/regio.c: New test. + * gcc.target/pru/regio.h: New helper header. + +2021-09-24 Harald Anlauf + + PR fortran/102458 + * gfortran.dg/pr102458.f90: New test. + +2021-09-24 Sandra Loosemore + + PR fortran/101333 + * gfortran.dg/c-interop/c407c-1.f90: Remove xfails. + +2021-09-24 Patrick Palka + + PR c++/98216 + PR c++/91292 + * g++.dg/cpp2a/nontype-float2.C: New test. + +2021-09-24 Tobias Burnus + + PR fortran/55534 + * gfortran.dg/include_9.f90: Add dg-prune-output. + * gfortran.dg/include_23.f90: New test. + * gfortran.dg/include_24.f90: New test. + +2021-09-24 Aldy Hernandez + + * gcc.dg/tree-ssa/20030714-2.c: Adjust. + * gcc.dg/tree-ssa/pr66752-3.c: Adjust. + * gcc.dg/tree-ssa/pr77445-2.c: Adjust. + * gcc.dg/tree-ssa/ssa-dom-thread-18.c: Adjust. + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust. + * gcc.dg/vect/bb-slp-16.c: Adjust. + +2021-09-24 Hongyu Wang + + * gcc.target/i386/cond_op_addsubmuldiv__Float16-1.c: New test. + * gcc.target/i386/cond_op_addsubmuldiv__Float16-2.c: Ditto. + * gcc.target/i386/cond_op_fma__Float16-1.c: Ditto. + * gcc.target/i386/cond_op_fma__Float16-2.c: Ditto. + * gcc.target/i386/cond_op_maxmin__Float16-1.c: Ditto. + * gcc.target/i386/cond_op_maxmin__Float16-2.c: Ditto. + +2021-09-23 Sandra Loosemore + + PR fortran/101320 + * gfortran.dg/c-interop/c516.f90: Remove xfails. Add more + tests. + +2021-09-23 Michel Morin + + PR c++/77565 + * g++.dg/spellcheck-pr77565.C: New test. + +2021-09-23 Andrew MacLeod + + * gcc.dg/pr102463.c: New. + +2021-09-23 Harald Anlauf + Tobias Burnus + + PR fortran/93834 + * gfortran.dg/coarray/coarray_allocated.f90: New test. + +2021-09-23 Bill Schmidt + + PR target/102024 + * g++.target/powerpc/pr102024.C: New. + +2021-09-23 Hongyu Wang + + * g++.target/i386/avx512fp16-vcondmn-vec.C: New test. + * g++.target/i386/avx512fp16-vcondmn-minmax.C: Ditto. + * gcc.target/i386/avx512fp16-vcondmn-loop-1.c: Ditto. + * gcc.target/i386/avx512fp16-vcondmn-loop-2.c: Ditto. + * gcc.target/i386/avx512fp16-vec_cmpmn.c: Ditto. + +2021-09-23 Hongyu Wang + + * gcc.target/i386/avx512fp16-trunc-extendvnhf.c: New test. + +2021-09-23 Hongyu Wang + + * gcc.target/i386/avx512fp16-floatvnhf.c: New test. + +2021-09-23 Hongyu Wang + + * gcc.target/i386/avx512fp16-trunchf.c: New test. + * gcc.target/i386/avx512fp16-truncvnhf.c: Ditto. + +2021-09-23 Hongyu Wang + + * gcc.target/i386/avx512fp16-builtin-minmax-1.c: New test. + +2021-09-23 liuhongt + + * gcc.target/i386/avx512fp16-fma-1.c: New test. + * gcc.target/i386/avx512fp16vl-fma-1.c: New test. + * gcc.target/i386/avx512fp16vl-fma-vectorize-1.c: New test. + +2021-09-23 liuhongt + + * gcc.target/i386/avx512fp16-builtin-round-1.c: Add new testcase. + +2021-09-23 Jakub Jelinek + + PR c++/102413 + * g++.dg/gomp/attrs-14.C: New test. + +2021-09-23 Sandra Loosemore + + PR fortran/101319 + * gfortran.dg/c-interop/assumed-type-dummy.f90: Remove xfail. + +2021-09-23 Sandra Loosemore + + PR fortran/101334 + * gfortran.dg/c-interop/c535b-2.f90: Remove xfails. + * gfortran.dg/c-interop/c535b-3.f90: Likewise. + +2021-09-23 Sandra Loosemore + + * gfortran.dg/assumed_rank_18.f90 (g): Wrap call to h in + select rank. + * gfortran.dg/assumed_type_10.f90 (test_array): Likewise for + call to test_lib. + * gfortran.dg/assumed_type_11.f90 (test_array): Likewise. + +2021-09-22 Tobias Burnus + + PR fortran/55534 + * gfortran.dg/include_14.f90: Add -J testcase and update dg-output. + * gfortran.dg/include_15.f90: Likewise. + * gfortran.dg/include_16.f90: Likewise. + * gfortran.dg/include_17.f90: Likewise. + * gfortran.dg/include_18.f90: Likewise. + * gfortran.dg/include_19.f90: Likewise. + +2021-09-22 Roger Sayle + Richard Biener + + * gcc.dg/fold-negate-1.c: New test case. + +2021-09-22 H.J. Lu + + * gcc.target/i386/auto-init-2.c: Replace ia32 with { ! lp64 }. + * gcc.target/i386/auto-init-3.c (dg-options): Add -msse. + (dg-additional-options): Add -mfpmath=387 for ia32. + Replace lp64 with { ! ia32 }. Add a space after ia32. + * gcc.target/i386/auto-init-4.c: Replace lp64 with { ! ia32 }. + * gcc.target/i386/auto-init-5.c: Likewise. + * gcc.target/i386/auto-init-padding-3.c: Likewise. + * gcc.target/i386/auto-init-padding-7.c: Likewise. + * gcc.target/i386/auto-init-padding-8.c: Likewise. + * gcc.target/i386/auto-init-padding-9.c: Likewise. + +2021-09-22 Patrick Palka + + DR 2446 + PR c++/102412 + * g++.dg/cpp2a/concepts-nondep2.C: New test. + * g++.dg/cpp2a/concepts-nondep3.C: New test. + +2021-09-22 Jiufu Guo + + PR tree-optimization/102087 + * gcc.dg/pr102087.c: New test. + +2021-09-22 dianhong xu + + * gcc.target/i386/avx512fp16-14.c: New test. + +2021-09-22 dianhong xu + + * gcc.target/i386/avx512fp16-conjugation-1.c: New test. + * gcc.target/i386/avx512fp16vl-conjugation-1.c: New test. + +2021-09-22 dianhong xu + + * gcc.target/i386/avx512fp16-reduce-op-1.c: New test. + * gcc.target/i386/avx512fp16vl-reduce-op-1.c: Ditto. + +2021-09-22 dianhong xu + + * gcc.target/i386/avx512fp16-13.c: New test. + +2021-09-22 Andreas Krebbel + + * gcc.target/s390/pr102222.c: New test. + +2021-09-22 Jakub Jelinek + + PR middle-end/102415 + * c-c++-common/gomp/scope-3.c: New test. + +2021-09-22 Jakub Jelinek + + * c-c++-common/gomp/allocate-6.c: New test. + * c-c++-common/gomp/allocate-7.c: New test. + * g++.dg/gomp/allocate-4.C: New test. + +2021-09-22 liuhongt + + * gcc.target/i386/avx512vl-pr95046.c: New test. + +2021-09-22 liuhongt + + * gcc.target/i386/pr92658-avx512f.c: Refine testcase. + * gcc.target/i386/pr92658-avx512vl.c: Adjust scan-assembler, + only v2di->v2qi truncate is not supported, v4di->v4qi should + be supported. + +2021-09-22 liuhongt + + * gcc.target/i386/avx512fp16-builtin-fpcompare-1.c: New test. + * gcc.target/i386/avx512fp16-builtin-fpcompare-2.c: New test. + +2021-09-22 liuhongt + + * gcc.target/i386/avx512fp16-builtin-round-1.c: New test. + +2021-09-22 liuhongt + + * gcc.target/i386/avx512fp16-builtin-sqrt-1.c: New test. + * gcc.target/i386/avx512fp16vl-builtin-sqrt-1.c: New test. + +2021-09-22 liuhongt + + * gcc.target/i386/avx512fp16-vfcmaddcsh-1a.c: New test. + * gcc.target/i386/avx512fp16-vfcmaddcsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfcmulcsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfcmulcsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfmaddcsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfmaddcsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfmulcsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfmulcsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-complex-constraints.c: Ditto. + +2021-09-22 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-22 liuhongt + + * gcc.target/i386/avx512fp16-helper.h + (init_src): Adjust init value. + (NET_CMASK): New net mask for complex input. + * gcc.target/i386/avx512fp16-vfcmaddcph-1a.c: New test. + * gcc.target/i386/avx512fp16-vfcmaddcph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfcmulcph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfcmulcph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfmaddcph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfmaddcph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfmulcph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfmulcph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfcmaddcph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfcmaddcph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfcmulcph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfmaddcph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfmaddcph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfmulcph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfmulcph-1b.c: Ditto. + +2021-09-22 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-22 Barrett Adair + + * g++.dg/cpp0x/constexpr-52830.C: Remove unwanted dg-ice. + * g++.dg/template/canon-type-15.C: New test. + * g++.dg/template/canon-type-16.C: New test. + * g++.dg/template/canon-type-17.C: New test. + * g++.dg/template/canon-type-18.C: New test. + * g++.dg/template/dependent-name15.C: New regression test. + * g++.dg/template/dependent-name16.C: New regression test. + +2021-09-21 Richard Biener + + PR tree-optimization/102421 + * g++.dg/vect/pr102421.cc: New testcase. + +2021-09-21 Eric Botcazou + + * lib/target-supports.exp (no_fsanitize_address): Add missing bits. + * gcc.dg/uninit-pr93100.c: Skip if no_fsanitize_address. + * gcc.dg/pr91441.c: Likewise. + * gcc.dg/pr96260.c: Likewise. + * gcc.dg/pr96307.c: Likewise. + * g++.dg/warn/uninit-pr93100.C: Likewise. + * gnat.dg/asan1.adb: Likewise. + * gcc.dg/Wstringop-overflow-70.c: Adjust for SPARC. + * g++.dg/abi/anon4.C: Likewise. + +2021-09-21 Tobias Burnus + + * gfortran.dg/include_6.f90: Change dg-error to + dg-warning and update pattern. + * gfortran.dg/include_14.f90: New test. + * gfortran.dg/include_15.f90: New test. + * gfortran.dg/include_16.f90: New test. + * gfortran.dg/include_17.f90: New test. + * gfortran.dg/include_18.f90: New test. + * gfortran.dg/include_19.f90: New test. + * gfortran.dg/include_20.f90: New test. + * gfortran.dg/include_21.f90: New test. + +2021-09-21 wangpc + + * g++.target/aarch64/sve/static-var-in-template.C: New test. + +2021-09-20 Andrew MacLeod + + * gcc.dg/tree-ssa/evrp-ignore.c: New. + +2021-09-20 Matthias Kretz + + * gcc.dg/associative-math-1.c: New test. + * gcc.dg/associative-math-2.c: New test. + * gcc.dg/no-signed-zeros-1.c: New test. + * gcc.dg/no-signed-zeros-2.c: New test. + * gcc.dg/no-trapping-math-1.c: New test. + * gcc.dg/no-trapping-math-2.c: New test. + * gcc.dg/reciprocal-math-1.c: New test. + * gcc.dg/reciprocal-math-2.c: New test. + * gcc.dg/rounding-math-1.c: New test. + * gcc.dg/rounding-math-2.c: New test. + +2021-09-20 Tobias Burnus + + * gfortran.dg/gomp/order-5.f90: New test. + * gfortran.dg/gomp/order-6.f90: New test. + * gfortran.dg/gomp/order-7.f90: New test. + * gfortran.dg/gomp/order-8.f90: New test. + * gfortran.dg/gomp/order-9.f90: New test. + +2021-09-20 Christophe Lyon + Torbjörn SVENSSON + + * lib/prune.exp (prune_gcc_output): Remove .exe suffix from + toolchain executables names. + +2021-09-20 Thomas Schwinge + + * gcc.dg/plugin/diagnostic-test-string-literals-1.c: Adjust + expected error diagnostics. + +2021-09-20 Richard Biener + + PR tree-optimization/65206 + * gcc.dg/torture/20210916.c: New testcase. + * gcc.dg/vect/pr65206.c: Likewise. + +2021-09-19 Martin Sebor + + PR middle-end/102403 + * gcc.dg/uninit-pr102403.c: New test. + * gcc.dg/uninit-pr102403-c2.c: New test. + +2021-09-19 Martin Sebor + + PR middle-end/102243 + * g++.dg/warn/Wplacement-new-size-10.C: New test. + +2021-09-19 Jeff Law + + * gfortran.dg/goacc/privatization-1-compute.f90: Make test names + unique. + * gfortran.dg/goacc/routine-external-level-of-parallelism-2.f: + Likewise. + +2021-09-19 Iain Sandoe + + * jit.dg/jit.exp (fixed_local_execute): Amend the match and + exit conditions to cater for more platforms. + +2021-09-19 Roger Sayle + + PR middle-end/88173 + * c-c++-common/pr57371-4.c: Tweak/correct test case for QNaNs. + * g++.dg/pr88173-1.C: New test case. + * g++.dg/pr88173-2.C: New test case. + +2021-09-18 Jakub Jelinek + + * c-c++-common/gomp/order-1.c (f2): Add tests for distribute + with order clause. + (f3): Remove. + * c-c++-common/gomp/order-2.c: Don't expect error for distribute + with order clause. + * c-c++-common/gomp/order-5.c: New test. + * c-c++-common/gomp/order-6.c: New test. + * c-c++-common/gomp/clause-dups-1.c (f1): Add tests for + duplicated order clause. + (f9): New function. + * c-c++-common/gomp/clauses-1.c (baz, bar): Don't mix copyin and + order(concurrent) clauses on the same composite construct combined + with distribute, instead split it into two tests, one without + copyin and one without order(concurrent). Add order(concurrent) + clauses to {,{,target} teams} distribute. + * g++.dg/gomp/attrs-1.C (baz, bar): Likewise. + * g++.dg/gomp/attrs-2.C (baz, bar): Likewise. + +2021-09-18 Jakub Jelinek + + * c-c++-common/gomp/default-2.c: New test. + * c-c++-common/gomp/default-3.c: New test. + * g++.dg/gomp/default-1.C: New test. + +2021-09-18 liuhongt + + * gcc.target/i386/avx512fp16-vfmaddXXXsh-1a.c: New test. + * gcc.target/i386/avx512fp16-vfmaddXXXsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfmsubXXXsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfmsubXXXsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfnmaddXXXsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfnmaddXXXsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfnmsubXXXsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfnmsubXXXsh-1b.c: Ditto. + +2021-09-18 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-18 H.J. Lu + + * gcc.target/i386/avx512fp16-xorsign-1.c: New test. + +2021-09-18 liuhongt + + * gcc.target/i386/avx512fp16-neg-1a.c: New test. + * gcc.target/i386/avx512fp16-neg-1b.c: Ditto. + * gcc.target/i386/avx512fp16-scalar-bitwise-1a.c: Ditto. + * gcc.target/i386/avx512fp16-scalar-bitwise-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vector-bitwise-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vector-bitwise-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-neg-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-neg-1b.c: Ditto. + +2021-09-18 liuhongt + + * gcc.target/i386/avx512fp16-vfmaddXXXph-1a.c: New test. + * gcc.target/i386/avx512fp16-vfmaddXXXph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfmsubXXXph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfmsubXXXph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfnmaddXXXph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfnmaddXXXph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfnmsubXXXph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfnmsubXXXph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfmaddXXXph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfmaddXXXph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfmsubXXXph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfmsubXXXph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfnmaddXXXph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfnmaddXXXph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfnmsubXXXph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfnmsubXXXph-1b.c: Ditto. + +2021-09-18 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test fot new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-18 liuhongt + + * gcc.target/i386/avx512fp16-vfmaddsubXXXph-1a.c: New test. + * gcc.target/i386/avx512fp16-vfmaddsubXXXph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfmsubaddXXXph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfmsubaddXXXph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfmaddsubXXXph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfmaddsubXXXph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfmsubaddXXXph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfmsubaddXXXph-1b.c: Ditto. + +2021-09-18 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-18 liuhongt + + * gcc.target/i386/avx512fp16-broadcast-1.c: New test. + * gcc.target/i386/avx512fp16-broadcast-2.c: New test. + +2021-09-18 Jason Merrill + + * g++.dg/template/dtor5.C: Adjust expected error. + * g++.dg/cpp23/lookup2.C: New test. + * g++.dg/template/dtor11.C: New test. + +2021-09-17 Harald Anlauf + + PR fortran/102366 + * gfortran.dg/pr102366.f90: New test. + +2021-09-17 qing zhao + + * gcc.target/i386/auto-init-1.c: Restrict the testing only for + -march=x86-64 and -mtune=generic. Add -fno-stack-protector. + * gcc.target/i386/auto-init-2.c: Restrict the testing only for + -march=x86-64 and -mtune=generic -msse. + * gcc.target/i386/auto-init-3.c: Likewise. + * gcc.target/i386/auto-init-4.c: Likewise. + * gcc.target/i386/auto-init-5.c: Different pattern match for lp64 and + ia32. + * gcc.target/i386/auto-init-6.c: Restrict the testing only for + -march=x86-64 and -mtune-generic -msse. Add -fno-stack-protector. + * gcc.target/i386/auto-init-7.c: Likewise. + * gcc.target/i386/auto-init-8.c: Restrict the testing only for + -march=x86-64 and -mtune=generic -msse.. + * gcc.target/i386/auto-init-padding-1.c: Likewise. + * gcc.target/i386/auto-init-padding-10.c: Likewise. + * gcc.target/i386/auto-init-padding-11.c: Likewise. + * gcc.target/i386/auto-init-padding-12.c: Likewise. + * gcc.target/i386/auto-init-padding-2.c: Likewise. + * gcc.target/i386/auto-init-padding-3.c: Restrict the testing only for + -march=x86-64. Different pattern match for lp64 and ia32. + * gcc.target/i386/auto-init-padding-4.c: Restrict the testing only for + -march=x86-64 and -mtune-generic -msse. + * gcc.target/i386/auto-init-padding-5.c: Likewise. + * gcc.target/i386/auto-init-padding-6.c: Likewise. + * gcc.target/i386/auto-init-padding-7.c: Restrict the testing only for + -march=x86-64 and -mtune-generic -msse. Add -fno-stack-protector. + * gcc.target/i386/auto-init-padding-8.c: Likewise. + * gcc.target/i386/auto-init-padding-9.c: Restrict the testing only for + -march=x86-64. Different pattern match for lp64 and ia32. + +2021-09-17 Martin Sebor + + PR middle-end/102200 + * gcc.dg/Wstringop-overflow-62.c: Adjust text of an expected note. + * gcc.dg/Warray-bounds-89.c: New test. + * gcc.dg/Wstringop-overflow-74.c: New test. + * gcc.dg/Wstringop-overflow-75.c: New test. + * gcc.dg/Wstringop-overflow-76.c: New test. + +2021-09-17 Sandra Loosemore + + * gfortran.dg/PR100914.c: Do not include quadmath.h. Use + _Float128 _Complex instead of __complex128. + * gfortran.dg/PR100914.f90: Add -Wno-pedantic to suppress error + about use of _Float128. + * gfortran.dg/c-interop/typecodes-array-float128-c.c: Use + _Float128 instead of __float128. + * gfortran.dg/c-interop/typecodes-sanity-c.c: Likewise. + * gfortran.dg/c-interop/typecodes-scalar-float128-c.c: Likewise. + * lib/target-supports.exp + (check_effective_target_fortran_real_c_float128): Update comments. + +2021-09-17 Roger Sayle + + PR c/102245 + * gcc.dg/Wint-in-bool-context-4.c: New test case. + +2021-09-17 Jakub Jelinek + + * c-c++-common/gomp/atomic-18.c: Expect same diagnostics in C++ as in + C. + * c-c++-common/gomp/atomic-25.c: Drop c effective target. + * c-c++-common/gomp/atomic-26.c: Likewise. + * c-c++-common/gomp/atomic-27.c: Likewise. + * c-c++-common/gomp/atomic-28.c: Likewise. + * c-c++-common/gomp/atomic-29.c: Likewise. + * c-c++-common/gomp/atomic-30.c: Likewise. Adjust expected diagnostics + for C++ when it differs from C. + (foo): Change return type from double to void. + * g++.dg/gomp/atomic-5.C: Adjust expected diagnostics wording. + * g++.dg/gomp/atomic-20.C: New test. + +2021-09-17 H.J. Lu + + * gcc.target/i386/avx-covert-1.c: New file. + * gcc.target/i386/avx-fp-covert-1.c: Likewise. + * gcc.target/i386/avx-int-covert-1.c: Likewise. + * gcc.target/i386/sse-covert-1.c: Likewise. + * gcc.target/i386/sse-fp-covert-1.c: Likewise. + * gcc.target/i386/sse-int-covert-1.c: Likewise. + +2021-09-17 H.J. Lu + + PR target/101900 + * gcc.target/i386/pr101900-1.c: New test. + * gcc.target/i386/pr101900-2.c: Likewise. + * gcc.target/i386/pr101900-3.c: Likewise. + +2021-09-17 Eric Botcazou + + * gcc.target/sparc/20210917-1.c: New test. + +2021-09-17 liuhongt + + * gcc.target/i386/avx512fp16-typecast-1.c: New test. + * gcc.target/i386/avx512fp16-typecast-2.c: Ditto. + * gcc.target/i386/avx512fp16vl-typecast-1.c: Ditto. + * gcc.target/i386/avx512fp16vl-typecast-2.c: Ditto. + +2021-09-17 liuhongt + + * gcc.target/i386/avx512fp16-vcvtsd2sh-1a.c: New test. + * gcc.target/i386/avx512fp16-vcvtsd2sh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsh2sd-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsh2sd-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsh2ss-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsh2ss-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtss2sh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtss2sh-1b.c: Ditto. + +2021-09-17 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-17 liuhongt + + * gcc.target/i386/avx512fp16-helper.h (V512): Add DF contents. + (src3f): New. + * gcc.target/i386/avx512fp16-vcvtpd2ph-1a.c: New test. + * gcc.target/i386/avx512fp16-vcvtpd2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2pd-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2pd-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2psx-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2psx-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtps2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtps2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtpd2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtpd2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2pd-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2pd-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2psx-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2psx-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtps2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtps2ph-1b.c: Ditto. + +2021-09-17 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-17 liuhongt + + * gcc.target/i386/avx512fp16-vcvttsh2si-1a.c: New test. + * gcc.target/i386/avx512fp16-vcvttsh2si-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttsh2si64-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttsh2si64-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttsh2usi-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttsh2usi-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttsh2usi64-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttsh2usi64-1b.c: Ditto. + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-17 liuhongt + + * gcc.target/i386/avx512fp16-vcvttph2dq-1a.c: New test. + * gcc.target/i386/avx512fp16-vcvttph2dq-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttph2qq-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttph2qq-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttph2udq-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttph2udq-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttph2uqq-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttph2uqq-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttph2uw-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttph2uw-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttph2w-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvttph2w-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvttph2dq-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvttph2dq-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvttph2qq-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvttph2qq-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvttph2udq-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvttph2udq-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvttph2uqq-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvttph2uqq-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvttph2uw-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvttph2uw-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvttph2w-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvttph2w-1b.c: Ditto. + +2021-09-17 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-17 liuhongt + + * gcc.target/i386/avx512fp16-helper.h (V512): Add int32 + component. + * gcc.target/i386/avx512fp16-vcvtsh2si-1a.c: New test. + * gcc.target/i386/avx512fp16-vcvtsh2si-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsh2si64-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsh2si64-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsh2usi-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsh2usi-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsh2usi64-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsh2usi64-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsi2sh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsi2sh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsi2sh64-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtsi2sh64-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtusi2sh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtusi2sh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtusi2sh64-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtusi2sh64-1b.c: Ditto. + +2021-09-17 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-16 Patrick Palka + + PR c++/98486 + * g++.dg/cpp2a/concepts-var-templ1.C: New test. + * g++.dg/cpp2a/concepts-var-templ1a.C: New test. + * g++.dg/cpp2a/concepts-var-templ1b.C: New test. + +2021-09-16 Harald Anlauf + + PR fortran/102287 + * gfortran.dg/intent_out_14.f90: New test. + +2021-09-16 Richard Biener + + PR middle-end/102360 + * g++.dg/pr102360.C: New testcase. + +2021-09-16 Richard Earnshaw + + * g++.dg/eh/arm-vfp-unwind.C: Support single-precision. + +2021-09-16 liuhongt + + PR middle-end/102080 + * gcc.target/i386/pr102080.c: New test. + +2021-09-16 liuhongt + + * gcc.target/i386/avx512fp16-vcvtdq2ph-1a.c: New test. + * gcc.target/i386/avx512fp16-vcvtdq2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtqq2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtqq2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtudq2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtudq2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtuqq2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtuqq2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtuw2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtuw2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtw2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtw2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtdq2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtdq2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtqq2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtqq2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtudq2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtudq2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtuqq2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtuqq2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtuw2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtuw2ph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtw2ph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtw2ph-1b.c: Ditto. + +2021-09-16 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-16 liuhongt + + * gcc.target/i386/avx512fp16-helper.h (V512): Add QI + components. + * gcc.target/i386/avx512fp16-vcvtph2dq-1a.c: New test. + * gcc.target/i386/avx512fp16-vcvtph2dq-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2qq-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2qq-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2udq-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2udq-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2uqq-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2uqq-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2uw-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2uw-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2w-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcvtph2w-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2dq-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2dq-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2qq-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2qq-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2udq-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2udq-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2uqq-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2uqq-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2uw-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2uw-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2w-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcvtph2w-1b.c: Ditto. + +2021-09-16 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-16 liuhongt + + * gcc.target/i386/avx512fp16-vmovsh-1a.c: New test. + * gcc.target/i386/avx512fp16-vmovsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vmovw-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vmovw-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vmovw-2a.c: Ditto. + * gcc.target/i386/avx512fp16-vmovw-2b.c: Ditto. + * gcc.target/i386/avx512fp16-vmovw-3a.c: Ditto. + * gcc.target/i386/avx512fp16-vmovw-3b.c: Ditto. + * gcc.target/i386/avx512fp16-vmovw-4a.c: Ditto. + * gcc.target/i386/avx512fp16-vmovw-4b.c: Ditto. + +2021-09-15 Patrick Palka + + PR c++/101904 + * g++.dg/ext/conv2.C: New test. + * g++.dg/template/conv17.C: Extend test. + +2021-09-15 Jakub Jelinek + + PR c++/88578 + PR c++/102295 + * g++.dg/ext/flexary39.C: New test. + * g++.dg/ext/flexary40.C: New test. + +2021-09-15 Patrick Palka + + PR c++/102050 + * g++.dg/cpp0x/initlist125.C: New test. + * g++.dg/cpp0x/initlist126.C: New test. + +2021-09-15 Alexandre Oliva + + * gnat.dg/zcur_attr.adb, gnat.dg/zcur_attr.ads: New. + +2021-09-15 liuhongt + + * gcc.target/i386/pr102327-1.c: New test. + * gcc.target/i386/pr102327-2.c: New test. + * gcc.target/i386/avx512fp16-1c.c: Adjust testcase. + +2021-09-15 Hongyu Wang + + * gcc.target/i386/avx-1.c: Adjust builtin macros. + * gcc.target/i386/sse-13.c: Likewise. + * gcc.target/i386/sse-23.c: Likewise. + +2021-09-15 Richard Biener + + PR tree-optimization/102318 + * gcc.dg/vect/pr102318.c: New testcase. + +2021-09-15 Hongtao Liu + Peter Cordes + + PR target/91103 + * gcc.target/i386/pr91103-1.c: Add extract tests. + * gcc.target/i386/pr91103-2.c: Ditto. + +2021-09-15 Thomas Schwinge + + * gfortran.dg/goacc/unexpected-end.f90: Add OpenACC 'host_data' + testing. + +2021-09-15 Jason Merrill + + PR c++/48396 + * g++.dg/rtti/undeclared1.C: New test. + +2021-09-14 Harald Anlauf + + PR fortran/102311 + * gfortran.dg/entry_25.f90: New test. + +2021-09-14 Peter Bergner + + * gcc.target/powerpc/mma-builtin-6.c: Add second call to xxsetacc + built-in. Update instruction counts. + +2021-09-14 Patrick Palka + + PR c++/102163 + * g++.dg/cpp0x/constexpr-empty17.C: New test. + +2021-09-14 Jakub Jelinek + + PR c++/102295 + * g++.target/i386/pr102295.C: New test. + +2021-09-14 Jakub Jelinek + + PR c++/102305 + * g++.dg/cpp0x/pr102305.C: New test. + +2021-09-14 Tobias Burnus + + PR fortran/102313 + * gfortran.dg/goacc/unexpected-end.f90: New test. + * gfortran.dg/gomp/unexpected-end.f90: New test. + +2021-09-14 Martin Liska + + * g++.dg/gcov/gcov.py: Fix failing pytests as gcov.json.gz + filename was changed in b777f228b481ae881a7fbb09de367a053740932c. + +2021-09-14 Eric Botcazou + + * gnat.dg/enum_rep2.adb: New test. + +2021-09-14 Jakub Jelinek + + * c-c++-common/gomp/atomic-29.c: Add -march=pentium + dg-additional-options for ia32. Use sync_long_long effective target + instead of sync_int_long. + * lib/target-supports.exp (check_effective_target_sync_long_long): Fix + a syntax error. + +2021-09-14 liuhongt + + * gcc.target/i386/avx512fp16-helper.h (V512): + Add xmm component. + * gcc.target/i386/avx512fp16-vfpclassph-1a.c: New test. + * gcc.target/i386/avx512fp16-vfpclassph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vfpclasssh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vfpclasssh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vgetexpph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vgetexpph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vgetexpsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vgetexpsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vgetmantph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vgetmantph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vgetmantsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vgetmantsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfpclassph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vfpclassph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vgetexpph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vgetexpph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vgetmantph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vgetmantph-1b.c: Ditto. + +2021-09-14 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-14 liuhongt + + * gcc.target/i386/avx512fp16-helper.h (_ROUND_CUR): New macro. + * gcc.target/i386/avx512fp16-vreduceph-1a.c: New test. + * gcc.target/i386/avx512fp16-vreduceph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vreducesh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vreducesh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vrndscaleph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vrndscaleph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vrndscalesh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vrndscalesh-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vreduceph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vreduceph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vrndscaleph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vrndscaleph-1b.c: Ditto. + +2021-09-14 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-14 liuhongt + + * gcc.target/i386/avx512fp16-vrcpph-1a.c: New test. + * gcc.target/i386/avx512fp16-vrcpph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vrcpsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vrcpsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vscalefph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vscalefph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vscalefsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vscalefsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vrcpph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vrcpph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vscalefph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vscalefph-1b.c: Ditto. + +2021-09-14 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-14 liuhongt + + * gcc.target/i386/avx512fp16-vrsqrtph-1a.c: New test. + * gcc.target/i386/avx512fp16-vrsqrtph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vrsqrtsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vrsqrtsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vsqrtph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vsqrtph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vsqrtsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vsqrtsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vrsqrtph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vrsqrtph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vsqrtph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vsqrtph-1b.c: Ditto. + +2021-09-14 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-13 Harald Anlauf + + PR fortran/82314 + * gfortran.dg/pr82314.f90: New test. + +2021-09-13 Harald Anlauf + + PR fortran/85130 + * gfortran.dg/substr_6.f90: Revert commit r8-7574, adding again + test that was erroneously considered as illegal. + +2021-09-13 Jason Merrill + + * g++.dg/warn/Winterference.H: New file. + * g++.dg/warn/Winterference.C: New test. + * g++.target/aarch64/interference.C: New test. + * g++.target/arm/interference.C: New test. + * g++.target/i386/interference.C: New test. + * g++.dg/warn/Winterference-2.C: New file. + +2021-09-13 Martin Liska + H.J. Lu + + PR target/101696 + * g++.target/i386/mv30.C: New test. + * gcc.target/i386/mvc16.c: New test. + * gcc.target/i386/builtin_target.c (CHECK___builtin_cpu_supports): + New. + +2021-09-13 Andrew Pinski + + PR target/95969 + * gcc.target/aarch64/lane-bound-1.c: New test. + * gcc.target/aarch64/lane-bound-2.c: New test. + +2021-09-13 Kyrylo Tkachov + + PR target/102252 + * g++.target/aarch64/sve/pr102252.C: New test. + +2021-09-13 Aldy Hernandez + + * gcc.dg/tree-ssa/pr21417.c: Adjust for FSM removal. + * gcc.dg/tree-ssa/pr66752-3.c: Same. + * gcc.dg/tree-ssa/pr68198.c: Same. + * gcc.dg/tree-ssa/pr69196-1.c: Same. + * gcc.dg/tree-ssa/pr70232.c: Same. + * gcc.dg/tree-ssa/pr77445.c: Same. + * gcc.dg/tree-ssa/ranger-threader-4.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-18.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-6.c: Same. + * gcc.dg/tree-ssa/ssa-thread-12.c: Same. + * gcc.dg/tree-ssa/ssa-thread-13.c: Same. + +2021-09-13 Patrick Palka + + PR c++/101764 + * g++.dg/cpp1z/constexpr-if35.C: New test. + +2021-09-13 Martin Liska + + PR c++/101331 + * g++.dg/pr101331.C: New test. + +2021-09-13 Aldy Hernandez + + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust for aarch64. + +2021-09-13 H.J. Lu + + PR target/101935 + * g++.target/i386/pr80566-1.C: Add + -mtune-ctrl=avx256_store_by_pieces. + * gcc.target/i386/pr100865-4a.c: Likewise. + * gcc.target/i386/pr100865-10a.c: Likewise. + * gcc.target/i386/pr90773-20.c: Likewise. + * gcc.target/i386/pr90773-21.c: Likewise. + * gcc.target/i386/pr90773-22.c: Likewise. + * gcc.target/i386/pr90773-23.c: Likewise. + * g++.target/i386/pr80566-2.C: Add + -mtune-ctrl=avx256_move_by_pieces. + * gcc.target/i386/eh_return-1.c: Likewise. + * gcc.target/i386/pr90773-26.c: Likewise. + * gcc.target/i386/pieces-memcpy-12.c: Replace -mtune=haswell + with -mtune-ctrl=avx256_move_by_pieces. + * gcc.target/i386/pieces-memcpy-15.c: Likewise. + * gcc.target/i386/pieces-memset-2.c: Replace -mtune=haswell + with -mtune-ctrl=avx256_store_by_pieces. + * gcc.target/i386/pieces-memset-5.c: Likewise. + * gcc.target/i386/pieces-memset-11.c: Likewise. + * gcc.target/i386/pieces-memset-14.c: Likewise. + * gcc.target/i386/pieces-memset-20.c: Likewise. + * gcc.target/i386/pieces-memset-23.c: Likewise. + * gcc.target/i386/pieces-memset-29.c: Likewise. + * gcc.target/i386/pieces-memset-30.c: Likewise. + * gcc.target/i386/pieces-memset-33.c: Likewise. + * gcc.target/i386/pieces-memset-34.c: Likewise. + * gcc.target/i386/pieces-memset-44.c: Likewise. + * gcc.target/i386/pieces-memset-37.c: Replace -mtune=generic + with -mtune-ctrl=avx256_store_by_pieces. + +2021-09-12 Iain Buclaw + + PR d/102185 + * gdc.dg/pr102185.d: New test. + +2021-09-11 Jakub Jelinek + + * c-c++-common/auto-init-1.c: Enable test only on ilp32 or lp64 + targets, expect different long and pointer sizes between ilp32 and + lp64. + * c-c++-common/auto-init-2.c: Likewise. + * c-c++-common/auto-init-3.c: Expect one of the common long double + sizes (8/12/16 bytes) instead of hardcoding 16 bytes. + * c-c++-common/auto-init-4.c: Likewise. + * c-c++-common/auto-init-5.c: Expect one of the common + _Complex long double sizes (16/24/32 bytes) instead of hardcoding 32 + bytes. + * c-c++-common/auto-init-6.c: Likewise. + * c-c++-common/auto-init-padding-1.c: Enable test only on ilp32 or lp64 + targets. + (struct test_small_hole): Change type of four to unsigned long long + and add aligned attribute. + +2021-09-10 Petter Tomner + + * jit.dg/test-error-array-bounds.c: Array is not unsigned + * jit.dg/jit.exp: Helper function + * jit.dg/test-debuginfo.c: New testcase + +2021-09-10 Jakub Jelinek + + * c-c++-common/gomp/atomic-17.c (foo): Add tests for atomic read, + write or update with acq_rel clause and atomic update with acquire clause. + * c-c++-common/gomp/atomic-18.c (foo): Adjust expected diagnostics + wording, remove tests moved to atomic-17.c. + * c-c++-common/gomp/atomic-21.c: Expect only 2 omp atomic release and + 2 omp atomic acq_rel directives instead of 4 omp atomic release. + * c-c++-common/gomp/atomic-25.c: New test. + * c-c++-common/gomp/atomic-26.c: New test. + * c-c++-common/gomp/atomic-27.c: New test. + * c-c++-common/gomp/atomic-28.c: New test. + * c-c++-common/gomp/atomic-29.c: New test. + * c-c++-common/gomp/atomic-30.c: New test. + * c-c++-common/goacc-gomp/atomic.c: Expect 1 omp atomic release and + 1 omp atomic_acq_rel instead of 2 omp atomic release directives. + * gcc.dg/gomp/atomic-5.c: Adjust expected error diagnostic wording. + * g++.dg/gomp/atomic-18.C:Expect 4 omp atomic release and + 1 omp atomic_acq_rel instead of 5 omp atomic release directives. + +2021-09-10 Aldy Hernandez + Michael Matz + + * gcc.dg/tree-ssa/ssa-dom-thread-2b.c: Adjust for disabling of + threading through latches. + * gcc.dg/tree-ssa/ssa-dom-thread-6.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Same. + +2021-09-10 David Faust + + * gcc.target/bpf/alu-1.c: New test. + * gcc.target/bpf/jmp-1.c: New test. + +2021-09-10 Richard Biener + + PR middle-end/102273 + * gcc.dg/pr102273.c: New testcase. + +2021-09-10 Thomas Schwinge + + * c-c++-common/auto-init-padding-2.c: Fix 'dg-do run' syntax. + * c-c++-common/auto-init-padding-3.c: Likewise. + +2021-09-10 Richard Biener + + PR middle-end/102269 + * gcc.dg/pr102269.c: New testcase. + +2021-09-10 liuhongt + + * gcc.target/i386/avx512fp16-helper.h + (check_results_mask): New check_function. + * gcc.target/i386/avx512fp16-vcmpph-1a.c: New test. + * gcc.target/i386/avx512fp16-vcmpph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcmpsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcmpsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcomish-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vcomish-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vcomish-1c.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcmpph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vcmpph-1b.c: Ditto. + +2021-09-10 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-10 liuhongt + + * gcc.target/i386/avx512fp16-vmaxph-1a.c: New test. + * gcc.target/i386/avx512fp16-vmaxph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vmaxsh-1.c: Ditto. + * gcc.target/i386/avx512fp16-vmaxsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vminph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vminph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vminsh-1.c: Ditto. + * gcc.target/i386/avx512fp16-vminsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vmaxph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vmaxph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vminph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vminph-1b.c: Ditto. + +2021-09-10 liuhongt + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-10 liuhongt + + * gcc.target/i386/avx512fp16-vaddsh-1a.c: New test. + * gcc.target/i386/avx512fp16-vaddsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vdivsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vdivsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vmulsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vmulsh-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vsubsh-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vsubsh-1b.c: Ditto. + * gcc.target/i386/pr54855-11.c: Ditto. + +2021-09-10 Liu, Hongtao + + * gcc.target/i386/avx-1.c: Add test for new builtins. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-10 H.J. Lu + + * gcc.target/i386/vect-float16-1.c: New test. + * gcc.target/i386/vect-float16-10.c: Ditto. + * gcc.target/i386/vect-float16-11.c: Ditto. + * gcc.target/i386/vect-float16-12.c: Ditto. + * gcc.target/i386/vect-float16-2.c: Ditto. + * gcc.target/i386/vect-float16-3.c: Ditto. + * gcc.target/i386/vect-float16-4.c: Ditto. + * gcc.target/i386/vect-float16-5.c: Ditto. + * gcc.target/i386/vect-float16-6.c: Ditto. + * gcc.target/i386/vect-float16-7.c: Ditto. + * gcc.target/i386/vect-float16-8.c: Ditto. + * gcc.target/i386/vect-float16-9.c: Ditto. + +2021-09-10 liuhongt + + * gcc.target/i386/avx512dq-abs-copysign-1.c: Adjust testcase. + * gcc.target/i386/avx512vl-abs-copysign-1.c: Adjust testcase. + +2021-09-09 qing zhao + + * c-c++-common/auto-init-1.c: New test. + * c-c++-common/auto-init-10.c: New test. + * c-c++-common/auto-init-11.c: New test. + * c-c++-common/auto-init-12.c: New test. + * c-c++-common/auto-init-13.c: New test. + * c-c++-common/auto-init-14.c: New test. + * c-c++-common/auto-init-15.c: New test. + * c-c++-common/auto-init-16.c: New test. + * c-c++-common/auto-init-2.c: New test. + * c-c++-common/auto-init-3.c: New test. + * c-c++-common/auto-init-4.c: New test. + * c-c++-common/auto-init-5.c: New test. + * c-c++-common/auto-init-6.c: New test. + * c-c++-common/auto-init-7.c: New test. + * c-c++-common/auto-init-8.c: New test. + * c-c++-common/auto-init-9.c: New test. + * c-c++-common/auto-init-esra.c: New test. + * c-c++-common/auto-init-padding-1.c: New test. + * c-c++-common/auto-init-padding-2.c: New test. + * c-c++-common/auto-init-padding-3.c: New test. + * g++.dg/auto-init-uninit-pred-1_a.C: New test. + * g++.dg/auto-init-uninit-pred-2_a.C: New test. + * g++.dg/auto-init-uninit-pred-3_a.C: New test. + * g++.dg/auto-init-uninit-pred-4.C: New test. + * gcc.dg/auto-init-sra-1.c: New test. + * gcc.dg/auto-init-sra-2.c: New test. + * gcc.dg/auto-init-uninit-1.c: New test. + * gcc.dg/auto-init-uninit-12.c: New test. + * gcc.dg/auto-init-uninit-13.c: New test. + * gcc.dg/auto-init-uninit-14.c: New test. + * gcc.dg/auto-init-uninit-15.c: New test. + * gcc.dg/auto-init-uninit-16.c: New test. + * gcc.dg/auto-init-uninit-17.c: New test. + * gcc.dg/auto-init-uninit-18.c: New test. + * gcc.dg/auto-init-uninit-19.c: New test. + * gcc.dg/auto-init-uninit-2.c: New test. + * gcc.dg/auto-init-uninit-20.c: New test. + * gcc.dg/auto-init-uninit-21.c: New test. + * gcc.dg/auto-init-uninit-22.c: New test. + * gcc.dg/auto-init-uninit-23.c: New test. + * gcc.dg/auto-init-uninit-24.c: New test. + * gcc.dg/auto-init-uninit-25.c: New test. + * gcc.dg/auto-init-uninit-26.c: New test. + * gcc.dg/auto-init-uninit-3.c: New test. + * gcc.dg/auto-init-uninit-34.c: New test. + * gcc.dg/auto-init-uninit-36.c: New test. + * gcc.dg/auto-init-uninit-37.c: New test. + * gcc.dg/auto-init-uninit-4.c: New test. + * gcc.dg/auto-init-uninit-5.c: New test. + * gcc.dg/auto-init-uninit-6.c: New test. + * gcc.dg/auto-init-uninit-8.c: New test. + * gcc.dg/auto-init-uninit-9.c: New test. + * gcc.dg/auto-init-uninit-A.c: New test. + * gcc.dg/auto-init-uninit-B.c: New test. + * gcc.dg/auto-init-uninit-C.c: New test. + * gcc.dg/auto-init-uninit-H.c: New test. + * gcc.dg/auto-init-uninit-I.c: New test. + * gcc.target/aarch64/auto-init-1.c: New test. + * gcc.target/aarch64/auto-init-2.c: New test. + * gcc.target/aarch64/auto-init-3.c: New test. + * gcc.target/aarch64/auto-init-4.c: New test. + * gcc.target/aarch64/auto-init-5.c: New test. + * gcc.target/aarch64/auto-init-6.c: New test. + * gcc.target/aarch64/auto-init-7.c: New test. + * gcc.target/aarch64/auto-init-8.c: New test. + * gcc.target/aarch64/auto-init-padding-1.c: New test. + * gcc.target/aarch64/auto-init-padding-10.c: New test. + * gcc.target/aarch64/auto-init-padding-11.c: New test. + * gcc.target/aarch64/auto-init-padding-12.c: New test. + * gcc.target/aarch64/auto-init-padding-2.c: New test. + * gcc.target/aarch64/auto-init-padding-3.c: New test. + * gcc.target/aarch64/auto-init-padding-4.c: New test. + * gcc.target/aarch64/auto-init-padding-5.c: New test. + * gcc.target/aarch64/auto-init-padding-6.c: New test. + * gcc.target/aarch64/auto-init-padding-7.c: New test. + * gcc.target/aarch64/auto-init-padding-8.c: New test. + * gcc.target/aarch64/auto-init-padding-9.c: New test. + * gcc.target/i386/auto-init-1.c: New test. + * gcc.target/i386/auto-init-2.c: New test. + * gcc.target/i386/auto-init-21.c: New test. + * gcc.target/i386/auto-init-22.c: New test. + * gcc.target/i386/auto-init-23.c: New test. + * gcc.target/i386/auto-init-24.c: New test. + * gcc.target/i386/auto-init-3.c: New test. + * gcc.target/i386/auto-init-4.c: New test. + * gcc.target/i386/auto-init-5.c: New test. + * gcc.target/i386/auto-init-6.c: New test. + * gcc.target/i386/auto-init-7.c: New test. + * gcc.target/i386/auto-init-8.c: New test. + * gcc.target/i386/auto-init-padding-1.c: New test. + * gcc.target/i386/auto-init-padding-10.c: New test. + * gcc.target/i386/auto-init-padding-11.c: New test. + * gcc.target/i386/auto-init-padding-12.c: New test. + * gcc.target/i386/auto-init-padding-2.c: New test. + * gcc.target/i386/auto-init-padding-3.c: New test. + * gcc.target/i386/auto-init-padding-4.c: New test. + * gcc.target/i386/auto-init-padding-5.c: New test. + * gcc.target/i386/auto-init-padding-6.c: New test. + * gcc.target/i386/auto-init-padding-7.c: New test. + * gcc.target/i386/auto-init-padding-8.c: New test. + * gcc.target/i386/auto-init-padding-9.c: New test. + +2021-09-09 Harald Anlauf + + PR fortran/98490 + * gfortran.dg/bounds_check_23.f90: New test. + +2021-09-09 H.J. Lu + + * gcc.target/x86_64/abi/avx512fp16/args.h: Replace long with + long long. + (XMM_T): Rename _long to _longlong and _ulong to _ulonglong. + (X87_T): Rename _ulong to _ulonglong. + * gcc.target/x86_64/abi/avx512fp16/defines.h (TYPE_SIZE_LONG): + Define to 4 if __ILP32__ is defined. + (TYPE_SIZE_POINTER): Likewise. + (TYPE_ALIGN_LONG): Likewise. + (TYPE_ALIGN_POINTER): Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_3_element_struct_and_unions.c + (main): Skip test for long if __ILP32__ is defined. + * gcc.target/x86_64/abi/avx512fp16/test_m64m128_returning.c + (do_test): Replace _long with _longlong. + * gcc.target/x86_64/abi/avx512fp16/test_struct_returning.c: + (check_300): Replace _ulong with _ulonglong. + * gcc.target/x86_64/abi/avx512fp16/m256h/args.h: Replace long + with long long. + (YMM_T): Rename _long to _longlong and _ulong to _ulonglong. + (X87_T): Rename _ulong to _ulonglong. + * gcc.target/x86_64/abi/avx512fp16/m512h/args.h: Replace long + with long long. + (ZMM_T): Rename _long to _longlong and _ulong to _ulonglong. + (X87_T): Rename _ulong to _ulonglong. + +2021-09-09 Richard Biener + + * gcc.dg/tree-ssa/ssa-lim-17.c: New testcase. + +2021-09-09 liuhongt + + * gcc.target/i386/avx512fp16-helper.h: New header file for + FP16 runtime test. + * gcc.target/i386/avx512fp16-vaddph-1a.c: New test. + * gcc.target/i386/avx512fp16-vaddph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vdivph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vdivph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vmulph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vmulph-1b.c: Ditto. + * gcc.target/i386/avx512fp16-vsubph-1a.c: Ditto. + * gcc.target/i386/avx512fp16-vsubph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vaddph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vaddph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vdivph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vdivph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vmulph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vmulph-1b.c: Ditto. + * gcc.target/i386/avx512fp16vl-vsubph-1a.c: Ditto. + * gcc.target/i386/avx512fp16vl-vsubph-1b.c: Ditto. + +2021-09-09 liuhongt + + * gcc.target/i386/avx-1.c: Add -mavx512vl and test for new intrinsics. + * gcc.target/i386/avx-2.c: Add -mavx512vl. + * gcc.target/i386/avx512fp16-11a.c: New test. + * gcc.target/i386/avx512fp16-11b.c: Ditto. + * gcc.target/i386/avx512vlfp16-11a.c: Ditto. + * gcc.target/i386/avx512vlfp16-11b.c: Ditto. + * gcc.target/i386/sse-13.c: Add test for new builtins. + * gcc.target/i386/sse-23.c: Ditto. + * gcc.target/i386/sse-14.c: Add test for new intrinsics. + * gcc.target/i386/sse-22.c: Ditto. + +2021-09-09 liuhongt + + PR target/101059 + * gcc.target/i386/sse2-pr101059.c: New test. + * gcc.target/i386/sse3-pr101059.c: New test. + +2021-09-09 liuhongt + + PR target/91103 + * gcc.target/i386/pr91103-1.c: New test. + * gcc.target/i386/pr91103-2.c: New test. + +2021-09-08 David Malcolm + + PR analyzer/102225 + * gcc.dg/analyzer/realloc-1.c (test_10): New. + * gcc.dg/analyzer/torture/pr102225.c: New test. + +2021-09-08 Joseph Myers + + * gcc.dg/array-quals-1.c: Allow .sdata section in more cases. + +2021-09-08 Joseph Myers + + * gcc.dg/tree-ssa/pr89430-1.c, gcc.dg/tree-ssa/pr89430-2.c, + gcc.dg/tree-ssa/pr89430-3.c, gcc.dg/tree-ssa/pr89430-4.c, + gcc.dg/tree-ssa/pr89430-5.c, gcc.dg/tree-ssa/pr89430-6.c, + gcc.dg/tree-ssa/pr89430-7-comp-ref.c, + gcc.dg/tree-ssa/pr89430-8-mem-ref-size.c, + gcc.dg/tree-ssa/pr99473-1.c: Use -ftree-cselim. + +2021-09-08 Jakub Jelinek + liuhongt + + PR target/89984 + * gcc.target/i386/avx-pr102224.c: Fix up PR number. + * gcc.dg/pr89984.c: New test. + * gcc.target/i386/avx-pr89984.c: New test. + +2021-09-08 Jakub Jelinek + + PR target/102224 + * gcc.dg/pr102224.c: New test. + * gcc.target/i386/avx-pr102224.c: New test. + +2021-09-08 liuhongt + + * gcc.target/x86_64/abi/avx512fp16/m512h/abi-avx512fp16-zmm.exp: + New file. + * gcc.target/x86_64/abi/avx512fp16/m512h/args.h: Likewise. + * gcc.target/x86_64/abi/avx512fp16/m512h/asm-support.S: Likewise. + * gcc.target/x86_64/abi/avx512fp16/m512h/avx512fp16-zmm-check.h: + Likewise. + * gcc.target/x86_64/abi/avx512fp16/m512h/test_m512_returning.c: + Likewise. + * gcc.target/x86_64/abi/avx512fp16/m512h/test_passing_m512.c: + Likewise. + * gcc.target/x86_64/abi/avx512fp16/m512h/test_passing_structs.c: + Likewise. + * gcc.target/x86_64/abi/avx512fp16/m512h/test_passing_unions.c: + Likewise. + * gcc.target/x86_64/abi/avx512fp16/m512h/test_varargs-m512.c: + Likewise. + +2021-09-08 liuhongt + + * gcc.target/x86_64/abi/avx512fp16/m256h/abi-avx512fp16-ymm.exp: + New exp file. + * gcc.target/x86_64/abi/avx512fp16/m256h/args.h: New header. + * gcc.target/x86_64/abi/avx512fp16/m256h/avx512fp16-ymm-check.h: + Likewise. + * gcc.target/x86_64/abi/avx512fp16/m256h/asm-support.S: New. + * gcc.target/x86_64/abi/avx512fp16/m256h/test_m256_returning.c: + New test. + * gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_m256.c: Likewise. + * gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_structs.c: + Likewise. + * gcc.target/x86_64/abi/avx512fp16/m256h/test_passing_unions.c: + Likewise. + * gcc.target/x86_64/abi/avx512fp16/m256h/test_varargs-m256.c: Likewise. + +2021-09-08 H.J. Lu + + * gcc.target/x86_64/abi/avx512fp16/abi-avx512fp16-xmm.exp: New exp + file for abi test. + * gcc.target/x86_64/abi/avx512fp16/args.h: New header file for abi test. + * gcc.target/x86_64/abi/avx512fp16/avx512fp16-check.h: Likewise. + * gcc.target/x86_64/abi/avx512fp16/avx512fp16-xmm-check.h: Likewise. + * gcc.target/x86_64/abi/avx512fp16/defines.h: Likewise. + * gcc.target/x86_64/abi/avx512fp16/macros.h: Likewise. + * gcc.target/x86_64/abi/avx512fp16/asm-support.S: New asm for abi check. + * gcc.target/x86_64/abi/avx512fp16/test_3_element_struct_and_unions.c: + New test. + * gcc.target/x86_64/abi/avx512fp16/test_basic_alignment.c: Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_basic_array_size_and_align.c: + Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_basic_returning.c: Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_basic_sizes.c: Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_basic_struct_size_and_align.c: + Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_basic_union_size_and_align.c: + Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_complex_returning.c: Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_m64m128_returning.c: Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_passing_floats.c: Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_passing_m64m128.c: Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_passing_structs.c: Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_passing_unions.c: Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_struct_returning.c: Likewise. + * gcc.target/x86_64/abi/avx512fp16/test_varargs-m128.c: Likewise. + +2021-09-08 H.J. Lu + + * gcc.target/i386/avx512fp16-vararg-1.c: New test. + * gcc.target/i386/avx512fp16-vararg-2.c: Ditto. + * gcc.target/i386/avx512fp16-vararg-3.c: Ditto. + * gcc.target/i386/avx512fp16-vararg-4.c: Ditto. + +2021-09-08 liuhongt + + * gcc.target/i386/m512-check.h: Add union128h, union256h, union512h. + * gcc.target/i386/avx512fp16-10a.c: New test. + * gcc.target/i386/avx512fp16-10b.c: Ditto. + * gcc.target/i386/avx512fp16-1a.c: Ditto. + * gcc.target/i386/avx512fp16-1b.c: Ditto. + * gcc.target/i386/avx512fp16-1c.c: Ditto. + * gcc.target/i386/avx512fp16-1d.c: Ditto. + * gcc.target/i386/avx512fp16-1e.c: Ditto. + * gcc.target/i386/avx512fp16-2a.c: Ditto. + * gcc.target/i386/avx512fp16-2b.c: Ditto. + * gcc.target/i386/avx512fp16-2c.c: Ditto. + * gcc.target/i386/avx512fp16-3a.c: Ditto. + * gcc.target/i386/avx512fp16-3b.c: Ditto. + * gcc.target/i386/avx512fp16-3c.c: Ditto. + * gcc.target/i386/avx512fp16-4.c: Ditto. + * gcc.target/i386/avx512fp16-5.c: Ditto. + * gcc.target/i386/avx512fp16-6.c: Ditto. + * gcc.target/i386/avx512fp16-7.c: Ditto. + * gcc.target/i386/avx512fp16-8.c: Ditto. + * gcc.target/i386/avx512fp16-9a.c: Ditto. + * gcc.target/i386/avx512fp16-9b.c: Ditto. + * gcc.target/i386/pr54855-13.c: Ditto. + * gcc.target/i386/avx512fp16-vec_set_var.c: Ditto. + +2021-09-08 Guo, Xuepeng + H.J. Lu + Liu Hongtao + Wang Hongyu + Xu Dianhong + + * gcc.target/i386/avx-1.c: Add -mavx512fp16 in dg-options. + * gcc.target/i386/avx-2.c: Ditto. + * gcc.target/i386/avx512-check.h: Check cpuid for AVX512FP16. + * gcc.target/i386/funcspec-56.inc: Add new target attribute check. + * gcc.target/i386/sse-13.c: Add -mavx512fp16. + * gcc.target/i386/sse-14.c: Ditto. + * gcc.target/i386/sse-22.c: Ditto. + * gcc.target/i386/sse-23.c: Ditto. + * lib/target-supports.exp: (check_effective_target_avx512fp16): New. + * g++.target/i386/float16-1.C: New test. + * g++.target/i386/float16-2.C: Ditto. + * g++.target/i386/float16-3.C: Ditto. + * gcc.target/i386/avx512fp16-12a.c: Ditto. + * gcc.target/i386/avx512fp16-12b.c: Ditto. + * gcc.target/i386/float16-3a.c: Ditto. + * gcc.target/i386/float16-3b.c: Ditto. + * gcc.target/i386/float16-4a.c: Ditto. + * gcc.target/i386/float16-4b.c: Ditto. + * gcc.target/i386/pr54855-12.c: Ditto. + * g++.dg/other/i386-2.C: Ditto. + * g++.dg/other/i386-3.C: Ditto. + +2021-09-08 liuhongt + + * gcc.target/i386/float16-6.c: New test. + * gcc.target/i386/float16-7.c: New test. + +2021-09-07 David Faust + + * gcc.target/bpf/core-attr-1.c: New test. + * gcc.target/bpf/core-attr-2.c: Likewise. + * gcc.target/bpf/core-attr-3.c: Likewise. + * gcc.target/bpf/core-attr-4.c: Likewise + * gcc.target/bpf/core-builtin-1.c: Likewise + * gcc.target/bpf/core-builtin-2.c: Likewise. + * gcc.target/bpf/core-builtin-3.c: Likewise. + * gcc.target/bpf/core-section-1.c: Likewise. + +2021-09-07 Hans-Peter Nilsson + + * gcc.dg/no_profile_instrument_function-attr-2.c: Fix + typo in last change. + +2021-09-07 Harald Anlauf + + PR fortran/101327 + * gfortran.dg/pr101327.f90: New test. + +2021-09-07 Indu Bhagat + + * gcc.target/bpf/core-lto-1.c: New test. + +2021-09-07 Jakub Jelinek + + PR c++/100495 + * g++.dg/cpp2a/constexpr-new21.C: New test. + +2021-09-07 H.J. Lu + + PR target/85819 + * gcc.target/i386/pr85819-1a.c: New test. + * gcc.target/i386/pr85819-1b.c: Likewise. + * gcc.target/i386/pr85819-2a.c: Likewise. + * gcc.target/i386/pr85819-2b.c: Likewise. + * gcc.target/i386/pr85819-2c.c: Likewise. + * gcc.target/i386/pr85819-3.c: Likewise. + +2021-09-07 Richard Biener + + PR tree-optimization/102226 + * g++.dg/vect/pr102226.cc: New testcase. + +2021-09-07 Marcel Vollweiler + + * c-c++-common/gomp/flush-1.c: Add test case for 'seq_cst'. + * c-c++-common/gomp/flush-2.c: Add test case for 'seq_cst'. + * g++.dg/gomp/attrs-1.C: Adapt test to handle all flush clauses. + * g++.dg/gomp/attrs-2.C: Adapt test to handle all flush clauses. + * gfortran.dg/gomp/flush-1.f90: Add test case for 'seq_cst'. + * gfortran.dg/gomp/flush-2.f90: Add test case for 'seq_cst'. + +2021-09-07 Martin Liska + + PR gcov-profile/80223 + * gcc.dg/no_profile_instrument_function-attr-2.c: New test. + +2021-09-07 Xionghu Luo + + PR target/97142 + * gcc.target/powerpc/pr97142.c: New test. + +2021-09-06 H.J. Lu + + PR target/89984 + * gcc.target/i386/pr89984-1.c: New test. + * gcc.target/i386/pr89984-2.c: Likewise. + * gcc.target/i386/xorsign-avx.c: Likewise. + +2021-09-06 liuhongt + + PR middle-end/102182 + * gcc.target/i386/pr101282.c: New test. + +2021-09-06 Jakub Jelinek + + PR tree-optimization/102207 + * gcc.dg/pr102207.c: New test. + +2021-09-06 Andrew Pinski + + PR tree-optimization/63184 + * c-c++-common/pr19807-2.c: Enable for all targets and remove the xfail. + * c-c++-common/pr19807-3.c: Likewise. + +2021-09-03 Patrick Palka + + PR c++/101904 + * g++.dg/template/conv17.C: New test. + +2021-09-03 Tobias Burnus + + * gfortran.dg/bind_c_char_6.f90: Update dg-error. + * gfortran.dg/bind_c_char_7.f90: Likewise. + * gfortran.dg/bind_c_char_8.f90: Likewise. + * gfortran.dg/iso_c_binding_char_1.f90: Likewise. + * gfortran.dg/pr32599.f03: Likewise. + * gfortran.dg/bind_c_char_9.f90: Comment testcase bits which are + implementable but not valid F2018. + * gfortran.dg/bind_c_contiguous.f90: New test. + +2021-09-03 liuhongt + + PR target/102166 + * g++.target/i386/pr102166.C: New test. + +2021-09-02 Sandra Loosemore + José Rui Faustino de Sousa + + PR fortran/100911 + PR fortran/100915 + PR fortran/100916 + * gfortran.dg/PR100911.c: New file. + * gfortran.dg/PR100911.f90: New file. + * gfortran.dg/PR100914.c: New file. + * gfortran.dg/PR100914.f90: New file. + * gfortran.dg/PR100915.c: New file. + * gfortran.dg/PR100915.f90: New file. + +2021-09-02 Sandra Loosemore + + * gfortran.dg/c-interop/allocatable-dummy-c.c: New file. + * gfortran.dg/c-interop/allocatable-dummy.f90: New file. + * gfortran.dg/c-interop/allocatable-optional-pointer.f90: New file. + * gfortran.dg/c-interop/allocate-c.c: New file. + * gfortran.dg/c-interop/allocate-errors-c.c: New file. + * gfortran.dg/c-interop/allocate-errors.f90: New file. + * gfortran.dg/c-interop/allocate.f90: New file. + * gfortran.dg/c-interop/argument-association-assumed-rank-1.f90: + New file. + * gfortran.dg/c-interop/argument-association-assumed-rank-2.f90: + New file. + * gfortran.dg/c-interop/argument-association-assumed-rank-3.f90: + New file. + * gfortran.dg/c-interop/argument-association-assumed-rank-4.f90: + New file. + * gfortran.dg/c-interop/argument-association-assumed-rank-5.f90: + New file. + * gfortran.dg/c-interop/argument-association-assumed-rank-6.f90: + New file. + * gfortran.dg/c-interop/argument-association-assumed-rank-7.f90: + New file. + * gfortran.dg/c-interop/argument-association-assumed-rank-8.f90: + New file. + * gfortran.dg/c-interop/assumed-type-dummy.f90: New file. + * gfortran.dg/c-interop/c-interop.exp: New file. + * gfortran.dg/c-interop/c1255-1.f90: New file. + * gfortran.dg/c-interop/c1255-2.f90: New file. + * gfortran.dg/c-interop/c1255a.f90: New file. + * gfortran.dg/c-interop/c407a-1.f90: New file. + * gfortran.dg/c-interop/c407a-2.f90: New file. + * gfortran.dg/c-interop/c407b-1.f90: New file. + * gfortran.dg/c-interop/c407b-2.f90: New file. + * gfortran.dg/c-interop/c407c-1.f90: New file. + * gfortran.dg/c-interop/c516.f90: New file. + * gfortran.dg/c-interop/c524a.f90: New file. + * gfortran.dg/c-interop/c535a-1.f90: New file. + * gfortran.dg/c-interop/c535a-2.f90: New file. + * gfortran.dg/c-interop/c535b-1.f90: New file. + * gfortran.dg/c-interop/c535b-2.f90: New file. + * gfortran.dg/c-interop/c535b-3.f90: New file. + * gfortran.dg/c-interop/c535c-1.f90: New file. + * gfortran.dg/c-interop/c535c-2.f90: New file. + * gfortran.dg/c-interop/c535c-3.f90: New file. + * gfortran.dg/c-interop/c535c-4.f90: New file. + * gfortran.dg/c-interop/cf-descriptor-1-c.c: New file. + * gfortran.dg/c-interop/cf-descriptor-1.f90: New file. + * gfortran.dg/c-interop/cf-descriptor-2-c.c: New file. + * gfortran.dg/c-interop/cf-descriptor-2.f90: New file. + * gfortran.dg/c-interop/cf-descriptor-3-c.c: New file. + * gfortran.dg/c-interop/cf-descriptor-3.f90: New file. + * gfortran.dg/c-interop/cf-descriptor-4-c.c: New file. + * gfortran.dg/c-interop/cf-descriptor-4.f90: New file. + * gfortran.dg/c-interop/cf-descriptor-5-c.c: New file. + * gfortran.dg/c-interop/cf-descriptor-5.f90: New file. + * gfortran.dg/c-interop/cf-descriptor-6-c.c: New file. + * gfortran.dg/c-interop/cf-descriptor-6.f90: New file. + * gfortran.dg/c-interop/cf-descriptor-7-c.c: New file. + * gfortran.dg/c-interop/cf-descriptor-7.f90: New file. + * gfortran.dg/c-interop/cf-descriptor-8-c.c: New file. + * gfortran.dg/c-interop/cf-descriptor-8.f90: New file. + * gfortran.dg/c-interop/cf-out-descriptor-1-c.c: New file. + * gfortran.dg/c-interop/cf-out-descriptor-1.f90: New file. + * gfortran.dg/c-interop/cf-out-descriptor-2-c.c: New file. + * gfortran.dg/c-interop/cf-out-descriptor-2.f90: New file. + * gfortran.dg/c-interop/cf-out-descriptor-3-c.c: New file. + * gfortran.dg/c-interop/cf-out-descriptor-3.f90: New file. + * gfortran.dg/c-interop/cf-out-descriptor-4-c.c: New file. + * gfortran.dg/c-interop/cf-out-descriptor-4.f90: New file. + * gfortran.dg/c-interop/cf-out-descriptor-5-c.c: New file. + * gfortran.dg/c-interop/cf-out-descriptor-5.f90: New file. + * gfortran.dg/c-interop/cf-out-descriptor-6-c.c: New file. + * gfortran.dg/c-interop/cf-out-descriptor-6.f90: New file. + * gfortran.dg/c-interop/contiguous-1-c.c: New file. + * gfortran.dg/c-interop/contiguous-1.f90: New file. + * gfortran.dg/c-interop/contiguous-2-c.c: New file. + * gfortran.dg/c-interop/contiguous-2.f90: New file. + * gfortran.dg/c-interop/contiguous-3-c.c: New file. + * gfortran.dg/c-interop/contiguous-3.f90: New file. + * gfortran.dg/c-interop/deferred-character-1.f90: New file. + * gfortran.dg/c-interop/deferred-character-2.f90: New file. + * gfortran.dg/c-interop/dump-descriptors.c: New file. + * gfortran.dg/c-interop/dump-descriptors.h: New file. + * gfortran.dg/c-interop/establish-c.c: New file. + * gfortran.dg/c-interop/establish-errors-c.c: New file. + * gfortran.dg/c-interop/establish-errors.f90: New file. + * gfortran.dg/c-interop/establish.f90: New file. + * gfortran.dg/c-interop/explicit-interface.f90: New file. + * gfortran.dg/c-interop/fc-descriptor-1-c.c: New file. + * gfortran.dg/c-interop/fc-descriptor-1.f90: New file. + * gfortran.dg/c-interop/fc-descriptor-2-c.c: New file. + * gfortran.dg/c-interop/fc-descriptor-2.f90: New file. + * gfortran.dg/c-interop/fc-descriptor-3-c.c: New file. + * gfortran.dg/c-interop/fc-descriptor-3.f90: New file. + * gfortran.dg/c-interop/fc-descriptor-4-c.c: New file. + * gfortran.dg/c-interop/fc-descriptor-4.f90: New file. + * gfortran.dg/c-interop/fc-descriptor-5-c.c: New file. + * gfortran.dg/c-interop/fc-descriptor-5.f90: New file. + * gfortran.dg/c-interop/fc-descriptor-6-c.c: New file. + * gfortran.dg/c-interop/fc-descriptor-6.f90: New file. + * gfortran.dg/c-interop/fc-descriptor-7-c.c: New file. + * gfortran.dg/c-interop/fc-descriptor-7.f90: New file. + * gfortran.dg/c-interop/fc-descriptor-8-c.c: New file. + * gfortran.dg/c-interop/fc-descriptor-8.f90: New file. + * gfortran.dg/c-interop/fc-descriptor-9-c.c: New file. + * gfortran.dg/c-interop/fc-descriptor-9.f90: New file. + * gfortran.dg/c-interop/fc-out-descriptor-1-c.c: New file. + * gfortran.dg/c-interop/fc-out-descriptor-1.f90: New file. + * gfortran.dg/c-interop/fc-out-descriptor-2-c.c: New file. + * gfortran.dg/c-interop/fc-out-descriptor-2.f90: New file. + * gfortran.dg/c-interop/fc-out-descriptor-3-c.c: New file. + * gfortran.dg/c-interop/fc-out-descriptor-3.f90: New file. + * gfortran.dg/c-interop/fc-out-descriptor-4-c.c: New file. + * gfortran.dg/c-interop/fc-out-descriptor-4.f90: New file. + * gfortran.dg/c-interop/fc-out-descriptor-5-c.c: New file. + * gfortran.dg/c-interop/fc-out-descriptor-5.f90: New file. + * gfortran.dg/c-interop/fc-out-descriptor-6-c.c: New file. + * gfortran.dg/c-interop/fc-out-descriptor-6.f90: New file. + * gfortran.dg/c-interop/fc-out-descriptor-7-c.c: New file. + * gfortran.dg/c-interop/fc-out-descriptor-7.f90: New file. + * gfortran.dg/c-interop/ff-descriptor-1.f90: New file. + * gfortran.dg/c-interop/ff-descriptor-2.f90: New file. + * gfortran.dg/c-interop/ff-descriptor-3.f90: New file. + * gfortran.dg/c-interop/ff-descriptor-4.f90: New file. + * gfortran.dg/c-interop/ff-descriptor-5.f90: New file. + * gfortran.dg/c-interop/ff-descriptor-6.f90: New file. + * gfortran.dg/c-interop/ff-descriptor-7.f90: New file. + * gfortran.dg/c-interop/note-5-3.f90: New file. + * gfortran.dg/c-interop/note-5-4-c.c: New file. + * gfortran.dg/c-interop/note-5-4.f90: New file. + * gfortran.dg/c-interop/optional-c.c: New file. + * gfortran.dg/c-interop/optional.f90: New file. + * gfortran.dg/c-interop/rank-class.f90: New file. + * gfortran.dg/c-interop/rank.f90: New file. + * gfortran.dg/c-interop/removed-restrictions-1.f90: New file. + * gfortran.dg/c-interop/removed-restrictions-2.f90: New file. + * gfortran.dg/c-interop/removed-restrictions-3.f90: New file. + * gfortran.dg/c-interop/removed-restrictions-4.f90: New file. + * gfortran.dg/c-interop/section-1-c.c: New file. + * gfortran.dg/c-interop/section-1.f90: New file. + * gfortran.dg/c-interop/section-1p.f90: New file. + * gfortran.dg/c-interop/section-2-c.c: New file. + * gfortran.dg/c-interop/section-2.f90: New file. + * gfortran.dg/c-interop/section-2p.f90: New file. + * gfortran.dg/c-interop/section-3-c.c: New file. + * gfortran.dg/c-interop/section-3.f90: New file. + * gfortran.dg/c-interop/section-3p.f90: New file. + * gfortran.dg/c-interop/section-4-c.c: New file. + * gfortran.dg/c-interop/section-4.f90: New file. + * gfortran.dg/c-interop/section-errors-c.c: New file. + * gfortran.dg/c-interop/section-errors.f90: New file. + * gfortran.dg/c-interop/select-c.c: New file. + * gfortran.dg/c-interop/select-errors-c.c: New file. + * gfortran.dg/c-interop/select-errors.f90: New file. + * gfortran.dg/c-interop/select.f90: New file. + * gfortran.dg/c-interop/setpointer-c.c: New file. + * gfortran.dg/c-interop/setpointer-errors-c.c: New file. + * gfortran.dg/c-interop/setpointer-errors.f90: New file. + * gfortran.dg/c-interop/setpointer.f90: New file. + * gfortran.dg/c-interop/shape.f90: New file. + * gfortran.dg/c-interop/size.f90: New file. + * gfortran.dg/c-interop/tkr.f90: New file. + * gfortran.dg/c-interop/typecodes-array-basic-c.c: New file. + * gfortran.dg/c-interop/typecodes-array-basic.f90: New file. + * gfortran.dg/c-interop/typecodes-array-char-c.c: New file. + * gfortran.dg/c-interop/typecodes-array-char.f90: New file. + * gfortran.dg/c-interop/typecodes-array-float128-c.c: New file. + * gfortran.dg/c-interop/typecodes-array-float128.f90: New file. + * gfortran.dg/c-interop/typecodes-array-int128-c.c: New file. + * gfortran.dg/c-interop/typecodes-array-int128.f90: New file. + * gfortran.dg/c-interop/typecodes-array-longdouble-c.c: New file. + * gfortran.dg/c-interop/typecodes-array-longdouble.f90: New file. + * gfortran.dg/c-interop/typecodes-sanity-c.c: New file. + * gfortran.dg/c-interop/typecodes-sanity.f90: New file. + * gfortran.dg/c-interop/typecodes-scalar-basic-c.c: New file. + * gfortran.dg/c-interop/typecodes-scalar-basic.f90: New file. + * gfortran.dg/c-interop/typecodes-scalar-float128-c.c: New file. + * gfortran.dg/c-interop/typecodes-scalar-float128.f90: New file. + * gfortran.dg/c-interop/typecodes-scalar-int128-c.c: New file. + * gfortran.dg/c-interop/typecodes-scalar-int128.f90: New file. + * gfortran.dg/c-interop/typecodes-scalar-longdouble-c.c: New file. + * gfortran.dg/c-interop/typecodes-scalar-longdouble.f90: New file. + * gfortran.dg/c-interop/ubound.f90: New file. + * lib/target-supports.exp + (check_effective_target_fortran_real_c_float128): New function. + +2021-09-02 Martin Sebor + + PR tree-optimization/17506 + PR testsuite/37182 + * gcc.dg/diagnostic-tree-expr-ranges-2.c: Add expected output. + * gcc.dg/uninit-15-O0.c: Remove xfail. + * gcc.dg/uninit-15.c: Same. + +2021-09-02 Marcel Vollweiler + + * gfortran.dg/gomp/target-device-ancestor-4.f90: Comment out dg-final to avoid + UNRESOLVED. + +2021-09-02 Richard Biener + + * gcc.dg/tree-ssa/ssa-lim-16.c: New testcase. + +2021-09-02 Jakub Jelinek + + PR tree-optimization/99591 + * gcc.target/i386/pr99591.c: New test. + * gcc.target/i386/pr97950.c: Match or reject setb or jn?b instructions + together with seta or jn?a. + +2021-09-02 liuhongt + + * gcc.target/i386/sse2-float16-1.c: New test. + * gcc.target/i386/sse2-float16-2.c: Ditto. + * gcc.target/i386/sse2-float16-3.c: Ditto. + * gcc.target/i386/float16-5.c: New test. + +2021-09-01 Jeff Law + + PR tree-optimization/102152 + * gcc.dg/pr102152.c: New test + +2021-09-01 Andrew Pinski + + PR target/101934 + * gcc.target/aarch64/memset-strict-align-1.c: New test. + +2021-09-01 Jakub Jelinek + + PR c++/100977 + * g++.dg/cpp23/normalize1.C: New test. + * g++.dg/cpp23/normalize2.C: New test. + * g++.dg/cpp23/normalize3.C: New test. + * g++.dg/cpp23/normalize4.C: New test. + * g++.dg/cpp23/normalize5.C: New test. + * g++.dg/cpp23/normalize6.C: New test. + * g++.dg/cpp23/normalize7.C: New test. + * g++.dg/cpp23/ucnid-1-utf8.C: New test. + * g++.dg/cpp23/ucnid-2-utf8.C: New test. + * gcc.dg/cpp/ucnid-4.c: Don't expect + "not valid at the start of an identifier" errors. + * gcc.dg/cpp/ucnid-4-utf8.c: Likewise. + * gcc.dg/cpp/ucnid-5-utf8.c: New test. + +2021-09-01 Andrew Pinski + + PR testsuite/51748 + * gcc.misc-tests/linkage.exp: Add mips*-linux-* support. + +2021-09-01 Martin Sebor + + * gcc.dg/Wstringop-overflow-11.c: Remove xfails. + * gcc.dg/Wstringop-overflow-12.c: Same. + * gcc.dg/Wstringop-overflow-43.c: Add xfails. + * gcc.dg/Wstringop-overflow-73.c: New test. + +2021-09-01 Jakub Jelinek + + PR preprocessor/101488 + * c-c++-common/cpp/va-opt-3.c: Adjust expected output. + * c-c++-common/cpp/va-opt-7.c: New test. + +2021-09-01 Marek Polacek + + PR c++/101592 + * g++.dg/warn/Wlogical-op-3.C: New test. + +2021-09-01 Iain Sandoe + + * g++.dg/ext/attr-unavailable-1.C: New test. + * g++.dg/ext/attr-unavailable-2.C: New test. + * g++.dg/ext/attr-unavailable-3.C: New test. + * g++.dg/ext/attr-unavailable-4.C: New test. + * g++.dg/ext/attr-unavailable-5.C: New test. + * g++.dg/ext/attr-unavailable-6.C: New test. + * g++.dg/ext/attr-unavailable-7.C: New test. + * g++.dg/ext/attr-unavailable-8.C: New test. + * g++.dg/ext/attr-unavailable-9.C: New test. + * gcc.dg/attr-unavailable-1.c: New test. + * gcc.dg/attr-unavailable-2.c: New test. + * gcc.dg/attr-unavailable-3.c: New test. + * gcc.dg/attr-unavailable-4.c: New test. + * gcc.dg/attr-unavailable-5.c: New test. + * gcc.dg/attr-unavailable-6.c: New test. + * obj-c++.dg/attributes/method-unavailable-1.mm: New test. + * obj-c++.dg/attributes/method-unavailable-2.mm: New test. + * obj-c++.dg/attributes/method-unavailable-3.mm: New test. + * obj-c++.dg/property/at-property-unavailable-1.mm: New test. + * obj-c++.dg/property/at-property-unavailable-2.mm: New test. + * obj-c++.dg/property/dotsyntax-unavailable-1.mm: New test. + * objc.dg/attributes/method-unavailable-1.m: New test. + * objc.dg/attributes/method-unavailable-2.m: New test. + * objc.dg/attributes/method-unavailable-3.m: New test. + * objc.dg/property/at-property-unavailable-1.m: New test. + * objc.dg/property/at-property-unavailable-2.m: New test. + * objc.dg/property/dotsyntax-unavailable-1.m: New test. + +2021-09-01 Jakub Jelinek + + PR tree-optimization/102124 + * gcc.dg/torture/pr102124.c: New test. + +2021-09-01 Richard Biener + + PR tree-optimization/93491 + * gcc.dg/torture/pr93491.c: New testcase. + * gcc.dg/tree-ssa/pr88087.c: Change to valid PRE opportunity. + +2021-09-01 Richard Biener + + PR tree-optimization/102139 + * gcc.dg/torture/pr102139.c: New testcase. + +2021-09-01 Jakub Jelinek + + PR tree-optimization/102141 + * gcc.dg/pr102141.c: New test. + +2021-09-01 Richard Biener + + PR tree-optimization/102149 + * gcc.dg/torture/pr102149.c: New testcase. + +2021-09-01 Roger Sayle + Joseph Myers + + PR c/79412 + * gcc.dg/pr79412.c: New test case. + * gcc.dg/typedef-var-2.c: Update expeted errors. + +2021-08-31 Harald Anlauf + + PR fortran/100950 + * gfortran.dg/pr100950.f90: Extend coverage. + +2021-08-31 Patrick Palka + + PR c++/12672 + * g++.dg/cpp0x/decltype29.C: Adjust. + * g++.dg/template/error56.C: Adjust. + * g++.old-deja/g++.pt/unify6.C: Adjust. + * g++.dg/template/explicit-args7.C: New test. + +2021-08-31 Jason Merrill + + PR c++/92193 + * g++.dg/diagnostic/static_assert4.C: New test. + +2021-08-31 Jeff Law + + * gcc.target/mips/mips.exp: Add tree-vrp to mips_option_group. + * gcc.target/mips/data-sym-multi-pool.c: Add -fno-tree-vrp. + +2021-08-31 Jakub Jelinek + + PR tree-optimization/101145 + * gcc.dg/vect/pr101145.c: Use dg-additional-options with just -O3 + instead of dg-options with -O3 -fdump-tree-vect-details. + * gcc.dg/vect/pr101145_1.c: Likewise. + * gcc.dg/vect/pr101145_2.c: Likewise. + * gcc.dg/vect/pr101145_3.c: Likewise. + +2021-08-31 Marcel Vollweiler + + * c-c++-common/gomp/target-device-1.c: New test. + * c-c++-common/gomp/target-device-2.c: New test. + * c-c++-common/gomp/target-device-ancestor-1.c: New test. + * c-c++-common/gomp/target-device-ancestor-2.c: New test. + * c-c++-common/gomp/target-device-ancestor-3.c: New test. + * c-c++-common/gomp/target-device-ancestor-4.c: New test. + * gfortran.dg/gomp/target-device-1.f90: New test. + * gfortran.dg/gomp/target-device-2.f90: New test. + * gfortran.dg/gomp/target-device-ancestor-1.f90: New test. + * gfortran.dg/gomp/target-device-ancestor-2.f90: New test. + * gfortran.dg/gomp/target-device-ancestor-3.f90: New test. + * gfortran.dg/gomp/target-device-ancestor-4.f90: New test. + +2021-08-31 Richard Biener + + PR tree-optimization/102142 + * g++.dg/torture/pr102142.C: New testcase. + +2021-08-31 Jakub Jelinek + + PR tree-optimization/102134 + * gcc.c-torture/execute/pr102134.c: New test. + +2021-08-31 prathamesh.kulkarni + + * gcc.target/arm/pr51534.c: Adjust test-case for soft fp targets. + +2021-08-31 Andrew Pinski + + * gcc.dg/ipa/inline-8.c: Mark cmp and move as + static so they both bind local and available for + inlinine. + +2021-08-31 liuhongt + + * gcc.target/i386/avx512bw-vpcmpeqb-1.c: Adjust testcase. + * gcc.target/i386/avx512bw-vpcmpeqw-1.c: Ditto. + * gcc.target/i386/avx512bw-vpcmpgtb-1.c: Ditto. + * gcc.target/i386/avx512bw-vpcmpgtw-1.c: Ditto. + * gcc.target/i386/avx512f-vpcmpeqd-1.c: Ditto. + * gcc.target/i386/avx512f-vpcmpeqq-1.c: Ditto. + * gcc.target/i386/avx512f-vpcmpgtd-1.c: Ditto. + * gcc.target/i386/avx512f-vpcmpgtq-1.c: Ditto. + * gcc.target/i386/avx512vl-vpcmpeqd-1.c: Ditto. + * gcc.target/i386/avx512vl-vpcmpeqq-1.c: Ditto. + * gcc.target/i386/avx512vl-vpcmpgtd-1.c: Ditto. + * gcc.target/i386/avx512vl-vpcmpgtq-1.c: Ditto. + * gcc.target/i386/bitwise_mask_op-1.c: Ditto. + * gcc.target/i386/bitwise_mask_op-2.c: Ditto. + +2021-08-30 David Malcolm + + PR analyzer/99260 + * gcc.dg/analyzer/capacity-2.c: Update for changes to realloc + analysis. + * gcc.dg/analyzer/pr99193-1.c: Likewise. + * gcc.dg/analyzer/pr99193-3.c: Likewise. + * gcc.dg/analyzer/realloc-1.c: Likewise. Add test coverage for + realloc of non-heap pointer, realloc from mismatching allocator, + and realloc on a freed pointer. + * gcc.dg/analyzer/realloc-2.c: New test. + +2021-08-30 Jason Merrill + + PR c++/96286 + * g++.dg/template/access2.C: Split struct A. + +2021-08-30 Jason Merrill + + PR c++/101460 + * g++.dg/template/explicit-args6.C: New test. + +2021-08-30 Harald Anlauf + + PR fortran/102113 + * gfortran.dg/goto_9.f90: New test. + +2021-08-30 Jason Merrill + + * g++.dg/cpp2a/concepts-lambda14.C: Add expected warnings. + +2021-08-30 Harald Anlauf + + PR fortran/101349 + * gfortran.dg/unlimited_polymorphic_33.f90: New test. + +2021-08-30 Pat Haugen + + * gcc.target/powerpc/fusion-p10-stst.c: New test. + * gcc.target/powerpc/fusion-p10-stst2.c: New test. + +2021-08-29 Iain Buclaw + + PR d/102094 + * gdc.dg/lto/pr102094_0.d: New test. + +2021-08-29 Iain Sandoe + + * gcc.dg/analyzer/strndup-1.c: Skip for Darwin versions + without strndup support in libc. + +2021-08-28 Jan Hubicka + + * gcc.dg/tree-ssa/modref-9.c: New test. + +2021-08-28 Harald Anlauf + + PR fortran/87737 + * gfortran.dg/entry_24.f90: New test. + +2021-08-27 Michael Meissner + + * gcc.target/powerpc/float128-call.c: Update comments. + +2021-08-27 Michael Meissner + + * gcc.target/powerpc/float128-call.c: Fix test for IEEE 128-bit + long double and power10. + +2021-08-27 Iain Sandoe + + * lib/target-supports.exp: Exclude cctools assembler based on + GAS 1.38. + +2021-08-27 Richard Biener + + PR tree-optimization/45178 + * gcc.dg/tree-ssa/ssa-dce-3.c: Adjust testcase. + +2021-08-27 konglin1 + + PR target/101472 + * gcc.target/i386/avx512f-pr101472.c: New test. + * gcc.target/i386/avx512vl-pr101472.c: New test. + +2021-08-27 Kewen Lin + + * gcc.target/powerpc/dive-vectorize-1.c: New test. + * gcc.target/powerpc/dive-vectorize-1.h: New test. + * gcc.target/powerpc/dive-vectorize-2.c: New test. + * gcc.target/powerpc/dive-vectorize-2.h: New test. + * gcc.target/powerpc/dive-vectorize-run-1.c: New test. + * gcc.target/powerpc/dive-vectorize-run-2.c: New test. + * gcc.target/powerpc/p10-bifs-vectorize-1.c: New test. + * gcc.target/powerpc/p10-bifs-vectorize-1.h: New test. + * gcc.target/powerpc/p10-bifs-vectorize-run-1.c: New test. + +2021-08-27 liuhongt + + * gcc.target/i386/avx512f-vshufpd-1.c: Adjust testcase. + * gcc.target/i386/avx512f-vshufps-1.c: Adjust testcase. + * gcc.target/i386/pr43147.c: New test. + +2021-08-26 Roger Sayle + + * gcc.dg/tree-ssa/ssa-ccp-41.c: New test case. + +2021-08-26 Martin Liska + Stefan Kneifel + + * gcc.target/i386/mvc5.c: Scan assembly names. + * gcc.target/i386/mvc7.c: Likewise. + * gcc.target/i386/pr95778-1.c: Update scanned patterns. + * gcc.target/i386/pr95778-2.c: Likewise. + +2021-08-25 Martin Sebor + + * gcc.dg/tree-ssa/evrp1.c: Add -details to dump option. + * gcc.dg/tree-ssa/evrp2.c: Same. + * gcc.dg/tree-ssa/evrp3.c: Same. + * gcc.dg/tree-ssa/evrp4.c: Same. + * gcc.dg/tree-ssa/evrp6.c: Same. + * gcc.dg/tree-ssa/pr64130.c: Same. + +2021-08-25 Michael Meissner + + PR target/94630 + * gcc.target/powerpc/pr70117.c: Specify that we need the long double + type to be IBM 128-bit. Remove the code to use __ibm128. + * c-c++-common/dfp/convert-bfp-11.c: Specify that we need the long + double type to be IBM 128-bit. Run the test at -O2 optimization. + * lib/target-supports.exp (add_options_for_long_double_ibm128): New + function. + (check_effective_target_long_double_ibm128): New function. + (add_options_for_long_double_ieee128): New function. + (check_effective_target_long_double_ieee128): New function. + (add_options_for_long_double_64bit): New function. + (check_effective_target_long_double_64bit): New function. + +2021-08-25 Andrew Pinski + + PR c++/66590 + * g++.dg/warn/Wreturn-5.C: New test. + +2021-08-25 Jan Hubicka + + * gcc.dg/ipa/modref-1.c: Update testcase. + * gcc.dg/tree-ssa/modref-4.c: Update testcase. + * gcc.dg/tree-ssa/modref-8.c: New test. + +2021-08-25 Lewis Hyatt + + PR other/93067 + * gcc.dg/diagnostic-input-charset-1.c: New test. + * gcc.dg/diagnostic-input-utf8-bom.c: New test. + +2021-08-25 Richard Biener + + PR tree-optimization/102046 + * gcc.dg/vect/pr102046.c: New testcase. + +2021-08-25 Hongyu Wang + + PR target/101716 + * gcc.target/i386/pr101716.c: New test. + +2021-08-25 Jiufu Guo + + PR tree-optimization/101145 + * gcc.dg/vect/pr101145.c: New test. + * gcc.dg/vect/pr101145.inc: New test. + * gcc.dg/vect/pr101145_1.c: New test. + * gcc.dg/vect/pr101145_2.c: New test. + * gcc.dg/vect/pr101145_3.c: New test. + * gcc.dg/vect/pr101145inf.c: New test. + * gcc.dg/vect/pr101145inf.inc: New test. + * gcc.dg/vect/pr101145inf_1.c: New test. + +2021-08-25 konglin1 + + PR target/101471 + * gcc.target/i386/avx512f-pr101471.c: New test. + +2021-08-25 Kewen Lin + + * gcc.target/powerpc/unpack-vectorize-1.c: New test. + * gcc.target/powerpc/unpack-vectorize-1.h: New test. + * gcc.target/powerpc/unpack-vectorize-2.c: New test. + * gcc.target/powerpc/unpack-vectorize-2.h: New test. + * gcc.target/powerpc/unpack-vectorize-3.c: New test. + * gcc.target/powerpc/unpack-vectorize-3.h: New test. + * gcc.target/powerpc/unpack-vectorize-run-1.c: New test. + * gcc.target/powerpc/unpack-vectorize-run-2.c: New test. + * gcc.target/powerpc/unpack-vectorize-run-3.c: New test. + * gcc.target/powerpc/unpack-vectorize.h: New test. + +2021-08-25 liuhongt + + PR target/101989 + * gcc.target/i386/avx2-shiftqihi-constant-1.c: Add -mno-avx512f. + * gcc.target/i386/sse2-shiftqihi-constant-1.c: Add -mno-avx + +2021-08-24 Harald Anlauf + + PR fortran/98411 + * gfortran.dg/pr98411.f90: Adjust testcase options to restrict to + F2008, and verify case of implicit SAVE. + +2021-08-24 Martin Sebor + + PR middle-end/101600 + PR middle-end/101977 + * g++.dg/pr100574.C: Prune out valid warning. + * gcc.dg/pr20126.c: Same. + * gcc.dg/Wstringop-overread.c: Adjust text of expected warnings. + Add new instances. + * gcc.dg/warn-strnlen-no-nul.c: Same. + * g++.dg/warn/Warray-bounds-26.C: New test. + * gcc.dg/Warray-bounds-88.c: New test. + +2021-08-24 Andrew MacLeod + + * gcc.dg/predict-1.c: Disable evrp. + * gcc.dg/tree-ssa/evrp-trans.c: New. + +2021-08-24 H.J. Lu + + PR target/102021 + * gcc.target/i386/pr100865-10b.c: Expect vzeroupper. + * gcc.target/i386/pr100865-4b.c: Likewise. + * gcc.target/i386/pr100865-6b.c: Expect vmovdqu and vzeroupper. + * gcc.target/i386/pr100865-7b.c: Likewise. + * gcc.target/i386/pr102021.c: New test. + +2021-08-24 Richard Earnshaw + + PR target/102035 + * gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13a.c: New test. + * gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7a.c: Likewise. + * gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8a.c: Likewise. + * gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7a.c: Likewise. + * gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8a.c: Likewise. + * gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13a.c: Likewise. + * gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7a.c: Likewise. + * gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c: Likewise. + +2021-08-24 Richard Earnshaw + + * lib/target-supports.exp (check_effective_target_arm_cmse_hw): + Check the CMSE feature register, rather than relying on the + SG operation causing an execution fault. + +2021-08-24 liuhongt + + PR target/101989 + * gcc.target/i386/pr101989-broadcast-1.c: New test. + +2021-08-24 liuhongt + + PR target/101989 + * gcc.target/i386/pr101989-1.c: New test. + * gcc.target/i386/pr101989-2.c: New test. + * gcc.target/i386/avx512bw-shiftqihi-constant-1.c: Adjust testcase. + +2021-08-24 Roger Sayle + Jakub Jelinek + + PR middle-end/102029 + * gcc.dg/fold-convlshift-3.c: New test case. + +2021-08-23 David Malcolm + + * gcc.dg/analyzer/switch.c: Remove xfail. Add various tests. + * gcc.dg/analyzer/torture/switch-2.c: New test. + * gcc.dg/analyzer/torture/switch-3.c: New test. + * gcc.dg/analyzer/torture/switch-4.c: New test. + * gcc.dg/analyzer/torture/switch-5.c: New test. + +2021-08-23 David Malcolm + + PR analyzer/101875 + * gcc.dg/analyzer/pr101875.c: New test. + +2021-08-23 David Malcolm + + PR analyzer/101837 + * gcc.dg/analyzer/pr101837.c: New test. + +2021-08-23 David Malcolm + + PR analyzer/101962 + * gcc.dg/analyzer/data-model-23.c: New test. + * gcc.dg/analyzer/pr101962.c: New test. + +2021-08-23 David Malcolm + + * gcc.dg/analyzer/data-model-22.c: New test. + * gcc.dg/analyzer/uninit-6.c: New test. + * gcc.dg/analyzer/uninit-6b.c: New test. + +2021-08-23 Jan Hubicka + + * gcc.dg/tree-ssa/modref-7.c: New test. + +2021-08-23 Richard Biener + + PR ipa/97565 + * g++.dg/lto/pr97565_0.C: New testcase. + * g++.dg/lto/pr97565_1.C: Likewise. + +2021-08-23 Jan Hubicka + + * g++.dg/tree-ssa/modref-1.C: Fix template. + +2021-08-23 Tobias Burnus + + * gfortran.dg/goacc/asyncwait-1.f95: Update dg-error. + * gfortran.dg/goacc/default-2.f: Update dg-error. + * gfortran.dg/goacc/enter-exit-data.f95: Update dg-error. + * gfortran.dg/goacc/if.f95: Update dg-error. + * gfortran.dg/goacc/parallel-kernels-clauses.f95: Update dg-error. + * gfortran.dg/goacc/routine-6.f90: Update dg-error. + * gfortran.dg/goacc/sie.f95: Update dg-error. + * gfortran.dg/goacc/update-if_present-2.f90: Update dg-error. + * gfortran.dg/gomp/cancel-2.f90: Update dg-error. + * gfortran.dg/gomp/declare-simd-1.f90: Update dg-error. + * gfortran.dg/gomp/error-3.f90: Update dg-error. + * gfortran.dg/gomp/loop-2.f90: Update dg-error. + * gfortran.dg/gomp/masked-2.f90: Update dg-error. + +2021-08-23 Ankur Saini + + PR analyzer/102020 + * gcc.dg/analyzer/malloc-callbacks.c : Fix faulty test. + +2021-08-23 Roger Sayle + + * gcc.dg/fold-convlshift-1.c: New test case. + * gcc.dg/fold-convlshift-2.c: New test case. + +2021-08-23 Jakub Jelinek + + PR tree-optimization/86723 + * gcc.dg/pr86723.c: New test. + * gcc.target/i386/pr86723.c: New test. + * gcc.dg/optimize-bswapdi-1.c: Use -fdump-tree-optimized instead of + -fdump-tree-bswap and scan for number of __builtin_bswap64 calls. + * gcc.dg/optimize-bswapdi-2.c: Likewise. + * gcc.dg/optimize-bswapsi-1.c: Use -fdump-tree-optimized instead of + -fdump-tree-bswap and scan for number of __builtin_bswap32 calls. + * gcc.dg/optimize-bswapsi-5.c: Likewise. + * gcc.dg/optimize-bswapsi-3.c: Likewise. Expect one __builtin_bswap32 + call instead of zero. + +2021-08-23 Richard Biener + + PR tree-optimization/79334 + * gcc.dg/torture/pr79334-0.c: New testcase. + * gcc.dg/torture/pr79334-1.c: Likewise. + +2021-08-23 liuhongt + + PR target/102016 + * gcc.target/i386/pr102016.c: New test. + +2021-08-23 Jakub Jelinek + + PR debug/101905 + * gcc.dg/guality/pr101905.c: New test. + +2021-08-23 Christophe Lyon + + PR target/100856 + * gcc.target/arm/acle/pr100856.c: Use arm_v8m_main_cde_multilib + and arm_v8m_main_cde. + * lib/target-supports.exp: Add + check_effective_target_FUNC_multilib for ARM CDE. + +2021-08-23 Jan Hubicka + + * g++.dg/tree-ssa/modref-1.C: New test. + +2021-08-23 Xi Ruoyao + + PR target/101922 + * gcc.target/mips/pr101922.c: New test. + +2021-08-23 Jonathan Yong <10walls@gmail.com> + + * gcc.c-torture/execute/gcc_tmpnam.h: Fix tmpnam case on Windows + where it can return a filename with "\" to indicate current + directory. + * gcc.c-torture/execute/fprintf-2.c: Use wrapper. + * gcc.c-torture/execute/printf-2.c: Use wrapper. + * gcc.c-torture/execute/user-printf.c: Use wrapper. + +2021-08-22 Martin Uecker + + PR c/98397 + * gcc.dg/c11-qual-1.c: New test. + * gcc.dg/c2x-qual-1.c: New test. + * gcc.dg/c2x-qual-2.c: New test. + * gcc.dg/c2x-qual-3.c: New test. + * gcc.dg/c2x-qual-4.c: New test. + * gcc.dg/c2x-qual-5.c: New test. + * gcc.dg/c2x-qual-6.c: New test. + * gcc.dg/c2x-qual-7.c: New test. + * gcc.dg/pointer-array-quals-1.c: Remove unnecessary flag. + * gcc.dg/pointer-array-quals-2.c: Remove unnecessary flag. + +2021-08-22 Jan Hubicka + Martin Liska + + * gcc.dg/lto/pr101949_0.c: New test. + * gcc.dg/lto/pr101949_1.c: New test. + +2021-08-21 Ankur Saini + + PR analyzer/101980 + * gcc.dg/analyzer/function-ptr-2.c : Add issue for double 'free'. + * gcc.dg/analyzer/malloc-callbacks.c : Fix xfail testcase. + +2021-08-20 Tobias Burnus + + * gfortran.dg/gomp/error-1.f90: New test. + * gfortran.dg/gomp/error-2.f90: New test. + * gfortran.dg/gomp/error-3.f90: New test. + +2021-08-20 Jakub Jelinek + + * c-c++-common/gomp/error-1.c: New test. + * c-c++-common/gomp/error-2.c: New test. + * c-c++-common/gomp/error-3.c: New test. + * g++.dg/gomp/attrs-1.C (bar): Add error directive test. + * g++.dg/gomp/attrs-2.C (bar): Add error directive test. + * g++.dg/gomp/attrs-13.C: New test. + * g++.dg/gomp/error-1.C: New test. + +2021-08-20 Jakub Jelinek + + * c-c++-common/gomp/sink-5.c: New test. + * c-c++-common/gomp/requires-3.c: Add test for spurious comma + at the end of pragma line. + +2021-08-19 Roger Sayle + + * c-c++-common/Wunused-var-16.c: Add an extra check that ~0 + is optimized away. + +2021-08-19 Peter Bergner + + PR target/101849 + * gcc.target/powerpc/pr101849.c: New test. + +2021-08-19 Harald Anlauf + + PR fortran/100950 + * gfortran.dg/pr100950.f90: New test. + +2021-08-19 Patrick Palka + + PR c++/101803 + * g++.dg/cpp2a/class-deduction-aggr12.C: Fix PR number. + +2021-08-19 Jakub Jelinek + + PR middle-end/101950 + * gcc.target/i386/pr101950-1.c: New test. + * gcc.target/i386/pr101950-2.c: New test. + +2021-08-19 Jakub Jelinek + + * c-c++-common/gomp/requires-3.c: Add testcase for + atomic_default_mem_order ( at the end of line without corresponding ). + +2021-08-19 Iain Sandoe + + * jit.dg/test-asm.c: Provide Mach-O fragment. + * jit.dg/test-asm.cc: Likewise. + +2021-08-19 Jakub Jelinek + + * c-c++-common/gomp/nothing-2.c: New test. + +2021-08-19 Iain Sandoe + + * jit.dg/harness.h: Include jit-dejagnu.h. + * jit.dg/jit.exp: Use -rdynamic conditionally on target + support, instead of unconditional -Wl,--export-dynamic. + +2021-08-19 Thomas Schwinge + + PR testsuite/101969 + * gcc.dg/pr78213.c: Fix up for '--enable-checking=release' etc. + +2021-08-19 liuhongt + + Revert: + 2021-08-19 liuhongt + + PR target/99881 + * gcc.target/i386/pr99881.c: New test. + +2021-08-18 Tobias Burnus + + PR testsuite/101963 + * gfortran.dg/nothing-1.f90: Moved to ... + * gfortran.dg/gomp/nothing-1.f90: ... here. + * gfortran.dg/nothing-2.f90: Moved to ... + * gfortran.dg/gomp/nothing-2.f90: ... here; + avoid $ issue in $OMP in dg-error. + +2021-08-18 Iain Sandoe + Matt Jacobson + + PR objc/101666 + * obj-c++.dg/pr101666-0.mm: New test. + * obj-c++.dg/pr101666-1.mm: New test. + * obj-c++.dg/pr101666.inc: New. + * objc.dg/pr101666-0.m: New test. + * objc.dg/pr101666-1.m: New test. + * objc.dg/pr101666.inc: New. + +2021-08-18 Ankur Saini + + PR analyzer/97114 + * g++.dg/analyzer/vfunc-2.C: New test. + * g++.dg/analyzer/vfunc-3.C: New test. + * g++.dg/analyzer/vfunc-4.C: New test. + * g++.dg/analyzer/vfunc-5.C: New test. + +2021-08-18 Ankur Saini + + PR analyzer/100546 + * gcc.dg/analyzer/function-ptr-4.c: New test. + * gcc.dg/analyzer/pr100546.c: New test. + +2021-08-18 Tobias Burnus + + * gfortran.dg/nothing-1.f90: New test. + * gfortran.dg/nothing-2.f90: New test. + +2021-08-18 Patrick Palka + + PR c++/101344 + PR c++/101803 + * g++.dg/cpp2a/class-deduction-aggr11.C: New test. + * g++.dg/cpp2a/class-deduction-aggr12.C: New test. + +2021-08-18 Patrick Palka + + PR c++/101883 + * g++.dg/cpp2a/nontype-class49.C: New test. + +2021-08-18 Jakub Jelinek + + * c-c++-common/gomp/nothing-1.c: New test. + * g++.dg/gomp/attrs-1.C (bar): Add nothing directive test. + * g++.dg/gomp/attrs-2.C (bar): Likewise. + * g++.dg/gomp/attrs-9.C: Likewise. + +2021-08-18 Jakub Jelinek + + * c-c++-common/gomp/pr63326.c: Don't expect extra "before" errors + in C++. + * g++.dg/gomp/attrs-7.C: Don't expect one extra error. + * g++.dg/gomp/barrier-2.C: Likewise. + * gcc.dg/gomp/declare-simd-5.c: Likewise. + * gcc.dg/gomp/barrier-2.c: Likewise. + * gcc.dg/gomp/declare-variant-2.c: Likewise. + +2021-08-18 liuhongt + + PR target/97147 + * gcc.target/i386/pr54400.c: Adjust testcase. + * gcc.target/i386/pr94147.c: New test. + +2021-08-17 Martin Sebor + + PR middle-end/101854 + * gcc.dg/attr-alloc_size-5.c: Adjust optimization to -O1. + * gcc.dg/attr-alloc_size-7.c: Use #pragmas to adjust optimization. + * gcc.dg/attr-alloc_size-8.c: Adjust optimization to -O1. + * gcc.dg/Wstringop-overflow-72.c: New test. + +2021-08-17 Jakub Jelinek + + PR c++/101539 + * g++.dg/cpp2a/is-corresponding-member1.C: New test. + * g++.dg/cpp2a/is-corresponding-member2.C: New test. + * g++.dg/cpp2a/is-corresponding-member3.C: New test. + * g++.dg/cpp2a/is-corresponding-member4.C: New test. + * g++.dg/cpp2a/is-corresponding-member5.C: New test. + * g++.dg/cpp2a/is-corresponding-member6.C: New test. + * g++.dg/cpp2a/is-corresponding-member7.C: New test. + * g++.dg/cpp2a/is-corresponding-member8.C: New test. + * g++.dg/cpp2a/is-layout-compatible1.C: New test. + * g++.dg/cpp2a/is-layout-compatible2.C: New test. + * g++.dg/cpp2a/is-layout-compatible3.C: New test. + +2021-08-17 Thomas Schwinge + + * gcc.dg/pr78213.c: Restore testing. + +2021-08-17 Roger Sayle + + * gcc.dg/tree-ssa/ssa-ccp-40.c: New test case. + +2021-08-17 Roger Sayle + + * gcc.dg/fold-ior-5.c: New test case. + +2021-08-17 Tobias Burnus + + * gfortran.dg/gomp/scan-1.f90: + * gfortran.dg/gomp/cancel-1.f90: New test. + * gfortran.dg/gomp/cancel-4.f90: New test. + * gfortran.dg/gomp/loop-4.f90: New test. + * gfortran.dg/gomp/nesting-1.f90: New test. + * gfortran.dg/gomp/nesting-2.f90: New test. + * gfortran.dg/gomp/nesting-3.f90: New test. + * gfortran.dg/gomp/nowait-1.f90: New test. + * gfortran.dg/gomp/reduction-task-1.f90: New test. + * gfortran.dg/gomp/reduction-task-2.f90: New test. + * gfortran.dg/gomp/reduction-task-2a.f90: New test. + * gfortran.dg/gomp/reduction-task-3.f90: New test. + * gfortran.dg/gomp/scope-1.f90: New test. + * gfortran.dg/gomp/scope-2.f90: New test. + +2021-08-17 Andrew MacLeod + + PR tree-optimization/101938 + * gcc.dg/pr101938.c: New test. + +2021-08-17 Richard Biener + + PR tree-optimization/101868 + * gcc.dg/lto/pr101868_0.c: New testcase. + * gcc.dg/lto/pr101868_1.c: Likewise. + * gcc.dg/lto/pr101868_2.c: Likewise. + * gcc.dg/lto/pr101868_3.c: Likewise. + +2021-08-17 Jakub Jelinek + + * c-c++-common/gomp/nesting-2.c (foo): Add scope and masked + construct tests. + * c-c++-common/gomp/scan-1.c (f3): Add scope construct test.. + * c-c++-common/gomp/cancel-1.c (f2): Add scope and masked + construct tests. + * c-c++-common/gomp/reduction-task-2.c (bar): Add scope construct + test. Adjust diagnostics for the addition of scope. + * c-c++-common/gomp/loop-1.c (f5): Add master, masked and scope + construct tests. + * c-c++-common/gomp/clause-dups-1.c (f1): Add scope construct test. + * gcc.dg/gomp/nesting-1.c (f1, f2, f3): Add scope construct tests. + * c-c++-common/gomp/scope-1.c: New test. + * c-c++-common/gomp/scope-2.c: New test. + * g++.dg/gomp/attrs-1.C (bar): Add scope construct tests. + * g++.dg/gomp/attrs-2.C (bar): Likewise. + * gfortran.dg/gomp/reduction4.f90: Adjust expected diagnostics. + * gfortran.dg/gomp/reduction7.f90: Likewise. + +2021-08-17 Jakub Jelinek + + * c-c++-common/cpp/va-opt-5.c: New test. + * c-c++-common/cpp/va-opt-6.c: New test. + +2021-08-17 Richard Biener + + PR tree-optimization/101925 + * gcc.dg/sso-16.c: New testcase. + +2021-08-17 liuhongt + + * gcc.target/i386/pr82460-2.c: Adjust testcase by adding + --param=vect-epilogues-nomask=0 + +2021-08-16 liuhongt + + PR target/101930 + * gcc.target/i386/pr101930.c: New test. + +2021-08-16 Martin Liska + + PR ipa/100600 + * gcc.dg/ipa/pr100600.c: New test. + +2021-08-16 liuhongt + + PR target/101846 + * gcc.target/i386/pr101846-2.c: New test. + * gcc.target/i386/pr101846-3.c: New test. + * gcc.target/i386/pr101846-4.c: New test. + +2021-08-16 Tobias Burnus + + * gfortran.dg/gomp/masked-1.f90: New test. + * gfortran.dg/gomp/masked-2.f90: New test. + * gfortran.dg/gomp/masked-3.f90: New test. + * gfortran.dg/gomp/masked-combined-1.f90: New test. + * gfortran.dg/gomp/masked-combined-2.f90: New test. + +2021-08-15 Harald Anlauf + + PR fortran/99351 + * gfortran.dg/coarray_sync.f90: New test. + * gfortran.dg/coarray_3.f90: Adjust error messages. + +2021-08-14 Martin Sebor + + PR middle-end/101791 + * g++.dg/warn/Wmismatched-new-delete-6.C: New test. + * g++.dg/warn/Wmismatched-new-delete-7.C: New test. + +2021-08-14 Jakub Jelinek + + PR target/101896 + * gcc.target/i386/avx512f-pr101896.c: New test. + +2021-08-13 Martin Sebor + + PR middle-end/101734 + * gcc.dg/uninit-42.c: New test. + +2021-08-13 Martin Liska + + PR ipa/101261 + * gcc.target/i386/pr101261.c: New test. + +2021-08-13 Jan Hubicka + + * gcc.dg/tree-ssa/modref-6.c: Update. + +2021-08-13 prathamesh.kulkarni + + * gcc.target/arm/simd/pr98435.c: Add dg-require-effective-target + arm_softfp_ok. + +2021-08-12 Jakub Jelinek + + * c-c++-common/gomp/clauses-1.c (bar): Add tests for combined masked + constructs with clauses. + * c-c++-common/gomp/clauses-5.c (foo): Add testcase for filter clause. + * c-c++-common/gomp/clause-dups-1.c (f1): Likewise. + * c-c++-common/gomp/masked-1.c: New test. + * c-c++-common/gomp/masked-2.c: New test. + * c-c++-common/gomp/masked-combined-1.c: New test. + * c-c++-common/gomp/masked-combined-2.c: New test. + * c-c++-common/goacc/uninit-if-clause.c: Remove xfails. + * g++.dg/gomp/block-11.C: New test. + * g++.dg/gomp/tpl-masked-1.C: New test. + * g++.dg/gomp/attrs-1.C (bar): Add tests for masked construct and + combined masked constructs with clauses in attribute syntax. + * g++.dg/gomp/attrs-2.C (bar): Likewise. + * gcc.dg/gomp/nesting-1.c (f1, f2): Add tests for masked construct + nesting. + * gfortran.dg/goacc/host_data-tree.f95: Allow also SSA_NAMEs in if + clause. + * gfortran.dg/goacc/kernels-tree.f95: Likewise. + +2021-08-12 Jakub Jelinek + + PR preprocessor/101638 + * gcc.dg/cpp/pr101638.c: New test. + +2021-08-12 Michael Meissner + + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c: Fix + typo in regular expression. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c: + Likewise. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c: + Likewise. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c: + Likewise. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c: + Likewise. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c: + Likewise. + +2021-08-12 Sergei Trofimovich + + PR c++/101219 + * g++.dg/warn/pr101219.C: New test. + +2021-08-12 Martin Uecker + + PR c/101838 + * gcc.dg/vla-stexp-2.c: New test. + +2021-08-12 Aldy Hernandez + + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Remove call into the legacy + code and adjust for ranger threader. + +2021-08-12 Tobias Burnus + + * c-c++-common/gomp/pr61486-2.c: Duplicate one proc_bind(master) + testcase and test proc_bind(primary) instead. + * gfortran.dg/gomp/affinity-1.f90: Likewise. + +2021-08-12 Hans-Peter Nilsson + + * gfortran.dg/PR82376.f90: Robustify match. + +2021-08-12 Jakub Jelinek + + PR target/101860 + * gcc.target/i386/avx512f-pr101860.c: New test. + +2021-08-12 Jakub Jelinek + + * g++.dg/gomp/attrs-12.C: New test. + +2021-08-12 Jakub Jelinek + + * g++.dg/gomp/attrs-11.C: Add new tests. + +2021-08-12 Jakub Jelinek + + PR c++/99429 + PR c++/94162 + * g++.dg/cpp2a/spaceship-synth11.C: New test. + * g++.dg/cpp2a/spaceship-synth-neg6.C: New test. + +2021-08-12 Jakub Jelinek + + * g++.dg/gomp/attrs-11.C: Adjust expected diagnostics. + +2021-08-12 Jakub Jelinek + + * g++.dg/lookup/strong-using.C: Add test using [[gnu::strong]] + as well. + * g++.dg/lookup/strong-using2.C: Likewise. + * g++.dg/cpp0x/gen-attrs-58.C: Move alignas(int) before + using namespace. + * g++.dg/cpp0x/gen-attrs-59.C: Move alignas(X) before + using namespace, add tests for alignas before semicolon. + * g++.dg/cpp0x/gen-attrs-76.C: Remove xfails. Add test for + C++11 attributes on using directive before semicolon. + +2021-08-12 liuhongt + + PR target/101846 + * gcc.target/i386/pr101846-1.c: New test. + +2021-08-12 Patrick Palka + + PR c++/101663 + * g++.dg/cpp2a/construct_at.h: New convenience header file that + defines minimal implementations of std::construct_at/destroy_at, + split out from ... + * g++.dg/cpp2a/constexpr-new5.C: ... here. + * g++.dg/cpp2a/constexpr-new6.C: Use the header. + * g++.dg/cpp2a/constexpr-new14.C: Likewise. + * g++.dg/cpp2a/constexpr-new20.C: New test. + +2021-08-11 Patrick Palka + + PR c++/101725 + DR 2082 + * g++.dg/DRs/dr2082.C: New test. + * g++.dg/cpp2a/concepts-uneval4.C: New test. + +2021-08-11 Jakub Jelinek + + PR c++/101786 + * g++.dg/cpp2a/constinit16.C: New test. + +2021-08-11 Patrick Palka + + PR c++/79501 + * g++.dg/cpp1z/class-deduction98.C: New test. + +2021-08-11 Patrick Palka + + PR c++/89062 + * g++.dg/cpp1z/class-deduction97.C: New test. + +2021-08-11 Richard Biener + + * gcc.dg/lto/pr48622_1.c: Provide non-LTO definition + of ashift_qi_1. + +2021-08-11 Jan Hubicka + + * c-c++-common/modref-dse.c: New test. + +2021-08-11 Richard Biener + + PR middle-end/101858 + * gcc.dg/pr101858.c: New testcase. + +2021-08-11 prathamesh.kulkarni + + PR target/66791 + * gcc.target/arm/pr51534.c: Adjust test. + +2021-08-11 liuhongt + + PR target/98309 + * gcc.target/i386/pr98309-1.c: New test. + * gcc.target/i386/pr98309-2.c: New test. + +2021-08-11 Hans-Peter Nilsson + + PR middle-end/101674 + * gcc.dg/uninit-pred-9_b.c: Xfail for cris-*-* too. + +2021-08-10 Tobias Burnus + + PR libfortran/101305 + PR fortran/101660 + PR testsuite/101847 + * lib/gfortran.exp (gfortran_init): Remove -I$specpath/libgfortran + from the string used to set GFORTRAN_UNDER_TEST. + +2021-08-10 H.J. Lu + + PR tree-optimization/101809 + * gcc.target/i386/pr88531-1a.c: Enable for all targets. + +2021-08-10 Jakub Jelinek + + PR target/80355 + * gcc.target/i386/avx512f-pr80355-2.c: New test. + +2021-08-10 Jakub Jelinek + + PR target/80355 + * gcc.target/i386/avx512f-pr80355-1.c: New test. + +2021-08-10 Jakub Jelinek + + * g++.dg/gomp/attrs-1.C (bar): Add missing semicolon after + [[omp::directive (threadprivate (t2))]]. Add tests with + if/while/switch after parallel in attribute syntax. + (corge): Add missing omp:: before directive. + * g++.dg/gomp/attrs-2.C (bar): Add missing semicolon after + [[omp::directive (threadprivate (t2))]]. + * g++.dg/gomp/attrs-10.C: New test. + * g++.dg/gomp/attrs-11.C: New test. + +2021-08-10 Hongyu Wang + + * gcc.target/i386/amxbf16-dpbf16ps-2.c: Fix typos. + +2021-08-10 Richard Biener + + PR middle-end/101824 + * gcc.dg/tree-ssa/pr101824.c: New testcase. + +2021-08-10 Martin Uecker + + PR c/29970 + * gcc.dg/vla-stexp-1.c: New test. + +2021-08-10 H.J. Lu + + PR target/101804 + * gcc.target/i386/avx2-gather-2.c: Pass -march=skylake instead + of "-mavx2 -mtune=skylake". Scan vpcmpeqd. + +2021-08-10 liuhongt + + * gcc.target/i386/cond_op_shift_d-1.c: New test. + * gcc.target/i386/cond_op_shift_d-2.c: New test. + * gcc.target/i386/cond_op_shift_q-1.c: New test. + * gcc.target/i386/cond_op_shift_q-2.c: New test. + * gcc.target/i386/cond_op_shift_ud-1.c: New test. + * gcc.target/i386/cond_op_shift_ud-2.c: New test. + * gcc.target/i386/cond_op_shift_uq-1.c: New test. + * gcc.target/i386/cond_op_shift_uq-2.c: New test. + * gcc.target/i386/cond_op_shift_uw-1.c: New test. + * gcc.target/i386/cond_op_shift_uw-2.c: New test. + * gcc.target/i386/cond_op_shift_w-1.c: New test. + * gcc.target/i386/cond_op_shift_w-2.c: New test. + +2021-08-09 Andrew MacLeod + + * gcc.dg/pr101741.c: New. + +2021-08-09 Martin Jambor + + PR testsuite/101654 + * gcc.dg/ipa/remref-6.c: Added missing -fdump-ipa-inline option. + +2021-08-09 Uroš Bizjak + + PR target/101812 + * gcc.target/i386/pr101812.c: New test. + +2021-08-09 Tejas Belagod + + * gcc.target/aarch64/vect-shr-reg.c: New testcase. + * gcc.target/aarch64/vect-shr-reg-run.c: Likewise. + +2021-08-09 Roger Sayle + + * gcc.dg/pr68217.c: Add -fno-tree-ccp option. + * gcc.dg/tree-ssa/vrp24.c: Add -fno-tree-ccp option. + * g++.dg/ipa/pure-const-3.C: Add -fno-tree-ccp option. + +2021-08-09 Tobias Burnus + + PR libfortran/101305 + PR fortran/101660 + * lib/gfortran.exp (gfortran_init): Add -I $specdir/libgfortran to + GFORTRAN_UNDER_TEST; update it when set by previous gfortran_init call. + * gfortran.dg/ISO_Fortran_binding_1.c: Use <...> not "..." for + ISO_Fortran_binding.h's #include. + * gfortran.dg/ISO_Fortran_binding_10.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_11.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_12.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_15.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_16.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_17.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_18.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_3.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_5.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_6.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_7.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_8.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_9.c: Likewise. + * gfortran.dg/PR94327.c: Likewise. + * gfortran.dg/PR94331.c: Likewise. + * gfortran.dg/bind_c_array_params_3_aux.c: Likewise. + * gfortran.dg/iso_fortran_binding_uint8_array_driver.c: Likewise. + * gfortran.dg/pr93524.c: Likewise. + +2021-08-09 Jonathan Wright + + * gcc.target/aarch64/sve/dup_lane_1.c: Don't split + scan-assembler tests over multiple lines. Expect 32-bit + result values in 'w' registers. + * gcc.target/aarch64/sve/extract_1.c: Likewise. + * gcc.target/aarch64/sve/extract_2.c: Likewise. + * gcc.target/aarch64/sve/extract_3.c: Likewise. + * gcc.target/aarch64/sve/extract_4.c: Likewise. + +2021-08-09 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: Restrict + tests to little-endian targets. + +2021-08-08 Jeff Law + + * gcc.target/tic6x/rotdi16-scan.c: Pull rotate into its own function. + +2021-08-07 H.J. Lu + + PR tree-optimization/88531 + * gcc.target/i386/pr88531-1a.c: New test. + * gcc.target/i386/pr88531-1b.c: Likewise. + * gcc.target/i386/pr88531-1c.c: Likewise. + * gcc.target/i386/pr88531-2a.c: Likewise. + * gcc.target/i386/pr88531-2b.c: Likewise. + * gcc.target/i386/pr88531-2c.c: Likewise. + +2021-08-06 Martin Sebor + + * c-c++-common/Wsizeof-pointer-memaccess1.c: Also disable + -Wstringop-overread. + * c-c++-common/attr-nonstring-3.c: Adjust pattern of expected message. + * gcc.dg/Warray-bounds-39.c: Add an xfail due to a known bug. + * gcc.dg/Wstring-compare-3.c: Also disable -Wstringop-overread. + * gcc.dg/attr-nonstring-2.c: Adjust pattern of expected message. + * gcc.dg/attr-nonstring-4.c: Same. + * gcc.dg/Wstringop-overread-6.c: New test. + * gcc.dg/sso-14.c: Fix typos to avoid buffer overflow. + +2021-08-06 Christophe Lyon + + PR target/101723 + * gcc.target/arm/pr69245.c: Make sure to emit code for fn1, fix + typo. + +2021-08-06 Christophe Lyon + + PR target/101723 + * gcc.target/arm/attr-neon3.c: Fix typo. + * gcc.target/arm/pragma_fpu_attribute_2.c: Fix typo. + +2021-08-06 Uroš Bizjak + + PR target/101797 + * gcc.target/i386/pr101797.c: New test. + +2021-08-06 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: Add new + tests. + +2021-08-06 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: Add new + tests. + +2021-08-06 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: Add new + tests. + +2021-08-06 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: Add new + tests. + +2021-08-06 Martin Liska + + * gcc.target/powerpc/pragma-optimize.c: New test. + +2021-08-06 Richard Biener + + * gfortran.dg/vect/vect-8.f90: Simplify aarch64 scanning. + +2021-08-06 Sebastian Huber + + * gcc.dg/gcov-info-to-gcda.c: New test. + +2021-08-05 Jonathan Wakely + + * g++.old-deja/g++.other/inline7.C: Cast nodiscard call to void. + +2021-08-05 H.J. Lu + + PR target/99744 + * gcc.target/i386/pr99744-3.c: New test. + * gcc.target/i386/pr99744-4.c: Likewise. + * gcc.target/i386/pr99744-5.c: Likewise. + * gcc.target/i386/pr99744-6.c: Likewise. + * gcc.target/i386/pr99744-7.c: Likewise. + * gcc.target/i386/pr99744-8.c: Likewise. + +2021-08-05 Richard Earnshaw + + PR target/101723 + * gcc.target/arm/cortex-m55-nofp-flag-hard.c: Update expected output. + * gcc.target/arm/cortex-m55-nofp-flag-softfp.c: Likewise. + * gcc.target/arm/cortex-m55-nofp-nomve-flag-softfp.c: Likewise. + * gcc.target/arm/mve/intrinsics/mve_fpu1.c: Convert to dg-do assemble. + Add a non-no-op function body. + * gcc.target/arm/mve/intrinsics/mve_fpu2.c: Likewise. + * gcc.target/arm/pr98636.c (dg-options): Add -mfloat-abi=softfp. + * gcc.target/arm/attr-neon.c: Tighten scan-assembler tests. + * gcc.target/arm/attr-neon2.c: Use -Ofast, convert test to use + check-function-bodies. + * gcc.target/arm/attr-neon3.c: Likewise. + * gcc.target/arm/pr69245.c: Tighten scan-assembler match, but allow + multiple instances. + * gcc.target/arm/pragma_fpu_attribute.c: Likewise. + * gcc.target/arm/pragma_fpu_attribute_2.c: Likewise. + +2021-08-05 Jonathan Wright + + * gcc.target/aarch64/vsubX_high_cost.c: New test. + +2021-08-05 Jonathan Wright + + * gcc.target/aarch64/vaddX_high_cost.c: New test. + +2021-08-05 Richard Biener + + * gcc.dg/vect/bb-slp-pr101756.c: Add -w. + +2021-08-05 Eric Botcazou + + * gcc.dg/sso-15.c: New test. + +2021-08-05 liuhongt + + * gcc.target/i386/cond_op_anylogic_d-1.c: New test. + * gcc.target/i386/cond_op_anylogic_d-2.c: New test. + * gcc.target/i386/cond_op_anylogic_q-1.c: New test. + * gcc.target/i386/cond_op_anylogic_q-2.c: New test. + +2021-08-05 liuhongt + + * gcc.target/i386/cond_op_maxmin_double-1.c: New test. + * gcc.target/i386/cond_op_maxmin_double-2.c: New test. + * gcc.target/i386/cond_op_maxmin_float-1.c: New test. + * gcc.target/i386/cond_op_maxmin_float-2.c: New test. + +2021-08-05 liuhongt + + * gcc.target/i386/cond_op_maxmin_b-1.c: New test. + * gcc.target/i386/cond_op_maxmin_b-2.c: New test. + * gcc.target/i386/cond_op_maxmin_d-1.c: New test. + * gcc.target/i386/cond_op_maxmin_d-2.c: New test. + * gcc.target/i386/cond_op_maxmin_q-1.c: New test. + * gcc.target/i386/cond_op_maxmin_q-2.c: New test. + * gcc.target/i386/cond_op_maxmin_ub-1.c: New test. + * gcc.target/i386/cond_op_maxmin_ub-2.c: New test. + * gcc.target/i386/cond_op_maxmin_ud-1.c: New test. + * gcc.target/i386/cond_op_maxmin_ud-2.c: New test. + * gcc.target/i386/cond_op_maxmin_uq-1.c: New test. + * gcc.target/i386/cond_op_maxmin_uq-2.c: New test. + * gcc.target/i386/cond_op_maxmin_uw-1.c: New test. + * gcc.target/i386/cond_op_maxmin_uw-2.c: New test. + * gcc.target/i386/cond_op_maxmin_w-1.c: New test. + * gcc.target/i386/cond_op_maxmin_w-2.c: New test. + +2021-08-04 David Malcolm + + PR analyzer/101570 + * gcc.dg/analyzer/asm-x86-1.c: New test. + * gcc.dg/analyzer/asm-x86-lp64-1.c: New test. + * gcc.dg/analyzer/asm-x86-lp64-2.c: New test. + * gcc.dg/analyzer/pr101570.c: New test. + * gcc.dg/analyzer/torture/asm-x86-linux-array_index_mask_nospec.c: + New test. + * gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-1.c: New + test. + * gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-2.c: New + test. + * gcc.dg/analyzer/torture/asm-x86-linux-cpuid.c: New test. + * gcc.dg/analyzer/torture/asm-x86-linux-rdmsr-paravirt.c: New + test. + * gcc.dg/analyzer/torture/asm-x86-linux-rdmsr.c: New test. + * gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-full.c: + New test. + * gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-reduced.c: + New test. + +2021-08-04 H.J. Lu + + PR target/101742 + * gcc.target/i386/pr101742a.c: New test. + * gcc.target/i386/pr101742b.c: Likewise. + +2021-08-04 H.J. Lu + + PR target/101772 + * gcc.target/i386/eh_return-2.c: New test. + +2021-08-04 Andreas Krebbel + + * gcc.target/s390/vector/perm-vpdi.c: New test. + +2021-08-04 Andreas Krebbel + + * gcc.target/s390/vector/perm-merge.c: New test. + * gcc.target/s390/vector/vec-types.h: New test. + +2021-08-04 Andreas Krebbel + + * gcc.target/s390/zvector/vec-permi.c: Removed. + * gcc.target/s390/zvector/vec_permi.c: New test. + +2021-08-04 Andreas Krebbel + + * gcc.target/s390/vector/long-double-asm-in-out-hard-fp-reg.c: + Instead of vpdi with 0 and 5 vmrlg and vmrhg are used now. + * gcc.target/s390/vector/long-double-asm-inout-hard-fp-reg.c: Likewise. + * gcc.target/s390/zvector/vec-types.h: New test. + * gcc.target/s390/zvector/vec_merge.c: New test. + +2021-08-04 Jonathan Wright + + * gcc.target/aarch64/vmul_high_cost.c: New test. + +2021-08-04 Jonathan Wright + + * gcc.target/aarch64/vmul_element_cost.c: New test. + +2021-08-04 Richard Sandiford + + * gcc.target/aarch64/sve/cost_model_12.c: New test. + +2021-08-04 Tamar Christina + + PR tree-optimization/101750 + * g++.dg/vect/pr99149.cc: Name class. + +2021-08-04 Richard Biener + + * gcc.target/i386/vect-gather-1.c: New testcase. + * gfortran.dg/vect/vect-8.f90: Adjust. + +2021-08-04 Roger Sayle + Marc Glisse + + * gcc.dg/fold-ior-4.c: New test. + +2021-08-04 Richard Biener + + PR tree-optimization/101756 + * gcc.dg/vect/bb-slp-pr101756.c: New testcase. + +2021-08-04 Jakub Jelinek + + PR c++/101759 + * g++.dg/gomp/pr101759.C: New test. + * g++.dg/goacc/pr101759.C: New test. + +2021-08-04 Jakub Jelinek + + * gcc.c-torture/execute/ieee/pr29302-1.x: Undo doubly applied patch. + +2021-08-04 Richard Biener + + PR tree-optimization/101769 + * g++.dg/tree-ssa/pr101769.C: New testcase. + +2021-08-04 liuhongt + + * gcc.target/i386/cond_op_addsubmul_d-2.c: Add + dg-require-effective-target for avx512. + * gcc.target/i386/cond_op_addsubmul_q-2.c: Ditto. + * gcc.target/i386/cond_op_addsubmul_w-2.c: Ditto. + * gcc.target/i386/cond_op_addsubmuldiv_double-2.c: Ditto. + * gcc.target/i386/cond_op_addsubmuldiv_float-2.c: Ditto. + * gcc.target/i386/cond_op_fma_double-2.c: Ditto. + * gcc.target/i386/cond_op_fma_float-2.c: Ditto. + +2021-08-04 liuhongt + + * gcc.target/i386/cond_op_fma_double-1.c: New test. + * gcc.target/i386/cond_op_fma_double-2.c: New test. + * gcc.target/i386/cond_op_fma_float-1.c: New test. + * gcc.target/i386/cond_op_fma_float-2.c: New test. + +2021-08-03 Eugene Rozenfeld + + * lib/profopt.exp: Pass gdwarf-4 when compiling test to profile; pass -gcov_version=2. + * lib/target-supports.exp: Remove unnecessary -o perf.data passed to gcc-auto-profile. + +2021-08-03 Eugene Rozenfeld + + * gcc.dg/tree-prof/indir-call-prof-2.c: Fix dg-final-use-autofdo. + * lib/profopt.exp: Pass -fearly-inlining when compiling with AutoFDO. + +2021-08-03 Eugene Rozenfeld + + * g++.dg/tree-prof/indir-call-prof.C: Fix options, increase the number of iterations. + * g++.dg/tree-prof/morefunc.C: Fix options, increase the number of iterations. + * g++.dg/tree-prof/reorder.C: Fix options, increase the number of iterations. + * gcc.dg/tree-prof/indir-call-prof-2.c: Fix options, increase the number of iterations. + * gcc.dg/tree-prof/indir-call-prof.c: Fix options. + +2021-08-03 Martin Sebor + + PR testsuite/101688 + * g++.dg/warn/Wstringop-overflow-4.C: Disable a test case in ILP32. + +2021-08-03 Paul A. Clarke + + * gcc.target/powerpc/sse4_1-phminposuw.c: Copy from + gcc/testsuite/gcc.target/i386, adjust dg directives to suit, + make more robust. + +2021-08-03 H.J. Lu + + * gcc.target/i386/avx-vzeroupper-14.c: Pass -mno-avx512f to + disable XMM31. + * gcc.target/i386/avx-vzeroupper-15.c: Likewise. + * gcc.target/i386/pr82941-1.c: Updated. Check for vzeroupper. + * gcc.target/i386/pr82942-1.c: Likewise. + * gcc.target/i386/pr82990-1.c: Likewise. + * gcc.target/i386/pr82990-3.c: Likewise. + * gcc.target/i386/pr82990-5.c: Likewise. + * gcc.target/i386/pr100865-4b.c: Likewise. + * gcc.target/i386/pr100865-6b.c: Likewise. + * gcc.target/i386/pr100865-7b.c: Likewise. + * gcc.target/i386/pr100865-10b.c: Likewise. + * gcc.target/i386/pr100865-8b.c: Updated. + * gcc.target/i386/pr100865-9b.c: Likewise. + * gcc.target/i386/pr100865-11b.c: Likewise. + * gcc.target/i386/pr100865-12b.c: Likewise. + +2021-08-03 liuhongt + + * gcc.target/i386/cond_op_addsubmul_d-1.c: New test. + * gcc.target/i386/cond_op_addsubmul_d-2.c: New test. + * gcc.target/i386/cond_op_addsubmul_q-1.c: New test. + * gcc.target/i386/cond_op_addsubmul_q-2.c: New test. + * gcc.target/i386/cond_op_addsubmul_w-1.c: New test. + * gcc.target/i386/cond_op_addsubmul_w-2.c: New test. + +2021-08-03 Jakub Jelinek + + PR analyzer/101721 + * gcc.dg/analyzer/pr101721.c: New test. + +2021-08-03 H.J. Lu + + PR target/80566 + * g++.target/i386/pr80566-1.C: New test. + * g++.target/i386/pr80566-2.C: Likewise. + +2021-08-03 liuhongt + + * gcc.target/i386/cond_op_addsubmuldiv_double-1.c: New test. + * gcc.target/i386/cond_op_addsubmuldiv_double-2.c: New test. + * gcc.target/i386/cond_op_addsubmuldiv_float-1.c: New test. + * gcc.target/i386/cond_op_addsubmuldiv_float-2.c: New test. + +2021-08-02 H.J. Lu + + * gcc.target/i386/vect8-ret.c: Also pass -mno-sse. + +2021-08-02 H.J. Lu + + * gcc.target/i386/incoming-11.c: Expect no stack realignment. + +2021-08-02 H.J. Lu + + * gcc.target/i386/sw-1.c: Also pass -mno-avx for ia32. + +2021-08-02 H.J. Lu + + * gcc.target/i386/cold-attribute-1.c: Also pass -mno-avx. + +2021-08-02 H.J. Lu + + * gcc.target/i386/pr72839.c: Also pass -mno-avx. + +2021-08-02 H.J. Lu + + * gcc.target/i386/pieces-memcpy-10.c: New test. + * gcc.target/i386/pieces-memcpy-11.c: Likewise. + * gcc.target/i386/pieces-memcpy-12.c: Likewise. + * gcc.target/i386/pieces-memcpy-13.c: Likewise. + * gcc.target/i386/pieces-memcpy-14.c: Likewise. + * gcc.target/i386/pieces-memcpy-15.c: Likewise. + * gcc.target/i386/pieces-memcpy-16.c: Likewise. + * gcc.target/i386/pieces-memset-1.c: Likewise. + * gcc.target/i386/pieces-memset-2.c: Likewise. + * gcc.target/i386/pieces-memset-3.c: Likewise. + * gcc.target/i386/pieces-memset-4.c: Likewise. + * gcc.target/i386/pieces-memset-5.c: Likewise. + * gcc.target/i386/pieces-memset-6.c: Likewise. + * gcc.target/i386/pieces-memset-7.c: Likewise. + * gcc.target/i386/pieces-memset-8.c: Likewise. + * gcc.target/i386/pieces-memset-9.c: Likewise. + * gcc.target/i386/pieces-memset-10.c: Likewise. + * gcc.target/i386/pieces-memset-11.c: Likewise. + * gcc.target/i386/pieces-memset-12.c: Likewise. + * gcc.target/i386/pieces-memset-13.c: Likewise. + * gcc.target/i386/pieces-memset-14.c: Likewise. + * gcc.target/i386/pieces-memset-15.c: Likewise. + * gcc.target/i386/pieces-memset-16.c: Likewise. + * gcc.target/i386/pieces-memset-17.c: Likewise. + * gcc.target/i386/pieces-memset-18.c: Likewise. + * gcc.target/i386/pieces-memset-19.c: Likewise. + * gcc.target/i386/pieces-memset-20.c: Likewise. + * gcc.target/i386/pieces-memset-21.c: Likewise. + * gcc.target/i386/pieces-memset-22.c: Likewise. + * gcc.target/i386/pieces-memset-23.c: Likewise. + * gcc.target/i386/pieces-memset-24.c: Likewise. + * gcc.target/i386/pieces-memset-25.c: Likewise. + * gcc.target/i386/pieces-memset-26.c: Likewise. + * gcc.target/i386/pieces-memset-27.c: Likewise. + * gcc.target/i386/pieces-memset-28.c: Likewise. + * gcc.target/i386/pieces-memset-29.c: Likewise. + * gcc.target/i386/pieces-memset-30.c: Likewise. + * gcc.target/i386/pieces-memset-31.c: Likewise. + * gcc.target/i386/pieces-memset-32.c: Likewise. + * gcc.target/i386/pieces-memset-33.c: Likewise. + * gcc.target/i386/pieces-memset-34.c: Likewise. + * gcc.target/i386/pieces-memset-35.c: Likewise. + * gcc.target/i386/pieces-memset-36.c: Likewise. + * gcc.target/i386/pieces-memset-37.c: Likewise. + * gcc.target/i386/pieces-memset-38.c: Likewise. + * gcc.target/i386/pieces-memset-39.c: Likewise. + * gcc.target/i386/pieces-memset-40.c: Likewise. + * gcc.target/i386/pieces-memset-41.c: Likewise. + * gcc.target/i386/pieces-memset-42.c: Likewise. + * gcc.target/i386/pieces-memset-43.c: Likewise. + * gcc.target/i386/pieces-memset-44.c: Likewise. + * gcc.target/i386/pieces-memcpy-7.c: New file. + * gcc.target/i386/pieces-memcpy-8.c: New file. + * gcc.target/i386/pieces-memcpy-9.c: New file. + +2021-08-02 H.J. Lu + + PR middle-end/90773 + * gcc.target/i386/pr90773-20.c: New test. + * gcc.target/i386/pr90773-21.c: Likewise. + * gcc.target/i386/pr90773-22.c: Likewise. + * gcc.target/i386/pr90773-23.c: Likewise. + * gcc.target/i386/pr90773-26.c: Likewise. + +2021-08-02 H.J. Lu + + * gcc.target/i386/pr90773-1.c: Adjust to expect movq for 32-bit. + * gcc.target/i386/pr90773-4.c: Also run for 32-bit. + * gcc.target/i386/pr90773-15.c: Likewise. + * gcc.target/i386/pr90773-16.c: Likewise. + * gcc.target/i386/pr90773-17.c: Likewise. + * gcc.target/i386/pr90773-24.c: Likewise. + * gcc.target/i386/pr90773-25.c: Likewise. + * gcc.target/i386/pr100865-1.c: Likewise. + * gcc.target/i386/pr100865-2.c: Likewise. + * gcc.target/i386/pr100865-3.c: Likewise. + * gcc.target/i386/pr90773-14.c: Also run for 32-bit and expect + XMM movd to store 4 bytes. + * gcc.target/i386/pr100865-4a.c: Also run for 32-bit and expect + YMM registers. + * gcc.target/i386/pr100865-4b.c: Likewise. + * gcc.target/i386/pr100865-10a.c: Expect YMM registers. + * gcc.target/i386/pr100865-10b.c: Likewise. + +2021-08-02 H.J. Lu + + * gcc.target/i386/eh_return-1.c: New test. + +2021-08-02 H.J. Lu + + PR middle-end/90773 + * gcc.target/i386/pr90773-5.c: Updated to expect XMM register. + * gcc.target/i386/pr90773-14.c: Likewise. + * gcc.target/i386/pr90773-15.c: New test. + * gcc.target/i386/pr90773-16.c: Likewise. + * gcc.target/i386/pr90773-17.c: Likewise. + * gcc.target/i386/pr90773-18.c: Likewise. + * gcc.target/i386/pr90773-19.c: Likewise. + +2021-08-02 Roger Sayle + + * gcc.dg/tree-ssa/phi-opt-25.c: New test case. + +2021-08-01 H.J. Lu + + PR target/78103 + * gcc.target/i386/pr78103-2.c: Also scan incl. + * gcc.target/i386/pr78103-3.c: Scan leal|addl|incl for x32. Also + scan incq. + +2021-07-31 Jason Merrill + + PR c++/96636 + * g++.dg/ext/anon-struct9.C: New test. + +2021-07-31 Roger Sayle + + * gcc.target/i386/dec-cmov-2.c: Require -march=core2 with -m32. + +2021-07-31 Jakub Jelinek + + * g++.dg/gomp/attrs-9.C: New test. + +2021-07-31 Jakub Jelinek + + PR target/78103 + * gcc.target/i386/pr78103-1.c: New test. + * gcc.target/i386/pr78103-2.c: New test. + * gcc.target/i386/pr78103-3.c: New test. + +2021-07-31 Hans-Peter Nilsson + + * gcc.dg/tree-ssa/ssa-dse-26.c: Skip on mmix-knuth-mmixware. + +2021-07-31 Hans-Peter Nilsson + + PR middle-end/101674 + * gcc.dg/uninit-pred-9_b.c: Xfail for mmix-*-* too. + +2021-07-30 Paul A. Clarke + + * gcc.target/powerpc/sse4_1-floorpd.c: New. + * gcc.target/powerpc/sse4_1-floorps.c: New. + * gcc.target/powerpc/sse4_1-floorsd.c: New. + * gcc.target/powerpc/sse4_1-floorss.c: New. + * gcc.target/powerpc/sse4_1-roundpd-2.c: Copy from + gcc/testsuite/gcc.target/i386 and adjust dg directives to suit. + +2021-07-30 Paul A. Clarke + + * gcc.target/powerpc/sse4_1-ceilpd.c: New. + * gcc.target/powerpc/sse4_1-ceilps.c: New. + * gcc.target/powerpc/sse4_1-ceilsd.c: New. + * gcc.target/powerpc/sse4_1-ceilss.c: New. + * gcc.target/powerpc/sse4_1-round-data.h: New. + * gcc.target/powerpc/sse4_1-round.h: New. + * gcc.target/powerpc/sse4_1-round2.h: New. + * gcc.target/powerpc/sse4_1-roundpd-3.c: Copy from gcc.target/i386 + and adjust dg directives to suit. + * gcc.target/powerpc/sse4_1-check.h (__VSX_SSE2__): Define. + +2021-07-30 Paul A. Clarke + + * gcc.target/powerpc/sse4_1-blendpd.c: Copy from gcc.target/i386 + and adjust dg directives to suit. + * gcc.target/powerpc/sse4_1-blendps-2.c: Likewise. + * gcc.target/powerpc/sse4_1-blendps.c: Likewise. + * gcc.target/powerpc/sse4_1-blendvpd.c: Likewise. + +2021-07-30 Roger Sayle + Uroš Bizjak + + * gcc.target/i386/dec-cmov-1.c: New test. + * gcc.target/i386/dec-cmov-2.c: New test. + +2021-07-30 Andrew MacLeod + + * gcc.dg/tree-ssa/pr61839_2.c: Adjust. Add new const fold test. + +2021-07-30 Andrew MacLeod + + * gcc.dg/tree-ssa/pr61839_2.c: Adjust. + +2021-07-30 Martin Sebor + + PR middle-end/101671 + * gcc.c-torture/compile/pr83510.c: Move test functions... + * gcc.dg/Warray-bounds-87.c: ...to this file. + +2021-07-30 H.J. Lu + + * gcc.target/i386/pr100865-3.c: Expect vmovdqu8 instead of + vmovdqu. + * gcc.target/i386/pr100865-4b.c: Likewise. + +2021-07-30 Andrew Pinski + + PR testsuite/101517 + * g++.dg/warn/Wunused-18.C: New test. + * gcc.c-torture/compile/20030405-2.c: New test. + * gcc.c-torture/compile/20040304-2.c: New test. + * gcc.dg/20030612-2.c: New test. + +2021-07-30 Xi Ruoyao + + PR target/101132 + * gcc.target/mips/pr101132.c: New test. + +2021-07-30 Jakub Jelinek + + PR c++/101539 + * g++.dg/cpp2a/is-pointer-interconvertible-base-of1.C: New test. + * g++.dg/cpp2a/is-pointer-interconvertible-with-class1.C: New test. + * g++.dg/cpp2a/is-pointer-interconvertible-with-class2.C: New test. + * g++.dg/cpp2a/is-pointer-interconvertible-with-class3.C: New test. + * g++.dg/cpp2a/is-pointer-interconvertible-with-class4.C: New test. + * g++.dg/cpp2a/is-pointer-interconvertible-with-class5.C: New test. + * g++.dg/cpp2a/is-pointer-interconvertible-with-class6.C: New test. + +2021-07-30 Jason Merrill + + * g++.dg/ext/anon-struct8.C: New test. + +2021-07-30 Jakub Jelinek + + * g++.dg/cpp0x/gen-attrs-76.C: New test. + +2021-07-30 H.J. Lu + + PR target/101685 + * gcc.target/i386/pr101685.c: New test. + +2021-07-30 Aldy Hernandez + + * gcc.dg/shrink-wrap-loop.c: Enable early jump threading. Mark as + XFAIL. + +2021-07-30 Jakub Jelinek + + PR c++/101582 + * g++.dg/cpp0x/gen-attrs-45.C: Expect a warning about ignored + attributes instead of error. + * g++.dg/cpp0x/gen-attrs-75.C: New test. + * g++.dg/modules/pr101582-1.C: New test. + +2021-07-30 Xi Ruoyao + + PR ipa/101396 + * g++.dg/lto/pr101396_0.C: New test. + * g++.dg/lto/pr101396_1.C: New test. + +2021-07-29 Martin Sebor + + PR middle-end/101674 + * gcc.dg/uninit-pred-9_b.c: Xfail just the failing assertion and + correct target. + +2021-07-29 Iain Buclaw + + PR d/101672 + * gdc.dg/pr100967.d: Update test. + * gdc.dg/pr101672.d: New test. + +2021-07-29 Iain Buclaw + + PR d/101664 + * gdc.dg/extern-c++/extern-c++.exp: New. + * gdc.dg/extern-c++/pr101664.d: New test. + * gdc.dg/extern-c++/pr101664_1.cc: New test. + +2021-07-29 Iain Buclaw + + PR d/96435 + * gdc.dg/torture/pr96435.d: New test. + +2021-07-29 Iain Buclaw + + PR d/101657 + * gdc.dg/pr101657.d: New test. + +2021-07-29 Jakub Jelinek + + PR testsuite/101647 + * g++.dg/pr71389.C: Include instead of . + * g++.dg/cpp0x/initlist48.C: Include also . + +2021-07-29 Thomas Schwinge + Julian Brown + Kwok Cheung Yeung + + * c-c++-common/goacc/classify-kernels-unparallelized.c: + 's%oaccdevlow%oaccloops%g'. + * c-c++-common/goacc/classify-kernels.c: Likewise. + * c-c++-common/goacc/classify-parallel.c: Likewise. + * c-c++-common/goacc/classify-routine-nohost.c: Likewise. + * c-c++-common/goacc/classify-routine.c: Likewise. + * c-c++-common/goacc/classify-serial.c: Likewise. + * c-c++-common/goacc/routine-nohost-1.c: Likewise. + * g++.dg/goacc/template.C: Likewise. + * gcc.dg/goacc/loop-processing-1.c: Likewise. + * gfortran.dg/goacc/classify-kernels-unparallelized.f95: Likewise. + * gfortran.dg/goacc/classify-kernels.f95: Likewise. + * gfortran.dg/goacc/classify-parallel.f95: Likewise. + * gfortran.dg/goacc/classify-routine-nohost.f95: Likewise. + * gfortran.dg/goacc/classify-routine.f95: Likewise. + * gfortran.dg/goacc/classify-serial.f95: Likewise. + * gfortran.dg/goacc/routine-multiple-directives-1.f90: Likewise. + +2021-07-29 Haochen Gui + + PR target/100952 + * gcc.target/powerpc/pr56605.c: Change matching + conditions. + * gcc.target/powerpc/pr81348.c: Likewise. + +2021-07-29 Aldy Hernandez + + * g++.dg/debug/dwarf2/deallocator.C: Adjust for threader. + * gcc.c-torture/compile/pr83510.c: Same. + * gcc.dg/analyzer/pr94851-2.c: Same. + * gcc.dg/loop-unswitch-2.c: Same. + * gcc.dg/old-style-asm-1.c: Same. + * gcc.dg/pr68317.c: Same. + * gcc.dg/pr97567-2.c: Same. + * gcc.dg/predict-9.c: Same. + * gcc.dg/shrink-wrap-loop.c: Same. + * gcc.dg/sibcall-1.c: Same. + * gcc.dg/tree-ssa/builtin-sprintf-3.c: Same. + * gcc.dg/tree-ssa/pr21001.c: Same. + * gcc.dg/tree-ssa/pr21294.c: Same. + * gcc.dg/tree-ssa/pr21417.c: Same. + * gcc.dg/tree-ssa/pr21458-2.c: Same. + * gcc.dg/tree-ssa/pr21563.c: Same. + * gcc.dg/tree-ssa/pr49039.c: Same. + * gcc.dg/tree-ssa/pr61839_1.c: Same. + * gcc.dg/tree-ssa/pr61839_3.c: Same. + * gcc.dg/tree-ssa/pr77445-2.c: Same. + * gcc.dg/tree-ssa/split-path-4.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-11.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-12.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-14.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-18.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-6.c: Same. + * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Same. + * gcc.dg/tree-ssa/ssa-fre-48.c: Same. + * gcc.dg/tree-ssa/ssa-thread-11.c: Same. + * gcc.dg/tree-ssa/ssa-thread-12.c: Same. + * gcc.dg/tree-ssa/ssa-thread-14.c: Same. + * gcc.dg/tree-ssa/vrp02.c: Same. + * gcc.dg/tree-ssa/vrp03.c: Same. + * gcc.dg/tree-ssa/vrp05.c: Same. + * gcc.dg/tree-ssa/vrp06.c: Same. + * gcc.dg/tree-ssa/vrp07.c: Same. + * gcc.dg/tree-ssa/vrp09.c: Same. + * gcc.dg/tree-ssa/vrp19.c: Same. + * gcc.dg/tree-ssa/vrp20.c: Same. + * gcc.dg/tree-ssa/vrp33.c: Same. + * gcc.dg/uninit-pred-9_b.c: Same. + * gcc.dg/uninit-pr61112.c: Same. + * gcc.dg/vect/bb-slp-16.c: Same. + * gcc.target/i386/avx2-vect-aggressive.c: Same. + * gcc.dg/tree-ssa/ranger-threader-1.c: New test. + * gcc.dg/tree-ssa/ranger-threader-2.c: New test. + * gcc.dg/tree-ssa/ranger-threader-3.c: New test. + * gcc.dg/tree-ssa/ranger-threader-4.c: New test. + * gcc.dg/tree-ssa/ranger-threader-5.c: New test. + +2021-07-29 Richard Biener + + PR c/101512 + * gcc.dg/torture/pr101512.c: New testcase. + +2021-07-29 liuhongt + + PR target/99881 + * gcc.target/i386/pr91446.c: + * gcc.target/i386/pr92658-avx512bw-2.c: + * gcc.target/i386/pr92658-sse4-2.c: + * gcc.target/i386/pr92658-sse4.c: + * gcc.target/i386/pr99881.c: + +2021-07-29 liuhongt + + PR target/39821 + * gcc.target/i386/sse2-pr39821.c: New test. + * gcc.target/i386/sse4-pr39821.c: New test. + +2021-07-29 Jiufu Guo + + PR target/61837 + * gcc.target/powerpc/pr61837.c: New test. + +2021-07-28 Martin Sebor + + PR middle-end/101494 + * gcc.dg/uninit-pr101494.c: New test. + +2021-07-28 Martin Sebor + + PR middle-end/101601 + * g++.dg/warn/Warray-bounds-25.C: New test. + * gcc.dg/Warray-bounds-85.c: New test. + +2021-07-28 Michael Meissner + + PR testsuite/100168 + * gcc.dg/pr56727-2.c: Add support for PC-relative calls. + +2021-07-28 David Malcolm + + * gcc.dg/analyzer/torture/ubsan-1.c: New test. + +2021-07-28 Harald Anlauf + + PR fortran/101564 + * gfortran.dg/allocate_stat_3.f90: New test. + * gfortran.dg/allocate_stat.f90: Adjust error messages. + * gfortran.dg/implicit_11.f90: Likewise. + * gfortran.dg/inquiry_type_ref_3.f90: Likewise. + +2021-07-28 Jakub Jelinek + + PR middle-end/101624 + * gfortran.dg/ubsan/ubsan.exp: New file. + * gfortran.dg/ubsan/pr101624.f90: New test. + +2021-07-28 Jakub Jelinek + + PR middle-end/101642 + * gcc.c-torture/compile/pr101642.c: New test. + +2021-07-28 Ilya Leoshkevich + + * gcc.target/s390/global-array-element-pic2.c: Add -mzarch, add + an expectation for 31-bit mode. + * gcc.target/s390/load-imm64-1.c: Use unsigned long long. + * gcc.target/s390/load-imm64-2.c: Likewise. + * gcc.target/s390/vector/long-double-vx-macro-off-on.c: Use + -mzarch. + * gcc.target/s390/vector/long-double-vx-macro-on-off.c: + Likewise. + +2021-07-28 Richard Biener + + PR tree-optimization/101615 + * gcc.dg/vect/bb-slp-pr101615-2.c: New testcase. + +2021-07-28 Kyrylo Tkachov + + * gcc.target/aarch64/smov_1.c: New test. + * gcc.target/aarch64/sve/clastb_4.c: Adjust clast scan-assembler. + +2021-07-28 H.J. Lu + + PR target/101456 + * gcc.target/i386/pr101456-1.c: New test. + * gcc.target/i386/pr101456-2.c: Likewise. + +2021-07-28 Richard Biener + + PR tree-optimization/101615 + * gcc.dg/vect/bb-slp-pr101615-1.c: New testcase. + +2021-07-28 Siddhesh Poyarekar + + * gcc.dg/analyzer/strdup-1.c (test_4, test_5, test_6): New + tests. + +2021-07-28 Siddhesh Poyarekar + + * gcc.dg/analyzer/attr-malloc-1.c (compatible_alloc, + compatible_alloc2): New extern allocator declarations. + (test_9, test_10): New tests. + +2021-07-28 Iain Buclaw + + PR d/101640 + * gdc.dg/pr96429.d: Update test. + * gdc.dg/pr101640.d: New test. + +2021-07-28 Iain Buclaw + + PR d/101490 + * gdc.dg/pr101490.d: New test. + +2021-07-28 Iain Buclaw + + PR d/101127 + * gdc.dg/pr101127a.d: New test. + * gdc.dg/pr101127b.d: New test. + +2021-07-28 Jakub Jelinek + + PR target/101611 + * gcc.target/i386/avx2-pr101611-1.c: New test. + * gcc.target/i386/avx2-pr101611-2.c: New test. + +2021-07-28 Martin Uecker + + * gcc.dg/Wnonnull-4.c: Correct argument numbers in warnings. + +2021-07-28 Sandra Loosemore + + PR libfortran/101317 + * gfortran.dg/ISO_Fortran_binding_17.f90: Fix typo in error + message patterns. + +2021-07-28 Sandra Loosemore + + PR libfortran/101310 + * gfortran.dg/ISO_Fortran_binding_1.c (section_c): Remove + incorrect assertions. + +2021-07-28 Sandra Loosemore + + PR libfortran/101305 + * gfortran.dg/ISO_Fortran_binding_1.c: Adjust include path. + * gfortran.dg/ISO_Fortran_binding_10.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_11.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_12.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_15.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_16.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_17.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_18.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_3.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_5.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_6.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_7.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_8.c: Likewise. + * gfortran.dg/ISO_Fortran_binding_9.c: Likewise. + * gfortran.dg/PR94327.c: Likewise. + * gfortran.dg/PR94331.c: Likewise. + * gfortran.dg/bind_c_array_params_3_aux.c: Likewise. + * gfortran.dg/iso_fortran_binding_uint8_array_driver.c: Likewise. + * gfortran.dg/pr93524.c: Likewise. + +2021-07-28 Kewen Lin + + PR tree-optimization/101596 + * gcc.target/powerpc/pr101596-1.c: New test. + * gcc.target/powerpc/pr101596-2.c: Likewise. + * gcc.target/powerpc/pr101596-3.c: Likewise. + +2021-07-28 liuhongt + + PR target/99881 + * gcc.target/i386/pr99881.c: New test. + +2021-07-27 Martin Sebor + + PR tree-optimization/101584 + * gcc.dg/uninit-38.c: Remove assertions. + * gcc.dg/uninit-41.c: New test. + +2021-07-27 Jonathan Wakely + + PR testsuite/101646 + * g++.dg/coroutines/pr99047.C: Fix includes. + * g++.dg/pr71655.C: Likewise. + +2021-07-27 Martin Sebor + + PR c/101585 + * gcc.dg/Wvla-parameter-13.c: New test. + +2021-07-27 Jeff Law + + * g++.dg/gcov/gcov-threads-1.C: Fix argument to pthread_join. + +2021-07-27 Marek Polacek + + DR 1512 + PR c++/99701 + * g++.dg/cpp0x/nullptr11.C: Remove invalid tests. + * g++.dg/cpp0x/nullptr46.C: Add dg-error. + * g++.dg/cpp2a/spaceship-err7.C: New test. + * g++.dg/expr/ptr-comp4.C: New test. + +2021-07-27 Richard Biener + + PR tree-optimization/101573 + * gcc.dg/uninit-pr101573.c: New testcase. + * gcc.dg/uninit-15-O0.c: Adjust. + * gcc.dg/uninit-15.c: Likewise. + * gcc.dg/uninit-23.c: Likewise. + * c-c++-common/uninit-17.c: Likewise. + +2021-07-27 Martin Jambor + + * gcc.dg/ipa/remref-3.c: New test. + * gcc.dg/ipa/remref-4.c: Likewise. + * gcc.dg/ipa/remref-5.c: Likewise. + * gcc.dg/ipa/remref-6.c: Likewise. + +2021-07-27 Jakub Jelinek + + PR middle-end/101586 + * g++.dg/torture/builtin-clear-padding-4.C: New test. + +2021-07-27 Michael Meissner + + PR testsuite/100170 + * gcc.target/powerpc/ppc-eq0-1.c: Adjust insn counts if power10 + code is generated. + * gcc.target/powerpc/ppc-ne0-1.c: (ne0): Adjust insn counts if + power10 code is generated. + (plus_ne0): Move to ppc-ne0-2.c. + (cmp_plus_ne): Likewise. + (plus_ne0_cmp): Likewise. + * gcc.target/powerpc/ppc-ne0-2.c: New file. + +2021-07-26 David Malcolm + + * gcc.dg/analyzer/sock-1.c: New test. + * gcc.dg/analyzer/sock-2.c: New test. + +2021-07-26 Andrew MacLeod + + * gcc.dg/pr78888.c: New. + +2021-07-26 Roger Sayle + Marc Glisse + + * gcc.dg/fold-eqrotate-1.c: New test case. + * gcc.dg/fold-eqbswap-1.c: New test case. + +2021-07-26 José Rui Faustino de Sousa + Tobias Burnus + + PR fortran/93308 + PR fortran/93963 + PR fortran/94327 + PR fortran/94331 + PR fortran/97046 + * gfortran.dg/ISO_Fortran_binding_1.f90: Add pointer attribute, + this test is still erroneous but now it compiles. + * gfortran.dg/bind_c_array_params_2.f90: Update regex to match + code changes. + * gfortran.dg/PR93308.f90: New test. + * gfortran.dg/PR93963.f90: New test. + * gfortran.dg/PR94327.c: New test. + * gfortran.dg/PR94327.f90: New test. + * gfortran.dg/PR94331.c: New test. + * gfortran.dg/PR94331.f90: New test. + * gfortran.dg/PR97046.f90: New test. + +2021-07-26 Jakub Jelinek + + * g++.dg/gomp/attrs-1.C: Use attribute syntax even for section + and scan directives. + * g++.dg/gomp/attrs-2.C: Likewise. + * g++.dg/gomp/attrs-6.C: New test. + * g++.dg/gomp/attrs-7.C: New test. + * g++.dg/gomp/attrs-8.C: New test. + +2021-07-23 Harald Anlauf + + PR fortran/101536 + * gfortran.dg/pr101536.f90: New test. + +2021-07-23 Jakub Jelinek + + PR rtl-optimization/101562 + * gcc.c-torture/compile/pr101562.c: New test. + +2021-07-23 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: Add new + tests. + +2021-07-23 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: Add new + tests. + +2021-07-23 H.J. Lu + + PR target/101504 + * gcc.target/i386/pr101504.c: New test. + +2021-07-23 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: Add new + tests. + +2021-07-23 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: Add new + tests. + +2021-07-23 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: Add new + tests. + +2021-07-23 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: Add new + tests. + +2021-07-23 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: New tests. + +2021-07-23 Jonathan Wright + + * gcc.target/aarch64/vector_structure_intrinsics.c: New test. + +2021-07-23 Jakub Jelinek + + * c-c++-common/gomp/attrs-1.c: New test. + * c-c++-common/gomp/attrs-2.c: New test. + * c-c++-common/gomp/attrs-3.c: New test. + +2021-07-23 Jakub Jelinek + + * g++.dg/gomp/attrs-4.C: New test. + * g++.dg/gomp/attrs-5.C: New test. + +2021-07-23 Xi Ruoyao + + * gcc.target/mips/mips.exp (mips_option_groups): add + -finline and -fno-inline. + +2021-07-23 Xi Ruoyao + + Revert: + 2021-07-09 Xi Ruoyao + + * gcc.target/mips/cfgcleanup-jalr2.c: Remove -fno-inline and add + __attribute__((noinline)). + * gcc.target/mips/cfgcleanup-jalr3.c: Likewise. + +2021-07-23 David Malcolm + + * gcc.dg/analyzer/feasibility-3.c: New test. + +2021-07-22 Martin Sebor + + PR tree-optimization/65178 + * gcc.dg/uninit-pr65178.c: New test. + +2021-07-22 Martin Sebor + + PR testsuite/101568 + * g++.dg/ipa/pr82352.C + +2021-07-22 Andrew Pinski + + PR tree-optimization/10153 + * gcc.c-torture/compile/pr10153-1.c: New test. + * gcc.c-torture/compile/pr10153-2.c: New test. + +2021-07-22 Andrew MacLeod + + * g++.dg/pr101511.C: New. + +2021-07-22 Andrew MacLeod + + * gcc.dg/pr101497.c: New. + +2021-07-22 Andrew MacLeod + + * gcc.dg/pr101496.c: New. + +2021-07-22 liuhongt + + * gcc.target/i386/fuse-caller-save-xmm.c: Adjust testcase. + +2021-07-22 liuhongt + + * gcc.target/i386/mask-shift.c: New test. + +2021-07-21 David Malcolm + + PR analyzer/101547 + * gcc.dg/analyzer/pr101547.c: New test. + +2021-07-21 David Malcolm + + PR analyzer/101522 + * g++.dg/analyzer/pr101522.C: New test. + +2021-07-21 Thomas Schwinge + Joseph Myers + Cesar Philippidis + + * c-c++-common/goacc/classify-routine-nohost.c: New file. + * c-c++-common/goacc/classify-routine.c: Update. + * c-c++-common/goacc/routine-2.c: Likewise. + * c-c++-common/goacc/routine-nohost-1.c: New file. + * c-c++-common/goacc/routine-nohost-2.c: Likewise. + * g++.dg/goacc/template.C: Update. + * gfortran.dg/goacc/classify-routine-nohost.f95: New file. + * gfortran.dg/goacc/classify-routine.f95: Update. + * gfortran.dg/goacc/pure-elemental-procedures-2.f90: Likewise. + * gfortran.dg/goacc/routine-6.f90: Likewise. + * gfortran.dg/goacc/routine-intrinsic-2.f: Likewise. + * gfortran.dg/goacc/routine-module-1.f90: Likewise. + * gfortran.dg/goacc/routine-module-2.f90: Likewise. + * gfortran.dg/goacc/routine-module-3.f90: Likewise. + * gfortran.dg/goacc/routine-module-mod-1.f90: Likewise. + * gfortran.dg/goacc/routine-multiple-directives-1.f90: Likewise. + * gfortran.dg/goacc/routine-multiple-directives-2.f90: Likewise. + +2021-07-21 Thomas Schwinge + + * g++.dg/goacc/template.C: Fix '#pragma atomic update' typo. + +2021-07-21 David Malcolm + + * gcc.dg/analyzer/explode-2.c: Remove xfail. + * gcc.dg/analyzer/explode-2a.c: Remove expected leak warning on + while stmt. + * gcc.dg/analyzer/phi-2.c: New test. + +2021-07-21 Bill Schmidt + + PR target/101531 + * gcc.target/powerpc/pr101129.c: Adjust. + +2021-07-21 H.J. Lu + + PR target/101549 + * gcc.target/i386/crc32-6.c: New test. + +2021-07-21 Harald Anlauf + + PR fortran/101514 + * gfortran.dg/pr101514.f90: New test. + +2021-07-21 Jakub Jelinek + + PR middle-end/101535 + * c-c++-common/gomp/pr101535-1.c: New test. + * c-c++-common/gomp/pr101535-2.c: New test. + +2021-07-21 Jakub Jelinek + + PR c++/101516 + * g++.dg/gomp/pr101516.C: New test. + +2021-07-21 Tobias Burnus + + * gfortran.dg/iso_c_binding_char_1.f90: Update dg-error. + * gfortran.dg/pr32599.f03: Use -std=-f2003 + update comment. + * gfortran.dg/bind_c_char_10.f90: New test. + * gfortran.dg/bind_c_char_6.f90: New test. + * gfortran.dg/bind_c_char_7.f90: New test. + * gfortran.dg/bind_c_char_8.f90: New test. + * gfortran.dg/bind_c_char_9.f90: New test. + +2021-07-21 Richard Sandiford + + * gcc.dg/unroll-10.c: New test. + +2021-07-21 Richard Sandiford + + * gcc.dg/unroll-9.c: New test/ + +2021-07-20 Martin Sebor + + PR middle-end/101397 + * gcc.dg/Warray-bounds-80.c: New test. + * gcc.dg/Warray-bounds-81.c: New test. + * gcc.dg/Warray-bounds-82.c: New test. + * gcc.dg/Warray-bounds-83.c: New test. + * gcc.dg/Warray-bounds-84.c: New test. + * gcc.dg/Wstringop-overflow-46.c: Adjust expected output. + +2021-07-20 Martin Sebor + + PR middle-end/101300 + * gcc.dg/uninit-pr101300.c: New test. + +2021-07-20 Michael Meissner + + PR testsuite/100167 + * gcc.target/powerpc/fold-vec-div-longlong.c: Fix expected code + generation on power10. + * gcc.target/powerpc/fold-vec-mult-longlong.c: Likewise. + +2021-07-20 Jakub Jelinek + + PR target/101384 + * gcc.dg/pr101384.c: New test. + * gcc.target/powerpc/pr101384-1.c: New test. + * gcc.target/powerpc/pr101384-2.c: New test. + +2021-07-20 Richard Sandiford + + PR testsuite/101506 + * gcc.target/aarch64/vect-vmaxv.c: Use an asm to hide the + true initial value of the reduction from the vectorizer. + * gcc.target/aarch64/vect-vaddv.c: Likewise. Make the vector + loop operate on exactly LANES (rather than LANES-1) iterations. + * gcc.target/aarch64/vect-fmaxv-fminv.x: Likewise. + +2021-07-20 Uroš Bizjak + + PR target/100182 + * gcc.target/i386/pr71245-1.c: Remove. + * gcc.target/i386/pr71245-2.c: Ditto. + +2021-07-20 Kewen Lin + + * gcc.target/powerpc/mul-vectorize-3.c: New test. + * gcc.target/powerpc/mul-vectorize-4.c: New test. + +2021-07-20 Kewen Lin + + PR tree-optimization/100696 + * gcc.target/i386/pr100637-3w.c: Adjust for mul_highpart recog. + +2021-07-19 Martin Sebor + + * gcc.target/powerpc/pr93658.c: Suppress valid warnings. + +2021-07-19 Iain Sandoe + + PR c++/95520 + * g++.dg/coroutines/pr95520.C: New test. + +2021-07-19 David Malcolm + + PR analyzer/101503 + * gcc.dg/analyzer/pr101503.c: New test. + +2021-07-19 Indu Bhagat + + * gcc.dg/debug/btf/btf.exp: Do not run BTF testsuite if target does not + support BTF format. Remove redundant check for AIX. + * gcc.dg/debug/ctf/ctf.exp: Do not run CTF testsuite if target does not + support CTF format. Remove redundant check for AIX. + * lib/gcc-dg.exp: Remove redundant check for AIX. + +2021-07-19 Andrew Stubbs + + PR target/100208 + * gcc.target/gcn/sram-ecc-1.c: New test. + * gcc.target/gcn/sram-ecc-2.c: New test. + * gcc.target/gcn/sram-ecc-3.c: New test. + * gcc.target/gcn/sram-ecc-4.c: New test. + * gcc.target/gcn/sram-ecc-5.c: New test. + * gcc.target/gcn/sram-ecc-6.c: New test. + * gcc.target/gcn/sram-ecc-7.c: New test. + * gcc.target/gcn/sram-ecc-8.c: New test. + +2021-07-19 Andrew Pinski + + PR target/101205 + * gcc.target/aarch64/csinv-neg-1.c: New test. + +2021-07-19 Marek Polacek + + DR 2126 + * g++.dg/cpp0x/constexpr-temp2.C: New test. + +2021-07-19 Richard Biener + + PR tree-optimization/101505 + * gcc.dg/vect/pr101505.c: New testcase. + +2021-07-18 H.J. Lu + + PR target/101492 + * gcc.target/i386/pr101492-1.c: New test. + * gcc.target/i386/pr101492-2.c: Likewise. + * gcc.target/i386/pr101492-3.c: Likewise. + * gcc.target/i386/pr101492-4.c: Likewise. + +2021-07-18 Harald Anlauf + + PR fortran/101084 + * gfortran.dg/fmt_nonchar_3.f90: New test. + +2021-07-18 H.J. Lu + + PR target/101495 + * gcc.target/i386/avx-vzeroupper-28.c: New test. + +2021-07-18 Antoni Boucher + + PR target/95498 + * jit.dg/all-non-failing-tests.h: New test. + * jit.dg/test-cast.c: New test. + +2021-07-17 Jan Hubicka + + * gcc.dg/tree-ssa/modref-6.c: New test. + +2021-07-17 Andrew MacLeod + + * gcc.dg/pr96542.c: New. + +2021-07-16 Patrick Palka + + PR c++/101233 + * g++.dg/cpp2a/class-deduction-alias10.C: New test. + +2021-07-16 Patrick Palka + + DR 960 + PR c++/99664 + * g++.dg/inherit/covariant23.C: New test. + +2021-07-16 David Malcolm + + * gcc.dg/analyzer/analyzer-decls.h (__analyzer_dump_state): New. + * gcc.dg/analyzer/dump-state.c: New test. + +2021-07-16 Martin Sebor + + PR testsuite/101468 + * gcc.dg/Wstringop-overflow-41.c: Adjust to avoid target-specific + failures. + * gcc.dg/Wstringop-overflow-42.c: Same. + * gcc.dg/Wstringop-overflow-68.c: Same. + * gcc.dg/Wstringop-overflow-70.c: Same. + * gcc.dg/Wstringop-overflow-71.c: Same. + * gcc.dg/strlenopt-95.c: Fix typos. + +2021-07-16 Tamar Christina + + PR middle-end/101457 + * gcc.dg/vect/vect-reduc-dot-19.c: Use long long. + * gcc.dg/vect/vect-reduc-dot-20.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-21.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-22.c: Likewise. + +2021-07-16 Marek Polacek + + * g++.dg/cpp1y/Wnarrowing2.C: New test. + * g++.dg/cpp1y/Wnarrowing2.h: New test. + +2021-07-16 Ilya Leoshkevich + + * g++.dg/ext/visibility/noPLT.C: Skip on s390x. + * g++.target/s390/mi-thunk.C: New test. + * gcc.target/s390/nodatarel-1.c: Move foostatic to the new + tests. + * gcc.target/s390/pr80080-4.c: Allow @PLT suffix. + * gcc.target/s390/risbg-ll-3.c: Likewise. + * gcc.target/s390/call.h: Common code for the new tests. + * gcc.target/s390/call-z10-pic-nodatarel.c: New test. + * gcc.target/s390/call-z10-pic.c: New test. + * gcc.target/s390/call-z10.c: New test. + * gcc.target/s390/call-z9-pic-nodatarel.c: New test. + * gcc.target/s390/call-z9-pic.c: New test. + * gcc.target/s390/call-z9.c: New test. + * gcc.target/s390/mfentry-m64-pic.c: New test. + * gcc.target/s390/tls.h: Common code for the new TLS tests. + * gcc.target/s390/tls-pic.c: New test. + * gcc.target/s390/tls.c: New test. + +2021-07-16 Jonathan Wright + + * gcc.target/aarch64/sve/extract_1.c: Split expected results + by big/little endian targets, restoring the old expected + result for big endian. + * gcc.target/aarch64/sve/extract_2.c: Likewise. + * gcc.target/aarch64/sve/extract_3.c: Likewise. + * gcc.target/aarch64/sve/extract_4.c: Likewise. + +2021-07-15 Uroš Bizjak + + PR target/101346 + * gcc.target/i386/pr101346.c: New test. + +2021-07-15 Martin Sebor + + PR middle-end/97027 + * gcc.dg/Wstringop-overflow-15.c: Remove an xfail. + * gcc.dg/Wstringop-overflow-47.c: Adjust xfails. + * gcc.dg/torture/pr69170.c: Avoid valid warnings. + * gcc.dg/torture/pr70025.c: Prune out a false positive. + * gcc.dg/vect/pr97769.c: Initialize a loop control variable. + * gcc.target/i386/pr92658-avx512bw-trunc.c: Increase buffer size + to avoid overflow. + * gcc.target/i386/pr92658-avx512f.c: Same. + * gcc.dg/Wstringop-overflow-68.c: New test. + * gcc.dg/Wstringop-overflow-69.c: New test. + * gcc.dg/Wstringop-overflow-70.c: New test. + * gcc.dg/Wstringop-overflow-71.c: New test. + * gcc.dg/strlenopt-95.c: New test. + +2021-07-15 David Malcolm + + PR analyzer/95006 + PR analyzer/94713 + PR analyzer/94714 + * g++.dg/analyzer/pr93212.C: Update location of warning. + * g++.dg/analyzer/pr94011.C: Add + -Wno-analyzer-use-of-uninitialized-value. + * g++.dg/analyzer/pr94503.C: Likewise. + * gcc.dg/analyzer/clobbers-1.c: Convert "f" from a local to a + param to avoid uninitialized warning. + * gcc.dg/analyzer/data-model-1.c (test_12): Add test for + uninitialized value on result of alloca. + (test_12a): Add expected warning. + (test_12c): Likewise. + (test_19): Likewise. + (test_29b): Likewise. + (test_29c): Likewise. + (test_37): Remove xfail. + (test_37a): Likewise. + * gcc.dg/analyzer/data-model-20.c: Add warning about leak. + * gcc.dg/analyzer/explode-2.c: Remove params; add + -Wno-analyzer-too-complex, -Wno-analyzer-malloc-leak, and xfails. + Initialize the locals. + * gcc.dg/analyzer/explode-2a.c: Initialize the locals. Add + expected leak. + * gcc.dg/analyzer/fgets-1.c: New test. + * gcc.dg/analyzer/fread-1.c: New test. + * gcc.dg/analyzer/malloc-1.c (test_16): Add expected warning. + (test_40): Likewise. + * gcc.dg/analyzer/memset-CVE-2017-18549-1.c: Check for + uninitialized padding. + * gcc.dg/analyzer/pr93355-localealias-feasibility.c (fread): New + decl. + (read_alias_file): Call it. + * gcc.dg/analyzer/pr94047.c: Add expected warnings. + * gcc.dg/analyzer/pr94851-2.c: Likewise. + * gcc.dg/analyzer/pr96841.c: Convert local to a param. + * gcc.dg/analyzer/pr98628.c: Likewise. + * gcc.dg/analyzer/pr99042.c: Updated expected location of leak + diagnostics. + * gcc.dg/analyzer/symbolic-1.c: Add expected warnings. + * gcc.dg/analyzer/symbolic-7.c: Likewise. + * gcc.dg/analyzer/torture/pr93649.c: Add expected warning. Skip + with -fno-fat-lto-objects. + * gcc.dg/analyzer/uninit-1.c: New test. + * gcc.dg/analyzer/uninit-2.c: New test. + * gcc.dg/analyzer/uninit-3.c: New test. + * gcc.dg/analyzer/uninit-4.c: New test. + * gcc.dg/analyzer/uninit-pr94713.c: New test. + * gcc.dg/analyzer/uninit-pr94714.c: New test. + * gcc.dg/analyzer/use-after-free-2.c: New test. + * gcc.dg/analyzer/use-after-free-3.c: New test. + * gcc.dg/analyzer/zlib-3.c: Add expected warning. + * gcc.dg/analyzer/zlib-6.c: Convert locals to params to avoid + uninitialized warnings. Remove xfail. + * gcc.dg/analyzer/zlib-6a.c: New test, based on the old version + of the above. + * gfortran.dg/analyzer/pr97668.f: Add + -Wno-analyzer-use-of-uninitialized-value and + -Wno-analyzer-too-complex. + +2021-07-15 David Malcolm + + * gcc.dg/analyzer/phi-1.c: New test. + +2021-07-15 Christophe Lyon + + * lib/target-supports.exp (arm_v8_2a_imm8_neon_ok_nocache): + Delete. + +2021-07-15 Christophe Lyon + + * gcc.target/arm/simd/vusdot-autovec.c: Use arm_v8_2a_i8mm_ok + effective-target. + +2021-07-15 Jakub Jelinek + + PR c++/101443 + * g++.dg/cpp0x/nullptr46.C: New test. + +2021-07-15 Tamar Christina + + PR middle-end/101457 + * gcc.dg/vect/vect-reduc-dot-17.c: Fix signs of scalar code. + * gcc.dg/vect/vect-reduc-dot-18.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-22.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-9.c: Likewise. + +2021-07-15 Martin Sebor + + * gcc.dg/Wvla-parameter-12.c: New test. + +2021-07-15 Bill Schmidt + + PR target/101129 + * gcc.target/powerpc/pr101129.c: New. + +2021-07-15 Jakub Jelinek + + PR middle-end/101437 + * gcc.c-torture/compile/pr101437.c: New test. + +2021-07-14 Peter Bergner + + * gcc.target/powerpc/mma-builtin-9.c: New test. + +2021-07-14 Patrick Palka + + PR c++/88252 + * g++.dg/cpp1z/class-deduction96.C: New test. + +2021-07-14 Jason Merrill + + * g++.dg/torture/pr100382.C: Pass -fno-delete-dead-exceptions. + +2021-07-14 Tamar Christina + + * gcc.dg/vect/vect-reduc-dot-11.c: Expect pass. + * gcc.dg/vect/vect-reduc-dot-15.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-19.c: Likewise. + * gcc.dg/vect/vect-reduc-dot-21.c: Likewise. + +2021-07-14 Andrew MacLeod + + * gcc.dg/pr80776-1.c: Remove xfail. + +2021-07-14 Marek Polacek + + PR c++/101371 + * g++.dg/cpp1y/constexpr-101371-2.C: New test. + * g++.dg/cpp1y/constexpr-101371.C: New test. + +2021-07-14 Harald Anlauf + + PR fortran/100949 + * gfortran.dg/pr100949.f90: New test. + +2021-07-14 Tamar Christina + + * lib/target-supports.exp + (check_effective_target_arm_v8_2a_imm8_neon_ok_nocache, + check_effective_target_arm_v8_2a_i8mm_neon_hw, + check_effective_target_vect_usdot_qi): New. + * gcc.dg/vect/vect-reduc-dot-9.c: New test. + * gcc.dg/vect/vect-reduc-dot-10.c: New test. + * gcc.dg/vect/vect-reduc-dot-11.c: New test. + * gcc.dg/vect/vect-reduc-dot-12.c: New test. + * gcc.dg/vect/vect-reduc-dot-13.c: New test. + * gcc.dg/vect/vect-reduc-dot-14.c: New test. + * gcc.dg/vect/vect-reduc-dot-15.c: New test. + * gcc.dg/vect/vect-reduc-dot-16.c: New test. + * gcc.dg/vect/vect-reduc-dot-17.c: New test. + * gcc.dg/vect/vect-reduc-dot-18.c: New test. + * gcc.dg/vect/vect-reduc-dot-19.c: New test. + * gcc.dg/vect/vect-reduc-dot-20.c: New test. + * gcc.dg/vect/vect-reduc-dot-21.c: New test. + * gcc.dg/vect/vect-reduc-dot-22.c: New test. + +2021-07-14 Tamar Christina + + * gcc.target/arm/simd/vusdot-autovec.c: New test. + +2021-07-14 Tamar Christina + + * gcc.target/aarch64/simd/vusdot-autovec.c: New test. + * gcc.target/aarch64/sve/vusdot-autovec.c: New test. + +2021-07-14 H.J. Lu + + PR target/101395 + * gcc.target/i386/pr101395-1.c: New test. + * gcc.target/i386/pr101395-2.c: Likewise. + * gcc.target/i386/pr101395-3.c: Likewise. + +2021-07-14 Richard Biener + + PR tree-optimization/101445 + * gcc.dg/vect/pr101445.c: New testcase. + +2021-07-14 Richard Biener + + * gcc.target/i386/vect-reduc-1.c: New testcase. + +2021-07-13 Jonathan Wright + + * gcc.target/aarch64/extract_zero_extend.c: Remove dump scan + for RTL pattern match. + * gcc.target/aarch64/narrow_high_combine.c: Add new tests. + * gcc.target/aarch64/simd/vmulx_laneq_f64_1.c: Update + scan-assembler regex to look for a scalar register instead of + lane 0 of a vector. + * gcc.target/aarch64/simd/vmulxd_laneq_f64_1.c: Likewise. + * gcc.target/aarch64/simd/vmulxs_lane_f32_1.c: Likewise. + * gcc.target/aarch64/simd/vmulxs_laneq_f32_1.c: Likewise. + * gcc.target/aarch64/simd/vqdmlalh_lane_s16.c: Likewise. + * gcc.target/aarch64/simd/vqdmlals_lane_s32.c: Likewise. + * gcc.target/aarch64/simd/vqdmlslh_lane_s16.c: Likewise. + * gcc.target/aarch64/simd/vqdmlsls_lane_s32.c: Likewise. + * gcc.target/aarch64/simd/vqdmullh_lane_s16.c: Likewise. + * gcc.target/aarch64/simd/vqdmullh_laneq_s16.c: Likewise. + * gcc.target/aarch64/simd/vqdmulls_lane_s32.c: Likewise. + * gcc.target/aarch64/simd/vqdmulls_laneq_s32.c: Likewise. + * gcc.target/aarch64/sve/dup_lane_1.c: Likewise. + * gcc.target/aarch64/sve/extract_1.c: Likewise. + * gcc.target/aarch64/sve/extract_2.c: Likewise. + * gcc.target/aarch64/sve/extract_3.c: Likewise. + * gcc.target/aarch64/sve/extract_4.c: Likewise. + * gcc.target/aarch64/sve/live_1.c: Update scan-assembler regex + cases to look for 'b' and 'h' registers instead of 'w'. + * gcc.target/arm/crypto-vsha1cq_u32.c: Update scan-assembler + regex to reflect lane 0 vector extractions being simplified + to scalar register moves. + * gcc.target/arm/crypto-vsha1h_u32.c: Likewise. + * gcc.target/arm/crypto-vsha1mq_u32.c: Likewise. + * gcc.target/arm/crypto-vsha1pq_u32.c: Likewise. + * gcc.target/arm/mve/intrinsics/vgetq_lane_f16.c: Extract + lane 1 as the moves for lane 0 now get optimized away. + * gcc.target/arm/mve/intrinsics/vgetq_lane_f32.c: Likewise. + * gcc.target/arm/mve/intrinsics/vgetq_lane_s16.c: Likewise. + * gcc.target/arm/mve/intrinsics/vgetq_lane_s32.c: Likewise. + * gcc.target/arm/mve/intrinsics/vgetq_lane_s8.c: Likewise. + * gcc.target/arm/mve/intrinsics/vgetq_lane_u16.c: Likewise. + * gcc.target/arm/mve/intrinsics/vgetq_lane_u32.c: Likewise. + * gcc.target/arm/mve/intrinsics/vgetq_lane_u8.c: Likewise. + +2021-07-13 Paul A. Clarke + + * gcc.target/powerpc/sse4_1-ptest-1.c: Copy from + gcc/testsuite/gcc.target/i386. + +2021-07-13 Andrew MacLeod + + PR tree-optimization/93781 + * gcc.dg/tree-ssa/pr93781-1.c: Check that call is removed. + +2021-07-13 Richard Sandiford + + * gcc.target/aarch64/sve/reduc_9.c: New test. + * gcc.target/aarch64/sve/reduc_9_run.c: Likewise. + * gcc.target/aarch64/sve/reduc_10.c: Likewise. + * gcc.target/aarch64/sve/reduc_10_run.c: Likewise. + * gcc.target/aarch64/sve/reduc_11.c: Likewise. + * gcc.target/aarch64/sve/reduc_11_run.c: Likewise. + * gcc.target/aarch64/sve/reduc_12.c: Likewise. + * gcc.target/aarch64/sve/reduc_12_run.c: Likewise. + * gcc.target/aarch64/sve/reduc_13.c: Likewise. + * gcc.target/aarch64/sve/reduc_13_run.c: Likewise. + * gcc.target/aarch64/sve/reduc_14.c: Likewise. + * gcc.target/aarch64/sve/reduc_14_run.c: Likewise. + * gcc.target/aarch64/sve/reduc_15.c: Likewise. + * gcc.target/aarch64/sve/reduc_15_run.c: Likewise. + +2021-07-13 Richard Sandiford + + * gcc.target/aarch64/sve/cond_arith_6.c: New test. + +2021-07-13 Jakub Jelinek + Richard Biener + + PR tree-optimization/101419 + * gcc.dg/builtin-object-size-10.c: Pass -fdump-tree-early_objsz-details + instead of -fdump-tree-objsz1-details in dg-options and adjust names + of dump file in scan-tree-dump. + * gcc.dg/pr101419.c: New test. + +2021-07-13 Richard Biener + + Revert: + 2021-07-13 Richard Biener + + * g++.dg/vect/slp-pr87105.cc: Adjust. + * gcc.dg/vect/bb-slp-pr54400.c: Likewise. + +2021-07-13 Michael Meissner + + PR testsuite/100166 + * gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c: Update + insn counts to account for power10 prefixed loads and stores. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c: + Likewise. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c: + Likewise. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c: + Likewise. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c: + Likewise. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c: + Likewise. + * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c: + Likewise. + * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c: Likewise. + * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c: Likewise. + * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c: Likewise. + * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c: Likewise. + * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c: + Likewise. + * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c: Likewise. + * gcc.target/powerpc/fold-vec-load-vec_xl-char.c: Likewise. + * gcc.target/powerpc/fold-vec-load-vec_xl-double.c: Likewise. + * gcc.target/powerpc/fold-vec-load-vec_xl-float.c: Likewise. + * gcc.target/powerpc/fold-vec-load-vec_xl-int.c: Likewise. + * gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c: Likewise. + * gcc.target/powerpc/fold-vec-load-vec_xl-short.c: Likewise. + * gcc.target/powerpc/fold-vec-splat-floatdouble.c: Likewise. + * gcc.target/powerpc/fold-vec-splat-longlong.c: Likewise. + * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c: + Likewise. + * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c: + Likewise. + * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c: + Likewise. + * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c: + Likewise. + * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c: + Likewise. + * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c: + Likewise. + * gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c: Likewise. + * gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c: + Likewise. + * gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c: Likewise. + * gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c: Likewise. + * gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c: + Likewise. + * gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c: Likewise. + * gcc.target/powerpc/fold-vec-store-vec_xst-char.c: Likewise. + * gcc.target/powerpc/fold-vec-store-vec_xst-double.c: Likewise. + * gcc.target/powerpc/fold-vec-store-vec_xst-float.c: Likewise. + * gcc.target/powerpc/fold-vec-store-vec_xst-int.c: Likewise. + * gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c: Likewise. + * gcc.target/powerpc/fold-vec-store-vec_xst-short.c: Likewise. + * gcc.target/powerpc/lvsl-lvsr.c: Likewise. + * gcc.target/powerpc/pr86731-fwrapv-longlong.c: Likewise. + +2021-07-13 Michael Meissner + + * gcc.target/powerpc/vec-splati-runnable.c: Run test with -O2 + optimization. Do not check what XXSPLTIDP generates if the value + is undefined. + +2021-07-12 Patrick Palka + + PR c++/79501 + PR c++/100983 + * g++.dg/cpp1z/class-deduction92.C: New test. + * g++.dg/cpp1z/class-deduction93.C: New test. + * g++.dg/cpp1z/class-deduction94.C: New test. + * g++.dg/cpp1z/class-deduction95.C: New test. + +2021-07-12 Uroš Bizjak + + PR target/101424 + * gcc.target/i386/pr101424.c: New test. + +2021-07-12 Andrew MacLeod + + * gcc.dg/tree-ssa/pr101335.c: New. + +2021-07-12 Andrew Pinski + + * gcc.dg/tree-ssa/pr96928-1.c: Update to similar as pr96928.c. + +2021-07-12 Richard Biener + + PR tree-optimization/101373 + * g++.dg/torture/pr101373.C: New testcase, XFAILed. + * gnat.dg/opt95.adb: Likewise. + +2021-07-12 Richard Biener + + * g++.dg/vect/slp-pr87105.cc: Adjust. + * gcc.dg/vect/bb-slp-pr54400.c: Likewise. + +2021-07-12 Richard Biener + + PR tree-optimization/101394 + * gcc.dg/torture/pr101394.c: New testcase. + +2021-07-12 Roger Sayle + Jakub Jelinek + + PR tree-optimization/101403 + * gcc.dg/pr101403.c: Avoid (unimportant) uninitialized variable. + +2021-07-12 prathamesh.kulkarni + + PR target/66791 + * gcc.target/arm/armv8_2-fp16-neon-2.c: Adjust. + +2021-07-12 prathamesh.kulkarni + + PR target/98435 + * gcc.target/arm/simd/pr98435.c: New test. + +2021-07-12 Roger Sayle + + PR tree-optimization/101403 + * gcc.dg/pr101403.c: New test case. + +2021-07-10 John David Anglin + + * gcc.dg/torture/pr100329.c: Require target lra. + * gcc.dg/torture/pr100519.c: Likewise. + +2021-07-10 Patrick Palka + + PR c++/82110 + * g++.dg/cpp0x/pr78765.C: Expect another conversion failure + diagnostic. + * g++.dg/template/sfinae14.C: Flip incorrect assertion. + * g++.dg/cpp2a/concepts-requires27.C: New test. + +2021-07-09 Jason Merrill + + PR c++/101098 + * g++.dg/concepts/explicit-spec1.C: New test. + +2021-07-09 Roger Sayle + Uroš Bizjak + + * gcc.target/i386/divmod-9.c: New test case. + +2021-07-09 Indu Bhagat + + PR testsuite/101269 + * gcc.dg/debug/btf/btf-datasec-1.c: Force -msdata=none with ilp32 for + powerpc based targets. + +2021-07-09 Patrick Palka + + PR c++/101181 + * g++.dg/cpp2a/concepts-requires26.C: New test. + * g++.dg/cpp2a/lambda-uneval16.C: New test. + +2021-07-09 Patrick Palka + + PR c++/101247 + * g++.dg/cpp2a/concepts-memtmpl4.C: Uncomment the commented out + example, which we now handle correctly. + * g++.dg/cpp2a/concepts-memtmpl5.C: New test. + * g++.dg/cpp2a/concepts-memtmpl5a.C: New test. + +2021-07-09 Xi Ruoyao + + * gcc.target/mips/cfgcleanup-jalr2.c: Remove -fno-inline and add + __attribute__((noinline)). + * gcc.target/mips/cfgcleanup-jalr3.c: Likewise. + +2021-07-09 Xi Ruoyao + + PR target/100760 + PR target/100761 + PR target/100762 + * gcc.target/mips/pr100760.c: New test. + * gcc.target/mips/pr100761.c: New test. + * gcc.target/mips/pr100762.c: New test. + +2021-07-09 Kewen Lin + + * gcc.target/powerpc/mod-vectorize.c: New test. + +2021-07-09 Kewen Lin + + * gcc.target/powerpc/div-vectorize-1.c: New test. + +2021-07-09 Kewen Lin + + * gcc.target/powerpc/mul-vectorize-1.c: New test. + * gcc.target/powerpc/mul-vectorize-2.c: New test. + +2021-07-08 Martin Sebor + + * gcc.dg/Wstringop-overflow-43.c: Remove an xfail. + +2021-07-08 Martin Sebor + + PR testsuite/100451 + * g++.dg/warn/Warray-bounds-20.C: Adjust expected output for LP32. + +2021-07-08 Martin Sebor + + * g++.dg/warn/Warray-bounds-11.C: Avoid including . + * g++.dg/warn/Warray-bounds-13.C: Same. + +2021-07-08 Marek Polacek + + PR c++/101087 + * g++.dg/cpp0x/noexcept70.C: New test. + +2021-07-08 Martin Jambor + + PR ipa/101066 + * gcc.dg/ipa/pr101066.c: New test. + +2021-07-08 Martin Sebor + + PR bootstrap/101374 + * c-c++-common/Warray-bounds-3.c: Xfail assertion. + * c-c++-common/Warray-bounds-4.c: Same. + +2021-07-08 Christophe Lyon + + * gcc.dg/debug/pr57351.c: Require arm_arch_v7a_ok + effective-target. + +2021-07-08 Richard Sandiford + + * gcc.target/aarch64/sve/acle/general/cntb_1.c: New test. + +2021-07-08 Roger Sayle + Richard Biener + + PR tree-optimization/40210 + * gcc.dg/builtin-bswap-13.c: New test. + * gcc.dg/builtin-bswap-14.c: New test. + +2021-07-08 Michael Meissner + + PR target/100809 + * gcc.target/powerpc/p10-vdivq-vmodq.c: New test. + +2021-07-07 David Malcolm + + * gcc.dg/analyzer/pattern-test-2.c: Update expected results. + * gcc.dg/plugin/analyzer_gil_plugin.c + (gil_state_machine::on_condition): Remove. + +2021-07-07 Martin Sebor + + PR tree-optimization/100137 + PR tree-optimization/99121 + PR tree-optimization/97027 + * c-c++-common/Warray-bounds-3.c: Remove xfail + * c-c++-common/Warray-bounds-4.c: Add an expected warning. + * c-c++-common/Warray-bounds-9.c: New test. + * c-c++-common/Warray-bounds-10.c: New test. + * g++.dg/asan/asan_test.C: Suppress expected warnings. + * g++.dg/pr95768.C: Same. + * g++.dg/warn/Warray-bounds-10.C: Adjust text of expected messages. + * g++.dg/warn/Warray-bounds-11.C: Same. + * g++.dg/warn/Warray-bounds-12.C: Same. + * g++.dg/warn/Warray-bounds-13.C: Same. + * g++.dg/warn/Warray-bounds-17.C: Same. + * g++.dg/warn/Warray-bounds-20.C: Same. + * gcc.dg/Warray-bounds-29.c: Same. + * gcc.dg/Warray-bounds-30.c: Add xfail. + * gcc.dg/Warray-bounds-31.c: Adjust text of expected messages. + * gcc.dg/Warray-bounds-32.c: Same. + * gcc.dg/Warray-bounds-52.c: Same. + * gcc.dg/Warray-bounds-53.c: Same. + * gcc.dg/Warray-bounds-58.c: Remove xfail. + * gcc.dg/Warray-bounds-63.c: Adjust text of expected messages. + * gcc.dg/Warray-bounds-66.c: Same. + * gcc.dg/Warray-bounds-69.c: Same. + * gcc.dg/Wstringop-overflow-34.c: Same. + * gcc.dg/Wstringop-overflow-47.c: Same. + * gcc.dg/Wstringop-overflow-61.c: Same. + * gcc.dg/Warray-bounds-77.c: New test. + * gcc.dg/Warray-bounds-78.c: New test. + * gcc.dg/Warray-bounds-79.c: New test. + +2021-07-07 Christophe Lyon + + PR debug/101321 + * gcc.dg/debug/btf/btf-bitfields-3.c: Remove -fno-short-enums. + +2021-07-07 Richard Biener + + PR tree-optimization/34195 + * gcc.dg/vect/pr34195.c: New testcase. + +2021-07-07 Richard Biener + + PR tree-optimization/99728 + * g++.dg/opt/pr99728.C: New testcase. + +2021-07-07 liuhongt + + * gcc.target/i386/avx512f-vect-fmaddsubXXXpd.c: New test. + * gcc.target/i386/avx512f-vect-fmaddsubXXXps.c: New test. + * gcc.target/i386/avx512f-vect-fmsubaddXXXpd.c: New test. + * gcc.target/i386/avx512f-vect-fmsubaddXXXps.c: New test. + +2021-07-06 Indu Bhagat + + PR debug/101283 + * gcc.dg/debug/btf/btf-bitfields-3.c: Remove the check on btm_type. + +2021-07-06 Indu Bhagat + + PR debug/101283 + * gcc.dg/debug/ctf/ctf-attr-mode-1.c: Remove the check for ctv_typeidx. + +2021-07-06 Martin Sebor + + PR c++/55881 + * g++.dg/warn/uninit-pr55881.C: New test. + +2021-07-06 Martin Sebor + + PR tree-optimization/86650 + * gcc.dg/Warray-bounds-76.c: New test. + +2021-07-06 Indu Bhagat + + PR debug/101283 + * gcc.dg/debug/ctf/ctf-struct-array-2.c: Adjust the value in the testcase. + +2021-07-06 Martin Sebor + + * gcc.dg/format/gcc_diag-10.c: Update expected warnings. + * gcc.dg/plugin/diagnostic_plugin_test_inlining.c: Remove %G. + +2021-07-06 Martin Sebor + + * gcc.dg/Wobjsize-1.c: Prune expected output. + * gcc.dg/Warray-bounds-71.c: New test. + * gcc.dg/Warray-bounds-71.h: New test header. + * gcc.dg/Warray-bounds-72.c: New test. + * gcc.dg/Warray-bounds-73.c: New test. + * gcc.dg/Warray-bounds-74.c: New test. + * gcc.dg/Warray-bounds-75.c: New test. + * gcc.dg/Wfree-nonheap-object-4.c: Adjust expected output. + * gcc.dg/Wfree-nonheap-object-5.c: New test. + * gcc.dg/Wfree-nonheap-object-6.c: New test. + * gcc.dg/pragma-diag-10.c: New test. + * gcc.dg/pragma-diag-9.c: New test. + * gcc.dg/uninit-suppress_3.c: New test. + * gcc.dg/pr79214.c: Xfail tests. + * gcc.dg/tree-ssa/builtin-sprintf-warn-27.c: New test. + * gcc.dg/format/c90-printf-1.c: Adjust expected output. + +2021-07-06 Uroš Bizjak + + PR target/97194 + * gcc.target/i386/sse4_1-vec-set-1a.c: New test. + * gcc.target/i386/sse4_1-vec-set-2a.c: Ditto. + +2021-07-06 Richard Biener + + * gcc.target/i386/vect-fmaddsubXXXpd.c: New testcase. + * gcc.target/i386/vect-fmaddsubXXXps.c: Likewise. + * gcc.target/i386/vect-fmsubaddXXXpd.c: Likewise. + * gcc.target/i386/vect-fmsubaddXXXps.c: Likewise. + +2021-07-06 Andrew Pinski + + PR tree-optimization/101256 + * g++.dg/torture/pr101256.C: New test. + +2021-07-06 Thomas Koenig + + PR fortran/100227 + * gfortran.dg/implied_do_io_7.f90: New test. + +2021-07-06 Kewen Lin + + PR rtl-optimization/100328 + * gcc.target/aarch64/sve/acle/asm/div_f16.c: Remove one xfail. + * gcc.target/aarch64/sve/acle/asm/div_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/div_f64.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/divr_f16.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/divr_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/divr_f64.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/mad_f16.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/mad_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/mad_f64.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/mla_f16.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/mla_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/mla_f64.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/mls_f16.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/mls_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/mls_f64.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/msb_f16.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/msb_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/msb_f64.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/mulx_f16.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/mulx_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/mulx_f64.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/nmad_f16.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/nmad_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/nmad_f64.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/nmla_f16.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/nmla_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/nmla_f64.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/nmls_f16.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/nmls_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/nmls_f64.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/nmsb_f16.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/nmsb_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/nmsb_f64.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/sub_f16.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/sub_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/sub_f64.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/subr_f16.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/subr_f32.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/subr_f64.c: Likewise. + +2021-07-06 Indu Bhagat + + PR debug/101283 + * gcc.dg/debug/btf/btf-cvr-quals-1.c: Use -gdwarf-4 on Darwin targets. + * gcc.dg/debug/ctf/ctf-cvr-quals-1.c: Likewise. + +2021-07-05 Andrew Pinski + + PR tree-optimization/101039 + * gcc.dg/tree-ssa/phi-opt-15.c: Update test to expect + ABSU and still not expect ABS_EXPR. + * gcc.dg/tree-ssa/phi-opt-23.c: New test. + * gcc.dg/tree-ssa/phi-opt-24.c: New test. + +2021-07-05 Christophe Lyon + + PR debug/101321 + * gcc.dg/debug/btf/btf-bitfields-3.c: Add -fno-short-enums. + +2021-07-05 Richard Biener + + PR testsuite/101299 + * gcc.dg/vect/bb-slp-74.c: Add vect_double requires. + +2021-07-05 liuhongt + + * gcc.target/i386/pr92658-avx512vl.c: Refine testcase. + +2021-07-03 David Edelsohn + + * gcc.dg/debug/btf/btf.exp: Skip on AIX. + * gcc.dg/debug/ctf/ctf.exp: Skip on AIX. + * lib/gcc-dg.exp (gcc-dg-target-supports-debug-format): AIX + doesn't support CTF. + (gcc-dg-debug-runtest): Move CTF support within + target support format test. + +2021-07-03 H.J. Lu + + PR middle-end/101294 + * gcc.dg/pr101294.c: New test. + +2021-07-03 Iain Buclaw + + PR d/101273 + * gdc.dg/torture/pr101273.d: New test. + +2021-07-02 Iain Buclaw + + PR d/101282 + * gdc.dg/torture/pr101282.d: New test. + +2021-07-02 Jakub Jelinek + + * g++.dg/gomp/attrs-1.C: New test. + * g++.dg/gomp/attrs-2.C: New test. + * g++.dg/gomp/attrs-3.C: New test. + +2021-07-02 Jakub Jelinek + + PR c/101297 + * c-c++-common/gomp/atomic-24.c: New test. + +2021-07-02 Patrick Palka + + PR c++/101247 + * g++.dg/cpp2a/concepts-memtmpl4.C: New test. + +2021-07-02 Peter Bergner + + * gcc.target/powerpc/mma-builtin-7.c: New test. + * gcc.target/powerpc/mma-builtin-8.c: New test. + +2021-07-02 Andrew MacLeod + + PR tree-optimization/101223 + * gcc.dg/pr101223.c: New. + +2021-07-02 David Faust + + * gcc.dg/debug/btf/btf-float-1.c: New test. + * gcc.dg/debug/btf/btf-function-3.c: Use different unrepresentable type. + * gcc.dg/debug/btf/btf-struct-2.c: Likewise. + * gcc.dg/debug/btf/btf-variables-2.c: Likewise. + +2021-07-02 Maxim Kuvyrkov + + * lib/gcc-defs.exp: Add a comment. + +2021-07-02 Richard Biener + + PR tree-optimization/101293 + * gcc.dg/tree-ssa/ssa-lim-15.c: New testcase. + +2021-07-02 Jakub Jelinek + + PR target/101286 + * gcc.target/i386/avx2-pr101286.c: New test. + +2021-07-02 Hongyu Wang + + * gcc.target/i386/keylocker-aesdec128kl.c: Update test. + * gcc.target/i386/keylocker-aesdec256kl.c: Likewise. + * gcc.target/i386/keylocker-aesdecwide128kl.c: Likewise. + * gcc.target/i386/keylocker-aesdecwide256kl.c: Likewise. + * gcc.target/i386/keylocker-aesenc128kl.c: Likewise. + * gcc.target/i386/keylocker-aesenc256kl.c: Likewise. + * gcc.target/i386/keylocker-aesencwide128kl.c: Likewise. + * gcc.target/i386/keylocker-aesencwide256kl.c: Likewise. + +2021-07-01 Michael Meissner + + * gcc.target/powerpc/float128-cmove.c: New test. + * gcc.target/powerpc/float128-minmax-3.c: New test. + +2021-07-01 Eric Botcazou + + * c-c++-common/dump-ada-spec-14.c: Adjust dg-warning directive. + +2021-07-01 H.J. Lu + + PR target/100865 + * gcc.target/i386/avx512f-broadcast-pr87767-1.c: Expect integer + broadcast. + * gcc.target/i386/avx512f-broadcast-pr87767-5.c: Likewise. + * gcc.target/i386/avx512vl-broadcast-pr87767-1.c: Likewise. + * gcc.target/i386/avx512vl-broadcast-pr87767-5.c: Likewise. + * gcc.target/i386/avx512f_cond_move.c: Also pass + -mprefer-vector-width=512 and expect integer broadcast. + * gcc.target/i386/pr100865-1.c: New test. + * gcc.target/i386/pr100865-2.c: Likewise. + * gcc.target/i386/pr100865-3.c: Likewise. + * gcc.target/i386/pr100865-4a.c: Likewise. + * gcc.target/i386/pr100865-4b.c: Likewise. + * gcc.target/i386/pr100865-5a.c: Likewise. + * gcc.target/i386/pr100865-5b.c: Likewise. + * gcc.target/i386/pr100865-6a.c: Likewise. + * gcc.target/i386/pr100865-6b.c: Likewise. + * gcc.target/i386/pr100865-6c.c: Likewise. + * gcc.target/i386/pr100865-7a.c: Likewise. + * gcc.target/i386/pr100865-7b.c: Likewise. + * gcc.target/i386/pr100865-7c.c: Likewise. + * gcc.target/i386/pr100865-8a.c: Likewise. + * gcc.target/i386/pr100865-8b.c: Likewise. + * gcc.target/i386/pr100865-8c.c: Likewise. + * gcc.target/i386/pr100865-9a.c: Likewise. + * gcc.target/i386/pr100865-9b.c: Likewise. + * gcc.target/i386/pr100865-9c.c: Likewise. + * gcc.target/i386/pr100865-10a.c: Likewise. + * gcc.target/i386/pr100865-10b.c: Likewise. + * gcc.target/i386/pr100865-11a.c: Likewise. + * gcc.target/i386/pr100865-11b.c: Likewise. + * gcc.target/i386/pr100865-11c.c: Likewise. + * gcc.target/i386/pr100865-12a.c: Likewise. + * gcc.target/i386/pr100865-12b.c: Likewise. + * gcc.target/i386/pr100865-12c.c: Likewise. + +2021-07-01 Richard Biener + + PR tree-optimization/101280 + PR tree-optimization/101173 + * gcc.dg/tree-ssa/loop-interchange-16.c: New testcase. + +2021-07-01 Richard Biener + + PR tree-optimization/101278 + * gcc.dg/torture/pr101278.c: New testcase. + +2021-07-01 Richard Biener + + PR tree-optimization/100778 + * gcc.dg/torture/pr100778.c: New testcase. + +2021-07-01 Uroš Bizjak + + PR target/101044 + * gcc.target/i386/pr101044.c: New test. + +2021-07-01 Richard Biener + + PR tree-optimization/101178 + * gcc.dg/vect/bb-slp-72.c: New testcase. + * gcc.dg/vect/bb-slp-73.c: Likewise. + * gcc.dg/vect/bb-slp-74.c: Likewise. + +2021-07-01 Jakub Jelinek + + PR debug/101266 + * gcc.dg/pr101266.c: New test. + +2021-07-01 Patrick Palka + + PR c++/101194 + * g++.dg/cpp0x/constexpr-empty16.C: New test. + +2021-07-01 Patrick Palka + + PR c++/96204 + * g++.dg/template/access41.C: New test. + * g++.dg/template/access41a.C: New test. + +2021-06-30 Indu Bhagat + + * gcc.dg/debug/ctf/ctf-skip-types-4.c: Add dg-add-options float64 and + float64x. + +2021-06-30 Michael Meissner + + * gcc.target/powerpc/float128-minmax.c: Adjust expected code for + power10. + * lib/target-supports.exp (check_effective_target_has_arch_pwr10): + New. + +2021-06-30 Patrick Palka + + * g++.dg/cpp2a/concepts-access2.C: New test. + +2021-06-30 Marek Polacek + + PR c++/100975 + DR 2397 + * g++.dg/cpp0x/auto24.C: Remove dg-error. + * g++.dg/cpp0x/auto3.C: Adjust dg-error. + * g++.dg/cpp0x/auto42.C: Likewise. + * g++.dg/cpp0x/initlist75.C: Likewise. + * g++.dg/cpp0x/initlist80.C: Likewise. + * g++.dg/diagnostic/auto1.C: Remove dg-error. + * g++.dg/cpp23/auto-array.C: New test. + +2021-06-30 Richard Biener + + PR tree-optimization/101267 + * gfortran.dg/pr101267.f90: New testcase. + +2021-06-30 David Malcolm + + PR analyzer/95006 + * gcc.dg/analyzer/clobbers-1.c: New test. + * gcc.dg/analyzer/clobbers-2.c: New test. + * gcc.dg/analyzer/data-model-1.c (test_26): Mark xfail as fixed. + (test_28): Likewise. + (test_52): Likewise. Add coverage for end of buffer. + * gcc.dg/analyzer/explode-1.c: Add leak warning. + * gcc.dg/analyzer/memset-1.c (test_3): Mark xfail as fixed. + (test_4): Use char. Mark xfail as fixed. + (test_6b): New. + (test_7): Mark xfail as fixed. Add coverage for start of buffer. + (test_8): New. + (test_9): New. + * gcc.dg/analyzer/memset-CVE-2017-18549-1.c: New test. + * gcc.dg/analyzer/symbolic-8.c: New test. + +2021-06-30 Christophe Lyon + + * gcc.dg/debug/ctf/ctf-skip-types-2.c: Add dg-add-options float16. + +2021-06-30 Richard Biener + + PR tree-optimization/101264 + * gfortran.dg/pr101264.f90: New testcase. + +2021-06-30 liuhongt + + PR target/101248 + * gcc.target/i386/pr101248.c: New test. + +2021-06-29 Andrew MacLeod + + * gcc.dg/pr101254.c: New. + +2021-06-29 Uroš Bizjak + + PR target/95046 + * gcc.target/i386/pr95046-9.c: New test. + +2021-06-29 Richard Biener + + * gcc.dg/vect/pr67790.c: Un-XFAIL. + * gcc.dg/vect/bb-slp-71.c: New testcase. + +2021-06-29 Jakub Jelinek + + PR c++/101210 + * g++.dg/ubsan/pr101210.C: New test. + +2021-06-29 Richard Biener + + PR tree-optimization/101242 + * gcc.dg/vect/bb-slp-pr101242.c: New testcase. + * gcc.dg/vect/pr67790.c: XFAIL scan for zero VEC_PERM_EXPR. + +2021-06-28 Martin Sebor + + * g++.dg/uninit-pr74762.C: New test. + * g++.dg/warn/uninit-pr74765.C: Same. + +2021-06-28 Indu Bhagat + David Faust + + * lib/gcc-dg.exp (gcc-dg-frontend-supports-ctf): New procedure. + (gcc-dg-debug-runtest): Add -gctf support. + * gcc.dg/debug/btf/btf-1.c: New test. + * gcc.dg/debug/btf/btf-2.c: Likewise. + * gcc.dg/debug/btf/btf-anonymous-struct-1.c: Likewise. + * gcc.dg/debug/btf/btf-anonymous-union-1.c: Likewise. + * gcc.dg/debug/btf/btf-array-1.c: Likewise. + * gcc.dg/debug/btf/btf-bitfields-1.c: Likewise. + * gcc.dg/debug/btf/btf-bitfields-2.c: Likewise. + * gcc.dg/debug/btf/btf-bitfields-3.c: Likewise. + * gcc.dg/debug/btf/btf-cvr-quals-1.c: Likewise. + * gcc.dg/debug/btf/btf-enum-1.c: Likewise. + * gcc.dg/debug/btf/btf-forward-1.c: Likewise. + * gcc.dg/debug/btf/btf-function-1.c: Likewise. + * gcc.dg/debug/btf/btf-function-2.c: Likewise. + * gcc.dg/debug/btf/btf-int-1.c: Likewise. + * gcc.dg/debug/btf/btf-pointers-1.c: Likewise. + * gcc.dg/debug/btf/btf-struct-1.c: Likewise. + * gcc.dg/debug/btf/btf-typedef-1.c: Likewise. + * gcc.dg/debug/btf/btf-union-1.c: Likewise. + * gcc.dg/debug/btf/btf-variables-1.c: Likewise. + * gcc.dg/debug/btf/btf.exp: Likewise. + * gcc.dg/debug/ctf/ctf-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-anonymous-struct-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-anonymous-union-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-array-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-array-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-array-3.c: Likewise. + * gcc.dg/debug/ctf/ctf-array-4.c: Likewise. + * gcc.dg/debug/ctf/ctf-attr-mode-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-attr-used-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-bitfields-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-bitfields-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-bitfields-3.c: Likewise. + * gcc.dg/debug/ctf/ctf-bitfields-4.c: Likewise. + * gcc.dg/debug/ctf/ctf-complex-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-cvr-quals-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-cvr-quals-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-cvr-quals-3.c: Likewise. + * gcc.dg/debug/ctf/ctf-cvr-quals-4.c: Likewise. + * gcc.dg/debug/ctf/ctf-enum-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-enum-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-file-scope-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-float-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-forward-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-forward-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-func-index-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-function-pointers-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-function-pointers-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-function-pointers-3.c: Likewise. + * gcc.dg/debug/ctf/ctf-functions-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-int-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-objt-index-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-pointers-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-pointers-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-preamble-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-skip-types-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-skip-types-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-skip-types-3.c: Likewise. + * gcc.dg/debug/ctf/ctf-skip-types-4.c: Likewise. + * gcc.dg/debug/ctf/ctf-skip-types-5.c: Likewise. + * gcc.dg/debug/ctf/ctf-skip-types-6.c: Likewise. + * gcc.dg/debug/ctf/ctf-str-table-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-struct-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-struct-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-struct-array-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-struct-pointer-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-struct-pointer-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-typedef-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-typedef-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-typedef-3.c: Likewise. + * gcc.dg/debug/ctf/ctf-typedef-struct-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-typedef-struct-2.c: Likewise. + * gcc.dg/debug/ctf/ctf-typedef-struct-3.c: Likewise. + * gcc.dg/debug/ctf/ctf-union-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-variables-1.c: Likewise. + * gcc.dg/debug/ctf/ctf-variables-2.c: Likewise. + * gcc.dg/debug/ctf/ctf.exp: Likewise. + * gcc.dg/debug/btf/btf-bitfields-4.c: New file. + * gcc.dg/debug/btf/btf-datasec-1.c: New file. + * gcc.dg/debug/btf/btf-function-3.c: New file. + * gcc.dg/debug/btf/btf-pointers-2.c: New file. + * gcc.dg/debug/btf/btf-struct-2.c: New file. + * gcc.dg/debug/btf/btf-variables-2.c: New file. + * gcc.dg/debug/btf/btf-variables-3.c: New file. + * gcc.dg/debug/ctf/ctf-debug-1.c: New file. + * gcc.dg/debug/ctf/ctf-debug-2.c: New file. + * gcc.dg/debug/ctf/ctf-function-pointers-4.c: New file. + * gcc.dg/debug/ctf/ctf-skip-types-7.c: New file. + * gcc.dg/debug/ctf/ctf-skip-types-8.c: New file. + * gcc.dg/debug/ctf/ctf-struct-array-2.c: New file. + +2021-06-28 Indu Bhagat + + * lib/gcc-dg.exp (gcc-dg-target-supports-debug-format): New procedure. + +2021-06-28 Martin Jambor + + PR ipa/93385 + * gcc.dg/ipa/pr93385.c: New test. + * gcc.dg/ipa/ipa-sra-23.c: Likewise. + * gcc.dg/ipa/ipa-sra-24.c: Likewise. + * g++.dg/ipa/ipa-sra-4.C: Likewise. + +2021-06-28 Richard Biener + + PR tree-optimization/101229 + * gcc.dg/torture/pr101229.c: New testcase. + +2021-06-28 Richard Biener + + PR tree-optimization/101207 + * gcc.dg/vect/bb-slp-pr101207.c: New testcase. + +2021-06-28 Richard Biener + + PR tree-optimization/101173 + * gcc.dg/torture/pr101173.c: New testcase. + +2021-06-28 liuhongt + + PR target/100648 + * g++.target/i386/avx2-pr54700-2.C: Adjust testcase. + * g++.target/i386/avx512vl-pr54700-1a.C: New test. + * g++.target/i386/avx512vl-pr54700-1b.C: New test. + * g++.target/i386/avx512vl-pr54700-2a.C: New test. + * g++.target/i386/avx512vl-pr54700-2b.C: New test. + * gcc.target/i386/avx512vl-pr100648.c: New test. + * gcc.target/i386/avx512vl-blendv-1.c: New test. + * gcc.target/i386/avx512vl-blendv-2.c: New test. + +2021-06-28 liuhongt + + * gcc.target/i386/funcspec-8.c: Replace + __builtin_ia32_blendvpd with __builtin_ia32_roundps_az. + * gcc.target/i386/blendv-1.c: New test. + * gcc.target/i386/blendv-2.c: New test. + +2021-06-27 Andrew Pinski + + * gcc.dg/torture/pr101230-1.c: New test. + +2021-06-26 Patrick Palka + + PR c++/96204 + * g++.dg/template/access40.C: New test. + * g++.dg/template/access40a.C: New test. + +2021-06-26 Jason Merrill + + PR c++/101040 + PR c++/97566 + * g++.dg/cpp2a/no_unique_address13.C: New test. + +2021-06-26 Marek Polacek + + PR c++/100752 + * g++.dg/cpp0x/noexcept69.C: New test. + * g++.dg/parse/saved1.C: Adjust dg-error. + * g++.dg/template/crash50.C: Likewise. + +2021-06-25 David Malcolm + + * jit.dg/test-vector-rvalues.cc (check_div): Add specialization + for v4f, to avoid relying on exact floating-point equality. + * jit.dg/test-vector-types.cc (check_div): Likewise. + +2021-06-25 David Malcolm + + * jit.dg/test-asm.c: Remove i?86-*-* from target specifier. + * jit.dg/test-asm.cc: Likewise. + +2021-06-25 Martin Sebor + + PR middle-end/101216 + * gcc.dg/Wnonnull-7.c: New test. + +2021-06-25 Richard Biener + + PR tree-optimization/101202 + * gcc.dg/torture/pr101202.c: New testcase. + +2021-06-25 Xi Ruoyao + + * g++.dg/no-stack-protector-attr-3.C (dg-final): Adjust for MIPS. + +2021-06-25 liuhongt + + PR target/101185 + * gcc.target/i386/bitwise_mask_op-3.c: Add xfail to + temporarily avoid regression, eventually xfail should be + removed. + +2021-06-24 Andrew MacLeod + + * gcc.dg/tree-ssa/evrp30.c: New. + +2021-06-24 Andrew MacLeod + + * gcc.dg/tree-ssa/pr101189.c: New. + +2021-06-24 Patrick Palka + + PR c++/98832 + * g++.dg/cpp2a/class-deduction-alias9.C: New test. + +2021-06-24 Patrick Palka + + PR c++/101182 + * g++.dg/cpp2a/concepts-requires25.C: New test. + +2021-06-24 Jakub Jelinek + + PR c/101171 + * gcc.dg/pr101171.c: New test. + +2021-06-24 Uroš Bizjak + + PR target/89021 + * gcc.dg/vect/vect-nb-iter-ub-3.c (dg-additional-options): + Add --param vect-epilogues-nomask=0. + * gcc.target/i386/pr97249-1.c (foo): Add #pragma GCC unroll + to avoid loop vectorization. + (foo1): Ditto. + (foo2): Ditto. + +2021-06-24 Richard Biener + + * gcc.target/i386/vect-addsubv2df.c: New testcase. + * gcc.target/i386/vect-addsubv4sf.c: Likewise. + * gcc.target/i386/vect-addsubv4df.c: Likewise. + * gcc.target/i386/vect-addsubv8sf.c: Likewise. + * gcc.target/i386/vect-addsub-2.c: Likewise. + * gcc.target/i386/vect-addsub-3.c: Likewise. + +2021-06-24 Jakub Jelinek + + PR middle-end/101170 + * gcc.dg/pr101170.c: New test. + +2021-06-24 Jakub Jelinek + + PR middle-end/101172 + * gcc.dg/pr101172.c: New test. + +2021-06-24 Ilya Leoshkevich + + * gcc.target/s390/mnop-mcount-m31-mzarch.c: Adapt to the new + prologue size. + * gcc.target/s390/mnop-mcount-m64.c: Likewise. + +2021-06-24 Jakub Jelinek + + * c-c++-common/gomp/target-in-reduction-1.c: New test. + * c-c++-common/gomp/clauses-1.c: Add in_reduction clauses on + target or combined target constructs. + +2021-06-24 Richard Biener + + PR tree-optimization/101105 + * gcc.dg/torture/pr101105.c: New testcase. + +2021-06-24 liuhongt + + PR target/98434 + * gcc.target/i386/pr98434-1.c: New test. + * gcc.target/i386/pr98434-2.c: New test. + * gcc.target/i386/avx512vl-pr95488-1.c: Adjust testcase. + +2021-06-23 Patrick Palka + + PR c++/101174 + * g++.dg/cpp1z/class-deduction-access3.C: New test. + * g++.dg/cpp1z/class-deduction91.C: New test. + +2021-06-23 Aaron Sawdey + + * gcc.target/powerpc/pcrel-opt-inc-di.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-ld-df.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-ld-di.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-ld-hi.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-ld-qi.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-ld-sf.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-ld-si.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-ld-vector.c: Enable -mpcrel-opt to + test it. + * gcc.target/powerpc/pcrel-opt-st-df.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-st-di.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-st-hi.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-st-qi.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-st-sf.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-st-si.c: Enable -mpcrel-opt to test it. + * gcc.target/powerpc/pcrel-opt-st-vector.c: Enable -mpcrel-opt to + test it. + +2021-06-23 Xi Ruoyao + + * gcc.c-torture/execute/950704-1.c: Add -fwrapv to avoid + undefined behavior. + +2021-06-23 Patrick Palka + + PR c++/86439 + * g++.dg/cpp1z/class-deduction88.C: New test. + * g++.dg/cpp1z/class-deduction89.C: New test. + * g++.dg/cpp1z/class-deduction90.C: New test. + +2021-06-23 Uroš Bizjak + + PR target/101175 + * gcc.target/i386/pr101175.c: New test. + +2021-06-23 Andre Vehreschild + + PR fortran/100337 + * gfortran.dg/coarray_collectives_17.f90: New test. + +2021-06-22 Sandra Loosemore + Tobias Burnus + + PR fortran/93524 + * gfortran.dg/pr93524.c: New. + * gfortran.dg/pr93524.f90: New. + +2021-06-22 David Malcolm + + PR analyzer/101143 + * gcc.dg/analyzer/pr101143.c: New test. + +2021-06-22 Richard Biener + + PR middle-end/101156 + * gcc.dg/pr101156.c: New testcase. + +2021-06-22 Jakub Jelinek + + PR tree-optimization/101159 + * gcc.c-torture/compile/pr101159.c: New test. + +2021-06-22 Jakub Jelinek + + PR middle-end/101160 + * g++.target/i386/empty-class1.C: Require lp64 effective target + instead of x86_64-*-*. + * g++.target/i386/empty-class2.C: New test. + +2021-06-22 Jakub Jelinek + Andrew Pinski + + PR tree-optimization/101162 + * g++.dg/opt/pr101162.C: New test. + +2021-06-22 Richard Biener + + PR tree-optimization/101151 + * gcc.dg/torture/pr101151.c: New testcase. + +2021-06-22 Kito Cheng + + * g++.dg/modules/omp-1_a.C: Check pthread is available for + dg-module-cmi. + * g++.dg/modules/omp-2_a.C: Ditto. + +2021-06-22 Richard Biener + + PR tree-optimization/101158 + * gfortran.dg/pr101158.f90: New testcase. + +2021-06-22 Jakub Jelinek + + PR target/11877 + * gcc.target/i386/pr11877-2.c: New test. + +2021-06-22 liuhongt + + PR tree-optimization/97770 + * gcc.target/i386/avx512bitalg-pr97770-1.c: Remove xfail. + * gcc.target/i386/avx512vpopcntdq-pr97770-1.c: Remove xfail. + +2021-06-22 liuhongt + + PR target/100267 + * gcc.target/i386/avx512bw-pr100267-1.c: New test. + * gcc.target/i386/avx512bw-pr100267-b-2.c: New test. + * gcc.target/i386/avx512bw-pr100267-d-2.c: New test. + * gcc.target/i386/avx512bw-pr100267-q-2.c: New test. + * gcc.target/i386/avx512bw-pr100267-w-2.c: New test. + * gcc.target/i386/avx512f-pr100267-1.c: New test. + * gcc.target/i386/avx512f-pr100267-pd-2.c: New test. + * gcc.target/i386/avx512f-pr100267-ps-2.c: New test. + * gcc.target/i386/avx512vl-pr100267-1.c: New test. + * gcc.target/i386/avx512vl-pr100267-pd-2.c: New test. + * gcc.target/i386/avx512vl-pr100267-ps-2.c: New test. + * gcc.target/i386/avx512vlbw-pr100267-1.c: New test. + * gcc.target/i386/avx512vlbw-pr100267-b-2.c: New test. + * gcc.target/i386/avx512vlbw-pr100267-d-2.c: New test. + * gcc.target/i386/avx512vlbw-pr100267-q-2.c: New test. + * gcc.target/i386/avx512vlbw-pr100267-w-2.c: New test. + +2021-06-22 liuhongt + + PR target/100310 + * gcc.target/i386/pr100310.c: New test. + +2021-06-21 Jason Merrill + + PR target/88529 + * g++.target/i386/empty-class1.C: New test. + +2021-06-21 Patrick Palka + + PR c++/67302 + * g++.dg/opt/nrv21.C: New test. + +2021-06-21 Patrick Palka + + PR c++/80431 + * g++.dg/cpp0x/nsdmi-virtual1a.C: New test. + +2021-06-21 Jakub Jelinek + + PR inline-asm/100785 + * c-c++-common/pr100785.c: New test. + * gcc.dg/pr48552-1.c: Don't expect invalid lvalue errors. + * gcc.dg/pr48552-2.c: Likewise. + +2021-06-21 prathamesh.kulkarni + + PR target/97906 + * gcc.target/arm/simd/pr97906.c: New test. + +2021-06-21 Richard Biener + + PR tree-optimization/101121 + * gfortran.dg/pr101121.f: New testcase. + +2021-06-21 liuhongt + + PR target/101142 + * gcc.target/i386/spill_to_mask-1.c: Adjust testcase. + * gcc.target/i386/spill_to_mask-2.c: Adjust testcase. + * gcc.target/i386/spill_to_mask-3.c: Adjust testcase. + * gcc.target/i386/spill_to_mask-4.c: Adjust testcase. + +2021-06-21 Roger Sayle + + PR target/11877 + * gcc.target/i386/pr11877.c: New test case. + +2021-06-18 Aaron Sawdey + + * gcc.target/powerpc/fusion-p10-2logical.c: Update pattern + match counts. + * gcc.target/powerpc/fusion-p10-addadd.c: Update pattern match + counts. + * gcc.target/powerpc/fusion-p10-ldcmpi.c: Update pattern match + counts. + * gcc.target/powerpc/fusion-p10-logadd.c: Update pattern match + counts. + +2021-06-18 Harald Anlauf + + PR fortran/100283 + PR fortran/101123 + * gfortran.dg/min0_max0_1.f90: New test. + * gfortran.dg/min0_max0_2.f90: New test. + +2021-06-18 David Malcolm + + * gcc.dg/analyzer/symbolic-7.c: New test. + +2021-06-18 Srinath Parvathaneni + + PR target/100856 + * gcc.target/arm/acle/pr100856.c: New test. + * gcc.target/arm/multilib.exp: Add tests for cde options. + +2021-06-18 Michael Meissner + + * gcc.target/powerpc/float128-minmax-2.c: New test. + +2021-06-17 Jason Merrill + + PR c++/101106 + * g++.dg/cpp0x/deleted15.C: New test. + +2021-06-17 H.J. Lu + + PR target/100704 + * gcc.target/i386/pr100704-1.c: New test. + * gcc.target/i386/pr100704-2.c: Likewise. + * gcc.target/i386/pr100704-3.c: Likewise. + +2021-06-17 Uroš Bizjak + + PR target/97194 + * gcc.target/i386/sse4_1-vec-set-1.c: New test. + * gcc.target/i386/sse4_1-vec-set-2.c: ditto. + +2021-06-17 Aldy Hernandez + + * gcc.dg/pr100790.c: New test. + +2021-06-17 Marius Hillenbrand + + * gcc.target/s390/zvector/vec-doublee.c: New test. + * gcc.target/s390/zvector/vec-floate.c: New test. + +2021-06-17 Richard Biener + + PR tree-optimization/54400 + * gcc.dg/vect/bb-slp-pr54400.c: New testcase. + +2021-06-16 Jason Merrill + + PR c++/101078 + PR c++/91706 + * g++.dg/template/access39.C: New test. + +2021-06-16 Harald Anlauf + + PR fortran/95501 + PR fortran/95502 + * gfortran.dg/pr95502.f90: New test. + +2021-06-16 Harald Anlauf + + Revert: + 2021-06-16 Harald Anlauf + + PR fortran/95501 + PR fortran/95502 + * gfortran.dg/pr95502.f90: New test. + +2021-06-16 Harald Anlauf + + PR fortran/95501 + PR fortran/95502 + * gfortran.dg/pr95502.f90: New test. + +2021-06-16 Jason Merrill + + PR c++/100796 + PR preprocessor/96391 + * g++.dg/plugin/location-overflow-test-pr100796.c: New test. + * g++.dg/plugin/plugin.exp: Run it. + +2021-06-16 Jonathan Wright + + * gcc.target/aarch64/narrow_zero_high_half.c: Add new tests. + +2021-06-16 Jonathan Wright + + * gcc.target/aarch64/narrow_zero_high_half.c: Add new tests. + +2021-06-16 Jonathan Wright + + * gcc.target/aarch64/narrow_zero_high_half.c: Add new tests. + +2021-06-16 Jonathan Wright + + * gcc.target/aarch64/narrow_zero_high_half.c: Add new tests. + +2021-06-16 Jonathan Wright + + * gcc.target/aarch64/narrow_zero_high_half.c: New test. + +2021-06-16 Martin Jambor + + PR tree-optimization/100453 + * gcc.dg/tree-ssa/pr100453.c: New test. + +2021-06-16 Jakub Jelinek + + * gcc.dg/guality/pr49888.c (f): Use noipa attribute instead of + noinline, noclone. + +2021-06-16 Jakub Jelinek + + PR middle-end/101062 + * gcc.dg/pr101062.c: New test. + +2021-06-16 Richard Biener + + PR tree-optimization/101088 + * gcc.dg/torture/pr101088.c: New testcase. + +2021-06-16 Roger Sayle + + PR rtl-optimization/46235 + * gcc.target/i386/bt-5.c: New test. + * gcc.target/i386/bt-6.c: New test. + * gcc.target/i386/bt-7.c: New test. + +2021-06-16 Arnaud Charlet + + * gnat.dg/limited4.adb: Disable illegal code. + +2021-06-16 Richard Biener + + PR tree-optimization/101083 + * gcc.dg/vect/pr97832-4.c: New testcase. + +2021-06-15 Tobias Burnus + + PR fortran/92568 + * gfortran.dg/gomp/pr99928-1.f90: Uncomment 'defaultmap(none)'. + * gfortran.dg/gomp/pr99928-2.f90: Uncomment 'defaultmap(none)'. + * gfortran.dg/gomp/pr99928-3.f90: Uncomment 'defaultmap(none)'. + * gfortran.dg/gomp/pr99928-4.f90: Uncomment 'defaultmap(none)'. + * gfortran.dg/gomp/pr99928-5.f90: Uncomment 'defaultmap(none)'. + * gfortran.dg/gomp/pr99928-6.f90: Uncomment 'defaultmap(none)'. + * gfortran.dg/gomp/pr99928-8.f90: Uncomment 'defaultmap(none)'. + * gfortran.dg/gomp/defaultmap-1.f90: New test. + * gfortran.dg/gomp/defaultmap-2.f90: New test. + * gfortran.dg/gomp/defaultmap-3.f90: New test. + * gfortran.dg/gomp/defaultmap-4.f90: New test. + * gfortran.dg/gomp/defaultmap-5.f90: New test. + * gfortran.dg/gomp/defaultmap-6.f90: New test. + * gfortran.dg/gomp/defaultmap-7.f90: New test. + +2021-06-15 David Malcolm + + * gcc.dg/analyzer/analyzer-decls.h (__analyzer_dump_capacity): New decl. + * gcc.dg/analyzer/capacity-1.c: New test. + * gcc.dg/analyzer/capacity-2.c: New test. + * gcc.dg/analyzer/capacity-3.c: New test. + +2021-06-15 David Malcolm + + PR analyzer/101068 + * gcc.dg/analyzer/explode-2a.c: New test. + +2021-06-15 Jakub Jelinek + + PR target/101046 + * gcc.target/i386/pr101046.c: New test. + +2021-06-15 Robin Dapp + + * c-c++-common/Wattributes.c: Remove s390-specific check and add + new tests. + * gcc.dg/Wattributes-6.c: Likewise. + +2021-06-15 Xionghu Luo + + PR target/101020 + * gcc.target/powerpc/float128-call.c: Adjust counts for be and le. + +2021-06-14 Martin Sebor + + PR c++/100876 + * g++.dg/warn/Wmismatched-new-delete-4.C: New test. + * g++.dg/warn/Wmismatched-new-delete-5.C: New test. + * g++.dg/warn/Wstringop-overflow-7.C: New test. + * g++.dg/warn/Wfree-nonheap-object-6.C: New test. + * g++.dg/analyzer/placement-new.C: Prune out expected warning. + +2021-06-14 Peter Bergner + + PR target/100777 + * gcc.target/powerpc/pr100777.c: New test. + +2021-06-14 Uroš Bizjak + + PR target/101058 + * gcc.target/i386/pr101058.c: New test. + +2021-06-14 Jonathan Wakely + + PR c++/101052 + * g++.dg/spellcheck-stdlib.C: Add checks for names. + * gcc.dg/spellcheck-stdlib.c: Likewise. + +2021-06-14 Christophe Lyon + + * gcc.target/arm/simd/mve-vclz.c: Update expected results. + * gcc.target/arm/simd/mve-vshl.c: Likewise. + * gcc.target/arm/simd/mve-vec-pack.c: New test. + * gcc.target/arm/simd/mve-vec-unpack.c: New test. + +2021-06-14 Richard Biener + + PR tree-optimization/100934 + * gcc.dg/torture/pr100934.c: New testcase. + +2021-06-14 Aaron Sawdey + + * gcc.dg/sms-1.c: Remove scan-rtl-dump-times check. + * gcc.dg/sms-2.c: Remove scan-rtl-dump-times check. + * gcc.dg/sms-3.c: Remove scan-rtl-dump-times check. + * gcc.dg/sms-4.c: Remove scan-rtl-dump-times check. + * gcc.dg/sms-6.c: Remove scan-rtl-dump-times check. + * gcc.dg/sms-8.c: Remove scan-rtl-dump-times check. + * gcc.dg/sms-10.c: Remove scan-rtl-dump-times check. + +2021-06-14 Richard Biener + + PR tree-optimization/101031 + * gcc.dg/torture/pr101031.c: New testcase. + +2021-06-13 Jason Merrill + + * gcc.dg/c2x-attr-maybe_unused-1.c: Expect no warnings. + +2021-06-13 H.J. Lu + + PR target/101023 + * g++.target/i386/pr101023a.C: New test. + * g++.target/i386/pr101023b.C: Likewise. + +2021-06-12 David Edelsohn + + * g++.dg/ext/builtin-shufflevector-2.C: Ignore psabi warning. + * gcc.dg/uninit-pr93100.c: Skip on AIX. + * gcc.target/powerpc/pr100085.c: Require int128 and float128. + +2021-06-12 Jason Merrill + + * g++.dg/ext/attrib62.C: No longer warn. + * g++.dg/diagnostic/maybe_unused1.C: New test. + +2021-06-12 Jason Merrill + + PR c++/101029 + * g++.dg/ext/array4.C: New test. + +2021-06-11 Carl Love + + * gcc.target/powerpc/check-builtin-vec_rlnm-runnable.c + (dg-require-effective-target): Change target to p9vector_hw. + +2021-06-11 Thomas Schwinge + + * gcc.dg/gomp/simd-clones-2.c: Enhance. + +2021-06-11 Patrick Palka + + DR 1227 + PR c++/96560 + * g++.dg/template/sfinae-dr1227.C: New test. + +2021-06-11 Srinath Parvathaneni + + PR target/101016 + * gcc.target/arm/mve/intrinsics/pr101016.c: New test. + +2021-06-11 Roger Sayle + + PR tree-optimization/96392 + * gcc.dg/pr96392.c: New test. + +2021-06-11 Richard Biener + + PR tree-optimization/101025 + * gcc.dg/torture/pr101025.c: New testcase. + +2021-06-11 Srinath Parvathaneni + + PR target/99939 + * gcc.target/arm/cmse/cmse-18.c: Add separate scan-assembler + directives check for target is v8.1-m.main+mve or not before + comparing the assembly output. + * gcc.target/arm/cmse/cmse-20.c: New test. + +2021-06-11 Jakub Jelinek + + PR c++/100974 + * g++.dg/cpp23/consteval-if1.C: New test. + * g++.dg/cpp23/consteval-if2.C: New test. + * g++.dg/cpp23/consteval-if3.C: New test. + * g++.dg/cpp23/consteval-if4.C: New test. + * g++.dg/cpp23/consteval-if5.C: New test. + * g++.dg/cpp23/consteval-if6.C: New test. + * g++.dg/cpp23/consteval-if7.C: New test. + * g++.dg/cpp23/consteval-if8.C: New test. + * g++.dg/cpp23/consteval-if9.C: New test. + * g++.dg/cpp23/consteval-if10.C: New test. + * g++.dg/cpp23/feat-cxx2b.C: Add __cpp_if_consteval tests. + +2021-06-11 David Malcolm + + * gcc.dg/analyzer/loop-0-up-to-n-by-1-with-iter-obj.c: Update + expected number of enodes after the loop. + * gcc.dg/analyzer/paths-8.c: New test. + +2021-06-11 Richard Biener + + PR tree-optimization/101028 + * gcc.dg/pr101028.c: New testcase. + +2021-06-11 Richard Biener + + PR tree-optimization/101026 + * gfortran.dg/pr101026.f: New testcase. + +2021-06-11 Jakub Jelinek + + PR rtl-optimization/101008 + * gcc.dg/pr101008.c: New test. + +2021-06-11 Jakub Jelinek + + PR target/101007 + * gcc.target/i386/sse-pr101007.c: New test. + +2021-06-11 Uroš Bizjak + + PR target/101021 + * gcc.target/i386/pr101021-1.c: New test. + * gcc.target/i386/pr101021-2.c: Ditto. + +2021-06-11 Martin Liska + + PR gcov-profile/100788 + * gcc.dg/pr100788.c: New test. + +2021-06-11 Richard Biener + + PR middle-end/101009 + * gcc.dg/torture/pr101009.c: New testcase. + +2021-06-11 Kewen Lin + + * gcc.target/powerpc/p9-fpcvt-3.c: New test. + +2021-06-11 Marek Polacek + + PR c++/100995 + * g++.dg/cpp2a/is-constant-evaluated9.C: Add dg-warning. + * g++.dg/cpp2a/is-constant-evaluated12.C: New test. + +2021-06-10 Patrick Palka + + PR c++/67829 + * g++.dg/template/ttp34.C: New test. + * g++.dg/template/ttp34a.C: New test. + * g++.dg/template/ttp34b.C: New test. + +2021-06-10 Patrick Palka + + PR c++/100946 + * g++.dg/cpp2a/concepts-return-req3.C: New test. + +2021-06-10 Peter Bergner + + * gcc.target/powerpc/mma-builtin-4.c (__builtin_vsx_build_pair): Add + tests. Update expected counts. + * gcc.target/powerpc/mma-builtin-5.c (__builtin_mma_build_acc): Add + tests. Update expected counts. + +2021-06-10 Iain Buclaw + + PR d/100967 + * gdc.dg/pr100967.d: New test. + +2021-06-10 Robin Dapp + + * gcc.target/s390/vector/vcond-mixed-double.c: New test. + * gcc.target/s390/vector/vcond-mixed-float.c: New test. + +2021-06-10 Robin Dapp + + * gcc.dg/vect/pr56541.c: Fix target selector. + +2021-06-10 Andrew Stubbs + Thomas Schwinge + + * c-c++-common/goacc-gomp/nesting-fail-1.c: Adjust patterns. + * c-c++-common/goacc/finalize-1.c: Likewise. + * c-c++-common/goacc/mdc-1.c: Likewise. + * c-c++-common/goacc/nesting-fail-1.c: Likewise. + * c-c++-common/goacc/struct-enter-exit-data-1.c: Likewise. + * gfortran.dg/goacc/attach-descriptor.f90: Likewise. + * gfortran.dg/goacc/finalize-1.f: Likewise. + * gfortran.dg/goacc/mapping-tests-3.f90: Likewise. + +2021-06-10 Thomas Schwinge + + * c-c++-common/goacc/mdc-1.c: Fix '#pragma acc acc [...]' typo. + * c-c++-common/goacc/mdc-2.c: Likewise. + * g++.dg/goacc/mdc.C: Likewise. + +2021-06-10 Jakub Jelinek + + * g++.dg/cpp2a/feat-cxx2a.C: Uncomment __cpp_consteval test. + * g++.dg/cpp23/feat-cxx2b.C: Likewise. + +2021-06-10 Jakub Jelinek + + PR debug/100852 + * g++.dg/opt/pr100852.C: New test. + +2021-06-09 Andrew Pinski + + * g++.dg/torture/pr100925.C: New test. + +2021-06-09 Carl Love + + * gcc.target/powerpc/int_128bit-runnable.c (extsd2q): Update expected + count. + Add tests for vec_signextq. + * gcc.target/powerpc/p9-sign_extend-runnable.c: New test case. + +2021-06-09 Carl Love + + * gcc.target/powerpc/fp128_conversions.c: New file. + * gcc.target/powerpc/int_128bit-runnable.c(vextsd2q, + vcmpuq, vcmpsq, vcmpequq, vcmpequq., vcmpgtsq, vcmpgtsq. + vcmpgtuq, vcmpgtuq.): Update scan-assembler-times. + (ppc_native_128bit): Remove dg-require-effective-target. + +2021-06-09 Carl Love + + * gcc.target/powerpc/int_128bit-runnable.c: Add shift_right, shift_left + tests. + +2021-06-09 Carl Love + + * gcc.target/powerpc/int_128bit-runnable.c: Add 128-bit DFP + conversion tests. + +2021-06-09 Carl Love + + * gcc.target/powerpc/int_128bit-runnable.c: New test file. + +2021-06-09 Carl Love + + * gcc.target/powerpc/check-builtin-vec_rlnm-runnable.c: + New runnable test case. + * gcc.target/powerpc/vec-rlmi-rlnm.c: Update scan assembler times + for xxlor instruction. + +2021-06-09 Christophe Lyon + + * gcc.target/arm/simd/mve-vclz.c: New test. + +2021-06-09 Christophe Lyon + + * gcc.target/arm/simd/mve-vhadd-1.c: New test. + * gcc.target/arm/simd/mve-vhadd-2.c: New test. + * gcc.target/arm/simd/neon-vhadd-1.c: New test. + * gcc.target/arm/simd/neon-vhadd-2.c: New test. + +2021-06-09 Roger Sayle + + * gcc.dg/builtins-70.c: New test. + +2021-06-09 Aaron Sawdey + + * gcc.target/powerpc/fusion-p10-2logical.c: Update fused insn + counts to test 32 and 64 bit separately. + * gcc.target/powerpc/fusion-p10-addadd.c: Update fused insn + counts to test 32 and 64 bit separately. + * gcc.target/powerpc/fusion-p10-ldcmpi.c: Update fused insn + counts to test 32 and 64 bit separately. + * gcc.target/powerpc/fusion-p10-logadd.c: Update fused insn + counts to test 32 and 64 bit separately. + +2021-06-09 Richard Biener + + PR tree-optimization/100981 + * gfortran.dg/vect/pr100981-1.f90: New testcase. + +2021-06-09 Richard Biener + + PR tree-optimization/97832 + * gcc.dg/vect/pr97832-1.c: New testcase. + * gcc.dg/vect/pr97832-2.c: Likewise. + * gcc.dg/vect/pr97832-3.c: Likewise. + * g++.dg/vect/slp-pr98855.cc: XFAIL. + * gcc.dg/vect/slp-50.c: New file. + +2021-06-09 Jakub Jelinek + + PR fortran/100965 + * gfortran.dg/gomp/pr100965.f90: New test. + +2021-06-09 Uroš Bizjak + + PR target/100936 + * gcc.target/i386/pr100936.c: New test. + +2021-06-09 Xionghu Luo + + * gcc.target/powerpc/float128-call.c: Adjust. + * gcc.target/powerpc/pr100085.c: New test. + +2021-06-09 Jason Merrill + + PR c++/100879 + * g++.dg/diagnostic/enum3.C: New test. + +2021-06-08 Marek Polacek + + PR c++/100065 + * g++.dg/cpp2a/explicit18.C: New test. + +2021-06-08 Andrew Pinski + + * gcc.dg/tree-ssa/pr96928-1.c: Fix testcase for now that ~ + happens on the outside of the bit_xor. + +2021-06-08 Jason Merrill + + * g++.dg/cpp0x/pr60209-neg.C: Update diagnostic. + * g++.dg/diagnostic/string-literal-concat.C: Likewise. + * g++.dg/ext/utf-badconcat.C: Likewise. + * g++.dg/ext/utf-badconcat2.C: Likewise. + +2021-06-08 Jason Merrill + + * g++.dg/cpp23/mixed-concat1.C: New test. + +2021-06-08 Jason Merrill + + * g++.dg/cpp23/whitespace-splice1.C: New test. + +2021-06-08 Jason Merrill + + * g++.dg/cpp23/narrowing-bool1.C: New test. + +2021-06-08 David Malcolm + + PR analyzer/99212 + * gcc.dg/analyzer/bitfields-1.c: New test. + * gcc.dg/analyzer/data-model-1.c (struct sbits): Make bitfields + explicitly signed. + (test_44): Update test values assigned to the bits to ones that + fit in the range of the bitfield type. Remove xfails. + (test_45): Remove xfails. + +2021-06-08 Jason Merrill + + PR c++/100963 + * g++.dg/cpp0x/initlist124.C: New test. + +2021-06-08 Richard Biener + + PR tree-optimization/100923 + * gcc.dg/torture/pr100923.c: New testcase. + +2021-06-08 Jakub Jelinek + + PR c++/100957 + * g++.dg/gomp/doacross-2.C: New test. + +2021-06-08 H.J. Lu + + PR middle-end/100951 + * gcc.target/i386/pr100951.c: New test. + +2021-06-08 Jakub Jelinek + + PR target/100887 + PR testsuite/100943 + * gcc.dg/pr100887.c: Add -Wno-psabi -w to dg-options. + +2021-06-08 Tobias Burnus + + PR middle-end/99928 + * gfortran.dg/gomp/openmp-simd-6.f90: Update scan-tree-dump. + * gfortran.dg/gomp/scan-5.f90: Likewise. + * gfortran.dg/gomp/loop-1.f90: Likewise; remove xfail. + * gfortran.dg/gomp/pr99928-1.f90: Remove xfail. + * gfortran.dg/gomp/pr99928-2.f90: Likewise. + * gfortran.dg/gomp/pr99928-3.f90: Likewise. + * gfortran.dg/gomp/pr99928-8.f90: Likewise. + +2021-06-08 Martin Liska + + * gcc.dg/format/strfmon-1.c: Fix typo. + * gfortran.dg/char4-subscript.f90: Likewise. + +2021-06-08 Kewen Lin + + PR tree-optimization/100794 + * gcc.dg/tree-ssa/pr100794.c: New test. + +2021-06-08 Jason Merrill + + PR c++/91706 + * g++.dg/template/lookup17.C: New test. + +2021-06-08 Jason Merrill + + PR c++/100102 + * g++.dg/cpp0x/alias-decl-73.C: New test. + +2021-06-07 Uroš Bizjak + + PR target/100637 + * gcc.target/i386/pr100637-5b.c: New test. + * gcc.target/i386/pr100637-5w.c: Ditto. + +2021-06-07 H.J. Lu + + PR target/82735 + * gcc.target/i386/pr82735-3.c: Don't compile for x32. + * gcc.target/i386/pr82735-4.c: Likewise. + * gcc.target/i386/pr82735-5.c: Likewise. + +2021-06-07 Eric Botcazou + + * gcc.dg/sso-14.c: Adjust. + +2021-06-07 Patrick Palka + + PR c++/100918 + * g++.dg/template/access38.C: New test. + +2021-06-07 H.J. Lu + + PR target/100885 + * g++.target/i386/pr100885.C (_mm_set_epi64): Cast __m64 to long + long. + +2021-06-07 Jakub Jelinek + + PR target/100887 + * gcc.dg/pr100887.c: New test. + +2021-06-07 Jakub Jelinek + + PR middle-end/100898 + * g++.dg/ext/va-arg-pack-3.C: New test. + +2021-06-07 liuhongt + + PR target/100885 + * g++.target/i386/pr100885.C: New test. + +2021-06-07 liuhongt + + PR target/82735 + * gcc.target/i386/pr82735-1.c: New test. + * gcc.target/i386/pr82735-2.c: New test. + * gcc.target/i386/pr82735-3.c: New test. + * gcc.target/i386/pr82735-4.c: New test. + * gcc.target/i386/pr82735-5.c: New test. + +2021-06-06 Jakub Jelinek + + * gcc.dg/gomp/scan-1.c: New test. + +2021-06-06 Jakub Jelinek + + PR c/100902 + * c-c++-common/gomp/pr100902-1.c: New test. + +2021-06-06 Eric Botcazou + + * gcc.dg/sso-14.c: New test. + +2021-06-05 José Rui Faustino de Sousa + + PR fortran/100120 + PR fortran/100816 + PR fortran/100818 + PR fortran/100819 + PR fortran/100821 + * gfortran.dg/PR100120.f90: New test. + * gfortran.dg/character_workout_1.f90: New test. + * gfortran.dg/character_workout_4.f90: New test. + +2021-06-04 Tobias Burnus + + PR middle-end/100905 + * gfortran.dg/gomp/loop-3.f90: New test. + +2021-06-04 Iain Buclaw + + PR d/100882 + * gdc.dg/pr100882a.d: New test. + * gdc.dg/pr100882b.d: New test. + * gdc.dg/pr100882c.d: New test. + * gdc.dg/torture/pr100882.d: New test. + +2021-06-04 Patrick Palka + + PR c++/100893 + * g++.dg/template/param4.C: New test. + * g++.dg/template/param5.C: New test. + * g++.dg/cpp1z/nontype-auto19.C: New test. + * g++.dg/cpp2a/concepts-decltype.C: Don't expect that the + deduced type of a decltype(auto) NTTP has top-level cv-quals. + +2021-06-04 Patrick Palka + + PR c++/100102 + * g++.dg/cpp0x/alias-decl-72.C: New test. + * g++.dg/cpp0x/alias-decl-72a.C: New test. + +2021-06-04 Harald Anlauf + + PR fortran/99839 + * gfortran.dg/inline_matmul_25.f90: New test. + +2021-06-04 Martin Sebor + + PR c/100783 + * gcc.dg/nonnull-6.c: New test. + +2021-06-04 Martin Sebor + + PR middle-end/100732 + * gcc.dg/tree-ssa/builtin-snprintf-11.c: New test. + * gcc.dg/tree-ssa/builtin-snprintf-12.c: New test. + * gcc.dg/tree-ssa/builtin-sprintf-28.c: New test. + * gcc.dg/tree-ssa/builtin-sprintf-29.c: New test. + * gcc.dg/uninit-pr100732.c: New test. + +2021-06-04 Martin Sebor + + * gcc.dg/Wvla-parameter-10.c: New test. + * gcc.dg/Wvla-parameter-11.c: New test. + +2021-06-04 Tobias Burnus + + * gfortran.dg/goacc/omp-fixed.f: Re-add test item changed in previous + commit in addition - add more dg-errors and '... end ...' due to changed + parsing. + * gfortran.dg/goacc/omp.f95: Likewise. + * gfortran.dg/goacc-gomp/mixed-1.f: New test. + +2021-06-04 Uroš Bizjak + + PR target/100637 + * gcc.dg/vect/slp-perm-9.c (dg-final): Adjust dumps for vect32 targets. + +2021-06-04 Tobias Burnus + + * gfortran.dg/gomp/pr99928-5.f90: Really use the + proper iteration variable. + +2021-06-04 Tobias Burnus + + * gfortran.dg/gomp/pr99928-1.f90: Add 'implicit none'. + * gfortran.dg/gomp/pr99928-11.f90: Likewise. + * gfortran.dg/gomp/pr99928-4.f90: Likewise. + * gfortran.dg/gomp/pr99928-6.f90: Likewise. + * gfortran.dg/gomp/pr99928-8.f90: Likewise. + * gfortran.dg/gomp/pr99928-2.f90: Likewise. Add missing decl. + * gfortran.dg/gomp/pr99928-5.f90: Add implicit none; + fix loop-variable and remove xfail. + +2021-06-04 Tobias Burnus + + PR middle-end/99928 + * gfortran.dg/gomp/loop-2.f90: Update for typo fix. + +2021-06-04 Tobias Burnus + + PR middle-end/99928 + * gfortran.dg/gomp/pr99928-3.f90: Add 'default(none)', following + C/C++ version of the patch. + * gfortran.dg/gomp/loop-1.f90: New test. + * gfortran.dg/gomp/loop-2.f90: New test. + * gfortran.dg/gomp/pr99928-1.f90: New test; based on C/C++ test. + * gfortran.dg/gomp/pr99928-11.f90: Likewise. + * gfortran.dg/gomp/pr99928-2.f90: Likewise. + * gfortran.dg/gomp/pr99928-4.f90: Likewise. + * gfortran.dg/gomp/pr99928-5.f90: Likewise. + * gfortran.dg/gomp/pr99928-6.f90: Likewise. + * gfortran.dg/gomp/pr99928-8.f90: Likewise. + * gfortran.dg/goacc/omp.f95: Use 'acc kernels loops' instead + of 'acc loops' to hide unrelated bug for now. + * gfortran.dg/goacc/omp-fixed.f: Likewise + +2021-06-04 Jakub Jelinek + + PR target/100887 + * gcc.target/i386/pr100887.c: New test. + +2021-06-04 Jakub Jelinek + + PR c++/100872 + * g++.dg/gomp/declare-simd-8.C: New test. + +2021-06-04 Haochen Gui + + * gcc.target/powerpc/not-promote-mode.c: New. + +2021-06-03 Uroš Bizjak + + PR target/100637 + * gcc.target/i386/vperm-v2hi.c: New test. + * gcc.target/i386/vperm-v4qi.c: Ditto. + +2021-06-03 Aldy Hernandez + + * gcc.dg/pr80776-1.c: XFAIL and document the reason why. + +2021-06-03 Patrick Palka + + PR c++/100592 + * g++.dg/cpp0x/alias-decl-71.C: New test. + +2021-06-03 Patrick Palka + + PR c++/100862 + * g++.dg/cpp2a/using-enum-9.C: New test. + +2021-06-03 Andre Vieira + + * gcc.target/aarch64/sve/part_vect_single_iter_epilog.c: New test. + +2021-06-03 Christophe Lyon + + * gcc.target/arm/simd/mve-vabs.c: New test. + +2021-06-03 Eric Botcazou + + * gnat.dg/bit_packed_array6.adb: New test. + * gnat.dg/bit_packed_array6_pkg.ads: New helper. + +2021-06-03 Martin Liska + + * gcc.dg/spellcheck-options-23.c: New test. + +2021-06-03 Eric Botcazou + + * gnat.dg/inline22.adb: New test. + +2021-06-03 Tamar Christina + + * gcc.target/aarch64/cpunative/info_16: Update implementer. + * gcc.target/aarch64/cpunative/info_17: Likewise + +2021-06-03 Jakub Jelinek + + PR c++/100859 + * g++.dg/gomp/depend-iterator-3.C: New test. + * g++.dg/gomp/this-1.C: Don't expect any diagnostics for + this as base expression of depend array section, expect a different + error wording for this as depend locator and add testcases + for affinity clauses. + +2021-06-02 Jason Merrill + + PR c++/100838 + * g++.dg/init/no-elide2.C: New test. + +2021-06-02 Ilya Leoshkevich + + * gcc.target/s390/ashr.c: New test. + +2021-06-02 Tobias Burnus + + PR middle-end/99928 + * gfortran.dg/gomp/taskloop-2.f90: New. + +2021-06-02 Jakub Jelinek + + * g++.dg/ext/builtin-shufflevector-1.C: Add -Wno-psabi -w to + dg-options. + +2021-06-01 Patrick Palka + + PR c++/65816 + * g++.dg/cpp0x/constexpr-delegating3.C: New test. + * g++.dg/cpp0x/dc10.C: New test. + * g++.dg/cpp0x/initlist-base4.C: New test. + * g++.dg/cpp2a/constexpr-init22.C: New test. + +2021-06-01 Andrew Pinski + + PR tree-optimization/95481 + * gcc.dg/tree-ssa/tailcall-10.c: New test. + * gcc.dg/tree-ssa/tailcall-11.c: New test. + * gcc.dg/tree-ssa/tailcall-12.c: New test. + * gcc.dg/tree-ssa/tailcall-13.c: New test. + * gcc.dg/tree-ssa/tailrecursion-8.c: New test. + +2021-06-01 Bill Schmidt + + PR testsuite/100750 + * gcc.target/powerpc/rop-5.c: Require ELFv2 ABI. + +2021-06-01 Jason Merrill + + PR c++/91859 + * g++.dg/cpp2a/destroying-delete5.C: New test. + +2021-06-01 Jason Merrill + + PR c++/94492 + * g++.dg/cpp0x/depr-copy4.C: New test. + +2021-06-01 Aldy Hernandez + + * gcc.dg/Wstringop-overflow-55.c: Adjust for global ranges changes. + * gcc.dg/pr80776-1.c: Same. + +2021-06-01 Tobias Burnus + + PR middle-end/99928 + * gfortran.dg/gomp/reduction5.f90: Remove dg-error; the issue is + now diagnosed with less error output. + * gfortran.dg/gomp/scan-1.f90: Likewise. + * gfortran.dg/gomp/pr99928-3.f90: New test. + * gfortran.dg/gomp/taskloop-1.f90: New test. + +2021-06-01 liuhongt + + PR tree-optimization/98365 + * gcc.target/i386/pr98365.c: New test. + +2021-06-01 Andrew MacLeod + + PR tree-optimization/100781 + * gcc.dg/pr100781.c: New. + +2021-06-01 Andrew MacLeod + + PR tree-optimization/100774 + * g++.dg/pr100774.C: New. + +2021-05-31 Tobias Burnus + + * gfortran.dg/gomp/depend-iterator-1.f90: Use dg-do compile. + * gfortran.dg/gomp/depend-iterator-2.f90: Use dg-do compile. + +2021-05-31 Richard Biener + + PR c++/88601 + * c-c++-common/builtin-shufflevector-2.c: New testcase. + * c-c++-common/torture/builtin-shufflevector-1.c: Likewise. + * g++.dg/ext/builtin-shufflevector-1.C: Likewise. + * g++.dg/ext/builtin-shufflevector-2.C: Likewise. + +2021-05-31 Peter Bergner + + PR target/99842 + * g++.target/powerpc/pr99842.C: New. + +2021-05-29 Bernd Edlinger + + * gcc.dg/plugin/diagnostic_plugin_show_trees.c (plugin_init): Fix caret_max_with. + * gcc.dg/plugin/diagnostic_plugin_test_inlining.c + (plugin_init): Likewise. + * gcc.dg/plugin/diagnostic_plugin_test_paths.c (plugin_init): Likewise. + * gcc.dg/plugin/diagnostic_plugin_test_string_literals.c + (plugin_init): Likewise. + * gcc.dg/plugin/diagnostic_plugin_test_tree_expression_range.c + (plugin_init): Likewise. + +2021-05-29 Jakub Jelinek + + PR middle-end/99928 + * c-c++-common/gomp/pr99928-1.c: Add default(none) to constructs + combined with parallel, teams or taskloop and defaultmap(none) + to constructs combined with target. + * c-c++-common/gomp/pr99928-2.c: Likewise. + * c-c++-common/gomp/pr99928-3.c: Likewise. + * c-c++-common/gomp/pr99928-4.c: Likewise. + * c-c++-common/gomp/pr99928-5.c: Likewise. + * c-c++-common/gomp/pr99928-6.c: Likewise. + * c-c++-common/gomp/pr99928-7.c: Likewise. + * c-c++-common/gomp/pr99928-8.c: Likewise. + * c-c++-common/gomp/pr99928-9.c: Likewise. + * c-c++-common/gomp/pr99928-10.c: Likewise. + * c-c++-common/gomp/pr99928-13.c: Likewise. + * c-c++-common/gomp/pr99928-14.c: Likewise. + +2021-05-29 Aldy Hernandez + + * gcc.dg/Wstringop-overflow-55.c: + * gcc.dg/pr80776-1.c: + +2021-05-28 Richard Biener + + PR tree-optimization/100778 + * gcc.dg/vect/bb-slp-pr100778-1.c: New testcase. + +2021-05-28 Jason Merrill + + PR c++/100797 + PR c++/95719 + * g++.dg/inherit/virtual15.C: New test. + * g++.dg/inherit/virtual15a.C: New file. + +2021-05-28 Richard Biener + + PR ipa/100791 + * gcc.dg/pr100791.c: New testcase. + +2021-05-28 Richard Biener + + PR c/100803 + * gcc.dg/gimplefe-error-11.c: New testcase. + +2021-05-28 Jakub Jelinek + + PR middle-end/99928 + * c-c++-common/gomp/pr99928-8.c: Remove all xfails. + * c-c++-common/gomp/pr99928-9.c: Likewise. + * c-c++-common/gomp/pr99928-10.c: Likewise. + * c-c++-common/gomp/pr99928-16.c: New test. + +2021-05-28 Tobias Burnus + + * c-c++-common/gomp/affinity-1.c: New test. + * c-c++-common/gomp/affinity-2.c: New test. + * c-c++-common/gomp/affinity-3.c: New test. + * c-c++-common/gomp/affinity-4.c: New test. + * c-c++-common/gomp/affinity-5.c: New test. + * c-c++-common/gomp/affinity-6.c: New test. + * c-c++-common/gomp/affinity-7.c: New test. + * gfortran.dg/gomp/affinity-clause-1.f90: New test. + * gfortran.dg/gomp/affinity-clause-2.f90: New test. + * gfortran.dg/gomp/affinity-clause-3.f90: New test. + * gfortran.dg/gomp/affinity-clause-4.f90: New test. + * gfortran.dg/gomp/affinity-clause-5.f90: New test. + * gfortran.dg/gomp/affinity-clause-6.f90: New test. + * gfortran.dg/gomp/depend-iterator-1.f90: New test. + * gfortran.dg/gomp/depend-iterator-2.f90: New test. + * gfortran.dg/gomp/depend-iterator-3.f90: New test. + * gfortran.dg/gomp/taskwait.f90: New test. + +2021-05-28 Joern Rennecke + Richard Biener + + * gcc.dg/tree-ssa/popcount4ll.c: Remove lp64 condition. + Adjust scanning pattern for !lp64. + * gcc.dg/tree-ssa/popcount5ll.c: Likewise. + * gcc.dg/tree-ssa/popcount4l.c: Adjust scanning pattern + for ! int32plus. + +2021-05-28 Kewen Lin + + PR tree-optimization/99398 + * gcc.target/powerpc/vec-perm-ctor-run.c: New test. + * gcc.target/powerpc/vec-perm-ctor.c: New test. + * gcc.target/powerpc/vec-perm-ctor.h: New test. + +2021-05-27 Matthias Kretz + + PR c++/100716 + * g++.dg/diagnostic/pr100716.C: New test. + * g++.dg/diagnostic/pr100716-1.C: Same test with + -fno-pretty-templates. + +2021-05-27 Patrick Palka + + PR c++/99893 + * g++.dg/cpp0x/static_assert17.C: New test. + +2021-05-27 Jason Merrill + + PR c++/86355 + * g++.dg/cpp0x/alias-decl-variadic2.C: New test. + +2021-05-27 Patrick Palka + + DR 1315 + PR c++/67593 + PR c++/96555 + * g++.dg/template/partial16.C: New test. + * g++.dg/template/partial17.C: New test. + * g++.dg/template/partial18.C: New test. + * g++.dg/template/partial19.C: New test. + * g++.dg/cpp0x/pr68724.C: Adjust expected diagnostic for + ill-formed partial specialization. + * g++.dg/cpp0x/variadic38.C: Likewise. + * g++.dg/cpp1z/pr81016.C: Likewise. + * g++.dg/template/partial5.C: Likewise. + * g++.old-deja/g++.pt/spec21.C: Likewise. + +2021-05-27 Harald Anlauf + + PR fortran/100602 + * gfortran.dg/pointer_check_14.f90: New test. + +2021-05-27 Harald Anlauf + + PR fortran/100656 + * gfortran.dg/bounds_check_22.f90: New test. + +2021-05-27 Aldy Hernandez + + * gcc.dg/Wstringop-overflow-55.c: Pass -fno-ipa-icf. + +2021-05-27 Uroš Bizjak + + PR target/100637 + * gcc.target/i386/pr100637-3b.c (avgu): New test. + * gcc.target/i386/pr100637-3w.c (avgu): Ditto. + +2021-05-26 Patrick Palka + + PR c++/100502 + * g++.dg/template/access37.C: New test. + * g++.dg/template/access37a.C: New test. + +2021-05-26 Aldy Hernandez + + * gcc.dg/Wstringop-overflow-55.c: Adapt for range query changes. + * gcc.dg/pr80776-1.c: Same. + +2021-05-26 Uroš Bizjak + + * lib/target-supports.exp (check_effective_target_vect32): New. + (available_vector_sizes): Append 32 for x86 targets. + * gcc.dg/vect/pr71264.c (dg-final): Xfail scan dump for vect32 targets. + * gcc.dg/vect/slp-28.c (dg-final): Adjust dumps for vect32 targets. + * gcc.dg/vect/slp-3.c (dg-final): Ditto. + * gcc.target/i386/pr100637-3b.c: New test. + * gcc.target/i386/pr100637-3w.c: Ditto. + * gcc.target/i386/pr100637-4b.c: Ditto. + * gcc.target/i386/pr100637-4w.c: Ditto. + +2021-05-26 Eric Botcazou + + * gcc.dg/sso-13.c: New test. + +2021-05-26 Christophe Lyon + + * gcc.target/arm/simd/mve-vaddv-1.c: New test. + +2021-05-26 Patrick Palka + + PR c++/100368 + * g++.dg/cpp1z/elide6.C: New test. + +2021-05-26 Patrick Palka + + PR c++/97420 + * g++.dg/cpp0x/noexcept68.C: New test. + +2021-05-26 Geng Qi + + * gcc.target/csky/fldrd_fstrd.c: New. + * gcc.target/csky/fpuv3/fldr64_fstr64.c: New. + +2021-05-26 Geng Qi + + * gcc.target/csky/ldbs.c: New. + +2021-05-26 Andrew Pinski + + * gcc.dg/tree-ssa/pr96928.c: Update test for slightly different IR. + * gcc.dg/tree-ssa/pr96928-1.c: New testcase. + +2021-05-25 Jakub Jelinek + + PR c++/100666 + * g++.dg/cpp1z/nodiscard8.C: New test. + * g++.dg/cpp1z/nodiscard9.C: New test. + +2021-05-25 Martin Liska + + * gcc.dg/sancov/attribute.c: New test. + +2021-05-25 Cooper Qu + + * gcc.target/csky/fpuv3/fpuv3.exp : Amend copyright. + +2021-05-25 Jakub Jelinek + + PR middle-end/99928 + * c-c++-common/gomp/pr99928-8.c: Remove xfails from omp teams r21 and + r28 checks. + * c-c++-common/gomp/pr99928-9.c: Likewise. + * c-c++-common/gomp/pr99928-10.c: Likewise. + +2021-05-25 Geng Qi + + * gcc.target/csky/fpuv3/fpuv3.exp: New. + * gcc.target/csky/fpuv3/fpv3_div.c: New. + * gcc.target/csky/fpuv3/fpv3_fadd.c: New. + * gcc.target/csky/fpuv3/fpv3_fdtos.c: New. + * gcc.target/csky/fpuv3/fpv3_fftoi_rm.c: New. + * gcc.target/csky/fpuv3/fpv3_fftoi_rz.c: New. + * gcc.target/csky/fpuv3/fpv3_fhtos.c: New. + * gcc.target/csky/fpuv3/fpv3_fitof.c: New. + * gcc.target/csky/fpuv3/fpv3_fmov.c: New. + * gcc.target/csky/fpuv3/fpv3_fmovi.c: New. + * gcc.target/csky/fpuv3/fpv3_fmula.c: New. + * gcc.target/csky/fpuv3/fpv3_fmuls.c: New. + * gcc.target/csky/fpuv3/fpv3_fneg.c: New. + * gcc.target/csky/fpuv3/fpv3_fnmula.c: New. + * gcc.target/csky/fpuv3/fpv3_fnmuls.c: New. + * gcc.target/csky/fpuv3/fpv3_fstod.c: New. + * gcc.target/csky/fpuv3/fpv3_fstoh.c: New. + * gcc.target/csky/fpuv3/fpv3_fsub.c: New. + * gcc.target/csky/fpuv3/fpv3_fxtof.c: New. + * gcc.target/csky/fpuv3/fpv3_h.c: New. + * gcc.target/csky/fpuv3/fpv3_hs.c: New. + * gcc.target/csky/fpuv3/fpv3_hsz.c: New. + * gcc.target/csky/fpuv3/fpv3_hz.c: New. + * gcc.target/csky/fpuv3/fpv3_ls.c: New. + * gcc.target/csky/fpuv3/fpv3_lsz.c: New. + * gcc.target/csky/fpuv3/fpv3_lt.c: New. + * gcc.target/csky/fpuv3/fpv3_ltz.c: New. + * gcc.target/csky/fpuv3/fpv3_max.c: New. + * gcc.target/csky/fpuv3/fpv3_min.c: New. + * gcc.target/csky/fpuv3/fpv3_mul.c: New. + * gcc.target/csky/fpuv3/fpv3_mula.c: New. + * gcc.target/csky/fpuv3/fpv3_muls.c: New. + * gcc.target/csky/fpuv3/fpv3_ne.c: New. + * gcc.target/csky/fpuv3/fpv3_nez.c: New. + * gcc.target/csky/fpuv3/fpv3_recip.c: New. + * gcc.target/csky/fpuv3/fpv3_sqrt.c: New. + * gcc.target/csky/fpuv3/fpv3_unordered.c: New. + +2021-05-24 Aaron Sawdey + + * gcc.target/powerpc/fusion-p10-logadd.c: New file. + +2021-05-24 Tobias Burnus + + PR fortran/86470 + * gfortran.dg/gomp/class-firstprivate-1.f90: New test. + * gfortran.dg/gomp/class-firstprivate-2.f90: New test. + * gfortran.dg/gomp/class-firstprivate-3.f90: New test. + * gfortran.dg/gomp/class-firstprivate-4.f90: New test. + +2021-05-24 Christophe Lyon + + * gcc.target/arm/simd/mve-vld4.c: New test, derived from + slp-perm-3.c + +2021-05-24 Christophe Lyon + + * gcc.target/arm/simd/mve-vld2.c: New test, derived from + slp-perm-2.c + +2021-05-24 liuhongt + + PR target/100660 + * gcc.target/i386/pr100660.c: New test. + +2021-05-24 Andrew Pinski + + * gcc.dg/tree-ssa/phi-opt-10.c: Use "\[0-9\]*" instead of '.' + when matching ssa name version. + * gcc.dg/tree-ssa/phi-opt-7.c: Likewise. + +2021-05-23 Uroš Bizjak + + PR target/100722 + * gcc.target/i386/pr100722.c: New test. + +2021-05-23 Harald Anlauf + + PR fortran/100551 + * gfortran.dg/pr100551.f90: New test. + +2021-05-23 Andrew Pinski + + * gcc.dg/gimplefe-45.c: New test. + +2021-05-21 Aaron Sawdey + + * gcc.target/powerpc/fusion-p10-addadd.c: New file. + +2021-05-21 Aaron Sawdey + + * gcc.target/powerpc/fusion-p10-ldcmpi.c: New file. + * gcc.target/powerpc/fusion-p10-2logical.c: New file. + +2021-05-21 Jakub Jelinek + + PR middle-end/99928 + * c-c++-common/gomp/pr99928-3.c: Remove all xfails. + * c-c++-common/gomp/pr99928-15.c: New test. + +2021-05-21 Jakub Jelinek + + PR middle-end/99928 + * c-c++-common/gomp/pr99928-6.c: Remove all xfails. + * c-c++-common/gomp/pr99928-13.c: New test. + * c-c++-common/gomp/pr99928-14.c: New test. + +2021-05-21 Thomas Schwinge + + PR middle-end/90115 + * c-c++-common/goacc/privatization-1-compute-loop.c: Update. + * c-c++-common/goacc/privatization-1-compute.c: Likewise. + * c-c++-common/goacc/privatization-1-routine_gang-loop.c: + Likewise. + * c-c++-common/goacc/privatization-1-routine_gang.c: Likewise. + +2021-05-21 Thomas Schwinge + + PR middle-end/90115 + * c-c++-common/goacc/privatization-1-compute-loop.c: New file. + * c-c++-common/goacc/privatization-1-compute.c: Likewise. + * c-c++-common/goacc/privatization-1-routine_gang-loop.c: + Likewise. + * c-c++-common/goacc/privatization-1-routine_gang.c: Likewise. + * gfortran.dg/goacc/privatization-1-compute-loop.f90: Likewise. + * gfortran.dg/goacc/privatization-1-compute.f90: Likewise. + * gfortran.dg/goacc/privatization-1-routine_gang-loop.f90: + Likewise. + * gfortran.dg/goacc/privatization-1-routine_gang.f90: Likewise. + * c-c++-common/goacc-gomp/nesting-1.c: Update. + * c-c++-common/goacc/private-reduction-1.c: Likewise. + * gfortran.dg/goacc/private-3.f95: Likewise. + +2021-05-21 Thomas Schwinge + + * lib/target-supports.exp (check_effective_target___OPTIMIZE__): + New proc. + * gcc.c-torture/compile/ssa-unused-1.c: New file. + +2021-05-21 Richard Biener + H.J. Lu + + * gcc.target/i386/pr90773-24.c: New test. + * gcc.target/i386/pr90773-25.c: Likewise. + +2021-05-21 Uroš Bizjak + + PR target/100637 + * g++.target/i386/pr100637-1b.C: New test. + * g++.target/i386/pr100637-1w.C: Ditto. + * gcc.target/i386/pr100637-2b.c: Ditto. + * gcc.target/i386/pr100637-2w.c: Ditto. + +2021-05-21 Eric Botcazou + + * gnat.dg/derived_type7.adb, gnat.dg/derived_type7.ads: New test. + +2021-05-20 Jason Merrill + + * g++.dg/cpp2a/desig19.C: New test. + +2021-05-20 Jason Merrill + + PR c++/100489 + * g++.dg/cpp2a/desig18.C: New test. + +2021-05-20 Indu Bhagat + + * gcc.dg/pch/valid-1.c: Adjust diagnostic message in testcase. + * lib/dg-pch.exp: Adjust diagnostic message. + +2021-05-20 Martin Sebor + + PR middle-end/100684 + * g++.dg/warn/Wnonnull13.C: New test. + * g++.dg/warn/Wnonnull14.C: New test. + * g++.dg/warn/Wnonnull15.C: New test. + +2021-05-20 Bernd Edlinger + + * g++.dg/modules/omp-1_c.C: Fix testcase. + +2021-05-20 Uroš Bizjak + + PR target/100701 + * gcc.target/i386/pr100701.c: New test. + +2021-05-20 Marcel Vollweiler + + * gfortran.dg/gomp/map-6.f90: New test. + * gfortran.dg/gomp/map-7.f90: New test. + * gfortran.dg/gomp/map-8.f90: New test. + +2021-05-20 Eric Botcazou + + PR testsuite/96488 + * gnat.dg/unchecked_convert5.adb: Do not run on PowerPC64 LE. + * gnat.dg/unchecked_convert6.adb: Likewise. + +2021-05-20 Uroš Bizjak + + PR target/100637 + * gcc.target/i386/pr100637-1w.c (shl, ashr, lshr): New tests. + +2021-05-20 Christophe Lyon + Torbjörn Svensson + + PR c/42579 + * c-c++-common/spellcheck-reserved.c: Add tests for __FILE_NAME__. + * c-c++-common/cpp/file-name-1.c: New test. + +2021-05-20 Tobias Burnus + + PR fortran/96983 + * gfortran.dg/pr96711.f90: Use 2**digit(x) instead of a hard-coded value; + add comments regarding what the code does. + +2021-05-20 Jakub Jelinek + + PR middle-end/99928 + * c-c++-common/gomp/pr99928-4.c: Remove all xfails. + * c-c++-common/gomp/pr99928-5.c: Likewise. + +2021-05-20 Jakub Jelinek + + PR preprocessor/100646 + * gcc.dg/cpp/pr100646-1.c: New test. + * gcc.dg/cpp/pr100646-2.c: New test. + +2021-05-20 Jason Merrill + + PR c++/100634 + * g++.dg/cpp2a/nontype-complex1.C: New test. + +2021-05-20 Jason Merrill + + PR c++/100659 + * g++.dg/parse/access13.C: New test. + +2021-05-19 Martin Sebor + + PR c/100619 + * gcc.dg/pr100619.c: New test. + +2021-05-19 Jason Merrill + + PR c++/100367 + PR c++/96299 + * g++.dg/cpp2a/spaceship-fallback1.C: New test. + +2021-05-19 Jason Merrill + + * g++.dg/cpp1z/class-deduction-access1.C: New test. + * g++.dg/cpp1z/class-deduction-access2.C: New test. + +2021-05-19 Marek Polacek + + PR c++/100596 + * g++.dg/cpp0x/friend7.C: Turn a few dg-warnings into dg-errors. + Remove dg-errors for GNU attributes. + * g++.dg/ext/attrib63.C: Remove dg-error. + * g++.dg/cpp0x/friend8.C: New test. + +2021-05-19 Kito Cheng + + * g++.dg/modules/omp-1_a.C: Check pthread is available. + * g++.dg/modules/omp-1_b.C: Ditto. + * g++.dg/modules/omp-1_c.C: Ditto. + * g++.dg/modules/omp-2_a.C: Ditto. + * g++.dg/modules/omp-2_b.C: Ditto. + +2021-05-19 Alex Coplan + + PR target/100333 + * gcc.target/arm/cmse/pr100333.c: New test. + +2021-05-19 Christophe Lyon + + PR target/99977 + * gcc.target/arm/pr99977.c: Require arm_arch_v8m_base. + +2021-05-19 Geng Qi + + * gcc.target/riscv/arch-12.c: New. + * gcc.target/riscv/attribute-19.c: New. + +2021-05-19 Jonathan Wright + + * gcc.target/aarch64/narrow_high_combine.c: New test. + +2021-05-19 Richard Biener + + PR middle-end/100672 + * gcc.dg/torture/pr100672.c: New testcase. + +2021-05-19 Martin Liska + + PR testsuite/100658 + * gcc.dg/local1.c: Fix typos. + * gcc.dg/ucnid-5-utf8.c: Likewise. + * gcc.dg/ucnid-5.c: Likewise. + +2021-05-19 Andre Vieira + + * gcc.target/aarch64/sve/logical_unpacked_and_2.c: Change + scan-assembly-times to scan-assembly not for superfluous uxtb. + * gcc.target/aarch64/sve/logical_unpacked_and_3.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_and_4.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_and_6.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_and_7.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_eor_2.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_eor_3.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_eor_4.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_eor_6.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_eor_7.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_orr_2.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_orr_3.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_orr_4.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_orr_6.c: Likewise. + * gcc.target/aarch64/sve/logical_unpacked_orr_7.c: Likewise. + * gcc.target/aarch64/sve/ld1_extend.c: New test. + +2021-05-19 Jakub Jelinek + + PR middle-end/100576 + * gcc.c-torture/compile/pr100576.c: New test. + +2021-05-19 Bernd Edlinger + + * gcc.dg/tree-ssa/ssa-sink-3.c: Fix test case. + +2021-05-19 Jakub Jelinek + + PR middle-end/99928 + * c-c++-common/gomp/pr99928-2.c: Remove all xfails. + * c-c++-common/gomp/pr99928-12.c: New test. + +2021-05-19 Xionghu Luo + + * gcc.dg/tree-ssa/ssa-sink-1.c: Adjust. + * gcc.dg/tree-ssa/ssa-sink-2.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-3.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-4.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-5.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-6.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-7.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-8.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-9.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-10.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-13.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-14.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-16.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-17.c: Ditto. + * gcc.dg/tree-ssa/ssa-sink-18.c: New. + +2021-05-19 Jason Merrill + + PR c++/100261 + * g++.dg/dfp/mangle-6.C: New test. + +2021-05-19 Jason Merrill + + PR c++/100372 + * g++.dg/cpp0x/alias-decl-ttp1.C: New test. + +2021-05-18 Bill Schmidt + + * gcc.target/powerpc/ppc64-abi-warn-1.c: Remove. + * gcc.target/powerpc/ppc64-abi-warn-2.c: Remove. + * gcc.target/powerpc/ppc64-abi-warn-3.c: Remove. + +2021-05-18 Jason Merrill + + PR c++/100205 + PR c++/99314 + * g++.dg/cpp0x/decltype-nonstatic1.C: New test. + +2021-05-18 Jason Merrill + + * g++.dg/cpp0x/implicit-delete1.C: New test. + +2021-05-18 David Malcolm + + PR analyzer/100615 + * gcc.dg/analyzer/pr100615.c: New test. + +2021-05-18 Uroš Bizjak + + PR target/100637 + * gcc.target/i386/pr100637-1b.c: New test. + * gcc.target/i386/pr100637-1w.c: Ditto. + * gcc.target/i386/pr92658-avx2-2.c: Do not XFAIL scan for pmovsxbq. + * gcc.target/i386/pr92658-avx2.c: Do not XFAIL scan for pmovzxbq. + * gcc.target/i386/pr92658-avx512vl.c: Do not XFAIL scan for vpmovdb. + * gcc.target/i386/pr92658-sse4-2.c: Do not XFAIL scan for + pmovsxbd and pmovsxwq. + * gcc.target/i386/pr92658-sse4.c: Do not XFAIL scan for + pmovzxbd and pmovzxwq. + +2021-05-18 Tobias Burnus + + PR fortran/100642 + * gfortran.dg/goacc-gomp/depobj.f90: New test. + +2021-05-18 Thomas Schwinge + + * lib/gcc-dg.exp: Implement 'dg-note'. + * lib/prune.exp: Likewise. + * gcc.dg/vect/nodump-vect-opt-info-2.c: Use 'dg-note', and + 'dg-prune-output "note: ". + * gfortran.dg/goacc/routine-external-level-of-parallelism-2.f: Use + 'dg-note', match up additional notes, one class of them with + XFAILed 'dg-bogus'. + * lib/lto.exp: Implement 'dg-lto-note'. + * g++.dg/lto/odr-1_0.C: Use 'dg-lto-note', match up additional + notes. + * g++.dg/lto/odr-1_1.C: Likewise. + * g++.dg/lto/odr-2_1.C: Likewise. + +2021-05-18 Jakub Jelinek + + PR rtl-optimization/100590 + * gcc.dg/pr100590.c: New test. + +2021-05-18 Jakub Jelinek + + PR c++/100580 + * g++.dg/other/pr100580.C: New test. + +2021-05-18 Jakub Jelinek + + PR tree-optimization/94589 + * g++.dg/opt/pr94589-2.C: Adjust scan-tree-dump count from 14 to 12. + +2021-05-18 Richard Biener + + * gcc.target/i386/pr100582.c: Adjust for AVX512. + +2021-05-18 Richard Biener + + PR c/100522 + * gcc.dg/gimplefe-error-10.c: New testcase. + +2021-05-18 Richard Biener + + PR c/100547 + * gcc.dg/pr100547.c: New testcase. + * gcc.dg/attr-vector_size.c: Adjust. + +2021-05-18 Andreas Krebbel + + * gcc.target/s390/zvector/vec-_Bool.c: New test. + +2021-05-18 Andreas Krebbel + + PR c++/100281 + * g++.target/s390/pr100281-1.C: New test. + * g++.target/s390/pr100281-2.C: New test. + +2021-05-17 Andrew MacLeod + + PR tree-optimization/100512 + * gcc.dg/pr100512.c: New. + +2021-05-17 Jonathan Wakely + + * g++.dg/conversion/pr100635.C: New test. + +2021-05-17 Harald Anlauf + + PR fortran/98411 + * gfortran.dg/pr98411.f90: New test. + +2021-05-17 Aldy Hernandez + + * gcc.dg/pr100349.c: New test. + +2021-05-17 Tamar Christina + + * gcc.target/aarch64/cpunative/info_16: New test. + * gcc.target/aarch64/cpunative/info_17: New test. + * gcc.target/aarch64/cpunative/native_cpu_16.c: New test. + * gcc.target/aarch64/cpunative/native_cpu_17.c: New test. + +2021-05-17 Richard Biener + + PR c/100625 + * gcc.dg/gimplefe-error-9.c: New testcase. + +2021-05-17 Richard Biener + + PR middle-end/100582 + * gcc.target/i386/pr100582.c: New testcase. + +2021-05-17 Christophe Lyon + + * gcc.target/arm/simd/mve-compare-3.c: New test with GCC vectors. + * gcc.target/arm/simd/mve-vcmp-f16.c: New test for + auto-vectorization. + * gcc.target/arm/armv8_2-fp16-arith-1.c: Adjust since we now + vectorize float16_t vectors. + +2021-05-17 Christophe Lyon + + * gcc.target/arm/simd/mve-compare-1.c: New test with GCC vectors. + * gcc.target/arm/simd/mve-compare-2.c: New test with GCC vectors. + * gcc.target/arm/simd/mve-compare-scalar-1.c: New test with GCC + vectors. + * gcc.target/arm/simd/mve-vcmp-f32.c: New test for + auto-vectorization. + * gcc.target/arm/simd/mve-vcmp.c: New test for auto-vectorization. + +2021-05-17 liuhongt + + PR target/100549 + * gcc.target/i386/pr100549.c: New test. + +2021-05-17 Christophe Lyon + + * gcc.target/arm/simd/mve-vadd-scalar-1.c: New. + +2021-05-17 Christophe Lyon + + * gcc.target/arm/simd/mve-vadd-1.c: New. + +2021-05-17 Christophe Lyon + + * gcc.target/arm/simd/mve-vsub_1.c: Factorize and add __fp16 test. + +2021-05-17 Christophe Lyon + + * gcc.target/arm/simd/mve-vshr.c: Add more scan-assembler-times. + +2021-05-17 Christophe Lyon + + * gcc.target/arm/acle/saturation.c: Use arm_sat_ok effective + target. + * lib/target-supports.exp + (check_effective_target_arm_qbit_ok_nocache): Rename into... + (check_effective_target_arm_sat_ok_nocache): ... this. Check + __ARM_FEATURE_SAT and use armv6. + +2021-05-17 Tobias Burnus + + PR fortran/100633 + * gfortran.dg/gomp/workshare-59.f90: New test. + +2021-05-17 Christophe Lyon + + PR debug/100515 + * gcc.dg/debug/dwarf2/pr100515.c: Require openmp effective-target. + +2021-05-16 David Edelsohn + + * g++.dg/ext/attrib63.C: Add -Wno-psabi option. + +2021-05-16 David Edelsohn + + * g++.dg/warn/uninit-pr93100.C: Require fsantize support. + +2021-05-16 Christophe Lyon + + * gcc.target/arm/unsigned-float.c: Remove arm_fp_ok, adjust + dg-options. + +2021-05-15 Bill Schmidt + + * gcc.target/powerpc/rop-1.c: New. + * gcc.target/powerpc/rop-2.c: New. + * gcc.target/powerpc/rop-3.c: New. + * gcc.target/powerpc/rop-4.c: New. + * gcc.target/powerpc/rop-5.c: New. + +2021-05-15 Martin Jambor + + Revert: + 2021-05-15 Martin Jambor + + PR tree-optimization/100453 + * gcc.dg/tree-ssa/pr100453.c: New test. + +2021-05-15 Jakub Jelinek + + PR rtl-optimization/100342 + * gcc.target/i386/pr100342.c: New test. + +2021-05-14 Tobias Burnus + + * gfortran.dg/gomp/parallel-master-1.f90: New test. + * gfortran.dg/gomp/parallel-master-2.f90: New test. + +2021-05-14 Tobias Burnus + + * gfortran.dg/gomp/implicit-save.f90: New test. + +2021-05-14 Jakub Jelinek + + PR c++/95226 + * g++.dg/cpp1y/pr95226.C: New test. + +2021-05-14 Jakub Jelinek + + PR c++/94616 + * g++.dg/cpp0x/pr94616.C: New test. + +2021-05-14 Jakub Jelinek + + PR c++/90019 + * g++.dg/cpp0x/sfinae68.C: New test. + +2021-05-14 Jakub Jelinek + + * g++.dg/cpp1y/pr88872.C: New test. + +2021-05-14 Michael de Lang + + * g++.dg/tsan/pthread_cond_clockwait.C: New test. + +2021-05-14 Marek Polacek + Jason Merrill + + PR c++/99032 + * g++.dg/cpp0x/friend7.C: New test. + * g++.dg/cpp0x/gen-attrs-4.C: Add dg-error. + * g++.dg/cpp0x/gen-attrs-39-1.C: Likewise. + * g++.dg/cpp0x/gen-attrs-74.C: New test. + * g++.dg/ext/attrib63.C: New test. + +2021-05-13 Martin Sebor + + PR tree-optimization/93100 + PR middle-end/98583 + * g++.dg/warn/uninit-pr93100.C: New test. + * gcc.dg/uninit-pr93100.c: New test. + * gcc.dg/uninit-pr98583.c: New test. + +2021-05-13 Martin Jambor + + PR tree-optimization/100453 + * gcc.dg/tree-ssa/pr100453.c: New test. + +2021-05-13 Martin Sebor + + * g++.dg/pr100574.C: Use size_t as operator new argument type. + +2021-05-13 Martin Liska + + PR middle-end/100504 + * gcc.target/i386/pr100504.c: New test. + +2021-05-13 Martin Sebor + + PR c/100550 + * gcc.dg/Wvla-parameter-9.c: New test. + +2021-05-13 Jakub Jelinek + + PR middle-end/99928 + * c-c++-common/gomp/pr99928-1.c: New test. + * c-c++-common/gomp/pr99928-2.c: New test. + * c-c++-common/gomp/pr99928-3.c: New test. + * c-c++-common/gomp/pr99928-4.c: New test. + * c-c++-common/gomp/pr99928-5.c: New test. + * c-c++-common/gomp/pr99928-6.c: New test. + * c-c++-common/gomp/pr99928-7.c: New test. + * c-c++-common/gomp/pr99928-8.c: New test. + * c-c++-common/gomp/pr99928-9.c: New test. + * c-c++-common/gomp/pr99928-10.c: New test. + * c-c++-common/gomp/pr99928-11.c: New test. + +2021-05-13 Richard Earnshaw + + PR target/100563 + * gcc.dg/pr100563.c (dg-options): Add -wno-pointer-to-int-cast. + +2021-05-13 Richard Earnshaw + + * gcc.dg/pr100563.c: New test. + +2021-05-13 Jakub Jelinek + + PR tree-optimization/98856 + * gcc.target/i386/sse2-psraq-1.c: New test. + * gcc.target/i386/sse4_2-psraq-1.c: New test. + * gcc.target/i386/avx-psraq-1.c: New test. + * gcc.target/i386/avx2-psraq-1.c: New test. + * gcc.target/i386/avx-pr82370.c: Adjust expected number of vpsrad + instructions. + * gcc.target/i386/avx2-pr82370.c: Likewise. + * gcc.target/i386/avx512f-pr82370.c: Likewise. + * gcc.target/i386/avx512bw-pr82370.c: Likewise. + * gcc.dg/torture/vshuf-4.inc: Add two further permutations. + * gcc.dg/torture/vshuf-8.inc: Likewise. + +2021-05-13 Uroš Bizjak + + PR target/100581 + * g++.target/i386/pr100581.C: New test. + +2021-05-13 Eric Botcazou + + PR testsuite/100569 + * gnat.dg/lto21.adb: Prune new LTO warning. + +2021-05-13 Martin Liska + + PR testsuite/100569 + * gcc.dg/atomic/c11-atomic-exec-2.c: Prune new LTO warning. + * gcc.dg/torture/pr94947-1.c: Likewise. + +2021-05-13 liuhongt + + * gcc.target/i386/avx-pr94680.c: Fix typo in testcase. + +2021-05-13 liuhongt + + PR target/94680 + * gcc.target/i386/avx-pr94680.c: New test. + * gcc.target/i386/avx512f-pr94680.c: New test. + * gcc.target/i386/sse2-pr94680.c: New test. + +2021-05-12 Martin Sebor + + PR middle-end/100571 + * gcc.dg/Wstringop-overflow-67.c: New test. + +2021-05-12 Aldy Hernandez + + PR c/100521 + * gcc.dg/pr100521.c: New file. + +2021-05-12 Marek Polacek + + * g++.dg/warn/Wint-in-bool-context-2.C: New test. + +2021-05-12 Marcel Vollweiler + + * c-c++-common/gomp/map-6.c: New test. + * c-c++-common/gomp/map-7.c: New test. + +2021-05-12 Richard Biener + + PR tree-optimization/100566 + * gcc.dg/torture/pr100566.c: New testcase. + +2021-05-12 Jakub Jelinek + + PR preprocessor/100392 + * gcc.dg/cpp/pr100392.c: New test. + * gcc.dg/cpp/pr100392.h: New file. + +2021-05-12 Martin Liska + + * lib/lto.exp: When running tests without jobserver, one can see + the following warning for tests that use 1to1 partitioning. + +2021-05-12 liuhongt + + PR target/99908 + * gcc.target/i386/avx2-pr99908.c: New test. + * gcc.target/i386/sse4_1-pr99908.c: New test. + +2021-05-12 Richard Biener + + PR tree-optimization/100519 + * gcc.dg/torture/pr100519.c: New testcase. + +2021-05-12 Bernd Edlinger + + PR debug/100515 + * gcc.dg/debug/dwarf2/pr100515.c: New testcase. + +2021-05-12 Jakub Jelinek + + PR middle-end/100508 + * gcc.dg/gomp/pr100508.c: New test. + +2021-05-12 Jakub Jelinek + Marc Glisse + + PR tree-optimization/94589 + * gcc.dg/tree-ssa/pr94589-1.c: New test. + +2021-05-12 Uroš Bizjak + + PR target/98218 + * g++.target/i386/pr98218-1.C: Ditto. + * gcc.target/i386/pr98218-4.c: New test. + * gcc.target/i386/pr98218-1.c: Correct PR number. + * gcc.target/i386/pr98218-1a.c: Ditto. + * gcc.target/i386/pr98218-2.c: Ditto. + * gcc.target/i386/pr98218-2a.c: Ditto. + * gcc.target/i386/pr98218-3.c: Ditto. + * gcc.target/i386/pr98218-3a.c: Ditto. + +2021-05-11 Joseph Myers + + * gcc.dg/cpp/c11-elifdef-1.c, gcc.dg/cpp/c2x-elifdef-1.c, + gcc.dg/cpp/c2x-elifdef-2.c: New tests. + +2021-05-11 Joseph Myers + + * g++.dg/cpp1y/digit-sep-paste.C, gcc.dg/c2x-digit-separators-3.c: + New tests. + +2021-05-11 Stefan Schulze Frielinghaus + + * gcc.dg/guality/pr43077-1.c: Align types of output and input + operands by lifting immediates to type long. + +2021-05-11 Joseph Myers + + * gcc.dg/c11-digit-separators-1.c, + gcc.dg/c2x-digit-separators-1.c, gcc.dg/c2x-digit-separators-2.c: + New tests. + +2021-05-11 Jason Merrill + + PR c++/100517 + * g++.dg/ext/vector41.C: New test. + +2021-05-11 Martin Liska + + * gfortran.dg/goacc/pr78027.f90: Remove -Wno-hsa option. + * brig.dg/README: Removed. + * brig.dg/dg.exp: Removed. + * brig.dg/test/gimple/alloca.hsail: Removed. + * brig.dg/test/gimple/atomics.hsail: Removed. + * brig.dg/test/gimple/branches.hsail: Removed. + * brig.dg/test/gimple/fbarrier.hsail: Removed. + * brig.dg/test/gimple/function_calls.hsail: Removed. + * brig.dg/test/gimple/internal-casts.hsail: Removed. + * brig.dg/test/gimple/kernarg.hsail: Removed. + * brig.dg/test/gimple/mem.hsail: Removed. + * brig.dg/test/gimple/mulhi.hsail: Removed. + * brig.dg/test/gimple/packed.hsail: Removed. + * brig.dg/test/gimple/priv-array-offset-access.hsail: Removed. + * brig.dg/test/gimple/smoke_test.hsail: Removed. + * brig.dg/test/gimple/variables.hsail: Removed. + * brig.dg/test/gimple/vector.hsail: Removed. + * lib/brig-dg.exp: Removed. + * lib/brig.exp: Removed. + +2021-05-11 Alex Coplan + + PR target/99725 + * gcc.target/arm/cmse/pr99725.c: New test. + +2021-05-11 Richard Sandiford + + * gcc.target/aarch64/fmul_lane_1.c: New test. + +2021-05-11 Richard Biener + + PR middle-end/100509 + * gcc.dg/pr100509.c: New testcase. + +2021-05-11 Robin Dapp + + * gcc.target/s390/risbg-ll-3.c: Change match pattern. + +2021-05-11 Patrick Palka + + PR c++/51577 + * g++.dg/lookup/operator-3.C: New test. + +2021-05-11 Patrick Palka + + PR c++/100138 + * g++.dg/cpp2a/concepts-ctad4.C: New test. + +2021-05-10 Eric Botcazou + + * gnat.dg/specs/opt5.ads: New test. + * gnat.dg/specs/opt5_pkg.ads: New helper. + +2021-05-10 Martin Sebor + + PR middle-end/100425 + PR middle-end/100510 + * c-c++-common/Walloca-larger-than.C: New test. + * gcc.dg/Walloca-larger-than-4.c: New test. + * gcc.dg/Wvla-larger-than-5.c: New test. + * gcc.dg/pr79972.c: Remove unexpected warning directive. + +2021-05-10 Pat Haugen + + * gcc.target/powerpc/fold-vec-insert-float-p9.c: Adjust counts. + * gcc.target/powerpc/vec-rlmi-rlnm.c: Likewise. + +2021-05-10 Christophe Lyon + + * gcc.target/arm/simd/mve-vmul-scalar-1.c: New. + +2021-05-10 Christophe Lyon + + * gcc.target/arm/simd/mve-vsub-scalar-1.c: New test. + +2021-05-10 H.J. Lu + + PR tree-optimization/42587 + * gcc.dg/optimize-bswapsi-6.c: New test. + +2021-05-10 Richard Biener + + PR testsuite/100452 + * g++.dg/vect/slp-pr99971.cc: Align data. + +2021-05-10 Richard Biener + + PR tree-optimization/100492 + * gcc.dg/torture/pr100492.c: New testcase. + +2021-05-10 Richard Biener + + PR middle-end/100464 + PR c++/100468 + * gcc.dg/pr100464.c: New testcase. + * g++.dg/tree-ssa/array-temp1.C: Adjust. + +2021-05-10 Richard Biener + + PR tree-optimization/100434 + * gcc.dg/tree-ssa/ssa-dse-43.c: New testcase. + +2021-05-10 Alex Coplan + + PR target/99960 + * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c: + Update now that we're (correctly) using full 128-bit vector + loads/stores. + * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c: + Likewise. + * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c: + Likewise. + * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c: + Likewise. + * gcc.target/arm/mve/intrinsics/vuninitializedq_int.c: Likewise. + * gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c: + Likewise. + +2021-05-08 Paul Thomas + + PR fortran/46991 + * gfortran.dg/class_dummy_7.f90: Correct PR number. + +2021-05-08 Eric Botcazou + + * gcc.dg/sso-9.c: Delete. + +2021-05-07 Eric Botcazou + + * gnat.dg/debug18.adb: New test. + +2021-05-07 Eric Botcazou + + * gcc.dg/sso-12.c: New test. + +2021-05-07 Jason Merrill + + * g++.dg/coroutines/coro-bad-gro-00-class-gro-scalar-return.C: + Adjust diagnostic. + +2021-05-07 Christophe Lyon + + PR tree-optimization/79333 + * gcc.dg/tree-ssa/ssa-fre-94.c: Require c99_runtime. + +2021-05-07 Jakub Jelinek + + PR c/100450 + * c-c++-common/gomp/pr100450.c: New test. + +2021-05-07 Uroš Bizjak + + PR target/100445 + * gcc.target/i386/pr100445-1.c: New test. + +2021-05-07 Jakub Jelinek + + PR target/100445 + * gcc.target/i386/pr100445.c: New test. + +2021-05-06 Joseph Myers + + PR c++/83873 + PR preprocessor/97604 + * g++.dg/cpp1y/digit-sep-neg-2.C, + g++.dg/cpp1y/digit-sep-pp-number.C: New tests. + * g++.dg/cpp1y/digit-sep-line-neg.C, g++.dg/cpp1y/digit-sep-neg.C: + Adjust expected messages. + +2021-05-06 Martin Jambor + + * gcc.dg/ipa/ipa-sra-1.c (main): Revert change done by + 05193687dde, make the argv again pointer to an array. + +2021-05-06 Eric Botcazou + + * gnat.dg/opt93.adb: Compile only for LP64 targets. + +2021-05-06 Robin Dapp + + * lib/target-supports.exp: Add s390 checks for vect conversions. + +2021-05-06 Robin Dapp + + * gcc.dg/vect/pr56541.c: Add vect_floatint_cvt. + +2021-05-06 Paul Thomas + + PR fortran/46991 + PR fortran/99819 + * gfortran.dg/class_dummy_6.f90: New test. + * gfortran.dg/class_dummy_7.f90: New test. + +2021-05-06 Christophe Lyon + + PR testsuite/100355 + * gcc.c-torture/execute/ieee/cdivchkld.x: New. + +2021-05-06 Marius Hillenbrand + + * gcc.target/s390/zvector/imm-range-error-1.c: Fix test for + __builtin_s390_vpdi. + * gcc.target/s390/zvector/vec-permi.c: New test for builtin + vec_permi. + +2021-05-06 Jakub Jelinek + + PR tree-optimization/94589 + * gcc.dg/pr94589-1.c: New test. + * gcc.dg/pr94589-2.c: New test. + * gcc.dg/pr94589-3.c: New test. + * gcc.dg/pr94589-4.c: New test. + * g++.dg/opt/pr94589-1.C: New test. + * g++.dg/opt/pr94589-2.C: New test. + * g++.dg/opt/pr94589-3.C: New test. + * g++.dg/opt/pr94589-4.C: New test. + +2021-05-06 Richard Biener + + PR ipa/100373 + * gcc.dg/pr100373.c: New testcase. + +2021-05-05 Eric Botcazou + + * gcc.c-torture/execute/20210505-1.c: New test. + +2021-05-05 Ivan Sorokin + + PR target/91400 + * gcc.target/i386/pr91400-1.c: New test. + * gcc.target/i386/pr91400-2.c: Likewise. + +2021-05-05 Martin Sebor + + * gcc.dg/tree-ssa/builtin-sprintf-warn-26.c: New test. + +2021-05-05 Harald Anlauf + + PR fortran/100274 + * gfortran.dg/argument_checking_25.f90: New test. + +2021-05-05 Uroš Bizjak + + PR target/98218 + * gcc.target/i386/pr98218-1.c: New test. + * gcc.target/i386/pr98218-1a.c: Ditto. + * gcc.target/i386/pr98218-2.c: Ditto. + * gcc.target/i386/pr98218-2a.c: Ditto. + * gcc.target/i386/pr98218-3.c: Ditto. + * gcc.target/i386/pr98218-3a.c: Ditto. + * gcc.dg/vect/vect-bool-cmp.c (dg-final): + Scan vect tree dump for "LOOP VECTORIZED", not VECTORIZED. + +2021-05-05 Eric Botcazou + + * gnat.dg/debug17.adb: Minor tweak. + +2021-05-05 Eric Botcazou + + * gnat.dg/debug8.adb: Minor tweak. + * gnat.dg/debug11.adb: Likewise. + * gnat.dg/debug16.adb: Likewise. + * gnat.dg/debug17.adb: New test. + * gnat.dg/specs/debug1.ads: Minor tweak. + +2021-05-05 Robin Dapp + + * gcc.dg/vect/slp-21.c: Add s390. + +2021-05-05 Tobias Burnus + + PR testsuite/100422 + * g++.dg/gomp/clause-3.C: Use 'reduction(&:..)' instead of '...(&&:..)'. + +2021-05-05 Richard Biener + + PR tree-optimization/79333 + * gcc.dg/tree-ssa/ssa-fre-94.c: New testcase. + * gcc.dg/graphite/fuse-1.c: Adjust. + * gcc.dg/pr43864-4.c: Likewise. + +2021-05-05 Richard Biener + + PR middle-end/100394 + * g++.dg/torture/pr100382.C: New testcase. + +2021-05-04 Martin Sebor + + PR middle-end/100307 + * g++.dg/warn/Wplacement-new-size-9.C: New test. + * gcc.dg/tree-ssa/builtin-sprintf-warn-26.c: New test. + +2021-05-04 Martin Sebor + + * gcc.dg/Wvla-parameter-3.c: Use unique strings in directive names. + +2021-05-04 Martin Sebor + + * gcc.dg/Wvla-parameter-2.c: Use unique strings in directive names. + +2021-05-04 Robin Dapp + + * gcc.target/s390/oscbreak-1.c: Compile with -O1 + -fschedule-insns + +2021-05-04 Richard Biener + + PR tree-optimization/100414 + * gcc.dg/pr100414.c: New testcase. + +2021-05-04 Tobias Burnus + + * gcc.dg/gomp/clause-1.c: Use 'reduction(&:..)' instead of '...(&&:..)'. + +2021-05-04 Eric Botcazou + + * gnat.dg/opt94.adb: New file. + * gnat.dg/opt94_pkg.adb: New file. + * gnat.dg/opt94_pkg.ads: New file. + +2021-05-04 Richard Biener + + * gcc.dg/tree-ssa/ssa-dse-26.c: Skip on !lp64 targets, + simplify dump scanning down to one case. + +2021-05-04 Richard Biener + + PR tree-optimization/100329 + * gcc.dg/torture/pr100329.c: New testcase. + +2021-05-04 Richard Biener + + PR tree-optimization/100398 + * gcc.dg/torture/pr100398.c: New testcase. + +2021-05-03 Christophe Lyon + + * gcc.target/aarch64/advsimd-intrinsics/vmla_float_not_fused.c: + Fix dg directives order. + * gcc.target/aarch64/advsimd-intrinsics/vmls_float_not_fused.c: + Likewise. + +2021-05-03 Jeff Law + + * gcc.dg/tree-ssa/ssa-dse-26.c: Fix expected output for nds32le + and m32r. + +2021-05-03 Patrick Palka + + PR c++/100362 + * g++.dg/cpp1y/lambda-generic-100362.C: New test. + +2021-05-03 Patrick Palka + + PR c++/68942 + PR c++/100344 + * g++.dg/template/call8.C: New test. + * g++.dg/template/koenig12a.C: New test. + +2021-05-03 Jeff Law + + * gcc.dg/tree-ssa/ssa-dse-26.c: Fix expected output for bfin and lm32. + +2021-05-03 Marek Polacek + + PR c++/100055 + * g++.dg/concepts/diagnostic18.C: New test. + +2021-05-03 Marek Polacek + + DR 1312 + * g++.dg/cpp0x/constexpr-cast2.C: Remove XFAILs. + +2021-05-03 Jeff Law + + * gcc.dg/tree-ssa/ssa-dse-26.c: Fix xstormy selector. + +2021-05-03 Jeff Law + + * gcc.dg/tree-ssa/ssa-dse-26.c: Update expected output for rx too. + +2021-05-03 Jeff Law + + * gcc.dg/tree-ssa/ssa-dse-26.c: Update expected output for or1k too. + +2021-05-03 Jeff Law + + * gcc.dg/tree-ssa/ssa-dse-26.c: Update expected output for + cr16 and xstormy16 targets. + +2021-05-03 Richard Biener + + * gcc.dg/tree-ssa/ssa-dse-42.c: New testcase. + * gcc.dg/pr81192.c: Disable DSE. + +2021-05-03 Richard Biener + + * gcc.dg/tree-ssa/ssa-dse-41.c: New testcase. + +2021-05-03 Ilya Leoshkevich + + PR target/100217 + * gcc.target/s390/vector/long-double-asm-in-out-hard-fp-reg.c: New test. + * gcc.target/s390/vector/long-double-asm-inout-hard-fp-reg.c: New test. + +2021-05-02 David Edelsohn + + * g++.dg/ext/visibility/fvisibility-inlines-hidden-4.C: Expect [BS] + mapping class on AIX. + * gcc.c-torture/compile/pr61159.c: XFAIL on AIX. + * gcc.c-torture/execute/alias-2.c: Same. + * gcc.dg/alias-7.c: Same. + +2021-04-30 Jonathan Wright + + * gcc.target/aarch64/advsimd-intrinsics/vmla_float_not_fused.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vmls_float_not_fused.c: + New test. + +2021-04-30 Richard Biener + + PR c++/98032 + * g++.dg/pr98032.C: New testcase. + +2021-04-30 Richard Biener + + PR tree-optimization/96513 + * gcc.dg/torture/pr96513.c: New testcase. + +2021-04-30 Uroš Bizjak + + PR target/98060 + * gcc.target/i386/pr98060.c: New test. + +2021-04-30 Roman Zhuykov + + PR rtl-optimization/100225 + PR rtl-optimization/84878 + * gcc.dg/pr100225.c: New test. + +2021-04-29 Joseph Myers + + PR preprocessor/82359 + * g++.dg/cpp1y/digit-sep-line.C, + g++.dg/cpp1y/digit-sep-line-neg.C: New tests. + +2021-04-29 Jason Merrill + + * g++.dg/lookup/using-decl1.C: New test. + +2021-04-29 Jason Merrill + + PR c++/97974 + * g++.old-deja/g++.law/union4.C: Add expected diagnostic. + +2021-04-29 Patrick Palka + + PR c++/68942 + * g++.dg/template/koenig12.C: New test. + +2021-04-29 Marek Polacek + + PR c++/94102 + * g++.dg/cpp1z/class-deduction87.C: New test. + +2021-04-29 Richard Sandiford + + PR rtl-optimization/100303 + * g++.dg/torture/pr100303.C: New file. + +2021-04-29 H.J. Lu + + PR middle-end/90773 + * g++.dg/pr90773-1.h: New test. + * g++.dg/pr90773-1a.C: Likewise. + * g++.dg/pr90773-1b.C: Likewise. + * g++.dg/pr90773-1c.C: Likewise. + * g++.dg/pr90773-1d.C: Likewise. + * gcc.target/i386/pr90773-1.c: Likewise. + * gcc.target/i386/pr90773-2.c: Likewise. + * gcc.target/i386/pr90773-3.c: Likewise. + * gcc.target/i386/pr90773-4.c: Likewise. + * gcc.target/i386/pr90773-5.c: Likewise. + * gcc.target/i386/pr90773-6.c: Likewise. + * gcc.target/i386/pr90773-7.c: Likewise. + * gcc.target/i386/pr90773-8.c: Likewise. + * gcc.target/i386/pr90773-9.c: Likewise. + * gcc.target/i386/pr90773-10.c: Likewise. + * gcc.target/i386/pr90773-11.c: Likewise. + * gcc.target/i386/pr90773-12.c: Likewise. + * gcc.target/i386/pr90773-13.c: Likewise. + * gcc.target/i386/pr90773-14.c: Likewise. + +2021-04-29 Richard Biener + + PR tree-optimization/100253 + * g++.dg/pr100253.C: New testcase. + +2021-04-29 Jakub Jelinek + + PR target/100305 + * gcc.c-torture/compile/pr100305.c: Remove dg-options. Add PR line. + +2021-04-29 Jakub Jelinek + + PR target/100302 + * gcc.target/aarch64/sve/pr100302.c: New test. + +2021-04-29 Jakub Jelinek + + PR c++/100319 + * c-c++-common/gomp/task-detach-3.c: New test. + +2021-04-29 Richard Biener + + PR tree-optimization/99912 + * gcc.dg/pr95580.c: Disable DSE. + * gcc.dg/Wrestrict-8.c: Place a use after each memcpy. + * c-c++-common/ubsan/overflow-negate-3.c: Make asms volatile + to prevent them from being removed. + * c-c++-common/ubsan/overflow-sub-4.c: Likewise. + +2021-04-29 Martin Sebor + + PR middle-end/100250 + * gcc.dg/uninit-pr100250.c: New test. + +2021-04-29 Joseph Myers + + * gcc.dg/c11-unproto-1.c, gcc.dg/c11-unproto-2.c, + gcc.dg/c2x-unproto-1.c, gcc.dg/c2x-unproto-2.c: New tests. + +2021-04-28 Tobias Burnus + + * gfortran.dg/gomp/map-5.f90: New test. + +2021-04-28 Patrick McGehearty + + * gcc.c-torture/execute/ieee/cdivchkd.c: New test. + * gcc.c-torture/execute/ieee/cdivchkf.c: Likewise. + * gcc.c-torture/execute/ieee/cdivchkld.c: Likewise. + +2021-04-28 Alexandre Oliva + + * gcc.target/i386/pr89676.c: Add -fomit-frame-pointer. + +2021-04-28 Alexandre Oliva + + * gcc.dg/debug/dwarf2/inline5.c: Adjust pattern to avoid + mismatch when asm comments start with "/ ". + +2021-04-28 Richard Sandiford + + PR target/100305 + * gcc.c-torture/compile/pr100305.c: New test. + +2021-04-28 José Rui Faustino de Sousa + + PR fortran/82376 + * gfortran.dg/PR82376.f90: New test. + +2021-04-28 Richard Biener + + PR tree-optimization/100292 + * gcc.dg/pr100292.c: New testcase. + +2021-04-28 Richard Wai + + * gnat.dg/containers2.adb: New test. + +2021-04-28 Eric Botcazou + + * gnat.dg/opt93.ads, gnat.dg/opt93.adb: New test. + +2021-04-27 Jason Merrill + + PR c++/92145 + * g++.dg/cpp0x/depr-copy3.C: New test. + +2021-04-27 Patrick Palka + + PR c++/88580 + * g++.dg/cpp0x/variadic182.C: New test. + +2021-04-27 Richard Sandiford + + PR middle-end/100284 + * gcc.target/aarch64/sve/pr81003.c: New test. + +2021-04-27 Martin Sebor + + PR testsuite/100272 + * g++.dg/ext/flexary13.C: Remove malformed directives. + +2021-04-27 Bernd Edlinger + + PR target/100106 + * gcc.c-torture/compile/pr100106.c: New testcase. + +2021-04-27 Alex Coplan + + PR target/99977 + * gcc.target/arm/pr99977.c: New test. + +2021-04-27 Jakub Jelinek + + PR tree-optimization/100239 + * gcc.dg/pr100239.c: New test. + +2021-04-27 Jakub Jelinek + + PR rtl-optimization/100254 + * g++.dg/opt/pr100254.C: New test. + +2021-04-27 Richard Biener + + PR tree-optimization/99912 + * gcc.dg/tree-ssa/ldist-33.c: Disable PRE and LIM. + * gcc.dg/tree-ssa/pr96789.c: Adjust dump file scanned. + * gcc.dg/tree-ssa/ssa-dse-28.c: Likewise. + * gcc.dg/tree-ssa/ssa-dse-29.c: Likewise. + +2021-04-27 Jakub Jelinek + + PR tree-optimization/95527 + * gcc.dg/tree-ssa/pr95527-2.c: New test. + +2021-04-27 Jakub Jelinek + + PR tree-optimization/96696 + * gcc.target/i386/pr96696.c: New test. + +2021-04-27 Richard Sandiford + + PR target/100270 + * gcc.target/aarch64/sve/acle/general-c/pr100270_1.c: New test. + * gcc.target/aarch64/sve/acle/general-c/sizeless-2.c: Change + expected error message when subtracting pointers to different + vector types. Expect warnings when mixing them elsewhere. + * gcc.target/aarch64/sve/acle/general/attributes_7.c: Remove + XFAILs. Tweak error messages for some cases. + +2021-04-27 Richard Sandiford + + * gcc.target/aarch64/simd/ssra.c: Use +nosve + * gcc.target/aarch64/simd/usra.c: Likewise. + +2021-04-27 Richard Biener + + PR tree-optimization/100051 + * gcc.dg/tree-ssa/ssa-fre-92.c: New testcase. + +2021-04-27 Richard Biener + + PR testsuite/100272 + * gcc.dg/tree-ssa/predcom-1.c: Re-enable PRE and fix + malformed dg directive. + +2021-04-27 Richard Biener + + PR testsuite/100272 + * g++.dg/diagnostic/ptrtomem1.C: Fix dg directives. + * g++.dg/ipa/pr45572-2.C: Likewise. + * g++.dg/template/spec26.C: Likewise. + * gcc.dg/pr20126.c: Likewise. + * gcc.dg/tree-ssa/pr20739.c: Likewise. + +2021-04-27 Richard Biener + + PR tree-optimization/100278 + * gcc.dg/tree-ssa/pr100278.c: New testcase. + +2021-04-27 Jakub Jelinek + + PR target/99405 + * gcc.target/i386/pr99405.c: New test. + +2021-04-27 Richard Biener + + PR tree-optimization/99776 + * gcc.dg/tree-ssa/ssa-fre-91.c: New testcase. + +2021-04-26 Patrick Palka + + PR c++/100209 + * g++.dg/cpp1y/constexpr-base1.C: New test. + * g++.dg/cpp1y/constexpr-ptrsub1.C: New test. + +2021-04-26 Tobias Burnus + + * gfortran.dg/goacc/classify-serial.f95: + Use [Ww]arning in dg-bogus as FE diagnostic and default + diagnostic differ and the result depends on ENABLE_OFFLOAD. + * gfortran.dg/goacc/kernels-decompose-2.f95: Likewise. + * gfortran.dg/goacc/routine-module-mod-1.f90: Likewise. + +2021-04-26 Tobias Burnus + + * gfortran.dg/goacc/classify-serial.f95: + Correct spelling in dg-bogus to match -Wopenacc-parallelism. + * gfortran.dg/goacc/kernels-decompose-2.f95: Likewise. + * gfortran.dg/goacc/routine-module-mod-1.f90: Likewise. + +2021-04-26 Richard Biener + + PR tree-optimization/99956 + * gfortran.dg/pr99956.f: New testcase. + +2021-04-26 Christophe Lyon + + * gcc.target/arm/cmse/bitfield-1.c: Remove dg-do. + * gcc.target/arm/cmse/bitfield-2.c: Likewise. + * gcc.target/arm/cmse/bitfield-3.c: Likewise. + * gcc.target/arm/cmse/cmse-16.c: Likewise. + * gcc.target/arm/cmse/struct-1.c: Likewise. + * gcc.target/arm/cmse/cmse.exp: Set dg-do-what-default depending + on arm_cmse_hw. + * lib/target-supports.exp (check_effective_target_arm_cmse_hw): + New. + +2021-04-26 Eric Botcazou + + * gcc.dg/pr84877.c: XFAIL on SPARC as well. + +2021-04-26 Thomas Schwinge + Nathan Sidwell + Tom de Vries + Julian Brown + Kwok Cheung Yeung + + * c-c++-common/goacc/diag-parallelism-1.c: New. + * c-c++-common/goacc/acc-icf.c: Specify '-Wopenacc-parallelism', + and match diagnostics, as appropriate. + * c-c++-common/goacc/classify-kernels-unparallelized.c: Likewise. + * c-c++-common/goacc/classify-kernels.c: Likewise. + * c-c++-common/goacc/classify-parallel.c: Likewise. + * c-c++-common/goacc/classify-routine.c: Likewise. + * c-c++-common/goacc/classify-serial.c: Likewise. + * c-c++-common/goacc/kernels-decompose-1.c: Likewise. + * c-c++-common/goacc/kernels-decompose-2.c: Likewise. + * c-c++-common/goacc/parallel-dims-1.c: Likewise. + * c-c++-common/goacc/parallel-reduction.c: Likewise. + * c-c++-common/goacc/pr70688.c: Likewise. + * c-c++-common/goacc/routine-1.c: Likewise. + * c-c++-common/goacc/routine-level-of-parallelism-2.c: Likewise. + * c-c++-common/goacc/uninit-dim-clause.c: Likewise. + * gfortran.dg/goacc/classify-kernels-unparallelized.f95: Likewise. + * gfortran.dg/goacc/classify-kernels.f95: Likewise. + * gfortran.dg/goacc/classify-parallel.f95: Likewise. + * gfortran.dg/goacc/classify-routine.f95: Likewise. + * gfortran.dg/goacc/classify-serial.f95: Likewise. + * gfortran.dg/goacc/kernels-decompose-1.f95: Likewise. + * gfortran.dg/goacc/kernels-decompose-2.f95: Likewise. + * gfortran.dg/goacc/parallel-tree.f95: Likewise. + * gfortran.dg/goacc/routine-4.f90: Likewise. + * gfortran.dg/goacc/routine-level-of-parallelism-1.f90: Likewise. + * gfortran.dg/goacc/routine-module-mod-1.f90: Likewise. + * gfortran.dg/goacc/routine-multiple-directives-1.f90: Likewise. + * gfortran.dg/goacc/uninit-dim-clause.f95: Likewise. + +2021-04-26 Richard Biener + + PR tree-optimization/99473 + * gcc.dg/tree-ssa/pr99473-1.c: New testcase. + +2021-04-25 liuhongt + + PR target/98911 + * gcc.target/i386/pr98911.c: New test. + * gcc.target/i386/funcspec-8.c: Replace __builtin_ia32_pcmpgtq + with __builtin_ia32_pcmpistrm128 since it has been folded. + +2021-04-24 David Malcolm + + PR analyzer/100244 + * g++.dg/analyzer/pr100244.C: New test. + +2021-04-24 Harald Anlauf + + PR fortran/100154 + * gfortran.dg/pr100154.f90: New test. + +2021-04-24 Harald Anlauf + + PR fortran/100218 + * gfortran.dg/ptr-func-4.f90: New test. + +2021-04-24 Richard Sandiford + + * gcc.dg/guality/example.c: Update aarch64*-*-* xfails. + * gcc.dg/guality/guality.c: Likewise. + * gcc.dg/guality/inline-params.c: Likewise. + * gcc.dg/guality/loop-1.c: Likewise. + * gcc.dg/guality/pr36728-1.c: Likewise. + * gcc.dg/guality/pr36728-2.c: Likewise. + * gcc.dg/guality/pr36728-3.c: Likewise. + * gcc.dg/guality/pr41447-1.c: Likewise. + * gcc.dg/guality/pr54200.c: Likewise. + * gcc.dg/guality/pr54519-1.c: Likewise. + * gcc.dg/guality/pr54519-2.c: Likewise. + * gcc.dg/guality/pr54519-3.c: Likewise. + * gcc.dg/guality/pr54519-4.c: Likewise. + * gcc.dg/guality/pr54519-5.c: Likewise. + * gcc.dg/guality/pr54519-6.c: Likewise. + * gcc.dg/guality/pr54693-2.c: Likewise. + * gcc.dg/guality/pr56154-1.c: Likewise. + * gcc.dg/guality/pr59776.c: Likewise. + * gcc.dg/guality/pr68860-1.c: Likewise. + * gcc.dg/guality/pr68860-2.c: Likewise. + * gcc.dg/guality/pr90074.c: Likewise. + * gcc.dg/guality/pr90716.c: Likewise. + * gcc.dg/guality/sra-1.c: Likewise. + +2021-04-24 Richard Sandiford + + * lib/target-supports-dg.exp (selector_expression): Handle any-opts + and no-opts. + * gcc.dg/guality/pr41353-1.c: Exclude -O0 from xfail. + * gcc.dg/guality/pr59776.c: Likewise. + * gcc.dg/guality/pr54970.c: Likewise -O0 and -Og. + +2021-04-24 Patrick Palka + + PR c++/89565 + PR c++/93383 + PR c++/95291 + PR c++/99200 + PR c++/99683 + * g++.dg/cpp2a/nontype-class39.C: Remove dg-ice directive. + * g++.dg/cpp2a/nontype-class45.C: New test. + * g++.dg/cpp2a/nontype-class46.C: New test. + * g++.dg/cpp2a/nontype-class47.C: New test. + * g++.dg/cpp2a/nontype-class48.C: New test. + +2021-04-24 Patrick Palka + + PR c++/87709 + * g++.dg/cpp1z/class-deduction86.C: New test. + +2021-04-23 Michael Meissner + + PR target/98952 + * gcc.target/powerpc/pr98952.c: New test. + +2021-04-23 Uroš Bizjak + + PR target/100041 + * gcc.target/i386/pr79514.c (dg-error): + Expect error for 64bit targets. + +2021-04-23 Uroš Bizjak + + PR target/100182 + * gcc.target/i386/pr100182.c: New test. + * gcc.target/i386/pr71245-1.c (dg-final): Xfail scan-assembler-not. + * gcc.target/i386/pr71245-2.c (dg-final): Ditto. + +2021-04-23 Patrick Palka + + PR c++/98767 + * g++.dg/concepts/diagnostic17.C: New test. + +2021-04-23 Patrick Palka + + DR 2374 + * g++.dg/cpp1z/direct-enum-init2.C: New test. + +2021-04-23 Richard Biener + + PR tree-optimization/99971 + * g++.dg/vect/slp-pr99971.cc: New testcase. + +2021-04-23 liuhongt + + PR target/100093 + * gcc.target/i386/pr100093.c: New test. + +2021-04-22 Patrick Palka + + PR c++/94508 + * g++.dg/cpp2a/concepts-uneval3.C: New test. + +2021-04-22 Patrick Palka + + PR c++/77435 + * g++.dg/template/partial-specialization9.C: New test. + +2021-04-22 Marek Polacek + + PR c++/100161 + * g++.dg/warn/Wtype-limits6.C: New test. + +2021-04-22 Patrick Palka + + PR c++/84689 + * g++.dg/cpp0x/sfinae67.C: New test. + +2021-04-22 Patrick Palka + + PR c++/16617 + * g++.dg/template/access36.C: New test. + +2021-04-22 Tobias Burnus + + * substr_9.f90: Move to ... + * gfortran.dg/substr_9.f90: ... here. + * substr_10.f90: Move to ... + * gfortran.dg/substr_10.f90: ... here. + +2021-04-22 Martin Liska + + PR testsuite/100159 + PR testsuite/100192 + * g++.dg/template/nontype29.C: Fix typos and missing comments. + * gcc.dg/Warray-bounds-64.c: Likewise. + * gcc.dg/Warray-parameter.c: Likewise. + * gcc.dg/Wstring-compare.c: Likewise. + * gcc.dg/format/gcc_diag-11.c: Likewise. + * gfortran.dg/array_constructor_3.f90: Likewise. + * gfortran.dg/matmul_bounds_9.f90: Likewise. + * gfortran.dg/pr78033.f90: Likewise. + * gfortran.dg/pr96325.f90: Likewise. + +2021-04-22 Uroš Bizjak + + PR target/100119 + * gcc.target/i386/pr100119.c: New test. + +2021-04-22 Christophe Lyon + + PR target/99988 + * gcc.target/aarch64/pr99988.c: Skip if not lp64 target. + +2021-04-22 Tobias Burnus + + * gfortran.dg/set_vm_limit.c (set_vm_limit): Call getrlimit, use + obtained hard limit, and only call setrlimit if new softlimit is lower. + +2021-04-22 Richard Biener + + PR testsuite/100176 + * objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c: Add + missing return. + +2021-04-21 David Edelsohn + + * gfortran.dg/bind_c_array_params_2.f90: Look for AIX-specific call + pattern. + +2021-04-21 Marek Polacek + + PR c++/96380 + * g++.dg/cpp0x/enum_base4.C: New test. + * g++.dg/cpp0x/enum_base5.C: New test. + +2021-04-21 Alex Coplan + + PR target/99988 + * gcc.target/aarch64/pr99988.c: New test. + +2021-04-21 Jakub Jelinek + + * g++.dg/cpp1z/constexpr-lambda26.C: Add dg-additional-options + -fchecking. + * g++.dg/cpp1y/auto-fn61.C: Likewise. + * g++.dg/cpp2a/nontype-class39.C: Likewise. + * g++.dg/cpp0x/constexpr-52830.C: Likewise. + * g++.dg/cpp0x/vt-88982.C: Likewise. + * c-c++-common/goacc/kernels-decompose-ice-1.c: Add -fchecking to + dg-additional-options. + * c-c++-common/goacc/kernels-decompose-ice-2.c: Likewise. + +2021-04-21 H.J. Lu + + * gcc.target/i386/monitor-2.c: New test. + +2021-04-21 Richard Biener + + PR testsuite/100176 + * g++.dg/compat/struct-layout-1_generate.c: Add missing return. + * gcc.dg/compat/struct-layout-1_generate.c: Likewise. + +2021-04-21 Jakub Jelinek + + PR rtl-optimization/100148 + * g++.dg/opt/pr100148.C: New test. + +2021-04-21 Tobias Burnus + + * gfortran.dg/gomp/depobj-1.f90: New test. + * gfortran.dg/gomp/depobj-2.f90: New test. + +2021-04-21 Stefan Schulze Frielinghaus + + * gcc.dg/vect/pr71264.c: Xfail on IBM Z due to V4QImode support. + +2021-04-21 Richard Sandiford + + PR middle-end/100130 + * c-c++-common/attr-retain-10.c: New test. + * c-c++-common/attr-retain-11.c: Likewise. + +2021-04-21 Stefan Schulze Frielinghaus + + * gcc.dg/vect/bb-slp-39.c: Change number of times the pattern + must match for target IBM Z only. + +2021-04-20 Jason Merrill + + PR c++/100109 + * g++.dg/cpp0x/lambda/lambda-variadic14.C: New test. + +2021-04-20 Stefan Schulze Frielinghaus + + * gcc.target/s390/zero-scratch-regs-1.c: Force test to run for + z/Architecture only. + +2021-04-20 Paul Thomas + + PR fortran/100110 + * gfortran.dg/pdt_31.f03: New test. + * gfortran.dg/pdt_26.f03: Reduce 'builtin_malloc' count from 9 + to 8. + +2021-04-19 Marek Polacek + + PR c++/97536 + * g++.dg/concepts/diagnostic16.C: New test. + +2021-04-19 Iain Buclaw + + PR d/98457 + * gdc.dg/pr98457.d: New test. + +2021-04-19 Christophe Lyon + + PR target/100075 + * gcc.target/aarch64/pr100075.c: Add aarch64_little_endian + effective target. + +2021-04-19 Richard Biener + + PR preprocessor/100142 + * gcc.dg/pr100142.c: New testcase. + * g++.dg/diagnostic/pr72803.C: Revert last change. + +2021-04-19 Thomas Schwinge + + * c-c++-common/goacc/if-clause-2.c: '-fopenacc-kernels=[...]' -> + '--param=openacc-kernels=[...]'. + * c-c++-common/goacc/kernels-decompose-1.c: Likewise. + * c-c++-common/goacc/kernels-decompose-2.c: Likewise. + * c-c++-common/goacc/kernels-decompose-ice-1.c: Likewise. + * c-c++-common/goacc/kernels-decompose-ice-2.c: Likewise. + * gfortran.dg/goacc/kernels-decompose-1.f95: Likewise. + * gfortran.dg/goacc/kernels-decompose-2.f95: Likewise. + * gfortran.dg/goacc/kernels-tree.f95: Likewise. + +2021-04-19 Eric Botcazou + + * gnat.dg/opt92.adb: New test. + +2021-04-17 Stefan Schulze Frielinghaus + + * c-c++-common/zero-scratch-regs-8.c: Enable on s390*. + * c-c++-common/zero-scratch-regs-9.c: Likewise. + * c-c++-common/zero-scratch-regs-10.c: Likewise. + * c-c++-common/zero-scratch-regs-11.c: Likewise. + * gcc.target/s390/zero-scratch-regs-1.c: New test. + +2021-04-16 José Rui Faustino de Sousa + + PR fortran/100094 + * gfortran.dg/PR100094.f90: New test. + +2021-04-16 Christophe Lyon + + PR target/96770 + * gcc.target/arm/pure-code/pr96770.c: Fix scan-assembler-times + with movt/movw. + +2021-04-16 Jakub Jelinek + + PR target/91710 + * gcc.target/aarch64/pr91710.c: New test. + +2021-04-16 José Rui Faustino de Sousa + + PR fortran/100018 + * gfortran.dg/PR10018.f90: New test. + +2021-04-16 Tamar Christina + + PR target/100048 + * gcc.target/aarch64/sve/pr100048.c: New test. + +2021-04-16 Jakub Jelinek + + PR c++/100111 + * g++.dg/cpp0x/constexpr-100111.C: New test. + +2021-04-16 Marek Polacek + + PR c++/99803 + * g++.dg/cpp2a/typename14.C: Don't expect particular error + messages. + * g++.dg/cpp2a/typename19.C: New test. + +2021-04-16 Robin Dapp + + * gcc.dg/gimplefe-40.c: Moved to... + * gcc.dg/vect/gimplefe-40.c: ...here. + * gcc.dg/gimplefe-41.c: Moved to... + * gcc.dg/vect/gimplefe-41.c: ...here. + +2021-04-16 Harald Anlauf + Paul Thomas + + PR fortran/63797 + * gfortran.dg/pr63797.f90: New test. + +2021-04-16 Stefan Schulze Frielinghaus + + * gcc.dg/tree-ssa/pr83403-1.c: Revert + max-completely-peeled-insns to the default value on IBM Z. + * gcc.dg/tree-ssa/pr83403-2.c: Likewise. + +2021-04-16 Patrick Palka + + PR c++/99700 + * g++.dg/cpp2a/constexpr-init21.C: New test. + +2021-04-16 Jakub Jelinek + + PR target/100075 + * gcc.target/aarch64/pr100075.c: New test. + +2021-04-16 Richard Sandiford + + PR rtl-optimization/99596 + * gcc.target/arm/pr99596.c: New test. + +2021-04-16 Richard Earnshaw + + PR target/100067 + * g++.target/arm/arm.exp (dg_runtest_extra_prunes): Update prune + template. + * gcc.target/arm/arm.exp (dg_runtest_extra_prunes): Likewise. + * g++.target/arm/mve.exp (dg_runtest_extra_prunes): Likewise. Fix + missing quotes around switch names. + * gcc.target/arm/mve/mve.exp: (dg_runtest_extra_prunes): Likewise. + +2021-04-16 Jakub Jelinek + + PR target/99767 + * gcc.target/aarch64/pr99767.c: New test. + +2021-04-16 Jakub Jelinek + + PR c++/99850 + * g++.dg/cpp23/lambda-specifiers2.C: New test. + +2021-04-16 Jakub Jelinek + + PR c++/99833 + * g++.dg/cpp1z/pr99833.C: New test. + * g++.dg/cpp2a/pr99833.C: New test. + +2021-04-16 Stefan Schulze Frielinghaus + + * gcc.dg/unroll-and-jam.c: Revert max-completely-peel-times to + the default value on IBM Z. + +2021-04-16 Jason Merrill + + PR c++/100079 + * g++.dg/abi/mangle71.C: Fix expected mangling. + * g++.dg/abi/mangle77.C: New test. + * g++.dg/cpp2a/nontype-class-union1.C: Likewise. + * g++.dg/cpp2a/nontype-class-equiv1.C: Removed. + * g++.dg/cpp2a/nontype-class44.C: New test. + +2021-04-15 Martin Sebor + + PR c/99420 + PR c/99972 + * gcc.dg/Warray-parameter-9.c: New test. + * gcc.dg/Wnonnull-6.c: New test. + * gcc.dg/Wreturn-type3.c: New test. + * gcc.dg/Wunused-result.c: New test. + * gcc.dg/attr-noreturn.c: New test. + * gcc.dg/attr-returns-nonnull.c: New test. + +2021-04-15 Hans-Peter Nilsson + + PR middle-end/84877 + * gcc.dg/pr84877.c: Xfail for cris-*-*. + +2021-04-15 Jason Merrill + + PR c++/80456 + * g++.dg/cpp0x/constexpr-volatile3.C: New test. + +2021-04-15 Martin Sebor + + * gcc.dg/uninit-pr89230-1.c: New test. + * gcc.dg/uninit-pr89230-2.c: Same. + +2021-04-15 Jason Merrill + + PR c++/100101 + * g++.dg/cpp0x/noexcept67.C: New test. + +2021-04-15 Jason Merrill + + PR c++/100091 + * g++.dg/cpp2a/lambda-uneval15.C: New test. + +2021-04-15 Richard Sandiford + + * g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp: Add + -mtune=generic to the SVE flags. + * g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp: Likewise. + * gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp: Likewise. + * gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp: Likewise. + +2021-04-15 Richard Sandiford + + * lib/gcc-defs.exp (aarch64-arch-dg-options): New procedure. + (aarch64-with-arch-dg-options): Likewise. + * g++.target/aarch64/sve/aarch64-sve.exp: Run the tests inside + aarch64-with-arch-dg-options. Move the default architecture + flags to the final dg-runtest argument. + * gcc.target/aarch64/sve/aarch64-sve.exp: Likewise. Dispense with + DEFAULT_CFLAGS. + * gcc.target/aarch64/sve2/aarch64-sve2.exp: Likewise. + +2021-04-15 Jakub Jelinek + + PR testsuite/100073 + * gcc.dg/pr86058.c: Enable also on i?86-*-*. + +2021-04-15 Richard Sandiford + + PR c++/98852 + * g++.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp: New file. + * g++.target/aarch64/advsimd-intrinsics/pr98852.C: New file. + +2021-04-15 Richard Sandiford + + PR c/98852 + * gcc.target/aarch64/advsimd-intrinsics/pr98852.c: New test. + +2021-04-15 Jakub Jelinek + + PR target/100056 + * gcc.target/aarch64/pr100056.c: New test. + +2021-04-15 Stefan Schulze Frielinghaus + + * gcc.dg/pr93210.c: Adapt regex in order to also support a + RESULT_DECL as an operand for a RETURN_EXPR. + +2021-04-14 Richard Sandiford + + * gcc.target/aarch64/sve/pr99929_1.c: New file. + * gcc.target/aarch64/sve/pr99929_2.c: Likewise. + +2021-04-14 Jason Merrill + + PR c++/100078 + * g++.dg/template/dependent-tmpl2.C: New test. + +2021-04-14 Jason Merrill + + PR c++/93314 + * g++.dg/parse/uneval1.C: New test. + +2021-04-14 Vladimir N. Makarov + + PR rtl-optimization/100066 + * gcc.target/i386/pr100066.c: New. + +2021-04-14 Martin Sebor + + * gcc.dg/pr86058.c: Limit to just x86_64. + +2021-04-14 Richard Sandiford + + PR target/99246 + * gcc.target/aarch64/sve/acle/general/pr99246.c: New test. + +2021-04-14 Andreas Krebbel + + * gcc.target/s390/zvector/imm-range-error-1.c: New test. + * gcc.target/s390/zvector/vec_msum_u128-1.c: New test. + +2021-04-14 Patrick Palka + + PR c++/83476 + PR c++/99885 + * g++.dg/cpp1z/class-deduction85.C: New test. + * g++.dg/template/ref11.C: New test. + +2021-04-14 Jason Merrill + + PR c++/99478 + * g++.dg/cpp2a/lambda-uneval14.C: New test. + +2021-04-14 Jason Merrill + + PR c++/90674 + * g++.dg/debug/defaulted1.C: New test. + +2021-04-14 Jason Merrill + + PR c++/88742 + * g++.dg/debug/cleanup1.C: New test. + * c-c++-common/Wimplicit-fallthrough-6.c: Adjust diagnostic line. + * c-c++-common/Wimplicit-fallthrough-7.c: Likewise. + * g++.dg/cpp2a/constexpr-dtor3.C: Likewise. + * g++.dg/ext/constexpr-attr-cleanup1.C: Likewise. + * g++.dg/tm/inherit2.C: Likewise. + * g++.dg/tm/unsafe1.C: Likewise. + * g++.dg/warn/Wimplicit-fallthrough-1.C: Likewise. + * g++.dg/gcov/gcov-2.C: Adjust coverage counts. + +2021-04-13 Martin Sebor + + PR tree-optimization/82800 + * g++.dg/warn/uninit-pr82800.C: New test. + +2021-04-13 Martin Sebor + + PR middle-end/86058 + * gcc.dg/pr86058.c: New test. + +2021-04-13 Patrick Palka + + PR c++/99008 + * g++.old-deja/g++.ns/crash3.C: Adjust expected diagnostic. + * g++.old-deja/g++.ns/template7.C: Likewise. + * g++.old-deja/g++.pt/crash8.C: Likewise. + +2021-04-13 Jason Merrill + + PR c++/100032 + * g++.dg/cpp0x/alias-decl-equiv1.C: New test. + +2021-04-13 Jakub Jelinek + + PR c++/97121 + * g++.dg/cpp2a/spaceship-err6.C: New test. + +2021-04-13 Jason Merrill + + PR c++/100054 + * g++.dg/cpp1y/lambda-generic-local-class1.C: New test. + +2021-04-13 Patrick Palka + + PR c++/99008 + * g++.dg/parse/template2.C: Adjust expected diagnostic. + * g++.dg/template/error8.C: Likewise. + * g++.dg/cpp1z/class-deduction84.C: New test. + +2021-04-13 Richard Biener + + PR tree-optimization/100053 + * gcc.dg/torture/pr100053.c: New testcase. + * gcc.dg/tree-ssa/ssa-fre-93.c: Likewise. + +2021-04-13 Jason Merrill + + PR c++/91933 + * g++.dg/cpp0x/constexpr-base7.C: New test. + +2021-04-13 Nathan Sidwell + + PR preprocessor/99446 + * g++.dg/diagnostic/pr72803.C: Adjust expected column. + +2021-04-13 Jakub Jelinek + + PR target/100028 + * gcc.target/aarch64/pr100028.c: New test. + +2021-04-13 Patrick Palka + + PR c++/97134 + * g++.dg/cpp2a/nontype-class43.C: New test. + +2021-04-13 Patrick Palka + + PR c++/99961 + PR c++/99994 + * g++.dg/cpp2a/concepts-uneval1.C: New test. + * g++.dg/cpp2a/concepts-uneval2.C: New test. + +2021-04-13 Hans-Peter Nilsson + + PR analyzer/99212 + * gcc.dg/analyzer/data-model-1.c (test_45): Inverse xfail at + line 971 for cris-*-*. + +2021-04-13 David Malcolm + + PR analyzer/98599 + * gcc.dg/analyzer/pr98599-a.c: New test. + * gcc.dg/analyzer/pr98599-b.c: New test. + +2021-04-12 Jakub Jelinek + + PR rtl-optimization/99905 + * gcc.target/i386/pr99905.c: New test. + +2021-04-12 Jakub Jelinek + + PR debug/99830 + * gcc.dg/pr99830.c: New test. + +2021-04-12 Jason Merrill + + PR c++/93085 + * g++.dg/template/dependent-tmpl1.C: New test. + +2021-04-12 Martin Liska + + PR sanitizer/99877 + * g++.dg/asan/pr99877.C: New test. + +2021-04-12 Cui,Lili + + * gcc.target/i386/funcspec-56.inc: Handle new march. + * g++.target/i386/mv16.C: Handle new march + +2021-04-11 Hafiz Abid Qadeer + + PR middle-end/98088 + * c-c++-common/goacc/collapse-2.c: New. + +2021-04-11 Jason Merrill + + PR c++/97974 + * g++.dg/lookup/pr84962.C: Adjust diagnostic. + * g++.dg/other/anon-union5.C: New test. + +2021-04-10 Jason Merrill + + PR c++/98800 + * g++.dg/gomp/this-1.C: Adjust diagnostic. + * g++.dg/cpp0x/constexpr-this1.C: New test. + +2021-04-10 David Malcolm + + PR analyzer/100011 + * gcc.dg/analyzer/pr100011.c: New test. + +2021-04-10 Jakub Jelinek + + PR c/99990 + * gcc.dg/pr99990.c: New test. + +2021-04-10 H.J. Lu + + PR target/99744 + * gcc.target/i386/pr99744-2.c: New test. + +2021-04-10 Jakub Jelinek + + PR lto/99849 + * gcc.dg/lto/pr99849_0.c: New test. + +2021-04-10 Jakub Jelinek + + PR rtl-optimization/98601 + * gcc.dg/torture/pr98601.c: New test. + +2021-04-10 Jason Merrill + + PR c++/99180 + PR c++/93295 + PR c++/93867 + PR c++/95486 + * g++.dg/cpp2a/class-deduction-alias5.C: New test. + * g++.dg/cpp2a/class-deduction-alias6.C: New test. + * g++.dg/cpp2a/class-deduction-alias7.C: New test. + * g++.dg/cpp2a/class-deduction-alias8.C: New test. + +2021-04-10 Jason Merrill + + PR c++/100006 + * g++.dg/cpp0x/lambda/lambda-variadic13.C: New test. + +2021-04-09 Martin Sebor + + PR middle-end/55288 + * g++.dg/warn/uninit-pr55288.C: New test. + +2021-04-09 Patrick Palka + + PR c++/90215 + * g++.dg/cpp1z/fold-lambda4.C: New test. + +2021-04-09 Marek Polacek + + PR c++/99806 + * g++.dg/concepts/abbrev10.C: New test. + * g++.dg/concepts/abbrev11.C: New test. + +2021-04-09 Richard Sandiford + + * gcc.target/aarch64/pr70398.c: Require a target that can link + static executables. + +2021-04-09 Richard Sandiford + + * g++.target/aarch64/bfloat_cpp_typecheck.C: Remove XFAILs. + +2021-04-09 Richard Sandiford + + * gfortran.dg/vect/vect-8.f90: Expect 24 loops to be vectorized + with SVE. + +2021-04-09 Richard Sandiford + + * g++.dg/tree-ssa/pr83518.C: XFAIL for vect_variable_length. + * gcc.dg/pr96573.c: Likewise. + * gcc.dg/tree-ssa/pr84512.c: Likewise. + * gcc.dg/vect/bb-slp-43.c: Likewise. + * gcc.dg/vect/slp-reduc-11.c: Likewise. + +2021-04-09 Richard Sandiford + + * gcc.dg/vect/pr65947-7.c: Add a noipa attribute. Expect the + loop to vectorized if vect_fold_extract_last. + +2021-04-09 Richard Sandiford + + * gcc.target/aarch64/mem-shift-canonical.c: Use an asm instead + of relying on vectorisation. + +2021-04-09 Richard Sandiford + + PR target/87763 + * gcc.target/aarch64/insv_1.c: XFAIL two scan tests. + +2021-04-09 Richard Sandiford + + PR libfortran/78314 + * gfortran.dg/ieee/ieee_6.f90: Skip for arm* and aarch64*. + * gfortran.dg/ieee/ieee_8.f90: Likewise. + +2021-04-09 Tobias Burnus + + PR fortran/99817 + * gfortran.dg/coarray/dummy_2.f90: New test. + +2021-04-08 David Edelsohn + + * g++.dg/gomp/tls-5.C: Expect tbss failure on AIX. + +2021-04-08 Patrick Palka + + PR c++/99874 + * g++.dg/cpp2a/concepts-lambda16.C: New test. + * g++.dg/cpp2a/concepts-lambda17.C: New test. + +2021-04-08 Patrick Palka + + PR c++/97679 + * g++.dg/cpp2a/concepts-ctad3.C: New test. + +2021-04-08 Richard Sandiford + + * lib/scanasm.exp (scan-lto-assembler): Update expected name + of dump file. + +2021-04-08 Richard Sandiford + + * lib/target-supports.exp + (check_effective_target_stdint_types_mbig_endian): New proc. + * gcc.target/aarch64/advsimd-intrinsics/bf16_get-be.c: Require + stdint_types_mbig_endian. + * gcc.target/aarch64/advsimd-intrinsics/bfdot-2.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vdot-3-2.c: Likewise. + +2021-04-08 Jason Merrill + + PR c++/91849 + * g++.dg/conversion/pr66211.C: Adjust diagnostic. + * g++.dg/conversion/ref7.C: New test. + +2021-04-08 Jakub Jelinek + + PR c++/99859 + * g++.dg/cpp1y/constexpr-99859-1.C: New test. + * g++.dg/cpp1y/constexpr-99859-2.C: New test. + * g++.dg/cpp2a/constexpr-new18.C: New test. + * g++.dg/cpp2a/constexpr-new19.C: New test. + +2021-04-08 Richard Sandiford + + * gcc.dg/vect/pr99102.c: Add -fdump-tree-vect-details. + +2021-04-08 Richard Sandiford + + * gcc.target/aarch64/sve/acle/general-c/func_redef_1.c: Remove + "was here" from error message. + * gcc.target/aarch64/sve/acle/general-c/func_redef_2.c: Likewise. + * gcc.target/aarch64/sve/acle/general-c/func_redef_3.c: Likewise. + * gcc.target/aarch64/sve/acle/general-c/func_redef_6.c: Likewise. + * gcc.target/aarch64/sve/acle/general-c/type_redef_1.c: Likewise. + * gcc.target/aarch64/sve/acle/general-c/type_redef_2.c: Likewise. + * gcc.target/aarch64/sve/acle/general-c/type_redef_3.c: Likewise. + * gcc.target/aarch64/sve/acle/general-c/type_redef_4.c: Likewise. + * gcc.target/aarch64/sve/acle/general-c/type_redef_5.c: Likewise. + * gcc.target/aarch64/sve/acle/general-c/type_redef_6.c: Likewise. + * gcc.target/aarch64/sve/acle/general-c/type_redef_8.c: Likewise. + * gcc.target/aarch64/sve/acle/general-c/type_redef_9.c: Likewise. + * gcc.target/aarch64/sve/acle/general-c/type_redef_10.c: Likewise. + * gcc.target/aarch64/sve/acle/general-c/type_redef_13.c: Likewise. + +2021-04-08 Richard Sandiford + + * gcc.target/aarch64/asimd-mull-elem.c: Add +nosve. + * gcc.target/aarch64/pr98772.c: Likewise. + * gcc.target/aarch64/simd/vect_su_add_sub.c: Likewise. + +2021-04-08 Richard Sandiford + + * gcc.target/aarch64/sve/mul_2.c: Adjust negative constants to avoid + conversion to shifts and adds. + +2021-04-08 David Malcolm + + PR analyzer/99042 + PR analyzer/99774 + * gcc.dg/analyzer/pr99042.c: New test. + * gcc.dg/analyzer/pr99774-1.c: New test. + * gcc.dg/analyzer/pr99774-2.c: New test. + +2021-04-08 Iain Buclaw + + * gdc.dg/gdc108.d: Update test. + * gdc.dg/gdc142.d: Likewise. + * gdc.dg/pr90136a.d: Likewise. + * gdc.dg/pr90136b.d: Likewise. + * gdc.dg/pr90136c.d: Likewise. + * gdc.dg/pr95173.d: Likewise. + * gdc.dg/attr_allocsize1.d: New test. + * gdc.dg/attr_allocsize2.d: New test. + * gdc.dg/attr_alwaysinline1.d: New test. + * gdc.dg/attr_cold1.d: New test. + * gdc.dg/attr_exclusions1.d: New test. + * gdc.dg/attr_exclusions2.d: New test. + * gdc.dg/attr_flatten1.d: New test. + * gdc.dg/attr_module.d: New test. + * gdc.dg/attr_noclone1.d: New test. + * gdc.dg/attr_noicf1.d: New test. + * gdc.dg/attr_noinline1.d: New test. + * gdc.dg/attr_noipa1.d: New test. + * gdc.dg/attr_noplt1.d: New test. + * gdc.dg/attr_optimize1.d: New test. + * gdc.dg/attr_optimize2.d: New test. + * gdc.dg/attr_optimize3.d: New test. + * gdc.dg/attr_optimize4.d: New test. + * gdc.dg/attr_restrict1.d: New test. + * gdc.dg/attr_section1.d: New test. + * gdc.dg/attr_symver1.d: New test. + * gdc.dg/attr_target1.d: New test. + * gdc.dg/attr_targetclones1.d: New test. + * gdc.dg/attr_used1.d: New test. + * gdc.dg/attr_used2.d: New test. + * gdc.dg/attr_weak1.d: New test. + * gdc.dg/imports/attributes.d: New test. + +2021-04-08 Jason Merrill + + PR c++/94529 + * g++.dg/template/mem-spec2.C: New test. + +2021-04-08 Marek Polacek + + PR c++/99844 + * g++.dg/cpp2a/explicit16.C: Use c++20. + * g++.dg/cpp0x/noexcept66.C: New test. + * g++.dg/cpp2a/explicit17.C: New test. + +2021-04-08 Alex Coplan + + PR target/99647 + * gcc.c-torture/compile/pr99647.c: New test. + +2021-04-07 Jason Merrill + + PR c++/41723 + * g++.dg/template/friend71.C: New test. + +2021-04-07 Jason Merrill + + PR c++/52625 + * g++.dg/template/friend70.C: New test. + +2021-04-07 Jason Merrill + + PR c++/92918 + * g++.dg/lookup/using66.C: New test. + +2021-04-07 Richard Sandiford + + * lib/gcc.exp (gcc_target_compile): Add -dumpbase "" + when building an executable with testglue. + +2021-04-07 Richard Sandiford + + * gcc.target/aarch64/sve/pr88834.c: Expect the vectorizer to use SLP. + * gcc.target/aarch64/sve/pr88834_ld3.c: New test. + +2021-04-07 Richard Sandiford + + * gcc.dg/vect/slp-21.c: Only expect 2 of the loops to use SLP + if IFN_STORE_LANES is available. + * gcc.dg/vect/vect-complex-5.c: Expect no loops to use SLP if + IFN_STORE_LANES is available. + * gcc.target/aarch64/pr99873_1.c: New test. + * gcc.target/aarch64/pr99873_2.c: Likewise. + * gcc.target/aarch64/pr99873_3.c: Likewise. + * gcc.target/aarch64/sve/pr99873_1.c: Likewise. + * gcc.target/aarch64/sve/pr99873_2.c: Likewise. + * gcc.target/aarch64/sve/pr99873_3.c: Likewise. + +2021-04-07 Richard Biener + + PR tree-optimization/99954 + * gcc.dg/torture/pr99954.c: New testcase. + +2021-04-07 Richard Biener + + PR testsuite/99955 + * gcc.c-torture/execute/pr92618.c: Move may_alias attributes + last. + +2021-04-07 Richard Biener + + PR tree-optimization/99947 + * gcc.dg/torture/pr99947.c: New testcase. + +2021-04-07 Bin Cheng + + PR tree-optimization/98736 + * gcc.c-torture/execute/pr98736.c: New test. + +2021-04-07 Marek Polacek + + PR c++/52202 + * g++.dg/cpp0x/rv-life.C: New test. + +2021-04-06 Jason Merrill + + PR c++/96673 + * g++.dg/cpp1y/nsdmi-aggr13.C: New test. + +2021-04-06 Jason Merrill + + PR c++/99901 + * g++.dg/cpp1z/inline-var9.C: New test. + +2021-04-06 Vladimir N. Makarov + + PR target/99781 + * g++.target/aarch64/sve/pr99781.C: New. + +2021-04-06 H.J. Lu + + * gcc.target/i386/memcpy-strategy-9.c: New test. + * gcc.target/i386/memcpy-strategy-10.c: Likewise. + * gcc.target/i386/memcpy-strategy-11.c: Likewise. + * gcc.target/i386/memset-strategy-7.c: Likewise. + * gcc.target/i386/memset-strategy-8.c: Likewise. + * gcc.target/i386/memset-strategy-9.c: Likewise. + +2021-04-06 Richard Biener + + PR tree-optimization/99880 + * gcc.dg/torture/pr99880.c: New testcase. + +2021-04-06 Nathan Sidwell + + * g++.dg/modules/builtin-3_a.C: Remove dump scans. + * g++.dg/modules/builtin-3_b.C: Remove dump scans. + +2021-04-06 Jakub Jelinek + + PR tree-optimization/96573 + * gcc.dg/pr96573.c: Instead of __builtin_bswap accept also + VEC_PERM_EXPR with bswapping permutation. + +2021-04-06 Richard Biener + + PR tree-optimization/99924 + * gfortran.dg/vect/pr99924.f90: New testcase. + +2021-04-06 Jakub Jelinek + + PR c++/97900 + * g++.dg/ext/vector40.C: Add -Wno-psabi -w to dg-options. + +2021-04-06 Jason Merrill + + PR c++/91241 + * g++.dg/abi/lambda-defarg1.C: New test. + +2021-04-06 Patrick Palka + + PR c++/99899 + * g++.dg/cpp2a/concepts-placeholder7.C: New test. + * g++.dg/cpp2a/concepts-placeholder8.C: New test. + +2021-04-05 Jason Merrill + + PR c++/96311 + * g++.dg/cpp1y/lambda-generic-Wunused.C: New test. + +2021-04-05 Jason Merrill + + * g++.dg/cpp0x/rv-cast6.C: Expect reinterpret_cast error. + * g++.dg/cpp0x/reinterpret_cast2.C: Adjust message. + * g++.old-deja/g++.jason/rvalue3.C: Likewise. + +2021-04-05 Jason Merrill + + PR c++/95317 + * g++.dg/cpp1y/lambda-generic-enum1.C: New test. + +2021-04-05 Jason Merrill + + PR c++/95870 + * g++.dg/cpp0x/lambda/lambda-nsdmi10.C: New test. + +2021-04-05 David Malcolm + + PR analyzer/99906 + * gcc.dg/analyzer/pr99906.c: New test. + +2021-04-05 David Malcolm + + PR analyzer/99886 + * gcc.dg/analyzer/pr99886.c: New test. + +2021-04-05 Jason Merrill + + PR c++/99066 + * g++.dg/cpp0x/extern_template-6.C: New test. + +2021-04-05 Jason Merrill + + PR c++/99201 + * g++.dg/cpp1z/constexpr-if-lambda4.C: New test. + +2021-04-05 Iain Buclaw + + PR d/99914 + * gdc.dg/pr99914.d: New test. + +2021-04-05 Sandra Loosemore + + * gcc.dg/ipa/propmalloc-4.c: Add -fdelete-null-pointer-checks. + * gcc.dg/tree-ssa/evrp11.c: Likewise. + +2021-04-04 Jason Merrill + + PR c++/99643 + * g++.dg/cpp0x/initlist-new5.C: New test. + +2021-04-03 Alexandre Oliva + + * g++.dg/pr94314-3.C: Zero-initialize main loop counter. + +2021-04-03 Alexandre Oliva + + * gcc.dg/ipa/ipa-sra-19.c: Extend -Wno-psabi to ppc-vx7r2. + +2021-04-03 Marek Polacek + + PR c++/91416 + * g++.dg/other/gc7.C: New test. + +2021-04-03 Paul Thomas + + PR fortran/99818 + * gfortran.dg/coarray_48.f90: New test. + +2021-04-03 Jakub Jelinek + + PR tree-optimization/99882 + * gcc.dg/pr99882.c: New test. + +2021-04-03 Jakub Jelinek + + PR rtl-optimization/99863 + * gcc.target/i386/pr99863.c: New test. + +2021-04-03 Jakub Jelinek + + PR testsuite/98125 + * g++.dg/pr93195a.C: Skip on powerpc*-*-* 64-bit. + +2021-04-03 Jason Merrill + + PR c++/91217 + * g++.dg/opt/nrv20.C: New test. + +2021-04-03 Jason Merrill + + PR c++/90664 + * g++.dg/cpp1z/noexcept-type24.C: New test. + +2021-04-03 Jason Merrill + + PR c++/97900 + * g++.dg/ext/vector40.C: New test. + +2021-04-02 Patrick Palka + + PR c++/99869 + * g++.dg/cpp2a/concepts-placeholder6.C: New test. + +2021-04-02 Patrick Palka + + PR c++/99586 + * g++.dg/cpp2a/nontype-class42.C: New test. + +2021-04-02 Jason Merrill + + PR c++/97938 + * g++.dg/cpp2a/lambda-pack-init6.C: New test. + +2021-04-02 Nathan Sidwell + + * g++.dg/modules/pr99283-6_d.H: New. + * g++.dg/modules/pr99283-7-swap.h: New. + * g++.dg/modules/pr99283-7-traits.h: New. + * g++.dg/modules/pr99283-7_a.H: New. + * g++.dg/modules/pr99283-7_b.H: New. + * g++.dg/modules/pr99283-7_c.C: New. + * g++.dg/modules/pr99283-7_d.H: New. + +2021-04-02 Eric Botcazou + + * go.test/test/fixedbugs/issue6036.go: Skip on sparc. + * go.test/test/fixedbugs/issue22200b.go: Likewise. + +2021-04-02 Jakub Jelinek + + PR tree-optimization/99726 + * gcc.target/i386/pr99726.c: Remove -m32 from dg-options. Move + -floop-nest-optimize to dg-additional-options guarded on fgraphite + effective target. + +2021-04-01 Marek Polacek + + PR c++/99831 + * g++.dg/other/gc6.C: New test. + +2021-04-01 Jason Merrill + + PR c++/99583 + * g++.dg/cpp0x/lambda/lambda-variadic12.C: New test. + +2021-04-01 Jason Merrill + + PR c++/98481 + * g++.dg/abi/abi-tag24a.C: New test. + * g++.dg/abi/macro0.C: Adjust expected value. + +2021-04-01 Nathan Sidwell + + PR c++/99283 + * g++.dg/modules/pr99283-6.h: New. + * g++.dg/modules/pr99283-6_a.H: New. + * g++.dg/modules/pr99283-6_b.H: New. + * g++.dg/modules/pr99283-6_c.C: New. + * g++.dg/modules/hdr-init-1_c.C: Adjust scan. + * g++.dg/modules/indirect-3_c.C: Adjust scan. + * g++.dg/modules/indirect-4_c.C: Adjust scan. + * g++.dg/modules/lambda-3_b.C: Adjust scan. + * g++.dg/modules/late-ret-3_c.C: Adjust scan. + * g++.dg/modules/pr99425-1_b.H: Adjust scan. + * g++.dg/modules/pr99425-1_c.C: Adjust scan. + +2021-04-01 Jan Hubicka + + PR ipa/98265 + * gcc.dg/tree-ssa/pr98265.C: New test. + +2021-04-01 Jakub Jelinek + + PR tree-optimization/96573 + * gcc.dg/pr96573.c: New test. + +2021-04-01 Richard Biener + + PR tree-optimization/99856 + * gcc.dg/vect/pr99856.c: New testcase. + +2021-04-01 Martin Jambor + + PR tree-optimization/97009 + * gcc.dg/tree-ssa/pr97009.c: New test. + +2021-04-01 Harald Anlauf + + PR fortran/99840 + * gfortran.dg/transpose_5.f90: New test. + +2021-03-31 David Malcolm + + PR analyzer/99771 + * gcc.dg/analyzer/data-model-10.c: Update expected output. + * gcc.dg/analyzer/malloc-ipa-13.c: Likewise. + * gcc.dg/analyzer/malloc-ipa-13a.c: New test. + * gcc.dg/analyzer/pr99771-1.c: New test. + +2021-03-31 Richard Sandiford + + PR tree-optimization/98268 + * gcc.target/aarch64/sve/pr98268-1.c: New test. + * gcc.target/aarch64/sve/pr98268-2.c: Likewise. + +2021-03-31 Richard Sandiford + + PR tree-optimization/99726 + * gcc.target/i386/pr99726.c: New test. + +2021-03-31 Richard Sandiford + + PR rtl-optimization/97141 + PR rtl-optimization/98726 + * gcc.c-torture/compile/pr97141.c: New test. + * gcc.c-torture/compile/pr98726.c: Likewise. + * gcc.target/aarch64/sve/pr97141.c: Likewise. + * gcc.target/aarch64/sve/pr98726.c: Likewise. + +2021-03-31 Martin Sebor + + PR middle-end/65182 + * gcc.dg/uninit-pr65182.c: New test. + +2021-03-31 Jason Merrill + + PR c++/99445 + * g++.dg/cpp0x/alias-decl-variadic1.C: New test. + +2021-03-31 Christophe Lyon + + PR target/96974 + * g++.target/aarch64/sve/pr96974.C: Expect SLP diagnostic only + under lp64. + +2021-03-31 Christophe Lyon + + PR target/99786 + * gcc.target/arm/pr99786.c: New test. + +2021-03-31 H.J. Lu + + * gcc.target/i386/memcpy-strategy-5.c: New test. + * gcc.target/i386/memcpy-strategy-6.c: Likewise. + * gcc.target/i386/memcpy-strategy-7.c: Likewise. + * gcc.target/i386/memcpy-strategy-8.c: Likewise. + * gcc.target/i386/memset-strategy-3.c: Likewise. + * gcc.target/i386/memset-strategy-4.c: Likewise. + * gcc.target/i386/memset-strategy-5.c: Likewise. + * gcc.target/i386/memset-strategy-6.c: Likewise. + +2021-03-31 Richard Sandiford + + PR target/98119 + * gcc.target/aarch64/sve/pr98119.c: New test. + +2021-03-31 Jakub Jelinek + Richard Sandiford + + PR target/99813 + * g++.target/aarch64/sve/pr99813.C: New test. + +2021-03-31 Jakub Jelinek + + PR testsuite/97680 + * c-c++-common/zero-scratch-regs-6.c: Skip on ia64. + * c-c++-common/zero-scratch-regs-7.c: Likewise. + * c-c++-common/zero-scratch-regs-8.c: Change from dg-skip-if of + selected unsupported triplets to all targets but selected triplets + of supported targets. + * c-c++-common/zero-scratch-regs-9.c: Likewise. + * c-c++-common/zero-scratch-regs-10.c: Likewise. + * c-c++-common/zero-scratch-regs-11.c: Likewise. + +2021-03-31 Patrick Palka + + PR c++/88115 + * g++.dg/cpp0x/alignof7.C: Adjust expected mangling. + +2021-03-31 Patrick Palka + + PR c++/99815 + * g++.dg/cpp2a/concepts-placeholder5.C: New test. + +2021-03-30 David Malcolm + + * gcc.dg/analyzer/symbolic-1.c: Fix typo. + +2021-03-30 Nathan Sidwell + + PR c++/99283 + * g++.dg/modules/pr99283-5.h: New. + * g++.dg/modules/pr99283-5_a.H: New. + * g++.dg/modules/pr99283-5_b.H: New. + * g++.dg/modules/pr99283-5_c.C: New. + +2021-03-30 Jakub Jelinek + + PR c++/99790 + * g++.dg/cpp1z/pr99790.C: New test. + +2021-03-30 Kyrylo Tkachov + + PR target/99822 + * gcc.c-torture/compile/pr99822.c: New test. + +2021-03-30 Xionghu Luo + + PR target/99718 + PR target/99718 + * gcc.target/powerpc/fold-vec-insert-char-p8.c: Update + instruction counts. + * gcc.target/powerpc/fold-vec-insert-char-p9.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-double.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-float-p8.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-float-p9.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-int-p8.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-int-p9.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-longlong.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-short-p8.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-short-p9.c: Likewise. + * gcc.target/powerpc/pr79251.p8.c: Likewise. + * gcc.target/powerpc/pr79251.p9.c: Likewise. + * gcc.target/powerpc/vsx-builtin-7.c: Likewise. + * gcc.target/powerpc/pr79251-run.p7.c: New test. + * gcc.target/powerpc/pr79251.p7.c: New test. + +2021-03-30 H.J. Lu + + PR target/99744 + * gcc.target/i386/pr99744-1.c: New test. + +2021-03-30 Tamar Christina + + PR tree-optimization/99825 + * gfortran.dg/vect/pr99825.f90: New test. + +2021-03-30 Kyrylo Tkachov + + PR target/99808 + * gcc.target/aarch64/pr99808.c: Use ULL constant suffix. + +2021-03-30 Richard Biener + + PR tree-optimization/99824 + * gcc.dg/torture/pr99824.c: New testcase. + +2021-03-30 Richard Sandiford + + PR target/98136 + * g++.dg/pr98136.C: New test. + +2021-03-30 Mihailo Stojanovic + + * gcc.target/aarch64/fcvt_nosimd.c: New test. + +2021-03-29 Martin Sebor + + PR tree-optimization/61869 + * gcc.dg/uninit-pr61869.c: New test. + +2021-03-29 Martin Sebor + + PR tree-optimization/61677 + * gcc.dg/uninit-pr61677.c: New test. + +2021-03-29 Martin Sebor + + PR tree-optimization/61112 + * gcc.dg/uninit-pr61112.c: New test. + +2021-03-29 Jan Hubicka + + PR ipa/99751 + * gcc.c-torture/compile/pr99751.c: Rename from ... + * gcc.c-torture/execute/pr99751.c: ... to this. + +2021-03-29 Jan Hubicka + + * gcc.c-torture/compile/pr99751.c: New test. + +2021-03-29 Jakub Jelinek + + PR fortran/93660 + * gfortran.dg/gomp/declare-simd-coarray-lib.f90: Expect a mixed size + declare simd warning on aarch64. + +2021-03-29 Alex Coplan + + PR target/99216 + * g++.target/aarch64/sve/pr99216.C: New test. + +2021-03-29 Richard Biener + + PR tree-optimization/99807 + * gfortran.dg/vect/pr99807.f90: New testcase. + +2021-03-29 Kyrylo Tkachov + + PR target/99808 + * gcc.target/aarch64/pr99808.c: New test. + +2021-03-29 Jakub Jelinek + + PR tree-optimization/99777 + * g++.dg/torture/pr99777.C: New test. + +2021-03-28 Christophe Lyon + + PR target/96770 + * gcc.target/arm/pure-code/pr96770.c: Improve scan-assembler-times. + +2021-03-28 Paul Thomas + + PR fortran/99602 + * gfortran.dg/pr99602.f90: New test. + * gfortran.dg/pr99602a.f90: New test. + * gfortran.dg/pr99602b.f90: New test. + * gfortran.dg/pr99602c.f90: New test. + * gfortran.dg/pr99602d.f90: New test. + +2021-03-28 Iain Buclaw + + * lib/gdc-utils.exp (gdc-copy-extra): Rename to... + (gdc-copy-file): ... this. Use file copy instead of open/close. + (gdc-convert-test): Save translated dejagnu test to gdc.test + directory, only write dejagnu directives to the test file. + (gdc-do-test): Don't create gdc.test symlink. + +2021-03-28 Iain Buclaw + + * gdc.dg/gdc270a.d: Removed. + * gdc.dg/gdc270b.d: Removed. + +2021-03-26 David Edelsohn + + * gcc.target/powerpc/pr99557.c: New. + +2021-03-26 Martin Sebor + + PR tree-optimization/59970 + * gcc.dg/uninit-pr59970.c: New test. + +2021-03-26 Marek Polacek + + PR c++/98352 + * g++.dg/cpp0x/inh-ctor37.C: Remove dg-error. + * g++.dg/cpp0x/nsdmi17.C: New test. + +2021-03-26 Nathan Sidwell + + PR c++/99283 + * g++.dg/modules/pr99283-2_a.H: New. + * g++.dg/modules/pr99283-2_b.H: New. + * g++.dg/modules/pr99283-2_c.H: New. + * g++.dg/modules/pr99283-3_a.H: New. + * g++.dg/modules/pr99283-3_b.H: New. + * g++.dg/modules/pr99283-4.H: New. + * g++.dg/modules/tpl-alias-1_a.H: Adjust scans. + * g++.dg/modules/tpl-alias-1_b.C: Adjust scans. + +2021-03-26 Vladimir Makarov + + PR target/99766 + * g++.target/aarch64/sve/pr99766.C: New. + +2021-03-26 Iain Buclaw + + PR ipa/99466 + * gcc.dg/tls/pr99466-1.c: New test. + * gcc.dg/tls/pr99466-2.c: New test. + +2021-03-26 Jakub Jelinek + + PR c++/99705 + * g++.dg/cpp0x/new5.C: New test. + +2021-03-26 Tobias Burnus + + PR fortran/99651 + * gfortran.dg/null_11.f90: New test. + +2021-03-25 Martin Sebor + + PR tree-optimization/55060 + * gcc.dg/uninit-pr55060.c: New. + +2021-03-25 Martin Sebor + + PR tree-optimization/48483 + * g++.dg/warn/uninit-pr48483.C: New test. + +2021-03-25 Martin Sebor + + * gcc.dg/uninit-pr44547.c: New. + +2021-03-25 Jakub Jelinek + + PR c++/99672 + * g++.dg/concepts/diagnostic2.C: Adjust expected caret line. + * g++.dg/cpp1y/builtin_location.C (f4, n6): Move #line directives + to match locus changes. + * g++.dg/cpp2a/srcloc1.C: Adjust expected column numbers. + * g++.dg/cpp2a/srcloc2.C: Likewise. + * g++.dg/cpp2a/srcloc15.C: Likewise. + * g++.dg/cpp2a/srcloc16.C: Likewise. + * g++.dg/cpp2a/srcloc19.C: New test. + * g++.dg/modules/adhoc-1_b.C: Adjust expected column numbers + and caret line. + * g++.dg/modules/macloc-1_c.C: Adjust expected column numbers. + * g++.dg/modules/macloc-1_d.C: Likewise. + * g++.dg/plugin/diagnostic-test-expressions-1.C: Adjust expected + caret line. + +2021-03-25 Marek Polacek + + PR c++/94751 + * g++.dg/cpp0x/inh-ctor37.C: New test. + +2021-03-25 Jakub Jelinek + + PR c++/99745 + * g++.dg/cpp0x/variadic181.C: New test. + +2021-03-25 Marek Polacek + + PR c++/99331 + * g++.dg/warn/Wconversion5.C: New test. + +2021-03-25 Stam Markianos-Wright + + PR tree-optimization/96974 + * g++.target/aarch64/sve/pr96974.C: New test. + +2021-03-25 H.J. Lu + + Revert: + 2021-03-25 H.J. Lu + + PR target/98209 + PR target/99744 + * gcc.target/i386/pr98209.c: New test. + * gcc.target/i386/pr99744-1.c: Likewise. + * gcc.target/i386/pr99744-2.c: Likewise. + +2021-03-25 Jakub Jelinek + + PR c++/99565 + * g++.dg/warn/Wduplicated-branches6.C: New test. + * g++.dg/warn/Wduplicated-branches7.C: New test. + +2021-03-25 H.J. Lu + + PR target/98209 + PR target/99744 + * gcc.target/i386/pr98209.c: New test. + * gcc.target/i386/pr99744-1.c: Likewise. + * gcc.target/i386/pr99744-2.c: Likewise. + +2021-03-25 Richard Biener + + PR tree-optimization/99746 + * gfortran.dg/vect/pr99746.f90: New testcase. + +2021-03-25 David Malcolm + + PR analyzer/93695 + PR analyzer/99044 + PR analyzer/99716 + * gcc.dg/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c: Remove + xfail. + * gcc.dg/analyzer/pr93695-1.c: New test. + * gcc.dg/analyzer/pr99044-1.c: New test. + * gcc.dg/analyzer/pr99044-2.c: New test. + * gcc.dg/analyzer/pr99716-1.c: New test. + * gcc.dg/analyzer/pr99716-2.c: New test. + * gcc.dg/analyzer/pr99716-3.c: New test. + +2021-03-24 Martin Liska + + PR target/99753 + * gcc.target/i386/pr99753.c: New test. + +2021-03-24 Martin Jambor + + PR ipa/99122 + * gcc.dg/pr99122-3.c: Remove -fno-ipa-cp from options. + +2021-03-24 Christophe Lyon + + PR target/99727 + * gcc.target/arm/pr99727.c: New test. + +2021-03-24 Jakub Jelinek + + PR target/99724 + * gcc.target/arm/pr99724.c: New test. + +2021-03-24 Alexandre Oliva + + * lib/target-supports.exp (check_effective_target_sysconf): New. + * gcc.target/i386/pr95443-1.c: Require it. + * gcc.target/i386/pr95443-2.c: Likewise. + * gcc.target/i386/sse2-mmx-maskmovq.c: Likewise. + * gcc.target/i386/strncmp-1.c: Likewise. + +2021-03-24 Alexandre Oliva + + * gcc.target/i386/pr97313.c: Require effective target feature pie. + * g++.target/i386/pr94185.C: Likewise. + +2021-03-24 Alexandre Oliva + + * gcc.target/i386/funcspec-2.c: Tighten regexps to avoid false + positives with -mcmodel=large. + * gcc.target/i386/funcspec-3.c: Likewise. + +2021-03-24 Alexandre Oliva + + * gcc.target/i386/pr94467-3.c: New. + +2021-03-24 Tobias Burnus + + PR fortran/99369 + * gfortran.dg/longnames.f90: New test. + +2021-03-23 Nathan Sidwell + + PR c++/99283 + * g++.dg/modules/pr99283-1_a.H: New. + * g++.dg/modules/pr99283-1_b.H: New. + +2021-03-23 Ilya Leoshkevich + + * gcc.target/s390/vector/long-double-asm-abi.c: New test. + +2021-03-23 Christophe Lyon + + * lib/target-supports.exp + (check_effective_target_arm_dsp_ok_nocache) + (check_effective_target_arm_dsp_ok, add_options_for_arm_dsp): New. + * gcc.target/arm/acle/dsp_arith.c: Use arm_dsp_ok effective target + and add arm_dsp options. + +2021-03-23 Christophe Lyon + + * lib/target-supports.exp + (check_effective_target_arm_v8_1m_mve_fp_ok_nocache): Fix + -mfloat-abi= options order. + (check_effective_target_arm_v8_1m_mve_ok_nocache): Likewise + * gcc.target/arm/mve/intrinsics/mve_vector_float2.c: Add + arm_hard_ok effective target and -mfloat-abi=hard additional + option. + * gcc.target/arm/mve/intrinsics/mve_vector_int.c: Likewise. + * gcc.target/arm/mve/intrinsics/mve_vector_uint.c: Likewise. + * gcc.target/arm/mve/intrinsics/mve_vector_uint1.c: Likewise. + * gcc.target/arm/mve/intrinsics/mve_vector_uint2.c: Likewise. + * gcc.target/arm/mve/intrinsics/vgetq_lane_s64.c: Likewise. + * gcc.target/arm/mve/intrinsics/vgetq_lane_u64.c: Likewise. + * gcc.target/arm/mve/intrinsics/vsetq_lane_s64.c: Likewise. + * gcc.target/arm/mve/intrinsics/vsetq_lane_u64.c: Likewise. + * gcc.target/arm/armv8_1m-fp16-move-1.c: Add -mfloat-abi=hard + additional option. + * gcc.target/arm/armv8_1m-fp32-move-1.c: Likewise. + * gcc.target/arm/armv8_1m-fp64-move-1.c: Likewise. + +2021-03-23 Christophe Lyon + + * lib/target-supports.exp + (check_effective_target_arm_v8_2a_i8mm_ok_nocache): Fix + -mfloat-abi= options order. + (check_effective_target_arm_v8_2a_bf16_neon_ok_nocache): Likewise. + * gcc.target/arm/bfloat16_scalar_1_1.c: Add arm_hard_ok effective + target and -mfloat-abi=hard additional option. + * gcc.target/arm/bfloat16_simd_1_1.c: Likewise. + * gcc.target/arm/simd/bf16_ma_1.c: Likewise. + * gcc.target/arm/simd/bf16_mmla_1.c: Likewise. + * gcc.target/arm/simd/vdot-2-1.c: Likewise. + * gcc.target/arm/simd/vdot-2-2.c: Likewise. + +2021-03-23 Christophe Lyon + + * gcc.target/arm/armv8_2-fp16-scalar-2.c: Add arm_hard_ok. + +2021-03-23 Christophe Lyon + + * gcc.target/arm/bfloat16_simd_1_2.c: Add arm_softfp_ok. + * gcc.target/arm/bfloat16_simd_2_2.c: Likewise. + * gcc.target/arm/bfloat16_simd_3_2.c: Likewise. + * gcc.target/arm/pr51968.c: Likewise. + * gcc.target/arm/bfloat16_simd_2_1.c: arm_hard_ok. + * gcc.target/arm/bfloat16_simd_3_1.c: Likewise. + * gcc.target/arm/simd/bf16_vldn_1.c: Likewise. + * gcc.target/arm/simd/bf16_vstn_1.c: Likewise. + +2021-03-23 Christophe Lyon + + * gcc.target/arm/armv8_1m-shift-imm-1.c: Remove -mfloat=abi option. + * gcc.target/arm/armv8_1m-shift-reg-1.c: Likewise. + * gcc.target/arm/bf16_dup.c: Likewise. + * gcc.target/arm/bf16_reinterpret.c: Likewise. + * gcc.target/arm/pr51534.c: Remove -mfloat=abi option. + +2021-03-23 Christophe Lyon + + * gcc.target/arm/simd/vmmla_1.c: Add arm_v8_2a_i8mm options. + +2021-03-23 Christophe Lyon + + * gcc.target/arm/bfloat16_scalar_typecheck.c: Add + arm_v8_2a_fp16_neon and arm_v8_2a_bf16_neon. + * gcc.target/arm/bfloat16_vector_typecheck_1.c: Likewise. + * gcc.target/arm/bfloat16_vector_typecheck_2.c: Likewise. + +2021-03-23 Marek Polacek + + PR c++/99318 + * g++.dg/cpp0x/attributes-namespace6.C: New test. + * g++.dg/cpp0x/gen-attrs-73.C: New test. + +2021-03-23 Tobias Burnus + + PR fortran/93660 + * gfortran.dg/gomp/declare-simd-coarray-lib.f90: New test. + +2021-03-23 Richard Sandiford + + PR target/99540 + * gcc.dg/vect/pr99540.c: New test. + +2021-03-23 Nathan Sidwell + + PR c++/99239 + * g++.dg/modules/pr99239_a.H: New. + * g++.dg/modules/pr99239_b.H: New. + +2021-03-23 Richard Biener + + PR tree-optimization/99721 + * gfortran.dg/vect/pr99721.f90: New testcase. + +2021-03-23 Marcus Comstedt + + * gcc.target/riscv/shift-shift-5.c (sub): Change + order of struct fields depending on byteorder. + +2021-03-23 Jakub Jelinek + + PR c++/99650 + * g++.dg/cpp1z/decomp55.C: New test. + +2021-03-23 Aldy Hernandez + + PR tree-optimization/99296 + * gcc.dg/pr99296.c: New file. + +2021-03-22 Nathan Sidwell + + PR c++/99480 + * g++.dg/modules/pr99480_a.H: New. + * g++.dg/modules/pr99480_b.H: New. + +2021-03-22 Vladimir N. Makarov + + PR target/99581 + * gcc.target/powerpc/pr99581.c: New. + +2021-03-22 Nathan Sidwell + + PR c++/99425 + * g++.dg/modules/pr99425-1.h: New. + * g++.dg/modules/pr99425-1_a.H: New. + * g++.dg/modules/pr99425-1_b.H: New. + * g++.dg/modules/pr99425-1_c.C: New. + * g++.dg/modules/pr99425-2_a.X: New. + * g++.dg/modules/pr99425-2_b.X: New. + * g++.dg/template/pr99425.C: New. + +2021-03-22 Richard Biener + + PR tree-optimization/99694 + * gcc.dg/torture/pr99694.c: New testcase. + +2021-03-22 Kito Cheng + + PR target/99702 + * gcc.target/riscv/pr99702.c: New. + +2021-03-22 Xionghu Luo + + PR target/98914 + * gcc.target/powerpc/pr98914.c: New test. + +2021-03-20 H.J. Lu + + PR target/99679 + * g++.target/i386/pr99679-1.C: New test. + * g++.target/i386/pr99679-2.C: Likewise. + +2021-03-20 Jakub Jelinek + + PR debug/99230 + * gcc.dg/pr99230.c: New test. + +2021-03-19 Jakub Jelinek + + PR c/99588 + * gcc.dg/Wunused-var-5.c: New test. + * gcc.dg/Wunused-var-6.c: New test. + +2021-03-19 Thomas Koenig + + * gfortran.dg/inline_matmul_6.f90: Adjust count for + _gfortran_matmul. + +2021-03-19 Vladimir N. Makarov + + PR target/99663 + * gcc.target/s390/pr99663.c: New. + +2021-03-19 Jakub Jelinek + + PR c++/99456 + * g++.dg/opt/pr99456.C: New test. + * g++.dg/ext/vla22.C: Expect a -Wnarrowing warning for c++11 and + later. + +2021-03-19 Tamar Christina + + PR tree-optimization/99656 + * gfortran.dg/vect/pr99656.f90: New test. + +2021-03-19 H.J. Lu + + PR target/99652 + * gcc.dg/torture/pr99652-1.c: New test. + * gcc.dg/torture/pr99652-2.c: Likewise. + * gcc.target/i386/pr57655.c: Adjusted. + * gcc.target/i386/pr59794-6.c: Likewise. + * gcc.target/i386/pr70738-1.c: Likewise. + * gcc.target/i386/pr96744-1.c: Likewise. + +2021-03-19 Jakub Jelinek + Christophe Lyon + + PR target/99593 + * g++.target/arm/pr99593.C: New test. + +2021-03-19 Eric Botcazou + + * g++.dg/lto/pr89335_0.C: Require the linker plugin. + +2021-03-19 Marek Polacek + + PR c++/99500 + * g++.dg/cpp2a/concepts-err3.C: New test. + +2021-03-18 Martin Sebor + + PR middle-end/99502 + * g++.dg/warn/Warray-bounds-22.C: New test. + * g++.dg/warn/Warray-bounds-23.C: New test. + * g++.dg/warn/Warray-bounds-24.C: New test. + +2021-03-18 Jakub Jelinek + + PR testsuite/99636 + * gcc.dg/strlenopt-80.c: For powerpc*-*-*, only enable for lp64. + +2021-03-18 Jakub Jelinek + + PR testsuite/99626 + * gcc.dg/strlenopt-73.c: Ifdef out test_copy_cond_unequal_length_i64 + on targets other than x86, aarch64, s390 and 64-bit powerpc. Use + test_copy_cond_unequal_length_i128 for __x86_64__ with int128 support + rather than __i386__. + +2021-03-18 Christophe Lyon + + PR testsuite/97680 + * c-c++-common/zero-scratch-regs-10.c: Skip on arm + +2021-03-18 Iain Sandoe + + PR objc++/49070 + * obj-c++.dg/pr49070.mm: New test. + * objc.dg/unnamed-parms.m: New test. + +2021-03-18 Kyrylo Tkachov + + * g++.target/aarch64/sve/aarch64-sve.exp: Add -moverride=tune=none to + sve_flags. + * g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp: Likewise. + * g++.target/aarch64/sve/acle/aarch64-sve-acle.exp: Likewise. + * gcc.target/aarch64/sve/aarch64-sve.exp: Likewise. + * gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp: Likewise. + * gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp: Likewise. + +2021-03-18 Jakub Jelinek + + PR middle-end/98099 + * gcc.dg/pr98099.c: Don't compile the test on pdp endian. + For big endian use -fsso-struct=little-endian dg-options. + +2021-03-17 Marek Polacek + + PR c++/97973 + * g++.dg/conversion/real-to-int1.C: New test. + +2021-03-17 Anthony Sharp + Jason Merrill + + * g++.dg/cpp1z/using9.C: New using decl test. + +2021-03-17 Iain Sandoe + + * c-c++-common/asan/strncpy-overflow-1.c: Add _FORTIFY_SOURCE=0 and + -gdwarf-3 to the command line options. Adjust the expected line + numbers for the revised options header. + +2021-03-17 Iain Sandoe + + * c-c++-common/asan/memcmp-1.c: Add _FORTIFY_SOURCE=0 and + -gdwarf-3 to the command line options. Provide Darwin- + specific match lines for the expected output. + +2021-03-17 Kyrylo Tkachov + + * gcc.target/aarch64/acle/rng_2.c: New test. + +2021-03-17 H.J. Lu + + PR target/99504 + * gcc.target/i386/pr99530-1.c: New test. + * gcc.target/i386/pr99530-2.c: Likewise. + * gcc.target/i386/pr99530-3.c: Likewise. + * gcc.target/i386/pr99530-4.c: Likewise. + * gcc.target/i386/pr99530-5.c: Likewise. + * gcc.target/i386/pr99530-6.c: Likewise. + +2021-03-16 Christophe Lyon + + PR target/99542 + * gcc.dg/declare-simd.c (fn2): Expect a warning only under lp64. + +2021-03-16 Jason Merrill + + * g++.dg/cpp2a/nontype-float1.C: New test. + +2021-03-16 Segher Boessenkool + + PR target/98092 + PR target/98092 + * gcc.target/powerpc/pr98092.c: New. + +2021-03-16 Jakub Jelinek + + PR target/99600 + * gcc.target/i386/pr99600.c: New test. + +2021-03-16 Martin Liska + Jason Merrill + + PR c++/99108 + * g++.target/i386/pr99108.C: New test. + +2021-03-16 Martin Liska + + PR target/99592 + * gcc.target/arm/pr99592.c: New test. + +2021-03-16 Ilya Leoshkevich + + * gcc.target/s390/vector/long-double-asm-fprvrmem.c: New test. + +2021-03-16 Nathan Sidwell + + PR c++/99496 + * g++.dg/modules/pr99496_a.H: New. + * g++.dg/modules/pr99496_b.C: New. + +2021-03-16 Jakub Jelinek + + PR target/99563 + * gcc.target/i386/avx-pr99563.c: New test. + +2021-03-16 Jakub Jelinek + + PR target/99542 + * gcc.dg/gomp/pr99542.c: New test. + * gcc.dg/gomp/pr59669-2.c (bar): Don't expect a warning on aarch64. + * gcc.dg/gomp/simd-clones-2.c (setArray): Likewise. + * g++.dg/vect/simd-clone-7.cc (bar): Likewise. + * g++.dg/gomp/declare-simd-1.C (f37): Expect a different warning + on aarch64. + * gcc.dg/declare-simd.c (fn2): Expect a new warning on aarch64. + +2021-03-15 Jakub Jelinek + + PR c++/99601 + * g++.dg/modules/builtin-3_a.C: Fix target selector syntax errors. + * g++.dg/modules/builtin-3_b.C: Likewise. + +2021-03-15 Nathan Sidwell + + PR c++/99601 + * g++.dg/modules/builtin-3_a.C: Fix lp64 x86 detection. + * g++.dg/modules/builtin-3_b.C: Fix lp64 x86 detection. + +2021-03-15 Iain Sandoe + + PR c++/99047 + * g++.dg/coroutines/pr99047.C: New test. + +2021-03-15 Iain Sandoe + + PR c++/98704 + * g++.dg/coroutines/torture/pr98704.C: New test. + +2021-03-15 Iain Sandoe + + PR c++/98480 + * g++.dg/coroutines/pr98480.C: New test. + * g++.dg/coroutines/torture/co-await-24-for-init.C: New test. + * g++.dg/coroutines/torture/co-await-25-for-condition.C: New test. + * g++.dg/coroutines/torture/co-await-26-for-iteration-expr.C: New test. + +2021-03-15 Iain Sandoe + + PR c++/96749 + * g++.dg/coroutines/pr96749-1.C: New test. + * g++.dg/coroutines/pr96749-2.C: New test. + +2021-03-15 Richard Biener + + PR tree-optimization/98834 + * g++.dg/opt/pr98834.C: New testcase. + +2021-03-15 Thomas Koenig + + PR fortran/99345 + * gfortran.dg/do_check_16.f90: New test. + * gfortran.dg/do_check_17.f90: New test. + +2021-03-15 Paul Thomas + + PR fortran/99545 + * gfortran.dg/pr99545.f90: New test. + +2021-03-15 David Edelsohn + + * gcc.target/powerpc/pr99492.c: Fix typo. + +2021-03-14 Harald Anlauf + Paul Thomas + + * gfortran.dg/pr99112.f90: New test. + +2021-03-13 Martin Sebor + + PR tree-optimization/99489 + * gcc.dg/Wstringop-truncation-9.c: New test. + +2021-03-13 Paul Thomas + + PR fortran/99125 + * gfortran.dg/alloc_deferred_comp_1.f90: New test. + +2021-03-13 Jakub Jelinek + + PR tree-optimization/99544 + * gcc.dg/gomp/pr99544.c: New test. + +2021-03-12 Nathan Sidwell + + PR c++/99238 + * g++.dg/modules/pr99238.h: New. + * g++.dg/modules/pr99238_a.H: New. + * g++.dg/modules/pr99238_b.H: New. + +2021-03-12 Tobias Burnus + + PR fortran/99514 + * gfortran.dg/gomp/threadprivate-1.f90: New test. + +2021-03-12 Jakub Jelinek + + PR target/99321 + * gcc.target/i386/avx512vl-pr99321-2.c: New test. + +2021-03-12 Jakub Jelinek + + PR c++/99507 + * g++.dg/cpp2a/consteval19.C: New test. + +2021-03-11 David Malcolm + + PR analyzer/96374 + * gcc.dg/analyzer/dot-output.c: Add -fdump-analyzer-feasibility + to options. + * gcc.dg/analyzer/feasibility-1.c (test_6): Remove xfail. + (test_7): New. + * gcc.dg/analyzer/pr93355-localealias-feasibility-2.c: Remove xfail. + * gcc.dg/analyzer/pr93355-localealias-feasibility-3.c: Remove xfails. + * gcc.dg/analyzer/pr93355-localealias-feasibility.c: Remove + -fno-analyzer-feasibility from options. + * gcc.dg/analyzer/pr93355-localealias.c: Likewise. + * gcc.dg/analyzer/unknown-fns-4.c: Remove xfail. + +2021-03-11 Nathan Sidwell + + PR c++/99248 + * g++.dg/modules/pr99248.h: New. + * g++.dg/modules/pr99248_a.H: New. + * g++.dg/modules/pr99248_b.H: New. + +2021-03-11 Nathan Sidwell + + PR c++/99528 + * g++.dg/modules/pr99528.h: New. + * g++.dg/modules/pr99528_a.H: New. + * g++.dg/modules/pr99528_b.H: New. + * g++.dg/modules/pr99528_c.C: New. + +2021-03-11 Richard Biener + + PR testsuite/98245 + * gcc.dg/vect/bb-slp-46.c: Scan for the scalar compute + instead of verifying the total number of adds. + +2021-03-11 Richard Biener + + PR testsuite/97494 + * gcc.dg/vect/pr97428.c: XFAIL on !vect_hw_misalign. + +2021-03-11 Richard Biener + + PR testsuite/97494 + * gcc.dg/vect/vect-complex-5.c: XFAIL on !vect_hw_misalign. + +2021-03-11 Richard Biener + + PR testsuite/97494 + * gcc.dg/vect/slp-21.c: Adjust for powerpc64*-*-*. + +2021-03-11 Jakub Jelinek + + PR ipa/99517 + * gcc.target/i386/avx2-pr99517-1.c: New test. + * gcc.target/i386/avx2-pr99517-2.c: New test. + +2021-03-10 David Edelsohn + + PR target/99492 + * gcc.target/powerpc/pr99492.c: New testcase. + +2021-03-10 Harald Anlauf + + PR fortran/99205 + * gfortran.dg/data_char_4.f90: New test. + * gfortran.dg/data_char_5.f90: New test. + +2021-03-10 Segher Boessenkool + + * gcc.target/powerpc/pr98959.c: Add int128 and lp64 selectors. + +2021-03-10 Nathan Sidwell + + PR c++/99423 + * g++.dg/modules/pr99423_a.H: New. + * g++.dg/modules/pr99423_b.H: New. + +2021-03-10 Jakub Jelinek + + PR tree-optimization/99305 + PR testsuite/99498 + * g++.dg/opt/pr99305.C: Don't expect cast to unsigned char on + unsigned_char effective targets. + +2021-03-10 Nathan Sidwell + + PR c++/99508 + * g++.dg/ext/pr99508.C: New. + +2021-03-10 John David Anglin + + PR testsuite/99292 + * lib/target-supports.exp (check_effective_target_lra): New. + * gcc.c-torture/compile/asmgoto-2.c: Use LRA target selector. + * gcc.c-torture/compile/asmgoto-5.c: Likewise. + * gcc.c-torture/compile/pr98096.c: Likewise. + * gcc.dg/pr97954.c: Likewise. + +2021-03-10 David Malcolm + + * gcc.dg/analyzer/pr94047.c: Remove "-Wno-analyzer-too-complex". + * gcc.dg/analyzer/zlib-2.c: Likewise. + +2021-03-10 Joel Hutton + + * gcc.dg/vect/pr99102.c: Fix target selector. + +2021-03-10 Joel Hutton + + PR target/99102 + * gcc.dg/vect/pr99102.c: New test. + +2021-03-10 Eric Botcazou + + * gnat.dg/specs/lto25.ads: New test. + +2021-03-09 Jakub Jelinek + + PR tree-optimization/99305 + * g++.dg/opt/pr99305.C: New test. + +2021-03-09 Segher Boessenkool + + * lib/target-supports.exp (check_effective_target_powerpc_sqrt): New. + (check_effective_target_sqrt_insn): Use it. + +2021-03-09 Vladimir N. Makarov + + PR target/99454 + * gcc.target/i386/pr99454.c: New. + +2021-03-09 Eric Botcazou + + * gcc.dg/array-quals-1.c: Pass -fno-pie if supported. + * gcc.dg/loop-9.c: Likewise. + * gfortran.dg/pr95690.f90: Replace *-*-solaris* with sparc*-*-*. + * gnat.dg/opt39.adb: Pass --param option for Aarch64 too. + +2021-03-09 Jakub Jelinek + + PR sanitizer/98920 + * c-c++-common/asan/pr98920.c: Only include regex.h if the header + exists. If REG_STARTEND macro isn't defined, just return 0 from main + instead of the actual test. + +2021-03-09 Martin Liska + + PR target/99464 + * gcc.target/i386/pr99464.c: New test. + +2021-03-09 Joel Brobecker + + * gcc.target/powerpc/undef-bool-2.c: Add + dg-require-effective-target powerpc_vsx_ok directive. + * g++.dg/ext/undef-bool-1.C: Add dg-require-effective-target + powerpc_vsx_ok directive. + +2021-03-08 Harald Anlauf + + PR fortran/49278 + * gfortran.dg/parameter_data.f90: New test. + +2021-03-08 Martin Sebor + + PR middle-end/98266 + * g++.dg/warn/Warray-bounds-15.C: New test. + * g++.dg/warn/Warray-bounds-18.C: New test. + * g++.dg/warn/Warray-bounds-19.C: New test. + * g++.dg/warn/Warray-bounds-20.C: New test. + * g++.dg/warn/Warray-bounds-21.C: New test. + +2021-03-08 Martin Sebor + + PR middle-end/97631 + * c-c++-common/Wstringop-overflow.c: Remove unexpected warnings. + Add an xfail. + * c-c++-common/Wstringop-truncation.c: Add expected warnings. + * gcc.dg/Wstringop-overflow-10.c: Also enable -Wstringop-truncation. + * gcc.dg/Wstringop-overflow-66.c: New test. + * gcc.dg/tree-ssa/strncpy-2.c: Adjust expected warning. + +2021-03-08 Marek Polacek + + PR c++/96268 + * g++.dg/cpp2a/nontype-class41.C: New test. + +2021-03-08 Nathan Sidwell + + PR c++/99436 + * g++.dg/modules/modules.exp (MOD_STD_LIST): Add 2b. + +2021-03-08 Nathan Sidwell + + * g++.dg/modules/pr99468.H: New. + +2021-03-08 Peter Bergner + + PR target/98959 + * gcc.target/powerpc/pr98959.c: New test. + +2021-03-08 Nathan Sidwell + + PR c++/99285 + * g++.dg/modules/pr99285_a.H: New. + * g++.dg/modules/pr99285_b.H: New. + +2021-03-08 Kyrylo Tkachov + + PR target/99437 + * gcc.target/aarch64/simd/pr99437.c: New test. + +2021-03-08 Martin Liska + + PR sanitizer/98920 + * c-c++-common/asan/pr98920.c: New test. + +2021-03-08 Martin Liska + + PR target/99463 + * gcc.target/i386/pr99463-2.c: New test. + * gcc.target/i386/pr99463.c: New test. + +2021-03-08 Ilya Leoshkevich + + * gcc.target/s390/vector/long-double-asm-commutative.c: New + test. + * gcc.target/s390/vector/long-double-asm-earlyclobber.c: New + test. + * gcc.target/s390/vector/long-double-asm-in-out.c: New test. + * gcc.target/s390/vector/long-double-asm-inout.c: New test. + * gcc.target/s390/vector/long-double-asm-matching.c: New test. + * gcc.target/s390/vector/long-double-asm-regmem.c: New test. + * gcc.target/s390/vector/long-double-volatile-from-i64.c: New + test. + +2021-03-08 Tobias Burnus + + PR fortran/97927 + * gfortran.dg/module_variable_3.f90: New test. + +2021-03-07 Jakub Jelinek + + PR target/99321 + * lib/target-supports.exp + (check_effective_target_assembler_march_noavx512bw): New effective + target. + * gcc.target/i386/avx512vl-pr99321-1.c: New test. + +2021-03-06 Patrick Palka + Jakub Jelinek + + PR c++/99287 + * g++.dg/cpp2a/constexpr-99287.C: New test. + +2021-03-06 Patrick Palka + Jakub Jelinek + + PR c++/96330 + * g++.dg/cpp1y/var-templ68.C: New test. + * g++.dg/cpp1y/var-templ68a.C: New test. + +2021-03-06 Patrick Palka + + PR c++/99365 + * g++.dg/cpp2a/concepts-partial-spec9.C: New test. + * g++.dg/cpp2a/concepts-placeholder4.C: New test. + +2021-03-06 Hans-Peter Nilsson + + * gcc.target/cris/pr93372-1.c: Adjust expected assembler result + to allow an eliminated stack-frame. + +2021-03-05 Marek Polacek + + PR c++/99374 + * g++.dg/cpp1z/noexcept-type23.C: New test. + +2021-03-05 Marek Polacek + + PR c++/99120 + * g++.dg/warn/Wshadow-17.C: New test. + +2021-03-05 Jason Merrill + + PR c/99363 + * gcc.dg/attr-flatten-1.c: Adjust. + +2021-03-05 Jakub Jelinek + + PR middle-end/99322 + * c-c++-common/gomp/pr99322.c: New test. + +2021-03-05 Nathan Sidwell + + PR c++/99245 + * g++.dg/modules/pr99245_a.H: New. + * g++.dg/modules/pr99245_b.H: New. + +2021-03-05 Harald Anlauf + + PR libfortran/99218 + * gfortran.dg/matmul_21.f90: New test. + +2021-03-05 Nathan Sidwell + + PR c++/99377 + * g++.dg/modules/pr99377_a.H: New. + * g++.dg/modules/pr99377_b.C: New. + * g++.dg/modules/pr99377_c.C: New. + +2021-03-05 Iain Sandoe + + PR c++/98118 + * g++.dg/coroutines/pr98118.C: New test. + +2021-03-05 Iain Sandoe + + PR c++/95616 + * g++.dg/coroutines/pr95616-0-no-exceptions.C: New test. + * g++.dg/coroutines/pr95616-0.C: New test. + * g++.dg/coroutines/pr95616-1-no-exceptions.C: New test. + * g++.dg/coroutines/pr95616-1.C: New test. + * g++.dg/coroutines/pr95616-2.C: New test. + * g++.dg/coroutines/pr95616-3-no-exceptions.C: New test. + * g++.dg/coroutines/pr95616-3.C: New test. + * g++.dg/coroutines/pr95616-4.C: New test. + * g++.dg/coroutines/pr95616-5.C: New test. + * g++.dg/coroutines/pr95616-6.C: New test. + +2021-03-05 Iain Sandoe + + PR c++/95615 + * g++.dg/coroutines/torture/pr95615-01.C: New test. + * g++.dg/coroutines/torture/pr95615-02.C: New test. + * g++.dg/coroutines/torture/pr95615-03.C: New test. + * g++.dg/coroutines/torture/pr95615-04.C: New test. + * g++.dg/coroutines/torture/pr95615-05.C: New test. + * g++.dg/coroutines/torture/pr95615.inc: New file. + +2021-03-05 Vladimir N. Makarov + + PR target/99378 + * gcc.target/i386/pr99123-2.c: New. + +2021-03-05 Nathan Sidwell + + PR c++/99389 + * g++.dg/modules/pr99389_a.H: New. + * g++.dg/modules/pr99389_b.C: New. + * g++.dg/modules/pr99389_c.C: New. + +2021-03-05 Tobias Burnus + + PR c/99137 + * c-c++-common/goacc/asyncwait-1.c: Update dg-error; add + additional test. + +2021-03-05 Tobias Burnus + + * gfortran.dg/real4-10-real8-10.f90: Add check for real literals + with '_kind' number. + * gfortran.dg/real4-10-real8-16.f90: Likewise. + * gfortran.dg/real4-10-real8-4.f90: Likewise. + * gfortran.dg/real4-10.f90: Likewise. + * gfortran.dg/real4-16-real8-10.f90: Likewise. + * gfortran.dg/real4-16-real8-16.f90: Likewise. + * gfortran.dg/real4-16-real8-4.f90: Likewise. + * gfortran.dg/real4-16.f90: Likewise. + * gfortran.dg/real4-8-real8-10.f90: Likewise. + * gfortran.dg/real4-8-real8-16.f90: Likewise. + * gfortran.dg/real4-8-real8-4.f90: Likewise. + * gfortran.dg/real4-8.f90: Likewise. + * gfortran.dg/real8-10.f90: Likewise. + * gfortran.dg/real8-16.f90: Likewise. + * gfortran.dg/real8-4.f90: Likewise. + +2021-03-05 Hans-Peter Nilsson + + PR debug/66668 + * gcc.dg/debug/dwarf2/stacked-qualified-types-3.c: xfail for cris-*-* + +2021-03-04 Iain Sandoe + + * lib/prune.exp: Prune useless output caused by a linker bug. + +2021-03-04 Jakub Jelinek + + PR middle-end/93235 + * gcc.target/aarch64/pr93235.c: New test. + +2021-03-04 Martin Liska + + PR gcov-profile/99105 + * gcc.dg/tree-prof/indir-call-prof-malloc.c: Use profile + correction as the wrapped malloc is called one more time + from libgcov. + * gcc.dg/tree-prof/pr97461.c: Likewise. + +2021-03-04 Jakub Jelinek + + PR c++/88146 + PR c++/99362 + * g++.dg/cpp2a/nodiscard-constructor.c: Renamed to ... + * g++.dg/cpp2a/nodiscard-constructor1.C: ... this. Remove + -ftrack-macro-expansion=0 from dg-options. Don't use (?n) in + dg-warning regexps, instead replace .* with \[^\n\r]*. + * g++.dg/cpp2a/nodiscard-constructor2.C: New test. + * g++.dg/cpp2a/nodiscard-reason-only-one.C: Remove + -ftrack-macro-expansion=0 from dg-options. + * g++.dg/cpp2a/nodiscard-reason-nonstring.C: Likewise. + * g++.dg/cpp2a/nodiscard-once.C: Likewise. + +2021-03-04 Jakub Jelinek + + PR c/99325 + * gcc.dg/cpp/line11.c: New test. + * gcc.dg/cpp/line12.c: New test. + +2021-03-04 Alex Coplan + + PR target/99381 + * gcc.target/aarch64/pr99381.c: New test. + +2021-03-04 Ilya Leoshkevich + + * gcc.target/s390/mul-signed-overflow-1.c: Compile on old + machines. + * gcc.target/s390/mul-signed-overflow-2.c: Likewise. + +2021-03-04 Nathan Sidwell + + PR c++/99170 + * g++.dg/modules/pr99170-1_a.H: New. + * g++.dg/modules/pr99170-1_b.C: New. + * g++.dg/modules/pr99170-2.h: New. + * g++.dg/modules/pr99170-2_a.C: New. + * g++.dg/modules/pr99170-2_b.C: New. + * g++.dg/modules/pr99170-3_a.H: New. + * g++.dg/modules/pr99170-3_b.C: New. + * g++.dg/modules/inst-2_b.C: Adjust scan. + * g++.dg/modules/inst-4_a.C: Adjust scan. + * g++.dg/modules/inst-4_b.C: Adjust scan. + * g++.dg/modules/member-def-1_b.C: Adjust scan. + * g++.dg/modules/member-def-1_c.C: Adjust scan. + * g++.dg/modules/tpl-spec-1_a.C: Adjust scan. + * g++.dg/modules/tpl-spec-1_b.C: Adjust scan. + * g++.dg/modules/tpl-spec-2_b.C: Adjust scan. + * g++.dg/modules/tpl-spec-2_c.C: Adjust scan. + * g++.dg/modules/tpl-spec-2_d.C: Adjust scan. + * g++.dg/modules/tpl-spec-3_a.C: Adjust scan. + * g++.dg/modules/tpl-spec-3_b.C: Adjust scan. + * g++.dg/modules/tpl-spec-4_a.C: Adjust scan. + * g++.dg/modules/tpl-spec-4_b.C: Adjust scan. + * g++.dg/modules/tpl-spec-5_a.C: Adjust scan. + * g++.dg/modules/tpl-spec-5_b.C: Adjust scan. + +2021-03-04 Tobias Burnus + + PR fortran/99355 + * gfortran.dg/real4-10-real8-10.f90: New test. + * gfortran.dg/real4-10-real8-16.f90: New test. + * gfortran.dg/real4-10-real8-4.f90: New test. + * gfortran.dg/real4-10.f90: New test. + * gfortran.dg/real4-16-real8-10.f90: New test. + * gfortran.dg/real4-16-real8-16.f90: New test. + * gfortran.dg/real4-16-real8-4.f90: New test. + * gfortran.dg/real4-16.f90: New test. + * gfortran.dg/real4-8-real8-10.f90: New test. + * gfortran.dg/real4-8-real8-16.f90: New test. + * gfortran.dg/real4-8-real8-4.f90: New test. + * gfortran.dg/real4-8.f90: New test. + * gfortran.dg/real8-10.f90: New test. + * gfortran.dg/real8-16.f90: New test. + * gfortran.dg/real8-4.f90: New test. + +2021-03-04 Hans-Peter Nilsson + + * gcc.misc-tests/outputs.exp: Enumerate tests. + +2021-03-04 Hans-Peter Nilsson + + * gcc.misc-tests/outputs.exp: Append discriminating + suffixes to tests with duplicate names. + (outest): Assert that each running test has a unique + name. + +2021-03-04 Martin Sebor + + PR middle-end/96963 + PR middle-end/94655 + * gcc.dg/Wstringop-overflow-47.c: Xfail tests. + * gcc.dg/Wstringop-overflow-65.c: New test. + * gcc.dg/Warray-bounds-69.c: Same. + +2021-03-03 Marek Polacek + + PR c++/96474 + * g++.dg/cpp1z/class-deduction83.C: New test. + +2021-03-03 Jonathan Wright + + * gcc.target/aarch64/advsimd-intrinsics/vcvt_fXX_fXX.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vcvtx.c: + New test. + +2021-03-03 Jonathan Wright + + * gcc.target/aarch64/advsimd-intrinsics/vmovn_high.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vqmovn_high.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vqmovun_high.c: + New test. + +2021-03-03 Jonathan Wright + + * gcc.target/aarch64/advsimd-intrinsics/vrshrn_high_n.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vshrn_high_n.c: + New test. + +2021-03-03 Jonathan Wright + + * gcc.target/aarch64/advsimd-intrinsics/vXXXhn_high.inc: + New test template. + * gcc.target/aarch64/advsimd-intrinsics/vaddhn_high.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vraddhn_high.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vrsubhn_high.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vsubhn_high.c: + New test. + +2021-03-03 Jakub Jelinek + + PR c++/82959 + * g++.dg/cpp1z/eval-order10.C: New test. + +2021-03-03 Marek Polacek + + PR c++/97034 + PR c++/99009 + * g++.dg/cpp1z/class-deduction81.C: New test. + * g++.dg/cpp1z/class-deduction82.C: New test. + * g++.dg/cpp2a/class-deduction-aggr8.C: New test. + * g++.dg/cpp2a/class-deduction-aggr9.C: New test. + * g++.dg/cpp2a/class-deduction-aggr10.C: New test. + +2021-03-03 Jason Merrill + + PR c++/95675 + * g++.dg/cpp0x/decltype-call5.C: New test. + * g++.dg/cpp0x/decltype-call6.C: New test. + +2021-03-03 Rainer Orth + + * gcc.target/i386/pr95798-1.c: Add -fomit-frame-pointer to + dg-options. + * gcc.target/i386/pr95798-2.c: Likewise. + +2021-03-03 Nathan Sidwell + + PR c++/99344 + * g++.dg/modules/namespace-2_a.C + * g++.dg/modules/pr99344_a.C + * g++.dg/modules/pr99344_b.C + +2021-03-03 Jakub Jelinek + + PR target/99321 + * gcc.target/i386/pr99321.c: New test. + +2021-03-03 Jakub Jelinek + + PR c/99324 + * gcc.c-torture/compile/pr99324.c: New test. + +2021-03-03 Jakub Jelinek + + PR target/99085 + * gcc.dg/graphite/pr99085.c: New test. + +2021-03-03 Jason Merrill + + PR c++/96078 + * g++.dg/ext/attr-flatten1.C: New test. + +2021-03-02 Hans-Peter Nilsson + + * gcc.misc-tests/outputs.exp: Skip @file -save-temps + tests if target test-framework has -L or -I options. + +2021-03-02 David Malcolm + + PR c/99323 + * gcc.dg/pr99323-1.c: New test. + * gcc.dg/pr99323-2.c: New test. + +2021-03-02 Martin Sebor + + PR c++/99251 + * g++.dg/warn/Wnonnull9.C: Expect no warnings. + * g++.dg/warn/Wnonnull12.C: New test. + +2021-03-02 Eric Botcazou + + * gnat.dg/limited5.adb: New test. + +2021-03-02 Patrick Palka + + PR c++/96443 + PR c++/96960 + * g++.dg/concepts/abbrev9.C: New test. + * g++.dg/cpp2a/concepts-lambda15.C: New test. + * g++.dg/cpp2a/concepts-placeholder3.C: New test. + * g++.dg/cpp2a/concepts-return-req2.C: New test. + * g++.dg/cpp2a/concepts-ts1.C: Add dg-bogus directive to the + call to f15 that we expect to accept. + +2021-03-02 Patrick Palka + + * g++.dg/cpp1z/auto1.C: New test. + +2021-03-02 Andreas Krebbel + + * gcc.target/s390/zvector/vec-nnpa-fp16-convert.c: New test. + * gcc.target/s390/zvector/vec-nnpa-fp32-convert-1.c: New test. + * gcc.target/s390/zvector/vec_convert_from_fp16.c: New test. + * gcc.target/s390/zvector/vec_convert_to_fp16.c: New test. + * gcc.target/s390/zvector/vec_extend_to_fp32_hi.c: New test. + * gcc.target/s390/zvector/vec_extend_to_fp32_lo.c: New test. + * gcc.target/s390/zvector/vec_round_from_fp32.c: New test. + +2021-03-02 Andreas Krebbel + + * lib/target-supports.exp: Add check for nnpa facility. + +2021-03-02 Andreas Krebbel + + * gcc.target/s390/mul-signed-overflow-1.c: Run only on z14. + * gcc.target/s390/mul-signed-overflow-2.c: Run only on z14. + +2021-03-01 Martin Liska + + PR target/99313 + * gcc.target/s390/target-attribute/pr99313.c: New test. + +2021-03-01 Nathan Sidwell + + PR c++/99294 + * g++.dg/modules/pr99294.h: New. + * g++.dg/modules/pr99294_a.C: New. + * g++.dg/modules/pr99294_b.C: New. + +2021-03-01 Eric Botcazou + + * g++.dg/eh/seh-xmm-unwind.C: New test. + +2021-02-28 Iain Sandoe + + * g++.dg/coroutines/pr94879-folly-1.C: Make final suspend + expression components noexcept. + * g++.dg/coroutines/pr94883-folly-2.C: Likewise. + * g++.dg/coroutines/pr95345.C: Likewise. + +2021-02-28 Jason Merrill + + * g++.dg/ext/attr-lambda3.C: Add missing ; + +2021-02-27 Jason Merrill + + PR c++/90333 + * g++.dg/ext/attr-lambda3.C: New test. + +2021-02-26 Alexandre Oliva + + * gcc.target/powerpc/pr67789.c: Revert fpic target requirement + duplication. + * gcc.target/powerpc/pr83629.c: Likewise. + * gcc.target/powerpc/pr84112.c: Likewise. + +2021-02-26 Olivier Hainque + + * gcc.target/powerpc/compress-float-ppc-pic.c: Add + dg-require-effective-target fpic. + * gcc.target/powerpc/ppc-eabi.c: Likewise. + * gcc.target/powerpc/pr26350.c: Likewise. + * gcc.target/powerpc/pr67789.c: Likewise. + * gcc.target/powerpc/pr79439-1.c: Likewise. + * gcc.target/powerpc/pr79439-2.c: Likewise. + * gcc.target/powerpc/pr79439-3.c: Likewise. + * gcc.target/powerpc/pr83629.c: Likewise. + * gcc.target/powerpc/pr84112.c: Likewise. + +2021-02-26 Richard Biener + + PR middle-end/99281 + * g++.dg/pr99218.C: New testcase. + +2021-02-26 Jakub Jelinek + + * g++.dg/cpp23/lambda-specifiers1.C: New test. + +2021-02-26 Jakub Jelinek + + PR c++/95451 + * g++.dg/cpp1y/lambda-generic-95451.C: New test. + +2021-02-26 Jason Merrill + + PR c++/98810 + * g++.dg/cpp2a/nontype-class-defarg1.C: New test. + +2021-02-26 Aaron Sawdey + + * gcc.target/powerpc/pcrel-opt-inc-di.c: New test. + * gcc.target/powerpc/pcrel-opt-ld-df.c: New test. + * gcc.target/powerpc/pcrel-opt-ld-di.c: New test. + * gcc.target/powerpc/pcrel-opt-ld-hi.c: New test. + * gcc.target/powerpc/pcrel-opt-ld-qi.c: New test. + * gcc.target/powerpc/pcrel-opt-ld-sf.c: New test. + * gcc.target/powerpc/pcrel-opt-ld-si.c: New test. + * gcc.target/powerpc/pcrel-opt-ld-vector.c: New test. + * gcc.target/powerpc/pcrel-opt-st-df.c: New test. + * gcc.target/powerpc/pcrel-opt-st-di.c: New test. + * gcc.target/powerpc/pcrel-opt-st-hi.c: New test. + * gcc.target/powerpc/pcrel-opt-st-qi.c: New test. + * gcc.target/powerpc/pcrel-opt-st-sf.c: New test. + * gcc.target/powerpc/pcrel-opt-st-si.c: New test. + * gcc.target/powerpc/pcrel-opt-st-vector.c: New test. + +2021-02-26 Patrick Palka + + PR c++/98990 + * g++.dg/concepts/abbrev8.C: New test. + +2021-02-25 Patrick Palka + + PR c++/99213 + PR c++/94521 + * g++.dg/diagnostic/local1.C: New test. + +2021-02-25 Patrick Palka + + PR c++/99103 + * g++.dg/cpp1z/class-deduction79.C: New test. + * g++.dg/cpp1z/class-deduction80.C: New test. + +2021-02-25 Marek Polacek + + DR 1312 + PR c++/99176 + * g++.dg/cpp0x/constexpr-nullptr-2.C: Adjust dg-error. + * g++.dg/cpp0x/constexpr-cast2.C: New test. + * g++.dg/cpp0x/constexpr-cast3.C: New test. + +2021-02-25 Iain Sandoe + + PR c++/97587 + * g++.dg/coroutines/coro1-refs-and-ctors.h: Add a CTOR with two + reference parms, to distinguish the rvalue ref. variant. + * g++.dg/coroutines/pr97587.C: New test. + +2021-02-25 Iain Sandoe + + PR c++/95822 + * g++.dg/coroutines/pr95822.C: New test. + +2021-02-25 Richard Earnshaw + + * gcc.target/arm/cmse/cmse-18.c: New test. + +2021-02-25 Nathan Sidwell + + PR c++/99166 + * g++.dg/modules/pr99166_a.X: Adjust. + * g++.dg/modules/pr99166_b.C: Adjust. + * g++.dg/modules/pr99166_c.C: Adjust. + * g++.dg/modules/pr99166_d.C: Adjust. + +2021-02-25 Hans-Peter Nilsson + + * gfortran.dg/pr95690.f90: CRIS error appears on line 5. + +2021-02-25 Tamar Christina + + * g++.dg/vect/simd-complex-num-null-node.cc: New test. + +2021-02-25 Vladimir N. Makarov + + PR testsuite/99233 + * gcc.target/powerpc/pr96264.c: Run it only for powerpc64le. + +2021-02-25 Christophe Lyon + + PR middle-end/97172 + * gcc.dg/pr97172-2.c: Add dg-require-effective-target shared. + +2021-02-25 Richard Biener + + PR tree-optimization/99253 + * gcc.dg/vect/pr99253.c: New testcase. + +2021-02-25 Jakub Jelinek + + PR target/95798 + * gcc.target/i386/pr95798-1.c: New test. + * gcc.target/i386/pr95798-2.c: New test. + +2021-02-25 Jakub Jelinek + + PR tree-optimization/80635 + * g++.dg/warn/pr80635-1.C: New test. + * g++.dg/warn/pr80635-2.C: New test. + +2021-02-25 David Malcolm + + PR analyzer/99193 + * gcc.dg/analyzer/pr99193-1.c: New test. + * gcc.dg/analyzer/pr99193-2.c: New test. + * gcc.dg/analyzer/pr99193-3.c: New test. + * gcc.dg/analyzer/realloc-1.c: New test. + +2021-02-24 Nathan Sidwell + + PR c++/98718 + * g++.dg/modules/pr98718_a.C: New. + * g++.dg/modules/pr98718_b.C: New. + +2021-02-24 Iain Sandoe + + * g++.dg/coroutines/co-await-void_type.C: Mark promise + final_suspend call as noexcept. + * g++.dg/coroutines/co-return-syntax-08-bad-return.C: Likewise. + * g++.dg/coroutines/co-return-syntax-10-movable.C: Likewise. + * g++.dg/coroutines/co-return-warning-1.C: Likewise. + * g++.dg/coroutines/co-yield-syntax-08-needs-expr.C: Likewise. + * g++.dg/coroutines/coro-bad-gro-00-class-gro-scalar-return.C: Likewise. + * g++.dg/coroutines/coro-bad-gro-01-void-gro-non-class-coro.C: Likewise. + * g++.dg/coroutines/coro-missing-gro.C: Likewise. + * g++.dg/coroutines/coro-missing-promise-yield.C: Likewise. + * g++.dg/coroutines/coro-missing-ret-value.C: Likewise. + * g++.dg/coroutines/coro-missing-ret-void.C: Likewise. + * g++.dg/coroutines/coro-missing-ueh.h: Likewise. + * g++.dg/coroutines/coro1-allocators.h: Likewise. + * g++.dg/coroutines/coro1-refs-and-ctors.h: Likewise. + * g++.dg/coroutines/coro1-ret-int-yield-int.h: Likewise. + * g++.dg/coroutines/pr94682-preview-this.C: Likewise. + * g++.dg/coroutines/pr94752.C: Likewise. + * g++.dg/coroutines/pr94760-mismatched-traits-and-promise-prev.C: Likewise. + * g++.dg/coroutines/pr94879-folly-1.C: Likewise. + * g++.dg/coroutines/pr94883-folly-2.C: Likewise. + * g++.dg/coroutines/pr95050.C: Likewise. + * g++.dg/coroutines/pr95345.C: Likewise. + * g++.dg/coroutines/pr95440.C: Likewise. + * g++.dg/coroutines/pr95591.C: Likewise. + * g++.dg/coroutines/pr95711.C: Likewise. + * g++.dg/coroutines/pr95813.C: Likewise. + * g++.dg/coroutines/symmetric-transfer-00-basic.C: Likewise. + * g++.dg/coroutines/torture/co-await-07-tmpl.C: Likewise. + * g++.dg/coroutines/torture/co-await-17-capture-comp-ref.C: Likewise. + * g++.dg/coroutines/torture/co-ret-00-void-return-is-ready.C: Likewise. + * g++.dg/coroutines/torture/co-ret-01-void-return-is-suspend.C: Likewise. + * g++.dg/coroutines/torture/co-ret-03-different-GRO-type.C: Likewise. + * g++.dg/coroutines/torture/co-ret-04-GRO-nontriv.C: Likewise. + * g++.dg/coroutines/torture/co-ret-06-template-promise-val-1.C: Likewise. + * g++.dg/coroutines/torture/co-ret-08-template-cast-ret.C: Likewise. + * g++.dg/coroutines/torture/co-ret-09-bool-await-susp.C: Likewise. + * g++.dg/coroutines/torture/co-ret-15-default-return_void.C: Likewise. + * g++.dg/coroutines/torture/co-ret-17-void-ret-coro.C: Likewise. + * g++.dg/coroutines/torture/co-yield-00-triv.C: Likewise. + * g++.dg/coroutines/torture/co-yield-03-tmpl.C: Likewise. + * g++.dg/coroutines/torture/co-yield-04-complex-local-state.C: Likewise. + * g++.dg/coroutines/torture/exceptions-test-0.C: Likewise. + * g++.dg/coroutines/torture/exceptions-test-01-n4849-a.C: Likewise. + * g++.dg/coroutines/torture/func-params-04.C: Likewise. + * g++.dg/coroutines/torture/local-var-06-structured-binding.C: Likewise. + * g++.dg/coroutines/torture/mid-suspend-destruction-0.C: Likewise. + +2021-02-24 Jakub Jelinek + + PR fortran/99226 + * c-c++-common/gomp/pr99226.c: New test. + * gfortran.dg/gomp/pr99226.f90: New test. + +2021-02-24 Vladimir N. Makarov + + PR inline-asm/99123 + * gcc.target/i386/pr99123.c: New. + +2021-02-24 Hans-Peter Nilsson + + * gcc.dg/stack-usage-1.c: Adjust for CRIS. + +2021-02-24 Nathan Sidwell + + PR c++/99072 + * g++.dg/modules/pr99072.H: New. + +2021-02-24 Paul Thomas + + PR fortran/98342 + * gfortran.dg/assumed_rank_21.f90 : New test. + +2021-02-24 Martin Sebor + + PR middle-end/97172 + * gcc.dg/pr97172-2.c: New test. + +2021-02-24 Tamar Christina + + PR tree-optimization/99220 + * g++.dg/vect/pr99220.cc: New test. + +2021-02-24 Tamar Christina + + PR tree-optimization/99149 + * g++.dg/vect/pr99149.cc: Disabled on BE. + +2021-02-24 Iain Sandoe + + PR c++/96251 + * g++.dg/coroutines/pr96251.C: New test. + +2021-02-24 Jakub Jelinek + + PR tree-optimization/99225 + * gcc.c-torture/compile/pr99225.c: New test. + +2021-02-24 Tamar Christina + + PR tree-optimization/99149 + * g++.dg/vect/pr99149.cc: New test. + +2021-02-24 Richard Biener + + PR c/99224 + * gcc.dg/pr99224.c: New testcase. + +2021-02-23 Peter Bergner + + * gcc.target/powerpc/mma-builtin-4.c: Add tests for + __builtin_vsx_assemble_pair and __builtin_vsx_disassemble_pair. + Add __has_builtin tests for built-ins. + Update expected instruction counts. + +2021-02-23 Martin Sebor + + PR c++/99074 + * g++.dg/warn/Wnonnull11.C: New test. + +2021-02-23 Paul Thomas + + PR fortran/99124 + * gfortran.dg/class_defined_operator_2.f03 : New test. + * gfortran.dg/elemental_result_2.f90 : New test. + * gfortran.dg/class_assign_4.f90: Correct the non-conforming + elemental function with an allocatable result with an operator + interface with array dummies and result. + +2021-02-23 Harald Anlauf + + PR fortran/99206 + * gfortran.dg/reshape_zerosize_4.f90: New test. + +2021-02-23 Nathan Sidwell + + PR c++/99208 + * g++.dg/modules/pr99208_a.C: New. + * g++.dg/modules/pr99208_b.C: New. + +2021-02-23 Martin Liska + + PR sanitizer/99168 + * c-c++-common/asan/pr99168.c: New test. + +2021-02-23 Patrick Palka + + PR c++/95468 + * g++.dg/template/non-dependent15.C: New test. + +2021-02-23 Jakub Jelinek + + PR tree-optimization/99204 + * gfortran.dg/pr99204.f90: New test. + +2021-02-23 Kewen Lin + + * gcc.target/powerpc/vec-init-10.c: New test. + +2021-02-23 Hans-Peter Nilsson + + * g++.dg/warn/Wplacement-new-size-1.C, + g++.dg/warn/Wplacement-new-size-2.C, + g++.dg/warn/Wplacement-new-size-6.C: Adjust for + default_packed targets. + +2021-02-22 David Malcolm + + PR analyzer/99196 + * gcc.dg/analyzer/error-1.c: New test. + * gcc.dg/analyzer/error-2.c: New test. + * gcc.dg/analyzer/error-3.c: New test. + +2021-02-22 H.J. Lu + + PR testsuite/99173 + * c-c++-common/attr-retain-5.c: Require R_flag_in_section. + * c-c++-common/attr-retain-6.c: Likewise. + * c-c++-common/attr-retain-7.c: Likewise. + * c-c++-common/attr-retain-8.c: Likewise. + * c-c++-common/attr-retain-9.c: Likewise. + +2021-02-22 Kyrylo Tkachov + + * gcc.target/aarch64/sve/cse_sve_vl_constants_1.c: New test. + +2021-02-22 Hans-Peter Nilsson + + * g++.dg/warn/Warray-bounds-10.C, g++.dg/warn/Warray-bounds-11.C, + g++.dg/warn/Warray-bounds-12.C, g++.dg/warn/Warray-bounds-13.C: + Handle __INT32_TYPE__ being "long int". + +2021-02-22 Hans-Peter Nilsson + + * gcc.target/cris/biap.c: Add a Y+=X*2 to the Y+=X*4. + +2021-02-22 Hans-Peter Nilsson + + * gcc.target/cris/biap-mul.c: New test. + +2021-02-22 Hans-Peter Nilsson + + * gcc.target/cris/torture/sync-reload-mul-1.c: New test. + +2021-02-22 Nathan Sidwell + + PR c++/99174 + * g++.dg/modules/pr99174-1_a.C: New. + * g++.dg/modules/pr99174-1_b.C: New. + * g++.dg/modules/pr99174-1_c.C: New. + * g++.dg/modules/pr99174.H: New. + +2021-02-22 Nathan Sidwell + + PR c++/99153 + * g++.dg/modules/pr99153_a.H: New. + * g++.dg/modules/pr99153_b.H: New. + +2021-02-22 Andre Vieira + + PR rtl-optimization/98791 + * gcc.target/aarch64/sve/pr98791.c: New test. + +2021-02-22 Richard Biener + + PR tree-optimization/99165 + * g++.dg/pr99165.C: New testcase. + +2021-02-21 Harald Anlauf + + * gfortran.dg/intent_optimize_3.f90: New test. + +2021-02-20 David Edelsohn + + * c-c++-common/attr-retain-5.c: Skip on AIX. + * c-c++-common/attr-retain-6.c: Same. + * c-c++-common/attr-retain-7.c: Same. + * c-c++-common/attr-retain-8.c: Same. + * c-c++-common/attr-retain-9.c: Same. + +2021-02-20 Ilya Leoshkevich + + PR target/99134 + * gcc.target/s390/vector/long-double-from-decimal128.c: New test. + * gcc.target/s390/vector/long-double-from-decimal32.c: New test. + * gcc.target/s390/vector/long-double-from-decimal64.c: New test. + * gcc.target/s390/vector/long-double-to-decimal128.c: New test. + * gcc.target/s390/vector/long-double-to-decimal32.c: New test. + * gcc.target/s390/vector/long-double-to-decimal64.c: New test. + +2021-02-19 Nathan Sidwell + + PR c++/98741 + * g++.dg/modules/pr98741_a.H: New. + * g++.dg/modules/pr98741_b.H: New. + * g++.dg/modules/pr98741_c.C: New. + * g++.dg/modules/pr98741_d.C: New. + +2021-02-19 Jerry DeLisle + + PR fortran/98686 + * gfortran.dg/namelist_4.f90: Modify. + * gfortran.dg/namelist_98.f90: New test. + +2021-02-19 Martin Sebor + + PR c/97172 + * gcc.dg/pr97172.c: Add test cases. + +2021-02-19 Nathan Sidwell + + * g++.dg/modules/pr99166_a.X: New. + * g++.dg/modules/pr99166_b.C: New. + * g++.dg/modules/pr99166_c.C: New. + * g++.dg/modules/pr99166_d.C: New. + +2021-02-19 Tobias Burnus + + PR fortran/99010 + * gfortran.dg/coarray/array_temporary-1.f90: New test. + +2021-02-19 Tobias Burnus + + PR fortran/99146 + * gfortran.dg/dtio_36.f90: New test. + +2021-02-19 Richard Biener + + PR middle-end/99122 + * gcc.dg/pr99122-3.c: New testcase. + +2021-02-19 Jakub Jelinek + + PR target/98998 + * gcc.target/arm/pure-code/pr98998.c: New test. + +2021-02-19 Jakub Jelinek + + PR ipa/99034 + * g++.dg/opt/pr99034.C: New test. + +2021-02-19 Tobias Burnus + + PR fortran/99027 + * gfortran.dg/ubound_1.f90: New test. + +2021-02-19 Andre Vieira + + PR target/98657 + * gcc.target/aarch64/sve/pr98657.c: New test. + +2021-02-19 Jason Merrill + + * g++.dg/cpp0x/decltype64.C: Change argument to const&. + +2021-02-19 David Malcolm + + PR jit/99126 + * jit.dg/test-trap.c: New test. + +2021-02-19 Jason Merrill + + PR c++/96926 + * g++.dg/cpp0x/overload4.C: New test. + +2021-02-18 Vladimir N. Makarov + + PR rtl-optimization/96264 + * gcc.target/powerpc/pr96264.c: New. + +2021-02-18 H.J. Lu + + PR target/99113 + * c-c++-common/attr-retain-1.c: New test. + * c-c++-common/attr-retain-2.c: Likewise. + * c-c++-common/attr-retain-3.c: Likewise. + * c-c++-common/attr-retain-4.c: Likewise. + * c-c++-common/attr-retain-5.c: Likewise. + * c-c++-common/attr-retain-6.c: Likewise. + * c-c++-common/attr-retain-7.c: Likewise. + * c-c++-common/attr-retain-8.c: Likewise. + * c-c++-common/attr-retain-9.c: Likewise. + * c-c++-common/pr99113.c: Likewise. + * gcc.c-torture/compile/attr-retain-1.c: Likewise. + * gcc.c-torture/compile/attr-retain-2.c: Likewise. + * c-c++-common/attr-used.c: Don't expect SHF_GNU_RETAIN section. + * c-c++-common/attr-used-2.c: Likewise. + * c-c++-common/attr-used-3.c: Likewise. + * c-c++-common/attr-used-4.c: Likewise. + * c-c++-common/attr-used-9.c: Likewise. + * gcc.c-torture/compile/attr-used-retain-1.c: Likewise. + * gcc.c-torture/compile/attr-used-retain-2.c: Likewise. + * c-c++-common/attr-used-5.c: Don't expect warning for the used + attribute nor SHF_GNU_RETAIN section. + * c-c++-common/attr-used-6.c: Likewise. + * c-c++-common/attr-used-7.c: Likewise. + * c-c++-common/attr-used-8.c: Likewise. + +2021-02-18 Nathan Sidwell + + PR c++/99023 + * g++.dg/modules/modules.exp: Bail on cross-testing. Add support + for .X files. + * g++.dg/modules/pr99023_a.X: New. + * g++.dg/modules/pr99023_b.X: New. + +2021-02-18 Jakub Jelinek + + PR c/99136 + * gcc.dg/pr99136.c: New test. + +2021-02-18 Nathan Sidwell + + PR c++/99023 + * g++.dg/modules/modules.exp: Remove dg-module-headers support + * g++.dg/modules/alias-2_a.H: Delete. + * g++.dg/modules/sys/alias-2_a.H: Delete. + +2021-02-18 Nathan Sidwell + + PR c++/99150 + * g++.dg/modules/pr99023_a.H: Delete. + * g++.dg/modules/pr99023_b.H: Delete. + +2021-02-18 Jakub Jelinek + + PR c++/99132 + * g++.dg/cpp2a/constexpr-virtual18.C: New test. + +2021-02-18 Richard Biener + + PR middle-end/99122 + * gcc.dg/pr99122-1.c: New testcase. + * gcc.dg/pr99122-2.c: Likewise. + +2021-02-18 Hans-Peter Nilsson + + PR tree-optimization/99142 + * gcc.dg/tree-ssa/pr99142.c: New test. + +2021-02-18 Jakub Jelinek + + PR middle-end/99109 + * g++.dg/warn/Warray-bounds-17.C: New test. + +2021-02-18 Jakub Jelinek + + PR target/99104 + * gcc.dg/pr99104.c: New test. + +2021-02-17 David Malcolm + + PR analyzer/94596 + * gcc.dg/analyzer/pr94596.c: New test. + +2021-02-17 Nathan Sidwell + + PR c++/99023 + * g++.dg/modules/pr99023_a.H: New. + * g++.dg/modules/pr99023_b.H: New. + +2021-02-17 David Malcolm + + PR analyzer/98969 + * g++.dg/analyzer/pr99064.C: Convert dg-bogus to dg-warning. + * gcc.dg/analyzer/pr96841.c: Add -Wno-analyzer-too-complex to + options. Remove false leak directive. + * gcc.dg/analyzer/pr98969.c (test_1): Remove xfail from leak + false positive. + (test_3): New. + +2021-02-17 Julian Brown + + * gfortran.dg/goacc/array-with-dt-2.f90: Remove expected errors. + * gfortran.dg/goacc/array-with-dt-6.f90: New test. + * gfortran.dg/goacc/mapping-tests-2.f90: Update expected error. + * gfortran.dg/goacc/ref_inquiry.f90: Update expected errors. + * gfortran.dg/gomp/ref_inquiry.f90: Likewise. + +2021-02-17 Julian Brown + + * gfortran.dg/goacc/array-with-dt-1.f90: New test. + * gfortran.dg/goacc/array-with-dt-3.f90: Likewise. + * gfortran.dg/goacc/array-with-dt-4.f90: Likewise. + * gfortran.dg/goacc/array-with-dt-5.f90: Likewise. + * gfortran.dg/goacc/derived-chartypes-1.f90: Re-enable test. + * gfortran.dg/goacc/derived-chartypes-2.f90: Likewise. + * gfortran.dg/goacc/derived-classtypes-1.f95: Uncomment + previously-broken directives. + +2021-02-17 Jakub Jelinek + + PR sanitizer/99106 + * g++.dg/ubsan/pr99106.C: New test. + +2021-02-17 Nathan Sidwell + + PR c++/99116 + * g++.dg/lookup/pr99116-1.C: New. + * g++.dg/lookup/pr99116-2.C: New. + +2021-02-17 Nathan Sidwell + + PR c++/99071 + * g++.dg/modules/pr99071_a.H: New. + * g++.dg/modules/pr99071_b.H: New. + +2021-02-17 Patrick Palka + + PR debug/96997 + PR c++/94034 + * g++.dg/cpp1y/constexpr-nsdmi7b.C: Adjust expected location of + "call to non-'constexpr' function" error message. + +2021-02-16 Nathan Sidwell + + * g++.dg/modules/pr99050_a.H: New. + * g++.dg/modules/pr99050_b.C: New. + +2021-02-16 Marek Polacek + + PR c++/99062 + * gcc.dg/attr-assume_aligned-4.c: Adjust dg-warning. + * g++.dg/ext/attr-assume-aligned.C: New test. + +2021-02-16 YunQiang Su + + * gcc.target/mips/compact-branches-5.c: Force -fno-PIC. + * gcc.target/mips/compact-branches-6.c: Force -fno-PIC. + +2021-02-16 Tobias Burnus + + * gfortran.dg/goacc/ref_inquiry.f90: New test. + * gfortran.dg/gomp/ref_inquiry.f90: New test. + +2021-02-16 Vladimir N. Makarov + + PR inline-asm/98096 + * gcc.c-torture/compile/pr98096.c: New. + +2021-02-16 Tobias Burnus + + PR fortran/99111 + * gfortran.dg/fmt_nonchar_1.f90: New test. + * gfortran.dg/fmt_nonchar_2.f90: New test. + +2021-02-16 Jakub Jelinek + + PR target/99100 + * gcc.target/i386/pr99100.c: New test. + +2021-02-16 Hans-Peter Nilsson + + * gcc.misc-tests/outputs.exp (outest): Fix typo "is_target". + +2021-02-15 Peter Bergner + + PR rtl-optimization/98872 + * gcc.target/powerpc/pr98872.c: New test. + +2021-02-15 Jakub Jelinek + + PR tree-optimization/99079 + * gcc.dg/fold-modpow2-2.c: New test. + * gcc.c-torture/execute/pr99079.c: New test. + +2021-02-13 Jakub Jelinek + + PR rtl-optimization/98439 + * gcc.target/i386/pr98439.c: New test. + +2021-02-13 Jakub Jelinek + + PR target/96166 + * gcc.target/i386/pr96166.c: New test. + +2021-02-12 Jakub Jelinek + + * gcc.dg/rtl/aarch64/multi-subreg-1.c: Add dg-do compile directive + and restrict the test to aarch64-*-* target only. + +2021-02-12 Nathan Sidwell + + * g++.dg/modules/pr99039_a.C: New. + * g++.dg/modules/pr99039_b.C: New. + +2021-02-12 Nathan Sidwell + + PR c++/99040 + * g++.dg/modules/pr99040_a.C: New. + * g++.dg/modules/pr99040_b.C: New. + * g++.dg/modules/pr99040_c.C: New. + * g++.dg/modules/pr99040_d.C: New. + +2021-02-12 Nathan Sidwell + + PR c++/99039 + PR c++/99040 + * g++.dg/lookup/pr99039.C: New. + +2021-02-12 Steve Kargl + + PR libfortran/95647 + * gfortran.dg/ieee/ieee_12.f90: New test. + +2021-02-12 Richard Sandiford + + * gcc.dg/rtl/aarch64/multi-subreg-1.c: New test. + +2021-02-12 Christophe Lyon + + PR target/98931 + * gcc.target/arm/pr98931.c: Add -mthumb + +2021-02-12 Tobias Burnus + + PR fortran/99043 + * gfortran.dg/assumed_rank_20.f90: New test. + +2021-02-12 Jakub Jelinek + + PR c++/97742 + * g++.dg/cpp2a/concepts-requires24.C: New test. + +2021-02-12 Jason Merrill + + PR c++/97246 + * g++.dg/cpp2a/lambda-generic-variadic21.C: New test. + +2021-02-12 David Malcolm + + PR analyzer/98969 + * g++.dg/analyzer/pr99064.C: New test. + * gcc.dg/analyzer/pr98969.c: New test. + +2021-02-11 Marek Polacek + + PR c++/95888 + * g++.dg/template/deduce10.C: New test. + * g++.dg/template/deduce9.C: New test. + +2021-02-11 Peter Bergner + + PR target/99041 + * g++.target/powerpc/pr99041.C: New test. + +2021-02-11 Jakub Jelinek + + PR c++/99033 + * g++.dg/ext/flexary38.C: New test. + +2021-02-11 Marek Polacek + + PR c++/99063 + * g++.dg/cpp0x/variadic-crash6.C: New test. + +2021-02-11 Patrick Palka + + PR c++/97582 + * g++.dg/cpp0x/lambda/lambda-template17.C: New test. + +2021-02-11 Andrea Corallo + + PR target/98931 + * gcc.target/arm/pr98931.c: New testcase. + +2021-02-11 Joel Hutton + + PR tree-optimization/98772 + * gcc.target/aarch64/pr98772.c: New test. + +2021-02-11 Paul Thomas + + PR fortran/98897 + * gfortran.dg/typebound_call_32.f90: New test. + +2021-02-11 Paul Thomas + + PR fortran/99060 + * gfortran.dg/pr99060.f90: New test. + +2021-02-11 Alexandre Oliva + + * gcc.target/arm/simd/vmmla_1.c: Pass -mfpu=auto. + +2021-02-11 Jerry DeLisle + + PR libfortran/98825 + * gfortran.dg/dollar_edit_descriptor_4.f: New test. + +2021-02-10 Martin Sebor + + PR tree-optimization/92879 + * g++.dg/warn/Warray-bounds-16.C: New test. + +2021-02-10 David Malcolm + + PR preprocessor/96391 + * g++.dg/plugin/location-overflow-test-pr96391.c: New test. + * g++.dg/plugin/plugin.exp (plugin_test_list): Add it, + using the location_overflow_plugin.c from gcc.dg/plugin. + +2021-02-10 Jakub Jelinek + + PR c++/99035 + * g++.dg/ext/weak6.C: New test. + +2021-02-10 Jakub Jelinek + + PR target/99025 + * gcc.target/i386/pr99025.c: New test. + +2021-02-10 Jakub Jelinek + + PR c++/98988 + PR c++/99031 + * g++.dg/cpp2a/constexpr-new16.C: New test. + * g++.dg/cpp2a/constexpr-new17.C: New test. + +2021-02-10 Nathan Sidwell + + PR c++/99030 + * g++.dg/lookup/pr99030.C: New. + +2021-02-10 Jakub Jelinek + + PR middle-end/99007 + * g++.dg/gomp/pr99007.C: New test. + * gcc.dg/gomp/pr99007-1.c: New test. + * gcc.dg/gomp/pr99007-2.c: New test. + * gcc.dg/gomp/pr99007-3.c: New test. + +2021-02-10 Julian Brown + + PR fortran/98979 + * gfortran.dg/goacc/array-with-dt-2.f90: Add expected errors. + * gfortran.dg/goacc/derived-chartypes-1.f90: Skip ICEing test. + * gfortran.dg/goacc/derived-chartypes-2.f90: Likewise. + +2021-02-09 David Malcolm + + PR analyzer/98575 + * gcc.dg/analyzer/file-1.c (test_5): New. + * gcc.dg/analyzer/file-3.c: New test. + +2021-02-09 David Malcolm + + PR analyzer/98575 + * gcc.dg/analyzer/explode-1.c: Remove expected leak warning. + * gcc.dg/analyzer/pr94851-2.c: New test. + * gcc.dg/analyzer/pr98575-1.c: New test. + +2021-02-09 Andre Vieira + + * gcc.target/aarch64/asimd-mul-to-shl-sub.c: New test. + +2021-02-09 Jonathan Wright + + * gcc.target/aarch64/advsimd-intrinsics/vpXXXq.inc: + New test template. + * gcc.target/aarch64/advsimd-intrinsics/vpaddq.c: New test. + +2021-02-09 Nathan Sidwell + + PR c++/98944 + * g++.dg/modules/pr98944_a.C: New. + * g++.dg/modules/pr98944_b.C: New. + * g++.dg/modules/pr98944_c.C: New. + * g++.dg/modules/pr98944_d.C: New. + +2021-02-09 Jakub Jelinek + + PR middle-end/98465 + * g++.dg/warn/Wstringop-overread-1.C: New test. + +2021-02-09 Jason Merrill + + PR c++/96905 + * g++.dg/cpp2a/consteval-expinst1.C: New test. + +2021-02-09 Jason Merrill + + PR c++/98326 + * g++.dg/cpp1y/lambda-generic-empty1.C: New test. + +2021-02-09 Jason Merrill + + PR c++/98994 + * g++.dg/cpp2a/no_unique_address12.C: New test. + +2021-02-08 Nathan Sidwell + + * g++.dg/modules/pr98531-2.h: New. + * g++.dg/modules/pr98531-2_a.H: New. + * g++.dg/modules/pr98531-2_b.C: New. + * g++.dg/modules/pr98531-3.h: New. + * g++.dg/modules/pr98531-3_a.H: New. + * g++.dg/modules/pr98531-3_b.C: New. + +2021-02-08 Nathan Sidwell + + PR c++/98531 + * g++.dg/modules/pr98531-1.h: New. + * g++.dg/modules/pr98531-1_a.H: New. + * g++.dg/modules/pr98531-1_b.C: New. + * g++.dg/abi/pr98531-1.C: New. + * g++.dg/abi/pr98531-2.C: New. + * g++.dg/abi/pr98531-3.C: New. + * g++.dg/abi/pr98531-4.C: New. + +2021-02-08 Andre Vieira + + PR middle-end/98974 + * gfortran.dg/pr98974.F90: New test. + +2021-02-08 Richard Biener + + PR lto/96591 + * g++.dg/lto/pr96591_0.C: New testcase. + +2021-02-05 Marek Polacek + + PR c++/98947 + * g++.dg/cpp2a/volatile5.C: New test. + +2021-02-05 Marek Polacek + + PR c++/96462 + * g++.dg/cpp2a/using-enum-8.C: New test. + +2021-02-05 Nathan Sidwell + + PR driver/98943 + * c-c++-common/pr98943.c: New. + +2021-02-05 Richard Biener + + PR tree-optimization/98855 + * g++.dg/vect/slp-pr98855.cc: New testcase. + +2021-02-05 Jakub Jelinek + + PR c++/97878 + * g++.dg/cpp1z/decomp54.C: New test. + +2021-02-05 liuhongt + + PR target/98537 + * g++.target/i386/avx512bw-pr98537-1.C: New test. + * g++.target/i386/avx512vl-pr98537-1.C: New test. + * g++.target/i386/avx512vl-pr98537-2.C: New test. + * gcc.target/i386/avx512vl-pr88547-1.c: Adjust testcase, + integer mask comparison should not be generated. + * gcc.target/i386/avx512vl-pr92686-vpcmp-1.c: Remove. + * gcc.target/i386/avx512vl-pr92686-vpcmp-2.c: Ditto. + * gcc.target/i386/avx512vl-pr92686-vpcmp-intelasm-1.c: Ditto. + +2021-02-04 Julian Brown + + * gfortran.dg/goacc/derived-chartypes-1.f90: New test. + * gfortran.dg/goacc/derived-chartypes-2.f90: Likewise. + * gfortran.dg/goacc/derived-chartypes-3.f90: Likewise. + * gfortran.dg/goacc/derived-chartypes-4.f90: Likewise. + +2021-02-04 Julian Brown + + * gfortran.dg/goacc/array-with-dt-2.f90: New test. + +2021-02-04 Julian Brown + + * gfortran.dg/goacc/derived-classtypes-1.f95: New test. + +2021-02-04 Jakub Jelinek + + PR testsuite/98325 + * lib/scanasm.exp (dg-scan-symbol-section): For powerpc*-*-* targets if + $section is .opd, look at .L.$symbol_name's section. + (parse_section_section_of_symbols): Handle .previous directive. + * gcc.dg/array-quals-1.c: Allow .sdata section. + +2021-02-04 Iain Buclaw + + * gdc.dg/intrinsics.d: Update test. + +2021-02-04 Martin Sebor + + PR c/97882 + * gcc.dg/decl-8.c: Adjust text of expected diagnostic. + * gcc.dg/label-decl-4.c: Same. + * gcc.dg/mismatch-decl-1.c: Same. + * gcc.dg/old-style-then-proto-1.c: Same. + * gcc.dg/parm-mismatch-1.c: Same. + * gcc.dg/pr35445.c: Same. + * gcc.dg/redecl-11.c: Same. + * gcc.dg/redecl-12.c: Same. + * gcc.dg/redecl-13.c: Same. + * gcc.dg/redecl-15.c: Same. + * gcc.dg/tls/thr-init-1.c: Same. + * objc.dg/id-1.m: Same. + * objc.dg/tls/diag-3.m: Same. + * gcc.dg/pr97882.c: New test. + * gcc.dg/qual-return-7.c: New test. + * gcc.dg/qual-return-8.c: New test. + +2021-02-04 Jason Merrill + + PR c++/98717 + * g++.dg/cpp2a/concepts-variadic3.C: New test. + +2021-02-04 David Malcolm + + PR c/97932 + * gcc.dg/pr97932.c: New test. + +2021-02-04 emsr <3dw4rd@verizon.net> + + * g++.dg/cpp23/feat-cxx2b.C: __cpp_size_t_suffix == 202011. + +2021-02-04 Jakub Jelinek + + * g++.dg/warn/Wsize_t-literals.C: Expect make_signed_t instead + of make_signed::type in the diagnostics. + +2021-02-04 Tom Greenslade (thomgree) + + PR c++/90926 + * g++.dg/cpp1y/nsdmi-aggr12.C: New test. + +2021-02-04 Tobias Burnus + + * gfortran.dg/goacc/substring.f90: New test. + * gfortran.dg/gomp/substring.f90: New test. + +2021-02-04 Martin Liska + + * gcc.target/i386/prefer-vector-width-attr.c: New test. + +2021-02-04 Jason Merrill + + PR c++/98802 + * g++.dg/cpp1z/class-deduction78.C: New test. + +2021-02-04 Jason Merrill + + PR c++/95192 + * g++.dg/cpp0x/pr84630.C: Call b(). + * g++.dg/cpp2a/lambda-uneval13.C: New test. + * g++.dg/ext/attr-expr1.C: New test. + +2021-02-03 Jakub Jelinek + + PR preprocessor/98882 + * gcc.dg/cpp/pr98882.c: New test. + +2021-02-03 Jason Merrill + + * g++.dg/cpp0x/alias-decl-dr1558.C: Pass --param + hash-table-verification-limit=10000. + +2021-02-03 Ed Smith-Rowland <3dw4rd@verizon.net> + + * g++.dg/cpp0x/udlit-shadow-neg.C: Test for 'z' and 'zu' shadowing. + * g++.dg/cpp23/feat-cxx2b.C: New test. + * g++.dg/cpp23/size_t-literals.C: New test. + * g++.dg/warn/Wsize_t-literals.C: New test. + +2021-02-03 Jakub Jelinek + + PR c++/97804 + * g++.dg/cpp2a/no_unique_address11.C: New test. + +2021-02-03 Marek Polacek + + PR c++/98899 + * g++.dg/cpp0x/noexcept65.C: New test. + +2021-02-03 Tobias Burnus + + PR fortran/98913 + * gfortran.dg/coarray/array_temporary.f90: New test. + +2021-02-03 Jakub Jelinek + + PR middle-end/97487 + * gcc.dg/pr97487-1.c: New test. + * gcc.dg/pr97487-2.c: New test. + +2021-02-03 Jakub Jelinek + + PR middle-end/97971 + * gcc.target/i386/pr97971.c: New test. + +2021-02-03 Jakub Jelinek + + PR tree-optimization/98287 + * gcc.dg/pr98287.c: New test. + +2021-02-03 Tamar Christina + + PR tree-optimization/98928 + * gcc.target/i386/pr98928.c: New test. + +2021-02-02 Martin Liska + + PR target/97510 + * gcc.target/i386/pr97510.c: New test. + +2021-02-02 Jason Merrill + + PR c++/98929 + * g++.dg/cpp1z/class-deduction-decltype1.C: New test. + +2021-02-02 Kyrylo Tkachov + + * gcc.target/aarch64/narrow_high-intrinsics.c: Adjust sqxtun2 scan. + +2021-02-02 Paul Thomas + + PR fortran/91862 + * gfortran.dg/pr91862.f90: New test. + +2021-02-02 Kyrylo Tkachov + + * gcc.target/aarch64/arg-type-diagnostics-1.c: Return result from foo. + +2021-02-02 Jakub Jelinek + + PR tree-optimization/98848 + * gcc.dg/vect/pr98848.c: New test. + * gcc.dg/vect/pr92205.c: Remove xfail. + +2021-02-02 Jakub Jelinek + + PR tree-optimization/97960 + * g++.dg/torture/pr97960.C: New test. + +2021-02-02 Kito Cheng + + PR target/98743 + * g++.dg/opt/pr98743.C: New. + +2021-02-02 Christophe Lyon + + * gcc.target/arm/simd/mve-vorn.c: Add vorn tests. + +2021-02-02 Alexandre Oliva + + * gcc.dg/asan/nested-1.c: New. + +2021-02-02 David Malcolm + + PR analyzer/93355 + PR analyzer/96374 + * gcc.dg/analyzer/conditionals-3.c: Add "__analyzer_" + prefix to support subroutines where necessary. + * gcc.dg/analyzer/data-model-1.c: Likewise. + * gcc.dg/analyzer/feasibility-1.c (called_by_test_6a): New. + (test_6a): New. + * gcc.dg/analyzer/params.c: Add "__analyzer_" prefix to support + subroutines where necessary. + * gcc.dg/analyzer/pr96651-2.c: Likewise. + * gcc.dg/analyzer/signal-4b.c: Likewise. + * gcc.dg/analyzer/single-field.c: Likewise. + * gcc.dg/analyzer/torture/conditionals-2.c: Likewise. + +2021-02-02 David Malcolm + + PR analyzer/93355 + PR analyzer/96374 + * gcc.dg/analyzer/pr93355-localealias-feasibility-2.c: New test. + * gcc.dg/analyzer/pr93355-localealias-feasibility-3.c: New test. + +2021-02-01 Kyrylo Tkachov + + * gcc.target/aarch64/narrow_high-intrinsics.c: Adjust rshrn2 + assembly scan. + +2021-02-01 David Malcolm + + PR analyzer/98918 + * gcc.dg/analyzer/pr98918.c: New test. + +2021-02-01 Sergei Trofimovich + + PR tree-optimization/98499 + * g++.dg/pr98499.C: new test. + +2021-02-01 Kyrylo Tkachov + + * gcc.target/aarch64/simd/vmovl_high_1.c: New test. + +2021-02-01 Martin Sebor + + PR middle-end/97172 + * gcc.dg/pr97172.c: New test. + +2021-02-01 Martin Sebor + + PR c++/98835 + * g++.dg/Wclass-memaccess-6.C: New test. + +2021-02-01 Patrick Palka + + PR c++/98295 + * g++.dg/cpp0x/constexpr-98295.C: New test. + +2021-02-01 Marek Polacek + + PR c++/98355 + * g++.dg/ext/builtin-has-attribute2.C: New test. + +2021-02-01 Jason Merrill + + PR c++/98570 + * g++.dg/cpp0x/alias-decl-targ1.C: New test. + +2021-02-01 Jonathan Wright + + * gcc.target/aarch64/advsimd-intrinsics/vmlXl_high.inc: + New test template. + * gcc.target/aarch64/advsimd-intrinsics/vmlXl_high_lane.inc: + New test template. + * gcc.target/aarch64/advsimd-intrinsics/vmlXl_high_laneq.inc: + New test template. + * gcc.target/aarch64/advsimd-intrinsics/vmlXl_high_n.inc: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vmlal_high.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vmlal_high_lane.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vmlal_high_laneq.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vmlal_high_n.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vmlsl_high.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vmlsl_high_lane.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vmlsl_high_laneq.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vmlsl_high_n.c: + New test. + +2021-02-01 Jonathan Wright + + * gcc.target/aarch64/advsimd-intrinsics/vmull_high.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vmull_high_lane.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vmull_high_laneq.c: + New test. + * gcc.target/aarch64/advsimd-intrinsics/vmull_high_n.c: + New test. + +2021-02-01 Tamar Christina + + * gcc.target/aarch64/advsimd-intrinsics/smlal-smlsl-mull-optimized.c: New test. + +2021-02-01 Patrick Palka + + PR c++/84494 + * g++.dg/cpp1y/constexpr-84494.C: New test. + +2021-02-01 Xing GUO + + * gcc.target/riscv/attribute-18.c: Add -mriscv-attribute option. + +2021-02-01 Xionghu Luo + + * gcc.target/powerpc/pr79251.p8.c: Update store count regex. + * gcc.target/powerpc/pr79251.p9.c: Likewise. + +2021-01-31 Iain Sandoe + + * c-c++-common/attr-used-5.c: Skip for Darwin. + * c-c++-common/attr-used-6.c: Likewise. + * c-c++-common/attr-used-7.c: Likewise. + * c-c++-common/attr-used-8.c: Likewise. + * c-c++-common/attr-used-9.c: Likewise. + +2021-01-30 David Edelsohn + + * gcc.target/powerpc/pr79251.p8.c: Update ilp32 store counts. + * gcc.target/powerpc/pr79251.p9.c: Same. + +2021-01-30 Jakub Jelinek + + * gcc.target/i386/20051216-1.c: New test. + +2021-01-30 Jakub Jelinek + + PR testsuite/98243 + * gcc.dg/gomp/simd-2.c: Add -msse2 on x86. Restrict + scan-tree-dump-times to x86 and aarch64 targets. + * gcc.dg/gomp/simd-3.c: Likewise. + +2021-01-29 Michael Meissner + + PR testsuite/98870 + * gcc.target/powerpc/ppc-fortran/ieee128-math.f90: Fix the + expected result. + +2021-01-29 Will Schmidt + + * gcc.target/powerpc/pr91903.c: Fix dg-require stanza. + +2021-01-29 Vladimir N. Makarov + + PR target/97701 + * gcc.target/aarch64/pr97701.c: Modify. + +2021-01-29 David Malcolm + + * gcc.dg/analyzer/combined-conditionals-1.c: New test. + +2021-01-29 Vladimir N. Makarov + + PR target/97701 + * gcc.target/aarch64/pr97701.c: New. + +2021-01-29 Will Schmidt + + * gcc.target/powerpc/pr91903.c: New test. + * gcc.target/powerpc/builtins-1.fold.h: Update. + * gcc.target/powerpc/builtins-2.c: Update. + +2021-01-29 Nathan Sidwell + + PR c++/98843 + * g++.dg/modules/pr98843_a.C: New. + * g++.dg/modules/pr98843_b.H: New. + * g++.dg/modules/pr98843_c.C: New. + +2021-01-29 Kyrylo Tkachov + + * gcc.target/aarch64/simd/vaddlv_1.c: New test. + +2021-01-29 Bin Cheng + Richard Biener + + PR tree-optimization/97627 + * g++.dg/pr97627.C: New testcase. + +2021-01-29 Jakub Jelinek + + PR target/98849 + * gcc.c-torture/compile/pr98849.c: New test. + +2021-01-29 Jakub Jelinek + + PR debug/98331 + * gcc.dg/pr98331.c: New test. + +2021-01-29 Xionghu Luo + + * gcc.target/powerpc/pr79251.p8.c: Move TEST_VEC_INSERT_ALL + to ... + * gcc.target/powerpc/pr79251.h: ...this. + * gcc.target/powerpc/pr79251.p9.c: Likewise. + * gcc.target/powerpc/pr79251-run.c: Move run_test to pr79251.h. + Rename to... + * gcc.target/powerpc/pr79251-run.p8.c: ...this. + * gcc.target/powerpc/pr79251-run.p9.c: New test. + +2021-01-29 Marek Polacek + + PR c++/96137 + * g++.dg/parse/error63.C: New test. + +2021-01-28 Jakub Jelinek + + PR c++/98841 + * g++.dg/warn/effc5.C: New test. + +2021-01-28 Marek Polacek + + PR c++/94775 + * g++.dg/cpp0x/alignas19.C: New test. + * g++.dg/warn/Warray-bounds15.C: New test. + +2021-01-28 Christophe Lyon + + PR target/98730 + * gcc.target/arm/simd/vceqzq_p64.c: Update expected result. + +2021-01-28 David Edelsohn + + * gfortran.dg/ISO_Fortran_binding_18.c: Include + ../../../libgfortran/ISO_Fortran_binding.h rather than + ISO_Fortran_binding.h. + +2021-01-28 Michael Meissner + + * gcc.target/powerpc/float128-longdouble-math.c: New test. + * gcc.target/powerpc/float128-longdouble-stdio.c: New test. + * gcc.target/powerpc/float128-math.c: Adjust test for new name + being generated. Add support for running test on power10. Add + support for running if long double defaults to 64-bits. + +2021-01-28 Jakub Jelinek + + PR c++/33661 + PR c++/98847 + * g++.target/i386/pr98847.C: New test. + +2021-01-28 Kyrylo Tkachov + + * gcc.target/aarch64/narrow_high-intrinsics.c: Fix shrn2 scan. + +2021-01-28 Nathan Sidwell + + PR c++/98770 + * g++.dg/modules/pr98770_a.C: New. + * g++.dg/modules/pr98770_b.C: New. + +2021-01-28 Harald Anlauf + + PR fortran/86470 + * gfortran.dg/gomp/pr86470.f90: New test. + +2021-01-28 Xionghu Luo + + PR target/98827 + * gcc.target/powerpc/fold-vec-insert-char-p8.c: Adjust ilp32. + * gcc.target/powerpc/fold-vec-insert-char-p9.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-double.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-float-p8.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-float-p9.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-int-p8.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-int-p9.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-longlong.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-short-p8.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-short-p9.c: Likewise. + * gcc.target/powerpc/pr79251.p8.c: Likewise. + * gcc.target/powerpc/pr79251.p9.c: Likewise. + * gcc.target/powerpc/vsx-builtin-7.c: Likewise. + * gcc.target/powerpc/pr79251-run.c: Build and run with vsx + option. + +2021-01-28 Xing GUO + + * gcc.target/riscv/attribute-18.c: New test. + +2021-01-27 Harris Snyder + + * gfortran.dg/ISO_Fortran_binding_18.c: New test. + * gfortran.dg/ISO_Fortran_binding_18.f90: New test. + +2021-01-27 Vladimir N. Makarov + + PR rtl-optimization/97684 + * gcc.target/i386/pr97684.c: New. + +2021-01-27 Jason Merrill + + PR c++/97874 + * g++.dg/lookup/using4.C: No error in C++20. + * g++.dg/cpp0x/decltype37.C: Adjust message. + * g++.dg/template/crash75.C: Adjust message. + * g++.dg/template/crash76.C: Adjust message. + * g++.dg/cpp0x/inh-ctor36.C: New test. + * g++.dg/cpp1z/inh-ctor39.C: New test. + * g++.dg/cpp2a/using-enum-7.C: New test. + +2021-01-27 Jakub Jelinek + + PR target/98853 + * gcc.c-torture/execute/pr98853-1.c: New test. + * gcc.c-torture/execute/pr98853-2.c: New test. + +2021-01-27 Richard Biener + + PR tree-optimization/98854 + * gcc.dg/vect/bb-slp-pr98854.c: New testcase. + +2021-01-27 Paul Thomas + + PR fortran/93924 + PR fortran/93925 + * gfortran.dg/proc_ptr_52.f90 : New test. + +2021-01-27 liuhongt + + PR target/98833 + * gcc.target/i386/pr98833.c: New test. + +2021-01-27 Jakub Jelinek + + * gcc.target/i386/m128-check.h (CHECK_EXP): Remove + optimize ("no-strict-aliasing") attribute. + * gcc.target/i386/sse-andnps-1.c (TEST): Copy e into float[4] + array to avoid violating TBAA. + * gcc.target/i386/sse2-andpd-1.c (TEST): Copy e.d into double[2] + array to avoid violating TBAA. + * gcc.target/i386/sse-andps-1.c (TEST): Copy e.f into float[4] + array to avoid violating TBAA. + * gcc.target/i386/sse2-andnpd-1.c (TEST): Copy e into double[2] + array to avoid violating TBAA. + +2021-01-27 Paul Thomas + + PR fortran/98472 + * gfortran.dg/elemental_function_5.f90 : New test. + +2021-01-27 Jakub Jelinek + + PR tree-optimization/97260 + * gcc.dg/tree-ssa/pr97260.c: New test. + +2021-01-26 Paul Fee + + * lib/target-supports.exp (check_effective_target_c++2a): + Check for C++2a or C++23. + (check_effective_target_c++20_down): New. + (check_effective_target_c++23_only): New. + (check_effective_target_c++23): New. + * g++.dg/cpp23/cplusplus.C: New. + +2021-01-26 Jason Merrill + + PR c++/97474 + * g++.dg/torture/pr97474.C: New test. + +2021-01-26 Jason Merrill + + PR c++/97566 + * g++.dg/cpp2a/no_unique_address10.C: New test. + * g++.dg/cpp2a/no_unique_address9.C: New test. + +2021-01-26 Jakub Jelinek + + * gcc.target/powerpc/m128-check.h (CHECK_EXP): Remove + optimize ("no-strict-aliasing") attribute. + * gcc.target/powerpc/sse-andnps-1.c (TEST): Copy e into float[4] + array to avoid violating TBAA. + * gcc.target/powerpc/sse2-andpd-1.c (TEST): Copy e.d into double[2] + array to avoid violating TBAA. + * gcc.target/powerpc/sse-andps-1.c (TEST): Copy e.f into float[4] + array to avoid violating TBAA. + * gcc.target/powerpc/sse2-andnpd-1.c (TEST): Copy e into double[2] + array to avoid violating TBAA. + +2021-01-26 Jakub Jelinek + + PR target/98681 + * gcc.c-torture/execute/pr98681.c: New test. + +2021-01-26 Thomas Koenig + + PR fortran/67539 + * gfortran.dg/elemental_assignment_1.f90: New test. + +2021-01-26 Tobias Burnus + + * g++.dg/modules/modules.exp: Remove unused CXX_MODULE_PATH; + add previously missing space in '$ident link'. + +2021-01-26 Jakub Jelinek + + PR middle-end/98807 + * gcc.dg/pr98807.c: Add -Wno-psabi -w to dg-options. + +2021-01-26 Alexandre Oliva + + * gnat.dg/asan1.adb: New test. + * gnat.dg/asan1_pkg.ads: New additional source. + +2021-01-25 Harald Anlauf + + PR fortran/70070 + * gfortran.dg/pr70070.f90: New test. + +2021-01-25 Martin Sebor + + PR c++/98646 + * g++.dg/warn/Wnonnull5.C: Adjust text of an expected warning. + * g++.dg/warn/Wnonnull10.C: New test. + * g++.dg/warn/Wnonnull9.C: New test. + +2021-01-25 Thomas Koenig + + * gfortran.dg/associate_57.f90: New test. + +2021-01-25 Thomas Koenig + + PR fortran/96843 + * gfortran.dg/interface_assignment_7.f90: New test. + +2021-01-25 Jason Merrill + + PR c++/98463 + * g++.dg/cpp2a/no_unique_address8.C: New test. + +2021-01-25 Richard Biener + + PR middle-end/98807 + * gcc.dg/pr98807.c: New testcase. + +2021-01-25 Eric Botcazou + + * gnat.dg/thunk2.adb, gnat.dg/thunk2.ads: New test. + * gnat.dg/thunk2_pkg.ads: New helper. + +2021-01-25 Steve Kargl + + PR fortran/98517 + * gfortran.dg/charlen_18.f90 : New test. + +2021-01-23 Anthony Sharp + + * g++.dg/lookup/scoped1.C: Modified testcase to run successfully + with changes. + * g++.dg/tc1/dr142.C: Same as above. + * g++.dg/tc1/dr52.C: Same as above. + * g++.old-deja/g++.brendan/visibility6.C: Same as above. + * g++.old-deja/g++.brendan/visibility8.C: Same as above. + * g++.old-deja/g++.jason/access8.C: Same as above. + * g++.old-deja/g++.law/access4.C: Same as above. + * g++.old-deja/g++.law/visibility12.C: Same as above. + * g++.old-deja/g++.law/visibility4.C: Same as above. + * g++.old-deja/g++.law/visibility8.C: Same as above. + * g++.old-deja/g++.other/access4.C: Same as above. + +2021-01-23 Patrick Palka + + PR c++/88548 + PR c++/97399 + * g++.dg/cpp0x/this2.C: New test. + * g++.dg/template/pr97399.C: New test. + +2021-01-23 David Edelsohn + + * gcc.target/powerpc/fold-vec-insert-char-p9.c: Adjust ilp32. + * gcc.target/powerpc/fold-vec-insert-float-p9.c: Same. + * gcc.target/powerpc/fold-vec-insert-int-p9.c: Same. + * gcc.target/powerpc/fold-vec-insert-longlong.c: Same. + * gcc.target/powerpc/fold-vec-insert-short-p9.c: Same. + * gcc.target/powerpc/pr79251.p9.c: Same. + +2021-01-22 Marek Polacek + + PR c++/96623 + * g++.dg/cpp0x/noexcept64.C: New test. + +2021-01-22 David Edelsohn + + * g++.dg/eh/spbp.C: Remove skip on AIX. + +2021-01-22 Jakub Jelinek + + * gcc.target/powerpc/m128-check.h (CHECK_EXP, CHECK_FP_EXP): Fix a + typo, UINON_TYPE to UNION_TYPE. + +2021-01-22 Jakub Jelinek + + * gcc.target/i386/m128-check.h (CHECK_EXP, CHECK_FP_EXP): Fix a typo, + UINON_TYPE to UNION_TYPE. + * gcc.target/i386/m256-check.h (CHECK_FP_EXP): Likewise. + * gcc.target/i386/m512-check.h (CHECK_ROUGH_EXP): Likewise. + +2021-01-22 Jakub Jelinek + + * gcc.target/powerpc/m128-check.h (check_##UINON_TYPE): Add + optimize ("no-strict-aliasing") attribute. + +2021-01-22 Jason Merrill + + PR c++/98744 + * g++.dg/init/elide7.C: New test. + +2021-01-22 Jakub Jelinek + + PR sanitizer/95693 + * g++.dg/ubsan/pr95693.C: New test. + +2021-01-22 Marek Polacek + + PR c++/98545 + * g++.dg/abi/mangle76.C: New test. + +2021-01-22 Paul Thomas + + PR fortran/98565 + * gfortran.dg/associated_target_7.f90 : New test. + +2021-01-22 Martin Jambor + + PR tree-optimization/47059 + * gcc.dg/tree-ssa/pr47059.c: New test. + +2021-01-22 Kyrylo Tkachov + + PR tree-optimization/98766 + * gcc.dg/pr98766.c: New test. + +2021-01-22 Nathan Sidwell + + PR testsuite/98795 + * g++.dg/modules/modules.exp (module_cmi_p): Avoid + embedded absolute paths. + (module_do_it): Append $std to test name. + +2021-01-22 Richard Biener + + PR middle-end/98793 + * gcc.dg/pr98793.c: New testcase. + +2021-01-22 Xionghu Luo + + * gcc.target/powerpc/pr79251.p8.c: New test. + * gcc.target/powerpc/fold-vec-insert-char-p8.c: Adjust + instruction counts. + * gcc.target/powerpc/fold-vec-insert-char-p9.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-double.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-float-p8.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-float-p9.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-int-p8.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-int-p9.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-longlong.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-short-p8.c: Likewise. + * gcc.target/powerpc/fold-vec-insert-short-p9.c: Likewise. + * gcc.target/powerpc/vsx-builtin-7.c: Likewise. + +2021-01-22 Xionghu Luo + + * gcc.target/powerpc/pr79251.p9.c: New test. + * gcc.target/powerpc/pr79251-run.c: New test. + * gcc.target/powerpc/pr79251.h: New header. + +2021-01-22 Richard Biener + + PR middle-end/98773 + * gcc.dg/torture/pr98773.c: New testcase. + +2021-01-22 Jakub Jelinek + + PR tree-optimization/90248 + * gcc.dg/tree-ssa/copy-sign-1.c: Don't expect any copysign + builtins. + * gcc.dg/pr90248.c: New test. + +2021-01-22 Jakub Jelinek + + PR tree-optimization/98255 + * gcc.dg/pr98255.c: New test. + +2021-01-22 Richard Biener + + PR tree-optimization/98786 + * gcc.dg/torture/pr98786.c: New testcase. + +2021-01-22 Prathamesh Kulkarni + + PR target/98636 + * gcc.target/arm/pr98636.c: New test. + +2021-01-22 liuhongt + + PR target/96891 + PR target/98348 + * gcc.target/i386/avx512bw-pr96891-1.c: New test. + * gcc.target/i386/avx512f-pr96891-1.c: New test. + * gcc.target/i386/avx512f-pr96891-2.c: New test. + * gcc.target/i386/avx512f-pr96891-3.c: New test. + * g++.target/i386/avx512f-pr96891-1.C: New test. + * gcc.target/i386/bitwise_mask_op-3.c: Adjust testcase. + +2021-01-22 Marek Polacek + + PR c++/97966 + * g++.dg/cpp0x/noexcept63.C: New test. + +2021-01-21 David Edelsohn + + * g++.dg/cpp2a/lambda-uneval1.C: Ignore preceding "l" and + intervening period. + * g++.dg/cpp2a/lambda-uneval5.C: Ignore preceding "l" and + explicitly check for intervening space, tab or period. + +2021-01-21 Vladimir N. Makarov + + PR rtl-optimization/98777 + * gcc.target/riscv/pr98777.c: New. + +2021-01-21 Patrick Palka + + PR c++/71879 + * g++.dg/cpp0x/decltype-71879.C: New test. + +2021-01-21 Jakub Jelinek + + PR c++/98672 + * g++.dg/cpp1y/constexpr-98672.C: New test. + +2021-01-21 Andrea Corallo + + PR target/96372 + * lib/target-supports.exp + (check_effective_target_arm_thumb2_no_arm_v8_1_lob): Define proc. + * gcc.target/arm/ivopts.c: Use target + 'arm_thumb2_no_arm_v8_1_lob'. + +2021-01-21 Nathan Sidwell + + PR c++/98530 + * g++.dg/modules/stat-mem-1.h: New. + * g++.dg/modules/stat-mem-1_a.H: New. + * g++.dg/modules/stat-mem-1_b.C: New. + +2021-01-21 Paul Thomas + + PR fortran/96320 + * gfortran.dg/module_procedure_5.f90 : New test. + * gfortran.dg/module_procedure_6.f90 : New test. + +2021-01-21 Richard Biener + + PR testsuite/97299 + * gcc.dg/vect/slp-reduc-3.c: Amend target selectors. + +2021-01-21 Richard Biener + + PR testsuite/98241 + * gcc.dg/pr78973.c: Remove ilp32 XFAIL. + +2021-01-21 Richard Biener + + * gcc.dg/Walloca-2.c: Un-XFAIL. + +2021-01-21 liuhongt + + PR rtl-optimization/98694 + * gcc.target/i386/pr98694.c: New test. + +2021-01-20 Andrew MacLeod + + * gcc.dg/torture/ftrapv-2.c: Make overflow instruction unremovable. + +2021-01-20 Kyrylo Tkachov + + * gcc.target/aarch64/vdup_lane_2.c: Scan for fmov rather than + dup. + +2021-01-20 Vladimir N. Makarov + + PR rtl-optimization/98722 + * g++.target/s390/pr98722.C: New. + +2021-01-20 Eugene Rozenfeld + + PR tree-optimization/96674 + * gcc.dg/pr96674.c: New tests. + +2021-01-20 Patrick Palka + + PR c++/95434 + * g++.dg/cpp2a/lambda-generic9.C: New test. + +2021-01-20 Patrick Palka + + PR c++/82613 + * g++.dg/parse/access12.C: New test. + * g++.dg/template/access35.C: New test. + +2021-01-20 Richard Sandiford + + PR tree-optimization/98535 + * gcc.target/aarch64/sve/pr98535.c: New file. + +2021-01-20 Tobias Burnus + + PR fortran/98763 + * gfortran.dg/gomp/task-detach-1.f90: Use integer(1) to avoid + missing diagnostic issues with c_intptr_t == default integer kind. + +2021-01-20 Jakub Jelinek + + PR tree-optimization/98721 + * gcc.dg/pr98721-1.c: New test. + * gcc.dg/pr98721-2.c: New test. + +2021-01-20 Richard Biener + + PR tree-optimization/98758 + * gcc.dg/torture/pr98758.c: New testcase. + +2021-01-20 Jakub Jelinek + + PR c++/98742 + * c-c++-common/gomp/task-detach-2.c: New test. + +2021-01-20 Tobias Burnus + + PR fortran/98757 + PR fortran/98476 + * gfortran.dg/gomp/is_device_ptr-2.f90: Fix dg-error. + +2021-01-19 David Edelsohn + + * gcc.dg/cpp/ucs.c: Expect Invalid warning for 2byte wchar. + * gcc.dg/debug/dwarf2/inline6.c: Remove skip AIX. + * gcc.dg/debug/dwarf2/lang-c11.c: Remove skip AIX. + * gcc.dg/debug/dwarf2/pr41445-7.c: Remove skip AIX. + * gcc.dg/debug/dwarf2/pr41445-8.c: Remove skip AIX. + * gcc.dg/tree-ssa/builtin-sprintf-warn-20.c: Require 4byte wchar. + +2021-01-19 Marek Polacek + + PR c++/98659 + * g++.dg/template/deduce8.C: New test. + +2021-01-19 Marek Polacek + + PR c++/98687 + * g++.dg/lookup/using64.C: New test. + * g++.dg/lookup/using65.C: New test. + +2021-01-19 Martin Sebor + + PR middle-end/98664 + * gcc.dg/Wvla-larger-than-4.c: Adjust expected output. + * gcc.dg/plugin/diagnostic-test-inlining-3.c: Same. + * g++.dg/warn/Wfree-nonheap-object-5.C: New test. + * gcc.dg/Wfree-nonheap-object-4.c: New test. + +2021-01-19 Patrick Palka + + PR c++/41437 + PR c++/58993 + * g++.dg/opt/pr87974.C: Adjust. + * g++.dg/template/access34.C: New test. + * g++.dg/template/friend68.C: New test. + * g++.dg/template/friend69.C: New test. + +2021-01-19 Marek Polacek + + PR c++/98333 + * g++.dg/cpp0x/noexcept62.C: New test. + +2021-01-19 Will Schmidt + + * gcc.target/powerpc/pr88233.c: Update dg- stanzas. + +2021-01-19 Kyrylo Tkachov + + * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h + (CHECK_CUMULATIVE_SAT): Delete. + (CHECK_CUMULATIVE_SAT_NAMED): Likewise. Deleted related + variables. + * gcc.target/aarch64/advsimd-intrinsics/binary_sat_op.inc: + Remove uses of the above. + * gcc.target/aarch64/advsimd-intrinsics/unary_sat_op.inc: + Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqabs.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqadd.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmlXl.inc: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmlXl_lane.inc: + Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmlXl_n.inc: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmlal.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmlal_lane.c: + Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmlal_n.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmlsl.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmlsl_lane.c: + Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmlsl_n.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmulh.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmulh_lane.c: + Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmulh_n.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmull.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmull_lane.c: + Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqdmull_n.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqmovn.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqmovun.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqneg.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqrdmlXh.inc: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqrdmlXh_lane.inc: + Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqrdmlah.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqrdmlah_lane.c: + Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqrdmlsh.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqrdmlsh_lane.c: + Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqrdmulh.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_lane.c: + Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_n.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqrshl.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqrshrn_n.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqrshrun_n.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqshl.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqshl_n.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqshlu_n.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqshrn_n.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqshrun_n.c: Likewise. + * gcc.target/aarch64/advsimd-intrinsics/vqsub.c: Likewise. + +2021-01-19 Jeff Law + + * gcc.dg/debug/dwarf2/dwarf-float.c: Force dwarf-4 generation + and update expected output. + +2021-01-19 Richard Biener + + PR ipa/98330 + * g++.dg/pr98330.C: New testcase. + * gcc.dg/pr98330.c: Likewise. + +2021-01-19 Richard Biener + + PR ipa/97673 + * gfortran.dg/pr97673.f90: New testcase. + +2021-01-19 Tobias Burnus + + PR fortran/98476 + * gfortran.dg/gomp/map-3.f90: Update expected scan-dump-tree. + * gfortran.dg/gomp/is_device_ptr-2.f90: New test. + * gfortran.dg/gomp/use_device_ptr-1.f90: New test. + +2021-01-19 Martin Jambor + + PR ipa/98690 + * g++.dg/ipa/pr98690.C: New test. + +2021-01-18 Jeff Law + + * gcc.dg/debug/dwarf2/pr41445-7.c: Fix expected output. + +2021-01-18 Patrick Palka + + * g++.dg/cpp1z/class-deduction77.C: New test. + +2021-01-18 Jakub Jelinek + + PR tree-optimization/98727 + * gcc.c-torture/execute/pr98727.c: New test. + +2021-01-18 John David Anglin + + PR testsuite/97987 + * gcc.c-torture/compile/asmgoto-2.c: Skip on hppa. + * gcc.c-torture/compile/asmgoto-5.c: Likewise. + +2021-01-18 John David Anglin + + * g++.dg/no-stack-protector-attr-3.C: Don't compile on hppa*-*-*. + * g++.dg/no-stack-protector-attr.C: Likewise. + +2021-01-18 David Malcolm + + * gcc.dg/analyzer/attr-malloc-1.c: New test. + * gcc.dg/analyzer/attr-malloc-2.c: New test. + * gcc.dg/analyzer/attr-malloc-4.c: New test. + * gcc.dg/analyzer/attr-malloc-5.c: New test. + * gcc.dg/analyzer/attr-malloc-6.c: New test. + * gcc.dg/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c: New test. + * gcc.dg/analyzer/attr-malloc-misuses.c: New test. + +2021-01-18 Richard Biener + + PR testsuite/97494 + * gcc.dg/vect/slp-11b.c: Adjust. + +2021-01-18 Christophe Lyon + + PR target/71233 + * gcc.target/arm/simd/vceqz_p64.c: Use arm_crypto options. + * gcc.target/arm/simd/vceqzq_p64.c: Likewise. + +2021-01-18 Richard Biener + + PR testsuite/97299 + * gcc.dg/vect/slp-reduc-3.c: Guard VEC_PERM_EXPR scan. + +2021-01-18 David Edelsohn + + * gcc.target/powerpc/fold-vec-extract-char.p7.c: Adjust addi count. + * gcc.target/powerpc/fold-vec-extract-double.p7.c: Same. + * gcc.target/powerpc/fold-vec-extract-float.p7.c: Same. + * gcc.target/powerpc/fold-vec-extract-float.p8.c: Same. + * gcc.target/powerpc/fold-vec-extract-int.p7.c: Same. + * gcc.target/powerpc/fold-vec-extract-int.p8.c: Same. + * gcc.target/powerpc/fold-vec-extract-short.p7.c: Same. + * gcc.target/powerpc/fold-vec-extract-short.p8.c: Same. + * gcc.target/powerpc/sse-andnps-1.c: Restrict to LE. + * gcc.target/powerpc/sse-movhps-1.c: Restrict to LE. + * gcc.target/powerpc/sse-movlps-1.c: Restrict to LE. + * gcc.target/powerpc/sse2-andnpd-1.c: Restrict to LE. + +2021-01-17 David Edelsohn + + * g++.dg/debug/dwarf2/inline-ns-2.C: Skip on AIX. + * g++.dg/debug/dwarf2/inline-var-2.C: Skip on AIX. + * g++.dg/debug/dwarf2/inline-var-3.C: Skip on AIX. + * g++.dg/debug/dwarf2/lang-cpp11.C: Skip on AIX. + * g++.dg/debug/dwarf2/lang-cpp14.C: Skip on AIX. + * g++.dg/debug/dwarf2/lang-cpp17.C: Skip on AIX. + * g++.dg/debug/dwarf2/lang-cpp20.C: Skip on AIX. + * gcc.dg/debug/dwarf2/inline6.c: Skip on AIX. + * gcc.dg/debug/dwarf2/lang-c11.c: Skip on AIX. + * gcc.dg/debug/dwarf2/pr41445-7.c: Skip on AIX. + * gcc.dg/debug/dwarf2/pr41445-8.c: Skip on AIX. + +2021-01-17 Martin Jambor + + PR ipa/98222 + * gcc.dg/ipa/pr98222.c: New test. + +2021-01-16 Jakub Jelinek + + * gfortran.dg/iso_fortran_binding_uint8_array_driver.c: Include + ../../../libgfortran/ISO_Fortran_binding.h rather than + ISO_Fortran_binding.h. + +2021-01-16 Kwok Cheung Yeung + + * c-c++-common/gomp/task-detach-1.c: New. + * g++.dg/gomp/task-detach-1.C: New. + * gcc.dg/gomp/task-detach-1.c: New. + * gfortran.dg/gomp/task-detach-1.f90: New. + +2021-01-16 Jakub Jelinek + + PR tree-optimization/96669 + * gcc.dg/tree-ssa/pr96669-1.c: Adjust regexp. + * gcc.dg/tree-ssa/pr96669-2.c: New test. + +2021-01-16 Jakub Jelinek + + PR tree-optimization/96271 + * gcc.target/i386/pr96271.c: New test. + +2021-01-15 Carl Love + + * gcc.target/powerpc/builtins-1-p10-runnable.c: New test file. + +2021-01-15 Harris Snyder + + * gfortran.dg/iso_fortran_binding_uint8_array.f90: New test. + * gfortran.dg/iso_fortran_binding_uint8_array_driver.c: New test. + +2021-01-15 Nathan Sidwell + + PR c++/98538 + * g++.dg/template/pr98538.C: New. + +2021-01-15 Nathan Sidwell + + PR preprocessor/95253 + * g++.dg/modules/dep-1_a.C: Adjust expected output. + * g++.dg/modules/dep-1_b.C: Likewise. + * g++.dg/modules/dep-2.C: Likewise. + +2021-01-15 Jakub Jelinek + + PR tree-optimization/96669 + * gcc.dg/tree-ssa/pr96669-1.c: New test. + +2021-01-15 Jakub Jelinek + + PR tree-optimization/96681 + * gcc.dg/tree-ssa/pr96681.c: New test. + +2021-01-15 Jason Merrill + + PR c++/98642 + * g++.dg/cpp1z/elide5.C: New test. + +2021-01-15 Jason Merrill + + * g++.dg/cpp1z/elide4.C: New test. + +2021-01-15 Jason Merrill + + PR c++/63707 + * g++.dg/cpp0x/initlist-array13.C: New test. + +2021-01-15 Alexandre Oliva + + * gcc.dg/analyzer/alloca-leak.c: Drop alloca.h, use builtin. + * gcc.dg/analyzer/data-model-1.c: Likewise. + * gcc.dg/analyzer/malloc-1.c: Likewise. + * gcc.dg/analyzer/malloc-paths-8.c: Likewise. + +2021-01-15 Jakub Jelinek + + PR tree-optimization/96671 + * gcc.dg/tree-ssa/pr96671-1.c: New test. + * gcc.dg/tree-ssa/pr96671-2.c: New test. + +2021-01-15 Jakub Jelinek + + PR tree-optimization/98597 + * gcc.dg/uninit-38.c: Expect a space in between type name and asterisk. + Expect for now a (char *) cast for VLAs. + * gcc.dg/uninit-40.c: New test. + +2021-01-15 Nathan Sidwell + + PR c++/98591 + * g++.dg/modules/pr98591.H: New file. + +2021-01-15 Richard Sandiford + + PR target/88836 + * gcc.target/aarch64/sve/acle/general/ldff1_8.c: New test. + * gcc.target/aarch64/sve/ptest_1.c: Likewise. + +2021-01-15 Marius Hillenbrand + + * gcc.target/s390/s390.exp: Call lib atomic-dg.exp to link + libatomic into testcases in gcc.target/s390/md. + * gcc.target/s390/md/atomic_exchange-1.c: Remove no unnecessary + -latomic. + +2021-01-15 Christophe Lyon + + PR target/71233 + * gcc.target/aarch64/advsimd-intrinsics/p64_p128.c: Add tests for + vceqz_p64, vceqq_p64 and vceqzq_p64. + * gcc.target/arm/simd/vceqz_p64.c: New test. + * gcc.target/arm/simd/vceqzq_p64.c: New test. + +2021-01-15 Christophe Lyon + + Revert: + 2021-01-15 Christophe Lyon + + PR target/71233 + * gcc.target/aarch64/advsimd-intrinsics/p64_p128.c: Add tests for + vceqz_p64, vceqq_p64 and vceqzq_p64. + +2021-01-15 Martin Liska + + * lib/gcov.exp: Use 'env python3' for execution of pytests. + Check that pytest accepts all needed options first. + Improve formatting of PASS/FAIL lines. + +2021-01-15 Richard Biener + + PR testsuite/96147 + * gcc.dg/vect/bb-slp-32.c: Align p. + +2021-01-15 Richard Biener + + PR testsuite/96147 + * gcc.dg/vect/bb-slp-9.c: Scan for a vector load transform. + +2021-01-15 Richard Biener + + PR testsuite/96147 + * gcc.dg/vect/slp-45.c: Key scanning on + vect_hw_misalign. + +2021-01-15 Richard Biener + + PR testsuite/96147 + * gcc.dg/vect/slp-43.c: Remove ! vect_hw_misalign scan. + +2021-01-15 Christophe Lyon + + PR target/71233 + * gcc.target/aarch64/advsimd-intrinsics/p64_p128.c: Add tests for + vceqz_p64, vceqq_p64 and vceqzq_p64. + +2021-01-15 Richard Biener + + PR testsuite/96098 + * gcc.dg/vect/bb-slp-pr68892.c: Remove. + +2021-01-15 Christophe Lyon + + * gcc.target/arm/simd/mve-vshr.c: Add tests for vshr. + +2021-01-15 Christophe Lyon + + * gcc.target/arm/simd/mve-vshl.c: Add tests for vshl. + +2021-01-15 Richard Biener + + PR tree-optimization/98685 + * gcc.dg/vect/bb-slp-pr98685.c: New testcase. + +2021-01-15 Tamar Christina + + * gcc.dg/vect/complex/complex-mla-template.c: Fix sed. + * gcc.dg/vect/complex/complex-mls-template.c: Likewise. + +2021-01-14 David Malcolm + + * gcc.dg/plugin/diagnostic-test-show-locus-GCC_EXTRA_DIAGNOSTIC_OUTPUT-fixits-v1.c: + New file. + * gcc.dg/plugin/diagnostic-test-show-locus-GCC_EXTRA_DIAGNOSTIC_OUTPUT-fixits-v2.c: + New file. + * gcc.dg/plugin/plugin.exp (plugin_test_list): Add them. + +2021-01-14 Tamar Christina + + * gcc.dg/vect/complex/complex-mla-template.c: New test. + * gcc.dg/vect/complex/complex-mls-template.c: New test. + * gcc.dg/vect/complex/complex-mul-template.c: New test. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c: New test. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c: New test. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c: New test. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c: New test. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c: New test. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c: New test. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c: New test. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c: New test. + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c: New test. + * gcc.dg/vect/complex/fast-math-complex-mla-double.c: New test. + * gcc.dg/vect/complex/fast-math-complex-mla-float.c: New test. + * gcc.dg/vect/complex/fast-math-complex-mla-half-float.c: New test. + * gcc.dg/vect/complex/fast-math-complex-mls-double.c: New test. + * gcc.dg/vect/complex/fast-math-complex-mls-float.c: New test. + * gcc.dg/vect/complex/fast-math-complex-mls-half-float.c: New test. + * gcc.dg/vect/complex/fast-math-complex-mul-double.c: New test. + * gcc.dg/vect/complex/fast-math-complex-mul-float.c: New test. + * gcc.dg/vect/complex/fast-math-complex-mul-half-float.c: New test. + +2021-01-14 Marek Polacek + + * g++.dg/template/pr98372.C: Only run in C++14 and up. + +2021-01-14 Harald Anlauf + + * substr_10.f90: New test. + * substr_9.f90: New test. + +2021-01-14 Alexandre Oliva + + * gcc.dg/analyzer/sigsetjmp-5.c: Use sigjmp_buf. + * gcc.dg/analyzer/sigsetjmp-6.c: Likewise. + +2021-01-14 Alexandre Oliva + + * gcc.dg/analyzer/sensitive-1.c: Declare getpass. + +2021-01-14 Harald Anlauf + + PR fortran/98661 + * gfortran.dg/pr98661.f90: New test. + +2021-01-14 Harald Anlauf + + Revert: + 2021-01-14 Harald Anlauf + + PR fortran/98661 + * gfortran.dg/pr98661.f90: New test. + +2021-01-14 Harald Anlauf + + PR fortran/98661 + * gfortran.dg/pr98661.f90: New test. + +2021-01-14 Martin Liska + + * g++.dg/gcov/gcov-17.C: New test. + * g++.dg/gcov/test-gcov-17.py: New test. + +2021-01-14 H.J. Lu + + PR target/98667 + * gcc.target/i386/pr98667-1.c: New file. + * gcc.target/i386/pr98667-2.c: Likewise. + * gcc.target/i386/pr98667-3.c: Likewise. + +2021-01-14 Richard Biener + + PR tree-optimization/98674 + * gcc.dg/vect/pr98674.c: New testcase. + +2021-01-14 H.J. Lu + + PR target/98676 + * gcc.target/i386/pr95021-1.c: Add -mpreferred-stack-boundary=4 + -mno-stackrealign. + * gcc.target/i386/pr95021-3.c: Likewise. + +2021-01-14 Nathan Sidwell + + PR c++/98372 + * g++.dg/cpp0x/constexpr-52830.C: Restore dg-ice + * g++.dg/template/pr98372.C: New. + +2021-01-14 Jakub Jelinek + + PR target/98670 + * gcc.target/i386/pr98670.c: New test. + +2021-01-14 Jakub Jelinek + + PR tree-optimization/96688 + * gcc.dg/tree-ssa/pr96688.c: New test. + * gcc.dg/tree-ssa/reassoc-37.c: Adjust scan-tree-dump regex. + * gcc.target/i386/pr66821.c: Likewise. + +2021-01-14 Richard Sandiford + + * gcc.target/aarch64/sve/cost_model_11.c: New test. + * gcc.target/aarch64/sve/mask_struct_load_5.c: Use + -fno-vect-cost-model. + +2021-01-14 Kyrylo Tkachov + + * gcc.target/aarch64/narrow_high-intrinsics.c: Update uqxtn2 and + sqxtn2 scan-assembler-times. + +2021-01-14 Kyrylo Tkachov + + * gcc.target/aarch64/narrow_high-intrinsics.c: Adjust + scan-assembler-times for xtn2. + +2021-01-13 Marek Polacek + + PR c++/98231 + * g++.dg/lookup/using63.C: New test. + +2021-01-13 Jakub Jelinek + + PR tree-optimization/96691 + * gcc.dg/tree-ssa/pr96691.c: New test. + +2021-01-13 Richard Biener + + PR tree-optimization/92645 + * gcc.target/i386/pr92645-7.c: New testcase. + * gcc.dg/tree-ssa/ssa-fre-54.c: Adjust. + * gcc.dg/pr69047.c: Likewise. + +2021-01-13 Richard Sandiford + + * gcc.target/aarch64/sve/mls_2.c: New test. + * g++.target/aarch64/sve/cond_mls_1.C: Likewise. + * g++.target/aarch64/sve/cond_mls_2.C: Likewise. + * g++.target/aarch64/sve/cond_mls_3.C: Likewise. + * g++.target/aarch64/sve/cond_mls_4.C: Likewise. + * g++.target/aarch64/sve/cond_mls_5.C: Likewise. + +2021-01-13 Richard Sandiford + + * gcc.target/aarch64/sve/mla_2.c: New test. + * g++.target/aarch64/sve/cond_mla_1.C: Likewise. + * g++.target/aarch64/sve/cond_mla_2.C: Likewise. + * g++.target/aarch64/sve/cond_mla_3.C: Likewise. + * g++.target/aarch64/sve/cond_mla_4.C: Likewise. + * g++.target/aarch64/sve/cond_mla_5.C: Likewise. + +2021-01-13 Richard Biener + + PR tree-optimization/92645 + * gcc.target/i386/pr92645-6.c: New testcase. + +2021-01-13 Richard Sandiford + + * gcc.target/aarch64/sve/sel_1.c: Require aarch64_variant_pcs. + * gcc.target/aarch64/sve/sel_2.c: Likewise. + * gcc.target/aarch64/sve/sel_3.c: Likewise. + +2021-01-13 Jakub Jelinek + + PR target/95905 + * gcc.target/i386/pr95905-2.c: Use scan-assembler-times instead of + scan-assembler. Add tests with zero vector as first __builtin_shuffle + operand. + * gcc.target/i386/pr95905-3.c: New test. + * gcc.target/i386/pr95905-4.c: New test. + +2021-01-13 Martin Liska + + PR tree-optimization/98455 + * gcc.dg/tree-ssa/pr98455.c: New test. + +2021-01-13 Richard Biener + + PR tree-optimization/98640 + * gcc.dg/torture/pr98640.c: New testcase. + +2021-01-13 Jakub Jelinek + + PR target/96938 + * gcc.target/i386/pr96938.c: New test. + +2021-01-13 Jakub Jelinek + + PR target/95905 + * gcc.target/i386/pr95905-1.c: New test. + * gcc.target/i386/pr95905-2.c: New test. + +2021-01-13 Julian Brown + + * gcc.target/gcn/fpdiv.c: New test. + +2021-01-12 Martin Sebor + + PR c/98597 + PR c/98592 + * g++.dg/warn/Wuninitialized-13.C: New test. + gcc.dg/uninit-39.c: New test. + # + * gcc.dg/uninit-39.c: New file. + +2021-01-12 Christophe Lyon + + PR target/97875 + * gcc.target/arm/simd/mve-vneg.c: Update test. + +2021-01-12 Vladimir N. Makarov + + PR target/97969 + * gcc.target/arm/pr97969.c: New. + +2021-01-12 Patrick Palka + + PR c++/98611 + * g++.dg/cpp2a/concepts-ctad1.C: New test. + * g++.dg/cpp2a/concepts-ctad2.C: New test. + +2021-01-12 Richard Biener + + PR tree-optimization/98550 + * g++.dg/opt/pr98550.C: New testcase. + +2021-01-12 Jakub Jelinek + + PR tree-optimization/98629 + * gcc.c-torture/compile/pr98629.c: New test. + +2021-01-12 Jakub Jelinek + + PR tree-optimization/95731 + * gcc.dg/tree-ssa/pr95731.c: New test. + * gcc.c-torture/execute/pr95731.c: New test. + +2021-01-12 Marek Polacek + + PR c++/98620 + * g++.dg/warn/Wmissing-field-initializers-2.C: New test. + +2021-01-12 David Malcolm + + PR analyzer/98628 + * gcc.dg/analyzer/pr98628.c: New test. + +2021-01-11 Richard Sandiford + + * gcc.target/aarch64/sve/asrdiv_4.c: New test. + * gcc.target/aarch64/sve/cond_asrd_1.c: Likewise. + * gcc.target/aarch64/sve/cond_asrd_1_run.c: Likewise. + * gcc.target/aarch64/sve/cond_asrd_2.c: Likewise. + * gcc.target/aarch64/sve/cond_asrd_2_run.c: Likewise. + * gcc.target/aarch64/sve/cond_asrd_3.c: Likewise. + * gcc.target/aarch64/sve/cond_asrd_3_run.c: Likewise. + +2021-01-11 Richard Sandiford + + * g++.target/aarch64/sve/cond_bic_1.C: New test. + * g++.target/aarch64/sve/cond_bic_2.C: Likewise. + * g++.target/aarch64/sve/cond_bic_3.C: Likewise. + * g++.target/aarch64/sve/cond_bic_4.C: Likewise. + +2021-01-11 Richard Sandiford + + * gcc.target/aarch64/sve/mul_highpart_3.c: New test. + +2021-01-11 Richard Sandiford + + * g++.target/aarch64/sve/abd_1.C: New test. + * g++.target/aarch64/sve/cond_abd_1.C: Likewise. + * g++.target/aarch64/sve/cond_abd_2.C: Likewise. + * g++.target/aarch64/sve/cond_abd_3.C: Likewise. + * g++.target/aarch64/sve/cond_abd_4.C: Likewise. + +2021-01-11 Richard Sandiford + + * gcc.target/aarch64/sve/adr_6.c: New test. + +2021-01-11 Richard Sandiford + + * g++.target/aarch64/sve/cond_arith_1.C: New test. + * g++.target/aarch64/sve/cond_arith_2.C: Likewise. + * g++.target/aarch64/sve/cond_arith_3.C: Likewise. + * g++.target/aarch64/sve/cond_arith_4.C: Likewise. + * g++.target/aarch64/sve/cond_shift_1.C: New test. + * g++.target/aarch64/sve/cond_shift_2.C: Likewise. + * g++.target/aarch64/sve/cond_shift_3.C: Likewise. + * g++.target/aarch64/sve/cond_shift_4.C: Likewise. + +2021-01-11 Richard Sandiford + + PR testsuite/98602 + * g++.target/aarch64/sve/max_1.C: New test. + * g++.target/aarch64/sve/min_1.C: Likewise. + * gcc.target/aarch64/sve/mul_2.c: Likewise. + +2021-01-11 Richard Sandiford + + * gcc.target/aarch64/sve/shift_2.c: New test. + +2021-01-11 Jakub Jelinek + + PR c++/98481 + * g++.dg/abi/abi-tag24.C: New test. + +2021-01-11 Richard Biener + + PR tree-optimization/91403 + * gcc.dg/vect/pr91403.c: New testcase. + +2021-01-11 Bernd Edlinger + + PR testsuite/98225 + * gcc.misc-tests/outputs.exp: Unset MAKEFLAGS. + Expect .ld1_args only when GNU LD is used. + Add an exception for *.gcc_args files. + +2021-01-11 Jakub Jelinek + + PR tree-optimization/95867 + * gcc.dg/tree-ssa/pr95867.c: New test. + +2021-01-11 Jakub Jelinek + + PR tree-optimization/95852 + * gcc.target/i386/pr95852-3.c: New test. + * gcc.target/i386/pr95852-4.c: New test. + +2021-01-11 Jakub Jelinek + + PR tree-optimization/95852 + * gcc.target/i386/pr95852-1.c: New test. + * gcc.target/i386/pr95852-2.c: New test. + +2021-01-11 Martin Liska + + PR gcov-profile/98273 + * lib/gcov.exp: Add run-gcov-pytest function which runs pytest. + * g++.dg/gcov/pr98273.C: New test. + * g++.dg/gcov/gcov.py: New test. + * g++.dg/gcov/test-pr98273.py: New test. + +2021-01-09 Maciej W. Rozycki + + * gcc.target/vax/cmpelim-eq-notsi.c: Use subtraction from a + constant then rather than addition. + * gcc.target/vax/cmpelim-le-notsi.c: Likewise. + * gcc.target/vax/cmpelim-lt-notsi.c: Likewise. + +2021-01-09 Jakub Jelinek + + PR c++/98556 + * c-c++-common/pr98556.c: New test. + +2021-01-09 Jakub Jelinek + + PR rtl-optimization/98603 + * gcc.target/i386/pr98603.c: New test. + * gcc.target/aarch64/pr98603.c: New test. + +2021-01-09 Alexandre Oliva + + PR debug/97714 + * gcc.dg/debug/pr97714.c: New. + +2021-01-08 H.J. Lu + + PR target/98482 + * gcc.target/i386/pr98482-1.c: Require lp64. + * gcc.target/i386/pr98482-2.c: Likewise. + +2021-01-08 Ilya Leoshkevich + + * gcc.target/s390/vector/long-double-vx-macro-off-on.c: New test. + * gcc.target/s390/vector/long-double-vx-macro-on-off.c: New test. + +2021-01-08 Patrick Palka + + PR c++/98551 + * g++.dg/cpp0x/constexpr-pmf2.C: New test. + +2021-01-08 Patrick Palka + + PR c++/98515 + * g++.dg/template/access32.C: New test. + * g++.dg/template/access33.C: New test. + +2021-01-08 H.J. Lu + + PR target/98482 + * gcc.target/i386/pr98482-2.c: Updated. + +2021-01-08 Richard Biener + + PR tree-optimization/98544 + * gcc.dg/vect/bb-slp-pr98544.c: New testcase. + +2021-01-08 H.J. Lu + + PR target/98482 + * gcc.target/i386/pr98482-1.c: New test. + * gcc.target/i386/pr98482-1.c: Likewise. + * gcc.target/i386/pr98482-2.c: New file. + +2021-01-08 Jakub Jelinek + + PR target/98585 + * gcc.target/i386/pr98585.c: New test. + +2021-01-08 Richard Sandiford + + * gcc.target/aarch64/sve/cnot_2.c: New test. + * gcc.target/aarch64/sve/cond_cnot_4.c: Likewise. + * gcc.target/aarch64/sve/cond_cnot_4_run.c: Likewise. + * gcc.target/aarch64/sve/cond_cnot_5.c: Likewise. + * gcc.target/aarch64/sve/cond_cnot_5_run.c: Likewise. + * gcc.target/aarch64/sve/cond_cnot_6.c: Likewise. + * gcc.target/aarch64/sve/cond_cnot_6_run.c: Likewise. + +2021-01-08 Richard Sandiford + + * gcc.target/aarch64/sve/cond_uxt_5.c: New test. + * gcc.target/aarch64/sve/cond_uxt_5_run.c: Likewise. + * gcc.target/aarch64/sve/cond_uxt_6.c: Likewise. + * gcc.target/aarch64/sve/cond_uxt_6_run.c: Likewise. + * gcc.target/aarch64/sve/cond_uxt_7.c: Likewise. + * gcc.target/aarch64/sve/cond_uxt_7_run.c: Likewise. + * gcc.target/aarch64/sve/cond_uxt_8.c: Likewise. + * gcc.target/aarch64/sve/cond_uxt_8_run.c: Likewise. + +2021-01-08 Tamar Christina + + * lib/target-supports.exp + (check_effective_target_aarch64_asm_sve2_ok): New. + * g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp: Use it. + * gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp: Likewise. + +2021-01-08 Kyrylo Tkachov + + * gcc.target/aarch64/usaba_1.c: New test. + +2021-01-08 Paul Thomas + + PR fortran/93794 + * gfortran.dg/deferred_character_35.f90 : New test. + +2021-01-08 Paul Thomas + + PR fortran/98458 + * gfortran.dg/implied_do_3.f90 : New test. + +2021-01-08 Kito Cheng + + * gcc.dg/array-quals-1.c: Allow srodata. + +2021-01-08 Kito Cheng + + * gcc.target/riscv/predef-10.c: New. + * gcc.target/riscv/predef-11.c: New. + * gcc.target/riscv/predef-12.c: New. + * gcc.target/riscv/predef-13.c: New. + +2021-01-07 Jakub Jelinek + + PR c++/98329 + * g++.dg/cpp2a/bit-cast10.C: New test. + +2021-01-07 Martin Sebor + + PR middle-end/98578 + * gcc.dg/plugin/gil-1.c: Adjust expected output. + * gcc.dg/uninit-pr98578.c: New test. + +2021-01-07 Marek Polacek + + PR c++/98441 + * g++.dg/cpp0x/auto55.C: New test. + +2021-01-07 David Malcolm + + PR analyzer/98580 + * gcc.dg/analyzer/pr98580-a.c: New test. + * gcc.dg/analyzer/pr98580-b.c: New test. + +2021-01-07 Paul Thomas + + PR fortran/93701 + * gfortran.dg/associate_54.f90: New test. + * gfortran.dg/associate_55.f90: New test. + * gfortran.dg/associate_56.f90: New test. + +2021-01-07 Jakub Jelinek + + PR target/98567 + * gcc.target/i386/pr98567-1.c: New test. + * gcc.target/i386/pr98567-2.c: New test. + +2021-01-07 Richard Sandiford + + * gcc.target/aarch64/sve/cond_unary_5.c: New test. + * gcc.target/aarch64/sve/cond_unary_5_run.c: Likewise. + * gcc.target/aarch64/sve/cond_unary_6.c: Likewise. + * gcc.target/aarch64/sve/cond_unary_6_run.c: Likewise. + * gcc.target/aarch64/sve/cond_unary_7.c: Likewise. + * gcc.target/aarch64/sve/cond_unary_7_run.c: Likewise. + * gcc.target/aarch64/sve/cond_unary_8.c: Likewise. + * gcc.target/aarch64/sve/cond_unary_8_run.c: Likewise. + +2021-01-07 Richard Sandiford + + PR tree-optimization/98560 + * gcc.dg/vect/pr98560-2.c: New test. + +2021-01-07 Richard Sandiford + + PR tree-optimization/98560 + * gcc.dg/vect/pr98560-1.c: New test. + +2021-01-07 Jakub Jelinek + + PR tree-optimization/98568 + * g++.dg/torture/pr98568.C: New test. + +2021-01-07 Hongyu Wang + + * gcc.target/i386/pr92658-avx512bw.c: Add + -mprefer-vector-width=512 to avoid impact of different default + mtune which gcc is built with. + * gcc.target/i386/pr92658-avx512bw-2.c: Ditto. + +2021-01-07 David Malcolm + + PR analyzer/97074 + * gcc.dg/analyzer/pr97074.c: New test. + +2021-01-07 David Malcolm + + PR analyzer/98564 + * gcc.dg/analyzer/pr98564.c: New test. + +2021-01-06 Vladimir N. Makarov + + PR rtl-optimization/97978 + * gcc.target/i386/pr97978.c: New. + +2021-01-06 Martin Sebor + + PR c++/95768 + * g++.dg/pr95768.C: New test. + * g++.dg/warn/Wuninitialized-12.C: New test. + * gcc.dg/uninit-38.c: New test. + +2021-01-06 Martin Sebor + + PR c++/98305 + * g++.dg/warn/Wmismatched-new-delete-3.C: New test. + +2021-01-06 Iain Sandoe + + PR c++/96504 + * g++.dg/coroutines/torture/pr95519-05-gro.C: Use suspend_always + as the final suspend point so that we can check that the state + machine has reached the expected point. + +2021-01-06 Marek Polacek + + PR testsuite/98566 + * g++.dg/warn/Wmismatched-dealloc.C: Use target c++14 in + dg-error. + +2021-01-06 Alexandre Oliva + + * g++.dg/opt/store-merging-2.C: Add the required alignment. + +2021-01-06 Richard Biener + + PR tree-optimization/95582 + * gcc.dg/pr95582.c: New testcase. + +2021-01-06 Richard Biener + + PR tree-optimization/98513 + * gcc.dg/tree-ssa/pr98513.c: New testcase. + +2021-01-06 David Malcolm + + PR analyzer/97072 + * gcc.dg/analyzer/pr97072.c: New test. + +2021-01-06 David Malcolm + + PR analyzer/98073 + * gcc.dg/analyzer/pr98073.c: New test. + +2021-01-06 David Malcolm + + PR analyzer/98223 + * gcc.dg/analyzer/pr94851-1.c: Remove xfail. + +2021-01-05 Ilya Leoshkevich + + * gcc.target/s390/s390.exp: Replace %% with %. + +2021-01-05 Steve Kargl + + * gfortran.dg/dec_math.f90: xfail on i?86-*-freebsd* + +2021-01-05 H.J. Lu + + PR target/98495 + * gcc.target/i386/sse2-mmx-pextrw.c (compute_correct_result): Use + unsigned short to compute pextrw result. + +2021-01-05 Patrick Palka + + * g++.dg/template/partial5.C: Adjust directives to expect the + same errors across all dialects. + * g++.dg/cpp1z/nontype-auto17.C: New test. + * g++.dg/cpp1z/nontype-auto18.C: New test. + * g++.dg/template/ttp33.C: New test. + +2021-01-05 Jakub Jelinek + + PR tree-optimization/94802 + * gcc.target/i386/pr94802.c: New test. + * gcc.dg/Wstrict-overflow-25.c: Remove xfail. + +2021-01-05 Richard Biener + + PR tree-optimization/98516 + * gcc.dg/vect/bb-slp-pr98516-1.c: New testcase. + * gcc.dg/vect/bb-slp-pr98516-2.c: Likewise. + +2021-01-05 Jakub Jelinek + + PR c++/98469 + * g++.dg/cpp2a/bit-cast8.C: New test. + * g++.dg/cpp2a/bit-cast9.C: New test. + +2021-01-05 Marek Polacek + + PR c++/82099 + * g++.dg/cpp1z/class-deduction76.C: Remove dg-ice. + * g++.dg/cpp0x/noexcept61.C: New test. + +2021-01-05 Jakub Jelinek + + PR tree-optimization/96928 + * gcc.dg/tree-ssa/pr96928.c: New test. + * gcc.target/i386/ifcvt-onecmpl-abs-1.c: Remove -fdump-rtl-ce1, + instead of scanning rtl dump for ifcvt message check assembly + for xor instruction. + +2021-01-05 Jakub Jelinek + + PR tree-optimization/96930 + * g++.dg/tree-ssa/pr96930.C: New test. + +2021-01-05 Jakub Jelinek + + PR tree-optimization/96239 + * gcc.dg/tree-ssa/pr96239.c: New test. + +2021-01-05 Uroš Bizjak + + PR target/98522 + * gcc.target/i386/pr98522.c: New test. + +2021-01-05 Nathan Sidwell + + * g++.dg/modules/mod-decl-1.C: Adjust. + * g++.dg/modules/p0713-2.C: Adjust. + * g++.dg/modules/p0713-3.C: Adjust. + +2021-01-05 H.J. Lu + + PR target/98495 + * gcc.target/i386/pr98495-1.c: New test. + * gcc.target/i386/pr98495-2.c: New test. + * gcc.target/i386/pr98495-3.c: New test. + * gcc.target/i386/pr98495-4.c: New test. + * gcc.target/i386/pr98495-5.c: New test. + +2021-01-05 liuhongt + + * gcc.target/i386/sse2-pr98461-2.c: New test. + +2021-01-05 Richard Sandiford + + PR rtl-optimization/97144 + * gcc.c-torture/compile/pr97144.c: New test. + * gcc.target/aarch64/sve/pr97144.c: Likewise. + +2021-01-05 Richard Sandiford + + PR rtl-optimization/98403 + * g++.dg/opt/pr98403.C: New test. + +2021-01-05 Jakub Jelinek + + PR rtl-optimization/98334 + * gcc.target/i386/pr98334.c: New test. + +2021-01-05 Jerome Lambourg + + * g++.dg/cpp1y/constexpr-66093.C: Fix bounds issue. + +2021-01-05 David Malcolm + + PR analyzer/98293 + * gcc.dg/analyzer/pr98293.c: New test. + +2021-01-04 Martin Uecker + + PR c/98029 + * gcc.dg/pr98029.c: New test. + +2021-01-04 Nathan Sidwell + + * g++.dg/modules/binding-1_a.H: New. + * g++.dg/modules/binding-1_b.H: New. + * g++.dg/modules/binding-1_c.C: New. + * g++.dg/modules/binding-2.H: New. + * g++.dg/modules/builtin-3_a.C: New. + * g++.dg/modules/global-2_a.C: New. + * g++.dg/modules/global-2_b.C: New. + * g++.dg/modules/global-3_a.C: New. + * g++.dg/modules/global-3_b.C: New. + * g++.dg/modules/hello-1_a.C: New. + * g++.dg/modules/hello-1_b.C: New. + * g++.dg/modules/iostream-1_a.H: New. + * g++.dg/modules/iostream-1_b.C: New. + * g++.dg/modules/part-5_a.C: New. + * g++.dg/modules/part-5_b.C: New. + * g++.dg/modules/part-5_c.C: New. + * g++.dg/modules/stdio-1_a.H: New. + * g++.dg/modules/stdio-1_b.C: New. + * g++.dg/modules/string-1_a.H: New. + * g++.dg/modules/string-1_b.C: New. + * g++.dg/modules/string-view1.C: New. + * g++.dg/modules/string-view2.C: New. + * g++.dg/modules/tinfo-1.C: New. + * g++.dg/modules/tinfo-2_a.H: New. + * g++.dg/modules/tinfo-2_b.C: New. + * g++.dg/modules/tname-spec-1_a.H: New. + * g++.dg/modules/tname-spec-1_b.C: New. + * g++.dg/modules/xtreme-header-1.h: New. + * g++.dg/modules/xtreme-header-1_a.H: New. + * g++.dg/modules/xtreme-header-1_b.C: New. + * g++.dg/modules/xtreme-header-1_c.C: New. + * g++.dg/modules/xtreme-header-2.h: New. + * g++.dg/modules/xtreme-header-2_a.H: New. + * g++.dg/modules/xtreme-header-2_b.C: New. + * g++.dg/modules/xtreme-header-2_c.C: New. + * g++.dg/modules/xtreme-header-3.h: New. + * g++.dg/modules/xtreme-header-3_a.H: New. + * g++.dg/modules/xtreme-header-3_b.C: New. + * g++.dg/modules/xtreme-header-3_c.C: New. + * g++.dg/modules/xtreme-header-4.h: New. + * g++.dg/modules/xtreme-header-4_a.H: New. + * g++.dg/modules/xtreme-header-4_b.C: New. + * g++.dg/modules/xtreme-header-4_c.C: New. + * g++.dg/modules/xtreme-header-5.h: New. + * g++.dg/modules/xtreme-header-5_a.H: New. + * g++.dg/modules/xtreme-header-5_b.C: New. + * g++.dg/modules/xtreme-header-5_c.C: New. + * g++.dg/modules/xtreme-header-6.h: New. + * g++.dg/modules/xtreme-header-6_a.H: New. + * g++.dg/modules/xtreme-header-6_b.C: New. + * g++.dg/modules/xtreme-header-6_c.C: New. + * g++.dg/modules/xtreme-header.h: New. + * g++.dg/modules/xtreme-header_a.H: New. + * g++.dg/modules/xtreme-header_b.C: New. + * g++.dg/modules/xtreme-tr1.h: New. + * g++.dg/modules/xtreme-tr1_a.H: New. + * g++.dg/modules/xtreme-tr1_b.C: New. + +2021-01-04 Richard Sandiford + + PR tree-optimization/95401 + * g++.dg/vect/pr95401.cc: New test. + * g++.dg/vect/pr95401a.cc: Likewise. + +2021-01-04 Richard Biener + + PR tree-optimization/98308 + * gcc.dg/vect/pr98308.c: New testcase. + +2021-01-04 Jakub Jelinek + + PR tree-optimization/95771 + * gcc.target/i386/pr95771.c: New test. + +2021-01-04 Richard Biener + + PR tree-optimization/98464 + * g++.dg/opt/pr98464.C: New testcase. + +2021-01-04 Richard Biener + + PR tree-optimization/98282 + * g++.dg/opt/pr98282.C: New testcase. + +2021-01-04 Richard Sandiford + + PR target/89057 + * gcc.target/aarch64/pr89057.c: New test. + +2021-01-04 Richard Sandiford + + * gcc.target/aarch64/sve/acle/asm/prfb.c: Test for a MUL VL range of + [-32, 31]. + * gcc.target/aarch64/sve/acle/asm/prfh.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/prfw.c: Likewise. + * gcc.target/aarch64/sve/acle/asm/prfd.c: Likewise. + +2021-01-04 Martin Liska + + * README: Convert to utf8 from iso8859. + +2021-01-04 Martin Liska + + * gcc.target/avr/avr.exp: Run dos2unix on the file. + +2021-01-04 Richard Biener + + PR tree-optimization/98291 + * gcc.dg/vect/slp-reduc-11.c: New testcase. + * gcc.dg/vect/vect-reduc-in-order-4.c: Adjust. + +2021-01-04 Jakub Jelinek + + PR tree-optimization/96782 + * gcc.dg/tree-ssa/pr96782.c: New test. + +2021-01-04 Bernd Edlinger + + * gcc.misc-tests/outputs.exp: Adjust testcase. + +2021-01-01 Jakub Jelinek + + * ChangeLog-2020: Rotate ChangeLog. New file. + +2021-01-01 Joel Brobecker + + * lib/target-supports.exp + (check_effective_target_arm_fp16_alternative_ok_nocache): + Return zero for *-*-vxworks7r* targets. + * gcc.target/arm/aapcs/vfp22.c: Require arm_fp16_alternative_ok. + * gcc.target/arm/aapcs/vfp23.c: Likewise. + * gcc.target/arm/aapcs/vfp24.c: Likewise. + * gcc.target/arm/aapcs/vfp25.c: Likewise. + +2021-01-01 Jerome Lambourg + + * g++.dg/init/new26.C: Fix overriding of the delete operator + for c++14 profile. + +2021-01-01 Jerome Lambourg + + * g++.dg/tls/pr79288.C: Skip on vxworks_kernel (TLS model + not supported). + +2021-01-01 Joel Brobecker + + * gcc.target/arm/memset-inline-2.c: Add -mno-long-calls to + the test's dg-options. + * gcc.target/arm/pr78255-2.c: Likewise. + +2021-01-01 Jerome Lambourg + + * g++.old-deja/g++.mike/p658.C: Also undefine OK on VxWorks RTP. + +2021-01-01 Jerome Lambourg + + * g++.dg/opt/20050511-1.C: Work around UINT32 in vxworks rtp + headers too. + +2021-01-01 Jerome Lambourg + + * g++.old-deja/g++.pt/const2.C: Skip on vxworks kernel. + +2021-01-01 Jerome Lambourg + + * g++.dg/warn/miss-format-1.C: Remove vxworks-specific test + directives. + +2021-01-01 Jerome Lambourg + + * g++.dg/tree-ssa/copyprop.C: Undefine ERROR if defined. + +2021-01-01 Jerome Lambourg + + * g++.dg/other/anon5.C: Skip on vxworks kernel. + +2021-01-01 Jerome Lambourg + + * gcc.dg/vxworks/initpri1.c: Tigthen VxWorks version check. + * gcc.dg/vxworks/initpri2.c: Likewise. + +2021-01-01 Joel Brobecker + + * gcc.dg/intmax_t-1.c: Do not expect an error on *-*-vxworks7r* + targets. + +2021-01-01 Olivier Hainque + + * gcc.dg/pthread-init-1.c: Fix the VxWorks xfail filters. + * gcc.dg/pthread-init-2.c: Ditto. + +2021-01-01 Olivier Hainque + + * lib/target-supports.exp (check_weak_available, + check_fork_available, check_effective_target_lto, + check_effective_target_mempcpy): Add vxworks filters. + +2021-01-01 Alexandre Oliva + + * gcc.target/arm/mve/intrinsics/mve_libcall1.c: Pass an + explicit -mno-long-calls. + * gcc.target/arm/mve/intrinsics/mve_libcall2.c: Likewise. + +2021-01-01 Alexandre Oliva + + * g++.target/arm/no_unique_address_1.C: Add -mno-long-calls. + * g++.target/arm/no_unique_address_2.C: Likewise. + +2021-01-01 Alexandre Oliva + + * gcc.target/arm/headmerge-1.c: Add -mno-long-calls. + * gcc.target/arm/headmerge-2.c: Likewise. + +2021-01-01 Alexandre Oliva + + * gcc.target/arm/fp16-aapcs-2.c: Use -mno-long-calls. + +Copyright (C) 2021 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/libgfortran/ChangeLog-2021 b/libgfortran/ChangeLog-2021 new file mode 100644 index 0000000..2f9769e --- /dev/null +++ b/libgfortran/ChangeLog-2021 @@ -0,0 +1,384 @@ +2021-12-31 Iain Sandoe + + * runtime/string.c (gfc_itoa): Use _Static_assert directly + instead of via the static_assert macro. + +2021-12-29 Francois-Xavier Coudert + + * ieee/ieee_helper.c: Fix enum values. + +2021-12-27 Francois-Xavier Coudert + + PR libfortran/98076 + * runtime/string.c (gfc_itoa): Use two args for static_assert(). + +2021-12-26 Francois-Xavier Coudert + + PR libfortran/98076 + * runtime/string.c (itoa64, itoa64_pad19): New helper functions. + (gfc_itoa): On targets with 128-bit integers, call fast + 64-bit functions to avoid many slow divisions. + +2021-12-25 Francois-Xavier Coudert + + PR libfortran/81986 + PR libfortran/99191 + * libgfortran.h: Remove gfc_xtoa(), adjust gfc_itoa() and + GFC_ITOA_BUF_SIZE. + * io/write.c (write_decimal): conversion parameter is always + gfc_itoa(), so remove it. Protect from overflow. + (xtoa): Move gfc_xtoa and update its name. + (xtoa_big): Renamed from ztoa_big for consistency. + (write_z): Adjust to new function names. + (write_i, write_integer): Remove last arg of write_decimal. + * runtime/backtrace.c (error_callback): Comment on the use of + gfc_itoa(). + * runtime/error.c (gfc_xtoa): Move to io/write.c. + * runtime/string.c (gfc_itoa): Take an unsigned argument, + remove the handling of negative values. + +2021-12-22 Francois-Xavier Coudert + + * kinds-override.h: Move GFC_REAL_16_IS_* macros... + * mk-kinds-h.sh: ... here. + +2021-12-19 Francois-Xavier Coudert + + * configure.host: Add aarch64-apple-darwin support. + * config/fpu-aarch64.h: New file. + +2021-12-18 François-Xavier Coudert + + * libgfortran.h: include ctype.h, provide safe macros. + * io/format.c: use safe macros. + * io/list_read.c: use safe macros. + * io/read.c: use safe macros. + * io/write.c: use safe macros. + * runtime/environ.c: use safe macros. + +2021-12-16 Francois-Xavier Coudert + + * io/file_pos.c: Fix error code. + +2021-12-16 Francois-Xavier Coudert + + * intrinsics/time_1.h: Prefer clock_gettime() over + gettimeofday(). + * intrinsics/date_and_time.c: Fix timezone wrapping. + +2021-12-14 Harald Anlauf + + PR libfortran/103634 + * intrinsics/pack_generic.c (pack_internal): Handle case when the + array argument of PACK has one or more extents of size zero to + avoid invalid reads. + +2021-10-18 Tobias Burnus + + PR fortran/102086 + PR fortran/92189 + PR fortran/92621 + PR fortran/101308 + PR fortran/101309 + PR fortran/101635 + PR fortran/92482 + * ISO_Fortran_binding.h (CFI_type_cfunptr): Make unique type again. + * runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc, + gfc_desc_to_cfi_desc): Add comment that those are no longer called + by new code. + +2021-09-27 Tobias Burnus + + PR fortran/94070 + * intrinsics/size.c (size0, size1): Comment that now not + used by newer compiler code. + +2021-09-26 Tobias Burnus + + PR fortran/101334 + * intrinsics/associated.c (associated): Also check for same rank. + +2021-09-22 Tobias Burnus + + PR fortran/55534 + * configure.ac (AM_FCFLAGS): Revert r12-3722 by removing + -Wno-missing-include-dirs. + * configure: Regenerate. + +2021-09-21 Tobias Burnus + + PR fortran/55534 + * configure.ac (AM_FCFLAGS): Add -Wno-missing-include-dirs. + * configure: Regenerate. + +2021-09-17 Sandra Loosemore + + * ISO_Fortran_binding.h: Update comments. + * runtime/ISO_Fortran_binding.c: Likewise. + +2021-09-17 Sandra Loosemore + Tobias Burnus + + * ISO_Fortran_binding.h: Only include float.h if the C compiler + doesn't have predefined __LDBL_* and __DBL_* macros. Handle + LDBL_MANT_DIG == 53 for FreeBSD. + +2021-09-13 Andreas Schwab + + * ISO_Fortran_binding.h (CFI_type_long_double) + (CFI_type_long_double_Complex) [LDBL_MANT_DIG == 64 && + LDBL_MIN_EXP == -16382 && LDBL_MAX_EXP == 16384]: Define. + +2021-09-07 Tobias Burnus + + * Makefile.am (gfor_built_src): Depend on + include/ISO_Fortran_binding.h not on ISO_Fortran_binding.h. + (ISO_Fortran_binding.h): Rename make target to ... + (include/ISO_Fortran_binding.h): ... this. + * Makefile.in: Regenerate. + +2021-09-07 Sandra Loosemore + + * ISO_Fortran_binding-1-tmpl.h: Deleted. + * ISO_Fortran_binding-2-tmpl.h: Deleted. + * ISO_Fortran_binding-3-tmpl.h: Deleted. + * ISO_Fortran_binding.h: New file to replace the above. + * Makefile.am (gfor_cdir): Remove MULTISUBDIR. + (ISO_Fortran_binding.h): Simplify to just copy the file. + * Makefile.in: Regenerated. + * mk-kinds-h.sh: Revert pieces no longer needed for + ISO_Fortran_binding.h. + +2021-09-02 Sandra Loosemore + José Rui Faustino de Sousa + + PR fortran/100907 + PR fortran/100911 + PR fortran/100914 + PR fortran/100915 + PR fortran/100917 + * ISO_Fortran_binding-1-tmpl.h (CFI_type_cfunptr): Make equivalent + to CFI_type_cptr. + * runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc): Fix + handling of CFI_type_cptr and CFI_type_cfunptr. Additional error + checking and code cleanup. + (gfc_desc_to_cfi_desc): Likewise. Also correct kind mapping + for character, complex, and long double types. + +2021-08-27 Iain Sandoe + + * Makefile.am: Use configured libm availability. + * Makefile.in: Regenerate. + * configure: Regenerate. + * configure.ac: Use libtool macro to find libm availability. + * libgfortran.spec.in: Use configured libm availability. + +2021-08-10 Tobias Burnus + + PR libfortran/101305 + PR fortran/101660 + PR testsuite/101847 + * Makefile.am (ISO_Fortran_binding.h): Create include/ in the build dir + and copy the include file to it. + (clean-local): Add for removing the 'include' directory. + * Makefile.in: Regenerate. + +2021-07-28 Sandra Loosemore + + PR libfortran/101317 + * runtime/ISO_Fortran_binding.c: Include . + (CFI_address): Tidy error messages and comments. + (CFI_allocate): Likewise. + (CFI_deallocate): Likewise. + (CFI_establish): Likewise. Add new checks for validity of + elem_len when it's used, plus type argument and extents. + (CFI_is_contiguous): Tidy error messages and comments. + (CFI_section): Likewise. Refactor some repetitive code to + make it more understandable. + (CFI_select_part): Likewise. + (CFI_setpointer): Likewise. Check that source is not an + unallocated allocatable array or an assumed-size array. + +2021-07-28 Sandra Loosemore + + PR libfortran/101310 + * runtime/ISO_Fortran_binding.c (CFI_section): Fix the base + address computation and simplify the code. + +2021-07-28 Sandra Loosemore + + PR libfortran/101305 + * runtime/ISO_Fortran_binding.c (CFI_establish): Special-case + CFI_type_cptr and CFI_type_cfunptr. Correct size of long double + on targets where it has kind 10. + +2021-07-28 Sandra Loosemore + Tobias Burnus + + PR libfortran/101305 + * ISO_Fortran_binding.h: Fix hard-coded sizes and split into... + * ISO_Fortran_binding-1-tmpl.h: New file. + * ISO_Fortran_binding-2-tmpl.h: New file. + * ISO_Fortran_binding-3-tmpl.h: New file. + * Makefile.am: Add rule for generating ISO_Fortran_binding.h. + Adjust pathnames to that file. + * Makefile.in: Regenerated. + * mk-kinds-h.sh: New file. + * runtime/ISO_Fortran_binding.c: Fix include path. + +2021-07-26 José Rui Faustino de Sousa + Tobias Burnus + + PR fortran/93308 + PR fortran/93963 + PR fortran/94327 + PR fortran/94331 + PR fortran/97046 + * runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc): Add code + to verify the descriptor. Correct bounds calculation. + (gfc_desc_to_cfi_desc): Add code to verify the descriptor. + +2021-07-22 Sandra Loosemore + + * runtime/ISO_Fortran_binding.c (CFI_allocate): Don't use elem_len + for CFI_type_signed_char. + (CFI_select_part): Likewise. + +2021-07-01 Tobias Burnus + Sandra Loosemore + + * runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc): + Initialize version field to 0. + (gfc_desc_to_cfi_desc): Initialize version field to CFI_VERSION. + +2021-06-29 Julian Brown + + PR target/96306 + * configure.ac: Remove stanza that removes KIND=16 integers for AMD GCN. + * configure: Regenerate. + +2021-06-22 Sandra Loosemore + Tobias Burnus + + PR fortran/93524 + * runtime/ISO_Fortran_binding.c (CFI_allocate): Fix + sm computation. + +2021-06-08 Martin Liska + + * intrinsics/chmod.c (chmod_internal): Fix typo. + * io/transfer.c (read_sf): Likewise. + +2021-06-05 José Rui Faustino de Sousa + + PR fortran/100120 + * intrinsics/associated.c (associated): have associated verify if + the "span" matches insted of the "elem_len". + * libgfortran.h (GFC_DESCRIPTOR_SPAN): add macro to retrive the + descriptor "span". + +2021-05-22 Andre Vehreschild + + PR fortran/98301 + * caf/libcaf.h (_gfortran_caf_random_init): New function. + * caf/single.c (_gfortran_caf_random_init): New function. + * gfortran.map: Added fndecl. + * intrinsics/random_init.f90: Implement random_init. + +2021-05-05 Tobias Burnus + + * intrinsics/chmod.c (chmod_internal): Only declare mode_mask var + if HAVE_UMASK. + +2021-05-02 Tobias Burnus + + PR libgomp/100352 + * io/transfer.c (st_read_done_worker, st_write_done_worker): Add new + arg whether to unlock unit. + (st_read_done, st_write_done): Call it with true. + * io/async.c (async_io): Call it with false. + * io/io.h (st_write_done_worker, st_read_done_worker): Update prototype. + +2021-03-12 Tobias Burnus + + * io/transfer.c (st_read_done_worker, st_write_done_worker): + Call unlock_unit here, add unit_lock lock around newunit_free call. + (st_read_done, st_write_done): Only call unlock_unit when not + calling the worker function. + * io/unit.c (set_internal_unit): Don't reset the unit_number + to the same number as this cause race warnings. + +2021-03-05 Harald Anlauf + + PR libfortran/99218 + * m4/matmul_internal.m4: Invoke tuned matmul only for rank(b)>1. + * generated/matmul_c10.c: Regenerated. + * generated/matmul_c16.c: Likewise. + * generated/matmul_c4.c: Likewise. + * generated/matmul_c8.c: Likewise. + * generated/matmul_i1.c: Likewise. + * generated/matmul_i16.c: Likewise. + * generated/matmul_i2.c: Likewise. + * generated/matmul_i4.c: Likewise. + * generated/matmul_i8.c: Likewise. + * generated/matmul_r10.c: Likewise. + * generated/matmul_r16.c: Likewise. + * generated/matmul_r4.c: Likewise. + * generated/matmul_r8.c: Likewise. + * generated/matmulavx128_c10.c: Likewise. + * generated/matmulavx128_c16.c: Likewise. + * generated/matmulavx128_c4.c: Likewise. + * generated/matmulavx128_c8.c: Likewise. + * generated/matmulavx128_i1.c: Likewise. + * generated/matmulavx128_i16.c: Likewise. + * generated/matmulavx128_i2.c: Likewise. + * generated/matmulavx128_i4.c: Likewise. + * generated/matmulavx128_i8.c: Likewise. + * generated/matmulavx128_r10.c: Likewise. + * generated/matmulavx128_r16.c: Likewise. + * generated/matmulavx128_r4.c: Likewise. + * generated/matmulavx128_r8.c: Likewise. + +2021-03-03 Vittorio Zecca + Tobias Burnus + + PR libfortran/81986 + * runtime/string.c (gfc_itoa): Cast to unsigned before + negating. + +2021-02-12 Steve Kargl + + PR libfortran/95647 + * ieee/ieee_arithmetic.F90: Flip interfaces of operators .eq. to + == and .ne. to /= . + +2021-02-11 Jerry DeLisle + + PR libfortran/98825 + * io/transfer.c (next_record_w): Insert check for seen_dollar and if + so, skip issueing next record. + +2021-01-27 Harris Snyder + + * runtime/ISO_Fortran_binding.c (CFI_establish): fixed + strides for rank >2 arrays. + +2021-01-15 Harris Snyder + + * runtime/ISO_Fortran_binding.c (CFI_establish): Fixed signed + char arrays. Signed char or uint8_t arrays would cause + crashes unless an element size is specified. + +2021-01-05 Samuel Thibault + + * configure: Re-generate. + +2021-01-01 Jakub Jelinek + + * ChangeLog-2020: Rotate ChangeLog. New file. + +Copyright (C) 2021 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/libstdc++-v3/ChangeLog-2021 b/libstdc++-v3/ChangeLog-2021 new file mode 100644 index 0000000..2a431fc --- /dev/null +++ b/libstdc++-v3/ChangeLog-2021 @@ -0,0 +1,9013 @@ +2021-12-15 François Dumont + + * include/bits/stl_iterator.h + (std::pointer_traits<__gnu_cxx::__normal_iterator<>>): Remove. + (std::__to_address(const __gnu_cxx::__normal_iterator<>&)): New for C++11 to C++17. + * include/debug/safe_iterator.h + (std::__to_address(const __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<>, + _Sequence>&)): New for C++11 to C++17. + * testsuite/24_iterators/normal_iterator/to_address.cc: Add check on std::vector::iterator + to validate both __gnu_cxx::__normal_iterator<> __to_address overload in normal mode and + __gnu_debug::_Safe_iterator in _GLIBCXX_DEBUG mode. + +2021-12-15 Jakub Jelinek + + PR libstdc++/71557 + * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): + Compare characters other than format specifiers and whitespace + case insensitively. + (_M_extract_name): Compare characters case insensitively. + * testsuite/22_locale/time_get/get/char/71557.cc: New test. + * testsuite/22_locale/time_get/get/wchar_t/71557.cc: New test. + +2021-12-14 Jonathan Wakely + + PR libstdc++/103687 + * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Restore + original locale before returning. + * testsuite/22_locale/time_get/get_time/char/2.cc: Check for %p + in locale's T_FMT and adjust accordingly. + * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise. + +2021-12-14 Jonathan Wakely + + PR libstdc++/102447 + * include/bits/regex_compiler.h (_Compiler::_BracketState): New + class. + (_Compiler::_BrackeyMatcher): New alias template. + (_Compiler::_M_expression_term): Change pair + parameter to _BracketState. Process first character for + ECMAScript syntax as well as POSIX. + * include/bits/regex_compiler.tcc + (_Compiler::_M_insert_bracket_matcher): Pass _BracketState. + (_Compiler::_M_expression_term): Use _BracketState to store + state between calls. Improve handling of dashes in ranges. + * testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc: + Add more tests for ranges containing dashes. Check invalid + ranges with character class at the beginning. + +2021-12-14 Jonathan Wakely + + * include/ext/pointer.h (_Relative_pointer_impl::_UIntPtrType): + Rename to uintptr_t and define as __UINTPTR_TYPE__. + +2021-12-14 Jonathan Wakely + + * include/bits/regex_constants.h (__syntax_option, __match_flag): + Remove. + (syntax_option_type, match_flag_type): Define enumerators. + Use to initialize globals. Add constexpr to compound assignment + operators. + * include/bits/regex_error.h (error_type): Add comment. + * testsuite/28_regex/constants/constexpr.cc: Remove comment. + * testsuite/28_regex/constants/error_type.cc: Improve comment. + * testsuite/28_regex/constants/match_flag_type.cc: Check bitmask + requirements. + * testsuite/28_regex/constants/syntax_option_type.cc: Likewise. + +2021-12-14 Jonathan Wakely + + * include/bits/regex_compiler.tcc (_Compiler::_M_match_token): + Use reserved name for parameter. + * testsuite/17_intro/names.cc: Check "token". + +2021-12-13 Jonathan Wakely + + * scripts/make_exports.pl: Replace '?' with '.' when turning + a glob into a regex. + +2021-12-13 Jonathan Wakely + + * include/bits/ranges_base.h (ranges::size, ranges::empty): Add + explicit check for unbounded arrays before using ranges::begin. + * testsuite/std/ranges/access/empty.cc: Check handling of unbounded + arrays. + * testsuite/std/ranges/access/size.cc: Likewise. + +2021-12-13 Jonathan Wakely + + PR libstdc++/103664 + * include/bits/regex.h (__regex_replace): Declare. + (regex_replace): Use it. + * include/bits/regex.tcc (__regex_replace): Replace regex_replace + definition with __regex_replace. + * testsuite/28_regex/algorithms/regex_replace/char/103664.cc: New test. + +2021-12-11 Jason Merrill + + PR c++/103534 + * include/bits/basic_string.h (append (basic_string)): Call pointer + append instead of _M_append directly. + +2021-12-10 Jakub Jelinek + + PR libstdc++/71367 + * config/locale/dragonfly/time_members.cc (_M_initialize_timepunct): + Initialize "C" _M_am_pm_format to %I:%M:%S %p rather than empty + string. + * config/locale/gnu/time_members.cc (_M_initialize_timepunct): + Likewise. + * config/locale/generic/time_members.cc (_M_initialize_timepunct): + Likewise. + * include/bits/locale_facets_nonio.h (_M_am_pm_format): New method. + * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Handle + %r. + * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_am_pm_format + with const _CharT** argument, ensure it isn't exported in GLIBCXX_3.4. + * testsuite/22_locale/time_get/get/char/71367.cc: New test. + * testsuite/22_locale/time_get/get/wchar_t/71367.cc: New test. + +2021-12-10 Jakub Jelinek + + PR libstdc++/78714 + * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): + Mention in function comment it interprets strptime format string + rather than strftime. Handle %a and %A the same by accepting both + full and abbreviated names. Similarly handle %h, %b and %B the same. + Handle %d and %e the same by accepting possibly optional single space + and 1 or 2 digits. For %I store tm_hour 0 instead of tm_hour 12. For + %t and %n skip any whitespace. Handle %p and %%. For whitespace in + the string skip any whitespace. + (_M_extract_num): For __len == 2 accept 1 or 2 digits rather than + always 2. Don't punt early if __value * __mult is larget than __max + or smaller than __min - __mult, instead punt if __value > __max. + At the end verify __value is in between __min and __max and punt + otherwise. + (_M_extract_name): Allow non-unique names or names which are prefixes + of other names. Don't recompute lengths of names for every character. + * testsuite/22_locale/time_get/get/char/3.cc: New test. + * testsuite/22_locale/time_get/get/wchar_t/3.cc: New test. + * testsuite/22_locale/time_get/get_date/char/12791.cc (test01): Use + 62 instead 60 and expect 6 to be accepted and thus *ret01 == '2'. + * testsuite/22_locale/time_get/get_date/wchar_t/12791.cc (test01): + Similarly. + * testsuite/22_locale/time_get/get_time/char/2.cc (test02): Add " PM" + to the string. + * testsuite/22_locale/time_get/get_time/char/5.cc (test01): Expect + tm_hour 1 rather than 0. + * testsuite/22_locale/time_get/get_time/wchar_t/2.cc (test02): Add + " PM" to the string. + * testsuite/22_locale/time_get/get_time/wchar_t/5.cc (test01): Expect + tm_hour 1 rather than 0. + +2021-12-10 Jonathan Wakely + + PR libstdc++/103638 + * include/bits/atomic_timed_wait.h: Check _GLIBCXX_HAS_GTHREADS + before using std::mutex and std::__condvar. + +2021-12-10 Jonathan Wakely + + * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add _GLIBCXX_ + prefix to NO_SLEEP macro. + * config.h.in: Regenerate. + * configure: Regenerate. + +2021-12-10 Jonathan Wakely + + * include/bits/char_traits.h: Change pragma push to pop. + +2021-12-10 Thomas Rodgers + + PR libstdc++/102994 + * include/bits/atomic_base.h (__atomic_base<_PTp*>::wait()): + Add const qualifier. + * include/std/atomic (atomic<_Tp*>::wait(), atomic_wait()): + Likewise. + * testsuite/29_atomics/atomic/wait_notify/102994.cc: + New test. + +2021-12-09 Jonathan Wakely + + * include/bits/stl_iterator.h (operator==, operator<=>): Define + overloads for homogeneous specializations of reverse_iterator, + __normal_iterator and move_iterator. + +2021-12-09 Jonathan Wakely + + * testsuite/20_util/scoped_allocator/69293_neg.cc: Remove + dg-error for c++20. + +2021-12-09 Jonathan Wakely + + PR libstdc++/85813 + * libsupc++/exception_ptr.h (__dest_thunk): Add macro for + destructor calling convention. + (make_exception_ptr): Enable non-throwing implementation for + -fno-exceptions and for non-standard calling conventions. Use + always_inline attribute on the useless no-rtti no-exceptions + definition. + * testsuite/18_support/exception_ptr/64241.cc: Add -fno-rtti so + the no-op implementation is still used. + +2021-12-09 Jonathan Wakely + + PR libstdc++/103630 + * libsupc++/exception_ptr.h (exception_ptr): Fix exception + specifications on inline definitions. + (make_exception_ptr): Decay the template parameter. Use typeid + of the static type. + * testsuite/18_support/exception_ptr/103630.cc: New test. + +2021-12-09 Jonathan Wakely + + PR libstdc++/59769 + * config/io/basic_file_stdio.cc (fopen_mode): Add support for + exclusive mode. + * include/bits/ios_base.h (_S_noreplace): Define new enumerator. + (ios_base::__noreplace): Define. + (ios_base::noreplace): Define for C++23. + * include/std/version (__cpp_lib_ios_noreplace): Define. + * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: New test. + * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc: New test. + +2021-12-09 Jonathan Wakely + + PR libstdc++/103382 + * config/abi/pre/gnu.ver (GLIBCXX_3.4.11): Do not export old + symbol if .symver renaming is supported. + (GLIBCXX_3.4.30): Export new symbol if .symver renaming is + supported. + * doc/xml/manual/evolution.xml: Document change. + * doc/html/manual/api.html: Regenerate. + * include/bits/std_mutex.h (__condvar::wait, __condvar::wait_until): + Remove noexcept. + * include/std/condition_variable (condition_variable::wait): + Likewise. + * src/c++11/condition_variable.cc (condition_variable::wait): + Likewise. + * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait): + Define nothrow wrapper around std::condition_variable::wait and + export the old symbol as an alias to it. + * testsuite/30_threads/condition_variable/members/103382.cc: New test. + +2021-12-09 Jonathan Wakely + + PR libstdc++/92300 + * include/bits/stl_map.h (insert(Pair&&), emplace(Args&&...)): + Check whether the arguments can be looked up directly without + constructing a temporary node first. + * include/bits/stl_pair.h (__is_pair): Move to here, from ... + * include/bits/uses_allocator_args.h (__is_pair): ... here. + * testsuite/23_containers/map/modifiers/emplace/92300.cc: New test. + * testsuite/23_containers/map/modifiers/insert/92300.cc: New test. + +2021-12-09 Jonathan Wakely + + * include/bits/cow_string.h (basic_string::_M_leak_hard): Do not + reallocate an empty string. + +2021-12-09 Jonathan Wakely + + PR libstdc++/103332 + PR libstdc++/102958 + PR libstdc++/103483 + * include/bits/char_traits.h: Suppress stringop and array-bounds + warnings. + +2021-12-09 Jonathan Wakely + + PR libstdc++/64135 + * config/allocator/new_allocator_base.h: Include + instead of . + (__allocator_base): Use std::__new_allocator instead of + __gnu_cxx::new_allocator. + * doc/xml/manual/allocator.xml: Document new default base class + for std::allocator. + * doc/xml/manual/evolution.xml: Likewise. + * doc/html/*: Regenerate. + * include/Makefile.am: Add bits/new_allocator.h. + * include/Makefile.in: Regenerate. + * include/experimental/memory_resource (new_delete_resource): + Use std::__new_allocator instead of __gnu_cxx::new_allocator. + * include/ext/new_allocator.h (new_allocator): Derive from + std::__new_allocator. Move implementation to ... + * include/bits/new_allocator.h: New file. + * testsuite/20_util/allocator/64135.cc: New test. + +2021-12-08 Jonathan Wakely + + * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release()): + Make shift width conditional on __double_word condition. + +2021-12-08 François Dumont + + * include/std/deque (erase_if): Use _GLIBCXX_STD_C container reference and + __niter_wrap to limit _GLIBCXX_DEBUG mode impact. + * include/std/vector (erase_if): Likewise. + +2021-12-08 Maged Michael + Jonathan Wakely + + * include/bits/c++config (_GLIBCXX_TSAN): Define macro + indicating that TSan is in use. + * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release): + Replace definition in primary template with explicit + specializations for _S_mutex and _S_atomic policies. + (_Sp_counted_base<_S_mutex>::_M_release): New specialization. + (_Sp_counted_base<_S_atomic>::_M_release): New specialization, + using a single atomic load to access both reference counts at + once. + (_Sp_counted_base::_M_release_last_use): New member function. + +2021-12-07 Tamar Christina + + Revert: + 2021-11-19 Tamar Christina + + PR libstdc++/103305 + * config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit, + space, print, graph, cntrl, punct, alnum, blank): Use short or long + names depending on if short ones are defined. + +2021-12-04 Jonathan Wakely + + PR libstdc++/103549 + * include/bits/regex.h (match_results): Give names to template + parameters in first declaration. + (match_results::_M_begin): Add default member-initializer. + +2021-12-03 Jonathan Wakely + + * include/bits/stl_tree.h (_Rb_tree::_Auto_node): Define new + RAII helper for creating and inserting new nodes. + (_Rb_tree::_M_insert_node): Use trailing-return-type to simplify + out-of-line definition. + (_Rb_tree::_M_insert_lower_node): Likewise. + (_Rb_tree::_M_insert_equal_lower_node): Likewise. + (_Rb_tree::_M_emplace_unique): Likewise. Use _Auto_node. + (_Rb_tree::_M_emplace_equal): Likewise. + (_Rb_tree::_M_emplace_hint_unique): Likewise. + (_Rb_tree::_M_emplace_hint_equal): Likewise. + +2021-12-02 Jonathan Wakely + + * src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING] + (logic_error, runtime_error): Remove custom definitions. + +2021-12-02 Jonathan Wakely + + PR libstdc++/103340 + PR libstdc++/103400 + PR libstdc++/103381 + * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Remove mt, bitmap + and pool options. + * configure: Regenerate. + * config/allocator/bitmap_allocator_base.h: Removed. + * config/allocator/mt_allocator_base.h: Removed. + * config/allocator/pool_allocator_base.h: Removed. + * doc/xml/manual/allocator.xml: Update. + * doc/xml/manual/configure.xml: Update. + * doc/xml/manual/evolution.xml: Document removal. + * doc/xml/manual/mt_allocator.xml: Editorial tweaks. + * doc/html/manual/*: Regenerate. + +2021-12-02 Jonathan Wakely + + * include/bits/cow_string.h (basic_string::_M_is_leaked()): + Revert change to check __is_single_threaded() before using + atomic load. + +2021-12-01 Jonathan Wakely + + PR libstdc++/103501 + * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&, false_type)): + Clear container if elements have been moved-from. + * testsuite/23_containers/map/allocator/move_cons.cc: Expect + moved-from container to be empty. + * testsuite/23_containers/multimap/allocator/move_cons.cc: + Likewise. + * testsuite/23_containers/multiset/allocator/103501.cc: New test. + * testsuite/23_containers/set/allocator/103501.cc: New test. + +2021-12-01 Jonathan Wakely + + * doc/doxygen/user.cfg.in (PREDEFINED): Change macro name. + * include/bits/allocator.h (allocate, deallocate): Use + std::__is_constant_evaluated() unconditionally, instead of + checking whether std::is_constant_evaluated() (or the built-in) + can be used. + * include/bits/basic_string.h: Check new macro. call + std::is_constant_evaluated() directly in C++20-only code that is + guarded by a suitable macro. + * include/bits/basic_string.tcc: Likewise. + * include/bits/c++config (__is_constant_evaluated): Define. + (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): Replace with ... + (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED): New macro. + * include/bits/char_traits.h (char_traits): Replace conditional + calls to std::is_constant_evaluated with unconditional calls to + std::__is_constant_evaluated. + * include/bits/cow_string.h: Use new macro. + * include/bits/ranges_algobase.h (__copy_or_move): Replace + conditional calls to std::is_constant_evaluated with unconditional + calls to std::__is_constant_evaluated. + (__copy_or_move_backward, __fill_n_fn): Likewise. + * include/bits/ranges_cmp.h (ranges::less): Likewise. + * include/bits/stl_algobase.h (lexicographical_compare_three_way): + Likewise. + * include/bits/stl_bvector.h: Call std::is_constant_evaluated + directly in C++20-only code that is guarded by a suitable macro. + * include/bits/stl_construct.h (_Construct, _Destroy, _Destroy_n): + Replace is_constant_evaluated with __is_constant_evaluated. + * include/bits/stl_function.h (greater, less, greater_equal) + (less_equal): Replace __builtin_is_constant_evaluated and + __builtin_constant_p with __is_constant_evaluated. + * include/bits/stl_vector.h: Call std::is_constant_evaluated() + in C++20-only code. + * include/debug/helper_functions.h (__check_singular): Use + __is_constant_evaluated instead of built-in, or remove check + entirely. + * include/std/array (operator<=>): Use __is_constant_evaluated + unconditionally. + * include/std/bit (__bit_ceil): Likewise. + * include/std/type_traits (is_constant_evaluated): Define using + 'if consteval' if possible. + * include/std/version: Use new macro. + * libsupc++/compare: Use __is_constant_evaluated instead of + __builtin_is_constant_evaluated. + * testsuite/23_containers/array/tuple_interface/get_neg.cc: + Adjust dg-error lines. + +2021-12-01 Jonathan Wakely + + * include/bits/cow_string.h (basic_string::_M_is_leaked): Use + non-atomic load when __is_single_threaded() is true. + (basic_string::_M_is_shared): Likewise. + (basic_string::(basic_string&&)) [_GLIBCXX_FULLY_DYNAMIC_STRING]: + Use non-atomic store when rvalue is not shared. + +2021-12-01 Jonathan Wakely + + * src/c++17/fs_path.cc (path::_M_split_cmpts()): Remove + micro-optimization for "/" path. + * src/filesystem/path.cc (path::_M_split_cmpts()): Only access + the contents of _M_pathname using const member functions. + +2021-11-30 Jonathan Wakely + + * testsuite/21_strings/basic_string/cons/char/moveable.cc: Allow + moved-from string to be non-empty. + * testsuite/21_strings/basic_string/cons/char/moveable2.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc: + Likewise. + * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc: + Construct empty string before setting oom flag. + * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc: + Likewise. + +2021-11-30 Jonathan Wakely + + * include/bits/cow_string.h (basic_string(basic_string&&)): Fix + mem-initializer for _GLIBCXX_FULLY_DYNAMIC_STRING==0 case. + * testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc: + Remove outdated comment. + * testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc: + Likewise. + +2021-11-30 Jonathan Wakely + + * src/c++20/sstream-inst.cc (_GLIBCXX_USE_CXX11_ABI): Define to + select new ABI. + +2021-11-30 Jonathan Wakely + + * include/bits/stl_vector.h (vector::_S_do_relocate): Remove + C++20 constexpr specifier. + (vector::_S_relocate) [__cpp_if_constexpr]: Call __relocate_a + directly without tag dispatching. + +2021-11-30 Jonathan Wakely + + PR libstdc++/103453 + * config/allocator/malloc_allocator_base.h + (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define for Clang. + * config/allocator/new_allocator_base.h + (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Likewise. + +2021-11-30 Jonathan Wakely + + * doc/xml/manual/debug_mode.xml: Replace "his or her" with "their". + * doc/html/manual/debug_mode_design.html: Regenerate. + +2021-11-30 Jakub Jelinek + + * include/std/bit (byteswap): Add [[nodiscard]]. + +2021-11-28 Jakub Jelinek + + * include/std/bit (__cpp_lib_byteswap, byteswap): Define. + * include/std/version (__cpp_lib_byteswap): Define. + * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: New test. + * testsuite/26_numerics/bit/bit.byteswap/version.cc: New test. + +2021-11-26 Jonathan Wakely + + * testsuite/24_iterators/move_iterator/dr3265.cc: Fix test to + account for LWG 3435 resolution. + +2021-11-26 Jonathan Wakely + + * include/bits/stl_uninitialized.h (__relocate_a_1): Do not use + memmove during constant evaluation. + * include/bits/stl_vector.h (vector::_S_use_relocate()): Do not + check is_constant_evaluated in always-constexpr function. + +2021-11-26 Jonathan Wakely + + PR libstdc++/96592 + * include/std/tuple (tuple::is_constructible): Remove. + +2021-11-26 Jonathan Wakely + + * testsuite/29_atomics/atomic_float/1.cc: Reorder directives. + +2021-11-26 Jonathan Wakely + + * testsuite/23_containers/unordered_map/modifiers/move_assign.cc: + Change dg-do compile to run. + * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc: + Likewise. + +2021-11-26 Jonathan Wakely + + * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc: + Remove xfail selector. + * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc: + Likewise. + Likewise. + * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc: + Likewise. + * testsuite/23_containers/span/101411.cc: Likewise. + * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise. + * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: + Likewise. + * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise. + * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise. + * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: + Likewise. + * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: + Likewise. + * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: + Likewise. + * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: + Likewise. + * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: + Likewise. + * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: + Likewise. + +2021-11-26 Jonathan Wakely + + * testsuite/20_util/pointer_traits/lwg3545.cc: Move to_address + tests to ... + * testsuite/20_util/to_address/lwg3545.cc: ... here. Add -std + option before checking effective target. + +2021-11-25 Jonathan Wakely + + * testsuite/20_util/tuple/comparison_operators/overloaded2.cc: + Remove dg-error for C++11_only error. + +2021-11-25 Jonathan Wakely + + PR libstdc++/96416 + * include/bits/ptr_traits.h (pointer_traits): Reimplement to be + SFINAE-friendly (LWG 3545). + * testsuite/20_util/pointer_traits/lwg3545.cc: New test. + * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line. + * testsuite/20_util/to_address/lwg3545.cc: New test. + +2021-11-25 Jonathan Wakely + + PR libstdc++/101608 + * include/bits/ranges_algobase.h (__fill_n_fn): Check for + constant evaluation before using memset. + * testsuite/25_algorithms/fill_n/constrained.cc: Check + byte-sized values as well. + +2021-11-24 Jonathan Wakely + + * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for + debug mode. + * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. + +2021-11-24 Jonathan Wakely + + * testsuite/lib/libstdc++.exp: Rename effective target keywords + to avoid dashes in the name. + * testsuite/*: Update effective targe keywords. + +2021-11-23 Jonathan Wakely + + PR libstdc++/103086 + * testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr + with non-empty pointer and non-empty deleter. + +2021-11-23 Jonathan Wakely + + * testsuite/18_support/50594.cc: Check effective target. + * testsuite/20_util/allocator/1.cc: Likewise. + * testsuite/20_util/allocator/overaligned.cc: Likewise. + * testsuite/23_containers/unordered_map/96088.cc: Likewise. + * testsuite/23_containers/unordered_multimap/96088.cc: Likewise. + * testsuite/23_containers/unordered_multiset/96088.cc: Likewise. + * testsuite/23_containers/unordered_set/96088.cc: Likewise. + * testsuite/ext/throw_allocator/check_delete.cc: Likewise. + * testsuite/ext/throw_allocator/check_new.cc: Likewise. + * testsuite/lib/libstdc++.exp (check_effective_target_std_allocator_new): + Define new proc. + +2021-11-23 Jonathan Wakely + + PR libstdc++/103381 + * include/ext/bitmap_allocator.h: Include + instead of . + +2021-11-22 Jonathan Wakely + + * include/bits/c++config (_GLIBCXX14_DEPRECATED): Fix condition + checking for C++14. + +2021-11-20 François Dumont + + * include/bits/erase_if.h (__erase_nodes_if): Add _UnsafeContainer template + parameter. Use it to get iterators to work with. + * include/debug/macros.h (__glibcxx_check_erase2): New. + * include/debug/map.h (map<>::erase(_Base_const_iterator)): New. + (map<>::erase(const_iterator)): Use latter. + * include/debug/multimap.h (multimap<>::erase(_Base_const_iterator)): New. + (multimap<>::erase(const_iterator)): Use latter. + * include/debug/multiset.h (multiset<>::erase(_Base_const_iterator)): New. + (multiset<>::erase(const_iterator)): Use latter. + * include/debug/set.h (set<>::erase(_Base_const_iterator)): New. + (set<>::erase(const_iterator)): Use latter. + * include/debug/unordered_map (unordered_map<>::erase(_Base_const_iterator)): New. + (unordered_multimap<>::erase(const_iterator)): New. + * include/debug/unordered_set (unordered_set<>::erase(_Base_const_iterator)): New. + (unordered_multiset<>::erase(const_iterator)): New. + * include/experimental/map (erase_if): Adapt. + * include/experimental/set (erase_if): Adapt. + * include/experimental/unordered_map (erase_if): Adapt. + * include/experimental/unordered_set (erase_if): Adapt. + * include/std/map (erase_if): Adapt. + * include/std/set (erase_if): Adapt. + * include/std/unordered_map (erase_if): Adapt. + * include/std/unordered_set (erase_if): Adapt. + +2021-11-19 Jonathan Wakely + + * testsuite/27_io/basic_istringstream/cons/char/1.cc: Check all + constructors. + * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc: + Likewise. + * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise. + * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc: + Likewise. + * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise. + * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc: + Likewise. + +2021-11-19 Jonathan Wakely + + * src/c++98/locale_init.cc (_S_initialize_once): Check if + initialization has already been done. + (_S_initialize): Replace __gthread_active_p with + __is_single_threaded. Use __builtin_expect. + +2021-11-19 Jonathan Wakely + + PR libstdc++/103295 + * include/bits/basic_string.tcc (_M_construct): Use the + traits assign member to write into allcoated memory. + +2021-11-19 Iain Sandoe + + * testsuite/lib/prune.exp: Prune dsymutil (ld64) warning. + +2021-11-19 Jonathan Wakely + + PR libstdc++/103332 + PR libstdc++/102958 + * testsuite/21_strings/basic_string/capacity/char/1.cc: Add + -Wno-stringop-overflow. + * testsuite/21_strings/basic_string/operators/char/1.cc: + Likewise. + * testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc: + Add -Wno-stringop-overread. + +2021-11-19 Jonathan Wakely + + PR libstdc++/103295 + * include/bits/basic_string.h (_Alloc_traits): Replace typedef + with struct for C++20 mode. + * include/bits/basic_string.tcc (_M_replace): Use _Alloc_traits + for allocation. + * include/bits/char_traits.h (__gnu_cxx::char_traits::assign): + Use std::_Construct during constant evaluation. + (__gnu_cxx::char_traits::assign(CharT*, const CharT*, size_t)): + Likewise. Replace std::fill_n with memset or manual loop. + (__gnu_cxx::char_traits::copy): Likewise, replacing std::copy + with memcpy. + * include/ext/vstring.h: Include for + std::min. + * include/std/string_view: Likewise. + * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: + Add constexpr test. + +2021-11-19 Tamar Christina + + PR libstdc++/103305 + * config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit, + space, print, graph, cntrl, punct, alnum, blank): Use short or long + names depending on if short ones are defined. + +2021-11-18 Jonathan Wakely + + * include/bits/char_traits.h (__gnu_cxx::char_traits::move): + Do not compare unrelated pointers during constant evaluation. + * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc: + Improve tests for char_traits::move. + +2021-11-18 Jonathan Wakely + + * acinclude.m4: Replace AC_CACHE_VAL with AC_CACHE_CHECK. + * configure: Regenerate. + +2021-11-17 Jonathan Wakely + + * include/experimental/internet (address): Use std::_Construct + to initialize union members. + +2021-11-17 Jonathan Wakely + + * include/bits/basic_string.h (_M_construct_aux): Only define + for C++98. Remove constexpr. + (_M_construct_aux_2): Likewise. + (_M_construct(InputIter, InputIter)): Remove. + (basic_string(const basic_string&)): Call _M_construct with + iterator category argument. + (basic_string(const basic_string&, size_type, const Alloc&)): + Likewise. + (basic_string(const basic_string&, size_type, size_type)): + Likewise. + (basic_string(const charT*, size_type, const Alloc&)): Likewise. + Check for null pointer. + (basic_string(const charT*, const Alloc&)): Likewise. + (basic_string(initializer_list, const Alloc&)): Call + _M_construct with iterator category argument. + (basic_string(const basic_string&, const Alloc&)): Likewise. + (basic_string(basic_string&&, const Alloc&)): Likewise. + (basic_string(_InputIter, _InputIter, const Alloc&)): Likewise + for C++11 and later, call _M_construct_aux for C++98. + * include/bits/basic_string.tcc + (_M_construct(I, I, input_iterator_tag)): Replace try-block with + RAII type. + (_M_construct(I, I, forward_iterator_tag)): Likewise. Remove + __is_null_pointer check. + +2021-11-17 Jonathan Wakely + + PR libstdc++/103295 + * include/bits/basic_string.h (_M_use_local_data()): New + member function to make local buffer the active member. + (assign(const basic_string&)): Use it. + * include/bits/basic_string.tcc (_M_construct, reserve()): + Likewise. + +2021-11-17 Jonathan Wakely + + PR libstdc++/103240 + * libsupc++/tinfo2.cc (type_info::before): Use unadjusted name + to check for the '*' prefix. + * testsuite/util/testsuite_shared.cc: Add type_info object for + use in new test. + * testsuite/18_support/type_info/103240.cc: New test. + +2021-11-16 Jonathan Wakely + + * include/bits/basic_string.h (operator<=>): Use constexpr + unconditionally. + * testsuite/21_strings/basic_string/modifiers/constexpr.cc: + Require cxx11-abit effective target. + * testsuite/21_strings/headers/string/synopsis.cc: Add + conditional constexpr to declarations, and adjust relational + operators for C++20. + +2021-11-16 Patrick Palka + + * src/c++17/ryu/MERGE: Update the commit hash. + * src/c++17/ryu/d2s_intrinsics.h: Merge from Ryu's master + branch. + +2021-11-16 Jonathan Wakely + + * include/bits/basic_string.h (basic_string, operator""s): Add + constexpr for C++20. + (basic_string::basic_string(basic_string&&)): Only copy + initialized portion of the buffer. + (basic_string::basic_string(basic_string&&, const Alloc&)): + Likewise. + * include/bits/basic_string.tcc (basic_string): Add constexpr + for C++20. + (basic_string::swap(basic_string&)): Only copy initialized + portions of the buffers. + (basic_string::_M_replace): Add constexpr implementation that + doesn't depend on pointer comparisons. + * include/bits/cow_string.h: Adjust comment. + * include/ext/type_traits.h (__is_null_pointer): Add constexpr. + * include/std/string (erase, erase_if): Add constexpr. + * include/std/version (__cpp_lib_constexpr_string): Update + value. + * testsuite/21_strings/basic_string/cons/char/constexpr.cc: + New test. + * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc: + New test. + * testsuite/21_strings/basic_string/literals/constexpr.cc: + New test. + * testsuite/21_strings/basic_string/modifiers/constexpr.cc: New test. + * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc: + New test. + * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc: + New test. + * testsuite/21_strings/basic_string/version.cc: New test. + +2021-11-16 Jonathan Wakely + + * include/bits/stl_bvector.h (swap(_Bit_reference, _Bit_reference)) + (swap(_Bit_reference, bool&), swap(bool&, _Bit_reference)): + Define as hidden friends of _Bit_reference. + +2021-11-16 Jonathan Wakely + + * testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc: + Fix reads past the end of strings. + * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc: + Likewise. + * testsuite/experimental/string_view/operations/compare/wchar_t/1.cc: + Likewise. + +2021-11-16 Jonathan Wakely + + * testsuite/21_strings/basic_string/allocator/71964.cc: Fix + typo. + * testsuite/23_containers/set/allocator/71964.cc: Likewise. + +2021-11-15 Jason Merrill + + * testsuite/20_util/to_address/1_neg.cc: Adjust error. + * testsuite/26_numerics/random/concept.cc: Adjust asserts. + +2021-11-15 François Dumont + + * include/bits/hashtable_policy.h: + (_Hash_code_base<>::_M_hash_code(const _Hash&, const _Hash_node_value<_Value, true>&)): New. + (_Hash_code_base<>::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): New. + * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Use latter. + (_Hashtable<>::_M_merge_multi): Likewise. + * testsuite/23_containers/unordered_multiset/modifiers/merge.cc (test05): New test. + * testsuite/23_containers/unordered_set/modifiers/merge.cc (test04): New test. + +2021-11-15 Jason Merrill + + * src/c++17/memory_resource.cc: Add missing constexpr. + * include/experimental/internet: Only mark copy constructor + as constexpr with __cpp_constexpr_dynamic_alloc. + +2021-11-14 François Dumont + + * include/debug/safe_container.h (_Safe_container<>::_M_safe): Remove. + * include/debug/deque (deque::operator=(initializer_list<>)): Replace + _M_base() call with _Base:: call. + (deque::operator[](size_type)): Likewise. + * include/debug/forward_list (forward_list(forward_list&&, const allocator_type&)): + Remove _M_safe() and _M_base() calls. + (forward_list::operator=(initializer_list<>)): Remove _M_base() calls. + (forward_list::splice_after, forward_list::merge): Likewise. + * include/debug/list (list(list&&, const allocator_type&)): + Remove _M_safe() and _M_base() calls. + (list::operator=(initializer_list<>)): Remove _M_base() calls. + (list::splice, list::merge): Likewise. + * include/debug/map.h (map(map&&, const allocator_type&)): + Remove _M_safe() and _M_base() calls. + (map::operator=(initializer_list<>)): Remove _M_base() calls. + * include/debug/multimap.h (multimap(multimap&&, const allocator_type&)): + Remove _M_safe() and _M_base() calls. + (multimap::operator=(initializer_list<>)): Remove _M_base() calls. + * include/debug/set.h (set(set&&, const allocator_type&)): + Remove _M_safe() and _M_base() calls. + (set::operator=(initializer_list<>)): Remove _M_base() calls. + * include/debug/multiset.h (multiset(multiset&&, const allocator_type&)): + Remove _M_safe() and _M_base() calls. + (multiset::operator=(initializer_list<>)): Remove _M_base() calls. + * include/debug/string (basic_string(basic_string&&, const allocator_type&)): + Remove _M_safe() and _M_base() calls. + (basic_string::operator=(initializer_list<>)): Remove _M_base() call. + (basic_string::operator=(const _CharT*), basic_string::operator=(_CharT)): Likewise. + (basic_string::operator[](size_type), basic_string::operator+=(const basic_string&)): + Likewise. + (basic_string::operator+=(const _Char*), basic_string::operator+=(_CharT)): Likewise. + * include/debug/unordered_map (unordered_map(unordered_map&&, const allocator_type&)): + Remove _M_safe() and _M_base() calls. + (unordered_map::operator=(initializer_list<>), unordered_map::merge): + Remove _M_base() calls. + (unordered_multimap(unordered_multimap&&, const allocator_type&)): + Remove _M_safe() and _M_base() calls. + (unordered_multimap::operator=(initializer_list<>), unordered_multimap::merge): + Remove _M_base() calls. + * include/debug/unordered_set (unordered_set(unordered_set&&, const allocator_type&)): + Remove _M_safe() and _M_base() calls. + (unordered_set::operator=(initializer_list<>), unordered_set::merge): + Remove _M_base() calls. + (unordered_multiset(unordered_multiset&&, const allocator_type&)): + Remove _M_safe() and _M_base() calls. + (unordered_multiset::operator=(initializer_list<>), unordered_multiset::merge): + Remove _M_base() calls. + * include/debug/vector (vector(vector&&, const allocator_type&)): + Remove _M_safe() and _M_base() calls. + (vector::operator=(initializer_list<>)): Remove _M_base() calls. + (vector::operator[](size_type)): Likewise. + +2021-11-13 Jonathan Wakely + + * include/Makefile.am: Add spanstream header. + * include/Makefile.in: Regenerate. + * include/precompiled/stdc++.h: Add spanstream header. + * include/std/version (__cpp_lib_spanstream): Define. + * include/std/spanstream: New file. + * testsuite/27_io/spanstream/1.cc: New test. + * testsuite/27_io/spanstream/version.cc: New test. + +2021-11-13 Hans-Peter Nilsson + + PR libstdc++/103166 + * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM): + Use GCC_TRY_COMPILE_OR_LINK instead of AC_TRY_COMPILE. + * configure: Regenerate. + +2021-11-12 Jonathan Wakely + + PR libstdc++/59675 + * acinclude.m4 (libtool_VERSION): Bump version. + * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Add version and + export new symbol. + * configure: Regenerate. + * include/bits/c++config (__replacement_assert): Remove, declare + __glibcxx_assert_fail instead. + * src/c++11/debug.cc (__glibcxx_assert_fail): New function to + replace __replacement_assert, writing to stderr instead of + stdout. + * testsuite/util/testsuite_abi.cc: Update latest version. + +2021-11-12 Jonathan Wakely + Josh Marshall + + * include/bits/alloc_traits.h (_Destroy): Make constexpr for + C++20 mode. + * include/bits/allocator.h (__shrink_to_fit::_S_do_it): + Likewise. + * include/bits/stl_algobase.h (__fill_a1): Declare _Bit_iterator + overload constexpr for C++20. + * include/bits/stl_bvector.h (_Bit_type, _S_word_bit): Move out + of inline namespace. + (_Bit_reference, _Bit_iterator_base, _Bit_iterator) + (_Bit_const_iterator, _Bvector_impl_data, _Bvector_base) + (vector>): Add constexpr to every member function. + (_Bvector_base::_M_allocate): Initialize storage during constant + evaluation. + (vector::_M_initialize_value): Use __fill_bvector_n + instead of memset. + (__fill_bvector_n): New helper function to replace memset during + constant evaluation. + * include/bits/stl_uninitialized.h (__uninitialized_copy): + Move logic to ... + (__do_uninit_copy): New function. + (__uninitialized_fill): Move logic to ... + (__do_uninit_fill): New function. + (__uninitialized_fill_n): Move logic to ... + (__do_uninit_fill_n): New function. + (__uninitialized_copy_a): Add constexpr. Use __do_uninit_copy. + (__uninitialized_move_a, __uninitialized_move_if_noexcept_a): + Add constexpr. + (__uninitialized_fill_a): Add constexpr. Use __do_uninit_fill. + (__uninitialized_fill_n_a): Add constexpr. Use + __do_uninit_fill_n. + (__uninitialized_default_n, __uninitialized_default_n_a) + (__relocate_a_1, __relocate_a): Add constexpr. + * include/bits/stl_vector.h (_Vector_impl_data, _Vector_impl) + (_Vector_base, vector): Add constexpr to every member function. + (_Vector_impl::_S_adjust): Disable ASan annotation during + constant evaluation. + (_Vector_base::_S_use_relocate): Disable bitwise-relocation + during constant evaluation. + (vector::_Temporary_value): Use a union for storage. + * include/bits/vector.tcc (vector, vector): Add constexpr + to every member function. + * include/std/vector (erase_if, erase): Add constexpr. + * testsuite/23_containers/headers/vector/synopsis.cc: Add + constexpr for C++20 mode. + * testsuite/23_containers/vector/bool/cmp_c++20.cc: Change to + compile-only test using constant expressions. + * testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust + namespace for _S_word_bit. + * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: + Likewise. + * testsuite/23_containers/vector/cmp_c++20.cc: Likewise. + * testsuite/23_containers/vector/cons/89164.cc: Adjust errors + for C++20 and move C++17 test to ... + * testsuite/23_containers/vector/cons/89164_c++17.cc: ... here. + * testsuite/23_containers/vector/bool/capacity/constexpr.cc: New test. + * testsuite/23_containers/vector/bool/cons/constexpr.cc: New test. + * testsuite/23_containers/vector/bool/element_access/constexpr.cc: New test. + * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc: New test. + * testsuite/23_containers/vector/bool/modifiers/constexpr.cc: New test. + * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc: New test. + * testsuite/23_containers/vector/capacity/constexpr.cc: New test. + * testsuite/23_containers/vector/cons/constexpr.cc: New test. + * testsuite/23_containers/vector/data_access/constexpr.cc: New test. + * testsuite/23_containers/vector/element_access/constexpr.cc: New test. + * testsuite/23_containers/vector/modifiers/assign/constexpr.cc: New test. + * testsuite/23_containers/vector/modifiers/constexpr.cc: New test. + * testsuite/23_containers/vector/modifiers/swap/constexpr.cc: New test. + +2021-11-11 Jonathan Wakely + + * include/debug/deque (deque::operator=(const deque&)): Remove + definition. + * include/debug/list (list::operator=(const list&)): Likewise. + * include/debug/map.h (map::operator=(const map&)): Likewise. + * include/debug/multimap.h (multimap::operator=(const multimap&)): + Likewise. + * include/debug/multiset.h (multiset::operator=(const multiset&)): + Likewise. + * include/debug/set.h (set::operator=(const set&)): Likewise. + * include/debug/string (basic_string::operator=(const basic_string&)): + Likewise. + * include/debug/vector (vector::operator=(const vector&)): + Likewise. + (_Safe_vector::operator=(const _Safe_vector&)): Define for + C++98 as well. + +2021-11-11 Jonathan Wakely + + * include/std/memory_resource (memory_resource::allocate): + Implicitly create objects in the returned storage. + +2021-11-11 Jonathan Wakely + + * include/bits/stl_bvector.h (vector::data()): Give + protected access, and delete for C++11 and later. + +2021-11-10 Jonathan Wakely + + PR libstdc++/100117 + * testsuite/17_intro/headers/c++1998/49745.cc: Explicitly list + all C++ headers instead of including + +2021-11-10 Jonathan Wakely + + PR libstdc++/100748 + PR libstdc++/103133 + * config/os/gnu-linux/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK): + Define for glibc 2.34 and later. + +2021-11-09 François Dumont + + * include/bits/hashtable_policy.h (__distance_fw): Replace class keyword with + typename. + * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Remove noexcept + qualification. Use const_iterator for node extraction/reinsert. + (_Hashtable<>::_M_merge_multi): Likewise. Compute new hash code before extract. + * include/debug/safe_container.h (_Safe_container<>): Make all methods + protected. + * include/debug/safe_unordered_container.h + (_Safe_unordered_container<>::_UContInvalidatePred<_ExtractKey, _Source>): New. + (_Safe_unordered_container<>::_UMContInvalidatePred<_ExtractKey, _Source>): New. + (_Safe_unordered_container<>::_UContMergeGuard<_Source, _InvalidatePred>): New. + (_Safe_unordered_container<>::_S_uc_guard<_ExtractKey, _Source>): New. + (_Safe_unordered_container<>::_S_umc_guard<_ExtractKey, _Source>): New. + (_Safe_unordered_container<>::_M_invalide_all): Make public. + (_Safe_unordered_container<>::_M_invalide_if): Likewise. + (_Safe_unordered_container<>::_M_invalide_local_if): Likewise. + * include/debug/unordered_map + (unordered_map<>::mapped_type, pointer, const_pointer): New typedef. + (unordered_map<>::reference, const_reference, difference_type): New typedef. + (unordered_map<>::get_allocator, empty, size, max_size): Add usings. + (unordered_map<>::bucket_count, max_bucket_count, bucket): Add usings. + (unordered_map<>::hash_function, key_equal, count, contains): Add usings. + (unordered_map<>::operator[], at, rehash, reserve): Add usings. + (unordered_map<>::merge): New. + (unordered_multimap<>::mapped_type, pointer, const_pointer): New typedef. + (unordered_multimap<>::reference, const_reference, difference_type): New typedef. + (unordered_multimap<>::get_allocator, empty, size, max_size): Add usings. + (unordered_multimap<>::bucket_count, max_bucket_count, bucket): Add usings. + (unordered_multimap<>::hash_function, key_equal, count, contains): Add usings. + (unordered_multimap<>::rehash, reserve): Add usings. + (unordered_multimap<>::merge): New. + * include/debug/unordered_set + (unordered_set<>::mapped_type, pointer, const_pointer): New typedef. + (unordered_set<>::reference, const_reference, difference_type): New typedef. + (unordered_set<>::get_allocator, empty, size, max_size): Add usings. + (unordered_set<>::bucket_count, max_bucket_count, bucket): Add usings. + (unordered_set<>::hash_function, key_equal, count, contains): Add usings. + (unordered_set<>::rehash, reserve): Add usings. + (unordered_set<>::merge): New. + (unordered_multiset<>::mapped_type, pointer, const_pointer): New typedef. + (unordered_multiset<>::reference, const_reference, difference_type): New typedef. + (unordered_multiset<>::get_allocator, empty, size, max_size): Add usings. + (unordered_multiset<>::bucket_count, max_bucket_count, bucket): Add usings. + (unordered_multiset<>::hash_function, key_equal, count, contains): Add usings. + (unordered_multiset<>::rehash, reserve): Add usings. + (unordered_multiset<>::merge): New. + * testsuite/23_containers/unordered_map/debug/merge1_neg.cc: New test. + * testsuite/23_containers/unordered_map/debug/merge2_neg.cc: New test. + * testsuite/23_containers/unordered_map/debug/merge3_neg.cc: New test. + * testsuite/23_containers/unordered_map/debug/merge4_neg.cc: New test. + * testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc: New test. + * testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc: New test. + * testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc: New test. + * testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc: New test. + * testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc: New test. + * testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc: New test. + * testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc: New test. + * testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc: New test. + * testsuite/23_containers/unordered_set/debug/merge1_neg.cc: New test. + * testsuite/23_containers/unordered_set/debug/merge2_neg.cc: New test. + * testsuite/23_containers/unordered_set/debug/merge3_neg.cc: New test. + * testsuite/23_containers/unordered_set/debug/merge4_neg.cc: New test. + * testsuite/util/testsuite_abi.h: [_GLIBCXX_DEBUG] Use normal unordered + container implementation. + +2021-11-09 Jonathan Wakely + + * testsuite/26_numerics/random/random_device/cons/token.cc: + Print results of random_device_available checks. + +2021-11-09 Jonathan Wakely + + PR libstdc++/103146 + * src/c++11/random.cc: Check __powerpc64__ not __powerpc__. + +2021-11-09 Jonathan Wakely + + * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM): + Define. + * configure.ac (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM): + Use them. + * config.h.in: Regenerate. + * configure: Regenerate. + * src/c++11/random.cc (random_device): Add getentropy and + arc4random as sources. + * testsuite/26_numerics/random/random_device/cons/token.cc: + Check new tokens. + * testsuite/26_numerics/random/random_device/entropy.cc: + Likewise. + +2021-11-09 Jonathan Wakely + + * testsuite/26_numerics/random/random_device/cons/token.cc: + Retry if random devices produce the same value. + +2021-11-09 Rasmus Villemoes + + * config/os/vxworks/os_defines.h (_GLIBCXX_HAVE_TLS): Only + define for VxWorks >= 6.6. + +2021-11-05 Jonathan Wakely + + * include/bits/range_access.h (begin(valarray), end(valarray)): + Add noexcept. + +2021-11-05 Jonathan Wakely + + * include/std/tuple (tuple_size_v): Fix pack expansion. + +2021-11-05 Jonathan Wakely + + * src/c++11/random.cc (__x86_rdrand, __x86_rdseed): Add + [[unlikely]] attribute. + +2021-11-05 Jonathan Wakely + + * src/c++11/random.cc [__powerpc__] (USE_DARN): Define. + (__ppc_darn): New function to use POWER9 DARN instruction. + (Which): Add 'darn' enumerator. + (which_source): Check for __ppc_darn. + (random_device::_M_init): Support "darn" and "hw" tokens. + (random_device::_M_getentropy): Add darn to switch. + * testsuite/26_numerics/random/random_device/cons/token.cc: + Check "darn" token. + * testsuite/26_numerics/random/random_device/entropy.cc: + Likewise. + +2021-11-05 Jonathan Wakely + + * testsuite/lib/gdb-test.exp: Add target selector support to the + dg-final directives. + * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for + C++20. + * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. + * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak + comment. + +2021-11-04 Jonathan Wakely + + PR libstdc++/103086 + * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper + for accessing the tuple element stored in a _Tuple_impl node. + (tuple_get): New function for accessing a tuple element. + (unique_ptr_get): New function for accessing a unique_ptr. + (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get. + * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast + tuple to its base class before accessing _M_head_impl. + +2021-11-04 Jonathan Wakely + + * doc/xml/manual/evolution.xml: Document deprecations. + * doc/html/*: Regenerate. + * libsupc++/exception (unexpected_handler, unexpected) + (get_unexpected, set_unexpected): Add deprecated attribute. + Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up. + * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable + deprecated warnings. + * libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise. + * libsupc++/eh_terminate.cc: Likewise. + * libsupc++/eh_throw.cc (__cxa_init_primary_exception): + Likewise. + * libsupc++/unwind-cxx.h (struct __cxa_exception): Use + terminate_handler instead of unexpected_handler. + (struct __cxa_dependent_exception): Likewise. + (__unexpected): Likewise. + * testsuite/18_support/headers/exception/synopsis.cc: Add + dg-warning for deprecated warning. + * testsuite/18_support/exception_ptr/60612-unexpected.cc: + Disable deprecated warnings. + * testsuite/18_support/set_unexpected.cc: Likewise. + * testsuite/18_support/unexpected_handler.cc: Likewise. + +2021-11-04 Jonathan Wakely + + * include/bits/utility.h (__find_uniq_type_in_pack): Move + definition to here, ... + * include/std/tuple (__find_uniq_type_in_pack): ... from here. + * include/std/variant (__detail__variant::__index_of): Remove. + (__detail::__variant::__exactly_once): Define using + __find_uniq_type_in_pack instead of __index_of. + (get, get_if, variant::__index_of): Likewise. + +2021-11-04 Jonathan Wakely + + * include/bits/stl_pair.h (tuple_size_v): Define partial + specializations for std::pair. + * include/bits/utility.h (_Nth_type): Move definition here + and define primary template. + (tuple_size_v): Move definition here. + * include/std/array (tuple_size_v): Define partial + specializations for std::array. + * include/std/tuple (tuple_size_v): Move primary template to + . Define partial specializations for + std::tuple. + (tuple_element): Change definition to use _Nth_type. + * include/std/variant (_Nth_type): Move to . + (variant_alternative, variant): Adjust qualification of + _Nth_type. + * testsuite/20_util/tuple/element_access/get_neg.cc: Prune + additional errors from _Nth_type. + +2021-11-04 Jonathan Wakely + + * include/std/variant (__detail::__variant::__emplace): New + function template. + (_Copy_assign_base::operator=): Reorder conditions to match + bulleted list of effects in the standard. Use __emplace instead + of _M_reset followed by _Construct. + (_Move_assign_base::operator=): Likewise. + (__construct_by_index): Remove. + (variant::emplace): Use __emplace instead of _M_reset followed + by __construct_by_index. + (variant::swap): Hoist valueless cases out of visitor. Use + __emplace to replace _M_reset followed by _Construct. + +2021-11-04 Jonathan Wakely + + * include/std/variant (_Nth_type): Define partial + specializations to reduce number of instantiations. + (variant_size_v): Define partial specializations to avoid + instantiations. + (variant_alternative): Use _Nth_type. Add static assert. + (__tuple_count, __tuple_count_v): Replace with ... + (__count): New variable template. + (_Variant_union): Add deleted constructor. + (variant::__to_type): Use _Nth_type. + (variant::emplace): Use _Nth_type. Add deleted overloads for + invalid types and indices. + +2021-11-04 Jonathan Wakely + + PR libstdc++/102912 + * include/std/variant (_Variant_storage::__index_of): Remove. + (__variant_construct_single): Remove. + (__variant_construct): Remove. + (_Copy_ctor_base::_Copy_ctor_base(const _Copy_ctor_base&)): Do + construction directly instead of using __variant_construct. + (_Move_ctor_base::_Move_ctor_base(_Move_ctor_base&&)): Likewise. + (_Move_ctor_base::_M_destructive_move()): Remove. + (_Move_ctor_base::_M_destructive_copy()): Remove. + (_Copy_assign_base::operator=(const _Copy_assign_base&)): Do + construction directly instead of using _M_destructive_copy. + (variant::swap): Do construction directly instead of using + _M_destructive_move. + * testsuite/20_util/variant/102912.cc: New test. + +2021-11-03 Jonathan Wakely + + PR libstdc++/66742 + * include/bits/list.tcc (list::sort): Use mutable iterators for + comparisons. + * include/bits/stl_list.h (_Scratch_list::_Ptr_cmp): Likewise. + * testsuite/23_containers/list/operations/66742.cc: Check + non-const comparisons. + +2021-11-03 Jonathan Wakely + + * include/std/valarray (valarray::valarray()): Add noexcept. + (valarray::operator[]): Likewise. + +2021-11-01 Jonathan Wakely + + * include/debug/stl_iterator.h (__valid_range): Add constexpr + for C++20. Qualify call to avoid ADL. + (__get_distance, __can_advance, __unsafe, __base): Likewise. + * testsuite/25_algorithms/move/constexpr.cc: Also check with + std::reverse_iterator arguments. + +2021-11-01 Jonathan Wakely + + * include/std/span (span(Range&&)): Reorder constraints. + +2021-11-01 Jonathan Wakely + + PR libstdc++/103022 + * include/std/valarray (begin, end): Do not dereference an empty + valarray. Add noexcept and [[nodiscard]]. + * testsuite/26_numerics/valarray/range_access.cc: Check empty + valarray. Check iterator properties. Run as well as compiling. + * testsuite/26_numerics/valarray/range_access2.cc: Likewise. + * testsuite/26_numerics/valarray/103022.cc: New test. + +2021-10-29 Jonathan Wakely + + * testsuite/23_containers/stack/deduction.cc: Fix typo. + +2021-10-26 Martin Sebor + + * testsuite/21_strings/basic_string/capacity/1.cc: Also suppress + -Wstringop-overread. + * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: Same. + +2021-10-26 Rainer Orth + + * testsuite/28_regex/basic_regex/84110.cc (test01) + [__cpp_exceptions]: Disambiguate extended. + +2021-10-26 Rainer Orth + + * testsuite/17_intro/names.cc [__sun__] (r, x): Undef. + +2021-10-22 Jonathan Wakely + + PR libstdc++/102894 + * include/std/any (make_any): Add SFINAE constraint. + * testsuite/20_util/any/102894.cc: New test. + +2021-10-21 Jonathan Wakely + + * doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new + headers. + * scripts/run_doxygen: Fix post-processing of #include + directives in man pages. Use new xg++ to compile helper program. + +2021-10-21 Jonathan Wakely + + * include/bits/mofunc_impl.h: Add doxygen comments. + * include/std/functional: Likewise. + +2021-10-21 Jonathan Wakely + + * include/bits/alloc_traits.h: Suppress doxygen documentation. + * include/bits/allocated_ptr.h: Likewise. + * include/bits/enable_special_members.h: Likewise. + * include/bits/hashtable.h: Likewise. + * include/bits/hashtable_policy.h: Likewise. + * include/bits/uses_allocator.h: Likewise. + * include/bits/node_handle.h: Document node handles and suppress + documentation for protected members. + * include/std/any: Suppress documentation for implementation + details. + +2021-10-21 Patrick Palka + + PR libstdc++/102358 + * include/bits/stl_iterator.h (__niter_base): Make constexpr + for C++20. + (__miter_base): Likewise. + * testsuite/25_algorithms/move/constexpr.cc: New test. + +2021-10-21 Patrick Palka + + * include/std/ranges (istream_view): Replace this function + template with an alias template as per P2432R1. + (wistream_view): Define as per P2432R1. + (views::_Istream, views::istream): Likewise. + * testsuite/std/ranges/istream_view.cc (test07): New test. + +2021-10-21 Patrick Palka + + * include/bits/ranges_util.h (views::_Drop): Forward declare. + (subrange): Befriend views::_Drop. + (subrange::_S_store_size): Declare constexpr instead of just + const, remove obsolete comment. + * include/std/ranges (views::__detail::__is_empty_view): Define. + (views::__detail::__is_basic_string_view): Likewise. + (views::__detail::__is_subrange): Likewise. + (views::__detail::__is_iota_view): Likewise. + (views::__detail::__can_take_view): Rename template parm _Tp to _Dp. + (views::_Take): Rename template parm _Tp to _Dp, make it non-deducible + and fix it to range_difference_t<_Range>. Implement P1739R4 and + LWG 3407 changes. + (views::__detail::__can_drop_view): Rename template parm _Tp to _Dp. + (views::_Drop): As with views::_Take. + (views::_Counted): Implement P1739R4 changes. + * include/std/span (__detail::__is_std_span): Rename to ... + (__detail::__is_span): ... this and turn it into a variable + template. + (__detail::__is_std_array): Turn it into a variable template. + (span::span): Adjust uses of __is_std_span and __is_std_array + accordingly. + * testsuite/std/ranges/adaptors/p1739.cc: New test. + +2021-10-21 Patrick Palka + + * include/bits/stl_iterator.h (common_iterator::__arrow_proxy): + Make fully constexpr as per LWG 3595. + (common_iterator::__postfix_proxy): Likewise. + +2021-10-21 Patrick Palka + + * include/std/ranges (lazy_split_view::base): Add forward_range + constraint as per LWG 3591. + (lazy_split_view::begin, lazy_split_view::end): Also check + simpleness of _Pattern as per LWG 3592. + (split_view::base): Relax copyable constraint as per LWG 3590. + +2021-10-21 Patrick Palka + + * include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust + criteria for returning bidirectional_iterator_tag as per LWG 3535. + (join_view::_Iterator::_S_iter_concept): Likewise. + +2021-10-21 Patrick Palka + + * include/bits/ranges_base.h (viewable_range): Adjust as per + LWG 3481. + * testsuite/std/ranges/adaptors/all.cc (test07): New test. + +2021-10-21 Jonathan Wakely + + PR libstdc++/102863 + * include/std/optional (optional::and_then, optional::transform): + Remove requires-clause. + * testsuite/20_util/optional/monadic/and_then.cc: Check + overload resolution doesn't cause errors. + * testsuite/20_util/optional/monadic/transform.cc: Likewise. + +2021-10-20 Jonathan Wakely + + * testsuite/20_util/optional/monadic/transform.cc: Check that + an rvalue result is not materialized too soon. + +2021-10-19 Patrick Palka + + * include/std/ranges (iota_view::_Iterator::operator+): Adjust + definition as per LWG 3580. + (iota_view::_Iterator::operator-): Likewise. + +2021-10-19 Patrick Palka + + * include/std/ranges (basic_istream_view::_M_object): Value + initialize as per LWG 3568. + +2021-10-19 Patrick Palka + + * include/bits/ranges_util.h + (__detail::__uses_nonqualification_pointer_conversion): Define + and use it ... + (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470. + * testsuite/std/ranges/subrange/1.cc: New test. + +2021-10-19 Patrick Palka + + * include/std/ranges (iota_view::_Iterator): Befriend iota_view. + (iota_view::_Sentinel): Likewise. + (iota_view::iota_view): Add three overloads, each taking an + iterator/sentinel pair as per LWG 3523. + * testsuite/std/ranges/iota/iota_view.cc (test06): New test. + +2021-10-19 Patrick Palka + + * include/bits/ranges_base.h (view_interface): Forward declare. + (__detail::__is_derived_from_view_interface_fn): Declare. + (__detail::__is_derived_from_view_interface): Define as per LWG 3549. + (enable_view): Adjust as per LWG 3549. + * include/bits/ranges_util.h (view_interface): Don't derive from + view_base. + * include/std/ranges (filter_view): Revert r11-3504 change. + (transform_view): Likewise. + (take_view): Likewise. + (take_while_view): Likewise. + (drop_view): Likewise. + (drop_while_view): Likewise. + (join_view): Likewise. + (lazy_split_view): Likewise. + (split_view): Likewise. + (reverse_view): Likewise. + * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes. + * testsuite/std/ranges/view.cc (test_view::test_view): Remove + this default ctor since views no longer need to be default initable. + (test01): New test. + +2021-10-19 Jonathan Wakely + + * src/c++11/random.cc (which_source): New helper function. + (random_device::_M_getentropy()): Use which_source and return + suitable values for sources other than device files. + * testsuite/26_numerics/random/random_device/entropy.cc: New test. + +2021-10-19 Jonathan Wakely + + * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen) + (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for + relative ${top_srcdir}. + * doc/Makefile.in: Regenerate. + +2021-10-19 Jonathan Wakely + + * include/std/variant (_Uninitialized): Use an empty struct + for the unused union member, instead of char. + +2021-10-19 Jonathan Wakely + + * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove + non-deducible template parameter from deduction guide. + * testsuite/23_containers/stack/deduction.cc: Check new C++23 + deduction guides. + +2021-10-19 Jonathan Wakely + + * include/std/optional (_Optional_payload_base::_Storage): Add + constructor taking a callable function to invoke. + (_Optional_payload_base::_M_apply): New function. + (__cpp_lib_monadic_optional): Define for C++23. + (optional::and_then, optional::transform, optional::or_else): + Define for C++23. + * include/std/ranges (__detail::__cached): Remove. + (__detail::__non_propagating_cache): Remove use of __cached for + contained value. Use _Optional_payload_base::_M_construct and + _Optional_payload_base::_M_apply to set the contained value. + * include/std/version (__cpp_lib_monadic_optional): Define. + * testsuite/20_util/optional/monadic/and_then.cc: New test. + * testsuite/20_util/optional/monadic/or_else.cc: New test. + * testsuite/20_util/optional/monadic/or_else_neg.cc: New test. + * testsuite/20_util/optional/monadic/transform.cc: New test. + * testsuite/20_util/optional/monadic/version.cc: New test. + +2021-10-19 Jonathan Wakely + + PR libstdc++/102825 + * include/bits/mofunc_impl.h (move_only_function): Remove + invalid base initializer. + * testsuite/20_util/move_only_function/cons.cc: Instantiate + constructors to check bodies. + +2021-10-15 Jonathan Wakely + + * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive + call to function with deduced return type. + +2021-10-15 Jonathan Wakely + + * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite): + Define for C++23. + (basic_string::resize_and_overwrite): Declare. + * include/bits/basic_string.tcc (basic_string::resize_and_overwrite): + Define. + * include/std/version (__cpp_lib_resize_and_overwrite): Define + for C++23. + * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: + New test. + +2021-10-15 Jonathan Wakely + + PR libstdc++/101263 + * include/std/ranges (__cached): New wrapper struct. + (__non_propagating_cache): Use __cached for contained value. + (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use + std::construct_at instead of placement new. + * testsuite/std/ranges/adaptors/join.cc: Check constexpr works. + +2021-10-15 Jonathan Wakely + + * include/std/variant (__cpp_lib_variant): Update value for + C++20. + (__variant_cast, __variant_construct): Add constexpr for C++20. + (__variant_construct_single, __construct_by_index) Likewise. Use + std::_Construct instead of placement new. + (_Uninitialized) [__cplusplus >= 202002]: Replace + buffer with a union and define a destructor. + (_Variadic_union) [__cplusplus >= 202002]: Add a specialization + for non-trivial destruction. + (_Variant_storage::__index_of): New helper variable template. + (_Variant_storage::~_Variant_storage()): Add constexpr. + (_Variant_storage::_M_reset()): Likewise. + (_Copy_ctor_base, _Move_ctor_base): Likewise. + (_Copy_assign_base, _Move_assign_base): Likewise. + (variant, swap): Likewise. + * include/std/version (__cpp_lib_variant): Update value for + C++20. + * testsuite/20_util/optional/version.cc: Check for exact value + in C++17. + * testsuite/20_util/variant/87619.cc: Increase timeout for + C++20 mode. + * testsuite/20_util/variant/constexpr.cc: New test. + * testsuite/20_util/variant/version.cc: New test. + +2021-10-15 Jonathan Wakely + + * include/std/variant (__detail::__variant::__get_storage): + Remove unused function. + (__variant_construct_by_index): Set index after construction is + complete. Rename to ... + (__detail::__variant::__construct_by_index): ... this. + (variant): Use new name for __variant_construct_by_index friend + declaration. Remove __get_storage friend declaration. + (variant::emplace): Use new name and remove try-blocks. + +2021-10-15 Jonathan Wakely + + * include/std/variant (_Variant_storage::_M_storage()): Remove. + (__detail::__variant::__get_storage): Remove. + (variant): Remove friend declaration of __get_storage. + +2021-10-15 Jason Merrill + + * testsuite/20_util/integer_comparisons/greater_equal_neg.cc: + * testsuite/20_util/integer_comparisons/greater_neg.cc: + * testsuite/20_util/integer_comparisons/less_equal_neg.cc: + Adjust expected message. + * testsuite/lib/prune.exp: Prune 'in constexpr expansion'. + +2021-10-14 Jonathan Wakely + + * include/std/variant (__variant::__get(in_place_index_t, U&&)): + Rename to __get_n and remove first argument. Replace pair of + overloads with a single function using 'if constexpr'. + (__variant::__get(Variant&&)): Adjust to use __get_n. + +2021-10-14 Jonathan Wakely + + * include/bits/fs_path.h (path(path&&)): Make unconditionally + noexcept. + (path::_S_convert(T)): Add condtional noexcept. + +2021-10-14 Jonathan Wakely + + PR libstdc++/102743 + * include/bits/fs_path.h (path::_S_convert(T)): Fix condition + for returning the same string unchanged. + +2021-10-14 Jonathan Wakely + + * include/bits/regex.h: Check __cpp_inline_variables instead of + __cplusplus. + +2021-10-14 Jonathan Wakely + + * testsuite/20_util/is_layout_compatible/version.cc: Check + correct macro. + +2021-10-14 Jonathan Wakely + + * include/bits/stl_construct.h (_Construct): Use + std::construct_at when constant evaluated. + * include/std/optional (_Storage, _Optional_payload, optional): + Add constexpr as specified by P2231R1. + * include/std/version (__cpp_lib_optional): Update value for + C++20. + * testsuite/20_util/optional/requirements.cc: Check feature test + macro. + * testsuite/20_util/optional/constexpr/assign.cc: New test. + * testsuite/20_util/optional/constexpr/cons/conv.cc: New test. + * testsuite/20_util/optional/constexpr/modifiers.cc: New test. + * testsuite/20_util/optional/constexpr/swap.cc: New test. + * testsuite/20_util/optional/version.cc: New test. + +2021-10-13 Jonathan Wakely + + * include/bits/fs_path.h (__detail::__is_contiguous): Add + partial specializations for pointers and __normal_iterator. + +2021-10-13 Jonathan Wakely + + * testsuite/27_io/filesystem/path/construct/102592.C: Moved to... + * testsuite/27_io/filesystem/path/construct/102592.cc: ...here. + * testsuite/28_regex/match_results/102667.C: Moved to... + * testsuite/28_regex/match_results/102667.cc: ...here. + +2021-10-13 Jonathan Wakely + + * include/bits/fs_path.h (__detail::__is_contiguous): New + variable template to identify contiguous iterators. + (__detail::__unified_char8_t): New alias template to decide when + to treat char8_t as char without encoding conversion. + (__detail::__effective_range(const basic_string&)): Use + std::char_traits for returned string view. + (__detail::__effective_range(const basic_string_view&)): + Likewise. + (__detail::__effective_range(const Source&)): Use + __is_contiguous to detect mode cases of contiguous iterators. + Use __unified_char8_t to return a std::string instead of + std::u8string. + +2021-10-13 Jonathan Wakely + + PR libstdc++/102592 + * include/bits/fs_path.h (path::path(Iter, Iter, format)) + (path::append(Iter, Iter), path::concat(Iter, Iter)): Call + __string_from_range directly, instead of two-argument overload + of _S_convert. + (path::_S_convert(Iter, Iter)): Remove. + * testsuite/27_io/filesystem/path/construct/102592.C: New test. + +2021-10-13 Jonathan Wakely + + * include/bits/c++config (__terminate): Add extern "C++". + +2021-10-12 Jonathan Wakely + + * testsuite/20_util/tuple/comparison_operators/overloaded.cc: + Restore test for operator<. + * testsuite/20_util/tuple/comparison_operators/overloaded2.cc: + Adjust expected errors for C++20. + +2021-10-12 Jonathan Wakely + + PR libstdc++/101960 + * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as + defauled. + * testsuite/20_util/tuple/cons/101960.cc: Check tuples with + array elements before the last element. + +2021-10-12 Jonathan Wakely + + * include/bits/stl_iterator_base_funcs.h (__advance): Add + deleted overload to improve diagnostics. + (__distance): Likewise. + +2021-10-11 Jonathan Wakely + + * include/bits/atomic_timed_wait.h: Remove unused header. + * include/bits/c++config (std:__terminate): Define. + * include/bits/semaphore_base.h: Remove and use + __terminate instead of terminate. + * include/bits/std_thread.h: Likewise. + * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id + to call __cxxabiv1::__terminate. + +2021-10-11 Jonathan Wakely + + * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid + std::__to_address by using poitner directly or using base() + member of __normal_iterator. + +2021-10-11 Jonathan Wakely + + * testsuite/18_support/numeric_limits/lowest.cc: Use + numeric_limits::is_integer instead of is_integral::value. + +2021-10-11 Jonathan Wakely + + PR libstdc++/89927 + * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)): + Add __glibcxx_requires_string_len assertion. + (basic_regex::assign(InputIterator, InputIterator)): Add + __glibcxx_requires_valid_range assertion. + * include/bits/regex_scanner.tcc (_Scanner::_M_advance()) + (_Scanner::_M_scan_normal()): Use string literal in assertions. + +2021-10-11 Jonathan Wakely + + PR libstdc++/102667 + * include/bits/regex.h (match_result::empty()): Optimize by + calling the base function directly. + (match_results::end()): Check _Base_type::empty() not empty(). + * testsuite/28_regex/match_results/102667.C: New test. + +2021-10-08 Jonathan Wakely + + PR libstdc++/98725 + * testsuite/18_support/numeric_limits/lowest.cc: Remove use of + _GLIBCXX_USE_WCHAR_T. + * testsuite/18_support/numeric_limits/min_max.cc: Replace use of + _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX. + * testsuite/20_util/from_chars/1_neg.cc: Remove use of + _GLIBCXX_USE_WCHAR_T. + * testsuite/20_util/function_objects/searchers.cc: Likewise. Use + char_traits::length instead of wcslen. + * testsuite/20_util/hash/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/is_arithmetic/value.cc: Likewise. + * testsuite/20_util/is_compound/value.cc: Likewise. + * testsuite/20_util/is_floating_point/value.cc: Likewise. + * testsuite/20_util/is_fundamental/value.cc: Likewise. + * testsuite/20_util/is_integral/value.cc: Likewise. + * testsuite/20_util/is_signed/value.cc: Likewise. + * testsuite/20_util/is_unsigned/value.cc: Likewise. + * testsuite/20_util/is_void/value.cc: Likewise. + * testsuite/20_util/make_signed/requirements/typedefs-1.cc: + Likewise. + * testsuite/20_util/make_signed/requirements/typedefs-2.cc: + Likewise. + * testsuite/20_util/make_signed/requirements/typedefs-3.cc: + Likewise. + * testsuite/20_util/make_signed/requirements/typedefs-4.cc: + Likewise. + * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc: + Likewise. + * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: + Likewise. + * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: + Likewise. + * testsuite/20_util/to_chars/3.cc: Likewise. + * testsuite/20_util/type_identity/requirements/typedefs.cc: + Likewise. + * testsuite/21_strings/basic_string/hash/debug.cc: Likewise. + * testsuite/21_strings/basic_string/hash/hash.cc: Likewise. + * testsuite/21_strings/basic_string/literals/types-char8_t.cc: + Likewise. + * testsuite/21_strings/basic_string/literals/types.cc: Likewise. + * testsuite/21_strings/basic_string/literals/values-char8_t.cc: + Likewise. + * testsuite/21_strings/basic_string/literals/values.cc: + Likewise. + * testsuite/21_strings/basic_string/modifiers/64422.cc: + Likewise. + * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string/requirements/citerators.cc: + Likewise. + * testsuite/21_strings/basic_string/requirements/typedefs.cc: + Likewise. + * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: + Likewise. + * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc: + Likewise. + * testsuite/21_strings/basic_string_view/literals/types.cc: + Likewise. + * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc: + Likewise. + * testsuite/21_strings/basic_string_view/literals/values.cc: + Likewise. + * testsuite/21_strings/basic_string_view/requirements/typedefs.cc: + Likewise. + * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise. + * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc: + Likewise. + * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc: + Likewise. + * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc: + Likewise. + * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise. + * testsuite/25_algorithms/fill/4.cc: Likewise. + * testsuite/25_algorithms/fill_n/1.cc: Likewise. + * testsuite/experimental/functional/searchers.cc: Likewise. Use + char_traits::length instead of wcslen. + * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc: + Likewise. + * testsuite/experimental/string_view/literals/types-char8_t.cc: + Likewise. + * testsuite/experimental/string_view/literals/types.cc: + Likewise. + * testsuite/experimental/string_view/literals/values-char8_t.cc: + Likewise. + * testsuite/experimental/string_view/literals/values.cc: + Likewise. + * testsuite/experimental/string_view/range_access/wchar_t/1.cc: + Likewise. + * testsuite/experimental/string_view/requirements/typedefs.cc: + Likewise. + * testsuite/experimental/string_view/typedefs.cc: Likewise. + * testsuite/ext/vstring/range_access.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: + Likewise. + * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc: + Likewise. + * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc: + Likewise. + * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc: + Likewise. + * testsuite/tr1/4_metaprogramming/is_compound/value.cc: + Likewise. + * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc: + Likewise. + * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc: + Likewise. + * testsuite/tr1/4_metaprogramming/is_integral/value.cc: + Likewise. + * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise. + * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc: + Likewise. + * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise. + * testsuite/tr1/6_containers/hash/24799.cc: Likewise. + +2021-10-08 Jonathan Wakely + + PR libstdc++/98725 + * include/std/ostream (operator<<(basic_ostream&, wchar_t)) + (operator<<(basic_ostream&, const wchar_t*)): Always + define as deleted. Do not check _GLIBCXX_USE_WCHAR_T. + +2021-10-08 Jonathan Wakely + + PR libstdc++/98725 + * include/bits/locale_conv.h (wstring_convert, wbuffer_convert): + Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T. + +2021-10-08 Jonathan Wakely + + PR libstdc++/98725 + * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T] + (__byte_operand): Define specialization. + * include/std/type_traits (__make_signed) + (__make_unsigned): Remove redundant check for + __WCHAR_TYPE__ being defined. + * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T] + (__is_integral_helper): Likewise. + +2021-10-08 Jonathan Wakely + + PR libstdc++/98725 + * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T] + (__rc_string_base): Define member function. + * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T] + (hash<__gnu_cxx::__wvstring>): Define specialization. + * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring) + (__wsso_string, __wrc_string): Declare typedefs. + +2021-10-08 Jonathan Wakely + + PR libstdc++/98725 + * include/bits/char_traits.h (char_traits): Define + explicit specialization unconditionally. + * include/bits/basic_string.h (hash): Define + unconditionally. Do not check _GLIBCXX_USE_WCHAR_T. + * include/bits/stringfwd.h (wstring): Likewise. + * include/debug/string (wstring): Likewise. + * include/experimental/string_view (experimental::wstring_view) + (hash): Likewise. + * include/std/string (pmr::wstring, hash): + Likewise. + * include/std/string_view (wstring_view, hash): + Likewise. + +2021-10-08 Jonathan Wakely + + * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to... + * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here. + +2021-10-08 Jonathan Wakely + + * testsuite/22_locale/conversions/buffer/1.cc: Check + _GLIBCXX_USE_WCHAR_T. + * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add + test using char16_t. + * testsuite/22_locale/conversions/string/1.cc: Check + _GLIBCXX_USE_WCHAR_T. + * testsuite/27_io/filesystem/path/generic/generic_string.cc: + Likewise. + * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: + Likewise. + * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise. + * testsuite/27_io/filesystem/path/native/string-char8_t.cc: + Likewise. + * testsuite/27_io/filesystem/path/native/string.cc: Likewise. + * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc: + Likewise. + * testsuite/experimental/filesystem/path/generic/generic_string.cc: + Likewise. + * testsuite/experimental/filesystem/path/native/alloc.cc: + Likewise. + * testsuite/experimental/filesystem/path/native/string-char8_t.cc: + Likewise. + * testsuite/experimental/filesystem/path/native/string.cc: + Likewise. + +2021-10-08 Jonathan Wakely + + * testsuite/26_numerics/bit/bit.rotate/rotr.cc: + * testsuite/util/testsuite_common_types.h: + +2021-10-08 Jonathan Wakely + + * testsuite/18_support/numeric_limits/40856.cc: Replace use of + _GLIBCXX_USE_INT128. + * testsuite/18_support/numeric_limits/dr559.cc: Likewise. + * testsuite/18_support/numeric_limits/lowest.cc: Likewise. + * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise. + * testsuite/20_util/is_floating_point/value.cc: Likewise. + * testsuite/20_util/is_integral/value.cc: Likewise. + * testsuite/20_util/is_signed/value.cc: Likewise. + * testsuite/20_util/is_unsigned/value.cc: Likewise. + * testsuite/20_util/make_signed/requirements/typedefs-1.cc: + Likewise. + * testsuite/20_util/make_signed/requirements/typedefs-2.cc: + Likewise. + * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc: + Likewise. + * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: + Likewise. + * testsuite/20_util/type_identity/requirements/typedefs.cc: + Likewise. + * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise. + * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise. + * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise. + * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise. + * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise. + * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise. + * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise. + * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise. + * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc: + Likewise. + * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise. + +2021-10-08 Jonathan Wakely + + * include/bits/hashtable_policy.h (_Select1st): Replace use of + std::get. + (_Select2nd): Remove. + (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type + typedef instead of deducing it. Remove unnecessary piecewise + construction. + (_ReuseOrAllocNode): Make __node_type public. + (_Map_base): Adjust partial specialization to be able to extract + the mapped_type without using tuple_element. + (_Map_base::at): Define inline + * testsuite/23_containers/unordered_map/requirements/53339.cc: + Remove XFAIL. + * testsuite/23_containers/unordered_multimap/requirements/53339.cc: + Likewise. + +2021-10-08 Jonathan Wakely + + * include/bits/hashtable.h: Move static assertion to destructor. + * include/bits/hashtable_policy.h: Deduce value type from node + type without instantiating it. + +2021-10-08 Jonathan Wakely + + * src/c++11/limits.cc: Fail if __cpp_inline_variables is + defined. + +2021-10-08 Jonathan Wakely + + PR libstdc++/92546 + * include/bits/ranges_algobase.h: Replace with a + subset of the headers it includes. + +2021-10-08 Jonathan Wakely + + * include/experimental/deque (erase, erase_if): Revert changes + to avoid debug mode overhead. + * include/experimental/map (erase, erase_if): Likewise. + * include/experimental/set (erase, erase_if): Likewise. + * include/experimental/unordered_map (erase, erase_if): + Likewise. + * include/experimental/unordered_set (erase, erase_if): + Likewise. + * include/experimental/vector (erase, erase_if): Likewise. + * include/std/deque (erase, erase_if): Likewise. + * include/std/map (erase, erase_if): Likewise. + * include/std/set (erase, erase_if): Likewise. + * include/std/unordered_map (erase, erase_if): Likewise. + * include/std/unordered_set (erase, erase_if): Likewise. + * include/std/vector (erase, erase_if): Likewise. + +2021-10-08 Jonathan Wakely + + * include/std/chrono (__detail::__units_suffix_misc): New + helper function. + (__detail::__units_suffix): Likewise. + (chrono::operator<<(basic_ostream&, const duration&)): Define. + * testsuite/20_util/duration/io.cc: New test. + +2021-10-07 Jonathan Wakely + + * include/Makefile.am: Add new header. + * include/Makefile.in: Regenerate. + * include/std/chrono (duration, time_point, system_clock) + (steady_clock, high_resolution_clock, chrono_literals, sys_time) + (file_clock, file_time): Move to ... + * include/bits/chrono.h: New file. + * include/bits/atomic_futex.h: Include new header instead of + . + * include/bits/atomic_timed_wait.h: Likewise. + * include/bits/fs_fwd.h: Likewise. + * include/bits/semaphore_base.h: Likewise. + * include/bits/this_thread_sleep.h: Likewise. + * include/bits/unique_lock.h: Likewise. + * include/experimental/bits/fs_fwd.h: Likewise. + * include/experimental/chrono: Likewise. + * include/experimental/io_context: Likewise. + * include/experimental/netfwd: Likewise. + * include/experimental/timer: Likewise. + * include/std/condition_variable: Likewise. + * include/std/mutex: Likewise. + * include/std/shared_mutex: Likewise. + +2021-10-07 Jonathan Wakely + + PR libstdc++/102377 + * include/bits/atomic_wait.h (__waiter_pool_base:_S_align): + Hardcode to 64 instead of using non-constant constant. + +2021-10-07 Jonathan Wakely + + * include/bits/erase_if.h (__erase_nodes_if): Remove redundant + __niter_base calls. + * include/std/string (erase, erase_if): Likewise. + * include/std/deque (erase, erase_if): Access non-debug + container directly. + * include/std/map (erase, erase_if): Likewise. + * include/std/set (erase, erase_if): Likewise. + * include/std/unordered_map (erase, erase_if): Likewise. + * include/std/unordered_set (erase, erase_if): Likewise. + * include/std/vector (erase, erase_if): Likewise. + * include/experimental/deque (erase, erase_if): Likewise. + * include/experimental/map (erase, erase_if): Likewise. + * include/experimental/set (erase, erase_if): Likewise. + * include/experimental/unordered_map (erase, erase_if): + Likewise. + * include/experimental/unordered_set (erase, erase_if): + Likewise. + * include/experimental/vector (erase, erase_if): Likewise. + +2021-10-06 Jonathan Wakely + + * include/Makefile.am: Add new headers. + * include/Makefile.in: Regenerate. + * include/std/functional: Include . + * include/std/version (__cpp_lib_move_only_function): Define. + * include/bits/mofunc_impl.h: New file. + * include/bits/move_only_function.h: New file. + * testsuite/20_util/move_only_function/call.cc: New test. + * testsuite/20_util/move_only_function/cons.cc: New test. + * testsuite/20_util/move_only_function/move.cc: New test. + * testsuite/20_util/move_only_function/version.cc: New test. + +2021-10-05 Jonathan Wakely + + * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc: + New test. + * testsuite/23_containers/span/trivially_copyable.cc: New test. + +2021-10-05 Jonathan Wakely + + * include/bits/utility.h (__is_in_place_type_v): Define + variable template to detect in_place_type_t specializations. + (__is_in_place_type): Replace class template with alias + template using __is_in_place_type_v. + * include/std/any (any(T&&)): Check __is_in_place_type first and + avoid instantiating is_copy_constructible unnecessarily. + +2021-10-05 Jonathan Wakely + + * testsuite/20_util/integer_comparisons/greater.cc: New test. + +2021-10-05 Jonathan Wakely + + * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: + Check result matches non-volatile pointer. + +2021-10-05 Jonathan Wakely + + PR c++/102535 + * testsuite/20_util/is_trivially_constructible/value.cc: Adjust + expected value for C++20. + +2021-10-05 Jonathan Wakely + + * include/bits/std_function.h (_Any_data::_M_access): Add + noexcept. + (_Function_base::_Base_manager::_M_get_pointer): Likewise. + (_Function_base::_Base_manager::_M_not_empty_function): + Likewise. + +2021-10-05 Jonathan Wakely + + * include/std/ostream (operator<<(const volatile void*)): + Add new overload, as per P1147R1. + * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: + New test. + +2021-10-05 Jonathan Wakely + + * include/bits/stl_queue.h + (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct + value. + * include/bits/stl_stack.h + (__cpp_lib_adaptor_iterator_pair_constructor): Likewise. + * include/std/version + (__cpp_lib_adaptor_iterator_pair_constructor): Likewise. + * testsuite/23_containers/queue/cons_from_iters.cc: Update + expected value. + * testsuite/23_containers/stack/cons_from_iters.cc: Likewise. + +2021-10-04 Jonathan Wakely + + * include/bits/forward_list.h (forward_list): Use non-deduced + context for allocator parameter of allocator-extended copy and + move constructors. + * include/bits/stl_bvector.h (vector): Likewise. + * include/bits/stl_deque.h (deque): Likewise. + * include/bits/stl_list.h (list): Likewise. + * include/bits/stl_map.h (map): Likewise. + * include/bits/stl_multimap.h (multimap): Likewise. + * include/bits/stl_multiset.h (multiset): Likewise. + * include/bits/stl_set.h (set): Likewise. + * include/bits/stl_vector.h (vector): Likewise. + * include/bits/stl_queue.h (queue, priority_queue): Do not + constrain Allocator template parameter of deduction guides that + have a Container parameter. + * include/bits/stl_stack.h (stack): Likewise. + * include/debug/deque (__gnu_debug::deque): Use non-deduced + context for allocator parameter of allocator-extended copy and + move constructors. + * include/debug/list (__gnu_debug::list): Likewise. + * include/debug/map.h (__gnu_debug::map): Likewise. + * include/debug/multimap.h (__gnu_debug::multimap): Likewise. + * include/debug/multiset.h (__gnu_debug::multiset): Likewise. + * include/debug/set.h (__gnu_debug::set): Likewise. + * include/debug/vector (__gnu_debug::vector): Likewise. + * testsuite/23_containers/deque/cons/deduction.cc: Test class + template argument deduction with non-deduced allocator + arguments. + * testsuite/23_containers/forward_list/cons/deduction.cc: + Likewise. + * testsuite/23_containers/list/cons/deduction.cc: Likewise. + * testsuite/23_containers/map/cons/deduction.cc: Likewise. + * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. + * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. + * testsuite/23_containers/priority_queue/deduction.cc: Likewise. + * testsuite/23_containers/queue/deduction.cc: Likewise. + * testsuite/23_containers/set/cons/deduction.cc: Likewise. + * testsuite/23_containers/stack/deduction.cc: Likewise. + * testsuite/23_containers/unordered_map/cons/deduction.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/cons/deduction.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/cons/deduction.cc: + Likewise. + * testsuite/23_containers/unordered_set/cons/deduction.cc: + Likewise. + * testsuite/23_containers/vector/cons/deduction.cc: Likewise. + +2021-10-04 Jonathan Wakely + + * include/std/variant (__detail::__variant::__as): Add missing + noexcept to first overload. + +2021-10-04 Jonathan Wakely + + * include/bits/basic_string.h (basic_string(nullptr_t)): Define + as deleted. + (operator=(nullptr_t)): Likewise. + * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise. + (operator=(nullptr_t)): Likewise. + * include/std/string_view (basic_string_view(nullptr_t)): + Likewise. + * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test. + * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: + Change dg-warning to dg-error. + * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: + Likewise. + +2021-10-02 Jonathan Wakely + + * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name. + * src/filesystem/ops-common.h (__last_system_error): Add + explicit cast to avoid narrowing conversion. + (do_space): Fix type in function name. + +2021-10-01 Jonathan Wakely + + PR libstdc++/102100 + * include/Makefile.am (c++config.h): Define + _GLIBCXX_VERBOSE_ASSERT based on configure output. + * include/Makefile.in: Regenerate. + * include/bits/c++config: Fix condition for verbose assertions. + +2021-10-01 Jonathan Wakely + + PR libstdc++/92546 + * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to + unwrap debug iterators. + * include/bits/refwrap.h: Do not error if included in C++03. + * include/bits/stl_algo.h (__remove_if): Move to ... + * include/bits/stl_algobase.h (__remove_if): ... here. + * include/std/deque (erase, erase_if): Use __remove_if instead of + remove and remove_if. + * include/std/string (erase, erase_if): Likewise. + * include/std/vector (erase, erase_if): Likewise. + +2021-10-01 Jonathan Wakely + + PR libstdc++/66742 + * include/bits/list.tcc (list::sort()): Use _Scratch_list + objects for splicing and merging. + (list::sort(StrictWeakOrdering)): Likewise. + * include/bits/stl_list.h (__detail::_Scratch_list): New type. + * src/c++98/list.cc (_List_node_base::_M_transfer): Add + assertion for --enable-libstdcxx-debug library. + * testsuite/23_containers/list/operations/66742.cc: New test. + +2021-10-01 Jonathan Wakely + + PR libstdc++/100612 + * include/std/thread (__pmf_expects_stop_token): New variable + template to detect a pointer to member function that needs a + stop_token to be added to the arguments. + (jthread::__S_create): Use __pmf_expects_stop_token. + (jthread::__S_create_pmf): New function. + * testsuite/30_threads/jthread/100612.cc: New test. + +2021-10-01 Jonathan Wakely + + * include/bits/stl_queue.h + (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as + per P1425R4. + (queue(InputIterator, InputIterator)): Likewise. + (queue(InputIterator, InputIterator, const Alloc&)): Likewise. + * include/bits/stl_stack.h + (__cpp_lib_adaptor_iterator_pair_constructor): Likewise. + (stack(InputIterator, InputIterator)): Likewise. + (stack(InputIterator, InputIterator, const Alloc&)): Likewise. + * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor): + Define. + * testsuite/23_containers/queue/cons_from_iters.cc: New test. + * testsuite/23_containers/stack/cons_from_iters.cc: New test. + +2021-10-01 Jonathan Wakely + + * include/bits/stl_queue.h (priority_queue): Add + allocator-extended overloads for constructors taking iterator. + * testsuite/23_containers/priority_queue/lwg3506.cc: New test. + +2021-10-01 Jonathan Wakely + + * include/bits/stl_queue.h (priority_queue): Construct sequence + from iterators when no sequence argument is present (LWG 3529). + * testsuite/23_containers/priority_queue/lwg3529.cc: New test. + +2021-10-01 Jonathan Wakely + + * include/bits/stl_queue.h (priority_queue): Constrain + constructors with InputIterator parameters (LWG 3522). + * testsuite/23_containers/priority_queue/lwg3522.cc: New test. + +2021-10-01 Jonathan Wakely + + * include/bits/ranges_base.h (ranges::distance): Split overload + into two (LWG 3392). + * testsuite/24_iterators/range_operations/lwg3392.cc: New test. + +2021-10-01 Jonathan Wakely + + * testsuite/30_threads/thread/cons/3.cc: Remove derivation from + std::unary_function. + * testsuite/30_threads/thread/cons/4.cc: Likewise. + * testsuite/30_threads/thread/cons/5.cc: Likewise. + +2021-10-01 Jonathan Wakely + + * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove + unnecesary derivation from std::unary_function. + * testsuite/ext/pb_ds/example/erase_if.cc: Likewise. + * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise. + * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise. + * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise. + * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise. + * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise. + * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise. + * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc: + Likewise. + * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise. + * testsuite/ext/pb_ds/example/store_hash.cc: Likewise. + +2021-10-01 Jonathan Wakely + + * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not + expand the format string for freestanding, or non-vebose, or if + we're just going to abort anyway. + * src/c++11/snprintf_lite.cc: Remove unused header and + declaration. + +2021-10-01 Jonathan Wakely + + * include/std/variant (__do_visit): Use variant_npos instead of + literal -1 that requires a narrowing conversion. + +2021-10-01 Jonathan Wakely + + PR libstdc++/99327 + * src/filesystem/ops-common.h (__unsupported): New function to + return a suitable error code for missing functionality. + (posix::off_t): New typedef. + (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op + fallback implementations. + (do_copy_file): Replace uses of errc::not_supported. + * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir) + (fs::create_directory, fs::create_directory_symlink) + (fs::create_hard_link, fs::create_symlink, fs::current_path) + (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count) + (fs::last_write_time, fs::permissions, fs::read_symlink): + Replace uses of errc::not_supported. + (fs::resize_file): Qualify off_t. + * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir) + (fs::create_directory, fs::create_directory_symlink) + (fs::create_hard_link, fs::create_symlink, fs::current_path) + (fs::equivalent, do_stat, fs::file_size, fs::last_write_time) + (fs::permissions, fs::read_symlink, fs::system_complete): + Replace uses of errc::not_supported. + (fs::resize_file): Qualify off_t and enable unconditionally. + * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise. + +2021-10-01 Jonathan Wakely + + * src/filesystem/ops-common.h (last_error): New helper function. + (filesystem::do_space): Use last_error(). + * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link) + (fs::equivalent, fs::remove, fs::temp_directory_path): Use + last_error(). + * src/filesystem/ops.cc (fs::create_hard_link) + (fs::remove, fs::temp_directory_path): Likewise. + +2021-10-01 Jonathan Wakely + + * include/std/type_traits (__conditional): New class template + for internal uses of std::conditional. + (__conditional_t): New alias template to replace conditional_t. + (__and_, __or_, __result_of_memfun, __result_of_memobj): Use + __conditional_t instead of conditional::type. + * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise. + * include/bits/hashtable.h (_Hashtable): Likewise. + * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base) + (_Local_iterator): Likewise. Replace typedefs with + using-declarations. + * include/bits/move.h (move_if_noexcept): Use __conditional_t. + * include/bits/parse_numbers.h (_Select_int_base): Likewise. + * include/bits/ptr_traits.h (__make_not_void): Likewise. + * include/bits/ranges_algobase.h (__copy_or_move_backward) + (__copy_or_move): Likewise. + * include/bits/ranges_base.h (borrowed_iterator_t): Likewise. + * include/bits/ranges_util.h (borrowed_subrange_t): Likewise. + * include/bits/regex_compiler.h (_BracketMatcher): Use + __conditional_t. Replace typedefs with using-declarations. + * include/bits/shared_ptr_base.h (__shared_count): Use + __conditional_t. + * include/bits/stl_algobase.h (__copy_move, __copy_move_backward): + Likewise. + * include/bits/stl_iterator.h (__detail::__clamp_iter_cat) + (reverse_iterator::iterator_concept) + (__make_move_if_noexcept_iterator) + (iterator_traits>) + (iterator_traits>): Likewise. + * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise. + * include/bits/stl_tree.h (_Rb_tree::insert_return_type) + (_Rb_tree::_M_clone_node): Likewise. + * include/bits/unique_ptr.h (unique_ptr(unique_ptr&&)): + Likewise. + * include/bits/uses_allocator.h (__uses_alloc): Likewise. + (__is_uses_allocator_predicate): Likewise. + * include/debug/functions.h (__foreign_iterator_aux2): Likewise. + * include/experimental/any (any::_Manager, __any_caster): + Likewise. + * include/experimental/executor (async_completion): Likewise. + * include/experimental/functional (__boyer_moore_base_t): + Likewise. + * include/std/any (any::_Manager): Likewise. + * include/std/functional (__boyer_moore_base_t): Likewise. + * include/std/ranges (borrowed_iterator_t) + (borrowed_subrange_t, __detail::__maybe_present_t) + (__detail::__maybe_const_t, split_view): Likewise. + * include/std/tuple (__empty_not_final, tuple::operator=): + Likewise. + * include/std/variant (__detail::__variant::__get_t): Likewise. + +2021-10-01 Jonathan Wakely + + PR libstdc++/78113 + * include/std/variant (__do_visit): Use a switch when we have a + single variant with a small number of alternatives. + +2021-10-01 Jonathan Wakely + + PR libstdc++/90943 + * include/std/variant (__cpp_lib_variant): Update value. + (__detail::__variant::__as): New helpers implementing the + as-variant exposition-only function templates. + (visit, visit): Use __as to upcast the variant parameters. + * include/std/version (__cpp_lib_variant): Update value. + * testsuite/20_util/variant/visit_inherited.cc: New test. + +2021-10-01 Jonathan Wakely + + * include/bits/stl_iterator.h (__normal_iterator): Simplify + converting constructor and do not require _Container::pointer. + +2021-10-01 Jonathan Wakely + + * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING] + (basic_string(basic_string&&)): Add noexcept and avoid + allocation, by sharing rep with the rvalue string. + +2021-10-01 Jonathan Wakely + + * include/bits/stl_iterator.h (common_iterator::__arrow_proxy) + (common_iterator::__postfix_proxy): Add noexcept. + +2021-10-01 Jonathan Wakely + + PR libstdc++/94418 + * include/bits/stl_iterator.h (reverse_iterator): Use + conditional noexcept on constructors and assignment operators. + * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test. + +2021-10-01 Jonathan Wakely + + PR libstdc++/100153 + * include/bits/vector.tcc (vector::_M_shrink_to_fit()): + When size() is zero just deallocate and reset. + +2021-10-01 Jonathan Wakely + + PR libstdc++/96733 + * include/bits/stl_algo.h (clamp): Use std::min and std::max. + +2021-10-01 Jonathan Wakely + + * include/bits/regex.h (basic_regex::multiline): Define for + non-strict C++11 and C++14 modes. + * include/bits/regex_constants.h (regex_constants::multiline): + Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment. + +2021-10-01 Jonathan Wakely + + * testsuite/25_algorithms/is_permutation/2.cc: Include . + +2021-10-01 Jonathan Wakely + + * include/bits/stream_iterator.h (istream_iterator): Add + noexcept to constructors and non-throwing member functions and + friend functions. + (ostream_iterator): Likewise. + +2021-10-01 Jonathan Wakely + + * include/bits/boost_concept_check.h (_Is_vector_bool_iterator): + New trait to identify vector iterators, including debug + ones. + (_ForwardIteratorReferenceConcept): Add default template + argument using _Is_vector_bool_iterator and use it in partial + specialization for the vector cases. + (_Mutable_ForwardIteratorReferenceConcept): Likewise. + * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error + line number. + +2021-10-01 Jonathan Wakely + + * include/bits/list.tcc (list::merge): Remove call to size() and + try-catch block. Use _Finalize_merge instead. + * include/bits/stl_list.h (list::_Finalize_merge): New + scope guard type to update _M_size members after a merge. + +2021-09-30 Jonathan Wakely + + * include/bits/regex.h (basic_regex::multiline): Fix #if + condition. + +2021-09-29 Jonathan Wakely + + * include/bits/regex.h (basic_regex::multiline): Define constant + for C++17. + * include/bits/regex_constants.h (regex_constants::multiline): + Define constant for C++17. + (regex_constants::__multiline): Define duplicate constant for + internal use in C++11 and C++14. + * include/bits/regex_executor.h (_Executor::_M_match_multiline()): + New member function. + (_Executor::_M_is_line_terminator(_CharT)): New member function. + (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new + member functions to support multiline matches. + * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test. + +2021-09-29 Jonathan Wakely + + * include/bits/regex_compiler.h (_Compiler::_S_validate): New + function. + * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use + _S_validate to check flags. + * include/bits/regex_error.h (_S_grammar): New error code for + internal use. + * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test. + +2021-09-29 Jonathan Wakely + + PR libstdc++/84110 + * include/bits/regex_error.h (regex_constants::_S_null): New + error code for internal use. + * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()): + Check for null character. + * testsuite/28_regex/basic_regex/84110.cc: New test. + +2021-09-29 Jonathan Wakely + + * include/bits/regex.h (__detail::__is_contiguous_iter): Move + here from . + (basic_regex::_M_compile): New function to compile an NFA from + a regular expression string. + (basic_regex::basic_regex): Use _M_compile instead of delegating + to other constructors. + (basic_regex::operator=(const basic_regex&)): Define as + defaulted. + (basic_regex::operator=(initializer_list)): Use _M_compile. + (basic_regex::assign(const basic_regex&)): Use copy assignment. + (basic_regex::assign(basic_regex&&)): Use move assignment. + (basic_regex::assign(const C*, flag_type)): Use _M_compile + instead of constructing a temporary string. + (basic_regex::assign(const C*, size_t, flag_type)): Likewise. + (basic_regex::assign(const basic_string&, flag_type)): + Use _M_compile instead of constructing a temporary basic_regex. + (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid + constructing a temporary string for contiguous iterators of the + right value type. + * include/bits/regex_compiler.h (__is_contiguous_iter): Move to + . + (__enable_if_contiguous_iter, __disable_if_contiguous_iter) + (__compile_nfa): Remove. + * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New + test. + * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test. + +2021-09-28 Jonathan Wakely + + * include/bits/atomic_timed_wait.h (__platform_wait_until_impl): + Return false for ETIMEDOUT and true otherwise. + +2021-09-28 François Dumont + + * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message + to also match message with '__8' in it. + +2021-09-28 Jonathan Wakely + + * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove. + * include/bits/regex_compiler.h (_Compiler::_IterT): Remove. + * include/bits/regex_compiler.tcc: Likewise. + * include/bits/regex_scanner.h (_Scanner::_IterT): Remove. + * include/bits/regex_scanner.tcc: Likewise. + +2021-09-28 Jonathan Wakely + + * include/bits/regex_compiler.tcc: Add line break in empty while + statement. + * include/bits/regex_executor.tcc: Avoid unused parameter + warning. + +2021-09-28 Jonathan Wakely + + * include/bits/regex.h (basic_regex, swap): Add noexcept to + non-throwing functions. + * include/bits/regex_automaton.h (_State_base, _State) + (_NFA_base): Likewise. + * include/bits/regex_compiler.h (_Compiler): Likewise. + * include/bits/regex_error.h (regex_error::code()): Likewise. + * include/bits/regex_scanner.h (_Scanner): Likewise. + +2021-09-28 Jonathan Wakely + + * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT): + Define before first attempt to check it. + +2021-09-28 Jonathan Wakely + + * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc: + Do not check non-default constructible sequences when + _GLIBCXX_CONCEPT_CHECKS is defined. + * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc: + Likewise. + * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc: + Likewise. + * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc: + Likewise. + * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc: + Likewise. + * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc: + Likewise. + +2021-09-28 Jonathan Wakely + + * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc: + Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS + is defined. + * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc: + Likewise. + * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc: + Likewise. + * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc: + Likewise. + * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc: + Likewise. + * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc: + Likewise. + * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc: + Likewise. + * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc: + Likewise. + * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc: + Likewise. + * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc: + Likewise. + * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc: + Likewise. + * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc: + Likewise. + * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc: + Likewise. + * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc: + Likewise. + * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc: + Likewise. + * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc: + Likewise. + +2021-09-28 Jonathan Wakely + + * include/bits/boost_concept_check.h (_ForwardIteratorConcept) + (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept): + Check result types of iterator operations. + (_Mutable_ForwardIteratorConcept): Check that iterator's + reference type is a reference to its value type. + (_Mutable_BidirectionalIteratorConcept): Do not require the + value type to be assignable. + (_Mutable_RandomAccessIteratorConcept): Likewise. + * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error + line number. + +2021-09-28 Jonathan Wakely + + * testsuite/25_algorithms/copy/34595.cc: Add missing operation + for type used as an iterator. + * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise. + +2021-09-28 Jonathan Wakely + + * testsuite/20_util/is_nothrow_swappable/value.h: Use custom + comparison function for priority_queue of type with no + relational operators. + * testsuite/20_util/is_swappable/value.h: Likewise. + * testsuite/24_iterators/output/concept.cc: Add operator< to + type used in set. + +2021-09-28 Jonathan Wakely + + * include/bits/boost_concept_check.h (_OutputIteratorConcept): + Use a function to preserve value category of the type. + * include/bits/stl_algobase.h (copy, move, fill_n): Use a + reference as the second argument for _OutputIteratorConcept. + (copy_backward, move_backward): Use _OutputIteratorConcept + instead of _ConvertibleConcept. + +2021-09-28 Jonathan Wakely + + * include/bits/stl_iterator.h (pointer_traits): Define partial + specialization for __normal_iterator. + * testsuite/24_iterators/normal_iterator/to_address.cc: New test. + +2021-09-28 Jonathan Wakely + + * include/bits/move.h (forward(remove_reference_t&&)): + Improve text of static_assert. + * testsuite/20_util/forward/c_neg.cc: Adjust dg-error. + * testsuite/20_util/forward/f_neg.cc: Likewise. + +2021-09-28 Jonathan Wakely + + PR libstdc++/102499 + * include/bits/fs_path.h (path::begin, path::end): Add noexcept + to declarations, to match definitions. + +2021-09-24 Jonathan Wakely + + * include/bits/range_access.h (cbegin, cend): Remove redundant + 'inline' specifier. + +2021-09-23 Jonathan Wakely + + * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc: + Remove dg-error lines for C++20-only errors. + +2021-09-23 Jonathan Wakely + + * testsuite/19_diagnostics/headers/system_error/93151.cc: + Disable PCH. + +2021-09-23 Jonathan Wakely + + * src/c++11/system_error.cc (system_error_category) [_WIN32]: + Map Windows error codes to generic POSIX error numbers. Use + FormatMessage instead of strerror. + * testsuite/19_diagnostics/error_category/system_category.cc: + Adjust for new behaviour on Windows. + +2021-09-23 Jonathan Wakely + + * src/c++11/system_error.cc (generic_error_category): Define + class and virtual functions as 'final'. + (generic_error_category::equivalent(int, const error_condition&)): + Override. + (system_error_category): Define class and virtual functions as + 'final'. + (system_error_category::equivalent(int, const error_condition&)): + Override. + (generic_category_instance, system_category_instance): Use + constinit union to make the objects immortal. + +2021-09-23 Jonathan Wakely + + PR libstdc++/102425 + * src/c++11/system_error.cc + (system_error_category::default_error_condition): Add 0 to + switch. + * testsuite/19_diagnostics/error_category/102425.cc: New test. + +2021-09-17 Jonathan Wakely + + * include/bits/fs_path.h (path::iterator): Add noexcept to all + member functions and friend functions. + (distance): Add noexcept. + (advance): Add noexcept and inline. + * include/experimental/bits/fs_path.h (path::iterator): + Add noexcept to all member functions. + +2021-09-17 Jonathan Wakely + + PR libstdc++/102270 + * include/std/tuple (_Tuple_impl): Add constexpr to constructor + missed in previous patch. + * testsuite/20_util/tuple/cons/102270.C: Moved to... + * testsuite/20_util/tuple/cons/102270.cc: ...here. + * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add + constexpr to constructor so it can be used for C++20 tests. + +2021-09-17 Jonathan Wakely + + * testsuite/26_numerics/valarray/dr630-3.C: Moved to... + * testsuite/26_numerics/valarray/dr630-3.cc: ...here. + * testsuite/27_io/basic_iostream/cons/16251.C: Moved to... + * testsuite/27_io/basic_iostream/cons/16251.cc: ...here. + +2021-09-16 Jonathan Wakely + + * src/Makefile.am (stamp-debug): Add all Makefiles as + prerequisites. + * src/Makefile.in: Regenerate. + +2021-09-16 Jonathan Wakely + + * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase + timeout factor to 3. + * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise. + +2021-09-16 Jonathan Wakely + + * doc/xml/manual/using.xml: Generalize to apply to more than + just -std=c++11. + * doc/html/manual/using_macros.html: Regenerate. + +2021-09-16 Jonathan Wakely + + * include/std/optional (nullptr_t): Make constructor noexcept. + +2021-09-16 Jonathan Wakely + + * include/bits/fs_path.h (advance): Remove non-deducible + template parameter. + +2021-09-16 Jonathan Wakely + + PR libstdc++/102270 + * include/std/tuple (_Head_base, _Tuple_impl): Add + _GLIBCXX20_CONSTEXPR to allocator-extended constructors. + (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR. + * testsuite/20_util/tuple/cons/102270.C: New test. + +2021-09-16 Jonathan Wakely + + PR libstdc++/102280 + * include/std/span (span(Range&&)): Add constraint to deduction + guide. + +2021-09-16 Jonathan Wakely + + * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE. + * src/c++98/Makefile.in: Regenerate. + +2021-09-16 Jonathan Wakely + + * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] + (to_string): Add noexcept if the type width is 32 bits or less. + +2021-09-16 Jonathan Wakely + + * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr) + (__uniq_ptr_impl::_M_deleter): Add noexcept. + +2021-09-16 Thomas Rodgers + + PR libstdc++/101761 + * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use + va and vb as arguments to wait/notify, remove unused bb local. + +2021-09-15 Hugo Beauzée-Luyssen + + * crossconfig.m4: Check for TLS support on mingw. + * configure: Regenerate. + +2021-09-13 Jason Merrill + + * include/std/version: Define __cpp_lib_hardware_interference_size. + * libsupc++/new: Define hardware interference size variables. + +2021-09-10 Jonathan Wakely + + * testsuite/experimental/net/internet/resolver/ops/lookup.cc: + Fix invalid hostname to only match the .invalid TLD. + +2021-09-02 Jonathan Wakely + + * include/bits/atomic_base.h (__atomic_base::compare_exchange_weak): + Add new functions. + * include/std/atomic (atomic::compare_exchange_weak): Use + it. + +2021-09-02 Jonathan Wakely + + * include/std/atomic: Tweak whitespace. + +2021-09-02 Jonathan Wakely + + PR c++/102177 + * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order): + New function to check if a memory order is valid for the failure + case of compare exchange operations. + (__atomic_base::compare_exchange_weak): Simplify assertions + by using __is_valid_cmpexch_failure_order. + (__atomic_base::compare_exchange_strong): Likewise. + (__atomic_base::compare_exchange_weak): Likewise. + (__atomic_base::compare_exchange_strong): Likewise. + (__atomic_impl::compare_exchange_weak): Add assertion. + (__atomic_impl::compare_exchange_strong): Likewise. + * include/std/atomic (atomic::compare_exchange_weak): Likewise. + (atomic::compare_exchange_strong): Likewise. + +2021-09-02 Jonathan Wakely + + * include/std/functional (invoke_r): Define. + * include/std/version (__cpp_lib_invoke_r): Define. + * testsuite/20_util/function_objects/invoke/version.cc: Check + for __cpp_lib_invoke_r as well as __cpp_lib_invoke. + * testsuite/20_util/function_objects/invoke/4.cc: New test. + +2021-08-31 Jonathan Wakely + + PR libstdc++/98421 + * include/std/span (span(Iter, size_type), span(Iter, Iter)): + Add valid range checks. + * testsuite/23_containers/span/cons_1_assert_neg.cc: New test. + * testsuite/23_containers/span/cons_2_assert_neg.cc: New test. + +2021-08-31 Jonathan Wakely + + * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK. + * configure: Regenerate. + +2021-08-31 Jonathan Wakely + + * src/c++11/system_error.cc (error_category::~error_category()): + Remove noexcept-specifier. + (system_error::~system_error()): Likewise. + * testsuite/19_diagnostics/error_category/noexcept.cc: New test. + * testsuite/19_diagnostics/system_error/noexcept.cc: New test. + +2021-08-31 Jonathan Wakely + + PR libstdc++/102074 + * include/bits/atomic_timed_wait.h (__timed_waiter_pool) + [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return. + +2021-08-31 Jonathan Wakely + + * include/experimental/internet (__make_resolver_error_code): + Handle EAI_SYSTEM errors. + (basic_resolver_results): Use __make_resolver_error_code. Use + Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes. + +2021-08-31 Jonathan Wakely + + * testsuite/experimental/net/internet/resolver/ops/lookup.cc: + Try other service if "http" fails. + +2021-08-31 Jonathan Wakely + + * testsuite/17_intro/names.cc: Undefine some more names used + by Solaris system headers. + +2021-08-30 Jason Merrill + + PR c++/96286 + * testsuite/30_threads/promise/requirements/lwg3466.cc: + Remove dg-prune-outputs. + +2021-08-28 Jonathan Wakely + + * include/bits/alloc_traits.h (allocator_traits): Add explicit + specialization for allocator. Improve doxygen comments. + * include/bits/allocator.h (allocator): Restore for the + versioned namespace. + (allocator::construct, allocator::destroy): Remove. + * include/ext/extptr_allocator.h (_Extptr_allocator): + Add default constructor and converting constructor. + +2021-08-28 Jonathan Wakely + + * include/bits/stl_uninitialized.h: Fix typo in comment. + +2021-08-28 Jonathan Wakely + + PR libstdc++/99876 + * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form, + to avoid unnecessary current_path() call. + +2021-08-28 Jonathan Wakely + + * include/bits/std_function.h (function::function(F&&)): Give + name to defaulted template parameter, to improve diagnostics. + Use markdown for more doxygen comments. + +2021-08-26 Jonathan Wakely + + * include/bits/std_function.h (function): Adjust doxygen + comments. + * include/bits/unique_ptr.h (make_unique_for_overwrite): + Change parameter name to match doxygen comment. + +2021-08-26 Jonathan Wakely + + * include/bits/std_function.h (_function_base::_Base_manager): + Replace _M_init_functor with a function template using a + forwarding reference, and a pair of _M_create function + templates. Reuse _M_create for the clone operation. + (function::_Decay_t): New alias template. + (function::_Callable): Simplify by using _Decay. + (function::function(F)): Change parameter to forwarding + reference, as per LWG 2447. Add noexcept-specifier. Simplify + constraints. + (function::operator=(F&&)): Add noexcept-specifier. + * testsuite/20_util/function/cons/lwg2774.cc: New test. + * testsuite/20_util/function/cons/noexcept.cc: New test. + +2021-08-26 Jonathan Wakely + + * include/bits/std_function.h (function::function(F)): Add + static assertions to check constructibility requirements. + +2021-08-26 Jonathan Wakely + + PR libstdc++/100285 + * configure.ac: Check for O_NONBLOCK. + * configure: Regenerate. + * include/experimental/internet: Include for + Windows. Use preprocessor conditions around more constants. + * include/experimental/socket: Use preprocessor conditions + around more constants. + * testsuite/experimental/net/internet/resolver/base.cc: Only use + constants when the corresponding C macro is defined. + * testsuite/experimental/net/socket/basic_socket.cc: Likewise. + * testsuite/experimental/net/socket/socket_base.cc: Likewise. + Make preprocessor checks more fine-grained. + +2021-08-25 Jonathan Wakely + + * testsuite/17_intro/names.cc: Check 'sz'. + +2021-08-25 Jonathan Wakely + + * testsuite/17_intro/names.cc: Adjust for Windows. + +2021-08-25 Jonathan Wakely + + * include/std/valarray: Uglify 'func' parameters. + * testsuite/17_intro/names.cc: Add 'func' to checks. + +2021-08-25 Jonathan Wakely + + PR libstdc++/102064 + * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT): + Define macro to check conditions for optimizing trivial cases. + (__check_constructible): New function to do static assert. + (uninitialized_copy, uninitialized_fill, uninitialized_fill_n): + Use new macro. + * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc: + Adjust dg-error pattern. + * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add + C++17-specific checks from 89164_c++17.cc. + * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed. + * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc: + New test. + * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc: + New test. + * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc: + New test. + * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc: + New test. + +2021-08-25 Jonathan Wakely + + PR libstdc++/102048 + * include/ext/rope (rope::erase(size_type)): Remove broken + function. + +2021-08-24 Jonathan Wakely + + * doc/xml/manual/status_cxx2020.xml: Update table. + * doc/html/manual/status.html: Regenerate. + +2021-08-24 Jonathan Wakely + + * include/std/type_traits (is_layout_compatible): Define. + (is_corresponding_member): Define. + * include/std/version (__cpp_lib_is_layout_compatible): Define. + * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc: + New test. + * testsuite/20_util/is_layout_compatible/value.cc: New test. + * testsuite/20_util/is_layout_compatible/version.cc: New test. + * testsuite/20_util/is_pointer_interconvertible/with_class.cc: + New test. + * testsuite/23_containers/span/layout_compat.cc: Do not use real + std::is_layout_compatible trait if available. + +2021-08-24 Jonathan Wakely + + * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in + explicit instantiation definitions. + +2021-08-23 Jonathan Wakely + + * include/std/ranges (basic_istream_view): Add default template + argument. + * testsuite/std/ranges/istream_view.cc: Check it. + +2021-08-23 Jonathan Wakely + + * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to + precondition check. + +2021-08-23 Jonathan Wakely + + PR libstdc++/90787 + * testsuite/util/testsuite_fs.h (permissions_are_testable): + Define as inline. + +2021-08-20 Jonathan Wakely + + PR libstdc++/90787 + * testsuite/27_io/filesystem/iterators/directory_iterator.cc: + Use new __gnu_test::permissions_are_testable() function. + * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: + Likewise. + * testsuite/27_io/filesystem/operations/exists.cc: Likewise. + * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. + * testsuite/27_io/filesystem/operations/remove.cc: Likewise. + * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise. + * testsuite/27_io/filesystem/operations/status.cc: Likewise. + * testsuite/27_io/filesystem/operations/symlink_status.cc: + Likewise. + * testsuite/27_io/filesystem/operations/temp_directory_path.cc: + Likewise. + * testsuite/experimental/filesystem/iterators/directory_iterator.cc: + Likewise. + * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc: + Likewise. + * testsuite/experimental/filesystem/operations/exists.cc: + Likewise. + * testsuite/experimental/filesystem/operations/is_empty.cc: + Likewise. + * testsuite/experimental/filesystem/operations/remove.cc: + Likewise. + * testsuite/experimental/filesystem/operations/remove_all.cc: + Likewise. + * testsuite/experimental/filesystem/operations/temp_directory_path.cc: + Likewise. + * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable): + New function to guess whether testing permissions will work. + +2021-08-19 Jonathan Wakely + + * doc/xml/manual/status_cxx2020.xml: Move row earlier in table. + * doc/html/manual/status.html: Regenerate. + +2021-08-19 Jonathan Wakely + + * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2 + +2021-08-19 Jonathan Wakely + + PR libstdc++/101965 + * include/std/charconv (__to_chars_i): Remove redundant check. + +2021-08-19 Jonathan Wakely + + PR libstdc++/101960 + * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base + class' move constructor. Define as defaulted for versioned + namespace. + * testsuite/20_util/tuple/cons/101960.cc: New test. + +2021-08-19 Jonathan Wakely + + PR libstdc++/100139 + * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table. + * doc/html/manual/status.html: Regenerate. + +2021-08-19 Jonathan Wakely + + * include/bits/shared_ptr.h: Add @since and @headerfile tags. + * include/bits/unique_ptr.h: Add @headerfile tags. + +2021-08-19 Jonathan Wakely + + * src/filesystem/ops-common.h (filesystem::file_time): Improve + overflow check by using system_clock::duration::max(). + +2021-08-19 Jonathan Wakely + + * include/bits/stl_tree.h: Tweak whitespace. + +2021-08-18 Jonathan Wakely + + * include/bits/unique_ptr.h (default_delete): Add @since tag. + (unique_ptr, unique_ptr): Likewise. Improve @brief. + (make_unique, make_unique_for_overwrite): Likewise. Add @tparam, + @param, and @returns. + (_MakeUniq): Move to __detail namespace. Add alias template + helpers. + +2021-08-18 Jonathan Wakely + + * include/bits/stl_function.h: Improve doxygen comments. + +2021-08-18 Jonathan Wakely + + * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen + processing for C++20 components and components that depend on + compiler features. + * include/bits/stl_algo.h (random_shuffle): Use @deprecated. + * include/std/type_traits: Improve doxygen comments for C++20 + traits. + +2021-08-18 Jonathan Wakely + + * include/ext/type_traits.h (__promote_2, __promote_3) + (__promote_4): Redfine as alias templates using __promoted_t. + * include/std/complex (__promote_2): Remove partial + specializations for std::complex. + +2021-08-18 Jonathan Wakely + + * include/bits/stl_algo.h (min(initializer_list)) + (min(initializer_list, Compare)): Call __min_element directly to + avoid redundant debug checks for valid ranges. + (max(initializer_list), max(initializer_list, Compare)): + Likewise, for __max_element. + (minmax(initializer_list), minmax(initializer_list, Compare)): + Likewise, for __minmax_element. + +2021-08-18 Jonathan Wakely + + * include/debug/deque (deque(size_type, const T&, const A&)): + Prevent class template argument deduction and replace with a + deduction guide. + * include/debug/forward_list (forward_list(size_type, const T&, const A&)): + Likewise. + * include/debug/list (list(size_type, const T&, const A&)): + Likewise. + * include/debug/vector (vector(size_type, const T&, const A&)): + Likewise. + +2021-08-18 Jonathan Wakely + + * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use + 'std::vector::reference' as type name, not _Bit_reference. + (build_libstdcxx_dictionary): Register printers for vector + types in debug mode too. + * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected + output for invalid _Bit_reference. Use vector::reference + instead of _Bit_reference. + * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. + +2021-08-17 Thomas Schwinge + + * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose, + continued. + +2021-08-17 Luc Michel + Marc Poulhies + + * testsuite/lib/gdb-test.exp (gdb_version_check) + (gdb_version_check_xmethods): Only check the GDB version for + local native targets. + +2021-08-17 Antony Polukhin + Jonathan Wakely + + * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity + if distance is O(1). + * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error + line number. + +2021-08-17 Jonathan Wakely + + * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check + construction from input iterators. + +2021-08-17 Jonathan Wakely + + * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove. + +2021-08-17 Jonathan Wakely + + PR libstdc++/101923 + * include/bits/std_function.h (function(function&&)): Check for + non-empty parameter before doing any work. + +2021-08-17 Jonathan Wakely + + * include/bits/cow_string.h (basic_string::contains): Do not + define for -std=gnu++20. + +2021-08-17 Jonathan Wakely + + * include/bits/ranges_util.h (__not_same_as): Rename to + __different_from. + * include/std/ranges (__not_same_as): Likewise. + +2021-08-17 Jonathan Wakely + + * include/std/utility (exchange): Add noexcept-specifier. + * testsuite/20_util/exchange/noexcept.cc: New test. + +2021-08-17 Jonathan Wakely + + * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define. + (build_libstdcxx_dictionary): Register printer for + std::error_code and std::error_condition. + * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it. + +2021-08-16 Jonathan Wakely + + PR libstdc++/101937 + * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a + static data member. + (print_word): Use qualified-id to access it. + +2021-08-16 Jonathan Wakely + + * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local): + Install another copy of the GDB hook. + * python/Makefile.in: Regenerate. + +2021-08-12 Jonathan Wakely + + PR libstdc++/101870 + * include/c_global/cmath (hypot): Use __promoted_t. + (lerp): Add new overload accepting any arithmetic types. + * include/ext/type_traits.h (__promoted_t): New alias template. + * testsuite/26_numerics/lerp.cc: Moved to... + * testsuite/26_numerics/lerp/1.cc: ...here. + * testsuite/26_numerics/lerp/constexpr.cc: New test. + * testsuite/26_numerics/lerp/version.cc: New test. + +2021-08-12 Jonathan Wakely + + * testsuite/26_numerics/lerp.cc: Add header name to #error. + * testsuite/26_numerics/midpoint/integral.cc: Likewise. + * testsuite/26_numerics/midpoint/version.cc: New test. + +2021-08-12 Jonathan Wakely + + * include/experimental/random (experimental::randint): Add + nodiscard attribute. + +2021-08-12 Jonathan Wakely + + * src/c++98/locale_init.cc: Require C++11. + * src/c++98/localename.cc: Likewise. + * src/c++98/misc-inst.cc: Require C++98. + +2021-08-11 Jonathan Wakely + + PR libstdc++/101866 + * testsuite/experimental/random/randint.cc: Loop and retry if + reseed() produces the same sequence. + +2021-08-11 Jonathan Wakely + + * include/std/type_traits (__cpp_lib_is_pointer_interconvertible) + (is_pointer_interconvertible_base_of_v) + (is_pointer_interconvertible_base_of): Define for C++20. + * include/std/version (__cpp_lib_is_pointer_interconvertible): + Define. + * testsuite/23_containers/span/layout_compat.cc: Use correct + feature test macro for std::is_layout_compatible_v. + * testsuite/20_util/is_pointer_interconvertible/value.cc: New test. + * testsuite/20_util/is_pointer_interconvertible/version.cc: New test. + +2021-08-09 Jonathan Wakely + + * include/bits/regex.h (basic_regex::transform_primary): Use + _GLIBCXX_STD_C::vector for local variable. + * include/bits/regex.tcc (__regex_algo_impl): Use reference to + _GLIBCXX_STD_C::vector base class of match_results. + * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use + _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local + variables. + * include/bits/regex_compiler.h (_BracketMatcher): Use + _GLIBCXX_STD_C::vector for data members. + * include/bits/regex_executor.h (_Executor): Likewise. + * include/std/regex [_GLIBCXX_DEBUG]: Include . + +2021-08-09 François Dumont + + * include/debug/safe_container.h + (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New. + (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New. + (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters. + +2021-08-09 Jonathan Wakely + + * testsuite/23_containers/unordered_map/cons/default.cc: Add + equality comparison operators to allocator. + * testsuite/23_containers/unordered_set/cons/default.cc: + Likewise. + +2021-08-08 François Dumont + + * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion' + dg-prune-output reason with 'builtin_unreachable'. + * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise. + * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise. + * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise. + * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise. + * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise. + * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise. + * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise. + * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise. + +2021-08-08 Hans-Peter Nilsson + + * testsuite/std/ranges/iota/max_size_type.cc: Set + dg-timeout-factor to 4. + +2021-08-06 Jonathan Wakely + + * libsupc++/compare (compare_three_way, strong_order) + (weak_order, partial_order, compare_strong_order_fallback) + (compare_weak_order_fallback, compare_partial_order_fallback): + Move nodiscard attributes to correct location. + +2021-08-05 Jonathan Wakely + + PR libstdc++/101782 + * include/bits/ranges_base.h (ranges::begin, ranges::end) + (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize) + (ranges::empty, ranges::data): Move attribute after the + declarator-id instead of at the end of the declarator. + * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator): + Move attributes back to the start of the function declarator, + but move the requires-clause to the end. + (common_iterator): Move attribute after the declarator-id. + * include/bits/stl_queue.h (queue): Remove ill-formed attributes + from friend declaration that are not definitions. + * include/std/ranges (views::all, views::filter) + (views::transform, views::take, views::take_while, + views::drop) (views::drop_while, views::join, + views::lazy_split) (views::split, views::counted, + views::common, views::reverse) (views::elements): Move + attributes after the declarator-id. + +2021-08-05 Jonathan Wakely + + * libsupc++/compare (partial_ordering, weak_ordering) + (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq) + (compare_three_way, strong_order, weak_order, partial_order) + (compare_strong_order_fallback, compare_weak_order_fallback) + (compare_partial_order_fallback, __detail::__synth3way): Add + nodiscard attribute. + * testsuite/18_support/comparisons/categories/zero_neg.cc: Add + -Wno-unused-result to options. + +2021-08-05 Jonathan Wakely + + PR libstdc++/101782 + * include/bits/ranges_base.h (ranges::begin, ranges::end) + (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize) + (ranges::empty, ranges::data): Move attribute to the end of + the declarator. + * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator) + (common_iterator): Likewise for non-member operator functions. + * include/std/ranges (views::all, views::filter) + (views::transform, views::take, views::take_while, views::drop) + (views::drop_while, views::join, views::lazy_split) + (views::split, views::counted, views::common, views::reverse) + (views::elements): Likewise. + * testsuite/std/ranges/access/101782.cc: New test. + +2021-08-04 Jonathan Wakely + + * include/bits/forward_list.h: Add [[nodiscard]] to functions + with no side-effects. + * include/bits/stl_bvector.h: Likewise. + * include/bits/stl_deque.h: Likewise. + * include/bits/stl_list.h: Likewise. + * include/bits/stl_queue.h: Likewise. + * include/bits/stl_stack.h: Likewise. + * include/bits/stl_vector.h: Likewise. + * include/debug/deque: Likewise. + * include/debug/forward_list: Likewise. + * include/debug/list: Likewise. + * include/debug/safe_iterator.h: Likewise. + * include/debug/vector: Likewise. + * include/std/array: Likewise. + * testsuite/23_containers/array/creation/3_neg.cc: Use + -Wno-unused-result. + * testsuite/23_containers/array/debug/back1_neg.cc: Cast result + to void. + * testsuite/23_containers/array/debug/back2_neg.cc: Likewise. + * testsuite/23_containers/array/debug/front1_neg.cc: Likewise. + * testsuite/23_containers/array/debug/front2_neg.cc: Likewise. + * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc: + Likewise. + * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc: + Likewise. + * testsuite/23_containers/array/tuple_interface/get_neg.cc: + Adjust dg-error line numbers. + * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast + result to void. + * testsuite/23_containers/deque/debug/invalidation/4.cc: + Likewise. + * testsuite/23_containers/deque/types/1.cc: Use + -Wno-unused-result. + * testsuite/23_containers/list/types/1.cc: Cast result to void. + * testsuite/23_containers/priority_queue/members/7161.cc: + Likewise. + * testsuite/23_containers/queue/members/7157.cc: Likewise. + * testsuite/23_containers/vector/59829.cc: Likewise. + * testsuite/23_containers/vector/ext_pointer/types/1.cc: + Likewise. + * testsuite/23_containers/vector/ext_pointer/types/2.cc: + Likewise. + * testsuite/23_containers/vector/types/1.cc: Use + -Wno-unused-result. + +2021-08-04 Jonathan Wakely + + * include/bits/iterator_concepts.h (iter_move): Add + [[nodiscard]]. + * include/bits/range_access.h (begin, end, cbegin, cend) + (rbegin, rend, crbegin, crend, size, data, ssize): Likewise. + * include/bits/ranges_base.h (ranges::begin, ranges::end) + (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend) + (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize) + (ranges::empty, ranges::data, ranges::cdata): Likewise. + * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator) + (back_insert_iterator, front_insert_iterator, insert_iterator) + (move_iterator, move_sentinel, common_iterator) + (counted_iterator): Likewise. + * include/bits/stl_iterator_base_funcs.h (distance, next, prev): + Likewise. + * include/bits/stream_iterator.h (istream_iterator) + (ostream_iterartor): Likewise. + * include/bits/streambuf_iterator.h (istreambuf_iterator) + (ostreambuf_iterator): Likewise. + * include/std/ranges (views::single, views::iota, views::all) + (views::filter, views::transform, views::take, views::take_while) + (views::drop, views::drop_while, views::join, views::lazy_split) + (views::split, views::counted, views::common, views::reverse) + (views::elements): Likewise. + * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result. + * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise. + * testsuite/24_iterators/normal_iterator/greedy_ops.cc: + Likewise. + * testsuite/24_iterators/reverse_iterator/2.cc: Likewise. + * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: + Likewise. + * testsuite/21_strings/basic_string/range_access/char/1.cc: + Cast result to void. + * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/range_access/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc: + Likewise. + * testsuite/23_containers/array/range_access.cc: Likewise. + * testsuite/23_containers/deque/range_access.cc: Likewise. + * testsuite/23_containers/forward_list/range_access.cc: + Likewise. + * testsuite/23_containers/list/range_access.cc: Likewise. + * testsuite/23_containers/map/range_access.cc: Likewise. + * testsuite/23_containers/multimap/range_access.cc: Likewise. + * testsuite/23_containers/multiset/range_access.cc: Likewise. + * testsuite/23_containers/set/range_access.cc: Likewise. + * testsuite/23_containers/unordered_map/range_access.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/range_access.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/range_access.cc: + Likewise. + * testsuite/23_containers/unordered_set/range_access.cc: + Likewise. + * testsuite/23_containers/vector/range_access.cc: Likewise. + * testsuite/24_iterators/customization_points/iter_move.cc: + Likewise. + * testsuite/24_iterators/istream_iterator/sentinel.cc: + Likewise. + * testsuite/24_iterators/istreambuf_iterator/sentinel.cc: + Likewise. + * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise. + * testsuite/24_iterators/operations/prev_neg.cc: Likewise. + * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise. + * testsuite/24_iterators/range_access/range_access.cc: + Likewise. + * testsuite/24_iterators/range_operations/100768.cc: Likewise. + * testsuite/26_numerics/valarray/range_access2.cc: Likewise. + * testsuite/28_regex/range_access.cc: Likewise. + * testsuite/experimental/string_view/range_access/char/1.cc: + Likewise. + * testsuite/experimental/string_view/range_access/wchar_t/1.cc: + Likewise. + * testsuite/ext/vstring/range_access.cc: Likewise. + * testsuite/std/ranges/adaptors/take.cc: Likewise. + * testsuite/std/ranges/p2259.cc: Likewise. + +2021-08-03 Jonathan Wakely + + * include/bits/random.tcc (linear_congruential_engine): Do not + define static constexpr members when they are implicitly inline. + * include/std/ratio (ratio, __ratio_multiply, __ratio_divide) + (__ratio_add, __ratio_subtract): Likewise. + * include/std/type_traits (integral_constant): Likewise. + * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error + line number. + +2021-08-03 Jonathan Wakely + + * testsuite/util/testsuite_common_types.h: Replace uses of + tr1::unordered_map and tr1::unordered_set with their C++11 + equivalents. + * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust + dg-error line number. + * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise. + * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: + Likewise. + * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: + Likewise. + * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: + Likewise. + * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc: + Likewise. + * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc: + Likewise. + +2021-08-03 Jonathan Wakely + + * include/std/memory_resource (polymorphic_allocator::delete_object): + Call destructor directly instead of using destroy. + (allocator_traits>): Define partial + specialization. + +2021-08-03 Jonathan Wakely + + * testsuite/20_util/function_objects/binders/3113.cc: Remove + trailing whitespace. + * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: + Likewise. + * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise. + * testsuite/25_algorithms/headers/algorithm/synopsis.cc: + Likewise. + * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc: + Likewise. + * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc: + Likewise. + +2021-08-03 Jonathan Wakely + + * doc/xml/manual/evolution.xml: Document deprecation. + * doc/html/*: Regenerate. + * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define. + (_GLIBCXX14_DEPRECATED_SUGGEST): Define. + * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14 + and later. + * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust + for C++11 and C++14 changes to std::random_shuffle and + std::shuffle. + * testsuite/25_algorithms/random_shuffle/1.cc: Add options to + use deprecated algorithms. + * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise. + * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise. + * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc: + Likewise. + * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc: + Likewise. + +2021-08-03 Jonathan Wakely + + * testsuite/23_containers/forward_list/operations/3.cc: + Use lambda instead of std::bind2nd. + * testsuite/20_util/function_objects/binders/3113.cc: Add + options for testing deprecated features. + * testsuite/20_util/pair/cons/99957.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: + Likewise. + * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise. + * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise. + * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise. + * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc: + Likewise. + * testsuite/ext/pb_ds/example/priority_queue_split_join.cc: + Likewise. + * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated): + New proc. + +2021-08-03 Jonathan Wakely + + * include/bits/regex_executor.h (_State_info): Replace + unique_ptr with array of bool. + * include/bits/regex_executor.tcc: Likewise. + * include/bits/regex_scanner.tcc: Replace std::strchr with + __builtin_strchr. + * include/std/regex: Replace standard headers with smaller + internal ones. + * testsuite/28_regex/traits/char/lookup_classname.cc: Include + for strlen. + * testsuite/28_regex/traits/char/lookup_collatename.cc: + Likewise. + +2021-08-03 Jonathan Wakely + + * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new + RAII class template. + (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr + instead of unique_ptr. + +2021-08-02 Patrick Palka + + PR libstdc++/101599 + * include/bits/ranges_algo.h (__reverse_copy_fn::operator()): + Add missing std::move in return statement. + (__partition_copy_fn::operator()): Rename templtae parameter + _O2 to _Out2. Uglify function parameters out_true and out_false. + * include/bits/ranges_algobase.h (__copy_or_move): Add missing + std::move to recursive call that unwraps a __normal_iterator + output iterator. + * testsuite/25_algorithms/copy/constrained.cc (test06): New test. + * testsuite/25_algorithms/move/constrained.cc (test05): New test. + +2021-08-02 Patrick Palka + + PR libstdc++/101589 + * include/std/ranges (lazy_split_view::_InnerIter::base): Make + the const& overload unconstrained and return a const reference + as per LWG 3533. Make unconditionally noexcept. + (elements_view::base): Revert accidental r12-569 change. + (elements_view::_Iterator::base): Make the const& overload + unconstrained and return a const reference as per LWG 3533. + Make unconditionally noexcept. + +2021-08-02 Patrick Palka + + PR libstdc++/101483 + * include/std/ranges (join_view::_Iterator::_Iterator): Add + missing std::move. + +2021-08-02 Jonathan Wakely + + PR libstdc++/101709 + * src/filesystem/ops-common.h (get_temp_directory_from_env): + Add error_code parameter. + * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code + argument to get_temp_directory_from_env and check it. + * src/filesystem/ops.cc (fs::temp_directory_path): Likewise. + +2021-08-02 Jonathan Wakely + + * testsuite/20_util/tuple/comparison_operators/overloaded2.cc: + Add dg-error for c++11_only target. + +2021-07-30 Jonathan Wakely + + PR libstdc++/65018 + * configure.ac: Check for secure_getenv. + * config.h.in: Regenerate. + * configure: Regenerate. + * src/filesystem/ops-common.h (get_temp_directory_from_env): New + helper function to obtain path from the environment. + * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper. + * src/filesystem/ops.cc (fs::temp_directory_path): Likewise. + * testsuite/27_io/filesystem/operations/temp_directory_path.cc: + Print messages if test cannot be run. + * testsuite/experimental/filesystem/operations/temp_directory_path.cc: + Likewise. Fix incorrect condition. Use "TMP" to work with + Windows as well as POSIX. + +2021-07-29 Hans-Peter Nilsson + + * src/c++17/memory_resource.cc: Use __exchange instead + of std::exchange. + +2021-07-27 Jonathan Wakely + + * include/experimental/optional (__throw_bad_optional_access): + Replace GNU attribute with C++11 attribute. + (optional::value, optional::value_or): Use if statements + instead of conditional expressions. + * include/std/optional (__throw_bad_optional_access) + (optional::value, optional::value_or): Likewise. + +2021-07-27 Marek Polacek + + DR 1512 + PR c++/99701 + * testsuite/20_util/tuple/comparison_operators/overloaded.cc: + Move a line... + * testsuite/20_util/tuple/comparison_operators/overloaded2.cc: + ...here. New test. + +2021-07-27 Jonathan Wakely + + * include/bits/cow_string.h: Consistently use tab for + indentation. + +2021-07-27 Jonathan Wakely + + * include/Makefile.am: Add new header. + * include/Makefile.in: Regenerate. + * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] + (basic_string): Move definition of Copy-on-Write string to + new file. + * include/bits/basic_string.tcc: Likewise. + * include/bits/cow_string.h: New file. + +2021-07-27 Jonathan Wakely + + * include/std/algorithm: Do not include . + * include/std/functional: Likewise. + * include/std/regex: Include instead of + . + * include/debug/map.h: Likewise. + * include/debug/multimap.h: Likewise. + * include/debug/multiset.h: Likewise. + * include/debug/set.h: Likewise. + * include/debug/vector: Likewise. + * include/bits/fs_path.h: Likewise. + * include/bits/unique_ptr.h: Do not include . + * include/experimental/any: Likewise. + * include/experimental/executor: Likewise. + * include/experimental/memory: Likewise. + * include/experimental/optional: Likewise. + * include/experimental/socket: Use __exchange instead + of std::exchange. + * src/filesystem/ops-common.h: Likewise. + * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected + errors to not use a hardcoded line number. + * testsuite/20_util/default_delete/void_neg.cc: Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc: + Include for std::as_const. + * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc: + Likewise. + * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: + Adjust dg-error line number. + +2021-07-27 Jonathan Wakely + + * include/Makefile.am: Add bits/utility.h header. + * include/Makefile.in: Regenerate. + * include/bits/utility.h: New file. + * include/std/utility (tuple_size, tuple_element): Move + to new header. + * include/std/type_traits (__is_tuple_like_impl>): + Move to . + (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise. + (in_place_t, in_place_index_t, in_place_type_t): Likewise. + * include/bits/ranges_util.h: Include new header instead of + . + * include/bits/stl_pair.h (tuple_size, tuple_element): Move + partial specializations for std::pair here. + (get): Move overloads for std::pair here. + * include/std/any: Include new header instead of . + * include/std/array: Likewise. + * include/std/memory_resource: Likewise. + * include/std/optional: Likewise. + * include/std/variant: Likewise. + * include/std/tuple: Likewise. + (__is_tuple_like_impl>): Move here. + (get) Declare overloads for std::array. + * include/std/version (__cpp_lib_tuples_by_type): Change type + to long. + * testsuite/20_util/optional/84601.cc: Include . + * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc: + Likewise. + * testsuite/23_containers/array/tuple_interface/get_neg.cc: + Adjust dg-error line numbers. + * testsuite/std/ranges/access/cbegin.cc: Include . + * testsuite/std/ranges/access/cend.cc: Likewise. + * testsuite/std/ranges/access/end.cc: Likewise. + * testsuite/std/ranges/single_view.cc: Likewise. + +2021-07-23 Jonathan Wakely + + * include/std/future: Include instead of + . + +2021-07-23 Jonathan Wakely + + * include/bits/stl_relops.h: Update documentation comments. + +2021-07-22 Jonathan Wakely + + PR libstdc++/101583 + * include/bits/hashtable.h (_Hashtable): Replace mixin with + _Enable_default_ctor. Construct it explicitly in all + non-forwarding, non-defaulted constructors. + * testsuite/23_containers/unordered_map/cons/default.cc: Check + non-default constructors can be used. + * testsuite/23_containers/unordered_set/cons/default.cc: + Likewise. + +2021-07-22 David Edelsohn + + * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define. + +2021-07-22 Jonathan Wakely + + PR libstdc++/94295 + * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW) + (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define. + (allocator::allocate, allocator::deallocate): Use new macros. + +2021-07-22 Jonathan Wakely + + PR libstdc++/101571 + * include/bits/ranges_uninitialized.h (_DestroyGuard): Change + constructor parameter to reference and use addressof. + * testsuite/util/testsuite_iterators.h: Define deleted operator& + overloads for test iterators. + +2021-07-22 Jonathan Wakely + + * include/bits/std_function.h (_Function_base): Add + default member initializers and define constructor as defaulted. + (function::_M_invoker): Add default member initializer. + +2021-07-22 Jonathan Wakely + + PR libstdc++/100682 + * doc/xml/manual/debug_mode.xml: Update documentation about + debug capability of std::array. + * doc/html/*: Regenerate. + * include/debug/array: New file. + +2021-07-21 Jonathan Wakely + + PR libstdc++/101542 + * include/ext/rope (sequence_buffer): Add move constructor and + move assignment operator. + * testsuite/ext/rope/101542.cc: New test. + +2021-07-20 Jonathan Wakely + + PR libstdc++/101510 + * src/c++17/fs_ops.cc (fs::create_directories): Use status + instead of symlink_status. + * src/filesystem/ops.cc (fs::create_directories): Likewise. + * testsuite/27_io/filesystem/operations/create_directories.cc: + Check symlink to existing directory. + * testsuite/27_io/filesystem/operations/create_directory.cc: Do + not test with symlinks on Windows. + * testsuite/experimental/filesystem/operations/create_directories.cc: + Check symlink to existing directory. + * testsuite/experimental/filesystem/operations/create_directory.cc: + Do not test with symlinks on Windows. + +2021-07-20 Jonathan Wakely + + PR libstdc++/100863 + * include/bits/hashtable.h (_Hashtable): Conditionally delete + default constructor by deriving from _Enable_special_members. + * testsuite/23_containers/unordered_map/cons/default.cc: New test. + * testsuite/23_containers/unordered_set/cons/default.cc: New test. + +2021-07-20 Jonathan Wakely + + PR libstdc++/101510 + * src/c++17/fs_ops.cc (create_dir): Adjust whitespace. + * testsuite/27_io/filesystem/operations/create_directory.cc: + Test creating directory with name of existing symlink to + directory. + * testsuite/experimental/filesystem/operations/create_directory.cc: + Likewise. + +2021-07-16 Jonathan Wakely + + * include/std/tuple (get): Add deleted overload for bad + index. + * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust + expected errors. + +2021-07-16 Jonathan Wakely + + * include/bits/max_size_type.h (numeric_limits<__max_size_type>): + Use __int_traits unconditionally. + +2021-07-16 Jonathan Wakely + + * include/bits/random.h (_Shift::__value): Use constexpr. + (_Select_uint_least_t::type): Use using-declaration. + (_Mod): Likewise. + * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error + line number. + +2021-07-16 Jonathan Wakely + + * include/bits/cpp_type_traits.h (__INT_N): Use __extension__ + instead of diagnostic pragmas. + * include/bits/functional_hash.h: Likewise. + * include/bits/iterator_concepts.h (__is_signed_int128) + (__is_unsigned_int128): Likewise. + * include/bits/max_size_type.h (__max_size_type): Likewise. + (numeric_limits<__max_size_type>): Likewise. + * include/bits/std_abs.h (abs): Likewise. + * include/bits/stl_algobase.h (__size_to_integer): Likewise. + * include/bits/uniform_int_dist.h (uniform_int_distribution): + Likewise. + * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS): + Likewise. + * include/std/type_traits (__is_integral_helper) + (__is_signed_integer, __is_unsigned_integer) + (__make_unsigned, __make_signed): Likewise. + * include/std/limits (__INT_N): Add __extension__ keyword. + * include/bits/random.h (_Select_uint_least_t) + (random_device): Likewise. + +2021-07-16 Patrick Palka + + PR libstdc++/101231 + * include/std/ranges (_CachedPosition::_M_get): For non-forward + ranges, just call __builtin_unreachable. + * testsuite/std/ranges/istream_view.cc (test05): New test. + +2021-07-16 Patrick Palka + + PR libstdc++/101214 + * include/std/ranges (split_view::split_view): Use std::move. + (split_view::_Iterator::_Iterator): Remove redundant + default_initializable constraint. + (split_view::_Sentinel::_Sentinel): Declare. + * testsuite/std/ranges/adaptors/split.cc (test02): New test. + +2021-07-16 Marek Polacek + + * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add + dg-error. + +2021-07-16 Jonathan Wakely + + * include/bits/unique_ptr.h: Adjust doxygen markup. + +2021-07-16 Jonathan Wakely + + PR libstdc++/101307 + * include/std/type_traits: Adjust doxygen markup. + +2021-07-16 Jonathan Wakely + + * include/bits/cpp_type_traits.h: Add diagnostic pragmas around + uses of non-standard integer types. + * include/bits/functional_hash.h: Likewise. + * include/bits/iterator_concepts.h: Likewise. + * include/bits/max_size_type.h: Likewise. + * include/bits/std_abs.h: Likewise. + * include/bits/stl_algobase.h: Likewise. + * include/bits/uniform_int_dist.h: Likewise. + * include/ext/numeric_traits.h: Likewise. + * include/std/type_traits: Likewise. + +2021-07-15 Jonathan Wakely + + PR libstdc++/101427 + * include/std/tuple (tuple_element): Improve static_assert text. + (__get_helper): Add deleted overload. + (get(tuple&&), get(const tuple&&)): Use + __get_helper directly. + (__get_helper2): Remove. + (__find_uniq_type_in_pack): New constexpr helper function. + (get): Use __find_uniq_type_in_pack and __get_helper instead + of __get_helper2. + * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust + expected errors. + * testsuite/20_util/tuple/element_access/101427.cc: New test. + +2021-07-15 Jonathan Wakely + + PR libstdc++/101429 + * include/bits/c++config (__replacement_assert): Add noexcept. + [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort + instead of __replacement_assert. + +2021-07-14 Jonathan Wakely + + * include/std/string_view (basic_string_view(It, End)): Add + noexcept-specifier. + * testsuite/21_strings/basic_string_view/cons/char/range.cc: + Check noexcept-specifier. Also check construction without CTAD. + +2021-07-13 Jonathan Wakely + + PR c++/101361 + * include/std/string_view (ends_with): Use traits_type::compare + directly. + +2021-07-13 Jonathan Wakely + + * include/std/string_view: Only include + once, and only for C++20 and later. + +2021-07-12 Jonathan Wakely + + PR libstdc++/101411 + * include/std/span (as_writable_bytes): Add requires-clause. + * testsuite/23_containers/span/101411.cc: New test. + +2021-07-09 Matheus Castanho + + * include/std/mutex (__lock_impl): Check + _GLIBCXX_HAS_GTHREADS before using __gthread_yield. + +2021-07-02 Jonathan Wakely + + PR libstdc++/101271 + * include/bits/unique_ptr.h (unique_ptr::operator[]): + Remove noexcept-specifier. + (unique_ptr::_S_nothrow_deref): Remove. + * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for + operator[]. + +2021-07-01 Jonathan Wakely + + * doc/doxygen/doxygroups.cc: Fix docs for std::literals. + * doc/doxygen/user.cfg.in: Exclude the Networking TS header. + Add some more predefined macros. + * include/bits/fs_fwd.h: Move @addtogroup commands inside + namespaces. Add better documentation. + * include/bits/fs_path.h: Likewise. + * include/experimental/bits/fs_fwd.h: Likewise. + * include/experimental/bits/fs_path.h: Likewise. + * include/ext/throw_allocator.h: Fix typo and improve docs. + * include/std/chrono: Move @addtogroup commands. + * include/std/system_error: Move @addtogroup commands. + * libsupc++/exception: Improve documentation. + * libsupc++/exception.h: Add @since documentation. + +2021-06-30 Jonathan Wakely + + PR libstdc++/101258 + * doc/doxygen/user.cfg.in (INPUT): Add . + (COLS_IN_ALPHA_INDEX): Remove obsolete tag. + (PREDEFINED): Add/fix some more macros that need to be expanded. + * include/bits/random.h: Stop Doxygen from documenting internal + implementation details. + * include/bits/random.tcc: Likewise. + * include/bits/this_thread_sleep.h: Fix @file name. + * include/experimental/bits/simd.h: Add to Doxygen group. Do not + document internal implementation details. + * include/experimental/bits/simd_detail.h: Do not document + internal implementation details. + * include/experimental/simd: Define Doxygen groups. + * include/experimental/type_traits: Improve documentation for + the header file. Define groups. Use @since commands. + * include/std/scoped_allocator (scoped_allocator_adaptor): Move + declaration before undocumented region. + * include/std/type_traits (true_type, false_type): Use using + declaration instead of typedef. + (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v) + (is_nothrow_invocable_r_v): Move definitions next to other C++17 + variable templates. + Do not document internal implementation details. Move misplaced + group-end command. Define group for variable templates. + * include/std/variant: Do not document internal implementation + details. + * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error + line number. + +2021-06-30 Jonathan Wakely + + * include/experimental/simd: Do not define anything pre-C++17. + +2021-06-30 Jonathan Wakely + + * include/bits/random.tcc [__cpp_inline_variables]: Remove + redundant definitions of static constexpr member variables. + * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error + line number. + +2021-06-28 Jonathan Wakely + + * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove + explicit instantiation declarations. + * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove + explicit instantiation definitions. + +2021-06-28 Jonathan Wakely + + PR libstdc++/97088 + * testsuite/17_intro/names.cc: Fix #if condition for names used + by newlib headers. + +2021-06-28 Jonathan Wakely + + PR libstdc++/101236 + * include/bits/unique_ptr.h (unique_ptr::operator[]): + Fail gracefully if element_type is incomplete. + * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that + the standard doesn't require this test to work for array types. + * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete + types can be used with array specialization. + * testsuite/20_util/unique_ptr/101236.cc: New test. + +2021-06-28 Jonathan Wakely + + * doc/xml/manual/intro.xml: Document LWG 415 change. + * doc/html/manual/bugs.html: Regenerate. + * include/bits/istream.tcc (ws): Create sentry and catch + exceptions. + * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test. + * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test. + +2021-06-25 Jonathan Wakely + + * include/bits/ostream.tcc (basic_ostream::write): Call sputn + directly instead of using _M_write. Do setstate(__err) all + outside the try-catch block. + * include/std/ostream (basic_ostream::_M_write): Declare + private. Use __ostream_insert. Do not define for the versioned + namespace. + +2021-06-25 Jonathan Wakely + + * doc/xml/manual/intro.xml: Document LWG 581 change. + * doc/html/manual/bugs.html: Regenerate. + * include/bits/basic_ios.tcc: Whitespace. + * include/bits/ostream.tcc (basic_ostream::flush()): Construct + sentry. + * testsuite/27_io/basic_ostream/flush/char/2.cc: Check + additional cases. + * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc: + Likewise. + * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise. + * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc: + Likewise. + +2021-06-25 Jonathan Wakely + + * include/bits/ostream.tcc (sentry): Only set failbit if badbit + is set, not if eofbit is set. + (tellp, seekp, seekp): Create sentry object. Do not set badbit + on exceptions. + * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc: + Adjust expected behaviour. + * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc: + Likewise. + * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc: + Likewise. + * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc: + Likewise. + * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test. + * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test. + * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test. + * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test. + +2021-06-25 Jonathan Wakely + + * include/std/syncstream (basic_syncbuf::swap()): Remove + noexcept, as per LWG 3498. + +2021-06-25 Jonathan Wakely + + PR libstdc++/97088 + * testsuite/17_intro/names.cc: Undef more names for newlib and + also for arm-none-linux-gnueabi. + * testsuite/experimental/names.cc: Disable PCH. + +2021-06-25 Matthias Kretz + + * include/experimental/bits/simd.h (__bit_cast): Implement via + __builtin_bit_cast #if available. + (__proposed::simd_bit_cast): Add overloads for simd and + simd_mask, which use __builtin_bit_cast (or __bit_cast #if not + available), which return an object of the requested type with + the same bits as the argument. + * include/experimental/bits/simd_math.h: Use simd_bit_cast + instead of __bit_cast to allow casts to fixed_size_simd. + (copysign): Remove branch that was only required if __bit_cast + cannot be constexpr. + * testsuite/experimental/simd/tests/bits/test_values.h: Switch + from __bit_cast to __proposed::simd_bit_cast since the former + will not cast fixed_size objects anymore. + +2021-06-24 Matthias Kretz + + * include/experimental/bits/simd_math.h + (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2. + (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to + __arg3. + +2021-06-24 Matthias Kretz + + * include/experimental/bits/simd.h (__execute_on_index_sequence) + (__execute_on_index_sequence_with_return) + (__call_with_n_evaluations, __call_with_subscripts): Add flatten + attribute. + +2021-06-24 Matthias Kretz + + * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor) + (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1 + roundp[sd] calls. + +2021-06-24 Matthias Kretz + + * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F + implementation doesn't require a _VecBltnBtmsk ABI tag, it + requires either a 64-Byte input (in which case AVX512F must be + available) or AVX512VL. + +2021-06-24 Matthias Kretz + + * include/experimental/bits/simd_math.h: Undefine internal + macros after use. + (frexp): Move #if to a more sensible position and reformat + preceding code. + (logb): Call _SimdImpl::_S_logb for fixed_size instead of + duplicating the code here. + (modf): Simplify condition. + +2021-06-24 Matthias Kretz + + * include/experimental/bits/simd_math.h (fabs): Remove + fabs(simd) overload. + +2021-06-24 Matthias Kretz + + * include/experimental/bits/simd_converter.h + (_SimdConverter::operator()): Pass _SimdTuple by const-ref. + * include/experimental/bits/simd_fixed_size.h + (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple + arguments by const-ref. + (_S_masked_unary): Pass _SimdTuple by const-ref. + +2021-06-24 Matthias Kretz + + * include/experimental/bits/simd_fixed_size.h + (_AbisInSimdTuple): Removed. + +2021-06-24 Matthias Kretz + + * include/experimental/bits/simd.h: Add missing operator~ + overload for simd to __float_bitwise_operators. + * include/experimental/bits/simd_builtin.h + (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to + implement complement for floating-point vectors. + * include/experimental/bits/simd_fixed_size.h + (_SimdImplFixedSize::_S_copysign): New function, forwarding to + copysign implementation of _SimdTuple members. + * include/experimental/bits/simd_math.h (copysign): Call + _SimdImpl::_S_copysign for fixed_size arguments. Simplify + generic copysign implementation using the new ~ operator. + +2021-06-24 Jonathan Wakely + + * testsuite/experimental/simd/README.md: Fix typos. + +2021-06-24 Jonathan Wakely + + * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]): + Add noexcept. + * include/bits/unique_ptr.h (unique_ptr::operator*): Add + conditional noexcept as per LWG 2762. + * testsuite/20_util/shared_ptr/observers/array.cc: Check that + dereferencing cannot throw. + * testsuite/20_util/shared_ptr/observers/get.cc: Likewise. + * testsuite/20_util/optional/observers/lwg2762.cc: New test. + * testsuite/20_util/unique_ptr/lwg2762.cc: New test. + +2021-06-23 Patrick Palka + + PR c++/101174 + * testsuite/23_containers/multiset/cons/deduction.cc: + Uncomment CTAD example that was rejected by this bug. + * testsuite/23_containers/set/cons/deduction.cc: Likewise. + +2021-06-23 Jonathan Wakely + + * include/std/chrono (chrono::year::is_leap()): Fix incorrect + logic in comment. + +2021-06-23 Matthias Kretz + + * testsuite/experimental/simd/README.md: New file. + +2021-06-23 Matthias Kretz + + * testsuite/experimental/simd/driver.sh: Rewrite output + verbosity logic. Add -p/--percentage option. Allow -v/--verbose + to be used twice. Add -x and -o short options. Parse long + options with = instead of separating space generically. Parce + contracted short options. Make unrecognized options an error. + If same-line output is active, trap on EXIT to increment the + progress (only with --percentage), erase the line and print the + current status. + * testsuite/experimental/simd/generate_makefile.sh: Initialize + helper files for progress account keeping. Update help target + for changes to DRIVEROPTS. + +2021-06-23 Matthias Kretz + + * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag + and associated warning. + * testsuite/Makefile.in: Regenerate. + +2021-06-23 Cassio Neri + Jonathan Wakely + Ulrich Drepper + + * include/std/chrono (chrono::year::is_leap()): Optimize. + +2021-06-23 Patrick Palka + + PR c++/86439 + * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous + CTAD examples. + * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. + * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. + Mention one of the replaced examples is broken due to PR101174. + * testsuite/23_containers/set/cons/deduction.cc: Likewise. + * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace + ambiguous CTAD examples. + * testsuite/23_containers/unordered_multimap/cons/deduction.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/cons/deduction.cc: + Likewise. + * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise. + +2021-06-23 Jonathan Wakely + + * include/std/mutex (__detail::__try_lock_impl): Rename + parameter to avoid clashing with newlib's __lockable macro. + (try_lock): Add 'inline' specifier. + * testsuite/17_intro/names.cc: Add check for __lockable. + * testsuite/30_threads/try_lock/5.cc: Add options for pthreads. + +2021-06-22 Jonathan Wakely + Matthias Kretz + + * include/std/mutex (lock): Replace recursion with iteration + when lockables all have the same type. + (__detail::__try_lock_impl): Likewise. Pass lockables as + parameters, instead of a tuple. Always lock the first one, and + recurse for the rest. + (__detail::__lock_impl): Adjust call to __try_lock_impl. + (__detail::__try_to_lock): Remove. + * testsuite/30_threads/lock/3.cc: Check that mutexes are locked. + * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous + arguments. + * testsuite/30_threads/unique_lock/cons/60497.cc: Also check + std::try_lock. + * testsuite/30_threads/try_lock/5.cc: New test. + +2021-06-22 Jonathan Wakely + + * include/std/memory (declare_reachable, undeclare_reachable) + (declare_no_pointers, undeclare_no_pointers, get_pointer_safety) + (pointer_safety): Only define for C++11 to C++20 inclusive. + * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23. + +2021-06-22 Jonathan Wakely + + * include/bits/random.h (seed_seq): Constrain initializer-list + constructor. + * include/bits/random.tcc (seed_seq): Add template parameter. + * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check + for noexcept. + * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check + constraints. + +2021-06-22 Thomas Rodgers + + PR libstdc++/100806 + * include/bits/semaphore_base.h (__atomic_semaphore::_M_release): + Force _M_release() to wake all waiting threads. + * testsuite/30_threads/semaphore/100806.cc: New test. + +2021-06-21 Jonathan Wakely + + * include/std/mutex (__try_to_lock): Move to __detail namespace. + (struct __try_lock_impl): Replace with ... + (__detail::__try_lock_impl(tuple&)): New + function templates to implement std::try_lock. + (try_lock): Use new __try_lock_impl. + (__detail::__lock_impl(int, int&, L0&, L1&...)): New function + template to implement std::lock. + (lock): Use __lock_impl. + +2021-06-21 Patrick Palka + + * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value. + +2021-06-20 Patrick Palka + + * include/std/ranges (__non_propagating_cache::operator bool): + Define for split_view::begin(). + (split_view): Define as per P2210. + (views::__detail::__can_split_view): Define. + (views::_Split, views::split): Define. + * testsuite/std/ranges/adaptors/100577.cc (test01, test02): + Test views::split. + * testsuite/std/ranges/adaptors/split.cc: New test. + * testsuite/std/ranges/p2325.cc (test08a): New test. + * testsuite/std/ranges/p2367.cc (test01): Test views::split. + +2021-06-20 Patrick Palka + + * include/std/ranges: Rename views::split to views::lazy_split, + split_view to lazy_split_view, etc. throughout. + * testsuite/std/ranges/*: Likewise. + * testsuite/std/ranges/adaptors/lazy_split.cc: New file. + * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file. + +2021-06-20 Patrick Palka + + * include/std/ranges (split_view::_OuterIter::__at_end): + Check _M_trailing_empty. + (split_view::_OuterIter::_M_trailing_empty): Define this + data member. + (split_view::_OuterIter::operator++): Set _M_trailing_empty + appropriately. + (split_view::_OuterIter::operator==): Compare + _M_trailing_empty. + * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two + split parts instead of one. + * testsuite/std/ranges/adaptors/split.cc (test11): New test. + +2021-06-20 Patrick Palka + + * include/std/ranges (split_view::_InnerIter::base): Define as + per P2210. + +2021-06-19 Patrick Palka + + * include/std/ranges (transform_view::_Iterator::_S_iter_concept): + Consider _Base instead of _Vp as per LWG 3555. + (elements_view::_Iterator::_S_iter_concept): Likewise. + +2021-06-19 Patrick Palka + + * include/std/ranges (split_view::_OuterIter::value_type::begin): + Remove the non-const overload, and remove the copyable constraint + on the const overload as per LWG 3553. + +2021-06-19 Patrick Palka + + * include/bits/stl_iterator.h + (__detail::__common_iter_use_postfix_proxy): Add + move_constructible constraint as per LWG 3546. + (common_iterator::__postfix_proxy): Adjust initializer of + _M_keep as per LWG 3546. + +2021-06-18 Patrick Palka + + PR libstdc++/100387 + * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite + to limit comparison complexity to 3*N/2. + (__minmax_element_fn::operator()): Likewise. + (shift_right): Avoid premature std::move of __result. + * testsuite/25_algorithms/minmax/constrained.cc (test04, test05): + New tests. + * testsuite/25_algorithms/minmax_element/constrained.cc (test02): + Likewise. + +2021-06-18 Patrick Palka + + * include/std/concepts (convertible_to): Just use declval as per + LWG 3557. + +2021-06-18 Jonathan Wakely + + PR libstdc++/95833 + * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace + incorrect static_assert with ones matching the 'Mandates' + conditions in the standard. + * testsuite/26_numerics/reduce/95833.cc: New test. + +2021-06-18 Jonathan Wakely + + * testsuite/21_strings/basic_string/cons/char/1.cc: Use + diagnostic pragma to suppress -Wstringop-overread error. + +2021-06-18 Patrick Palka + + * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn) + (find_if, __find_if_not_fn, find_if_not, _in_in_result) + (__mismatch_fn, mismatch, __search_fn, search): Move to ... + * include/bits/ranges_util.h: ... here. + * include/std/ranges (__detail::find, __detail::find_if) + (__detail::find_if_not, __detail::mismatch): Remove. + (filter_view): Use ranges::find_if instead. + (drop_while_view): Use ranges::find_if_not instead. + (split_view): Use ranges::find and ranges::mismatch instead. + +2021-06-18 Patrick Palka + + * include/bits/iterator_concepts.h (weakly_incrementable): Remove + default_initializable requirement. + * include/bits/ranges_base.h (ranges::view): Likewise. + * include/bits/ranges_util.h (subrange): Constrain the default + ctor. + * include/bits/stl_iterator.h (back_insert_iterator): Remove the + default ctor. + (front_insert_iterator): Likewise. + (insert_iterator): Likewise. Remove NSDMIs. + (common_iterator): Constrain the default ctor. + (counted_iterator): Likewise. + * include/bits/stream_iterator.h (ostream_iterator): Remove the + default ctor. + * include/std/ranges (__detail::__box::operator=): Handle + self-assignment in the primary template. + (__detail::__box): In the partial specialization: adjust + constraints as per P2325. Add specialized operator= for the + case when the wrapped type is not copyable. Constrain the + default ctor. Avoid list-initialization. + (single_view): Constraint the default ctor. + (iota_view): Relax semiregular constraint to copyable. + Constrain the default ctor. + (iota_view::_Iterator): Constraint the default ctor. + (basic_istream_view): Remove the default ctor. Remove NSDMIs. + Remove redundant checks for empty _M_stream. + (basic_istream_view::_Iterator): Likewise. + (ref_view): Remove the default ctor. Remove NSDMIs. + (ref_view::_Iterator): Constrain the default ctor. + (__detail::__non_propagating_cache::operator=): Define overload + for assigning from a value of the underlying type. + (filter_view): Likewise. + (filter_view::_Iterator): Likewise. + (transform_view): Likewise. + (transform_view::_Iterator): Likewise. + (take_view): Likewise. + (take_view::_Iterator): Likewise. + (take_while_view): Likewise. + (take_while_view::_Iterator): Likewise. + (drop_while_view): Likewise. + (drop_while_view::_Iterator): Likewise. + (join_view): Likewise. + (split_view::_OuterIter::__current): Adjust after changing the + type of _M_current. + (split_view::_M_current): Wrap it in a __non_propagating_cache. + (split_view::split_view): Constrain the default ctor. + (common_view): Constrain the default ctor. + (reverse_view): Likewise. + (elements_view): Likewise. + * include/std/span (enable_view>): + Define this partial specialization to true unconditionally. + * include/std/version (__cpp_lib_ranges): Adjust value. + * testsuite/24_iterators/back_insert_iterator/constexpr.cc: + Don't attempt to default construct a back_insert_iterator. + * testsuite/24_iterators/front_insert_iterator/constexpr.cc: + Don't attempt to default construct a front_insert_iterator. + * testsuite/24_iterators/insert_iterator/constexpr.cc: + Don't attempt to default construct an insert_iterator. + * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc: + Remove this test for default constructibility of ostream_iterator. + * testsuite/std/ranges/97600.cc: Don't attempt to default + construct a basic_istream_view. + * testsuite/std/ranges/adaptors/detail/semiregular_box.cc: + Rename to ... + * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this. + (test02): Adjust now that __box is copyable-box not + semiregular-box. + (test03): New test. + * testsuite/std/ranges/p2325.cc: New test. + * testsuite/std/ranges/single_view.cc (test06): New test. + * testsuite/std/ranges/view.cc: Adjust now that view doesn't + require default_initializable. + +2021-06-17 Jonathan Wakely + + PR libstdc++/91488 + * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only + define when is_constant_evaluated is available. + * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): + Likewise. + (__constant_string_p, __constant_array_p): Remove. + (char_traits): Use is_constant_evaluated directly. + * include/std/version (__cpp_lib_constexpr_char_traits) + (__cpp_lib_constexpr_string): Only define when + is_constant_evaluated is available. + +2021-06-17 Patrick Palka + + PR libstdc++/100940 + * include/std/ranges (__adaptor::_Partial): For the "simple" + forwarding partial specializations, also require that + the extra arguments are trivially copyable. + * testsuite/std/ranges/adaptors/100577.cc (test04): New test. + +2021-06-17 Patrick Palka + + PR libstdc++/100940 + * include/std/ranges (__adaptor::_RangeAdaptor): Document the + template form of _S_has_simple_extra_args. + (__adaptor::__adaptor_has_simple_extra_args): Add _Args template + parameter pack. Try to treat _S_has_simple_extra_args as a + variable template parameterized by _Args. + (__adaptor::_Partial): Pass _Arg/_Args to the constraint + __adaptor_has_simple_extra_args. + (views::_Take::_S_has_simple_extra_args): Templatize according + to the type of the extra argument. + (views::_Drop::_S_has_simple_extra_args): Likewise. + (views::_Split::_S_has_simple_extra_args): Define. + * testsuite/std/ranges/adaptors/100577.cc (test01, test02): + Adjust after changes to _S_has_simple_extra_args mechanism. + (test03): Define. + +2021-06-16 Jonathan Wakely + + * include/bits/iterator_concepts.h (__decay_copy): Name type. + +2021-06-16 Jonathan Wakely + + * include/bits/ranges_base.h (ranges::begin, ranges::end) + (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend) + (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize) + (ranges::empty, ranges::data, ranges::cdata): Remove final + keywords and deleted operator& overloads. + * testsuite/24_iterators/customization_points/iter_move.cc: Use + new is_customization_point_object function. + * testsuite/24_iterators/customization_points/iter_swap.cc: + Likewise. + * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: + Likewise. + * testsuite/std/ranges/access/begin.cc: Likewise. + * testsuite/std/ranges/access/cbegin.cc: Likewise. + * testsuite/std/ranges/access/cdata.cc: Likewise. + * testsuite/std/ranges/access/cend.cc: Likewise. + * testsuite/std/ranges/access/crbegin.cc: Likewise. + * testsuite/std/ranges/access/crend.cc: Likewise. + * testsuite/std/ranges/access/data.cc: Likewise. + * testsuite/std/ranges/access/empty.cc: Likewise. + * testsuite/std/ranges/access/end.cc: Likewise. + * testsuite/std/ranges/access/rbegin.cc: Likewise. + * testsuite/std/ranges/access/rend.cc: Likewise. + * testsuite/std/ranges/access/size.cc: Likewise. + * testsuite/std/ranges/access/ssize.cc: Likewise. + * testsuite/util/testsuite_iterators.h + (is_customization_point_object): New function. + +2021-06-15 Jonathan Wakely + + * include/bits/ranges_base.h (ranges::begin, ranges::end) + (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend) + (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize) + (ranges::empty, ranges::data, ranges::cdata): Make types final. + Add deleted operator& overloads. + (ranges::advance, ranges::distance, ranges::next, ranges::prev): + Likewise. + * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace + ill-formed & expressions with using-declarations. Add checks for + other function objects. + +2021-06-15 Jonathan Wakely + + * include/bits/ranges_util.h (view_interface): Add noexcept to + empty, operator bool, data and size members. + (subrange): Add noexcept to constructors. + * include/std/ranges (single_view, ref_view): Add noexcept to + constructors. + (views::single, views::all): Add noexcept. + * testsuite/std/ranges/adaptors/all.cc: Check noexcept. + * testsuite/std/ranges/single_view.cc: Likewise. + +2021-06-15 Jonathan Wakely + + * include/bits/ranges_util.h (subrange): Add __size_type typedef + and use it to simplify declarations. + (subrange(i, s, n)): Remove assertion. + * testsuite/std/ranges/subrange/constexpr.cc: New test. + +2021-06-15 Jonathan Wakely + + * include/bits/iterator_concepts.h (__cust_access::__decay_copy): + Replace with function object. + (__cust_access::__member_begin, ___cust_access::_adl_begin): Use + __decay_copy unqualified. + * include/bits/ranges_base.h (__member_end, __adl_end): + Likewise. Use __range_iter_t for type of ranges::begin. + (__member_rend): Use correct value category for rbegin argument. + (__member_data): Use __decay_copy unqualified. + (__begin_data): Use __range_iter_t for type of ranges::begin. + +2021-06-14 Jonathan Wakely + + * include/bits/ranges_base.h (ranges::empty): Check whether + conversion to bool can throw. + * testsuite/std/ranges/access/empty.cc: Check for correct + noexcept-specifier. + +2021-06-14 Jonathan Wakely + + PR libstdc++/100894 + * include/std/type_traits (__common_ref_impl): Only + use the type if it's a reference. + * testsuite/20_util/common_reference/100894.cc: New test. + +2021-06-14 Jonathan Wakely + + * testsuite/experimental/filesystem/path/native/conv_c++23.cc: + Add dg-require-filesystem-ts directive. + +2021-06-14 Jonathan Wakely + + PR libstdc++/101034 + * include/std/any (any(in_place_t, initializer_list, A&&...)) + (any::emplace(initializer_list, A&&...)): Fix constraint + to use lvalue. + * testsuite/20_util/any/cons/101034.cc: New test. + +2021-06-14 Jonathan Wakely + + * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add + -std=gnu++17 option. + +2021-06-14 Jonathan Wakely + + PR libstdc++/101056 + * libsupc++/compare (compare_partial_order_fallback): Add + constraint using reversed parameter order, as per LWG 3465. + * testsuite/18_support/comparisons/algorithms/fallback.cc: + Adjust expected result. + +2021-06-14 Jonathan Wakely + + * libsupc++/compare (__decayed_same_as): New helper concept. + (strong_order, weak_order, partial_order): Constrain with new + concept instead of using static_assert. + (compare_strong_order_fallback, compare_weak_order_fallback) + (compare_partial_order_fallback): Likewise. Do not deduce return + types. Remove redundant if-constexpr checks. + * testsuite/18_support/comparisons/algorithms/fallback.cc: New test. + +2021-06-14 Jonathan Wakely + + PR libstdc++/101055 + * include/std/tuple: Use reserved form of attribute name. + * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add + check for no_unique_address. + * testsuite/17_intro/headers/c++2014/all_attributes.cc: + Likewise. + * testsuite/17_intro/headers/c++2017/all_attributes.cc: + Likewise. + +2021-06-11 Jonathan Wakely + + * include/bits/fs_path.h (operator==, operator<=>): Use new + _S_compare function. + (path::_S_compare): New function to call path::compare in a + context where path::iterator is complete. + * include/experimental/bits/fs_path.h (operator<, operator==): + Define after path::iterator is complete. + * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New + test. + * testsuite/experimental/filesystem/path/native/conv_c++23.cc: + New test. + +2021-06-09 Thomas Rodgers + + * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard + test logic with constexpr check for is_always_lock_free. + +2021-06-09 Jonathan Wakely + + PR libstdc++/100982 + * include/std/optional (optional::operator=(const optional&)): + Fix value category used in is_assignable check. + * testsuite/20_util/optional/assignment/100982.cc: New test. + +2021-06-09 Jonathan Wakely + + * include/bits/allocator.h (allocator::is_always_equal): Deprecate. + * include/bits/iterator_concepts.h (indirectly_readable_traits): + Add LWG issue number to comment. + * include/std/memory_resource (polymorphic_allocator::release): + Deprecate. + * testsuite/20_util/allocator/requirements/typedefs.cc: Add + dg-warning for deprecation. Also check std::allocator. + +2021-06-08 Thomas Rodgers + + PR libstdc++/100889 + * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait): + Change parameter type from _Tp to _Tp*. + * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend + coverage of types tested. + +2021-06-08 Thomas Rodgers + + * include/std/barrier (__tree_barrier::_M_arrive): Remove + unnecessary hasher instantiation. + +2021-06-08 Jonathan Wakely + + * include/experimental/propagate_const (swap): Constrain. + * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test. + +2021-06-07 Avi Kivity + + PR libstdc++/100900 + * include/std/ranges (elements_view::__iter_cat::_S_iter_cat): + Add missing typename. + +2021-06-07 Jonathan Wakely + + PR libstdc++/98842 + * include/std/optional (operator<=>(const optional& const U&)): + Add missing constraint and add workaround for template + recursion. + * testsuite/20_util/optional/relops/three_way.cc: Check that + type without equality comparison cannot be compared when wrapped + in std::optional. + +2021-06-05 Jonathan Wakely + + PR libstdc++/100824 + * include/bits/ranges_base.h (_SSize): Return signed type. + * testsuite/std/ranges/access/ssize.cc: Check with __int128. + +2021-06-04 Jonathan Wakely + + * include/bits/ranges_base.h (_SSize): Return the result of + ranges::size converted to the wider of make-signed-like-t and + ptrdiff_t, rather than the ranges different type. + * testsuite/std/ranges/access/ssize.cc: Adjust expected result + for an iota_view that uses an integer class type for its + difference_type. + +2021-06-04 Jonathan Wakely + + PR libstdc++/100824 + * include/bits/ranges_base.h (__member_data): Use __decay_copy. + * testsuite/std/ranges/access/data.cc: Add testcase from PR. + +2021-06-04 Jonathan Wakely + + PR libstdc++/100824 + * include/bits/iterator_concepts.h (__detail::__decay_copy) + (__detail::__member_begin, __detail::__adl_begin): Move to + namespace ranges::__cust_access. + (__detail::__ranges_begin): Likewise, and rename to __begin. + Remove redundant static assertion. + * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd): + Use lvalue in noexcept specifier. + (__as_const): Add non-deduced parameter for value category. + (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of + __as_const. + (__member_size, __adl_size, __member_empty, __size0_empty): + (__eq_iter_empty, __adl_data): Use lvalue objects in + requirements. + (__sentinel_size): Likewise. Add check for conversion to + unsigned-like. + (__member_data): Allow non-lvalue types to satisfy the concept, + but use lvalue object in requirements. + (_Size, _SSize): Remove forwarding to always use an lvalue. + (_Data): Likewise. Add static assertion for arrays. + * testsuite/std/ranges/access/cdata.cc: Adjust expected + behaviour for rvalues. Add negative tests for ill-formed + expressions. + * testsuite/std/ranges/access/data.cc: Likewise. + * testsuite/std/ranges/access/empty.cc: Adjust expected + behaviour for rvalues. + * testsuite/std/ranges/access/size.cc: Likewise. + +2021-06-04 Tim Adye + + * include/std/any (any::_Manager::_S_access): New static + function to access the contained value. + (any::emplace, __any_caster): Use _S_access member of the + manager type. + +2021-06-04 Jonathan Wakely + + * doc/xml/manual/status_cxx2020.xml: + * doc/html/*: Regenerate. + * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup): + Define. + * include/std/version (__cpp_lib_generic_unordered_lookup): + Define. + * testsuite/23_containers/unordered_map/operations/1.cc: Check + feature test macro. + * testsuite/23_containers/unordered_set/operations/1.cc: + Likewise. + +2021-06-03 Patrick Palka + + * include/bits/ranges_algo.h (__detail::__can_reread_output): + Factor out this concept from ... + (__unique_copy_fn::operator()): ... here. Use the concept + throughout. + * testsuite/std/ranges/range.cc: Remove now ill-formed use + of range_value_t on an output_range. + * testsuite/util/testsuite_iterators.h (output_iterator_wrapper): + Define value_type, pointer and reference member types to void. + +2021-06-03 Patrick Palka + + PR libstdc++/100577 + * include/std/ranges (_RangeAdaptorClosure): Document + _S_has_simple_call_op mechanism. + (_RangeAdaptor): Document _S_has_simple_extra_args mechanism. + (__closure_has_simple_call_op): New concept. + (__adaptor_has_simple_extra_args): Likewise. + (_Partial<_Adaptor, _Args...>): New partial specialization. + (_Partial<_Adaptor, _Arg>): Likewise. + (_Pipe<_Lhs, _Rhs>): Likewise. + (views::_All::_S_has_simple_call_op): Define to true. + (views::_Filter::_S_has_simple_extra_args): Likewise. + (views::_Transform::_S_has_simple_extra_args): Likewise. + (views::_Take::_S_has_simple_extra_args): Likewise. + (views::_TakeWhile::_S_has_simple_extra_args): Likewise. + (views::_Drop::_S_has_simple_extra_args): Likewise. + (views::_DropWhile::_S_has_simple_extra_args): Likewise. + (views::_Join::_S_has_simple_call_op): Likewise. + (views::_Split): Document why we don't define + _S_has_simple_extra_args to true for this adaptor. + (views::_Common::_S_has_simple_call_op): Define to true. + (views::_Reverse::_S_has_simple_call_op): Likewise. + (views::_Elements::_S_has_simple_call_op): Likewise. + * testsuite/std/ranges/adaptors/100577.cc: New test. + +2021-06-02 Jonathan Wakely + + PR libstdc++/100863 + PR libstdc++/65816 + * include/bits/hashtable_policy.h (_Hashtable_ebo_helper): + Value-initialize subobject. + * testsuite/23_containers/unordered_map/allocator/default_init.cc: + Remove XFAIL. + * testsuite/23_containers/unordered_set/allocator/default_init.cc: + Remove XFAIL. + +2021-06-02 Jonathan Wakely + + PR libstdc++/96088 + * testsuite/23_containers/unordered_map/96088.cc: Adjust + expected number of allocations. + * testsuite/23_containers/unordered_set/96088.cc: Likewise. + +2021-06-02 Jonathan Wakely + + * doc/xml/manual/status_cxxis29124.xml: Improve punctuation. + * doc/xml/manual/status_cxxtr1.xml: Likewise. + * doc/xml/manual/status_cxxtr24733.xml: Likewise. + * doc/html/*: Regenerate. + +2021-06-01 Patrick Palka + + PR c++/65816 + * testsuite/23_containers/deque/allocator/default_init.cc, + testsuite/23_containers/forward_list/allocator/default_init.cc, + testsuite/23_containers/list/allocator/default_init.cc, + testsuite/23_containers/map/allocator/default_init.cc, + testsuite/23_containers/set/allocator/default_init.cc, + testsuite/23_containers/vector/allocator/default_init.cc, + testsuite/23_containers/vector/bool/allocator/default_init.cc: + Remove xfail. + +2021-06-01 Jonathan Wakely + + * testsuite/23_containers/unordered_map/96088.cc: Change + effective target to c++17. + * testsuite/23_containers/unordered_set/96088.cc: Likewise. + +2021-06-01 Jonathan Wakely + + * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test + isblank for C++11 and later. + +2021-06-01 Jonathan Wakely + + PR libstdc++/100833 + * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)): + Fix return value for no-op case. + * testsuite/24_iterators/range_operations/advance.cc: Test + return values of three-argument overload. + +2021-06-01 Jonathan Wakely + + PR libstdc++/99453 + * python/Makefile.am: Use archive name for printer hook if no + dynamic library name is available. + * python/Makefile.in: Regenerate. + +2021-05-30 Gerald Pfeifer + + * doc/xml/manual/abi.xml: Remove dead reference to "Intel + Compilers for Linux: Compatibility with GNU Compilers" article. + * doc/html/manual/abi.html: Regenerate. + +2021-05-26 François Dumont + + * include/debug/formatter.h + (_Error_formatter::_Parameter::_Named): New. + (_Error_formatter::_Parameter::_Type): Inherit latter. + (_Error_formatter::_Parameter::_M_integer): Likewise. + (_Error_formatter::_Parameter::_M_string): Likewise. + * src/c++11/debug.cc: Include . + (_Print_func_t): New. + (print_raw(PrintContext&, const char*, ptrdiff_t)): New. + (print_word): Use '%.*s' format in fprintf to render only expected number of chars. + (pretty_print(PrintContext&, const char*, _Print_func_t)): New. + (print_type): Rename in... + (print_type_info): ...this. Use pretty_print. + (print_address, print_integer): New. + (print_named_name, print_iterator_constness, print_iterator_state): New. + (print_iterator_seq_type): New. + (print_named_field, print_type_field, print_instance_field, print_iterator_field): New. + (print_field): Use latters. + (print_quoted_named_name, print_type_type, print_type, print_instance): New. + (print_string(PrintContext&, const char*, const _Parameter*, size_t)): + Change signature to... + (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)): + ...this and adapt. Remove intermediate buffer to render input string. + (print_string(PrintContext&, const char*, ptrdiff_t)): New. + +2021-05-26 Jonathan Wakely + + PR libstdc++/100768 + * include/bits/ranges_base.h (advance, distance, next, prev): + Replace function templates with function objects. + * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: + Adjust for changes to function objects. + * testsuite/std/ranges/adaptors/elements.cc: Add using + declarations for names from namespace ranges. + * testsuite/std/ranges/adaptors/transform.cc: Likewise. + * testsuite/24_iterators/range_operations/100768.cc: New test. + +2021-05-24 François Dumont + + PR libstdc++/96088 + * include/bits/hashtable_policy.h (_Select2nd): New. + (_NodeBuilder<>): New. + (_ReuseOrAllocNode<>::operator()): Use variadic template args. + (_AllocNode<>::operator()): Likewise. + * include/bits/hashtable.h + (_Hashtable<>::__node_builder_t): New. + (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)): + New. + (_Hashtable<>::_S_forward_key): New. + (_Hashtable<>::_M_insert): Use latter. + (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)): + Instantiate node first, compute hash code second. + * testsuite/23_containers/unordered_map/96088.cc: New test. + * testsuite/23_containers/unordered_multimap/96088.cc: New test. + * testsuite/23_containers/unordered_multiset/96088.cc: New test. + * testsuite/23_containers/unordered_set/96088.cc: New test. + * testsuite/util/replacement_memory_operators.h + (counter::_M_increment): New. + (counter::_M_decrement): New. + (counter::reset()): New. + +2021-05-24 Patrick Palka + + PR libstdc++/100479 + * include/std/ranges (__detail::__non_propagating_cache): Move + definition up to before that of _CachedPosition. Make base + class _Optional_base protected instead of private. Add const + overload for operator*. + (__detail::_CachedPosition): Rewrite the partial specialization + for forward ranges as a derived class of __non_propagating_cache. + Remove the size constraint on the partial specialization for + random access ranges. Add copy/move/copy-assignment/move-assignment + members to the offset partial specialization for random + access ranges that propagate the cached value but additionally + invalidate it in the source object on move. + * testsuite/std/ranges/adaptors/100479.cc: New test. + +2021-05-24 Jonathan Wakely + + * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify + call to ranges::next. + * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise. + * testsuite/25_algorithms/is_sorted_until/constrained.cc: + Likewise. + * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to + swap_ranges. + +2021-05-21 Patrick Palka + + PR libstdc++/100606 + * include/std/ranges (drop_while_view::begin): Assert the + precondition added by LWG 3490. + +2021-05-21 Patrick Palka + + PR libstdc++/100690 + * include/std/ranges (iota_view::_Sentinel::_M_distance_from): + Split out this member function from ... + (iota_view::_Sentinel::operator-): ... here, for sake of access + control. + * testsuite/std/ranges/iota/iota_view.cc (test05): New test. + +2021-05-20 Jonathan Wakely + + * include/bits/random.tcc (__representable_as_double) + (__p1_representable_as_double): Add "" to static asserts. + +2021-05-20 Jonathan Wakely + + PR libstdc++/100676 + * include/bits/c++config (__glibcxx_assert_1): Rename to ... + (__glibcxx_constexpr_assert): ... this. + (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert. + (__glibcxx_assert): Define as either __glibcxx_constexpr_assert + or __glibcxx_assert_impl. + (__glibcxx_assert_2): Remove + * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use + __glibcxx_constexpr_assert instead of __glibcxx_assert_1. + * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc: + Adjust expected error. + * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc: + Likewise. + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc: + Likewise. + * testsuite/23_containers/span/back_neg.cc: Likewise. + * testsuite/23_containers/span/front_neg.cc: Likewise. + * testsuite/23_containers/span/index_op_neg.cc: Likewise. + +2021-05-20 Patrick Palka + + PR libstdc++/100639 + * include/bits/stl_iterator.h (reverse_iterator::difference_type): + In C++20 mode, define in terms of iter_difference_t as per P0896R4. + (reverse_iterator::reference): Likewise, but with iter_reference_t. + (reverse_iterator::value_type): Likewise, but with iter_value_t. + * testsuite/std/ranges/adaptors/reverse.cc (test08): New test. + * testsuite/24_iterators/reverse_iterator/100639.cc: New test. + +2021-05-20 Joern Rennecke + + PR libstdc++/100361 + * include/std/charconv (to_chars): Hide the overloads for + floating-point types for 16 bit targets. + * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets. + * testsuite/20_util/to_chars/double.cc: Run this test only on + size32plus targets. + * testsuite/20_util/to_chars/float.cc: Likewise. + * testsuite/20_util/to_chars/long_double.cc: Likewise. + +2021-05-18 Patrick Palka + + PR libstdc++/100631 + * include/std/ranges (elements_view::_Sentinel::operator-): Use + _M_distance_from in the other operator- overload too. + * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test. + +2021-05-18 Thomas Schwinge + + * testsuite/lib/prune.exp: Add note about 'dg-note'. + +2021-05-18 Patrick Palka + + PR libstdc++/100475 + * include/std/ranges (__box::__box): Use non-list-initialization + in member initializer list of in-place constructor of the + partial specialization for semiregular types. + (__box::operator->): Use std::__addressof. + * testsuite/std/ranges/adaptors/detail/semiregular_box.cc + (test02): New test. + * testsuite/std/ranges/single_view.cc (test04): New test. + +2021-05-18 Patrick Palka + + PR libstdc++/100621 + * include/std/ranges (reverse_view::_S_needs_cached_begin): + Set to true if the underlying non-common random-access range + doesn't have a sized sentinel. + +2021-05-18 Patrick Palka + + PR libstdc++/100631 + * include/std/ranges (elements_view::_Iterator): Also befriend + _Sentinel. + (elements_view::_Sentinel::_M_equal): Templatize. + (elements_view::_Sentinel::_M_distance_from): Split out from ... + (elements_view::_Sentinel::operator-): ... here. Depend on + _Base2 instead of _Base in the return type. + * testsuite/std/ranges/adaptors/elements.cc (test06, test07): + New tests. + +2021-05-17 Thomas Rodgers + + * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop + until value change observed. + (__waiter_base::_M_laundered): New member. + (__waiter_base::_M_notify): Check _M_laundered to determine + whether to wake one or all. + (__detail::__atomic_compare): Return true if call to + __builtin_memcmp() == 0. + (__waiter_base::_S_do_spin_v): Adjust predicate. + * testsuite/29_atomics/atomic/wait_notify/100334.cc: New + test. + +2021-05-17 Jonathan Wakely + + PR libstdc++/100630 + * include/experimental/bits/fs_path.h (__is_constructible_from): + Test construction from a const lvalue, not an rvalue. + * testsuite/27_io/filesystem/path/construct/100630.cc: New test. + * testsuite/experimental/filesystem/path/construct/100630.cc: + New test. + +2021-05-17 Antony Polukhin + + PR libstdc++/89728 + * include/bits/locale_facets.h (ctype>): + Declare (but do not define) partial specialization. + * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test. + +2021-05-17 Jonathan Wakely + + * include/std/thread (jthread::_S_create): Fix static assert + message. + * testsuite/30_threads/jthread/95989.cc: Re-enable test. + * testsuite/30_threads/jthread/jthread.cc: Do not require + pthread effective target. + * testsuite/30_threads/jthread/2.cc: Moved to... + * testsuite/30_threads/jthread/version.cc: ...here. + +2021-05-17 Jonathan Wakely + + * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd. + * doc/Makefile.in: Regenerate. + * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder + value. + * scripts/run_doxygen (print_usage): Always print to stdout and + do not exit. + (fail): New function for exiting on error. + (parse_options): Handle --latex_cmd. Do not treat --help the + same as errors. Simplify handling of required arguments. + +2021-05-12 Jonathan Wakely + + * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: + Increase dg-timeout-factor to 4. Fix -Wunused-parameter + warnings. Replace bitwise AND with logical AND in loop + condition. + * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: + Replace bitwise AND with logical AND in loop condition. + * testsuite/util/pstl/test_utils.h: Remove unused parameter + names. + +2021-05-11 Patrick Palka + + * src/c++17/ryu/LOCAL_PATCHES: Update. + * src/c++17/ryu/ryu_generic_128.h: Remove extern "C". + Remove declarations for never-defined functions. + * testsuite/20_util/to_chars/4.cc: New test. + +2021-05-11 Jonathan Wakely + + * testsuite/20_util/headers/memory/synopsis.cc: Define C++98 + alternative for macro. + * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective + target keyword. + * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11 + syntax. + +2021-05-11 Jonathan Wakely + + * include/bits/allocator.h (allocator) [C++20]: Add + missing noexcept to constructor. Restore missing POCMA and + is_always_equal_traits. + [C++17]: Make construct and destroy members private and + declare allocator_traits as a friend. + * include/bits/memoryfwd.h (allocator_traits): Declare. + * include/ext/malloc_allocator.h (malloc_allocator::allocate): + Add nodiscard attribute. Add static assertion for LWG 3307. + * include/ext/new_allocator.h (new_allocator::allocate): Add + static assertion for LWG 3307. + * testsuite/20_util/allocator/void.cc: Check that converting + constructor is noexcept. Check for propagation traits and + size_type and difference_type. Check that pointer and + const_pointer are gone in C++20. + +2021-05-10 Jonathan Wakely + + * include/std/stop_token: Remove TODO comment. + +2021-05-10 Jonathan Wakely + + * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)): + Initialize a non-reference deleter from an rvalue, as per LWG + 3548. + (__shared_ptr::_UniqCompatible): Add missing constraint. + * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test. + * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check + constraints. + +2021-05-10 Jonathan Wakely + + * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove + -std=gnu++17 from dg-options directive. + * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: + Likewise. + * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: + Likewise. + * testsuite/17_intro/headers/c++2017/operator_names.cc: + Likewise. + * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise. + * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise. + * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc: + Likewise. + * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise. + * testsuite/18_support/byte/81076.cc: Likewise. + * testsuite/18_support/byte/global_neg.cc: Likewise. + * testsuite/18_support/byte/ops.cc: Likewise. + * testsuite/18_support/byte/requirements.cc: Likewise. + * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise. + * testsuite/18_support/launder/1.cc: Likewise. + * testsuite/18_support/launder/nodiscard.cc: Likewise. + * testsuite/18_support/launder/requirements.cc: Likewise. + * testsuite/18_support/launder/requirements_neg.cc: Likewise. + * testsuite/18_support/new_aligned.cc: Likewise. + * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: + Likewise. + * testsuite/19_diagnostics/error_code/is_error_code_v.cc: + Likewise. + * testsuite/19_diagnostics/error_condition/hash.cc: Likewise. + * testsuite/20_util/addressof/requirements/constexpr.cc: + Likewise. + * testsuite/20_util/as_const/1.cc: Likewise. + * testsuite/20_util/as_const/rvalue_neg.cc: Likewise. + * testsuite/20_util/bind/83427.cc: Likewise. + * testsuite/20_util/bind/is_placeholder_v.cc: Likewise. + * testsuite/20_util/bool_constant/requirements.cc: Likewise. + * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: + Likewise. + * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc: + Likewise. + * testsuite/20_util/duration_cast/rounding.cc: Likewise. + * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc: + Likewise. + * testsuite/20_util/from_chars/1_neg.cc: Likewise. + * testsuite/20_util/from_chars/requirements.cc: Likewise. + * testsuite/20_util/function/91456.cc: Likewise. + * testsuite/20_util/function/cons/deduction.cc: Likewise. + * testsuite/20_util/function_objects/83607.cc: Likewise. + * testsuite/20_util/function_objects/invoke/59768.cc: Likewise. + * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise. + * testsuite/20_util/function_objects/not_fn/1.cc: Likewise. + * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise. + * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/has_unique_object_representations/value.cc: + Likewise. + * testsuite/20_util/hash/nullptr.cc: Likewise. + * testsuite/20_util/in_place/requirements.cc: Likewise. + * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise. + * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/is_aggregate/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/is_aggregate/value.cc: Likewise. + * testsuite/20_util/is_invocable/83395.cc: Likewise. + * testsuite/20_util/is_invocable/91456.cc: Likewise. + * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/is_invocable/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/is_invocable/value.cc: Likewise. + * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise. + * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise. + * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise. + * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise. + * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise. + * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise. + * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/is_nothrow_swappable_with/value.cc: + Likewise. + * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/is_swappable/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/is_swappable/value.cc: Likewise. + * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/is_swappable_with/value.cc: Likewise. + * testsuite/20_util/logical_traits/83134.cc: Likewise. + * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/logical_traits/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/logical_traits/value.cc: Likewise. + * testsuite/20_util/pair/cons/deduction.cc: Likewise. + * testsuite/20_util/pair/swap_cxx17.cc: Likewise. + * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: + Likewise. + * testsuite/20_util/reference_wrapper/83427.cc: Likewise. + * testsuite/20_util/reference_wrapper/deduction.cc: Likewise. + * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise. + * testsuite/20_util/shared_ptr/requirements/weak_type.cc: + Likewise. + * testsuite/20_util/time_point/arithmetic/constexpr.cc: + Likewise. + * testsuite/20_util/time_point_cast/rounding.cc: Likewise. + * testsuite/20_util/to_chars/3.cc: Likewise. + * testsuite/20_util/to_chars/chars_format.cc: Likewise. + * testsuite/20_util/to_chars/lwg3266.cc: Likewise. + * testsuite/20_util/to_chars/requirements.cc: Likewise. + * testsuite/20_util/tuple/78939.cc: Likewise. + * testsuite/20_util/tuple/apply/1.cc: Likewise. + * testsuite/20_util/tuple/apply/2.cc: Likewise. + * testsuite/20_util/tuple/cons/deduction.cc: Likewise. + * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise. + * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise. + * testsuite/20_util/tuple/swap_cxx17.cc: Likewise. + * testsuite/20_util/tuple/tuple_size_v.cc: Likewise. + * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise. + * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc: + Likewise. + * testsuite/20_util/variable_templates_for_traits.cc: Likewise. + * testsuite/20_util/void_t/1.cc: Likewise. + * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise. + * testsuite/24_iterators/container_access.cc: Likewise. + * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: + Likewise. + * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: + Likewise. + * testsuite/24_iterators/range_access/range_access_cpp17.cc: + Likewise. + * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc: + Likewise. + * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise. + * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: + Likewise. + * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise. + * testsuite/26_numerics/headers/cmath/special_functions_global.cc: + Likewise. + * testsuite/26_numerics/lcm/1.cc: Likewise. + * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. + * testsuite/26_numerics/valarray/deduction.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: + Likewise. + * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: + Likewise. + * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc: + Likewise. + * testsuite/27_io/types/4.cc: Likewise. + * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise. + * testsuite/libstdc++-prettyprinters/91997.cc: Likewise. + * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise. + +2021-05-10 Jonathan Wakely + + * testsuite/20_util/function_objects/searchers.cc: Remove + -std=gnu++17 from dg-options directive. + * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc: + Likewise. + * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc: + Likewise. + * testsuite/25_algorithms/clamp/1.cc: Likewise. + * testsuite/25_algorithms/clamp/2.cc: Likewise. + * testsuite/25_algorithms/clamp/constexpr.cc: Likewise. + * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc: + Likewise. + * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc: + Likewise. + * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise. + * testsuite/25_algorithms/for_each/for_each_n_debug.cc: + Likewise. + * testsuite/25_algorithms/sample/1.cc: Likewise. + * testsuite/25_algorithms/sample/2.cc: Likewise. + * testsuite/25_algorithms/sample/3.cc: Likewise. + * testsuite/25_algorithms/sample/81221.cc: Likewise. + * testsuite/25_algorithms/search/searcher.cc: Likewise. + * testsuite/26_numerics/exclusive_scan/1.cc: Likewise. + * testsuite/26_numerics/inclusive_scan/1.cc: Likewise. + * testsuite/26_numerics/reduce/1.cc: Likewise. + * testsuite/26_numerics/reduce/2.cc: Likewise. + * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise. + * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise. + * testsuite/26_numerics/transform_reduce/1.cc: Likewise. + +2021-05-10 Jonathan Wakely + + * testsuite/23_containers/array/cons/deduction.cc: Remove + -std=gnu++17 from dg-options directive. + * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise. + * testsuite/23_containers/array/element_access/constexpr_c++17.cc: + Likewise. + * testsuite/23_containers/array/requirements/constexpr_iter.cc: + Likewise. + * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc: + Likewise. + * testsuite/23_containers/deque/cons/deduction.cc: Likewise. + * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc: + Likewise. + * testsuite/23_containers/forward_list/cons/deduction.cc: + Likewise. + * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc: + Likewise. + * testsuite/23_containers/list/cons/deduction.cc: Likewise. + * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc: + Likewise. + * testsuite/23_containers/map/cons/deduction.cc: Likewise. + * testsuite/23_containers/map/modifiers/extract.cc: Likewise. + * testsuite/23_containers/map/modifiers/insert/83226.cc: + Likewise. + * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: + Likewise. + * testsuite/23_containers/map/modifiers/merge.cc: Likewise. + * testsuite/23_containers/map/modifiers/try_emplace/1.cc: + Likewise. + * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. + * testsuite/23_containers/multimap/modifiers/extract.cc: + Likewise. + * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise. + * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. + * testsuite/23_containers/multiset/modifiers/extract.cc: + Likewise. + * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise. + * testsuite/23_containers/priority_queue/deduction.cc: Likewise. + * testsuite/23_containers/queue/deduction.cc: Likewise. + * testsuite/23_containers/queue/members/emplace_cxx17_return.cc: + Likewise. + * testsuite/23_containers/set/cons/deduction.cc: Likewise. + * testsuite/23_containers/set/modifiers/extract.cc: Likewise. + * testsuite/23_containers/set/modifiers/merge.cc: Likewise. + * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise. + * testsuite/23_containers/stack/deduction.cc: Likewise. + * testsuite/23_containers/stack/members/emplace_cxx17_return.cc: + Likewise. + * testsuite/23_containers/unordered_map/cons/deduction.cc: + Likewise. + * testsuite/23_containers/unordered_map/modifiers/extract.cc: + Likewise. + * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc: + Likewise. + * testsuite/23_containers/unordered_map/modifiers/merge.cc: + Likewise. + * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/cons/deduction.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/modifiers/extract.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/cons/deduction.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/modifiers/extract.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: + Likewise. + * testsuite/23_containers/unordered_set/cons/deduction.cc: + Likewise. + * testsuite/23_containers/unordered_set/modifiers/extract.cc: + Likewise. + * testsuite/23_containers/unordered_set/modifiers/merge.cc: + Likewise. + * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc: + Likewise. + * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise. + * testsuite/23_containers/vector/cons/deduction.cc: Likewise. + * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc: + Likewise. + +2021-05-10 Jonathan Wakely + + * testsuite/21_strings/basic_string/79162.cc: Remove + -std=gnu++17 from dg-options directive. + * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise. + * testsuite/21_strings/basic_string/cons/char/79162.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/char/86138.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise. + * testsuite/21_strings/basic_string/cons/char/deduction.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise. + * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise. + * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc: + Likewise. + * testsuite/21_strings/basic_string/hash/hash.cc: Likewise. + * testsuite/21_strings/basic_string/lwg2758.cc: Likewise. + * testsuite/21_strings/basic_string/lwg2946.cc: Likewise. + * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: + Likewise. + * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc: + Likewise. + * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc: + Likewise. + * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc: + Likewise. + * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc: + Likewise. + * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc: + Likewise. + * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc: + Likewise. + * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/compare/char/2.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/data/char/2.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/data/char/86169.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/find/char/5.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: + Likewise. + * testsuite/21_strings/basic_string/operators/char/5.cc: + Likewise. + * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: + Likewise. + * testsuite/21_strings/basic_string_view/capacity/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/cons/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/cons/char/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/cons/char/3.cc: + Likewise. + * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: + Likewise. + * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: + Likewise. + * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/char/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/char/empty.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc: + Likewise. + * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/include.cc: Likewise. + * testsuite/21_strings/basic_string_view/inserters/94051.cc: + Likewise. + * testsuite/21_strings/basic_string_view/inserters/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/inserters/char/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/inserters/char/3.cc: + Likewise. + * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc: + Likewise. + * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc: + Likewise. + * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc: + Likewise. + * testsuite/21_strings/basic_string_view/literals/types.cc: + Likewise. + * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc: + Likewise. + * testsuite/21_strings/basic_string_view/literals/values.cc: + Likewise. + * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/data/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/find/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/find/char/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/find/char/3.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/find/char/4.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operators/char/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operators/char/89446.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc: + Likewise. + * testsuite/21_strings/basic_string_view/range_access/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc: + Likewise. + * testsuite/21_strings/basic_string_view/requirements/typedefs.cc: + Likewise. + * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise. + * testsuite/21_strings/basic_string_view/types/1.cc: Likewise. + * testsuite/21_strings/char_traits/requirements/char/99181.cc: + Likewise. + * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc: + +2021-05-10 Jonathan Wakely + + * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17 + from dg-options directive. + * testsuite/20_util/memory_resource/2.cc: Likewise. + * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise. + * testsuite/20_util/monotonic_buffer_resource/93208.cc: + Likewise. + * testsuite/20_util/monotonic_buffer_resource/allocate.cc: + Likewise. + * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: + Likewise. + * testsuite/20_util/monotonic_buffer_resource/release.cc: + Likewise. + * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc: + Likewise. + * testsuite/20_util/polymorphic_allocator/1.cc: Likewise. + * testsuite/20_util/polymorphic_allocator/construct_pair.cc: + Likewise. + * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise. + * testsuite/20_util/polymorphic_allocator/select.cc: Likewise. + * testsuite/20_util/synchronized_pool_resource/allocate.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/allocate_single.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/cons.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/cons_single.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/is_equal.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/multithreaded.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/options.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/release.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/release_single.cc: + Likewise. + * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc: + Likewise. + * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: + Likewise. + * testsuite/20_util/unsynchronized_pool_resource/cons.cc: + Likewise. + * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc: + Likewise. + * testsuite/20_util/unsynchronized_pool_resource/options.cc: + Likewise. + * testsuite/20_util/unsynchronized_pool_resource/release.cc: + Likewise. + * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: + Likewise. + * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise. + * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: + Likewise. + * testsuite/23_containers/forward_list/pmr_typedefs.cc: + Likewise. + * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: + Likewise. + * testsuite/23_containers/list/pmr_typedefs.cc: Likewise. + * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise. + * testsuite/23_containers/map/pmr_typedefs.cc: Likewise. + * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise. + * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise. + * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: + Likewise. + * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise. + * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: + Likewise. + * testsuite/23_containers/set/pmr_typedefs.cc: Likewise. + * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise. + * testsuite/23_containers/unordered_map/pmr_typedefs.cc: + Likewise. + * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc: + Likewise. + * testsuite/23_containers/unordered_set/pmr_typedefs.cc: + Likewise. + * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: + Likewise. + * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise. + * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: + Likewise. + * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise. + +2021-05-10 Jonathan Wakely + + * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from + dg-options. + * testsuite/29_atomics/atomic/is_always_lock_free.cc: + * testsuite/29_atomics/atomic/requirements/typedefs.cc: + * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: + * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: + * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise. + * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise. + * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise. + * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: + Likewise. + * testsuite/30_threads/shared_lock/70766.cc: Likewise. + * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise. + * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: + Likewise. + * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise. + * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc: + Likewise. + * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise. + * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise. + * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise. + * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise. + +2021-05-10 Jonathan Wakely + + * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from + dg-options directive. + * testsuite/20_util/any/assign/2.cc: Likewise. + * testsuite/20_util/any/assign/emplace.cc: Likewise. + * testsuite/20_util/any/assign/exception.cc: Likewise. + * testsuite/20_util/any/assign/self.cc: Likewise. + * testsuite/20_util/any/cons/1.cc: Likewise. + * testsuite/20_util/any/cons/2.cc: Likewise. + * testsuite/20_util/any/cons/90415.cc: Likewise. + * testsuite/20_util/any/cons/92156.cc: Likewise. + * testsuite/20_util/any/cons/aligned.cc: Likewise. + * testsuite/20_util/any/cons/explicit.cc: Likewise. + * testsuite/20_util/any/cons/in_place.cc: Likewise. + * testsuite/20_util/any/cons/nontrivial.cc: Likewise. + * testsuite/20_util/any/make_any.cc: Likewise. + * testsuite/20_util/any/misc/any_cast.cc: Likewise. + * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise. + * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise. + * testsuite/20_util/any/misc/swap.cc: Likewise. + * testsuite/20_util/any/modifiers/1.cc: Likewise. + * testsuite/20_util/any/modifiers/83658.cc: Likewise. + * testsuite/20_util/any/modifiers/92156.cc: Likewise. + * testsuite/20_util/any/observers/type.cc: Likewise. + * testsuite/20_util/any/requirements.cc: Likewise. + * testsuite/20_util/any/typedefs.cc: Likewise. + * testsuite/20_util/optional/77288.cc: Likewise. + * testsuite/20_util/optional/84601.cc: Likewise. + * testsuite/20_util/optional/assignment/1.cc: Likewise. + * testsuite/20_util/optional/assignment/2.cc: Likewise. + * testsuite/20_util/optional/assignment/3.cc: Likewise. + * testsuite/20_util/optional/assignment/4.cc: Likewise. + * testsuite/20_util/optional/assignment/5.cc: Likewise. + * testsuite/20_util/optional/assignment/6.cc: Likewise. + * testsuite/20_util/optional/assignment/7.cc: Likewise. + * testsuite/20_util/optional/assignment/8.cc: Likewise. + * testsuite/20_util/optional/assignment/9.cc: Likewise. + * testsuite/20_util/optional/bad_access.cc: Likewise. + * testsuite/20_util/optional/cons/77727.cc: Likewise. + * testsuite/20_util/optional/cons/85642.cc: Likewise. + * testsuite/20_util/optional/cons/copy.cc: Likewise. + * testsuite/20_util/optional/cons/deduction.cc: Likewise. + * testsuite/20_util/optional/cons/default.cc: Likewise. + * testsuite/20_util/optional/cons/move.cc: Likewise. + * testsuite/20_util/optional/cons/trivial.cc: Likewise. + * testsuite/20_util/optional/cons/value.cc: Likewise. + * testsuite/20_util/optional/cons/value_neg.cc: Likewise. + * testsuite/20_util/optional/constexpr/cons/default.cc: + Likewise. + * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise. + * testsuite/20_util/optional/constexpr/in_place.cc: Likewise. + * testsuite/20_util/optional/constexpr/make_optional.cc: + Likewise. + * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise. + * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise. + * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise. + * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise. + * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise. + * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise. + * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise. + * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise. + * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise. + * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise. + * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise. + * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise. + * testsuite/20_util/optional/hash.cc: Likewise. + * testsuite/20_util/optional/in_place.cc: Likewise. + * testsuite/20_util/optional/make_optional.cc: Likewise. + * testsuite/20_util/optional/nullopt.cc: Likewise. + * testsuite/20_util/optional/observers/1.cc: Likewise. + * testsuite/20_util/optional/observers/2.cc: Likewise. + * testsuite/20_util/optional/observers/3.cc: Likewise. + * testsuite/20_util/optional/observers/4.cc: Likewise. + * testsuite/20_util/optional/observers/5.cc: Likewise. + * testsuite/20_util/optional/observers/6.cc: Likewise. + * testsuite/20_util/optional/relops/1.cc: Likewise. + * testsuite/20_util/optional/relops/2.cc: Likewise. + * testsuite/20_util/optional/relops/3.cc: Likewise. + * testsuite/20_util/optional/relops/4.cc: Likewise. + * testsuite/20_util/optional/relops/5.cc: Likewise. + * testsuite/20_util/optional/relops/6.cc: Likewise. + * testsuite/20_util/optional/relops/7.cc: Likewise. + * testsuite/20_util/optional/requirements.cc: Likewise. + * testsuite/20_util/optional/swap/1.cc: Likewise. + * testsuite/20_util/optional/swap/2.cc: Likewise. + * testsuite/20_util/optional/typedefs.cc: Likewise. + * testsuite/20_util/variant/80165.cc: Likewise. + * testsuite/20_util/variant/85183.cc: Likewise. + * testsuite/20_util/variant/86874.cc: Likewise. + * testsuite/20_util/variant/87431.cc: Likewise. + * testsuite/20_util/variant/87619.cc: Likewise. + * testsuite/20_util/variant/91807.cc: Likewise. + * testsuite/20_util/variant/any.cc: Likewise. + * testsuite/20_util/variant/compile.cc: Likewise. + * testsuite/20_util/variant/deduction.cc: Likewise. + * testsuite/20_util/variant/exception_safety.cc: Likewise. + * testsuite/20_util/variant/hash.cc: Likewise. + * testsuite/20_util/variant/index_type.cc: Likewise. + * testsuite/20_util/variant/relops/89851.cc: Likewise. + * testsuite/20_util/variant/relops/90008.cc: Likewise. + * testsuite/20_util/variant/run.cc: Likewise. + * testsuite/20_util/variant/visit.cc: Likewise. + +2021-05-10 Jonathan Wakely + + * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove + -std=gnu++17 from dg-options directive. + * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise. + * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise. + * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise. + * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise. + * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise. + * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise. + * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise. + * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: + Likewise. + * testsuite/27_io/filesystem/file_status/1.cc: Likewise. + * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise. + * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise. + * testsuite/27_io/filesystem/iterators/91067.cc: Likewise. + * testsuite/27_io/filesystem/iterators/caching.cc: Likewise. + * testsuite/27_io/filesystem/iterators/directory_iterator.cc: + Likewise. + * testsuite/27_io/filesystem/iterators/pop.cc: Likewise. + * testsuite/27_io/filesystem/iterators/recursion_pending.cc: + Likewise. + * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: + Likewise. + * testsuite/27_io/filesystem/operations/absolute.cc: Likewise. + * testsuite/27_io/filesystem/operations/all.cc: Likewise. + * testsuite/27_io/filesystem/operations/canonical.cc: Likewise. + * testsuite/27_io/filesystem/operations/copy.cc: Likewise. + * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise. + * testsuite/27_io/filesystem/operations/create_directories.cc: + Likewise. + * testsuite/27_io/filesystem/operations/create_directory.cc: + Likewise. + * testsuite/27_io/filesystem/operations/create_symlink.cc: + Likewise. + * testsuite/27_io/filesystem/operations/current_path.cc: + Likewise. + * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise. + * testsuite/27_io/filesystem/operations/exists.cc: Likewise. + * testsuite/27_io/filesystem/operations/file_size.cc: Likewise. + * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. + * testsuite/27_io/filesystem/operations/last_write_time.cc: + Likewise. + * testsuite/27_io/filesystem/operations/permissions.cc: + Likewise. + * testsuite/27_io/filesystem/operations/proximate.cc: Likewise. + * testsuite/27_io/filesystem/operations/read_symlink.cc: + Likewise. + * testsuite/27_io/filesystem/operations/relative.cc: Likewise. + * testsuite/27_io/filesystem/operations/remove.cc: Likewise. + * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise. + * testsuite/27_io/filesystem/operations/rename.cc: Likewise. + * testsuite/27_io/filesystem/operations/resize_file.cc: + Likewise. + * testsuite/27_io/filesystem/operations/space.cc: Likewise. + * testsuite/27_io/filesystem/operations/status.cc: Likewise. + * testsuite/27_io/filesystem/operations/symlink_status.cc: + Likewise. + * testsuite/27_io/filesystem/operations/temp_directory_path.cc: + Likewise. + * testsuite/27_io/filesystem/operations/weakly_canonical.cc: + Likewise. + * testsuite/27_io/filesystem/path/append/path.cc: Likewise. + * testsuite/27_io/filesystem/path/append/source.cc: Likewise. + * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise. + * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise. + * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise. + * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise. + * testsuite/27_io/filesystem/path/compare/path.cc: Likewise. + * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise. + * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise. + * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise. + * testsuite/27_io/filesystem/path/concat/path.cc: Likewise. + * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise. + * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise. + * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise. + * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise. + * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise. + * testsuite/27_io/filesystem/path/construct/default.cc: + Likewise. + * testsuite/27_io/filesystem/path/construct/format.cc: Likewise. + * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise. + * testsuite/27_io/filesystem/path/construct/range.cc: Likewise. + * testsuite/27_io/filesystem/path/construct/string_view.cc: + Likewise. + * testsuite/27_io/filesystem/path/decompose/extension.cc: + Likewise. + * testsuite/27_io/filesystem/path/decompose/filename.cc: + Likewise. + * testsuite/27_io/filesystem/path/decompose/parent_path.cc: + Likewise. + * testsuite/27_io/filesystem/path/decompose/relative_path.cc: + Likewise. + * testsuite/27_io/filesystem/path/decompose/root_directory.cc: + Likewise. + * testsuite/27_io/filesystem/path/decompose/root_name.cc: + Likewise. + * testsuite/27_io/filesystem/path/decompose/root_path.cc: + Likewise. + * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise. + * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: + Likewise. + * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise. + * testsuite/27_io/filesystem/path/generation/normal.cc: + Likewise. + * testsuite/27_io/filesystem/path/generation/normal2.cc: + Likewise. + * testsuite/27_io/filesystem/path/generation/proximate.cc: + Likewise. + * testsuite/27_io/filesystem/path/generation/relative.cc: + Likewise. + * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise. + * testsuite/27_io/filesystem/path/generic/generic_string.cc: + Likewise. + * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise. + * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise. + * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise. + * testsuite/27_io/filesystem/path/itr/components.cc: Likewise. + * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise. + * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise. + * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: + Likewise. + * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: + Likewise. + * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: + Likewise. + * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: + Likewise. + * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise. + * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise. + * testsuite/27_io/filesystem/path/native/string-char8_t.cc: + Likewise. + * testsuite/27_io/filesystem/path/native/string.cc: Likewise. + * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise. + * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise. + * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: + Likewise. + * testsuite/27_io/filesystem/path/query/empty.cc: Likewise. + * testsuite/27_io/filesystem/path/query/empty_neg.cc: + * testsuite/27_io/filesystem/path/query/has_extension.cc: + Likewise. + * testsuite/27_io/filesystem/path/query/has_filename.cc: + Likewise. + * testsuite/27_io/filesystem/path/query/has_parent_path.cc: + Likewise. + * testsuite/27_io/filesystem/path/query/has_relative_path.cc: + Likewise. + * testsuite/27_io/filesystem/path/query/has_root_directory.cc: + Likewise. + * testsuite/27_io/filesystem/path/query/has_root_name.cc: + Likewise. + * testsuite/27_io/filesystem/path/query/has_root_path.cc: + Likewise. + * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise. + * testsuite/27_io/filesystem/path/query/is_absolute.cc: + Likewise. + * testsuite/27_io/filesystem/path/query/is_relative.cc: + Likewise. + * testsuite/experimental/filesystem/path/construct/string_view.cc: + Likewise. + +2021-05-10 Jonathan Wakely + + * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: + Remove -std=gnu++17 from dg-options. + * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_sorting/includes.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise. + * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise. + * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise. + * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise. + * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise. + * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise. + * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise. + * testsuite/25_algorithms/pstl/feature_test.cc: Likewise. + * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: + Likewise. + * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise. + * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise. + * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: + Likewise. + * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: + Likewise. + +2021-05-10 Jonathan Wakely + + * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error + for additional errors in C++20. + * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc: + Likewise. + * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise. + * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise. + +2021-05-10 Jonathan Wakely + + * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid + clash with std::any. + +2021-05-07 Jonathan Wakely + + * include/std/istream (__rvalue_stream_extraction_t): Replace + use of __rval_streamable. + * include/std/ostream (__rvalue_stream_insertion_t): Likewise. + (__rval_streamable): Remove. + (_Require_derived_from_ios_base, __derived_from_ios_base): New + helper for checking constraints. + * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix + reference to the wrong subclause of the standard. + * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc: + Likewise. + * testsuite/27_io/basic_ostream/inserters_other/char/6.cc: + Likewise. + * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: + Likewise. + * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc: + New test. + * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned + errors. + +2021-05-06 Jonathan Wakely + + * include/bits/stl_algobase.h (__copy_move, __copy_move_backward): + Improve static_assert messages. + * testsuite/25_algorithms/copy/58982.cc: Adjust expected output. + * testsuite/25_algorithms/copy_n/58982.cc: Likewise. + +2021-05-06 Patrick Palka + + * include/std/ranges (filter_view::_Iterator::base): Make the + const& overload unconstrained and return a const reference as + per LWG 3533. Make unconditionally noexcept. + (transform_view::_Iterator::base): Likewise. + (elements_view::_Iterator::base): Likewise. + +2021-05-06 Patrick Palka + + * include/bits/stl_iterator.h (move_iterator::base): Make the + const& overload unconstrained and return a const reference as + per LWG 3391. Make unconditionally noexcept. + (counted_iterator::base): Likewise. + * testsuite/24_iterators/move_iterator/lwg3391.cc: New test. + * testsuite/24_iterators/move_iterator/move_only.cc: Adjust + has_member_base concept to decay-copy the result of base(). + +2021-05-06 Jonathan Wakely + + * include/std/type_traits (remove_cvref_t): Define in terms of + remove_cvref. + * testsuite/20_util/remove_cvref/value.cc: Check alias. + +2021-05-06 Jonathan Wakely + + Revert: + 2021-05-05 Jonathan Wakely + + * include/std/charconv (__from_chars_alnum): Pass unsigned + char to std::isdigit. + +2021-05-05 Patrick Palka + + * include/bits/ranges_util.h (enable_borrowed_range): + Remove constraints on this partial specialization. + * include/std/ranges (enable_borrowed_range): + Likewise. + +2021-05-05 Patrick Palka + + * include/std/ranges (transform_view::_Iterator::iter_swap): + Remove as per LWG 3520. + (join_view::_Iterator::iter_swap): Add indirectly_swappable + constraint as per LWG 3517. + +2021-05-05 Jonathan Wakely + + * testsuite/20_util/function_objects/invoke/3.cc: Check feature + test macro. + * testsuite/20_util/function_objects/invoke/version.cc: New test. + +2021-05-05 Jonathan Wakely + + * include/std/charconv (__from_chars_alnum): Pass unsigned + char to std::isdigit. + +2021-05-05 Corentin Gay + + * acinclude.m4: Add VxWorks-specific case for the + configuration of ctypes. + * configure: Regenerate. + * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific + version. + * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+. + * config/os/vxworks/ctype_configure_char.cc: Likewise. + * config/os/vxworks/ctype_inline.h: Likewise. + * testsuite/28_regex/traits/char/isctype.cc: Defines + NEWLINE_IN_CLASS_BLANK if the target is VxWorks. + * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise. + +2021-05-04 Jonathan Wakely + + * include/std/future (promise::set_value): Check for existence + of shared state before dereferncing it. + (promise::set_exception, promise::set_value_at_thread_exit) + (promise::set_exception_at_thread_exit): Likewise. + (promise::set_value, promise::set_exception) + (promise::set_value_at_thread_exit) + (promise::set_exception_at_thread_exit): Likewise. + (promise::set_value, promise::set_exception) + (promise::set_value_at_thread_exit) + (promise::set_exception_at_thread_exit): Likewise. + * testsuite/30_threads/promise/members/at_thread_exit2.cc: + Remove unused variable. + +2021-05-04 Jonathan Wakely + + * include/bits/basic_string.h (basic_string(const CharT*, const A&)): + Do not do arithmetic on null pointer. + +2021-05-04 Jonathan Wakely + + * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp + (find_key_pointer(key_const_reference, false_type)) + (find_key_pointer(key_const_reference, true_type)): Do not + dereference null pointer. + +2021-05-04 Jonathan Wakely + + * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid + overflow. + * testsuite/24_iterators/reverse_iterator/2.cc: Do not add + non-zero value to null pointer. + * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: + Use past-the-end iterator for result. + * testsuite/25_algorithms/move_backward/69478.cc: Likewise. + * testsuite/25_algorithms/move_backward/93872.cc: Likewise. + +2021-05-04 Jonathan Wakely + + PR libstdc++/100384 + * include/std/variant (__get_t): New alias template yielding the + return type of std::get on a variant. + (__visit_result_t): New alias template yielding the result of + std::visit. + (__same_types): Move into namespace __detail::__variant. + (__check_visitor_results): Likewise. Use __invoke_result_t and + __get_t. + (__check_visitor_result): Remove. + (visit): Use __visit_result_t for return type. + * testsuite/20_util/variant/100384.cc: New test. + +2021-05-04 Jonathan Wakely + + * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove + checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128. + * config.h.in: Regenerate. + * configure: Regenerate. + * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128. + * include/bits/random.h (_Select_uint_least_t): + Use __SIZEOF_INT128__ to decide whether to use __int128. + * include/std/charconv (__to_chars_unsigned_type): Likewise. + +2021-05-03 Gerald Pfeifer + + * doc/xml/manual/ctype.xml: Move unix.org reference to https. + * doc/html/manual/facets.html: Regenerate. + +2021-04-30 Patrick Palka + + * include/std/ranges (__detail::__non_propating_cache): Define + as per P2328. + (join_view): Remove constraints on the value and reference types + of the wrapped iterator type as per P2328. + (join_view::_Iterator::_M_satisfy): Adjust as per P2328. + (join_view::_Iterator::operator++): Likewise. + (join_view::_M_inner): Use __non_propating_cache as per P2328. + Remove now-redundant use of __maybe_present_t. + * testsuite/std/ranges/adaptors/join.cc: Include . + (test10): New test. + +2021-04-30 Jonathan Wakely + + * include/bits/basic_string.h (__cpp_lib_constexpr_string): + Only define for C++17 and later. + * include/std/version (__cpp_lib_semaphore): Fix condition + to match the one in . + +2021-04-30 Jonathan Wakely + + * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete. + * config.h.in: Regenerate. + * configure: Regenerate. + * configure.ac: Do not use GLIBCXX_CHECK_INT64_T. + * include/bits/postypes.h: Remove include of and + definition/undefinition of the __STDC_LIMIT_MACROS and + __STDC_CONSTANT_MACROS macros. + (streamoff): Use __INT64_TYPE__ if defined. + +2021-04-30 Patrick Palka + + * include/std/ranges (split_view::_InnerIter::operator++): + Depend on _Base instead of _Vp directly, as per LWG 3532. + +2021-04-30 Patrick Palka + + * include/bits/ranges_util.h (subrange::subrange): Avoid + list-initialization in delegating constructor. + * include/std/ranges (single_view): Replace implicit guide + with explicit deduction guide that decays its argument. + (_Single::operator()): Avoid CTAD when constructing the + single_view object. + (_Iota::operator()): Avoid list-initialization. + (__detail::__can_filter_view, _Filter::operator()): Likewise. + (__detail::__can_transform_view, _Transform::operator()): Likewise. + (take_view::begin): Likewise. + (__detail::__can_take_view, _Take::operator()): Likewise. + (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise. + (__detail::__can_drop_view, _Drop::operator()): Likewise. + (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise. + (split_view::split_view): Use views::single when initializing + _M_pattern. + (__detail::__can_split_view, _Split::operator()): Avoid + list-initialization. + (_Counted::operator()): Likewise. + * testsuite/std/ranges/p2367.cc: New test. + +2021-04-30 Jonathan Wakely + + PR libstdc++/60497 + * include/bits/basic_ios.tcc (basic_ios::copyfmt): use + std::addressof. + * include/bits/basic_string.tcc (basic_string::swap) + (basic_string::assign): Likewise. + * include/bits/deque.tcc (deque::operator=(const deque&)): + Likewise. + * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)): + Likewise. + * include/bits/vector.tcc (vector::operator=(const vector&)): + Likewise. + +2021-04-30 Jonathan Wakely + + * include/std/istream (operator>>(Istream&&, x&)): Simplify, as + per LWG 1203. + * include/std/ostream (operator<<(Ostream&&, const x&)): + Likewise. + * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc: + Adjust dg-error pattern. + * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc: + Likewise. + * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define + is_extractable trait to replace std::__is_extractable. Make it + work with rvalue streams as well as lvalues, to replace f() and + g() helper functions. + * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc: + Likewise. + * testsuite/27_io/basic_ostream/inserters_other/char/6.cc: + Define is_insertable trait to replace std::__is_insertable. Make + it work with rvalue streams as well as lvalues, to replace f() + and g() helper functions. + * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: + Likewise. + * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional + errors from new constraints. + * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks, + which are no longer expected to compile. + * testsuite/27_io/rvalue_streams.cc: Adjust existing test. + Verify LWG 1203 changes. + +2021-04-30 Jonathan Wakely + + PR libstdc++/100285 + * include/experimental/socket (__basic_socket_impl::set_option) + (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: + Just set error code. + * testsuite/experimental/net/socket/socket_base.cc: CHeck + for not . + +2021-04-30 Jonathan Wakely + + PR libstdc++/100180 + PR libstdc++/100286 + PR libstdc++/100351 + * testsuite/experimental/net/internet/address/v4/comparisons.cc: + Use new effective-target keyword. + * testsuite/experimental/net/internet/address/v4/cons.cc: + Likewise. + * testsuite/experimental/net/internet/address/v4/creation.cc: + Likewise. + * testsuite/experimental/net/internet/address/v4/members.cc: + Likewise. + * testsuite/experimental/net/internet/address/v6/members.cc: + Likewise. + * testsuite/experimental/net/internet/resolver/base.cc: + Likewise. + * testsuite/experimental/net/internet/resolver/ops/lookup.cc: + Likewise. + * testsuite/experimental/net/internet/resolver/ops/reverse.cc: + Likewise. + * testsuite/experimental/net/internet/socket/opt.cc: + Likewise. + * testsuite/experimental/net/internet/tcp.cc: + Likewise. + * testsuite/experimental/net/internet/udp.cc: + Likewise. + * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip): + New proc to check net_ts_ip et. + +2021-04-28 Jonathan Wakely + + PR libstdc++/97930 + * testsuite/20_util/pair/requirements/structural.cc: New test. + +2021-04-28 Jonathan Wakely + + * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add + new definitions for constructors and assignment operators using + concepts for constraints. + * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and + later. + * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust + expected error messages to also match C++20 errors. + +2021-04-28 Jonathan Wakely + + PR libstdc++/99957 + * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair): + Combine and replace with ... + (_PCC::_DeprConsPair): New SFINAE helper function. + (pair): Merge preprocessor blocks so that all C++03 members + are defined together at the end. + (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)): + Replace _T1 and _T2 parameters with __null_ptr_constant and + adjust constraints. + * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0. + * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise. + * testsuite/20_util/pair/cons/99957.cc: New test. + +2021-04-28 Jonathan Wakely + + * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define. + * include/std/version (__cpp_lib_constexpr_string): Define. + * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc: + Check for __cpp_lib_constexpr_string. + * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc: + Likewise. + * testsuite/21_strings/char_traits/requirements/version.cc: New test. + +2021-04-28 Jonathan Wakely + + * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about + dealing with errors. Use '@' to prevent shell command being + echoed. + * doc/Makefile.in: Regenerate. + +2021-04-28 Jonathan Wakely + + PR libstdc++/100298 + * include/bits/std_thread.h (thread::hardware_concurrency): Add + missing noexcept to inline definition for non-gthreads targets. + +2021-04-28 Patrick Palka + + PR libstdc++/100187 + PR libstdc++/100237 + PR libstdc++/100249 + PR libstdc++/100287 + * include/bits/ranges_algo.h (__search_n_fn::operator()): Give + the __value_comp lambda an explicit bool return type. + (__is_permutation_fn::operator()): Give the __proj_scan local + variable auto&& return type. Give the __comp_scan lambda an + explicit bool return type. + (__remove_fn::operator()): Give the __pred lambda an explicit + bool return type. + (__partition_fn::operator()): Don't std::move __first twice + when returning an empty subrange. + (__min_fn::operator()): Don't std::move __comp. + (__max_fn::operator()): Likewise. + (__minmax_fn::operator()): Likewise. + +2021-04-27 Patrick Palka + + PR libstdc++/100290 + * include/std/ranges (join_view::_Iterator::operator++): Correct + the return type of the lambda to avoid returning a copy of + _M_parent->_M_inner. + * testsuite/std/ranges/adaptors/join.cc (test10): New test. + +2021-04-27 Jakub Jelinek + + Revert: + 2021-04-22 Jakub Jelinek + + PR target/100182 + * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for + ia32. + * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for + ia32. + +2021-04-27 Jonathan Wakely + + * include/experimental/internet (address_v6::bytes_type): Adjust + formatting. + (basic_endpoint): Define _M_is_v6() to put all checks for + AF_INET6 in one place. + (basic_endpoint::resize): Simplify. + (operator==(const tcp&, const tcp&)): Add constexpr and noexcept. + (operator!=(const tcp&, const tcp&)): Likewise. + (operator==(const udp&, const udp&)): Likewise. + (operator!=(const udp&, const udp&)): Likewise. + * testsuite/experimental/net/internet/tcp.cc: New test. + * testsuite/experimental/net/internet/udp.cc: New test. + +2021-04-27 Jonathan Wakely + + PR libstdc++/100286 + * include/experimental/internet (resolver_errc, resolver_category()) + (make_error_code, make_error_condition): Define unconditionally, + only make enumerators and use of gai_strerror depend on the + availability of . + (address_v4::to_string): Use correct constant for string length. + (address_v4::to_string, address_v6::to_string): Define + unconditionally, throw if unsupported. + (make_address_v4, make_address_v6): Define unconditionally. + Return an error if unsupported. + (tcp, udp, v6_only, unicast::hops, multicast::*): Define + conditionally, + * testsuite/experimental/net/internet/socket/opt.cc: Check for + and before using types from + namespace net::ip. + +2021-04-27 Jonathan Wakely + + PR libstdc++/100285 + * include/experimental/internet (resolver_base::flags): + Define overloaded operators as hidden friends. + * include/experimental/socket (socket_base::message_flags): + Likewise. + +2021-04-26 Jonathan Wakely + + * include/experimental/internet (tcp::no_delay, v6_only) + (unicast::hops, multicast::hops, multicast::enable_loopback): + Change access of base class and static data members. Add + using-declaration for __socket_crtp::operator=(_Tp). + (multicast::__mcastopt): New type. + (multicast::join_group, multicast::leave_group): Derive from + __mcastopt for common implementation. + * include/experimental/socket: Add comment. + * testsuite/experimental/net/internet/socket/opt.cc: New test. + * testsuite/experimental/net/socket/socket_base.cc: Check for + protected constructor/destructor of socket_base. Check for + explicit constructors of socket option classes. + +2021-04-26 Jonathan Wakely + + * include/experimental/bits/net.h (__socket_base): Add + bool template parameter to allow BooleanSocketOption and + IntegerSocketOption to have different __socket_base + base classes. + (__socket_base): Adjust base class. + (__socket_base): Add partial specialization. + (__socket_crtp::operator=(_Tp)): Add noexcept-specifier. + * include/experimental/socket (socket_base::broadcast) + (socket_base::debug, socket_base::do_not_route) + (socket_base::keep_alive, socket_base::linger) + (socket_base::out_of_band_inline) + (socket_base::receive_buffer_size) + (socket_base::receive_low_watermark) + (socket_base::reuse_address, socket_base::send_buffer_size) + (socket_base::send_low_watermark): Add using-declaration for + __socket_crtp::operator=(_Tp). + * testsuite/experimental/net/socket/socket_base.cc: Check + properties of socket option types. + +2021-04-26 Jonathan Wakely + + * include/experimental/internet (resolver_base::flags): Remove + enumerators. Initialize constants directly with desired values. + Make all operators constexpr and noexcept. + * testsuite/experimental/net/internet/resolver/base.cc: Use + __gnu_test::test_bitmask_values for bitmask type. Check + construction and destruction is protected. + +2021-04-26 Jonathan Wakely + + * include/bits/semaphore_base.h: Include and . + +2021-04-26 Jonathan Wakely + + PR libstdc++/100259 + * include/experimental/internet (net::ip::make_error_code) + (net::ip::make_error_condition, net::ip::make_network_v4) + (net::ip::operator==(const udp&, const udp&)): Add 'inline'. + +2021-04-24 David Edelsohn + + * testsuite/lib/dg-options.exp (atomic_link_flags): New. + (add_options_for_libatomic): Use atomic_link_flags. + +2021-04-23 Jonathan Wakely + + PR libstdc++/100180 + * include/experimental/io_context (io_context): Define + dummy_pollfd type so that most member functions still compile + without and struct pollfd. + +2021-04-23 Jonathan Wakely + + * include/experimental/io_context (io_context::async_wait): Add + comment. + * include/experimental/socket (basic_socket::async_connect): + Cast wait_type constant to int. + (basic_datagram_socket::async_receive): Likewise. + (basic_datagram_socket::async_receive_from): Likewise. + (basic_datagram_socket::async_send): Likewise. + (basic_datagram_socket::async_send_to): Likewise. + (basic_stream_socket::async_receive): Likewise. + (basic_stream_socket::async_send): Likewise. Use io_context + parameter directly, instead of via an executor. + (basic_socket_acceptor::async_accept): Likewise. + +2021-04-23 Jonathan Wakely + + * include/experimental/socket (socket_base::shutdown_type): + (socket_base::wait_type, socket_base::message_flags): + Remove enumerators. Initialize constants directly with desired + values. + (socket_base::message_flags): Make all operators constexpr and + noexcept. + * testsuite/util/testsuite_common_types.h (test_bitmask_values): + New test utility. + * testsuite/experimental/net/socket/socket_base.cc: New test. + +2021-04-22 David Edelsohn + + * config/os/aix/atomicity.h: Delete. + +2021-04-22 Jonathan Wakely + + * include/bits/atomic_timed_wait.h (__cond_wait_until_impl): + Handle system_clock as well as steady_clock. + * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable. + * testsuite/30_threads/semaphore/try_acquire_until.cc: + Re-enable. + +2021-04-22 Jonathan Wakely + + * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add + options for libatomic. + +2021-04-22 Jonathan Wakely + + * config/os/gnu-linux/os_defines.h: Fix type in comment. + +2021-04-22 Jonathan Wakely + + PR libstdc++/99006 + * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp + is not an array type. + * include/bits/shared_ptr_base.h (__allocate_shared): Likewise. + * testsuite/20_util/shared_ptr/creation/99006.cc: New test. + +2021-04-22 Thomas Rodgers + + * include/bits/atomic_wait.h: Always notify waiters in the + case of 'bare' address notification. + +2021-04-22 Jakub Jelinek + + PR target/100182 + * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for + ia32. + * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for + ia32. + +2021-04-22 Jonathan Wakely + + PR libstdc++/100179 + * include/bits/semaphore_base.h: Remove #error. + * include/std/semaphore: Do not define anything unless one of + the implementations is available. + +2021-04-21 Thomas Rodgers + + * include/bits/semaphore_base.h: Always reload __old in + __atomic_semaphore::_S_do_try_acquire(). + * testsuite/30_threads/stop_token/stop_callback/destroy.cc: + re-enable testcase. + +2021-04-21 Philippe Blain + Jonathan Wakely + + PR libstdc++/99453 + * python/Makefile.am: Install libstdc++*-gdb.py more robustly. + * python/Makefile.in: Regenerate. + +2021-04-21 Thomas Rodgers + + * include/bits/semaphore_base.h: Add missing _M_try_acquire() + member to __platform_wait. + +2021-04-21 Jonathan Wakely + + * include/std/latch: Replace tab characters in license text. + * include/std/semaphore: Likewise. + +2021-04-21 Jakub Jelinek + + PR libstdc++/100164 + * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE + rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE. + * configure: Regenerated. + * config.h.in: Regenerated. + +2021-04-20 Jonathan Wakely + + * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable + test for targets not using futexes for semaphores. + * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise. + * testsuite/30_threads/stop_token/stop_callback/destroy.cc: + Disable for all targets. + +2021-04-20 Thomas Rodgers + + * include/Makefile.am: Add new header. + * include/Makefile.in: Regenerate. + * include/bits/this_thread_sleep.h: New file. + * include/bits/atomic_base.h: Adjust all calls + to __atomic_wait/__atomic_notify for new call signatures. + * include/bits/atomic_timed_wait.h: Extensive rewrite. + * include/bits/atomic_wait.h: Likewise. + * include/bits/semaphore_base.h: Adjust all calls + to __atomic_wait/__atomic_notify for new call signatures. + * include/std/atomic: Likewise. + * include/std/barrier: Likewise. + * include/std/latch: Likewise. + * include/std/semaphore: Likewise. + * include/std/thread (this_thread::sleep_for) + (this_thread::sleep_until): Move to new header. + * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify + 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/29_atomics/atomic_ref/wait_notify.cc: Likewise. + +2021-04-20 Patrick Palka + + PR libstdc++/95983 + * include/bits/stl_iterator.h (__detail::__move_iter_cat): + Define. + (move_iterator): Derive from the above in C++20 in order to + conditionally define iterator_category as per P2259. + (move_iterator::__base_cat): No longer used, so remove. + (move_iterator::iterator_category): Remove in C++20. + (__detail::__common_iter_use_postfix_proxy): Define. + (common_iterator::_Proxy): Rename to ... + (common_iterator:__arrow_proxy): ... this. + (common_iterator::__postfix_proxy): Define as per P2259. + (common_iterator::operator->): Adjust. + (common_iterator::operator++): Adjust as per P2259. + (iterator_traits::_S_iter_cat): Define. + (iterator_traits::iterator_category): Change as + per P2259. + (__detail::__counted_iter_value_type): Define. + (__detail::__counted_iter_concept): Define. + (__detail::__counted_iter_cat): Define. + (counted_iterator): Derive from the above three classes in order + to conditionally define value_type, iterator_concept and + iterator category respectively as per P2259. + (counted_iterator::operator->): Define as per P2259. + (incrementable_traits): Remove as per P2259. + (iterator_traits): Adjust as per P2259. + * include/std/ranges (__detail::__iota_view_iter_cat): Define. + (iota_view::_Iterator): Derive from the above in order to + conditionally define iterator_category as per P2259. + (iota_view::_S_iter_cat): Rename to ... + (iota_view::_S_iter_concept): ... this. + (iota_view::iterator_concept): Use it to apply LWG 3291 changes. + (iota_view::iterator_category): Remove. + (__detail::__filter_view_iter_cat): Define. + (filter_view::_Iterator): Derive from the above in order to + conditionally define iterator_category as per P2259. + (filter_view::_Iterator): Move to struct __filter_view_iter_cat. + (filter_view::_Iterator::iterator_category): Remove. + (transform_view::_Base): Define. + (transform_view::__iter_cat): Define. + (transform_view::_Iterator): Derive from the above in order to + conditionally define iterator_category as per P2259. + (transform_view::_Iterator::_Base): Just alias + transform_view::_Base. + (transform_view::_Iterator::_S_iter_cat): Move to struct + transform_view::__iter_cat. + (transform_view::_Iterator::iterator_category): Remove. + (transform_view::_Sentinel::_Base): Just alias + transform_view::_Base. + (join_view::_Base): Define. + (join_view::_Outer_iter): Define. + (join_view::_Inner_iter): Define. + (join_view::_S_ref_is_glvalue): Define. + (join_view::__iter_cat): Define. + (join_view::_Iterator): Derive from it in order to conditionally + define iterator_category as per P2259. + (join_view::_Iterator::_Base): Just alias join_view::_Base. + (join_view::_Iterator::_S_ref_is_glvalue): Just alias + join_view::_S_ref_is_glvalue. + (join_view::_Iterator::_S_iter_cat): Move to struct + transform_view::__iter_cat. + (join_view::_Iterator::_Outer_iter): Just alias + join_view::_Outer_iter. + (join_view::_Iterator::_Inner_iter): Just alias + join_view::_Inner_iter. + (join_view::_Iterator::iterator_category): Remove. + (join_view::_Sentinel::_Base): Just alias join_view::_Base. + (__detail::__split_view_outer_iter_cat): Define. + (__detail::__split_view_inner_iter_cat): Define. + (split_view::_Base): Define. + (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat + in order to conditionally define iterator_category as per P2259. + (split_view::_Outer_iter::iterator_category): Remove. + (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat + in order to conditionally define iterator_category as per P2259. + (split_view::_Inner_iter::_S_iter_cat): Move to + __split_view_inner_iter_cat. + (split_view::_Inner_iter::iterator_category): Remove. + (elements_view::_Base): Define. + (elements_view::__iter_cat): Define. + (elements_view::_Iterator): Derive from the above in order to + conditionall define iterator_category as per P2259. + (elements_view::_Iterator::_Base): Just alias + elements_view::_Base. + (elements_view::_Iterator::_S_iter_concept) + (elements_view::_Iterator::iterator_concept): Define as per + P2259. + (elements_view::_Iterator::iterator_category): Remove. + (elements_view::_Sentinel::_Base): Just alias + elements_view::_Base. + * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: + Adjust constraints on iterator_traits. + * testsuite/std/ranges/p2259.cc: New test. + +2021-04-20 Jonathan Wakely + + PR libstdc++/100146 + * include/std/charconv (__cpp_lib_to_chars): Define + conditionally. + * include/std/version (__cpp_lib_to_chars): Likewise.. + * testsuite/20_util/from_chars/4.cc: Only check feature test + macro, not _GLIBCXX_HAVE_USELOCALE. + * testsuite/20_util/from_chars/5.cc: Likewise. + * testsuite/20_util/from_chars/6.cc: Likewise. + * testsuite/20_util/to_chars/long_double.cc: Likewise. + +2021-04-20 Jakub Jelinek + + * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol + versions with _IEEE128_ substring are found, set ieee_version_found + to true. Ignore missing symbols with _IEEE128_ in version name if + !ieee_version_found. Use i->first as version_name instead of + i->second.version_name if the latter is empty. + * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. + +2021-04-19 H.J. Lu + + * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: + Updated. + +2021-04-17 Jakub Jelinek + + * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update. + * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. + +2021-04-17 Jakub Jelinek + + * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. + * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. + * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update. + * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. + * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. + * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. + +2021-04-15 Jonathan Wakely + + * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also + add libatomic options for 32-bit sparc*-*-linux-gnu. + +2021-04-15 Jonathan Wakely + + PR libstdc++/96657 + * libsupc++/Makefile.am: Add atomicity.cc here. + * src/c++98/Makefile.am: Remove it from here. + * libsupc++/Makefile.in: Regenerate. + * src/c++98/Makefile.in: Regenerate. + * testsuite/18_support/exception_ptr/96657.cc: New test. + +2021-04-13 Jonathan Wakely + + PR libstdc++/100060 + * include/std/bit: Only include for + hosted build, use otherwise. + +2021-04-13 Jonathan Wakely + + * doc/xml/manual/backwards_compatibility.xml: Remove porting + notes for libg++ and libstdc++-v2, and bibliography. + * doc/html/*: Regenerated. + +2021-04-12 Jonathan Wakely + + PR libstdc++/100044 + * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair): + Remove helper concept. + (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove + deduction guides, as per LWG 3404. + * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class + template argument deduction fails. + +2021-04-12 Jonathan Wakely + + * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc: + Adjust expected error for C++20 mode. + * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc: + Likewise. + +2021-04-12 Jonathan Wakely + + PR libstdc++/99995 + * testsuite/17_intro/headers/c++1998/49745.cc: Include all + standard headers and XFAIL for effective-target c++20. + +2021-04-09 François Dumont + + PR libstdc++/99402 + * include/debug/helper_functions.h (__can_advance(_InputIterator, + const std::pair<_Diff, _Distance_precision>&, int)): New. + (__can_advance(const _Safe_iterator<>&, + const std::pair<_Diff, _Distance_precision>&, int)): New. + * include/debug/macros.h (__glibcxx_check_can_increment_dist): New, + use latter. + (__glibcxx_check_can_increment_range): Adapt to use latter. + (__glibcxx_check_can_decrement_range): Likewise. + * include/debug/safe_iterator.h + (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&, + int)): New. + (__can_advance(const _Safe_iterator<>&, + const std::pair<_Diff, _Distance_precision>&, int)): New. + * include/debug/safe_iterator.tcc + (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&, + int)): New. + (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&, + std::pair&, bool)): Adapt for + __dp_sign_max_size. + (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist. + (__copy_move_backward_a): Likewise. + (__equal_aux): Likewise. + * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&, + const std::pair<_Diff, _Distance_precision>&, int)): New. + (__can_advance(const std::move_iterator<>&, + const std::pair<_Diff, _Distance_precision>&, int)): New. + * testsuite/25_algorithms/copy/debug/99402.cc: New test. + +2021-04-09 Jonathan Wakely + + PR libstdc++/99985 + * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix + to be a valid constexpr function in C++11. + * testsuite/23_containers/unordered_set/cons/99985.cc: New test. + +2021-04-09 Jonathan Wakely + + * include/bits/fs_fwd.h: Fix doxygen group command. + * include/bits/streambuf_iterator.h: Likewise. + * include/bits/uses_allocator_args.h: Likewise. + * include/std/memory: Likewise. + * include/tr1/complex: Likewise. + +2021-04-08 Jonathan Wakely + + * include/bits/basic_string.h: Tweak doxygen comment. + +2021-04-08 Patrick Palka + + * include/std/ranges (__detail::find): Define. + (split_view::_OuterIter::operator++): Apply proposed resolution + of LWG 3505. + * testsuite/std/ranges/adaptors/split.cc (test10): New test. + +2021-04-08 Patrick Palka + + * include/std/ranges (__detail::find_if): Simplify. + (__detail::find_if_not): Likewise. + (__detail::min): Remove. + (__detail::mismatch): Simplify. + (take_view::size): Use std::min instead of __detail::min. + +2021-04-08 Patrick Palka + + * include/std/ranges (__detail::__returnable_element): New + concept. + (elements_view): Use this concept in its constraints. Add + missing private access specifier. + (elements_view::_S_get_element): Define as per LWG 3502. + (elements_view::operator*, elements_view::operator[]): Use + _S_get_element. + (elements_view::operator++): Remove unnecessary constraint + as per LWG 3492. + * testsuite/std/ranges/adaptors/elements.cc (test05): New test. + +2021-04-08 Jonathan Wakely + + * doc/Makefile.am (stamp-pdf-doxygen): Also grep for + out-of-memory error in log file. + * doc/Makefile.in: Regenerate. + +2021-04-08 Jonathan Wakely + + * configure: Regenerate. + +2021-04-08 Jonathan Wakely + + * include/bits/random.h: Fix doxygen group commands. + * include/bits/regex_constants.h: Likewise. + * include/tr1/random.h: Likewise. + +2021-04-08 Jonathan Wakely + + * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): + New function to determine noexcept-specifier for move + constructors. + (_Hashtable): Use _S_nothrow_move() on move constructors. + * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc: + Correct static assertion message. + * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc: + Likewise. + * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc: + Likewise. + +2021-04-08 Patrick Palka + + PR libstdc++/98384 + * testsuite/20_util/to_chars/long_double.cc: Don't run the test + on targets without a large long double. XFAIL the execution on + targets with a non-conforming printf. + +2021-04-08 Patrick Palka + + PR libstdc++/99433 + * include/std/ranges (__adaptor::__maybe_refwrap): Remove. + (__adaptor::__adaptor_invocable): New concept. + (__adaptor::__adaptor_partial_app_viable): New concept. + (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a + non-template base class. + (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base + class template. + (__adaptor::_Partial): New class template that represents + partial application of a range adaptor non-closure. + (__adaptor::__pipe_invocable): New concept. + (__adaptor::_Pipe): New class template. + (__detail::__can_ref_view): New concept. + (__detail::__can_subrange): New concept. + (all): Replace the lambda here with ... + (_All): ... this functor. Add appropriate constraints. + (__detail::__can_filter_view): New concept. + (filter, _Filter): As in all/_All. + (__detail::__can_transform): New concept. + (transform, _Transform): As in all/_All. + (__detail::__can_take_view): New concept. + (take, _Take): As in all/_All. + (__detail::__can_take_while_view): New concept. + (take_while, _TakeWhile): As in all/_All. + (__detail::__can_drop_view): New concept. + (drop, _Drop): As in all/_All. + (__detail::__can_drop_while_view): New concept. + (drop_while, _DropWhile): As in all/_All. + (__detail::__can_join_view): New concept. + (join, _Join): As in all/_All. + (__detail::__can_split_view): New concept. + (split, _Split): As in all/_All. Rename template parameter + _Fp to _Pattern. + (__detail::__already_common): New concept. + (__detail::__can_common_view): New concept. + (common, _Common): As in all/_All. + (__detail::__can_reverse_view): New concept. + (reverse, _Reverse): As in all/_All. + (__detail::__can_elements_view): New concept. + (elements, _Elements): As in all/_All. + (keys, values): Adjust. + * testsuite/std/ranges/adaptors/99433.cc: New test. + * testsuite/std/ranges/adaptors/all.cc: No longer expect that + adding empty range adaptor closure objects to a pipeline doesn't + increase the size of the pipeline. + (test05): New test. + * testsuite/std/ranges/adaptors/common.cc (test03): New test. + * testsuite/std/ranges/adaptors/drop.cc (test09): New test. + * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test. + * testsuite/std/ranges/adaptors/elements.cc (test04): New test. + * testsuite/std/ranges/adaptors/filter.cc (test06): New test. + * testsuite/std/ranges/adaptors/join.cc (test09): New test. + * testsuite/std/ranges/adaptors/p2281.cc: New test. + * testsuite/std/ranges/adaptors/reverse.cc (test07): New test. + * testsuite/std/ranges/adaptors/split.cc (test01, test04): + Adjust. + (test09): New test. + * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust + expected error message. + (test02): Likewise. Extend test. + * testsuite/std/ranges/adaptors/take.cc (test06): New test. + * testsuite/std/ranges/adaptors/take_while.cc (test05): New test. + * testsuite/std/ranges/adaptors/transform.cc (test07, test08): + New test. + +2021-04-08 Jonathan Wakely + + * include/std/string_view: Adjust Doxygen @file comment. + +2021-04-08 Jonathan Wakely + + * include/std/type_traits (is_scoped_enum): Constrain partial + specialization to not match incomplete enum types. Use a + requires-expression instead of instantiating is_convertible. + (is_scoped_enum): Add as workaround for PR c++/99968. + * testsuite/20_util/is_scoped_enum/value.cc: Check with + incomplete types and opaque-enum-declarations. + +2021-04-07 Jonathan Wakely + + PR libstdc++/99805 + * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call + non-const member on _M_pathname, to avoid copy-on-write. + * testsuite/27_io/filesystem/path/decompose/parent_path.cc: + Check construction from strings that might be shared. + +2021-04-06 Jonathan Wakely + + * include/bits/move.h (forward, move, move_if_noexcept) + (addressof): Add _GLIBCXX_NODISCARD. + * include/bits/ranges_cmp.h (identity::operator()): Add + nodiscard attribute. + * include/c_global/cstddef (to_integer): Likewise. + * include/std/bit (bit_cast): Likewise. + * include/std/utility (as_const, to_underlying): Likewise. + +2021-04-06 Jonathan Wakely + + * include/bits/move.h (forward): Change static_assert message + to be unambiguous about what must be true. + * testsuite/20_util/forward/c_neg.cc: Adjust dg-error. + * testsuite/20_util/forward/f_neg.cc: Likewise. + +2021-04-06 Jonathan Wakely + + * include/bits/alloc_traits.h: Use markdown for code font. + * include/bits/basic_string.h: Fix @param names. + * include/bits/max_size_type.h: Remove period after @file. + * include/bits/regex.h: Fix duplicate @retval names, and rename. + * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add + group open to match existing group close. + * include/ext/pb_ds/priority_queue.hpp: Add blank line before group + open. + +2021-04-06 Jonathan Wakely + + * include/bits/atomic_base.h: Fix doxygen group close. + * include/bits/basic_ios.h: Likewise. + * include/bits/forward_list.h: Likewise. + * include/bits/fs_dir.h: Likewise. + * include/bits/fs_ops.h: Likewise. + * include/bits/fs_path.h: Likewise. + * include/bits/functional_hash.h: Likewise. + * include/bits/gslice.h: Likewise. + * include/bits/gslice_array.h: Likewise. + * include/bits/hashtable_policy.h: Likewise. + * include/bits/indirect_array.h: Likewise. + * include/bits/locale_classes.h: Likewise. + * include/bits/locale_facets.h: Likewise. + * include/bits/locale_facets_nonio.h: Likewise. + * include/bits/mask_array.h: Likewise. + * include/bits/refwrap.h: Likewise. + * include/bits/regex.h: Likewise. + * include/bits/regex_automaton.h: Likewise. + * include/bits/regex_compiler.h: Likewise. + * include/bits/regex_constants.h: Likewise. + * include/bits/regex_error.h: Likewise. + * include/bits/regex_executor.h: Likewise. + * include/bits/regex_scanner.h: Likewise. + * include/bits/shared_ptr.h: Likewise. + * include/bits/shared_ptr_atomic.h: Likewise. + * include/bits/shared_ptr_base.h: Likewise. + * include/bits/slice_array.h: Likewise. + * include/bits/specfun.h: Likewise. + * include/bits/std_function.h: Likewise. + * include/bits/std_mutex.h: Likewise. + * include/bits/stl_deque.h: Likewise. + * include/bits/stl_iterator.h: Likewise. + * include/bits/stl_iterator_base_types.h: Likewise. + * include/bits/stl_map.h: Likewise. + * include/bits/stl_multimap.h: Likewise. + * include/bits/stl_multiset.h: Likewise. + * include/bits/stl_numeric.h: Likewise. + * include/bits/stl_pair.h: Likewise. + * include/bits/stl_set.h: Likewise. + * include/bits/stl_uninitialized.h: Likewise. + * include/bits/stream_iterator.h: Likewise. + * include/bits/streambuf_iterator.h: Likewise. + * include/bits/unique_ptr.h: Likewise. + * include/bits/unordered_map.h: Likewise. + * include/bits/unordered_set.h: Likewise. + * include/decimal/decimal: Likewise. + * include/experimental/any: Likewise. + * include/experimental/array: Likewise. + * include/experimental/bits/fs_dir.h: Likewise. + * include/experimental/bits/fs_fwd.h: Likewise. + * include/experimental/bits/fs_ops.h: Likewise. + * include/experimental/bits/fs_path.h: Likewise. + * include/experimental/buffer: Likewise. + * include/experimental/internet: Likewise. + * include/experimental/optional: Likewise. + * include/experimental/propagate_const: Likewise. + * include/experimental/socket: Likewise. + * include/ext/pb_ds/assoc_container.hpp: Likewise. + * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: + Likewise. + * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise. + * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise. + * include/ext/pb_ds/detail/types_traits.hpp: Likewise. + * include/ext/pb_ds/exception.hpp: Likewise. + * include/ext/pb_ds/priority_queue.hpp: Likewise. + * include/ext/pb_ds/tag_and_trait.hpp: Likewise. + * include/ext/random: Likewise. + * include/std/any: Likewise. + * include/std/atomic: Likewise. + * include/std/bitset: Likewise. + * include/std/chrono: Likewise. + * include/std/complex: Likewise. + * include/std/condition_variable: Likewise. + * include/std/fstream: Likewise. + * include/std/future: Likewise. + * include/std/iostream: Likewise. + * include/std/istream: Likewise. + * include/std/mutex: Likewise. + * include/std/numeric: Likewise. + * include/std/ostream: Likewise. + * include/std/ratio: Likewise. + * include/std/shared_mutex: Likewise. + * include/std/stdexcept: Likewise. + * include/std/streambuf: Likewise. + * include/std/system_error: Likewise. + * include/std/thread: Likewise. + * include/std/valarray: Likewise. + * include/std/variant: Likewise. + * include/tr1/cmath: Likewise. + * include/tr1/regex: Likewise. + * include/tr2/dynamic_bitset: Likewise. + * libsupc++/atomic_lockfree_defines.h: Likewise. + * libsupc++/exception: Likewise. + * libsupc++/exception.h: Likewise. + * libsupc++/exception_ptr.h: Likewise. + * libsupc++/nested_exception.h: Likewise. + +2021-03-31 Alexandre Oliva + + * testsuite/30_threads/future/members/poll.cc: Use faster + after-ready call in the calibration loop. + +2021-03-29 Jonathan Wakely + + * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL. + * doc/html/manual/status.html: Regenerate. + +2021-03-28 François Dumont + + * include/debug/forward_list + (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification. + * include/debug/list (list(list&&, const allocator_type&)): Likewise and add + call to safe container allocator aware move constructor. + * include/debug/vector (vector(vector&&, const allocator_type&)): + Fix noexcept qualification. + * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc: + Add allocator-extended move constructor noexceot qualification check. + * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise. + +2021-03-26 Jonathan Wakely + + * src/c++11/random.cc (USE_LCG): Define when a pseudo-random + fallback is needed. + [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg): + New helper functions and callback. + (random_device::_M_init): Add 'prng' and 'all' enumerators. + Replace switch with fallthrough with a series of 'if' statements. + [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid + checks fail. + (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng" + token. + (random_device::_M_getval): Check for callback unconditionally + and always pass _M_file pointer. + * testsuite/26_numerics/random/random_device/85494.cc: Remove + effective-target check. Use new random_device_available helper. + * testsuite/26_numerics/random/random_device/94087.cc: Likewise. + * testsuite/26_numerics/random/random_device/cons/default-cow.cc: + Remove effective-target check. + * testsuite/26_numerics/random/random_device/cons/default.cc: + Likewise. + * testsuite/26_numerics/random/random_device/cons/token.cc: Use + new random_device_available helper. Test "prng" token. + * testsuite/util/testsuite_random.h (random_device_available): + New helper function. + +2021-03-25 François Dumont + + * include/debug/string + (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI. + (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification. + (basic_string<>::erase): Adapt to take __const_iterator. + (basic_string(const _CharT*, const _Allocator&)): Remove assign call. + (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to + remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI. + [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New. + (__gnu_debug::u16string, __gnu_debug::u32string): New. + (std::hash<__gnu_debug::basic_string<>>): New partial specialization. + (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise. + * testsuite/util/exception/safety.h + (erase_base<__gnu_debug::basic_string<>>): New partial specialization. + (insert_base<__gnu_debug::basic_string<>>): Likewise. + * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>): + New partial specialization. + * testsuite/21_strings/basic_string/hash/debug.cc: New test. + * testsuite/21_strings/basic_string/requirements/citerators.cc: + Add test on __gnu_debug::string. + * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise. + * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise. + * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc: + Likewise. + * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc: + Likewise. + * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise. + +2021-03-25 Jakub Jelinek + + PR c++/99672 + * testsuite/18_support/source_location/consteval.cc (main): Adjust + expected column numbers. + * testsuite/18_support/source_location/1.cc (main): Likewise. + +2021-03-25 Jonathan Wakely + + * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc. + +2021-03-25 Jonathan Wakely + + * testsuite/util/exception/safety.h (setup_base::generate): + Support seeding random engine. + (erase_point, erase_range): Adjust range of random numbers to + ensure dereferenceable iterators are used where required. + (generation_prohibited::run): Do not try to erase from empty + containers. + * testsuite/util/testsuite_containergen.h (test_containers): + Support seeding random engine. + +2021-03-23 Jonathan Wakely + + * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated + line with a check that uses the const being/end overloads. + +2021-03-23 Moritz Sichert + + * include/std/ranges (reverse_view::begin, reverse_view::end): + Qualify make_reverse_iterator calls to avoid ADL. + * testsuite/std/ranges/adaptors/reverse.cc: Test that + views::reverse works when make_reverse_iterator is defined + in an associated namespace. + +2021-03-23 Jonathan Wakely + + * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT): + Do not define when compiling with Clang. + +2021-03-22 Jonathan Wakely + + * include/std/string_view (basic_string_view(Range&&)): Define new + constructor and deduction guide. + * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test. + * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test. + +2021-03-22 Jonathan Wakely + + * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])): + Add missing 'noexcept' as per LWG 2280. + (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list)) + (rend(initializer_list)): Add 'noexcept' as per LWG 3537. + * testsuite/24_iterators/range_access/range_access.cc: Check for + expected noexcept specifiers. Check result types of generic + std::begin and std::end overloads. + * testsuite/24_iterators/range_access/range_access_cpp14.cc: + Check for expected noexcept specifiers. + * testsuite/24_iterators/range_access/range_access_cpp17.cc: + Likewise. + +2021-03-19 Jonathan Wakely + + * include/std/type_traits (is_scoped_enum): Define. + * include/std/version (__cpp_lib_is_scoped_enum): Define. + * testsuite/20_util/is_scoped_enum/value.cc: New test. + * testsuite/20_util/is_scoped_enum/version.cc: New test. + +2021-03-16 Jonathan Wakely + + PR libstdc++/99341 + * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove + std::once_flag symbols. + * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise. + * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise. + * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: + Likewise. + * config/abi/pre/gnu.ver: Likewise. + * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX] + (struct __once_flag_compat): Remove. + (_ZNSt9once_flag11_M_activateEv): Remove. + (_ZNSt9once_flag9_M_finishEb): Remove. + +2021-03-16 Jonathan Wakely + + PR libstdc++/99341 + * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag): + Revert to pthread_once_t implementation. + [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise. + * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX] + (struct __once_flag_compat): New type matching the reverted + implementation of once_flag using futexes. + (once_flag::_M_activate): Remove, replace with ... + (_ZNSt9once_flag11_M_activateEv): ... alias symbol. + (once_flag::_M_finish): Remove, replace with ... + (_ZNSt9once_flag9_M_finishEb): ... alias symbol. + * testsuite/30_threads/call_once/66146.cc: Removed. + +2021-03-15 Iain Sandoe + + * testsuite/17_intro/names.cc: Exclude j from the list + of test symbols for Darwin. + +2021-03-15 Iain Sandoe + + * config/os/bsd/darwin/ppc-extra.ver: Add matching for + to_chars and from_chars for long double. + +2021-03-15 Patrick Palka + + * include/bits/max_size_type.h (__max_size_type::operator _Tp): + Fix formatting. + (__max_size_type::operator++): Define. + (__max_size_type::operator--): Likewise. + (__max_size_type::operator<=>): Conditionally define (in place + of the other comparison operators). + (__max_diff_type::operator _Tp): Fix formatting. + (__max_diff_type::operator++): Define. + (__max_diff_type::operator--): Likewise. + (__max_diff_type::operator<=>): Conditionally define (in place + of the other comparison operators). + * testsuite/std/ranges/iota/max_size_type.cc (test01): Test + these operator overloads. + +2021-03-15 Caroline Tice + + PR libstdc++/99172 + * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add + AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make + AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std' + filtered out. + * src/Makefile.in: Regenerate. + +2021-03-11 Patrick Palka + + * src/c++17/floating_to_chars.cc: Simplify the file as if + __SIZEOF_INT128__ is always defined. + [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define + a base-10 to_chars overload for the uint128_t class type. + * src/c++17/uint128_t.h: New file. + * testsuite/20_util/to_chars/long_double.cc: No longer expect an + execution FAIL on targets that have a large long double type + but lack __int128. + +2021-03-11 Patrick Palka + + * src/c++17/ryu/LOCAL_PATCHES: Update. + * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t. + * src/c++17/ryu/generic_128.h: Likewise. + * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128): + Use uint128_t instead of __uint128_t. + (generic_binary_to_decimal): Likewise. + +2021-03-11 Patrick Palka + + * src/c++17/ryu/LOCAL_PATCHES: New file. + +2021-03-11 Patrick Palka + + * src/c++17/floating_to_chars.cc (uint128_t): New conditionally + defined alias of unsigned __int128. + (floating_type_traits_binary128::mantissa_t): Use uint128_t + instead of unsigned __int128. + (floating_type_traits::mantissa_t) + [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise. + (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t + and uint32_t explicit. Simplify the extraction of mantissa, + exponent and sign bit. + +2021-03-11 Jonathan Wakely + + * include/std/barrier (barrier::arrival_token): New move-only + class that encapsulates the underlying token value. + +2021-03-11 Jonathan Wakely + + * python/libstdcxx/v6/printers.py (find_type): Use tag attribute + instead of unqualified() method. + +2021-03-11 Jonathan Wakely + + PR libstdc++/99537 + * include/std/stop_token (_Stop_state_t::_M_release_ownership): + Use acq_rel memory ordering. + +2021-03-11 Jonathan Wakely + + PR libstdc++/99533 + * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new + helper function to check for permission denied errors. + * src/filesystem/dir.cc (recursive_directory_iterator): + Likewise. + * src/filesystem/dir-common.h (is_permission_denied_error): New + helper function. + +2021-03-11 Jonathan Wakely + + PR libstdc++/99536 + * include/bits/random.h (normal_distribution): Use + default-initializer for _M_saved and _M_saved_available. + +2021-03-10 John David Anglin + + * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to + link with libatomic. + * 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/30_threads/barrier/arrive.cc: Likewise. + * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise. + * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise. + * testsuite/30_threads/barrier/completion.cc: Likewise. + * testsuite/30_threads/latch/3.cc: Likewise. + * testsuite/30_threads/semaphore/try_acquire.cc: Likewise. + * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise. + * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise. + +2021-03-10 Jonathan Wakely + + PR libstdc++/99413 + * include/bits/align.h: Include debug/assertions.h. + * include/bits/codecvt.h: Include bits/c++config.h. + * include/bits/enable_special_members.h: Likewise. + * include/bits/erase_if.h: Likewise. + * include/bits/functional_hash.h: Include . + * include/bits/invoke.h: Include bits/move.h. + * include/bits/ostream_insert.h: Include bits/exception_defines.h. + * include/bits/parse_numbers.h: Include . + * include/bits/predefined_ops.h: Include bits/c++config.h. + * include/bits/range_access.h: Include bits/stl_iterator.h. + * include/bits/stl_bvector.h: Do not include bits/stl_vector.h. + * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h. + * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h. + * include/bits/uniform_int_dist.h: Include bits/concept_check.h. + * include/bits/unique_lock.h: Include bits/std_mutex.h. + * include/debug/assertions.h: Include bits/c++config.h. + +2021-03-10 Jonathan Wakely + + * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove. + (ranges::equal_to, ranges::not_equal_to): Do not constrain + with __eq_builtin_ptr_cmp. + (ranges::less, ranges::greater, ranges::less_equal) + (ranges::greater_equal): Do not constrain with + __less_builtin_ptr_cmp. + * libsupc++/compare (compare_three_way): Do not constrain with + __3way_builtin_ptr_cmp. + * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to... + * testsuite/18_support/comparisons/object/lwg3530.cc: ...here. + * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test. + +2021-03-10 Jonathan Wakely + + * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for + C++20 calendar types. + +2021-03-06 Jakub Jelinek + + PR libstdc++/99396 + * include/std/bit (__rotl, __rotr): Add optimized variants for power of + two _Nd which the compiler can pattern match the rotates. + +2021-03-04 Jonathan Wakely + + PR libstdc++/99382 + * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc: + Make storage larger than required. Verify no write to the last + element. + * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc: + Likewise. + +2021-03-03 Rainer Orth + + * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. + * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: + Likewise. + * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. + * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: + Likewise. + +2021-03-03 Rainer Orth + + * include/experimental/bits/simd.h: Replace reserved _X, _B by + _Xp, _Bp. + * include/experimental/bits/simd_builtin.h: Likewise. + * include/experimental/bits/simd_x86.h: Likewise. + +2021-02-27 Jonathan Wakely + + PR libstdc++/99301 + * include/std/chrono (year_month_day::_M_days_since_epoch()): + Convert chrono::month and chrono::day to unsigned before + converting to uint32_t. + +2021-02-25 Jonathan Wakely + + * include/std/chrono (year_month_day::_S_from_days): Perform + all calculations with type uint32_t. + +2021-02-25 Jonathan Wakely + + * doc/xml/manual/abi.xml: Document versioning for GCC 11. + * doc/html/manual/abi.html: Regenerate. + +2021-02-25 Jonathan Wakely + + PR libstdc++/99270 + * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to + FILE instead of FILE. + +2021-02-25 Andreas Schwab + + * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. + * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update. + * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. + * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. + +2021-02-25 Jonathan Wakely + + PR libstdc++/99265 + * include/std/chrono (year_month_day::_S_from_days): Cast long + to int explicitly. + +2021-02-25 Jonathan Wakely + + * include/std/utility (to_underlying): Define. + * include/std/version (__cpp_lib_to_underlying): Define. + * testsuite/20_util/to_underlying/1.cc: New test. + * testsuite/20_util/to_underlying/version.cc: New test. + +2021-02-24 Jonathan Wakely + + PR libstdc++/99261 + * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args + before value to be printed. + +2021-02-24 Patrick Palka + + * src/c++17/floating_to_chars.cc (__floating_to_chars_precision): + Relax the condition that guards the printf code path to accept + F128_type as well as long double. + +2021-02-24 Cassio Neri + + * include/std/chrono (year_month_day_last:day): New + implementation. + +2021-02-24 Cassio Neri + + * include/std/chrono (year::is_leap): New implementation. + * testsuite/std/time/year/2.cc: New test. + +2021-02-24 Cassio Neri + + * include/std/chrono (year_month_day::_M_days_since_epoch): + New implementation. + * testsuite/std/time/year_month_day/4.cc: New test. + +2021-02-24 Cassio Neri + + * include/std/chrono (year_month_day::_S_from_days): New + implementation. + * testsuite/std/time/year_month_day/3.cc: New test. + +2021-02-24 Patrick Palka + + PR libstdc++/98384 + * testsuite/20_util/to_chars/long_double.cc: Include . + (test01): Simplify verifying the nearby values by using a + 2-iteration loop and a dedicated output buffer to check that the + nearby values are different. Factor out the printf-based + verification into a local function, and check that the leading + hex digits agree before comparing to the output of printf. Also + verify the output by round-tripping it through from_chars. + +2021-02-24 Jonathan Wakely + + PR libstdc++/98389 + * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars + symbols for long double arguments mangled as 'g'. + * config/os/gnu-linux/ldbl-extra.ver: Likewise. + * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise. + * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]: + Use -mabi=ibmlongdouble for floating_to_chars.cc. + * src/c++17/Makefile.in: Regenerate. + * src/c++17/floating_to_chars.cc (floating_type_traits_binary128): + New type defining type traits of IEEE binary128 format. + (floating_type_traits<__float128>): Define specialization. + (floating_type_traits): Define in terms of + floating_type_traits_binary128 when appropriate. + (floating_to_shortest_scientific): Handle __float128. + (sprintf_ld): New function template for printing a long double + or __ieee128 value using sprintf. + (__floating_to_chars_shortest, __floating_to_chars_precision): + Use sprintf_ld. + (to_chars): Define overloads for __float128. + +2021-02-24 Jonathan Wakely + + * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*. + +2021-02-23 Martin Sebor + + PR c++/99074 + * libsupc++/dyncast.cc (__dynamic_cast): Return null when + first argument is null. + +2021-02-23 Jakub Jelinek + + PR libstdc++/99181 + * testsuite/21_strings/char_traits/requirements/char/99181.cc: New + test. + +2021-02-23 Jakub Jelinek + + PR libstdc++/99181 + * include/bits/char_traits.h (char_traits::compare): For + constexpr evaluation don't call + __gnu_cxx::char_traits::compare but do the comparison loop + directly. + +2021-02-23 Jakub Jelinek + + PR libstdc++/97549 + * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend. + +2021-02-23 Patrick Palka + + PR libstdc++/98384 + * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract + the high- and low-order parts from an IBM long double value + in an endian-agnostic way. + +2021-02-19 Jonathan Wakely + + * include/bits/atomic_wait.h (__thread_relax()): Call + __thread_yield() not __gthread_yield(). + +2021-02-15 Jonathan Wakely + + * include/bits/atomic_wait.h (__thread_yield()): Check + _GLIBCXX_HAS_GTHREADS before using __gthread_yield. + (__thread_relax()): Use __thread_yield() instead of repeating + the preprocessor checks for __gthread_yield. + +2021-02-15 Jonathan Wakely + + * include/std/mutex (once_flag::_M_activate()): Add explicit + return statement for passive case. + (once_flag::_M_finish(bool)): Use reserved name for parameter. + +2021-02-14 Jonathan Wakely + + PR libstdc++/99096 + * testsuite/util/testsuite_fs.h: Always include . + +2021-02-12 Jonathan Wakely + + PR libstdc++/88881 + * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround. + +2021-02-12 Jonathan Wakely + + * doc/xml/manual/status_cxx2014.xml: Document implementation + specific properties of std::experimental::filesystem::rename. + * doc/xml/manual/status_cxx2017.xml: Document implementation + specific properties of std::filesystem::rename. + * doc/html/*: Regenerate. + * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour + for directories on Windows. + * src/filesystem/ops-common.h (__gnu_posix::rename): Use + MoveFileExW on Windows. + * testsuite/27_io/filesystem/operations/rename.cc: New test. + * testsuite/experimental/filesystem/operations/rename.cc: New test. + +2021-02-12 Jonathan Wakely + + * testsuite/util/testsuite_fs.h (nonexistent_path): Add + random number to the path. + +2021-02-12 Jonathan Wakely + + * include/experimental/internet (address_v6::to_string): Include + scope ID in string. + * testsuite/experimental/net/internet/address/v6/members.cc: + Test to_string() results. + +2021-02-12 Jonathan Wakely + + * include/experimental/internet (address_v6::any): Avoid using + memcpy in constexpr function. + (address_v6::loopback): Likewise. + (make_address_v6): Fix missing return statements on error paths. + * include/experimental/io_context: Avoid -Wdangling-else + warning. + * testsuite/experimental/net/internet/address/v4/members.cc: + Remove unused variables. + * testsuite/experimental/net/internet/address/v6/members.cc: + New test. + +2021-02-12 Jonathan Wakely + + * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter): + Add unused attribute to parameter. + * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq): + Likewise. + +2021-02-12 Jonathan Wakely + + * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail + if -fno-rtti is used. + * testsuite/30_threads/async/forced_unwind.cc: Expect test + to abort if -fno-rtti is used. + +2021-02-12 Jonathan Wakely + + * testsuite/util/testsuite_allocator.h (memory_resource): + Remove requirement for RTTI and exceptions to be enabled. + +2021-02-12 Jonathan Wakely + + * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use + static_cast when RTTI is disabled. + * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc: + Likewise. + * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc: + Likewise. + * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc: + Likewise. + * testsuite/27_io/basic_stringstream/str/char/2.cc: + Likewise. + * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc: + Likewise. + +2021-02-12 Jonathan Wakely + + * include/std/ostream (__syncbuf_base::_S_get): Mark parameter + as unused and only use dynamic_cast when RTTI is enabled. + +2021-02-12 Jonathan Wakely + + PR libstdc++/99077 + * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)): + Change int parameter to error_code, to match std::ios_failure. + (__throw_ios_failure(const char*, int)): Construct error_code + from int parameter. + +2021-02-11 Jonathan Wakely + + * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define + new macro. + * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new + macro instead of _GLIBCXX_EH_PTR_COMPAT. + (operator==): Likewise. + +2021-02-11 Jonathan Wakely + + PR libstdc++/99058 + * doc/xml/manual/status_cxx2011.xml: Document when support + became stable. + * doc/xml/manual/status_cxx2014.xml: Likewise. + * doc/xml/manual/status_cxx2017.xml: Likewise. + * doc/html/manual/status.html: Regenerate. + +2021-02-10 Jonathan Wakely + + PR libstdc++/88881 + * src/c++17/fs_ops.cc (fs::status): Re-enable workaround. + +2021-02-10 Jonathan Wakely + + * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent) + (fs::remove): Use std::system_category() for error codes from + GetLastError(). + * src/filesystem/ops.cc (fs::create_hard_link, fs::remove): + Likewise. + +2021-02-10 Jonathan Wakely + + * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo + in __MINGW32__ macro name. + * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise. + * testsuite/27_io/filesystem/path/generation/proximate.cc: + Likewise. + * testsuite/27_io/filesystem/path/generation/relative.cc: + Likewise. + * testsuite/util/testsuite_fs.h: Likewise. + +2021-02-09 François Dumont + + * include/bits/stl_tree.h + (__has_is_transparent, __has_is_transparent_t): Move... + * include/bits/stl_function.h: ...here. + * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New.. + (_Hashtable_base<>::_M_equals_tr): New. + * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr, + _Hashtable<>::_M_equal_range_tr): New member function templates to perform + heterogeneous lookup. + (_Hashtable<>::_M_find_before_node_tr): New. + (_Hashtable<>::_M_find_node_tr): New. + * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>, + unordered_map::contains<>, unordered_map::equal_range<>): New member function + templates to perform heterogeneous lookup. + (unordered_multimap::find<>, unordered_multimap::count<>, + unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise. + * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>, + unordered_set::contains<>, unordered_set::equal_range<>): Likewise. + (unordered_multiset::find<>, unordered_multiset::count<>, + unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise. + * include/debug/unordered_map + (unordered_map::find<>, unordered_map::equal_range<>): Likewise. + (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise. + * include/debug/unordered_set + (unordered_set::find<>, unordered_set::equal_range<>): Likewise. + (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise. + * testsuite/23_containers/unordered_map/operations/1.cc: New test. + * testsuite/23_containers/unordered_multimap/operations/1.cc: New test. + * testsuite/23_containers/unordered_multiset/operations/1.cc: New test. + * testsuite/23_containers/unordered_set/operations/1.cc: New test. + +2021-02-09 François Dumont + + * include/bits/stl_deque.h + (std::operator-(deque::iterator, deque::iterator)): Replace if/then with + a null pointer test. + +2021-02-09 Jonathan Wakely + + * testsuite/27_io/filesystem/operations/remove_all.cc: Remove + test directory after making it writable again. + * testsuite/experimental/filesystem/operations/remove_all.cc: + Likewise. + +2021-02-09 Jonathan Wakely + + PR libstdc++/99021 + * include/std/coroutine (coroutine_handle

::from_address): Add + noexcept. + +2021-02-09 Vladimir Vishnevsky + + * include/ext/stdio_sync_filebuf.h: Remove unused . + * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t. + +2021-02-09 Jakub Jelinek + + PR middle-end/98465 + * include/bits/basic_string.tcc (basic_string::_M_replace): When __s + points to the characters moved by earlier _S_move, compute the source + address using expression based on the __p pointer rather than __s + pointer. + +2021-02-03 Jonathan Wakely + + * testsuite/19_diagnostics/error_code/operators/not_equal.cc: + Add comparison with same category and different values. + * testsuite/19_diagnostics/error_code/operators/less.cc: + Likewise. Fix comparison involving different categories. + * testsuite/19_diagnostics/error_code/operators/three_way.cc: + Likewise. + * testsuite/19_diagnostics/error_condition/operators/less.cc: + Add comment. + * testsuite/19_diagnostics/error_condition/operators/three_way.cc: + Likewise. + +2021-02-03 yaozhongxiao + + * include/experimental/bits/simd_neon.h: Replace repeated vpadd + calls with a single vaddv for aarch64. + +2021-02-03 Matthias Kretz + + * testsuite/Makefile.am: Warn about the workaround. Add + -fno-tree-vrp to CXXFLAGS passed to the check_simd script. + Improve initial user feedback from make check-simd. + * testsuite/Makefile.in: Regenerated. + +2021-02-03 Matthias Kretz + + * include/experimental/bits/simd.h: Add __detail::_Minimum and + __detail::_Maximum to use them as _BinaryOperation to _S_reduce. + Add hmin and hmax overloads for simd and const_where_expression. + * include/experimental/bits/simd_scalar.h + (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation + parameter const-ref to allow calling _S_reduce with an rvalue. + * testsuite/experimental/simd/tests/reductions.cc: Add tests for + hmin and hmax. Since the compiler statically determined that all + tests pass, repeat the test after a call to make_value_unknown. + +2021-02-03 Matthias Kretz + + * testsuite/experimental/simd/tests/bits/verify.h (verify): Add + instruction pointer data member. Ensure that the `if (m_failed)` + branch is always inlined into the calling code. The body of the + conditional can still be a function call. Move the get_ip call + into the verify ctor to simplify the ctor calls. + (COMPARE): Don't mention the use of all_of for reduction of a + simd_mask. It only distracts from the real issue. + +2021-02-03 Matthias Kretz + + * testsuite/experimental/simd/driver.sh: Abstract reading test + options into read_src_option function. Read skip, only, + expensive, and xfail via read_src_option. Add timeout and + timeout-factor options and adjust timeout variable accordingly. + * testsuite/experimental/simd/tests/loadstore.cc: Set + timeout-factor 2. + +2021-02-03 Matthias Kretz + + * testsuite/experimental/simd/driver.sh: When handling the pipe + to log (and on verbose to stdout) count the lines. If it exceeds + 1000 log the issue and exit 125, which is then handled as a + failure. + +2021-02-03 Matthias Kretz + + * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip: + markup for long double on powerpc64*. + +2021-02-03 Matthias Kretz + + * include/experimental/bits/simd.h: Add __have_power10vec + conditional on _ARCH_PWR10. + * include/experimental/bits/simd_builtin.h: Forward declare + _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is + defined. + (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the + _SuperImpl for optimizations and correctness. + * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc. + (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10. + Otherwise, for >=int use -vec_sums divided by a sizeof factor. + For + + * testsuite/experimental/simd/driver.sh: Remove executable on + SIGINT. Process compiler and test executable output: In verbose + mode print messages immediately, limited to 1000 lines and + breaking long lines to below $COLUMNS (or 1024 if not set). + Communicating the exit status of the compiler / test with the + necessary pipe is done via a message through stdout/-in. + +2021-02-03 Matthias Kretz + + * testsuite/Makefile.am: Ensure .simd.summary is empty before + collecting a new summary. + * testsuite/Makefile.in: Regenerate. + +2021-02-03 Matthias Kretz + + * testsuite/experimental/simd/generate_makefile.sh: Use + different variables internally than documented for user + overrides. This makes internal append/prepend work as intended. + +2021-02-03 Matthias Kretz + + * testsuite/experimental/simd/driver.sh (verify_test): Print + test output on run xfail. Do not repeat lines from the log that + were already printed on stdout. + (test_selector): Make the compiler flags pattern usable as a + substring selector. + (toplevel): Trap on SIGINT and remove the log and sum files. + Call timout with --foreground to quickly terminate on SIGINT. + * testsuite/experimental/simd/generate_makefile.sh: Simplify run + targets via target patterns. Default DRIVEROPTS to -v for run + targets. Remove log and sum files after completion of the run + target (so that it's always recompiled). + Place help text into text file for reasonable 'make help' + performance. + +2021-02-03 Matthias Kretz + + * include/experimental/bits/simd.h: Remove unnecessary static + assertion. Allow sizeof(8) integer __intrinsic_type to enable + the necessary mask type. + +2021-02-03 Matthias Kretz + + * include/experimental/bits/simd.h: Let __intrinsic_type be valid if sizeof(long double) == sizeof(double) and + use a __vector double as member type. + +2021-02-03 Matthias Kretz + + * include/experimental/bits/simd.h (__is_intrinsic_type): New + internal type trait. Alias for __is_vector_type on x86. + (_VectorTraitsImpl): Enable for __intrinsic_type in addition for + __vector_type. + (__intrin_bitcast): Allow casting to & from vector & intrinsic + types. + (__intrinsic_type): Explicitly specialize for NEON intrinsic + vector types. + +2021-02-03 Matthias Kretz + + * testsuite/experimental/simd/driver.sh: Implement skip, only, + expensive, and xfail markers. They can select on type, ABI tag + subset number, target-triplet, and compiler flags. + * testsuite/experimental/simd/generate_makefile.sh: The summary + now includes lines for unexpected passes and expected failures. + If the skip or only markers are only conditional on the type, do + not generate rules for those types. + * testsuite/experimental/simd/tests/abs.cc: Mark test expensive + for ABI tag subsets 1-9. + * testsuite/experimental/simd/tests/algorithms.cc: Ditto. + * testsuite/experimental/simd/tests/broadcast.cc: Ditto. + * testsuite/experimental/simd/tests/casts.cc: Ditto. + * testsuite/experimental/simd/tests/generator.cc: Ditto. + * testsuite/experimental/simd/tests/integer_operators.cc: Ditto. + * testsuite/experimental/simd/tests/loadstore.cc: Ditto. + * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto. + * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto. + * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto. + * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto. + * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto. + * testsuite/experimental/simd/tests/mask_operators.cc: Ditto. + * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto. + * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto. + * testsuite/experimental/simd/tests/operators.cc: Ditto. + * testsuite/experimental/simd/tests/reductions.cc: Ditto. + * testsuite/experimental/simd/tests/simd.cc: Ditto. + * testsuite/experimental/simd/tests/split_concat.cc: Ditto. + * testsuite/experimental/simd/tests/splits.cc: Ditto. + * testsuite/experimental/simd/tests/where.cc: Ditto. + * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In + addition replace "test only floattypes" marker by unconditional + "float|double|ldouble" only marker. + * testsuite/experimental/simd/tests/frexp.cc: Ditto. + * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto. + * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc: + Ditto. + * testsuite/experimental/simd/tests/logarithm.cc: Ditto. + * testsuite/experimental/simd/tests/math_1arg.cc: Ditto. + * testsuite/experimental/simd/tests/math_2arg.cc: Ditto. + * testsuite/experimental/simd/tests/remqo.cc: Ditto. + * testsuite/experimental/simd/tests/trigonometric.cc: Ditto. + * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto. + * testsuite/experimental/simd/tests/sincos.cc: Ditto. In + addition, xfail on run because the reference data is missing. + +2021-02-02 Jonathan Wakely + + * doc/xml/manual/status_cxx2011.xml: Remove stray table cell. + * doc/xml/manual/status_cxx2014.xml: Likewise. + * doc/xml/manual/status_cxx2017.xml: Likewise. + * doc/html/manual/status.html: Regenerate. + +2021-02-01 François Dumont + + PR libstdc++/70303 + * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)): + Return 0 if both iterators are value-initialized. + * testsuite/23_containers/deque/70303.cc: New test. + * testsuite/23_containers/vector/70303.cc: New test. + +2021-02-01 Jonathan Wakely + + * doc/xml/manual/status_cxx2011.xml: Update std::call_once + status. + * doc/xml/manual/status_cxx2014.xml: Likewise. + * doc/xml/manual/status_cxx2017.xml: Likewise. Update + std::from_chars and std::to_chars status. Fix formatting. + * doc/html/manual/status.html: Regenerate. + +2021-01-28 Jonathan Wakely + + * include/experimental/bits/numeric_traits.h: Update copyright + dates. + * include/experimental/bits/simd.h: Likewise. + * include/experimental/bits/simd_builtin.h: Likewise. + * include/experimental/bits/simd_converter.h: Likewise. + * include/experimental/bits/simd_detail.h: Likewise. + * include/experimental/bits/simd_fixed_size.h: Likewise. + * include/experimental/bits/simd_math.h: Likewise. + * include/experimental/bits/simd_neon.h: Likewise. + * include/experimental/bits/simd_ppc.h: Likewise. + * include/experimental/bits/simd_scalar.h: Likewise. + * include/experimental/bits/simd_x86.h: Likewise. + * include/experimental/bits/simd_x86_conversions.h: Likewise. + * include/experimental/simd: Likewise. + * testsuite/experimental/simd/*: Likewise. + +2021-01-27 Jonathan Wakely + + * doc/xml/manual/status_cxx2017.xml: Replace invalid entity. + * doc/html/*: Regenerate. + +2021-01-27 Jonathan Wakely + + * testsuite/experimental/simd/generate_makefile.sh: Use printf + instead of echo when printing escape characters. + +2021-01-27 Matthias Kretz + + * scripts/check_simd: New file. This script is called from the + the check-simd target. It determines a set of compiler flags and + simulator setups for calling generate_makefile.sh and passes the + information back to the check-simd target, which recurses to the + generated Makefiles. + * scripts/create_testsuite_files: Remove files below simd/tests/ + from testsuite_files and place them in testsuite_files_simd. + * testsuite/Makefile.am: Add testsuite_files_simd. Add + check-simd target. + * testsuite/Makefile.in: Regenerate. + * testsuite/experimental/simd/driver.sh: New file. This script + compiles and runs a given simd test, logging its output and + status. It uses the timeout command to implement compile and + test timeouts. + * testsuite/experimental/simd/generate_makefile.sh: New file. + This script generates a Makefile which uses driver.sh to compile + and run the tests and collect the logs into a single log file. + * testsuite/experimental/simd/tests/abs.cc: New file. Tests + abs(simd). + * testsuite/experimental/simd/tests/algorithms.cc: New file. + Tests min/max(simd, simd). + * testsuite/experimental/simd/tests/bits/conversions.h: New + file. Contains functions to support tests involving conversions. + * testsuite/experimental/simd/tests/bits/make_vec.h: New file. + Support functions make_mask and make_vec. + * testsuite/experimental/simd/tests/bits/mathreference.h: New + file. Support functions to supply precomputed math function + reference data. + * testsuite/experimental/simd/tests/bits/metahelpers.h: New + file. Support code for SFINAE testing. + * testsuite/experimental/simd/tests/bits/simd_view.h: New file. + * testsuite/experimental/simd/tests/bits/test_values.h: New + file. Test functions to easily drive a test with simd objects + initialized from a given list of values and a range of random + values. + * testsuite/experimental/simd/tests/bits/ulp.h: New file. + Support code to determine the ULP distance of simd objects. + * testsuite/experimental/simd/tests/bits/verify.h: New file. + Test framework for COMPARE'ing simd objects and instantiating + the test templates with value_type and ABI tag. + * testsuite/experimental/simd/tests/broadcast.cc: New file. Test + simd broadcasts. + * testsuite/experimental/simd/tests/casts.cc: New file. Test + simd casts. + * testsuite/experimental/simd/tests/fpclassify.cc: New file. + Test floating-point classification functions. + * testsuite/experimental/simd/tests/frexp.cc: New file. Test + frexp(simd). + * testsuite/experimental/simd/tests/generator.cc: New file. Test + simd generator constructor. + * testsuite/experimental/simd/tests/hypot3_fma.cc: New file. + Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim). + * testsuite/experimental/simd/tests/integer_operators.cc: New + file. Test integer operators. + * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc: + New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and + modf(simd). + * testsuite/experimental/simd/tests/loadstore.cc: New file. Test + (converting) simd loads and stores. + * testsuite/experimental/simd/tests/logarithm.cc: New file. Test + log*(simd). + * testsuite/experimental/simd/tests/mask_broadcast.cc: New file. + Test simd_mask broadcasts. + * testsuite/experimental/simd/tests/mask_conversions.cc: New + file. Test simd_mask conversions. + * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New + file. Test simd_mask implicit conversions. + * testsuite/experimental/simd/tests/mask_loadstore.cc: New file. + Test simd_mask loads and stores. + * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New + file. Test simd_mask operators convert as specified. + * testsuite/experimental/simd/tests/mask_operators.cc: New file. + Test simd_mask compares, subscripts, and negation. + * testsuite/experimental/simd/tests/mask_reductions.cc: New + file. Test simd_mask reductions. + * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test + 1-arg math functions on simd. + * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test + 2-arg math functions on simd. + * testsuite/experimental/simd/tests/operator_cvt.cc: New file. + Test implicit conversions on simd binary operators behave as + specified. + * testsuite/experimental/simd/tests/operators.cc: New file. Test + simd compares, subscripts, not, unary minus, plus, minus, + multiplies, divides, increment, and decrement. + * testsuite/experimental/simd/tests/reductions.cc: New file. + Test reduce(simd). + * testsuite/experimental/simd/tests/remqo.cc: New file. Test + remqo(simd). + * testsuite/experimental/simd/tests/simd.cc: New file. Basic + sanity checks of simd types. + * testsuite/experimental/simd/tests/sincos.cc: New file. Test + sin(simd) and cos(simd). + * testsuite/experimental/simd/tests/split_concat.cc: New file. + Test split(simd) and concat(simd, simd). + * testsuite/experimental/simd/tests/splits.cc: New file. Test + split(simd_mask). + * testsuite/experimental/simd/tests/trigonometric.cc: New file. + Test remaining trigonometric functions on simd. + * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New + file. Test trunc(simd), ceil(simd), and floor(simd). + * testsuite/experimental/simd/tests/where.cc: New file. Test + masked operations using where. + +2021-01-27 Matthias Kretz + + * doc/xml/manual/status_cxx2017.xml: Add implementation status + of the Parallelism TS 2. Document implementation-defined types + and behavior. + * include/Makefile.am: Add new headers. + * include/Makefile.in: Regenerate. + * include/experimental/simd: New file. New header for + Parallelism TS 2. + * include/experimental/bits/numeric_traits.h: New file. + Implementation of P1841R1 using internal naming. Addition of + missing IEC559 functionality query. + * include/experimental/bits/simd.h: New file. Definition of the + public simd interfaces and general implementation helpers. + * include/experimental/bits/simd_builtin.h: New file. + Implementation of the _VecBuiltin simd_abi. + * include/experimental/bits/simd_converter.h: New file. Generic + simd conversions. + * include/experimental/bits/simd_detail.h: New file. Internal + macros for the simd implementation. + * include/experimental/bits/simd_fixed_size.h: New file. Simd + fixed_size ABI specific implementations. + * include/experimental/bits/simd_math.h: New file. Math + overloads for simd. + * include/experimental/bits/simd_neon.h: New file. Simd NEON + specific implementations. + * include/experimental/bits/simd_ppc.h: New file. Implement bit + shifts to avoid invalid results for integral types smaller than + int. + * include/experimental/bits/simd_scalar.h: New file. Simd scalar + ABI specific implementations. + * include/experimental/bits/simd_x86.h: New file. Simd x86 + specific implementations. + * include/experimental/bits/simd_x86_conversions.h: New file. + x86 specific conversion optimizations. The conversion patterns + work around missing conversion patterns in the compiler and + should be removed as soon as PR85048 is resolved. + * testsuite/experimental/simd/standard_abi_usable.cc: New file. + Test that all (not all fixed_size, though) standard simd and + simd_mask types are usable. + * testsuite/experimental/simd/standard_abi_usable_2.cc: New + file. As above but with -ffast-math. + * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests + from the standard test loop. Instead use + check_vect_support_and_set_flags to build simd tests with the + relevant machine flags. + +2021-01-27 Jonathan Wakely + + PR libstdc++/66414 + * include/bits/string_view.tcc + (basic_string_view::find(const CharT*, size_type, size_type)): + Optimize. + +2021-01-27 Paul Fee + + * include/bits/basic_string.h (basic_string::contains): New + member functions. + * include/std/string_view (basic_string_view::contains): + Likewise. + * include/std/version (__cpp_lib_string_contains): Define. + * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc: + Remove trailing whitespace. + * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test. + * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test. + * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test. + * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test. + * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test. + +2021-01-21 Jonathan Wakely + + * src/c++17/Makefile.in: Regenerate. + +2021-01-20 David Edelsohn + + * config/os/aix/ctype_inline.h (bool ctype:: is): Cast + _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to + __lc_type. + (const char* ctype:: is): Same. + +2021-01-18 Jonathan Wakely + + PR libstdc++/98725 + * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to + write to a wide character stream if wide character support is + disabled in the library. + +2021-01-18 Jonathan Wakely + + * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use + stringbuf not wstringbuf. + +2021-01-18 Jakub Jelinek + + PR debug/98708 + * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s): + Compile with -gno-as-loc-support. + * src/c++11/Makefile.in: Regenerated. + +2021-01-16 H.J. Lu + + * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: + Add -fcf-protection=none to -march=i486. + +2021-01-14 François Dumont + + * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11 + compliant. + +2021-01-14 Alexandre Oliva + + * testsuite/30_threads/future/members/poll.cc: Calibrate + iteration count. + +2021-01-14 François Dumont + + PR libstdc++/98466 + * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr. + (_Node_iterator()): Make default. + (_Node_const_iterator()): Make default. + * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular + iterator checks. + * include/debug/safe_iterator.h + (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized. + * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS): + Likewise. + * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add + _M_singular checks on input iterators. + * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular + checks. + * testsuite/23_containers/deque/debug/98466.cc: New test. + * testsuite/23_containers/unordered_map/debug/98466.cc: New test. + +2021-01-14 Jonathan Wakely + + PR libstdc++/98471 + * include/bits/fs_path.h (__throw_conversion_error): New + function to throw or abort on character conversion errors. + (__wstr_from_utf8): Move definition after filesystem_error has + been defined. Use __throw_conversion_error. + (path::_S_convert<_EcharT>): Use __throw_conversion_error. + (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise. + (path::u8string): Likewise. + +2021-01-14 Jonathan Wakely + + * include/std/barrier: Update copyright years. Fix whitespace. + * include/std/version: Fix whitespace. + * testsuite/30_threads/barrier/1.cc: Update copyright years. + * testsuite/30_threads/barrier/2.cc: Likewise. + * testsuite/30_threads/barrier/arrive.cc: Likewise. + * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise. + * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise. + * testsuite/30_threads/barrier/completion.cc: Likewise. + +2021-01-13 Jonathan Wakely + + * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array. + +2021-01-10 David Edelsohn + + PR libstdc++/98613 + * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive + warning. + * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same. + +2021-01-08 Olivier Hainque + + * testsuite/20_util/bind/ref_neg.cc: Tweak the + dg-prune-output regex for out-of-build-tree contexts. + +2021-01-07 Thomas Rodgers + + * doc/doxygen/user.cfg.in: Add new header. + * include/Makefile.am (std_headers): likewise. + * include/Makefile.in: Regenerate. + * include/precompiled/stdc++.h: Add new header. + * include/std/barrier: New file. + * include/std/version: Add __cpp_lib_barrier feature test macro. + * testsuite/30_threads/barrier/1.cc: New test. + * testsuite/30_threads/barrier/2.cc: Likewise. + * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise. + * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise. + * testsuite/30_threads/barrier/arrive.cc: Likewise. + * testsuite/30_threads/barrier/completion.cc: Likewise. + +2021-01-07 Patrick Palka + + PR libstdc++/98384 + * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl + instead of the non-standard nextupl and nextdownl. + +2021-01-05 Samuel Thibault + + * configure: Re-generate. + +2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net> + + * include/precompiled/stdc++.h: Add to C++20 section. + +2021-01-01 Jakub Jelinek + + * ChangeLog-2020: Rotate ChangeLog. New file. + +Copyright (C) 2021 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. -- 2.7.4