+2025-01-30 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/builtins.def (STRLEN_FLASH, STRLEN_FLASHX)
+ (STRLEN_MEMX): New DEF_BUILTIN's.
+ * config/avr/avr.cc (avr_ftype_strlen): New static function.
+ (avr_builtin_supported_p): New built-ins are not for AVR_TINY.
+ (avr_init_builtins) <strlen_flash_node, strlen_flashx_node,
+ strlen_memx_node>: Provide new fntypes.
+ (avr_fold_builtin) [AVR_BUILTIN_STRLEN_FLASH]
+ [AVR_BUILTIN_STRLEN_FLASHX, AVR_BUILTIN_STRLEN_MEMX]: Fold if
+ possible.
+ * doc/extend.texi (AVR Built-in Functions): Document
+ __builtin_avr_strlen_flash, __builtin_avr_strlen_flashx,
+ __builtin_avr_strlen_memx.
+
+2025-01-30 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/builtins.def (AVR_FIRST_C_ONLY_BUILTIN_ID): New macro.
+ * config/avr/avr-protos.h (avr_builtin_supported_p): New.
+ * config/avr/avr.cc (avr_builtin_supported_p): New function.
+ (avr_init_builtins): Only provide a built-in when it is supported.
+ * config/avr/avr-c.cc (avr_cpu_cpp_builtins): Only define the
+ __BUILTIN_AVR_<NAME> build-in defines when the associated built-in
+ function is supported.
+ * doc/extend.texi (AVR Built-in Functions): Add a note that
+ following built-ins are supported for only for GNU-C.
+
+2025-01-30 Jakub Jelinek <jakub@redhat.com>
+ Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
+
+ PR target/118696
+ * config/s390/vector.md (*vec_cmpgt<mode><mode>_nocc_emu,
+ *vec_cmpgtu<mode><mode>_nocc_emu): Duplicate the first rather than
+ second V2DImode element.
+
+2025-01-30 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/118695
+ * expr.cc (expand_expr_real_1): When expanding a MEM_REF
+ to a non-MEM by committing it to a stack temporary make
+ sure to handle misaligned accesses correctly.
+
+2025-01-30 Tobias Burnus <tburnus@baylibre.com>
+
+ * gimplify.cc (gimplify_call_expr): For OpenMP's append_args clause
+ processed by 'omp dispatch', update for internal-representation
+ changes; fix handling of hidden arguments, add some comments and
+ handle Fortran's value dummy and optional/pointer/allocatable actual
+ args.
+
+2025-01-30 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/118692
+ * expr.cc (expand_expr_real_1): When expanding a MEM_REF
+ as BIT_FIELD_REF avoid large offsets for accesses not
+ overlapping the base object.
+
+2025-01-30 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/114052
+ * tree-ssa-loop-niter.cc (maybe_lower_iteration_bound): Check
+ for infinite subloops we might not exit.
+
+2025-01-30 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR rtl-optimization/118320
+ * pair-fusion.cc (pair_fusion_bb_info::fuse_pair): Commonize
+ the merge of input_uses and return early if it fails.
+
2025-01-29 Gaius Mulley <gaiusmod2@gmail.com>
PR modula2/118010
+2025-01-30 Tobias Burnus <tburnus@baylibre.com>
+
+ * c-parser.cc (c_finish_omp_declare_variant): Modify how
+ append_args is saved internally.
+
2025-01-28 Jakub Jelinek <jakub@redhat.com>
PR c/116357
+2025-01-30 Patrick Palka <ppalka@redhat.com>
+
+ * cp-tree.h (LAMBDA_EXPR_CAPTURES_THIS_P): Remove.
+
+2025-01-30 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/118673
+ * tree.cc (lvalue_kind): Mark CONST_DECLs as mergable
+ when they are also TREE_STATIC.
+
+2025-01-30 Tobias Burnus <tburnus@baylibre.com>
+
+ * parser.cc (cp_finish_omp_declare_variant): Modify how append_args
+ is saved internally.
+ * pt.cc (tsubst_attribute): Likewise.
+ (tsubst_omp_clauses): Remove C_ORT_OMP_DECLARE_SIMD from interop
+ handling as no longer called for it.
+ * decl.cc (omp_declare_variant_finalize_one): Update append_args
+ changes; fixes for ADL input.
+
2025-01-29 Jakub Jelinek <jakub@redhat.com>
PR c++/118655
+2025-01-30 Sandra Loosemore <sloosemore@baylibre.com>
+ Kwok Cheung Yeung <kcy@codesourcery.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+ Tobias Burnus <tobias@codesourcery.com>
+ Paul-Antoine Arras <pa@codesourcery.com>
+
+ PR middle-end/112779
+ PR middle-end/113904
+ * decl.cc (gfc_match_end): Handle COMP_OMP_BEGIN_METADIRECTIVE and
+ COMP_OMP_METADIRECTIVE.
+ * dump-parse-tree.cc (show_omp_node): Handle EXEC_OMP_METADIRECTIVE.
+ (show_code_node): Likewise.
+ * gfortran.h (enum gfc_statement): Add ST_OMP_METADIRECTIVE,
+ ST_OMP_BEGIN_METADIRECTIVE, and ST_OMP_END_METADIRECTIVE.
+ (struct gfc_omp_clauses): Rename target_first_st_is_teams to
+ target_first_st_is_teams_or_meta.
+ (struct gfc_omp_variant): New.
+ (gfc_get_omp_variant): New.
+ (struct gfc_st_label): Add omp_region field.
+ (enum gfc_exec_op): Add EXEC_OMP_METADIRECTIVE.
+ (struct gfc_code): Add omp_variants fields.
+ (gfc_free_omp_variants): Declare.
+ (match_omp_directive): Declare.
+ (is_omp_declarative_stmt): Declare.
+ * io.cc (format_asterisk): Adjust initializer.
+ * match.h (gfc_match_omp_begin_metadirective): Declare.
+ (gfc_match_omp_metadirective): Declare.
+ * openmp.cc (gfc_omp_directives): Uncomment metadirective.
+ (gfc_match_omp_eos): Adjust to match context selectors.
+ (gfc_free_omp_variants): New.
+ (gfc_match_omp_clauses): Remove context_selector parameter and adjust
+ to use gfc_match_omp_eos instead.
+ (match_omp): Adjust call to gfc_match_omp_clauses.
+ (gfc_match_omp_context_selector): Add metadirective_p parameter and
+ adjust error-checking. Adjust matching of simd clauses.
+ (gfc_match_omp_context_selector_specification): Adjust parameters
+ so it can be used for metadirective as well as declare variant.
+ (match_omp_metadirective): New.
+ (gfc_match_omp_begin_metadirective): New.
+ (gfc_match_omp_metadirective): New.
+ (resolve_omp_metadirective): New.
+ (resolve_omp_target): Handle metadirectives.
+ (gfc_resolve_omp_directive): Handle EXEC_OMP_METADIRECTIVE.
+ * parse.cc (gfc_matching_omp_context_selector): New.
+ (gfc_in_omp_metadirective_body): New.
+ (gfc_omp_region_count): New.
+ (decode_omp_directive): Handle ST_OMP_BEGIN_METADIRECTIVE and
+ ST_OMP_METADIRECTIVE.
+ (match_omp_directive): New.
+ (case_omp_structured_block): Define.
+ (case_omp_do): Define.
+ (gfc_ascii_statement): Handle ST_OMP_BEGIN_METADIRECTIVE,
+ ST_OMP_END_METADIRECTIVE, and ST_OMP_METADIRECTIVE.
+ (accept_statement): Handle ST_OMP_METADIRECTIVE and
+ ST_OMP_BEGIN_METADIRECTIVE.
+ (gfc_omp_end_stmt): New, split from...
+ (parse_omp_do): ...here, and...
+ (parse_omp_structured_block): ...here. Handle metadirectives,
+ plus "allocate", "atomic", and "dispatch" which were missing.
+ (parse_omp_oacc_atomic): Handle "end metadirective".
+ (parse_openmp_allocate_block): Likewise.
+ (parse_omp_dispatch): Likewise.
+ (parse_omp_metadirective_body): New.
+ (parse_executable): Handle metadirective. Use new case macros
+ defined above.
+ (gfc_parse_file): Initialize metadirective state.
+ (is_omp_declarative_stmt): New.
+ * parse.h (enum gfc_compile_state): Add COMP_OMP_METADIRECTIVE
+ and COMP_OMP_BEGIN_METADIRECTIVE.
+ (gfc_omp_end_stmt): Declare.
+ (gfc_matching_omp_context_selector): Declare.
+ (gfc_in_omp_metadirective_body): Declare.
+ (gfc_omp_metadirective_region_count): Declare.
+ * resolve.cc (gfc_resolve_code): Handle EXEC_OMP_METADIRECTIVE.
+ * st.cc (gfc_free_statement): Likewise.
+ * symbol.cc (compare_st_labels): Handle labels within a metadirective
+ body.
+ (gfc_get_st_label): Likewise.
+ * trans-decl.cc (gfc_get_label_decl): Encode the metadirective region
+ in the label_name.
+ * trans-openmp.cc (gfc_trans_omp_directive): Handle
+ EXEC_OMP_METADIRECTIVE.
+ (gfc_trans_omp_set_selector): New, split/adapted from code....
+ (gfc_trans_omp_declare_variant): ...here.
+ (gfc_trans_omp_metadirective): New.
+ * trans-stmt.h (gfc_trans_omp_metadirective): Declare.
+ * trans.cc (trans_code): Handle EXEC_OMP_METADIRECTIVE.
+
+2025-01-30 Tobias Burnus <tburnus@baylibre.com>
+
+ * gfortran.h (gfc_omp_declare_variant): Add append_args_list.
+ * openmp.cc (gfc_parser_omp_clause_init_modifiers): New;
+ splitt of from ...
+ (gfc_match_omp_init): ... here; call it.
+ (gfc_match_omp_declare_variant): Update to handle append_args
+ clause; some syntax handling fixes.
+ * trans-openmp.cc (gfc_trans_omp_declare_variant): Handle
+ append_args clause; add some diagnostic.
+
2025-01-29 Harald Anlauf <anlauf@gmx.de>
PR fortran/118683
+2025-01-30 Alexandre Oliva <oliva@adacore.com>
+
+ PR target/113689
+ * gcc.target/i386/pr113689-1.c: Require profiling support.
+ * gcc.target/i386/pr113689-2.c: Likewise.
+ * gcc.target/i386/pr113689-3.c: Likewise.
+
+2025-01-30 Alexandre Oliva <oliva@adacore.com>
+
+ * gcc.dg/vect/vect-ifcvt-18.c: Split -Ofast out of
+ avx_runtime.
+
+2025-01-30 Sandra Loosemore <sloosemore@baylibre.com>
+ Kwok Cheung Yeung <kcy@codesourcery.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+ Tobias Burnus <tobias@codesourcery.com>
+ Paul-Antoine Arras <pa@codesourcery.com>
+
+ PR middle-end/112779
+ PR middle-end/113904
+ * gfortran.dg/gomp/metadirective-1.f90: New.
+ * gfortran.dg/gomp/metadirective-10.f90: New.
+ * gfortran.dg/gomp/metadirective-11.f90: New.
+ * gfortran.dg/gomp/metadirective-12.f90: New.
+ * gfortran.dg/gomp/metadirective-13.f90: New.
+ * gfortran.dg/gomp/metadirective-2.f90: New.
+ * gfortran.dg/gomp/metadirective-3.f90: New.
+ * gfortran.dg/gomp/metadirective-4.f90: New.
+ * gfortran.dg/gomp/metadirective-5.f90: New.
+ * gfortran.dg/gomp/metadirective-6.f90: New.
+ * gfortran.dg/gomp/metadirective-7.f90: New.
+ * gfortran.dg/gomp/metadirective-8.f90: New.
+ * gfortran.dg/gomp/metadirective-9.f90: New.
+ * gfortran.dg/gomp/metadirective-construct.f90: New.
+ * gfortran.dg/gomp/metadirective-no-score.f90: New.
+ * gfortran.dg/gomp/pure-1.f90 (func_metadirective): New.
+ (func_metadirective_2): New.
+ (func_metadirective_3): New.
+ * gfortran.dg/gomp/pure-2.f90 (func_metadirective): Delete.
+
+2025-01-30 Jakub Jelinek <jakub@redhat.com>
+ Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
+
+ PR target/118696
+ * gcc.dg/pr118696.c: New test.
+ * gcc.target/s390/vector/pr118696.c: New test.
+ * gcc.target/s390/vector/vec-abs-emu.c: Expect vrepg with 0 as last
+ operand rather than 1.
+ * gcc.target/s390/vector/vec-max-emu.c: Likewise.
+ * gcc.target/s390/vector/vec-min-emu.c: Likewise.
+
+2025-01-30 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/118695
+ * gcc.dg/pr118695.c: New testcase.
+
+2025-01-30 Tobias Burnus <tburnus@baylibre.com>
+
+ * c-c++-common/gomp/append-args-1.c: Update dg-*.
+ * c-c++-common/gomp/append-args-3.c: Likewise.
+ * g++.dg/gomp/append-args-1.C: Likewise.
+ * gfortran.dg/gomp/adjust-args-1.f90: Likewise.
+ * gfortran.dg/gomp/adjust-args-3.f90: Likewise.
+ * gfortran.dg/gomp/declare-variant-2.f90: Likewise.
+ * c-c++-common/gomp/append-args-6.c: New test.
+ * c-c++-common/gomp/append-args-7.c: New test.
+ * c-c++-common/gomp/append-args-8.c: New test.
+ * c-c++-common/gomp/append-args-9.c: New test.
+ * g++.dg/gomp/append-args-4.C: New test.
+ * g++.dg/gomp/append-args-5.C: New test.
+ * g++.dg/gomp/append-args-6.C: New test.
+ * g++.dg/gomp/append-args-7.C: New test.
+ * gcc.dg/gomp/append-args-1.c: New test.
+ * gfortran.dg/gomp/append_args-1.f90: New test.
+ * gfortran.dg/gomp/append_args-2.f90: New test.
+ * gfortran.dg/gomp/append_args-3.f90: New test.
+ * gfortran.dg/gomp/append_args-4.f90: New test.
+
+2025-01-30 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/118692
+ * gcc.dg/pr118692.c: New testcase.
+
+2025-01-30 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/114052
+ * gcc.dg/pr114052-1.c: New testcase.
+
+2025-01-30 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR rtl-optimization/118320
+ * g++.dg/torture/pr118320.C: New test.
+
+2025-01-30 Jeff Law <jlaw@ventanamicro.com>
+
+ PR target/116860
+ * gcc.dg/tree-ssa/fold-xor-and-or.c: Set logical-op-non-short-circuit.
+ * gcc.dg/tree-ssa/fold-xor-or.c: Similarly.
+
2025-01-29 Gaius Mulley <gaiusmod2@gmail.com>
PR modula2/118010
+2025-01-30 Ian Lance Taylor <iant@golang.org>
+
+ * elf.c (elf_fetch_bits): Add casts to avoid potentially shifting
+ a value farther than its type size.
+ (elf_fetch_bits_backward): Likewise.
+ (elf_uncompress_lzma_block): Likewise.
+ (elf_uncompress_lzma): Likewise.
+
2025-01-28 Richard Earnshaw <rearnsha@arm.com>
* configure.ac: Always check if the compiler supports __sync
+2025-01-30 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/t-avr (LIB1ASMFUNCS): Add _strlen_memx.
+ * config/avr/lib1funcs.S <L_strlen_memx, __strlen_memx>: Implement.
+
2025-01-28 Richard Earnshaw <rearnsha@arm.com>
PR target/118642
+2025-01-30 Sandra Loosemore <sloosemore@baylibre.com>
+
+ * libgomp.texi (OpenMP 5.0): Mark metadirective and declare variant
+ as implemented.
+ (OpenMP 5.1): Mark target_device as supported.
+ Add changed interaction between declare target and OpenMP context
+ and dynamic selector support.
+ (OpenMP 5.2): Mark otherwise clause as supported, note that
+ default is also still accepted.
+
+2025-01-30 Sandra Loosemore <sloosemore@baylibre.com>
+ Kwok Cheung Yeung <kcy@codesourcery.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+ Tobias Burnus <tobias@codesourcery.com>
+ Paul-Antoine Arras <pa@codesourcery.com>
+
+ PR middle-end/112779
+ PR middle-end/113904
+ * testsuite/libgomp.fortran/metadirective-1.f90: New.
+ * testsuite/libgomp.fortran/metadirective-2.f90: New.
+ * testsuite/libgomp.fortran/metadirective-3.f90: New.
+ * testsuite/libgomp.fortran/metadirective-4.f90: New.
+ * testsuite/libgomp.fortran/metadirective-5.f90: New.
+ * testsuite/libgomp.fortran/metadirective-6.f90: New.
+
+2025-01-30 Tobias Burnus <tburnus@baylibre.com>
+
+ * libgomp.texi (Impl. Status): Update for accumpulated changes
+ related to 'dispatch' and interop.
+
2025-01-16 Sandra Loosemore <sloosemore@baylibre.com>
Kwok Cheung Yeung <kcy@codesourcery.com>
Sandra Loosemore <sandra@codesourcery.com>
+2025-01-30 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/98749
+ * include/std/latch (latch::max()): Ensure the return value is
+ representable as the return type.
+ (latch::latch(ptrdiff_t)): Add assertion.
+ (latch::count_down): Fix copy & pasted duplicate assertion. Use
+ std::cmp_equal to compare __platform_wait_t and ptrdiff_t
+ values.
+ (latch::_M_a): Use defined constant for alignment.
+ * testsuite/30_threads/latch/1.cc: Check max(). Check constant
+ initialization works for values in the valid range. Check
+ alignment.
+
2025-01-29 Patrick Palka <ppalka@redhat.com>
PR libstdc++/118413