================ @@ -809,25 +809,130 @@ Code Completion Static Analyzer --------------- -- The Clang Static Analyzer now handles parenthesized initialization. - (#GH148875) -- ``__datasizeof`` (C++) and ``_Countof`` (C) no longer cause a failed assertion - when given an operand of VLA type. (#GH151711) -New features -^^^^^^^^^^^^ +New checkers or options +^^^^^^^^^^^^^^^^^^^^^^^ + +- Introduced the ``alpha.core.StoreToImmutable`` checker to catch writes to + immutable memory. See the `documentation + <https://clang.llvm.org/docs/analyzer/checkers.html#alpha-core-storetoimmutable-c-c>`__. + (#GH150417) +- Introduced the ``core.NullPointerArithm`` checker to catch arithmetic on + null pointers. See the `documentation + <https://clang.llvm.org/docs/analyzer/checkers.html#core-nullpointerarithm-c-c>`__. + (#GH157129) +- The ``core.CallAndMessage`` checker gained a new checker option called + ``ArgPointeeInitializednessComplete``, enabling suppression of diagnostics + of this checker in case at least some parts of the object was initialized. + By default it's disabled. (#GH164600) Crash and bug fixes ^^^^^^^^^^^^^^^^^^^ + - Fixed a crash in the static analyzer that when the expression in an - ``[[assume(expr)]]`` attribute was enclosed in parentheses. (#GH151529) + ``[[assume(expr)]]`` attribute was enclosed in parentheses. (#GH151529) +- Fixed an assertion failure of ``[[assume(expr)]]`` when the expression + couldn't be folded into a constant by the engine. (#GH151854) +- ``__datasizeof`` (C++) and ``_Countof`` (C) no longer cause a failed assertion + when given an operand of VLA type. (#GH151711) +- Sometimes the ``unix.Malloc`` checker asserted when constructing a report under + rare circumstances. (#GH149754) +- The ``core.StackAddressEscape`` checker was crashing if a lambda or + Objective-C block expression captured itself. (#GH169208) +- Fixed an assertion in the ``alpha.unix.cstring`` checker package when + non-default address-spaces were used in ``memcpy``. (#GH153498) +- The engine sometimes crashed when modeling a parenthesis initializer-list + expression. (#GH147686) +- `crosscheck-with-z3 <https://clang.llvm.org/docs/analyzer/user-docs/Options.html#crosscheck-with-z3>`__ + config option sometimes crashed. (#GH168034) +- The ``alpha.core.StdVariant`` checker sometimes crashed when floating-point + values were involved. (#GH167341) +- Hardened the engine for supporting platforms where different address-space + pointers might have different sizes. (#GH151370) +- The ``core.builtin.BuiltinFunctions`` checker crashed when passing + ``_BitInt(N)`` or ``__int128_t`` to ``__builtin_add_overflow`` or similar + checked arithmetic builtin functions. (#GH173795) Improvements ^^^^^^^^^^^^ +- The `expand-macros <https://clang.llvm.org/docs/analyzer/user-docs/Options.html#expand-macros>`__ + analyzer config option now formats the macro expansions using LLVM-style + clang-format. (#GH154743) +- ``[[clang::suppress]]`` now can suppress diagnostics within primary templates. + (#GH168954) +- Improved the false-positive suppression for ``std::unique_ptr`` and + ``std::shared_ptr`` in the ``unix.Malloc`` checker. (#GH60896) +- Improved the false-positive suppression for ``unix.Malloc`` on protobuf code. + (#GH162124) +- Supporting parenthesized initialization. (#GH148875) ---------------- Xazax-hun wrote:
Do we need to mention both this and `#GH147686` above? https://github.com/llvm/llvm-project/pull/174450 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
