clang 20.0.0git
Classes | Namespaces | Macros | Typedefs | Enumerations
Expr.h File Reference
#include "clang/AST/APNumericStorage.h"
#include "clang/AST/APValue.h"
#include "clang/AST/ASTVector.h"
#include "clang/AST/ComputeDependence.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclAccessPair.h"
#include "clang/AST/DependenceFlags.h"
#include "clang/AST/OperationKinds.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/Type.h"
#include "clang/Basic/CharInfo.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/SyncScope.h"
#include "clang/Basic/TypeTraits.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/iterator.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Support/AtomicOrdering.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/TrailingObjects.h"
#include <optional>
#include "clang/Basic/Builtins.inc"

Go to the source code of this file.

Classes

struct  clang::SubobjectAdjustment
 An adjustment to be made to the temporary created when emitting a reference binding, which accesses a particular subobject of that temporary. More...
 
struct  clang::SubobjectAdjustment::DTB
 
struct  clang::SubobjectAdjustment::P
 
class  clang::Expr
 This represents one expression. More...
 
class  clang::Expr::Classification
 The return type of classify(). More...
 
struct  clang::Expr::EvalStatus
 EvalStatus is a struct with detailed info about an evaluation in progress. More...
 
struct  clang::Expr::EvalResult
 EvalResult is a struct with detailed info about an evaluated expression. More...
 
class  clang::FullExpr
 FullExpr - Represents a "full-expression" node. More...
 
class  clang::ConstantExpr
 ConstantExpr - An expression that occurs in a constant context and optionally the result of evaluating the expression. More...
 
class  clang::OpaqueValueExpr
 OpaqueValueExpr - An expression referring to an opaque object of a fixed type and value class. More...
 
class  clang::DeclRefExpr
 A reference to a declared variable, function, enum, etc. More...
 
class  clang::IntegerLiteral
 
class  clang::FixedPointLiteral
 
class  clang::CharacterLiteral
 
class  clang::FloatingLiteral
 
class  clang::ImaginaryLiteral
 ImaginaryLiteral - We support imaginary integer and floating point literals, like "1.0i". More...
 
class  clang::StringLiteral
 StringLiteral - This represents a string literal expression, e.g. More...
 
class  clang::PredefinedExpr
 [C99 6.4.2.2] - A predefined identifier such as func. More...
 
class  clang::SYCLUniqueStableNameExpr
 
class  clang::ParenExpr
 ParenExpr - This represents a parenthesized expression, e.g. More...
 
class  clang::UnaryOperator
 UnaryOperator - This represents the unary-expression's (except sizeof and alignof), the postinc/postdec operators from postfix-expression, and various extensions. More...
 
class  clang::OffsetOfNode
 Helper class for OffsetOfExpr. More...
 
class  clang::OffsetOfExpr
 OffsetOfExpr - [C99 7.17] - This represents an expression of the form offsetof(record-type, member-designator). More...
 
class  clang::UnaryExprOrTypeTraitExpr
 UnaryExprOrTypeTraitExpr - expression with either a type or (unevaluated) expression operand. More...
 
class  clang::ArraySubscriptExpr
 ArraySubscriptExpr - [C99 6.5.2.1] Array Subscripting. More...
 
class  clang::MatrixSubscriptExpr
 MatrixSubscriptExpr - Matrix subscript expression for the MatrixType extension. More...
 
class  clang::CallExpr
 CallExpr - Represents a function call (C99 6.5.2.2, C++ [expr.call]). More...
 
class  clang::MemberExpr
 MemberExpr - [C99 6.5.2.3] Structure and Union Members. More...
 
class  clang::CompoundLiteralExpr
 CompoundLiteralExpr - [C99 6.5.2.5]. More...
 
