@@ -1234,33 +1234,112 @@ Code Completion
12341234
12351235Static Analyzer
12361236---------------
1237- - Fixed a crash when C++20 parenthesized initializer lists are used. This issue
1238- was causing a crash in clang-tidy. (#GH136041)
12391237
12401238New features
12411239^^^^^^^^^^^^
12421240
1241+ - Added support for the ``[[clang::assume(cond)]] `` attribute, treating it as
1242+ ``__builtin_assume(cond) `` for better static analysis. (#GH129234)
1243+
1244+ - Introduced per-entry-point statistics to provide more detailed analysis metrics.
1245+ Documentation: :doc: `analyzer/developer-docs/Statistics ` (#GH131175)
1246+
1247+ - Added time-trace scopes for high-level analyzer steps to improve performance
1248+ debugging. Documentation: :doc: `analyzer/developer-docs/PerformanceInvestigation `
1249+ (#GH125508, #GH125884)
1250+
1251+ - Enhanced the ``check::BlockEntrance `` checker callback to provide more granular
1252+ control over block-level analysis.
1253+ `Documentation (check::BlockEntrance)
1254+ <https://clang.llvm.org/doxygen/CheckerDocumentation_8cpp_source.html> `_
1255+ (#GH140924)
1256+
1257+ - Added a new checker ``core.FixedAddressDereference `` to detect dereferences
1258+ of fixed addresses, which can be useful for finding hard-coded memory
1259+ accesses. (#GH127191, #GH132404)
1260+
12431261Crash and bug fixes
12441262^^^^^^^^^^^^^^^^^^^
12451263
1246- - Fixed a crash in ``UnixAPIMisuseChecker `` and ``MallocChecker `` when analyzing
1264+ - Fixed a crash when C++20 parenthesized initializer lists are used.
1265+ This affected a crash of the well-known lambda overloaded pattern.
1266+ (#GH136041, #GH135665)
1267+
1268+ - Dropped an unjustified assertion, that was triggered in ``BugReporterVisitors.cpp ``
1269+ for variable initialization detection. (#GH125044)
1270+
1271+ - Fixed a crash in ``unix.API `` and ``unix.Malloc `` when analyzing
12471272 code with non-standard ``getline `` or ``getdelim `` function signatures. (#GH144884)
12481273
1274+ - Fixed crashes involving ``__builtin_bit_cast ``. (#GH139188)
1275+
1276+ - ``__datasizeof `` (C++) and ``_Countof `` (C) no longer cause a failed assertion
1277+ when given an operand of VLA type. (#GH151711)
1278+
1279+ - Fixed a crash in ``alpha.core.CastSize ``. (#GH134387)
1280+
1281+ - Some ``cplusplus.PlacementNew `` false positives were fixed. (#GH150161)
1282+
12491283Improvements
12501284^^^^^^^^^^^^
12511285
1286+ - Added option to assume at least one iteration in loops to reduce false positives.
1287+ (#GH125494)
1288+
12521289- The checker option ``optin.cplusplus.VirtualCall:PureOnly `` was removed,
1253- because it had been deprecated since 2019 and it is completely useless (it
1254- was kept only for compatibility with pre-2019 versions, setting it to true is
1255- equivalent to completely disabling the checker).
1290+ because it had been deprecated since 2019. (#GH131823)
1291+
1292+ - Enhanced the ``core.StackAddressEscape `` to detect more cases of stack address
1293+ escapes, including return values for child stack frames. (#GH126620, #GH126986)
1294+
1295+ - Improved the ``unix.BlockInCriticalSection `` to recognize ``O_NONBLOCK ``
1296+ streams and suppress reports in those cases. (#GH127049)
1297+
1298+ - Better support for lambda-converted function pointers in analysis. (#GH144906)
1299+
1300+ - Improved modeling of ``getcwd `` function in ``unix.StdCLibraryFunctions `` checker.
1301+ (#GH141076)
1302+
1303+ - Enhanced the ``optin.core.EnumCastOutOfRange `` checker to ignore ``[[clang::flag_enum]] ``
1304+ enums. (#GH141232)
1305+
1306+ - Improved handling of structured bindings captured by lambdas. (#GH132579, #GH91835)
1307+
1308+ - Fixed unnamed bitfield handling in ``optin.cplusplus.UninitializedObject ``. (#GH132427, #GH132001)
1309+
1310+ - Enhanced iterator checker modeling for ``insert `` operations. (#GH132596)
1311+
1312+ - Improved ``format `` attribute handling in ``optin.taint.GenericTaint ``. (#GH132765)
1313+
1314+ - Added support for ``consteval `` in ``ConditionBRVisitor::VisitTerminator ``.
1315+ (#GH146859, #GH139130)
1316+
1317+ - C standard streams are no longer invalidated by all C library function calls.
1318+ (#GH147766)
1319+
1320+ - Enhanced store management with region-store-binding-limit to improve performance.
1321+ See `region-store-max-binding-fanout
1322+ <https://clang.llvm.org/docs/analyzer/user-docs/Options.html#region-store-max-binding-fanout> `_
1323+ config option. Overriding these options are discouraged, unless you know what you do.
1324+ (#GH127602)
1325+
1326+ - Updated undefined assignment checker (``core.uninitialized.Assign ``) diagnostics
1327+ to avoid using the term ``garbage ``. (#GH126596)
1328+
1329+ - Fixed false memory leak reports involving placement new. (#GH144341)
1330+
1331+ - Avoided unnecessary super region invalidation in ``unix.cstring.* `` checkers.
1332+ (#GH146212, #GH143807)
1333+
1334+ - Enhanced handling of tainted division-by-zero error paths in the
1335+ ``optin.taint.TaintedDiv `` checker. (#GH144491)
12561336
12571337Moved checkers
12581338^^^^^^^^^^^^^^
12591339
1260- - After lots of improvements, the checker ``alpha.security.ArrayBoundV2 `` is
1340+ - After lots of improvements, the checker ``alpha.security.ArrayBoundV2 `` was
12611341 renamed to ``security.ArrayBound ``. As this checker is stable now, the old
1262- checker ``alpha.security.ArrayBound `` (which was searching for the same kind
1263- of bugs with an different, simpler and less accurate algorithm) is removed.
1342+ checker ``alpha.security.ArrayBound `` was removed.
12641343
12651344.. _release-notes-sanitizers :
12661345
0 commit comments