clang 24.0.0git
ExprCXX.h File Reference

Defines the clang::Expr interface and subclasses for C++ expressions. More...

#include "clang/AST/ASTConcept.h"
#include "clang/AST/ComputeDependence.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/DependenceFlags.h"
#include "clang/AST/Expr.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/OperationKinds.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtCXX.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/Type.h"
#include "clang/AST/UnresolvedSet.h"
#include "clang/Basic/ExceptionSpecificationType.h"
#include "clang/Basic/ExpressionTraits.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/Lambda.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/OperatorKinds.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/TemplateKinds.h"
#include "clang/Basic/TypeTraits.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/TrailingObjects.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <memory>
#include <optional>
#include <variant>

Go to the source code of this file.

Classes

class  clang::CXXOperatorCallExpr
 A call to an overloaded operator written using operator syntax. More...
class  clang::CXXMemberCallExpr
 Represents a call to a member function that may be written either with member call syntax (e.g., "obj.func()" or "objptr->func()") or with normal function-call syntax ("func()") within a member function that ends up calling a member function. More...
class  clang::CUDAKernelCallExpr
 Represents a call to a CUDA kernel function. More...
class  clang::CXXRewrittenBinaryOperator
 A rewritten comparison expression that was originally written using operator syntax. More...
struct  clang::CXXRewrittenBinaryOperator::DecomposedForm
class  clang::CXXNamedCastExpr
 Abstract class common to all of the C++ "named"/"keyword" casts. More...
class  clang::CXXStaticCastExpr
 A C++ static_cast expression (C++ [expr.static.cast]). More...
class  clang::CXXDynamicCastExpr
 A C++ dynamic_cast expression (C++ [expr.dynamic.cast]). More...
class  clang::CXXReinterpretCastExpr
 A C++ reinterpret_cast expression (C++ [expr.reinterpret.cast]). More...
class  clang::CXXConstCastExpr
 A C++ const_cast expression (C++ [expr.const.cast]). More...
class  clang::CXXAddrspaceCastExpr
 A C++ addrspace_cast expression (currently only enabled for OpenCL). More...
class  clang::UserDefinedLiteral
 A call to a literal operator (C++11 [over.literal]) written as a user-defined literal (C++11 [lit.ext]). More...
class  clang::CXXBoolLiteralExpr
 A boolean literal, per ([C++ lex.bool] Boolean literals). More...
class  clang::CXXNullPtrLiteralExpr
 The null pointer literal (C++11 [lex.nullptr]) More...
class  clang::CXXStdInitializerListExpr
 Implicit construction of a std::initializer_list<T> object from an array temporary within list-initialization (C++11 [dcl.init.list]p5). More...
class  clang::CXXTypeidExpr
 A C++ typeid expression (C++ [expr.typeid]), which gets the type_info that corresponds to the supplied type, or the (possibly dynamic) type of the supplied expression. More...
class  clang::MSPropertyRefExpr
 A member reference to an MSPropertyDecl. More...
class  clang::MSPropertySubscriptExpr
 MS property subscript expression. More...
class  clang::CXXUuidofExpr
 A Microsoft C++ __uuidof expression, which gets the _GUID that corresponds to the supplied type or expression. More...
class  clang::CXXThisExpr
 Represents the this expression in C++. More...
class  clang::CXXThrowExpr
 A C++ throw-expression (C++ [except.throw]). More...
class  clang::CXXDefaultArgExpr
 A default argument (C++ [dcl.fct.default]). More...
class  clang::CXXDefaultInitExpr
 A use of a default initializer in a constructor or in aggregate initialization. More...
class  clang::CXXTemporary
 Represents a C++ temporary. More...
class  clang::CXXBindTemporaryExpr
 Represents binding an expression to a temporary. More...
class  clang::CXXConstructExpr
 Represents a call to a C++ constructor. More...
class  clang::CXXInheritedCtorInitExpr
 Represents a call to an inherited base class constructor from an inheriting constructor. More...
class  clang::CXXFunctionalCastExpr
 Represents an explicit C++ type conversion that uses "functional" notation (C++ [expr.type.conv]). More...
class  clang::CXXTemporaryObjectExpr
 Represents a C++ functional cast expression that builds a temporary object. More...
class  clang::LambdaExpr
 A C++ lambda expression, which produces a function object (of unspecified type) that can be invoked later. More...
class  clang::CXXScalarValueInitExpr
 An expression "T()" which creates an rvalue of a non-class type T. More...
struct  clang::ImplicitAllocationParameters
struct  clang::ImplicitDeallocationParameters
struct  clang::UsualDeleteParams
 The parameters to pass to a usual operator delete. More...
class  clang::CXXNewExpr
 Represents a new-expression for memory allocation and constructor calls, e.g: "new CXXNewExpr(foo)". More...
class  clang::CXXDeleteExpr
 Represents a delete expression for memory deallocation and destructor calls, e.g. More...
class  clang::PseudoDestructorTypeStorage
 Stores the type being destroyed by a pseudo-destructor expression. More...
class  clang::CXXPseudoDestructorExpr
 Represents a C++ pseudo-destructor (C++ [expr.pseudo]). More...
class  clang::TypeTraitExpr
 A type trait used in the implementation of various C++11 and Library TR1 trait templates. More...
class  clang::ArrayTypeTraitExpr
 An Embarcadero array type trait, as used in the implementation of __array_rank and __array_extent. More...
class  clang::ExpressionTraitExpr
 An expression trait intrinsic. More...
class  clang::OverloadExpr
 A reference to an overloaded function set, either an UnresolvedLookupExpr or an UnresolvedMemberExpr. More...
struct  clang::OverloadExpr::FindResult
class  clang::UnresolvedLookupExpr
 A reference to a name which we were able to look up during parsing but could not resolve to a specific declaration. More...
class  clang::DependentScopeDeclRefExpr
 A qualified reference to a name whose declaration cannot yet be resolved. More...
class  clang::ExprWithCleanups
 Represents an expression – generally a full-expression – that introduces cleanups to be run at the end of the sub-expression's evaluation. More...
class  clang::CXXUnresolvedConstructExpr
 Describes an explicit type conversion that uses functional notion but could not be resolved because one or more arguments are type-dependent. More...
class  clang::CXXDependentScopeMemberExpr
 Represents a C++ member access expression where the actual member referenced could not be resolved because the base expression or the member name was dependent. More...
class  clang::UnresolvedMemberExpr
 Represents a C++ member access expression for which lookup produced a set of overloaded functions. More...
class  clang::CXXNoexceptExpr
 Represents a C++11 noexcept expression (C++ [expr.unary.noexcept]). More...
class  clang::PackExpansionExpr
 Represents a C++11 pack expansion that produces a sequence of expressions. More...
class  clang::SizeOfPackExpr
 Represents an expression that computes the length of a parameter pack. More...
class  clang::PackIndexingExpr
class  clang::SubstNonTypeTemplateParmExpr
 Represents a reference to a non-type template parameter that has been substituted with a template argument. More...
class  clang::SubstNonTypeTemplateParmPackExpr
 Represents a reference to a non-type template parameter pack that has been substituted with a non-template argument pack. More...
class  clang::FunctionParmPackExpr
 Represents a reference to a function parameter pack, init-capture pack, or binding pack that has been substituted but not yet expanded. More...
class  clang::MaterializeTemporaryExpr
 Represents a prvalue temporary that is written into memory so that a reference can bind to it. More...
class  clang::CXXFoldExpr
 Represents a folding of a pack over an operator. More...
class  clang::CXXParenListInitExpr
 Represents a list-initialization with parenthesis. More...
class  clang::CoroutineSuspendExpr
 Represents an expression that might suspend coroutine execution; either a co_await or co_yield expression. More...
class  clang::CoawaitExpr
 Represents a 'co_await' expression. More...
class  clang::DependentCoawaitExpr
 Represents a 'co_await' expression while the type of the promise is dependent. More...
class  clang::CoyieldExpr
 Represents a 'co_yield' expression. More...
class  clang::BuiltinBitCastExpr
 Represents a C++2a __builtin_bit_cast(T, v) expression. More...
class  clang::CXXReflectExpr
 Represents a C++26 reflect expression [expr.reflect]. More...
class  clang::CXXExpansionSelectExpr
 Helper that selects an expression from an InitListExpr depending on the current expansion index. More...

Namespaces

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

Enumerations

enum class  clang::CXXConstructionKind { clang::Complete , clang::NonVirtualBase , clang::VirtualBase , clang::Delegating }
enum class  clang::CXXNewInitializationStyle { clang::None , clang::Parens , clang::Braces }
enum class  clang::TypeAwareAllocationMode : unsigned { clang::No , clang::Yes }
enum class  clang::AlignedAllocationMode : unsigned { clang::No , clang::Yes }
enum class  clang::SizedDeallocationMode : unsigned { clang::No , clang::Yes }

Functions

bool clang::isTypeAwareAllocation (TypeAwareAllocationMode Mode)
TypeAwareAllocationMode clang::typeAwareAllocationModeFromBool (bool IsTypeAwareAllocation)
bool clang::isAlignedAllocation (AlignedAllocationMode Mode)
AlignedAllocationMode clang::alignedAllocationModeFromBool (bool IsAligned)
bool clang::isSizedDeallocation (SizedDeallocationMode Mode)
SizedDeallocationMode clang::sizedDeallocationModeFromBool (bool IsSized)

Detailed Description

Defines the clang::Expr interface and subclasses for C++ expressions.

Definition in file ExprCXX.h.