Module StackAddress
Provides utilities for determining which expressions contain stack addresses.
Import path
import semmle.code.cpp.dataflow.StackAddress
Imports
Predicates
constructorMightRunOnStack | Helper predicate for memberFcnMightRunOnStack. Function calls to constructors need to be treated as a special case, because |
isReferenceVariable | The type of the variable is a reference type, such as int&. |
memberFcnMightRunOnStack | Holds if this member function might be called on an object which is allocated on the stack. |
pointerParamFlowsToDef | Helper predicate for stackPointerFlowsToUse. Tracks the flow of stack addresses which arrived through one of the function’s parameters. This predicate is very similar to stackPointerFlowsToDef but they cannot be merged, because we cannot identify a sensible source expression here. |
referenceParamFlowsToDef | Helper predicate for stackPointerFlowsToUse. Tracks the flow of stack addresses which arrived through one of the function’s parameters. This predicate is very similar to stackPointerFlowsToDef but they cannot be merged, because we cannot identify a sensible source expression here. |
stackPointerFlowsToDef | Helper predicate for stackPointerFlowsToUse. Tracks the flow of stack addresses through SSA definitions. |
stackPointerFlowsToUse | A stack address flows to |
stackReferenceFlowsToDef | Helper predicate for stackPointerFlowsToUse. Tracks the flow of stack references through SSA definitions. This predicate is almost identical to stackPointerFlowsToDef, except it handles references types, such as int&, rather than pointers. |
stackReferenceFlowsToDef_Impl | stackReferenceFlowsToDef delegates most of the work to this predicate. |
stackReferenceFlowsToUse | Holds if |