clang
9.0.0
|
#include "clang/AST/DeclCXX.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/ASTLambda.h"
#include "clang/AST/ASTMutationListener.h"
#include "clang/AST/ASTUnresolvedSet.h"
#include "clang/AST/CXXInheritance.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/LambdaCapture.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/ODRHash.h"
#include "clang/AST/Type.h"
#include "clang/AST/TypeLoc.h"
#include "clang/AST/UnresolvedSet.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/OperatorKinds.h"
#include "clang/Basic/PartialDiagnostic.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/Specifiers.h"
#include "llvm/ADT/None.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
Go to the source code of this file.
Functions | |
static bool | hasRepeatedBaseClass (const CXXRecordDecl *StartRD) |
Determine whether a class has a repeated base class. More... | |
static bool | allLookupResultsAreTheSame (const DeclContext::lookup_result &R) |
static CanQualType | GetConversionType (ASTContext &Context, NamedDecl *Conv) |
static void | CollectVisibleConversions (ASTContext &Context, CXXRecordDecl *Record, bool InVirtual, AccessSpecifier Access, const llvm::SmallPtrSet< CanQualType, 8 > &ParentHiddenTypes, ASTUnresolvedSet &Output, UnresolvedSetImpl &VOutput, llvm::SmallPtrSet< NamedDecl *, 8 > &HiddenVBaseCs) |
Collect the visible conversions of a base class. More... | |
static void | CollectVisibleConversions (ASTContext &Context, CXXRecordDecl *Record, ASTUnresolvedSet &Output) |
Collect the visible conversions of a class. More... | |
static bool | isDeclContextInNamespace (const DeclContext *DC) |
static bool | recursivelyOverrides (const CXXMethodDecl *DerivedMD, const CXXMethodDecl *BaseMD) |
static QualType | getThisObjectType (ASTContext &C, const FunctionProtoType *FPT, const CXXRecordDecl *Decl) |
static const char * | getAccessName (AccessSpecifier AS) |
|
static |
Definition at line 1377 of file DeclCXX.cpp.
References clang::declaresSameEntity().
|
static |
Collect the visible conversions of a base class.
Record | a base class of the class we're considering |
InVirtual | whether this base class is a virtual base (or a base of a virtual base) |
Access | the access along the inheritance path to this base |
ParentHiddenTypes | the conversions provided by the inheritors of this base |
Output | the set to which to add conversions from non-virtual bases |
VOutput | the set to which to add conversions from virtual bases |
HiddenVBaseCs | the set of conversions which were hidden in a virtual base along some inheritance path |
Definition at line 1484 of file DeclCXX.cpp.
Referenced by clang::CXXRecordDecl::getVisibleConversionFunctions().
|
static |
Collect the visible conversions of a class.
This would be extremely straightforward if it weren't for virtual bases. It might be worth special-casing that, really.
Definition at line 1549 of file DeclCXX.cpp.
|
static |
Definition at line 3041 of file DeclCXX.cpp.
References clang::AS_none, clang::AS_private, clang::AS_protected, and clang::AS_public.
Referenced by clang::operator<<().
|
static |
Definition at line 1465 of file DeclCXX.cpp.
|
static |
Definition at line 2256 of file DeclCXX.cpp.
References clang::FunctionProtoType::getMethodQuals(), clang::ASTContext::getQualifiedType(), and clang::ASTContext::getTypeDeclType().
Referenced by clang::CXXMethodDecl::getParent(), clang::CXXMethodDecl::getThisObjectType(), and clang::CXXMethodDecl::getThisType().
|
static |
Determine whether a class has a repeated base class.
This is intended for use when determining if a class is standard-layout, so makes no attempt to handle virtual bases.
Definition at line 167 of file DeclCXX.cpp.
References clang::CXXRecordDecl::bases().
Referenced by clang::CXXRecordDecl::setBases().
|
static |
Definition at line 1771 of file DeclCXX.cpp.
References clang::DeclContext::getParent(), clang::DeclContext::isNamespace(), and clang::DeclContext::isTranslationUnit().
Referenced by clang::CXXRecordDecl::isInterfaceLike().
|
static |
Definition at line 1948 of file DeclCXX.cpp.
References clang::CXXMethodDecl::getCanonicalDecl(), and clang::CXXMethodDecl::overridden_methods().
Referenced by clang::CXXMethodDecl::getCorrespondingMethodDeclaredInClass().