summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog83
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/lto/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog231
-rw-r--r--libgcc/ChangeLog18
-rw-r--r--libgfortran/ChangeLog16
-rw-r--r--libstdc++-v3/ChangeLog35
7 files changed, 389 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d7f4787467b..81cbe64b5a8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,86 @@
+2021-09-02 Martin Sebor <msebor@redhat.com>
+
+ PR tree-optimization/17506
+ PR testsuite/37182
+ * tree-ssa-uninit.c (warn_uninit): Remove conditional guarding note.
+
+2021-09-02 Richard Biener <rguenther@suse.de>
+
+ * 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 <jakub@redhat.com>
+
+ PR tree-optimization/99591
+ * match.pd: Demote operands of IFN_{ADD,SUB,MUL}_OVERFLOW if they
+ were promoted.
+
+2021-09-02 Richard Biener <rguenther@suse.de>
+
+ Revert:
+ 2021-09-02 Richard Biener <rguenther@suse.de>
+
+ 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 <hongtao.liu@intel.com>
+
+ * 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 <rguenther@suse.de>
+
+ 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 <syq@debian.org>
+
+ Revert:
+ 2021-08-31 YunQiang Su <yunqiang.su@cipunited.com>
+
+ * config/mips/mips.c (mips_module_isa_name): New.
+ mips_file_start: add .module mipsREV to all asm output
+
2021-09-01 Jeff Law <jlaw@localhost.localdomain>
PR tree-optimization/102152
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c1532a2693f..1591e4e43ac 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20210902
+20210903
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 301e5f42242..34fca8e6825 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,3 +1,8 @@
+2021-09-02 liuhongt <hongtao.liu@intel.com>
+
+ * lto-lang.c (lto_type_for_mode): Return float16_type_node
+ when mode == TYPE_MODE (float16_type_node).
+
2021-05-31 Martin Liska <mliska@suse.cz>
* lto-common.c (compare_tree_sccs_1): Compare
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cef16da61a5..0d8eb186f47 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,234 @@
+2021-09-02 Sandra Loosemore <sandra@codesourcery.com>
+ José Rui Faustino de Sousa <jrfsousa@gmail.com>
+
+ 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 <sandra@codesourcery.com>
+
+ * 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 <msebor@redhat.com>
+
+ 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 <marcel@codesourcery.com>
+
+ * gfortran.dg/gomp/target-device-ancestor-4.f90: Comment out dg-final to avoid
+ UNRESOLVED.
+
+2021-09-02 Richard Biener <rguenther@suse.de>
+
+ * gcc.dg/tree-ssa/ssa-lim-16.c: New testcase.
+
+2021-09-02 Jakub Jelinek <jakub@redhat.com>
+
+ 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 <hongtao.liu@intel.com>
+
+ * 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 <jlaw@localhost.localdomain>
PR tree-optimization/102152
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 593e642b56f..5fe8adec99b 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,21 @@
+2021-09-02 liuhongt <hongtao.liu@intel.com>
+
+ * config/i386/32/sfp-machine.h (_FP_NANFRAC_H): New macro.
+ * config/i386/64/sfp-machine.h (_FP_NANFRAC_H): Ditto.
+ * config/i386/sfp-machine.h (_FP_NANSIGN_H): Ditto.
+ * config/i386/t-softfp: Add hf soft-fp.
+ * config.host: Add i386/64/t-softfp.
+ * config/i386/64/t-softfp: New file.
+
+2021-09-02 liuhongt <hongtao.liu@intel.com>
+
+ * soft-fp/eqhf2.c: New file.
+ * soft-fp/extendhfdf2.c: New file.
+ * soft-fp/extendhfsf2.c: New file.
+ * soft-fp/half.h (FP_CMP_EQ_H): New marco.
+ * soft-fp/truncdfhf2.c: New file
+ * soft-fp/truncsfhf2.c: New file
+
2021-09-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
* unwind-arm-common.inc (abort): Remove.
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 18a4186a04c..e27093dac97 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,19 @@
+2021-09-02 Sandra Loosemore <sandra@codesourcery.com>
+ José Rui Faustino de Sousa <jrfsousa@gmail.com>
+
+ 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 <iain@sandoe.co.uk>
* Makefile.am: Use configured libm availability.
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index e77bac43390..47666416818 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,38 @@
+2021-09-02 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
+ Add new functions.
+ * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
+ it.
+
+2021-09-02 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/atomic: Tweak whitespace.
+
+2021-09-02 Jonathan Wakely <jwakely@redhat.com>
+
+ 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<I>::compare_exchange_weak): Simplify assertions
+ by using __is_valid_cmpexch_failure_order.
+ (__atomic_base<I>::compare_exchange_strong): Likewise.
+ (__atomic_base<P*>::compare_exchange_weak): Likewise.
+ (__atomic_base<P*>::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 <jwakely@redhat.com>
+
+ * 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 <jwakely@redhat.com>
PR libstdc++/98421