diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -903,6 +903,89 @@ non-complete destructors when using the Microsoft ABI. (`#60465 `_) +- Removed the deprecated + ``consider-single-element-arrays-as-flexible-array-members`` analyzer option. + Any use of this flag will result in an error. + Use `-fstrict-flex-arrays= `_ + (`7cd1f3ad22e4 `_) + +- Better modeling of lifetime-extended memory regions. As a result, the + ``MoveChecker`` raises more true-positive reports. + (`feafbb9fda57 `_) + +- Fixed some bugs (including crashes) around the handling of constant global + arrays and their initializer expressions. + (`ffcf214b5d27 `_, + `558b46fde2db `_) + +- The ``CStringChecker`` will invalidate less if the copy operation is + inferable to be bounded. For example, if the argument of ``strcpy`` is known + to be of certain length and that is in-bounds. + + .. code-block:: c++ + + struct { + void *ptr; + char arr[4]; + } x; + x.ptr = malloc(1); + // extent of 'arr' is 4, and writing "hi\n" (4 characters), + // thus no buffer overflow can happen + strcpy(x.arr, "hi\n"); + free(x.ptr); // no longer reports memory leak here + + Similarly, functions like ``strsep`` now won't invalidate the source buffer, + because it can never overflow. + Note that, ``std::copy`` is still not modeled, and as such, it will still + invalidate the enclosing object on call. + (`1bd2d335b649 `_) + (`#55019 `_) + +- Implement ``BufferOverlap`` check for ``sprint``/``snprintf`` + The ``CStringChecker`` checks for buffer overlaps for ``sprintf`` and + ``snprintf``. + (`ce97312d109b `_) + +- Objective-C support was improved around checking ``_Nonnull`` and + ``_Nullable`` including block pointers and literal objects. + (`b22a5d46179b `_, + `77a599ae5828 `_, + `fa6b7dd520fc `_, + `993060e1d31d `_) + +- Let the ``StreamChecker`` detect ``NULL`` streams instead of by + ``StdCLibraryFunctions``. + ``StreamChecker`` improved on the ``fseek`` modeling for the ``SEEK_SET``, + ``SEEK_END``, ``SEEK_CUR`` arguments. + (`2eefd19613b8 `_, + `2c60f9c8a4fd `_) + +- ``StdCLibraryFunctionArgs`` was merged into the ``StdCLibraryFunctions``. + The diagnostics of the ``StdCLibraryFunctions`` was improved. + (`4f0436dd1532 `_, + `6012cadc400f `_, + `258c9bebbdfa `_, + `ce1fb03db817 `_, + `ddc5d40dd285 `_) + +- ``QTimer::singleShot`` now doesn't raise false-positives for memory leaks by + the ``MallocChecker``. + (`3b6a368d763e `_) + (`#39713 `_) + +- Fixed the infamous unsigned index false-positives in the + ``ArrayBoundCheckerV2`` checker. + (`8c22cbea87be `_, + `de2547329b41 `_) + (`#44493 `_) + +- Now, taint propagations are tracked further back until the real taint source. + This improves all taint-related diagnostics. + (`343bdb10940c `_) + +- Fixed a null-pointer dereference crash inside the ``MoveChecker``. + (`d172b65ef001 `_) + .. _release-notes-sanitizers: Sanitizers