class  clang::CastExpr
 CastExpr - Base class for type casts, including both implicit casts (ImplicitCastExpr) and explicit casts that have some representation in the source code (ExplicitCastExpr's derived classes). More...
 
class  clang::ImplicitCastExpr
 ImplicitCastExpr - Allows us to explicitly represent implicit type conversions, which have no direct representation in the original source code. More...
 
class  clang::ExplicitCastExpr
 ExplicitCastExpr - An explicit cast written in the source code. More...
 
class  clang::CStyleCastExpr
 CStyleCastExpr - An explicit cast in C (C99 6.5.4) or a C-style cast in C++ (C++ [expr.cast]), which uses the syntax (Type)expr. More...
 
class  clang::BinaryOperator
 A builtin binary operation expression such as "x + y" or "x <= y". More...
 
class  clang::CompoundAssignOperator
 CompoundAssignOperator - For compound assignments (e.g. More...
 
class  clang::AbstractConditionalOperator
 AbstractConditionalOperator - An abstract base class for ConditionalOperator and BinaryConditionalOperator. More...
 
class  clang::ConditionalOperator
 ConditionalOperator - The ?: ternary operator. More...
 
class  clang::BinaryConditionalOperator
 BinaryConditionalOperator - The GNU extension to the conditional operator which allows the middle operand to be omitted. More...
 
class  clang::AddrLabelExpr
 AddrLabelExpr - The GNU address of label extension, representing &&label. More...
 
class  clang::StmtExpr
 StmtExpr - This is the GNU Statement Expression extension: ({int X=4; X;}). More...
 
class  clang::ShuffleVectorExpr
 ShuffleVectorExpr - clang-specific builtin-in function __builtin_shufflevector. More...
 
class  clang::ConvertVectorExpr
 ConvertVectorExpr - Clang builtin function __builtin_convertvector This AST node provides support for converting a vector type to another vector type of the same arity. More...
 
class  clang::ChooseExpr
 ChooseExpr - GNU builtin-in function __builtin_choose_expr. More...
 
class  clang::GNUNullExpr
 GNUNullExpr - Implements the GNU __null extension, which is a name for a null pointer constant that has integral type (e.g., int or long) and is the same size and alignment as a pointer. More...
 
class  clang::VAArgExpr
 Represents a call to the builtin function __builtin_va_arg. More...
 
class  clang::SourceLocExpr
 Represents a function call to one of __builtin_LINE(), __builtin_COLUMN(), __builtin_FUNCTION(), __builtin_FUNCSIG(), __builtin_FILE(), __builtin_FILE_NAME() or __builtin_source_location(). More...
 
struct  clang::EmbedDataStorage
 Stores data related to a single #embed directive. More...
 
class  clang::EmbedExpr
 Represents a reference to #emded data. More...
 
class  clang::EmbedExpr::ChildElementIter< Const >
 
class  clang::InitListExpr
 Describes an C or C++ initializer list. More...
 
class  clang::DesignatedInitExpr
 Represents a C99 designated initializer expression. More...
 
class  clang::DesignatedInitExpr::Designator
 Represents a single C99 designator. More...
 
class  clang::NoInitExpr
 Represents a place-holder for an object not to be initialized by anything. More...
 
class  clang::DesignatedInitUpdateExpr
 
class  clang::ArrayInitLoopExpr
 Represents a loop initializing the elements of an array. More...
 
class  clang::ArrayInitIndexExpr
 Represents the index of the current element of an array being initialized by an ArrayInitLoopExpr. More...
 
class  clang::ImplicitValueInitExpr
 Represents an implicitly-generated value initialization of an object of a given type. More...
 
class  clang::ParenListExpr
 
class  clang::GenericSelectionExpr
 Represents a C11 generic selection. More...
 
class  clang::ExtVectorElementExpr
 ExtVectorElementExpr - This represents access to specific elements of a vector, and may occur on the left hand side or right hand side. More...
 
class  clang::BlockExpr
 BlockExpr - Adaptor class for mixing a BlockDecl with expressions. More...
 
struct  clang::BlockVarCopyInit
 Copy initialization expr of a __block variable and a boolean flag that indicates whether the expression can throw. More...
 
class  clang::AsTypeExpr
 AsTypeExpr - Clang builtin function __builtin_astype [OpenCL 6.2.4.2] This AST node provides support for reinterpreting a type to another type of the same size. More...
 
class  clang::PseudoObjectExpr
 PseudoObjectExpr - An expression which accesses a pseudo-object l-value. More...
 
class  clang::AtomicExpr
 AtomicExpr - Variadic atomic builtins: __atomic_exchange, __atomic_fetch_*, __atomic_load, __atomic_store, and __atomic_compare_exchange_*, for the similarly-named C++11 instructions, and __c11 variants for <stdatomic.h>, and corresponding __opencl_atomic_* for OpenCL 2.0. More...
 
class  clang::TypoExpr
 TypoExpr - Internal placeholder for expressions where typo correction still needs to be performed and/or an error diagnostic emitted. More...
 
class  clang::ArraySectionExpr
 This class represents BOTH the OpenMP Array Section and OpenACC 'subarray', with a boolean differentiator. More...
 
class  clang::RecoveryExpr
 Frontend produces RecoveryExprs on semantic errors that prevent creating other well-formed expressions. More...
 

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 

Macros

#define BUILTIN(ID, TYPE, ATTRS)
 
#define ATOMIC_BUILTIN(ID, TYPE, ATTRS)   AO ## ID,
 
#define BUILTIN(ID, TYPE, ATTRS)
 
#define ATOMIC_BUILTIN(ID, TYPE, ATTRS)
 

Typedefs

using clang::ConstantExprKind = Expr::ConstantExprKind
 

Enumerations

enum class  clang::ConstantResultStorageKind { clang::None , clang::Int64 , clang::APValue }
 Describes the kind of result that can be tail-allocated. More...
 
enum class  clang::CharacterLiteralKind {
  clang::Ascii , clang::Wide , clang::UTF8 , clang::UTF16 ,
  clang::UTF32
}
 
enum class  clang::StringLiteralKind {
  clang::Ordinary , clang::Wide , clang::UTF8 , clang::UTF16 ,
  clang::UTF32 , clang::Unevaluated
}
 
enum class  clang::PredefinedIdentKind {
  clang::Func , clang::Function , clang::LFunction , clang::FuncDName ,
  clang::FuncSig , clang::LFuncSig , clang::PrettyFunction , clang::PrettyFunctionNoVirtual
}
 
enum class  clang::SourceLocIdentKind {
  clang::Function , clang::FuncSig , clang::File , clang::FileName ,
  clang::Line , clang::Column , clang::SourceLocStruct
}
 

Macro Definition Documentation

◆ ATOMIC_BUILTIN [1/2]

#define ATOMIC_BUILTIN (   ID,
  TYPE,
  ATTRS 
)    AO ## ID,

Definition at line 6633 of file Expr.h.

◆ ATOMIC_BUILTIN [2/2]

#define ATOMIC_BUILTIN (   ID,
  TYPE,
  ATTRS 
)
Value:
case AO##ID: \
return #ID;
static char ID
Definition: Arena.cpp:183

Definition at line 6633 of file Expr.h.

◆ BUILTIN [1/2]

#define BUILTIN (   ID,
  TYPE,
  ATTRS 
)

Definition at line 6632 of file Expr.h.

◆ BUILTIN [2/2]

#define BUILTIN (   ID,
  TYPE,
  ATTRS 
)

Definition at line 6632 of file Expr.h.