13#ifndef LLVM_CLANG_AST_BASESUBOBJECT_H
14#define LLVM_CLANG_AST_BASESUBOBJECT_H
18#include "llvm/ADT/DenseMapInfo.h"
19#include "llvm/Support/type_traits.h"
40 :
Base(
Base), BaseOffset(BaseOffset) {}
49 return LHS.Base == RHS.Base && LHS.BaseOffset == RHS.BaseOffset;
57template<>
struct DenseMapInfo<
clang::BaseSubobject> {
60 DenseMapInfo<const clang::CXXRecordDecl *>::getEmptyKey(),
66 DenseMapInfo<const clang::CXXRecordDecl *>::getTombstoneKey(),
71 using PairTy = std::pair<const clang::CXXRecordDecl *, clang::CharUnits>;
73 return DenseMapInfo<PairTy>::getHashValue(PairTy(
Base.getBase(),
74 Base.getBaseOffset()));
Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate....
const CXXRecordDecl * getBase() const
getBase - Returns the base class declaration.
BaseSubobject(const CXXRecordDecl *Base, CharUnits BaseOffset)
CharUnits getBaseOffset() const
getBaseOffset - Returns the base class offset.
friend bool operator==(const BaseSubobject &LHS, const BaseSubobject &RHS)
Represents a C++ struct/union/class.
CharUnits - This is an opaque type for sizes expressed in character units.
static CharUnits fromQuantity(QuantityType Quantity)
fromQuantity - Construct a CharUnits quantity from a raw integer type.
The JSON file list parser is used to communicate input to InstallAPI.
Diagnostic wrappers for TextAPI types for error reporting.
static bool isEqual(const clang::BaseSubobject &LHS, const clang::BaseSubobject &RHS)
static clang::BaseSubobject getTombstoneKey()
static clang::BaseSubobject getEmptyKey()
static unsigned getHashValue(const clang::BaseSubobject &Base)