diff options
-rw-r--r-- | gcc/ChangeLog | 68 | ||||
-rw-r--r-- | gcc/DATESTAMP | 2 | ||||
-rw-r--r-- | gcc/c-family/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/fortran/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 41 | ||||
-rw-r--r-- | libcpp/ChangeLog | 5 | ||||
-rw-r--r-- | libgcc/ChangeLog | 7 | ||||
-rw-r--r-- | libiberty/ChangeLog | 4 | ||||
-rw-r--r-- | libstdc++-v3/ChangeLog | 29 |
9 files changed, 174 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e7382a5bae9..7f75ecacf18 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,71 @@ +2022-01-15 Martin Sebor <msebor@redhat.com> + + PR c/63272 + * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle + -Wdangling-pointer. + * doc/invoke.texi (-Wdangling-pointer): Document new option. + * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member. + (pass_waccess::check_pointer_uses): New function. + (pass_waccess::gimple_call_return_arg): New function. + (pass_waccess::gimple_call_return_arg_ref): New function. + (pass_waccess::check_call_dangling): New function. + (pass_waccess::check_dangling_uses): New function overloads. + (pass_waccess::check_dangling_stores): New function. + (pass_waccess::check_dangling_stores): New function. + (pass_waccess::m_clobbers): New data member. + (pass_waccess::m_func): New data member. + (pass_waccess::m_run_number): New data member. + (pass_waccess::m_check_dangling_p): New data member. + (pass_waccess::check_alloca): Check m_early_checks_p. + (pass_waccess::check_alloc_size_call): Same. + (pass_waccess::check_strcat): Same. + (pass_waccess::check_strncat): Same. + (pass_waccess::check_stxcpy): Same. + (pass_waccess::check_stxncpy): Same. + (pass_waccess::check_strncmp): Same. + (pass_waccess::check_memop_access): Same. + (pass_waccess::check_read_access): Same. + (pass_waccess::check_builtin): Call check_pointer_uses. + (pass_waccess::warn_invalid_pointer): Add arguments. + (is_auto_decl): New function. + (pass_waccess::check_stmt): New function. + (pass_waccess::check_block): Call check_stmt. + (pass_waccess::execute): Call check_dangling_uses, + check_dangling_stores. Empty m_clobbers. + * passes.def (pass_warn_access): Invoke pass two more times. + +2022-01-15 Martin Sebor <msebor@redhat.com> + + PR tree-optimization/80532 + * common.opt (-Wuse-after-free): New options. + * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle + OPT_Wreturn_local_addr and OPT_Wuse_after_free_. + * diagnostic-spec.h (NW_DANGLING): New enumerator. + * doc/invoke.texi (-Wuse-after-free): Document new option. + * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename... + (pass_waccess::check_call_access): ...to this. + (pass_waccess::check): Rename... + (pass_waccess::check_block): ...to this. + (pass_waccess::check_pointer_uses): New function. + (pass_waccess::gimple_call_return_arg): New function. + (pass_waccess::warn_invalid_pointer): New function. + (pass_waccess::check_builtin): Handle free and realloc. + (gimple_use_after_inval_p): New function. + (get_realloc_lhs): New function. + (maybe_warn_mismatched_realloc): New function. + (pointers_related_p): New function. + (pass_waccess::check_call): Call check_pointer_uses. + (pass_waccess::execute): Compute and free dominance info. + +2022-01-15 Uroš Bizjak <ubizjak@gmail.com> + + * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use + expand_simple_unop and expand_simple_binop instead of manually + constructing NOT, AND and IOR RTXes. Use vector_all_ones_operand + consistently. Eliminate common subexpressions and simplify code. + * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander. + (<any_logic:code><MODEF:mode>3): Make public. + 2022-01-14 Eric Botcazou <ebotcazou@adacore.com> * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 52fea2ecbbc..20764d6add7 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20220115 +20220116 diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index c25f86fe740..487be7b499b 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,13 @@ +2022-01-15 Martin Sebor <msebor@redhat.com> + + PR c/63272 + * c.opt (-Wdangling-pointer): New option. + +2022-01-15 Martin Sebor <msebor@redhat.com> + + PR tree-optimization/80532 + * c.opt (-Wuse-after-free): New options. + 2022-01-14 David Malcolm <dmalcolm@redhat.com> * c-attribs.c (c_common_attribute_table): Add "tainted_args". diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 99ab840cd43..a2585f9b0d3 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,12 @@ +2022-01-15 Harald Anlauf <anlauf@gmx.de> + + PR fortran/83079 + * target-memory.c (gfc_interpret_character): Result length is + in bytes and thus depends on the character kind. + * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Compute correct + string length for the result of the TRANSFER intrinsic and for + temporaries for the different character kinds. + 2022-01-14 Harald Anlauf <anlauf@gmx.de> PR fortran/99256 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3c3b3cc43dc..e04131bf909 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,44 @@ +2022-01-15 Martin Sebor <msebor@redhat.com> + + PR c/63272 + * g++.dg/warn/Wfree-nonheap-object-6.C: Disable valid warnings. + * g++.dg/warn/ref-temp1.C: Prune expected warning. + * gcc.dg/uninit-pr50476.c: Expect a new warning. + * c-c++-common/Wdangling-pointer-2.c: New test. + * c-c++-common/Wdangling-pointer-3.c: New test. + * c-c++-common/Wdangling-pointer-4.c: New test. + * c-c++-common/Wdangling-pointer-5.c: New test. + * c-c++-common/Wdangling-pointer-6.c: New test. + * c-c++-common/Wdangling-pointer.c: New test. + * g++.dg/warn/Wdangling-pointer-2.C: New test. + * g++.dg/warn/Wdangling-pointer.C: New test. + * gcc.dg/Wdangling-pointer-2.c: New test. + * gcc.dg/Wdangling-pointer.c: New test. + +2022-01-15 Martin Sebor <msebor@redhat.com> + + PR tree-optimization/80532 + * gcc.dg/Wmismatched-dealloc-2.c: Avoid -Wuse-after-free. + * gcc.dg/Wmismatched-dealloc-3.c: Same. + * gcc.dg/analyzer/file-1.c: Prune expected warning. + * gcc.dg/analyzer/file-2.c: Same. + * gcc.dg/attr-alloc_size-6.c: Disable -Wuse-after-free. + * gcc.dg/attr-alloc_size-7.c: Same. + * c-c++-common/Wuse-after-free-2.c: New test. + * c-c++-common/Wuse-after-free-3.c: New test. + * c-c++-common/Wuse-after-free-4.c: New test. + * c-c++-common/Wuse-after-free-5.c: New test. + * c-c++-common/Wuse-after-free-6.c: New test. + * c-c++-common/Wuse-after-free-7.c: New test. + * c-c++-common/Wuse-after-free.c: New test. + * g++.dg/warn/Wmismatched-dealloc-3.C: New test. + * g++.dg/warn/Wuse-after-free.C: New test. + +2022-01-15 Harald Anlauf <anlauf@gmx.de> + + PR fortran/83079 + * gfortran.dg/transfer_char_kind4.f90: New test. + 2022-01-14 David Malcolm <dmalcolm@redhat.com> * gcc.dg/analyzer/taint-merger.c: New test. diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index a5c4e7ecf06..cc50245a489 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,8 @@ +2022-01-15 Martin Sebor <msebor@redhat.com> + + * files.c (_cpp_find_file): Substitute a valid pointer for + an invalid one to avoid -Wuse-after-free. + 2022-01-12 Clément Chigot <clement.chigot@atos.net> * configure.ac: Check sizeof ino_t and dev_t. diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 6ecc75c3c42..e6a2856056d 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,10 @@ +2022-01-15 David <gccbugzilla@limegreensocks.com> + + * config/i386/gthr-win32.c (__gthr_i486_lock_cmp_xchg): + Remove inlined version, Windows 95 is no longer relevant. + * config/i386/gthr-win32.h + (__GTHREAD_I486_INLINE_LOCK_PRIMITIVES): unset. + 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/linux-unwind.h (arc_fallback_frame_state): Use diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index b283655f3cd..3e6810009ae 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,7 @@ +2022-01-15 Martin Sebor <msebor@redhat.com> + + * regex.c: Suppress -Wuse-after-free. + 2021-12-30 Lancelot SIX <lsix@lancelotsix.com> * cp-demangle.c (d_clone_suffix): Support digits in clone tag diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 677f3436d14..28adf812082 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,32 @@ +2022-01-15 Matthias Kretz <m.kretz@gsi.de> + + * include/experimental/bits/simd.h: Move feature detection bools + and add __have_avx512bitalg, __have_avx512vbmi2, + __have_avx512vbmi, __have_avx512ifma, __have_avx512cd, + __have_avx512vnni, __have_avx512vpopcntdq. + (__detail::__machine_flags): New function which returns a unique + uint64 depending on relevant -m and -f flags. + (__detail::__odr_helper): New type alias for either an anonymous + type or a type specialized with the __machine_flags number. + (_SimdIntOperators): Change template parameters from _Impl to + _Tp, _Abi because _Impl now has an __odr_helper parameter which + may be _OdrEnforcer from the anonymous namespace, which makes + for a bad base class. + (many): Either add __odr_helper template parameter or mark as + always_inline. + * include/experimental/bits/simd_detail.h: Add defines for + AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD, + AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT. + * include/experimental/bits/simd_builtin.h: Add __odr_helper + template parameter or mark as always_inline. + * include/experimental/bits/simd_fixed_size.h: Ditto. + * include/experimental/bits/simd_math.h: Ditto. + * include/experimental/bits/simd_scalar.h: Ditto. + * include/experimental/bits/simd_neon.h: Add __odr_helper + template parameter. + * include/experimental/bits/simd_ppc.h: Ditto. + * include/experimental/bits/simd_x86.h: Ditto. + 2022-01-14 Uroš Bizjak <ubizjak@gmail.com> * testsuite/22_locale/numpunct/members/char/3.cc: |