clang 20.0.0git
|
#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/Attr.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 "clang/Basic/TargetInfo.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/Format.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
Go to the source code of this file.
|
static |
Definition at line 1609 of file DeclCXX.cpp.
References D, clang::declaresSameEntity(), clang::DeclContextLookupResult::front(), and clang::Decl::isInvalidDecl().
Referenced by getLambdaCallOperatorHelper().
|
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 1828 of file DeclCXX.cpp.
References clang::ASTUnresolvedSet::addDecl(), clang::ASTUnresolvedSet::append(), clang::UnresolvedSetImpl::begin(), CollectVisibleConversions(), E, clang::UnresolvedSetImpl::end(), GetConversionType(), and clang::UnresolvedSetIterator::getDecl().
|
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 1765 of file DeclCXX.cpp.
References clang::ASTUnresolvedSet::addDecl(), clang::UnresolvedSetImpl::addDecl(), CollectVisibleConversions(), GetConversionType(), and clang::CXXRecordDecl::MergeAccess().
Referenced by CollectVisibleConversions(), and clang::CXXRecordDecl::getVisibleConversionFunctions().
|
static |
Definition at line 3563 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 1746 of file DeclCXX.cpp.
References clang::Decl::getAsFunction(), clang::ASTContext::getCanonicalType(), clang::NamedDecl::getUnderlyingDecl(), and clang::T.
Referenced by CollectVisibleConversions().
|
static |
Definition at line 1659 of file DeclCXX.cpp.
Referenced by clang::CXXRecordDecl::getLambdaStaticInvoker().
|
static |
Definition at line 1616 of file DeclCXX.cpp.
References allLookupResultsAreTheSame(), clang::ASTContext::DeclarationNames, clang::DeclContextLookupResult::empty(), clang::DeclContextLookupResult::front(), clang::Decl::getASTContext(), clang::DeclarationNameTable::getCXXOperatorName(), clang::CXXRecordDecl::isLambda(), and clang::DeclContext::lookup().
Referenced by clang::CXXRecordDecl::getDependentLambdaCallOperator(), and clang::CXXRecordDecl::getLambdaCallOperator().
|
static |
Definition at line 1652 of file DeclCXX.cpp.
References clang::IdentifierTable::get(), clang::Decl::getASTContext(), clang::getLambdaStaticInvokerName(), clang::ASTContext::Idents, clang::CXXRecordDecl::isLambda(), and clang::DeclContext::lookup().
Referenced by clang::CXXRecordDecl::getLambdaStaticInvoker().
|
static |
Definition at line 2578 of file DeclCXX.cpp.
References clang::C, and clang::FunctionProtoType::getMethodQuals().
Referenced by clang::CXXMethodDecl::getFunctionObjectParameterReferenceType(), and clang::CXXMethodDecl::getThisType().
|
static |
Definition at line 2098 of file DeclCXX.cpp.
References clang::CXXRecordDecl::getFinalOverriders(), and hasPureVirtualFinalOverrider().
Referenced by clang::CXXRecordDecl::completeDefinition(), and hasPureVirtualFinalOverrider().
|
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 176 of file DeclCXX.cpp.
References clang::CXXRecordDecl::bases(), clang::TypeDecl::getTypeForDecl(), and clang::Type::isDependentType().
Referenced by clang::CXXRecordDecl::setBases().
|
static |
Definition at line 2034 of file DeclCXX.cpp.
References clang::DeclContext::getParent(), clang::DeclContext::isNamespace(), and clang::DeclContext::isTranslationUnit().
Referenced by clang::CXXRecordDecl::isInterfaceLike().
|
static |
Determine if T is a valid 'struct _GUID' of the shape that we expect.
Definition at line 3461 of file DeclCXX.cpp.
References bool, clang::RecordDecl::fields(), clang::ASTContext::getAsConstantArrayType(), clang::Type::getAsRecordDecl(), clang::RecordDecl::getDefinition(), clang::ArrayType::getElementType(), clang::ASTContext::getIntWidth(), clang::ConstantArrayType::getSize(), clang::TagDecl::isUnion(), clang::Type::isUnsignedIntegerOrEnumerationType(), and clang::T.
Referenced by clang::MSGuidDecl::getAsAPValue().
|
static |
Definition at line 2234 of file DeclCXX.cpp.
References clang::CXXMethodDecl::getCanonicalDecl(), clang::CXXMethodDecl::overridden_methods(), and recursivelyOverrides().
Referenced by clang::CXXMethodDecl::getCorrespondingMethodDeclaredInClass(), clang::CXXMethodDecl::getCorrespondingMethodInClass(), and recursivelyOverrides().