class CallDescriptionSet

Declaration

class CallDescriptionSet { /* full declaration omitted */ };

Description

An immutable set of CallDescriptions. Checkers can efficiently decide if a given CallEvent matches any CallDescription in the set.

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallDescription.h:229

Member Variables

private CallDescriptionMap<bool> Impl = {}

Method Overview

Methods

CallDescriptionSet(
    std::initializer_list<CallDescription>&& List)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallDescription.h:233

Parameters

std::initializer_list<CallDescription>&& List

CallDescriptionSet(
    const clang::ento::CallDescriptionSet&)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallDescription.h:235

Parameters

const clang::ento::CallDescriptionSet&

bool contains(
    const clang::ento::CallEvent& Call) const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallDescription.h:238

Parameters

const clang::ento::CallEvent& Call

bool containsAsWritten(
    const clang::CallExpr& CE) const

Description

When available, always prefer lookup with a CallEvent! This function exists only when that is not available, for example, when _only_ syntactic check is done on a piece of code. Also, StdLibraryFunctionsChecker::Signature is likely a better candicade for syntactic only matching if you are writing a new checker. This is handy if a CallDescriptionMap is already there. The function is imprecise because CallEvent may know path sensitive information, such as the precise argument count (see comments for CallEvent::getNumArgs), the called function if it was called through a function pointer, and other information not available syntactically.

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallDescription.h:252

Parameters

const clang::CallExpr& CE