clang API Documentation

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/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 bool SawBase (const CXXRecordDecl *, void *)
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)
static void CollectVisibleConversions (ASTContext &Context, CXXRecordDecl *Record, ASTUnresolvedSet &Output)
static bool recursivelyOverrides (const CXXMethodDecl *DerivedMD, const CXXMethodDecl *BaseMD)
static const char * getAccessName (AccessSpecifier AS)

Function Documentation

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 1068 of file DeclCXX.cpp.

References clang::ASTUnresolvedSet::addDecl(), clang::UnresolvedSetImpl::addDecl(), clang::CXXRecordDecl::bases(), clang::CXXRecordDecl::conversion_begin(), clang::CXXRecordDecl::conversion_end(), clang::Type::getAs(), GetConversionType(), clang::RecordType::getDecl(), and clang::CXXRecordDecl::MergeAccess().

Referenced by CollectVisibleConversions(), and clang::CXXRecordDecl::getVisibleConversionFunctions().

static void CollectVisibleConversions ( ASTContext Context,
CXXRecordDecl Record,
ASTUnresolvedSet Output 
) [static]
static const char* getAccessName ( AccessSpecifier  AS) [static]

Definition at line 2185 of file DeclCXX.cpp.

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

Referenced by clang::operator<<().

static CanQualType GetConversionType ( ASTContext Context,
NamedDecl Conv 
) [static]
static bool recursivelyOverrides ( const CXXMethodDecl DerivedMD,
const CXXMethodDecl BaseMD 
) [static]
static bool SawBase ( const CXXRecordDecl ,
void *   
) [static]

Callback function for CXXRecordDecl::forallBases that acknowledges that it saw a base class.

Definition at line 390 of file DeclCXX.cpp.

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