Skip to content

Commit 791b7e9

Browse files
committed
[release][docs] Add 11.0.0. release notes for the Clang Static Analyzer
Differential Revision: https://reviews.llvm.org/D86533
1 parent e62452b commit 791b7e9

File tree

1 file changed

+68
-1
lines changed

1 file changed

+68
-1
lines changed

clang/docs/ReleaseNotes.rst

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -603,10 +603,77 @@ libclang
603603

604604
- ...
605605

606+
.. _release-notes-clang-static-analyzer:
607+
606608
Static Analyzer
607609
---------------
608610

609-
- ...
611+
- Improved the analyzer's understanding of inherited C++ constructors.
612+
613+
- Improved the analyzer's understanding of dynamic class method dispatching in
614+
Objective-C.
615+
616+
- Greatly improved the analyzer's constraint solver by better understanding
617+
when constraints are imposed on multiple symbolic values that are known to be
618+
equal or known to be non-equal. It will now also efficiently reject impossible
619+
if-branches between known comparison expressions.
620+
621+
- Added :ref:`on-demand parsing <ctu-on-demand>` capability to Cross Translation
622+
Unit (CTU) analysis.
623+
624+
- Numerous fixes and improvements for the HTML output.
625+
626+
- New checker: :ref:`alpha.core.C11Lock <alpha-core-C11Lock>` and
627+
:ref:`alpha.fuchsia.Lock <alpha-fuchsia-lock>` checks for their respective
628+
locking APIs.
629+
630+
- New checker: :ref:`alpha.security.cert.pos.34c <alpha-security-cert-pos-34c>`
631+
finds calls to ``putenv`` where a pointer to an autmoatic variable is passed
632+
as an argument.
633+
634+
- New checker: :ref:`webkit.NoUncountedMemberChecker
635+
<webkit-NoUncountedMemberChecker>` to enforce the existence of virtual
636+
destructors for all uncounted types used as base classes.
637+
638+
- New checker: :ref:`webkit.RefCntblBaseVirtualDtor
639+
<webkit-RefCntblBaseVirtualDtor>` checks that only ref-counted types
640+
are used as class members, not raw pointers and references to uncounted
641+
types.
642+
643+
- New checker: :ref:`alpha.cplusplus.SmartPtr <alpha-cplusplus-SmartPtr>` check
644+
for dereference of null smart pointers.
645+
646+
- Moved ``PlacementNewChecker`` out of alpha, making it enabled by default.
647+
648+
- Added support for multi-dimensional variadic arrays in ``core.VLASize``.
649+
650+
- Added a check for insufficient storage in array placement new calls, as well
651+
as support for alignment variants to ``cplusplus.PlacementNew``.
652+
653+
- While still in alpha, ``alpha.unix.PthreadLock``, the iterator and container
654+
modeling infrastructure, ``alpha.unix.Stream``, and taint analysis were
655+
improved greatly. An ongoing, currently off-by-default improvement was made on
656+
the pre-condition modeling of several functions defined in the POSIX standard.
657+
658+
- Improved the warning messages of several checkers.
659+
660+
- Fixed a few remaining cases of checkers emitting reports under incorrect
661+
checker names, and employed a few restrictions to more easily identify and
662+
avoid such errors.
663+
664+
- Moved several non-reporting checkers (those that model, among other things,
665+
standard functions, but emit no diagnostics) to be listed under
666+
``-analyzer-checker-help-developer`` instead of ``-analyzer-checker-help``.
667+
Manually enabling or disabling checkers found on this list is not supported
668+
in production.
669+
670+
- Numerous fixes for crashes, false positives and false negatives in
671+
``unix.Malloc``, ``osx.cocoa.NSError``, and several other checkers.
672+
673+
- Implemented a dockerized testing system to more easily determine the
674+
correctness and performance impact of a change to the static analyzer itself.
675+
The currently beta-version tool is found in
676+
``(llvm-project repository)/clang/utils/analyzer/SATest.py``.
610677

611678
.. _release-notes-ubsan:
612679

0 commit comments

Comments
 (0)