2.5 KiB
0.6.0
Breaking Changes
- The
semmle.code.cpp.commons.Bufferandsemmle.code.cpp.commons.NullTerminationlibraries no longer exposesemmle.code.cpp.dataflow.DataFlow. Please importsemmle.code.cpp.dataflow.DataFlowdirectly.
Deprecated APIs
- The
WriteConfigtaint tracking configuration has been deprecated. Please useWriteFlow.
New Features
- Added support for merging two
PathGraphs via disjoint union to allow results from multiple data flow computations in a singlepath-problemquery.
Major Analysis Improvements
-
A new C/C++ dataflow library (
semmle.code.cpp.dataflow.new.DataFlow) has been added. The new library behaves much more like the dataflow library of other CodeQL supported languages by following use-use dataflow paths instead of def-use dataflow paths. The new library also better supports dataflow through indirections, and new predicates such asNode::asIndirectExprhave been added to facilitate working with indirections.The
semmle.code.cpp.ir.dataflow.DataFlowlibrary is now identical to the newsemmle.code.cpp.dataflow.new.DataFlowlibrary. -
The main data flow and taint tracking APIs have been changed. The old APIs remain in place for now and translate to the new through a backwards-compatible wrapper. If multiple configurations are in scope simultaneously, then this may affect results slightly. The new API is quite similar to the old, but makes use of a configuration module instead of a configuration class.
Minor Analysis Improvements
- Deleted the deprecated
hasGeneratedCopyConstructorandhasGeneratedCopyAssignmentOperatorpredicates from theFolderclass. - Deleted the deprecated
getPathandgetFolderpredicates from theXmlFileclass. - Deleted the deprecated
getMustlockFunction,getTrylockFunction,getLockFunction, andgetUnlockFunctionpredicates from theMutexTypeclass. - Deleted the deprecated
getPosInBasicBlockpredicate from theSubBasicBlockclass. - Deleted the deprecated
getExprpredicate from thePointerDereferenceExprclass. - Deleted the deprecated
getUseInstructionandgetDefinitionInstructionpredicates from theOperandclass. - Deleted the deprecated
isInParameter,isInParameterPointer, andisInQualifierpredicates from theFunctionInputclass. - Deleted the deprecated
isOutParameterPointer,isOutQualifier,isOutReturnValue, andisOutReturnPointerpredicate from theFunctionOutputclass. - Deleted the deprecated 3-argument
isGuardPhipredicate from theRangeSsaDefinitionclass.