clang: clang::ento::AnyFunctionCall Class Reference (original) (raw)
Represents a call to any sort of function that might have a FunctionDecl. More...
Public Member Functions
const FunctionDecl *
getDecl () const override
Returns the declaration of the function or method that will be called.
getRuntimeDefinition () const override
Returns the definition of the function or method that will be called.
argumentsMayEscape () const override
Returns true if any of the arguments are known to escape to long- term storage, even if this method will not modify them.
void
getInitialStackFrameContents (const StackFrameContext *CalleeCtx, BindingsTy &Bindings) const override
Populates the given SmallVector with the bindings in the callee's stack frame at the start of this call.
ArrayRef< ParmVarDecl * >
parameters () const override
Return call's formal parameters.
Public Member Functions inherited from clang::ento::CallEvent
operator= (const CallEvent &)=delete
virtual
~CallEvent ()=default
virtual Kind
getKind () const =0
Returns the kind of call this is.
virtual StringRef
getKindAsString () const =0
virtual const Decl *
getDecl () const
Returns the declaration of the function or method that will be called.
isForeign () const
void
setForeign (bool B) const
const ProgramStateRef &
getState () const
The state in which the call is being evaluated.
const LocationContext *
getLocationContext () const
The context in which the call is being evaluated.
const CFGBlock::ConstCFGElementRef &
getCFGElementRef () const
virtual RuntimeDefinition
getRuntimeDefinition () const =0
Returns the definition of the function or method that will be called.
virtual const Expr *
getOriginExpr () const
Returns the expression whose value will be the result of this call.
virtual unsigned
getNumArgs () const =0
Returns the number of arguments (explicit and implicit).
isInSystemHeader () const
Returns true if the callee is known to be from a system header.
virtual SourceRange
getSourceRange () const
Returns a source range for the entire call, suitable for outputting in diagnostics.
virtual SVal
getArgSVal (unsigned Index) const
Returns the value of a given argument at the time of the call.
virtual const Expr *
getArgExpr (unsigned Index) const
Returns the expression associated with a given argument.
virtual SourceRange
getArgSourceRange (unsigned Index) const
Returns the source range for errors associated with this argument.
getResultType () const
Returns the result type, adjusted for references.
getReturnValue () const
Returns the return value of the call.
hasNonNullArgumentsWithType (bool(*Condition)(QualType)) const
Returns true if the type of any of the non-null arguments satisfies the condition.
hasNonZeroCallbackArg () const
Returns true if any of the arguments appear to represent callbacks.
hasVoidPointerToNonConstArg () const
Returns true if any of the arguments is void*.
virtual bool
argumentsMayEscape () const
Returns true if any of the arguments are known to escape to long- term storage, even if this method will not modify them.
isGlobalCFunction (StringRef SpecificName=StringRef()) const
Returns true if the callee is an externally-visible function in the top-level namespace, such as malloc
.
const IdentifierInfo *
getCalleeIdentifier () const
Returns the name of the callee, if its name is a simple identifier.
getProgramPoint (bool IsPreVisit=false, const ProgramPointTag *Tag=nullptr) const
Returns an appropriate ProgramPoint for this call.
invalidateRegions (unsigned BlockCount, ProgramStateRef Orig=nullptr) const
Returns a new state with all argument regions invalidated.
virtual void
getInitialStackFrameContents (const StackFrameContext *CalleeCtx, BindingsTy &Bindings) const =0
Populates the given SmallVector with the bindings in the callee's stack frame at the start of this call.
template<typename T >
CallEventRef< T >
cloneWithState (ProgramStateRef NewState) const
Returns a copy of this CallEvent, but using the given state.
cloneWithState (ProgramStateRef NewState) const
Returns a copy of this CallEvent, but using the given state.
getCalleeAnalysisDeclContext () const
Returns AnalysisDeclContext for the callee stack frame.
const StackFrameContext *
getCalleeStackFrame (unsigned BlockCount) const
Returns the callee stack frame.
const ParamVarRegion *
getParameterLocation (unsigned Index, unsigned BlockCount) const
Returns memory location for a parameter variable within the callee stack frame.
isArgumentConstructedDirectly (unsigned Index) const
Returns true if on the current path, the argument was constructed by calling a C++ constructor over it.
virtual std::optional< unsigned >
getAdjustedParameterIndex (unsigned ASTArgumentIndex) const
Some calls have parameter numbering mismatched from argument numbering.
virtual unsigned
getASTArgumentIndex (unsigned CallArgumentIndex) const
Some call event sub-classes conveniently adjust mismatching AST indices to match parameter indices.
const ConstructionContext *
getConstructionContext () const
Returns the construction context of the call, if it is a C++ constructor call or a call of a function returning a C++ class instance.
std::optional< SVal >
getReturnValueUnderConstruction () const
If the call returns a C++ record type then the region of its return value can be retrieved from its construction context.
const CallEventRef
getCaller () const
isCalledFromSystemHeader () const
virtual ArrayRef< ParmVarDecl * >
parameters () const =0
Return call's formal parameters.
param_type_begin () const
Returns an iterator over the types of the call's formal parameters.
param_type_end () const
void
dump (raw_ostream &Out) const
void
dump () const
Represents a call to any sort of function that might have a FunctionDecl.
Definition at line 499 of file CallEvent.h.
Return call's formal parameters.
Remember that the number of formal parameters may not match the number of arguments for all calls. However, the first parameter will always correspond with the argument value returned by getArgSVal(0)
.
Implements clang::ento::CallEvent.
Definition at line 554 of file CallEvent.cpp.