15#ifndef LLVM_CLANG_CODEGENUTILS_ITANIUMCXXABIUTILS_H
16#define LLVM_CLANG_CODEGENUTILS_ITANIUMCXXABIUTILS_H
Defines the clang::ASTContext interface.
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Represents a C++ struct/union/class.
This is an opaque type for sizes expressed in character units.
A (possibly-)qualified type.
The base class of the type hierarchy.
unsigned extractPBaseFlags(const ASTContext &Ctx, QualType &Type)
Compute the flags for a __pbase_type_info, and remove the corresponding pieces from Type.
VMIClassTypeInfoFlags
Flags for abi::__vmi_class_type_info.
@ VMI_NonDiamondRepeat
VMI_NonDiamondRepeat - Class has non-diamond repeated inheritance.
@ VMI_DiamondShaped
VMI_DiamondShaped - Class is diamond shaped.
bool containsIncompleteClassType(QualType Ty)
Returns whether the given type contains an incomplete class type.
bool canUseSingleInheritance(const CXXRecordDecl *RD)
Return whether the given record decl has a "single, public, non-virtual base at offset zero (i....
unsigned computeVMIClassTypeInfoFlags(const CXXRecordDecl *RD)
Compute the value of the flags member in abi::__vmi_class_type_info.
CharUnits computeOffsetHint(ASTContext &Ctx, const CXXRecordDecl *Src, const CXXRecordDecl *Dst)
Compute the src2dst_offset hint as described in the Itanium C++ ABI [2.9.7].
BaseClassTypeInfoFlags
Flags for abi::__base_class_type_info.
@ BCTI_Virtual
BCTI_Virtual - Base class is virtual.
@ BCTI_Public
BCTI_Public - Base class is public.
PointerTypeInfoFlags
Flags for abi::__pbase_type_info.
@ PTI_Restrict
PTI_Restrict - Type has restrict qualifier.
@ PTI_Const
PTI_Const - Type has const qualifier.
@ PTI_ContainingClassIncomplete
PTI_ContainingClassIncomplete - Containing class is incomplete.
@ PTI_Noexcept
PTI_TransactionSafe - Pointee is transaction_safe function (C++ TM TS).
@ PTI_Volatile
PTI_Volatile - Type has volatile qualifier.
@ PTI_Incomplete
PTI_Incomplete - Type is incomplete.