Files
codeql/cpp/ql/lib/change-notes/released/7.0.0.md
2026-01-19 14:49:14 +00:00

1.4 KiB

7.0.0

Breaking Changes

  • The _Decimal32, _Decimal64, and _Decimal128 types are no longer exposed as builtin types. Support for these gcc-specific types was incomplete, and are generally not used in C/C++ codebases.

Deprecated APIs

  • The OverloadedArrayExpr::getArrayOffset/0 predicate has been deprecated. Use OverloadedArrayExpr::getArrayOffset/1 and OverloadedArrayExpr::getAnArrayOffset instead.

New Features

  • Added subclasses of BuiltInOperations for the __is_bitwise_cloneable, __is_invocable, and __is_nothrow_invocable builtin operations.
  • Added a isThisAccess predicate to ParamAccessForType that holds when the access is to the implicit object parameter.
  • Predicates getArrayOffset/1 and getAnArrayOffset have been added to the OverloadedArrayExpr class to support C++23 multidimensional subscript operators.

Minor Analysis Improvements

  • Some constants will now be represented by their unfolded expression trees. The isConstant predicate of Expr will no longer yield a result for those constants.

Bug Fixes

  • Fixed a bug in the DataFlow::BarrierGuard<...>::getABarrierNode predicate which caused the predicate to return DataFlow::Nodes with incorrect indirections. If you use getABarrierNode to implement barriers in a dataflow/taint-tracking query it may result in more query results. You can use DataFlow::BarrierGuard<...>::getAnIndirectBarrierNode to remove those query results.