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

Structure used to store a statement, the constant value to which it was evaluated (if any), and whether or not the statement is an integral constant expression (if known). More...

#include "clang/AST/Decl.h"

Public Member Functions

 EvaluatedStmt ()
 

Public Attributes

bool WasEvaluated: 1
 Whether this statement was already evaluated.
 
bool IsEvaluating: 1
 Whether this statement is being evaluated.
 
bool HasConstantInitialization: 1
 Whether this variable is known to have constant initialization.
 
bool HasConstantDestruction: 1
 Whether this variable is known to have constant destruction.
 
bool HasICEInit: 1
 In C++98, whether the initializer is an ICE.
 
bool CheckedForICEInit: 1
 
LazyDeclStmtPtr Value
 
APValue Evaluated
 

Detailed Description

Structure used to store a statement, the constant value to which it was evaluated (if any), and whether or not the statement is an integral constant expression (if known).

Definition at line 847 of file Decl.h.

Constructor & Destructor Documentation

◆ EvaluatedStmt()

clang::EvaluatedStmt::EvaluatedStmt ( )
inline

Definition at line 875 of file Decl.h.

Member Data Documentation

◆ CheckedForICEInit

bool clang::EvaluatedStmt::CheckedForICEInit

Definition at line 870 of file Decl.h.

Referenced by clang::VarDecl::hasICEInitializer().

◆ Evaluated

APValue clang::EvaluatedStmt::Evaluated

◆ HasConstantDestruction

bool clang::EvaluatedStmt::HasConstantDestruction

Whether this variable is known to have constant destruction.

That is, whether running the destructor on the initial value is a side-effect (and doesn't inspect any state that might have changed during program execution). This is currently only computed if the destructor is non-trivial.

Definition at line 865 of file Decl.h.

Referenced by clang::ASTNodeImporter::ImportInitializer(), clang::VarDecl::needsDestruction(), and clang::ASTDeclReader::ReadVarDeclInit().

◆ HasConstantInitialization

bool clang::EvaluatedStmt::HasConstantInitialization

Whether this variable is known to have constant initialization.

This is currently only computed in C++, for static / thread storage duration variables that might have constant initialization and for variables that are usable in constant expressions.

Definition at line 858 of file Decl.h.

Referenced by clang::VarDecl::checkForConstantInitialization(), clang::VarDecl::hasConstantInitialization(), clang::ASTNodeImporter::ImportInitializer(), and clang::ASTDeclReader::ReadVarDeclInit().

◆ HasICEInit

bool clang::EvaluatedStmt::HasICEInit

In C++98, whether the initializer is an ICE.

This affects whether the variable is usable in constant expressions.

Definition at line 869 of file Decl.h.

Referenced by clang::VarDecl::hasICEInitializer().

◆ IsEvaluating

bool clang::EvaluatedStmt::IsEvaluating

Whether this statement is being evaluated.

Definition at line 852 of file Decl.h.

◆ Value

LazyDeclStmtPtr clang::EvaluatedStmt::Value

◆ WasEvaluated

bool clang::EvaluatedStmt::WasEvaluated

Whether this statement was already evaluated.

Definition at line 849 of file Decl.h.

Referenced by clang::VarDecl::checkForConstantInitialization(), clang::VarDecl::getEvaluatedValue(), and clang::ASTDeclReader::ReadVarDeclInit().


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