+2024-08-23 Patrick O'Neill <patrick@rivosinc.com>
+
+ * config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p):
+ Use encoded_nelts when calling repeating_sequence_p.
+ (rvv_builder::is_repeating_sequence): Ditto.
+ (rvv_builder::repeating_sequence_use_merge_profitable_p): Ditto.
+
+2024-08-23 Manolis Tsamis <manolis.tsamis@vrull.eu>
+
+ PR rtl-optimization/116372
+ PR rtl-optimization/116405
+ * ifcvt.cc (noce_convert_multiple_sets): Iterate backwards and track
+ target registers.
+
+2024-08-23 Manolis Tsamis <manolis.tsamis@vrull.eu>
+
+ PR middle-end/116358
+ * ifcvt.cc (noce_convert_multiple_sets): Disallow call insns.
+
+2024-08-23 Peter Bergner <bergner@linux.ibm.com>
+
+ PR target/116415
+ * config/rs6000/rs6000.h (TI_OR_PTI_MODE): New define.
+ * config/rs6000/rs6000-p8swap.cc (rs6000_analyze_swaps): Use it to
+ handle PTImode identically to TImode.
+
+2024-08-23 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/116463
+ * tree-complex.cc: Include tree-ssa-dce.h.
+ (dce_worklist): New global.
+ (update_complex_assignment): Add SSA def to the DCE worklist.
+ (tree_lower_complex): Perform DCE.
+
+2024-08-23 Pan Li <pan2.li@intel.com>
+
+ * match.pd: Add form 4 for unsigned .SAT_TRUNC matching.
+
+2024-08-23 Robin Dapp <rdapp@ventanamicro.com>
+
+ PR middle-end/115495
+ * cfgexpand.cc (expand_debug_expr): Require mode.
+ * combine.cc (make_extraction): Ditto.
+ * config/aarch64/aarch64.cc (aarch64_expand_cpymem): Ditto.
+ (aarch64_expand_setmem): Ditto.
+ * config/arc/arc.cc (arc_expand_cpymem): Ditto.
+ * config/arm/arm.cc (arm_expand_divmod_libfunc): Ditto.
+ * config/i386/i386.cc (ix86_get_mask_mode): Ditto.
+ * config/rs6000/predicates.md: Ditto.
+ * config/rs6000/rs6000.cc (vspltis_constant): Ditto.
+ * config/s390/s390.cc (s390_expand_insv): Ditto.
+ * config/sparc/sparc.cc (assign_int_registers): Ditto.
+ * coverage.cc (get_gcov_type): Ditto.
+ (get_gcov_unsigned_t): Ditto.
+ * dse.cc (find_shift_sequence): Ditto.
+ * expmed.cc (store_integral_bit_field): Ditto.
+ * expr.cc (convert_mode_scalar): Ditto.
+ (op_by_pieces_d::smallest_fixed_size_mode_for_size): Ditto.
+ (emit_block_move_via_oriented_loop): Ditto.
+ (copy_blkmode_to_reg): Ditto.
+ (store_field): Ditto.
+ * internal-fn.cc (expand_arith_overflow): Ditto.
+ * machmode.h (HAVE_MACHINE_MODES): Ditto.
+ (smallest_mode_for_size): Use opt_machine_mode.
+ (smallest_int_mode_for_size): Use opt_scalar_int_mode.
+ * optabs-query.cc (get_best_extraction_insn): Require mode.
+ * optabs.cc (expand_twoval_binop_libfunc): Ditto.
+ * stor-layout.cc (smallest_mode_for_size): Return
+ opt_machine_mode.
+ (layout_type): Require mode.
+ (initialize_sizetypes): Ditto.
+ * tree-ssa-loop-manip.cc (canonicalize_loop_ivs): Ditto.
+
+2024-08-23 Robin Dapp <rdapp@ventanamicro.com>
+
+ * config/riscv/autovec.md (abs<mode>2): Expand via max (a, -a).
+
+2024-08-23 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/gm2.texi (License): Specifically link to GPL v3.0
+
2024-08-22 Jeff Law <jlaw@ventanamicro.com>
PR rtl-optimization/116420
+2024-08-23 Robin Dapp <rdapp@ventanamicro.com>
+
+ PR middle-end/115495
+ * gcc-interface/utils2.cc (fast_modulo_reduction): Require mode.
+ (nonbinary_modular_operation): Ditto.
+
+2024-08-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/misc.cc (gnat_get_array_descr_info): Test the
+ BIT_PACKED_ARRAY_TYPE_P flag only once on the final debug type. In
+ the case of records containing a template, replay the entire
+ processing for the array type contained therein.
+
+2024-08-23 Javier Miranda <miranda@adacore.com>
+
+ * scng.adb (Scan): Call Error_Msg_GNAT_Extension() to report an
+ error, when the sources are compiled without Core_Extensions_
+ Allowed, and the scanner detects the beginning of an interpolated
+ string.
+
+2024-08-23 Sebastian Poeplau <poeplau@adacore.com>
+
+ * libgnat/s-dwalin.adb (Symbolic_Address): Ignore symbol size in
+ address-to-symbol translation for PECOFF files.
+
+2024-08-23 Javier Miranda <miranda@adacore.com>
+
+ * exp_attr.adb (Expand_N_Attribute_Reference: [Put_Image]): Add
+ support for custom string types.
+ * exp_ch2.adb (Expand_N_Interpolated_String_Literal): Add a type
+ conversion to the result object declaration of custom string
+ types.
+ * exp_put_image.adb (Build_String_Put_Image_Call): Handle custom
+ string types.
+
+2024-08-23 Steve Baird <baird@adacore.com>
+
+ * sem_ch13.adb (Analyze_Aspect_Implicit_Dereference): Generate
+ error if an aspect specification specifies the
+ Implicit_Dereference aspect of a non-first subtype.
+
+2024-08-23 Steve Baird <baird@adacore.com>
+
+ * checks.adb (Is_Signed_Integer_Arithmetic_Op): Return True in the
+ case of relational operator whose operands are of a signed integer
+ type.
+
+2024-08-23 Viljar Indus <indus@adacore.com>
+
+ * libgnat/a-coinho__shared.ads: add limited keyword.
+ * libgnat/g-awk.adb: add limited keyword.
+ * libgnat/g-comlin.ads: add limited keyword.
+ * libgnat/s-excmac__arm.ads: add limited keyword.
+ * libgnat/s-excmac__gcc.ads: add limited keyword.
+ * libgnat/s-soflin.ads: add limited keyword.
+
+2024-08-23 Viljar Indus <indus@adacore.com>
+
+ * sem_ch3.adb: Add method Check_Inherited_Limted_Record for
+ emitting the warning for an inherited limited type.
+ * warnsw.adb: Add processing for the -gnatw_l switch that
+ triggeres the inheritly limited type warning.
+ * warnsw.ads: same as above.
+ * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
+ entry for -gnatw_l switch.
+ * gnat_ugn.texi: Regenerate.
+
+2024-08-23 Javier Miranda <miranda@adacore.com>
+
+ * sem_ch6.adb (Check_Private_Overriding): Improve code detecting
+ error on private function with controlling result. Fixes the
+ regression of ACATS bde0003.
+
+2024-08-23 Piotr Trojanek <trojanek@adacore.com>
+
+ * checks.ads, cstand.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb,
+ exp_dbug.adb, exp_util.adb, gnatlink.adb, lib-util.adb,
+ libgnat/a-except.adb, libgnat/a-exexpr.adb, libgnat/a-ngcoar.adb,
+ libgnat/s-rannum.adb, libgnat/s-trasym__dwarf.adb, osint.adb,
+ rtsfind.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb,
+ sem_ch3.adb, sem_ch6.adb, sem_eval.adb, sem_prag.adb,
+ sem_util.adb: Fix style.
+
+2024-08-23 Piotr Trojanek <trojanek@adacore.com>
+
+ * checks.adb (Ensure_Valid): Remove detection of boolean and
+ short-circuit operators.
+ (Expr_Known_Valid): Detect short-circuit operators; detection of
+ boolean operators was already done in this routine.
+
+2024-08-23 Piotr Trojanek <trojanek@adacore.com>
+
+ * checks.adb (Ensure_Valid): Use Find_Actual.
+
+2024-08-23 Piotr Trojanek <trojanek@adacore.com>
+
+ * checks.adb (Ensure_Valid): Use First_Actual/Next_Actual.
+ * exp_ch6.adb (Is_Direct_Deep_Call): Likewise.
+ * exp_util.adb (Type_Of_Formal): Likewise.
+ * sem_util.adb (Is_Container_Element): Likewise; cleanup
+ membership test by using a subtype.
+
+2024-08-23 Javier Miranda <miranda@adacore.com>
+
+ * sem_ch13.adb (Analyze_One_Aspect): Temporarily remove reporting
+ an error when the new aspect is set to True and the extensions are
+ not enabled.
+
+2024-08-23 Javier Miranda <miranda@adacore.com>
+
+ * exp_util.ads (Is_Expanded_Class_Wide_Interface_Object_Decl): New
+ subprogram.
+ * exp_util.adb (Is_Expanded_Class_Wide_Interface_Object_Decl):
+ ditto.
+ * sem_util.adb (Is_Aliased_View): Handle expanded class-wide type
+ object declaration.
+ * checks.adb (Is_Aliased_Unconstrained_Component): Protect the
+ frontend against calling Is_Aliased_View with Empty. Found working
+ on this issue.
+
+2024-08-23 Javier Miranda <miranda@adacore.com>
+
+ * aspects.ads (Aspect_First_Controlling_Parameter): New aspect.
+ Defined as implementation defined aspect that has a static boolean
+ value and it is converted to pragma when the value is True.
+ * einfo.ads (Has_First_Controlling_Parameter): New attribute.
+ * exp_ch9.adb (Build_Corresponding_Record): Propagate the aspect
+ to the corresponding record type.
+ (Expand_N_Protected_Type_Declaration): Analyze the inherited
+ aspect to add the pragma.
+ (Expand_N_Task_Type_Declaration): ditto.
+ * freeze.adb (Warn_If_Implicitly_Inherited_Aspects): New
+ subprogram.
+ (Has_First_Ctrl_Param_Aspect): New subprogram.
+ (Freeze_Record_Type): Call Warn_If_Implicitly_Inherited_Aspects.
+ (Freeze_Subprogram): Check illegal subprograms of tagged types and
+ interface types that have this new aspect.
+ * gen_il-fields.ads (Has_First_Controlling_Parameter): New entity
+ field.
+ * gen_il-gen-gen_entities.adb (Has_First_Controlling_Parameter):
+ The new field is a semantic flag.
+ * gen_il-internals.adb (Image): Add
+ Has_First_Controlling_Parameter.
+ * par-prag.adb (Prag): No action for
+ Pragma_First_Controlling_Parameter since processing is handled
+ entirely in Sem_Prag.
+ * sem_ch12.adb (Validate_Private_Type_Instance): When the generic
+ formal has this new aspect, check that the actual type also has
+ this aspect.
+ * sem_ch13.adb (Analyze_One_Aspect): Check that the aspect is
+ applied to a tagged type or a concurrent type.
+ * sem_ch3.adb (Analyze_Full_Type_Declaration): Derived tagged
+ types inherit this new aspect, and also from their implemented
+ interface types.
+ (Process_Full_View): Propagate the aspect to the full view.
+ * sem_ch6.adb (Is_A_Primitive): New subprogram; used to factor
+ code and also clarify detection of primitives.
+ * sem_ch9.adb (Check_Interfaces): Propagate this new aspect to the
+ type implementing interface types.
+ * sem_disp.adb (Check_Controlling_Formals): Handle tagged type
+ that has the aspect and has subprograms overriding primitives of
+ tagged types that lack this aspect.
+ (Check_Dispatching_Operation): Warn on dispatching primitives
+ disallowed by this new aspect.
+ (Has_Predefined_Dispatching_Operation_Name): New subprogram.
+ (Find_Dispatching_Type): Handle dispatching functions of tagged
+ types that have the new aspect.
+ (Find_Primitive_Covering_Interface): For primitives of tagged
+ types that have the aspect and override a primitive of a parent
+ type that does not have the aspect, we must temporarily unset
+ attribute First_Controlling_ Parameter to properly check
+ conformance.
+ * sem_prag.ads (Aspect_Specifying_Pragma): Add new pragma.
+ * sem_prag.adb (Pragma_First_Controlling_Parameter): Handle new
+ pragma.
+ * snames.ads-tmpl (Name_First_Controlling_Parameter): New name.
+ * warnsw.ads (Warn_On_Non_Dispatching_Primitives): New warning.
+ * warnsw.adb (Warn_On_Non_Dispatching_Primitives): New warning;
+ not set by default when GNAT_Mode warnings are enabled, nor when
+ all warnings are enabled (-gnatwa).
+
2024-08-19 Arsen Arsenović <arsen@aarsen.me>
PR ada/115917
+2024-08-23 Paul Thomas <pault@gcc.gnu.org>
+
+ Revert:
+ 2024-08-06 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/102689
+ * trans-array.cc (get_array_ref_dim_for_loop_dim): Use the arg1
+ class container carried in ss->info as the seed for a lhs in
+ class valued transformational intrinsic calls that are not the
+ rhs of an assignment. Otherwise, the lhs variable expression is
+ taken from the loop chain. For this latter case, the _vptr and
+ _len fields are set.
+ (gfc_trans_create_temp_array): Use either the lhs expression
+ seeds to build a class variable that will take the returned
+ descriptor as its _data field. In the case that the arg1 expr.
+ is used, a class typespec must be built with the correct rank
+ and the _vptr and _len fields set. The element size is provided
+ for the temporary allocation and to set the descriptor span.
+ (gfc_array_init_size): When an intrinsic type scalar expr3 is
+ used in allocation of a class array, use its element size in
+ the descriptor dtype.
+ * trans-expr.cc (gfc_conv_class_to_class): Class valued
+ transformational intrinsics return the pointer to the array
+ descriptor as the _data field of a class temporary. Extract
+ directly and return the address of the class temporary.
+ (gfc_conv_procedure_call): store the expression for the first
+ argument of a class valued transformational intrinsic function
+ in the ss info class_container field. Later, use its type as
+ the element type in the call to gfc_trans_create_temp_array.
+ (fcncall_realloc_result): Add a dtype argument and use it in
+ the descriptor, when available.
+ (gfc_trans_arrayfunc_assign): For class lhs, build a dtype with
+ the lhs rank and the rhs element size and use it in the call to
+ fcncall_realloc_result.
+
+2024-08-23 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * invoke.texi (Code Gen Options): Add a missing word.
+
+2024-08-23 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/86468
+ * trans-stmt.cc (trans_associate_var): Remove superfluous
+ view_convert.
+
2024-08-21 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/86468
+2024-08-23 Manolis Tsamis <manolis.tsamis@vrull.eu>
+
+ PR rtl-optimization/116372
+ PR rtl-optimization/116405
+ * gcc.dg/pr116372.c: New test.
+ * gcc.dg/pr116405.c: New test.
+
+2024-08-23 Manolis Tsamis <manolis.tsamis@vrull.eu>
+
+ PR middle-end/116358
+ * gcc.target/aarch64/pr116358.c: New test.
+
+2024-08-23 Peter Bergner <bergner@linux.ibm.com>
+
+ PR target/116415
+ * gcc.target/powerpc/pr116415.c: New test.
+
+2024-08-23 Paul Thomas <pault@gcc.gnu.org>
+
+ Revert:
+ 2024-08-23 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/102689
+ * gfortran.dg/class_transformational_1.f90: New test for class-
+ valued reshape.
+ * gfortran.dg/class_transformational_2.f90: New test for other
+ class_valued transformational intrinsics.
+
+2024-08-23 Robin Dapp <rdapp@ventanamicro.com>
+
+ PR middle-end/115495
+ * gcc.target/riscv/rvv/autovec/pr115495.c: New test.
+
+2024-08-23 Robin Dapp <rdapp@ventanamicro.com>
+
+ * gcc.target/riscv/rvv/autovec/unop/abs-rv32gcv.c: Adjust test
+ expectation.
+ * gcc.target/riscv/rvv/autovec/unop/abs-rv64gcv.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/vls/abs-2.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_unary-1.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_unary-2.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_unary-3.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_unary-4.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_unary-5.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_unary-6.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_unary-7.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_unary-8.c: Ditto.
+
+2024-08-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ PR other/116462
+ * gcc.dg/debug/dwarf2/inline7.c: Reduce test expectations.
+
+2024-08-23 Andrew Pinski <quic_apinski@quicinc.com>
+
+ PR testsuite/116461
+ * gcc.dg/vect/vect-mod-var.c: Change the initialization loop so that
+ `b[i]` is never 0. Use 1 in those places.
+
2024-08-22 Andrew Pinski <quic_apinski@quicinc.com>
PR testsuite/116464
+2024-08-23 Alexander Monakov <amonakov@ispras.ru>
+
+ PR preprocessor/116458
+ * charset.cc (_cpp_convert_input): Bump padding to 64 if
+ HAVE_SSSE3.
+
2024-08-22 Marc Poulhiès <poulhies@adacore.com>
* lex.cc(search_line_ssse3): fix static_assert to use 2 arguments.
+2024-08-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/manual/documentation_hacking.xml: Update minimum
+ Doxygen version.
+ * doc/html/*: Regenerate.
+
+2024-08-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/tuple: Do not include implementation details in
+ Doxygen documentation.
+
+2024-08-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/alloc_traits.h: Improve doxygen docs for
+ allocator_traits specializations.
+ * include/bits/memory_resource.h: Likewise.
+
+2024-08-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/optional (__is_derived_from_optional): New
+ concept.
+ (operator<=>): Use __is_derived_from_optional.
+ * testsuite/20_util/optional/relops/lwg3746.cc: New test.
+
+2024-08-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/locale_classes.tcc (__try_use_facet): Also avoid
+ dynamic_cast for const-qualified facet types.
+
+2024-08-23 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/108619
+ * include/bits/alloc_traits.h (__allocator_traits_base): Add
+ variable templates for detecting which allocator operations are
+ supported.
+ (allocator_traits): Use 'if constexpr' instead of dispatching to
+ overloads constrained with enable_if.
+ (allocator_traits<allocator<T>>::construct): Use Construct if
+ construct_at is not supported. Use
+ __is_nothrow_new_constructible for noexcept-specifier.
+ (allocator_traits<allocator<void>>::construct): Use
+ __is_nothrow_new_constructible for noexcept-specifier.
+ * include/bits/new_allocator.h (construct): Likewise.
+ * include/ext/malloc_allocator.h (construct): Likewise.
+ * include/std/type_traits (__is_nothrow_new_constructible): New
+ variable template.
+ * testsuite/20_util/allocator/89510.cc: Adjust expected results.
+ * testsuite/ext/malloc_allocator/89510.cc: Likewise.
+ * testsuite/ext/new_allocator/89510.cc: Likewise.
+ * testsuite/20_util/allocator_traits/members/108619.cc: New test.
+
+2024-08-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/chrono_io.h (__formatter_chrono::_M_C_y_Y):
+ Ignore modifiers unless the formatting locale is not the C
+ locale.
+ (__formatter_chrono::_M_d_e): Likewise.
+ (__formatter_chrono::_M_H_I): Likewise.
+ (__formatter_chrono::_M_m): Likewise.
+ (__formatter_chrono::_M_M): Likewise.
+ (__formatter_chrono::_M_S): Likewise.
+ (__formatter_chrono::_M_u_w): Likewise.
+ (__formatter_chrono::_M_U_V_W): Likewise.
+
+2024-08-23 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/115939
+ * include/bits/hashtable_policy.h (_Node_iterator): Add
+ operator== and operator!=.
+ (_Node_const_iterator): Likewise.
+ * testsuite/23_containers/unordered_map/115939.cc: New test.
+
+2024-08-23 Giovanni Bajo <rasky@develer.com>
+ Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/88935
+ * include/bits/stl_algo.h (random_shuffle) [RAND_MAX < INT_MAX]:
+ Use xorshift instead of rand().
+ * testsuite/25_algorithms/random_shuffle/88935.cc: New test.
+
+2024-08-23 Jonathan Wakely <jwakely@redhat.com>
+
+ PR c++/116369
+ * include/debug/safe_base.h (_Safe_sequence_base::_M_iterators):
+ Add mutable specifier.
+ (_Safe_sequence_base::_M_const_iterators): Likewise.
+
+2024-08-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++11/debug.cc: Replace throw() with noexcept.
+
+2024-08-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/variant [C++20] (_Uninitialized): Always use the
+ primary template.
+ [C++20] (__get_n): Access the _M_storage member directly.
+
+2024-08-23 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/115098
+ * include/bits/stl_bvector.h (_Bit_reference): Make default
+ constructor private. Declare vector and bit iterators as
+ friends.
+ * include/std/bitset (bitset::reference): Make constructor and
+ data members private.
+ * testsuite/20_util/bitset/115098.cc: New test.
+ * testsuite/23_containers/vector/bool/115098.cc: New test.
+
2024-08-22 Patrick Palka <ppalka@redhat.com>
* testsuite/25_algorithms/contains/1.cc: Verify value of
+2024-08-23 H.J. Lu <hjl.tools@gmail.com>
+
+ PR lto/116361
+ * lto-plugin.c (claim_file_handler_v2): Don't check obj.found
+ for the offload section.
+
2024-08-22 H.J. Lu <hjl.tools@gmail.com>
PR lto/116361