clang 17.0.0git
|
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 |
Stmt * | Value |
APValue | Evaluated |
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).
bool clang::EvaluatedStmt::CheckedForICEInit |
Definition at line 901 of file Decl.h.
Referenced by clang::VarDecl::hasICEInitializer().
APValue clang::EvaluatedStmt::Evaluated |
Definition at line 904 of file Decl.h.
Referenced by clang::VarDecl::getEvaluatedValue().
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 896 of file Decl.h.
Referenced by clang::ASTNodeImporter::ImportInitializer(), clang::VarDecl::needsDestruction(), clang::ASTDeclReader::UpdateDecl(), and clang::ASTDeclReader::VisitVarDeclImpl().
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 889 of file Decl.h.
Referenced by clang::VarDecl::checkForConstantInitialization(), clang::VarDecl::hasConstantInitialization(), clang::ASTNodeImporter::ImportInitializer(), clang::ASTDeclReader::UpdateDecl(), and clang::ASTDeclReader::VisitVarDeclImpl().
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 900 of file Decl.h.
Referenced by clang::VarDecl::hasICEInitializer().
bool clang::EvaluatedStmt::IsEvaluating |
Stmt* clang::EvaluatedStmt::Value |
Definition at line 903 of file Decl.h.
Referenced by clang::VarDecl::checkForConstantInitialization(), clang::VarDecl::ensureEvaluatedStmt(), clang::VarDecl::getInit(), and VariableCanNeverBeAConstantExpression().
bool clang::EvaluatedStmt::WasEvaluated |
Whether this statement was already evaluated.
Definition at line 880 of file Decl.h.
Referenced by clang::VarDecl::checkForConstantInitialization(), and clang::VarDecl::getEvaluatedValue().