clang 24.0.0git
clang::TrivialFunctionAnalysis Class Reference

An inter-procedural analysis facility that detects functions with "trivial" behavior with respect to reference counting, such as simple field getters. More...

#include "/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h"

Public Member Functions

bool isTrivial (const Decl *D) const
bool isTrivial (const Stmt *S) const
bool hasTrivialDtor (const VarDecl *VD) const
const FieldDecl * fieldWithNonTrivialCtor (const CXXRecordDecl *RD) const
const FieldDecl * fieldWithNonTrivialDtor (const CXXRecordDecl *RD) const

Static Public Member Functions

static NonTrivialityReason computeReason (const Stmt *S)

Friends

class TrivialFunctionAnalysisVisitor

Detailed Description

An inter-procedural analysis facility that detects functions with "trivial" behavior with respect to reference counting, such as simple field getters.

Definition at line 244 of file PtrTypesSemantics.h.

Member Function Documentation

◆ computeReason()

NonTrivialityReason clang::TrivialFunctionAnalysis::computeReason ( const Stmt * S)
static
Returns
why S is not trivial. Runs on a private, empty cache because pinpointing the root cause requires descending into callees that a shared cache would short-circuit. Only call this when about to emit a diagnostic.

Definition at line 1449 of file PtrTypesSemantics.cpp.

References clang::Cache, TrivialFunctionAnalysisVisitor, and V.

◆ fieldWithNonTrivialCtor()

const FieldDecl * clang::TrivialFunctionAnalysis::fieldWithNonTrivialCtor ( const CXXRecordDecl * RD) const
inline

Definition at line 252 of file PtrTypesSemantics.h.

◆ fieldWithNonTrivialDtor()

const FieldDecl * clang::TrivialFunctionAnalysis::fieldWithNonTrivialDtor ( const CXXRecordDecl * RD) const
inline

Definition at line 255 of file PtrTypesSemantics.h.

◆ hasTrivialDtor()

bool clang::TrivialFunctionAnalysis::hasTrivialDtor ( const VarDecl * VD) const
inline

Definition at line 249 of file PtrTypesSemantics.h.

◆ isTrivial() [1/2]

bool clang::TrivialFunctionAnalysis::isTrivial ( const Decl * D) const
inline
Returns
true if D is a "trivial" function.

Definition at line 247 of file PtrTypesSemantics.h.

◆ isTrivial() [2/2]

bool clang::TrivialFunctionAnalysis::isTrivial ( const Stmt * S) const
inline

Definition at line 248 of file PtrTypesSemantics.h.

◆ TrivialFunctionAnalysisVisitor

friend class TrivialFunctionAnalysisVisitor
friend

Definition at line 265 of file PtrTypesSemantics.h.

References TrivialFunctionAnalysisVisitor.

Referenced by computeReason(), and TrivialFunctionAnalysisVisitor.


The documentation for this class was generated from the following files: