15 #ifndef LLVM_CLANG_LIB_AST_CXXABI_H
16 #define LLVM_CLANG_LIB_AST_CXXABI_H
23 class CXXConstructorDecl;
26 class MemberPointerType;
27 class MangleNumberingContext;
35 virtual std::pair<uint64_t, unsigned>
57 unsigned ParmIdx,
Expr *DAE) = 0;
60 unsigned ParmIdx) = 0;
CXXABI * CreateMicrosoftCXXABI(ASTContext &Ctx)
C Language Family Type Representation.
virtual void addTypedefNameForUnnamedTagDecl(TagDecl *TD, TypedefNameDecl *DD)=0
Represents a C++ constructor within a class.
virtual const CXXConstructorDecl * getCopyConstructorForExceptionObject(CXXRecordDecl *)=0
Retrieves the mapping from class to copy constructor for this C++ ABI.
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Keeps track of the mangled names of lambda expressions and block literals within a particular context...
virtual CallingConv getDefaultMethodCallConv(bool isVariadic) const =0
Returns the default calling convention for C++ methods.
CXXABI * CreateItaniumCXXABI(ASTContext &Ctx)
Creates an instance of a C++ ABI class.
virtual DeclaratorDecl * getDeclaratorForUnnamedTagDecl(const TagDecl *TD)=0
Represents a ValueDecl that came out of a declarator.
Expr - This represents one expression.
Implements C++ ABI-specific semantic analysis functions.
CallingConv
CallingConv - Specifies the calling convention that a function uses.
TagDecl - Represents the declaration of a struct/union/class/enum.
virtual bool isNearlyEmpty(const CXXRecordDecl *RD) const =0
Returns whether the given class is nearly empty, with just virtual pointers and no data except possib...
Base class for declarations which introduce a typedef-name.
virtual TypedefNameDecl * getTypedefNameForUnnamedTagDecl(const TagDecl *TD)=0
virtual void addDefaultArgExprForConstructor(const CXXConstructorDecl *CD, unsigned ParmIdx, Expr *DAE)=0
virtual Expr * getDefaultArgExprForConstructor(const CXXConstructorDecl *CD, unsigned ParmIdx)=0
A pointer to member type per C++ 8.3.3 - Pointers to members.
virtual void addDeclaratorForUnnamedTagDecl(TagDecl *TD, DeclaratorDecl *DD)=0
virtual void addCopyConstructorForExceptionObject(CXXRecordDecl *, CXXConstructorDecl *)=0
Adds a mapping from class to copy constructor for this C++ ABI.
Represents a C++ struct/union/class.
virtual std::pair< uint64_t, unsigned > getMemberPointerWidthAndAlign(const MemberPointerType *MPT) const =0
Returns the width and alignment of a member pointer in bits.
virtual MangleNumberingContext * createMangleNumberingContext() const =0
Returns a new mangling number context for this C++ ABI.