================ @@ -1223,28 +1221,106 @@ New features - Implemented `P2719R5 Type-aware allocation and deallocation functions <https://wg21.link/P2719>`_ as an extension in all C++ language modes. +- Added support for the ``[[clang::assume(cond)]]`` attribute, treating it as + ``__builtin_assume(cond)`` for better static analysis. (#GH129234) + +- Introduced per-entry-point statistics to provide more detailed analysis metrics. + Documentation: :doc:`analyzer/developer-docs/Statistics` (#GH131175) + +- Added time-trace scopes for high-level analyzer steps to improve performance + debugging. Documentation: :doc:`analyzer/developer-docs/PerformanceInvestigation` + (#GH125508, #GH125884) + +- Enhanced the ``check::BlockEntrance`` checker callback to provide more granular + control over block-level analysis. + `Documentation (check::BlockEntrance) + <https://clang.llvm.org/doxygen/CheckerDocumentation_8cpp_source.html>`_ + (#GH140924) + +- Added a new experimental checker ``core.FixedAddressDereference`` to detect + dereferences of fixed addresses, which can be useful for finding hard-coded memory + accesses. (#GH127191, #GH132404) Crash and bug fixes ^^^^^^^^^^^^^^^^^^^ +- Fixed a crash when C++20 parenthesized initializer lists are used. + This affected a crash of the well-known lambda overloaded pattern. + (#GH136041, #GH135665) + +- Dropped an unjustified assertion, that was triggered in ``BugReporterVisitors.cpp`` + for variable initialization detection. (#GH125044) + - Fixed a crash in ``UnixAPIMisuseChecker`` and ``MallocChecker`` when analyzing code with non-standard ``getline`` or ``getdelim`` function signatures. (#GH144884) +- Fixed crashes involving ``__builtin_bit_cast``. (#GH139188) + +- ``__datasizeof`` (C++) and ``_Countof`` (C) no longer cause a failed assertion + when given an operand of VLA type. (#GH151711) + +- Fixed a crash in ``CastSizeChecker``. (#GH134387) + +- Some ``cplusplus.PlacementNew`` false positives were fixed. (#GH150161) + Improvements ^^^^^^^^^^^^ +- Added option to assume at least one iteration in loops to reduce false positives. + (#GH125494) + - The checker option ``optin.cplusplus.VirtualCall:PureOnly`` was removed, - because it had been deprecated since 2019 and it is completely useless (it - was kept only for compatibility with pre-2019 versions, setting it to true is - equivalent to completely disabling the checker). + because it had been deprecated since 2019. (#GH131823) + +- Enhanced the ``StackAddrEscapeChecker`` to detect more cases of stack address + escapes, including return values for child stack frames. (#GH126620, #GH126986) + +- Improved the ``BlockInCriticalSectionChecker`` to recognize ``O_NONBLOCK`` + streams and suppress reports in those cases. (#GH127049) + +- Better support for lambda-converted function pointers in analysis. (#GH144906) + +- Improved modeling of ``getcwd`` function in ``StdCLibraryFunctions`` checker. + (#GH141076) + +- Enhanced the ``EnumCastOutOfRange`` checker to ignore ``[[clang::flag_enum]]`` + enums. (#GH141232) + +- Improved handling of structured bindings captured by lambdas. (#GH132579, #GH91835) + +- Fixed unnamed bitfield handling in ``UninitializedObjectChecker``. (#GH132427, #GH132001) + +- Enhanced iterator checker modeling for ``insert`` operations. (#GH132596) + +- Improved ``format`` attribute handling in ``GenericTaintChecker``. (#GH132765) + +- Added support for ``consteval`` in ``ConditionBRVisitor::VisitTerminator``. + (#GH146859, #GH139130) + +- Enhanced handling of C standard streams in internal memory space. (#GH147766) ---------------- balazske wrote:
```suggestion - C standard streams are no longer invalidated by all C library function calls. (#GH147766) ``` https://github.com/llvm/llvm-project/pull/154600 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits