clang 20.0.0git
Public Member Functions | Public Attributes | List of all members
clang::ento::EvalCallOptions Struct Reference

Hints for figuring out of a call should be inlined during evalCall(). More...

#include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"

Public Member Functions

 EvalCallOptions ()
 

Public Attributes

bool IsCtorOrDtorWithImproperlyModeledTargetRegion = false
 This call is a constructor or a destructor for which we do not currently compute the this-region correctly.
 
bool IsArrayCtorOrDtor = false
 This call is a constructor or a destructor for a single element within an array, a part of array construction or destruction.
 
bool IsTemporaryCtorOrDtor = false
 This call is a constructor or a destructor of a temporary value.
 
bool IsTemporaryLifetimeExtendedViaAggregate = false
 This call is a constructor for a temporary that is lifetime-extended by binding it to a reference-type field within an aggregate, for example 'A { const C &c; }; A a = { C() };'.
 
bool IsElidableCtorThatHasNotBeenElided = false
 This call is a pre-C++17 elidable constructor that we failed to elide because we failed to compute the target region into which this constructor would have been ultimately elided.
 

Detailed Description

Hints for figuring out of a call should be inlined during evalCall().

Definition at line 97 of file ExprEngine.h.

Constructor & Destructor Documentation

◆ EvalCallOptions()

clang::ento::EvalCallOptions::EvalCallOptions ( )
inline

Definition at line 121 of file ExprEngine.h.

Member Data Documentation

◆ IsArrayCtorOrDtor

bool clang::ento::EvalCallOptions::IsArrayCtorOrDtor = false

This call is a constructor or a destructor for a single element within an array, a part of array construction or destruction.

Definition at line 104 of file ExprEngine.h.

Referenced by clang::ento::ExprEngine::computeObjectUnderConstruction(), clang::ento::ExprEngine::ProcessAutomaticObjDtor(), clang::ento::ExprEngine::ProcessDeleteDtor(), and clang::ento::ExprEngine::ProcessMemberDtor().

◆ IsCtorOrDtorWithImproperlyModeledTargetRegion

bool clang::ento::EvalCallOptions::IsCtorOrDtorWithImproperlyModeledTargetRegion = false

This call is a constructor or a destructor for which we do not currently compute the this-region correctly.

Definition at line 100 of file ExprEngine.h.

Referenced by clang::ento::ExprEngine::computeObjectUnderConstruction(), clang::ento::ExprEngine::updateObjectsUnderConstruction(), and clang::ento::ExprEngine::VisitCXXDestructor().

◆ IsElidableCtorThatHasNotBeenElided

bool clang::ento::EvalCallOptions::IsElidableCtorThatHasNotBeenElided = false

This call is a pre-C++17 elidable constructor that we failed to elide because we failed to compute the target region into which this constructor would have been ultimately elided.

Analysis that we perform in this case is still correct but it behaves differently, as if copy elision is disabled.

Definition at line 119 of file ExprEngine.h.

Referenced by clang::ento::ExprEngine::computeObjectUnderConstruction(), and clang::ento::ExprEngine::updateObjectsUnderConstruction().

◆ IsTemporaryCtorOrDtor

bool clang::ento::EvalCallOptions::IsTemporaryCtorOrDtor = false

This call is a constructor or a destructor of a temporary value.

Definition at line 107 of file ExprEngine.h.

Referenced by clang::ento::ExprEngine::computeObjectUnderConstruction(), and clang::ento::ExprEngine::ProcessTemporaryDtor().

◆ IsTemporaryLifetimeExtendedViaAggregate

bool clang::ento::EvalCallOptions::IsTemporaryLifetimeExtendedViaAggregate = false

This call is a constructor for a temporary that is lifetime-extended by binding it to a reference-type field within an aggregate, for example 'A { const C &c; }; A a = { C() };'.

Definition at line 112 of file ExprEngine.h.

Referenced by clang::ento::ExprEngine::computeObjectUnderConstruction().


The documentation for this struct was generated from the following file: