clang  6.0.0svn
Functions
DeclCXX.cpp File Reference
#include "clang/AST/DeclCXX.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/ASTLambda.h"
#include "clang/AST/ASTMutationListener.h"
#include "clang/AST/CXXInheritance.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ODRHash.h"
#include "clang/AST/TypeLoc.h"
#include "clang/Basic/IdentifierTable.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
Include dependency graph for DeclCXX.cpp:

Go to the source code of this file.

Functions

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 const char * getAccessName (AccessSpecifier AS)
 

Function Documentation

◆ CollectVisibleConversions() [1/2]

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 
)
static

Collect the visible conversions of a base class.

Parameters
Recorda base class of the class we're considering
InVirtualwhether this base class is a virtual base (or a base of a virtual base)
Accessthe access along the inheritance path to this base
ParentHiddenTypesthe conversions provided by the inheritors of this base
Outputthe set to which to add conversions from non-virtual bases
VOutputthe set to which to add conversions from virtual bases
HiddenVBaseCsthe set of conversions which were hidden in a virtual base along some inheritance path

Definition at line 1184 of file DeclCXX.cpp.

Referenced by clang::CXXRecordDecl::getVisibleConversionFunctions().

◆ CollectVisibleConversions() [2/2]

static void CollectVisibleConversions ( ASTContext Context,
CXXRecordDecl Record,
ASTUnresolvedSet Output 
)
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 1249 of file DeclCXX.cpp.

◆ getAccessName()

static const char* getAccessName ( AccessSpecifier  AS)
static

Definition at line 2639 of file DeclCXX.cpp.

References clang::AS_none, clang::AS_private, clang::AS_protected, and clang::AS_public.

Referenced by clang::operator<<().

◆ GetConversionType()

static CanQualType GetConversionType ( ASTContext Context,
NamedDecl Conv 
)
static

Definition at line 1165 of file DeclCXX.cpp.

◆ isDeclContextInNamespace()

static bool isDeclContextInNamespace ( const DeclContext DC)
static

◆ recursivelyOverrides()

static bool recursivelyOverrides ( const CXXMethodDecl DerivedMD,
const CXXMethodDecl BaseMD 
)
static

Definition at line 1622 of file DeclCXX.cpp.

Referenced by clang::CXXMethodDecl::getCorrespondingMethodInClass().