clang API Documentation
#include <Decl.h>
Public Types | |
enum | ExplicitVisibilityKind { VisibilityForType, VisibilityForValue } |
Kinds of explicit visibility. More... | |
Public Member Functions | |
IdentifierInfo * | getIdentifier () const |
StringRef | getName () const |
std::string | getNameAsString () const |
void | printName (raw_ostream &os) const |
DeclarationName | getDeclName () const |
void | setDeclName (DeclarationName N) |
Set the name of this declaration. | |
void | printQualifiedName (raw_ostream &OS) const |
void | printQualifiedName (raw_ostream &OS, const PrintingPolicy &Policy) const |
std::string | getQualifiedNameAsString () const |
virtual void | getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const |
bool | declarationReplaces (NamedDecl *OldD) const |
bool | hasLinkage () const |
Determine whether this declaration has linkage. | |
bool | isHidden () const |
Determine whether this declaration is hidden from name lookup. | |
void | setHidden (bool Hide) |
Set whether this declaration is hidden from name lookup. | |
bool | isCXXClassMember () const |
Determine whether this declaration is a C++ class member. | |
bool | isCXXInstanceMember () const |
Determine whether the given declaration is an instance member of a C++ class. | |
Linkage | getLinkageInternal () const |
Determine what kind of linkage this entity has. This is not the linkage as defined by the standard or the codegen notion of linkage. It is just an implementation detail that is used to compute those. | |
Linkage | getFormalLinkage () const |
Get the linkage from a semantic point of view. Entities in anonymous namespaces are external (in c++98). | |
bool | hasExternalFormalLinkage () const |
True if this decl has external linkage. | |
bool | isExternallyVisible () const |
Visibility | getVisibility () const |
Determines the visibility of this entity. | |
LinkageInfo | getLinkageAndVisibility () const |
Determines the linkage and visibility of this entity. | |
Optional< Visibility > | getExplicitVisibility (ExplicitVisibilityKind kind) const |
If visibility was explicitly specified for this declaration, return that visibility. | |
bool | isLinkageValid () const |
True if the computed linkage is valid. Used for consistency checking. Should always return true. | |
bool | hasLinkageBeenComputed () const |
True if something has required us to compute the linkage of this declaration. | |
NamedDecl * | getUnderlyingDecl () |
Looks through UsingDecls and ObjCCompatibleAliasDecls for the underlying named decl. | |
const NamedDecl * | getUnderlyingDecl () const |
NamedDecl * | getMostRecentDecl () |
Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration). | |
const NamedDecl * | getMostRecentDecl () const |
Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration). | |
ObjCStringFormatFamily | getObjCFStringFormattingFamily () const |
Static Public Member Functions | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
Protected Member Functions | |
NamedDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N) |
NamedDecl - This represents a decl with a name. Many decls have names such as ObjCMethodDecl, but not @class, etc.
clang::NamedDecl::NamedDecl | ( | Kind | DK, |
DeclContext * | DC, | ||
SourceLocation | L, | ||
DeclarationName | N | ||
) | [inline, protected] |
static bool clang::NamedDecl::classof | ( | const Decl * | D | ) | [inline, static] |
Reimplemented in clang::MSPropertyDecl, clang::UnresolvedUsingTypenameDecl, clang::EnumDecl, clang::UnresolvedUsingValueDecl, clang::UsingDecl, clang::TagDecl, clang::UsingShadowDecl, clang::VarTemplateDecl, clang::NamespaceAliasDecl, clang::UsingDirectiveDecl, clang::VarTemplatePartialSpecializationDecl, clang::TypeAliasDecl, clang::TypedefDecl, clang::TypedefNameDecl, clang::VarTemplateSpecializationDecl, clang::TypeDecl, clang::CXXConversionDecl, clang::IndirectFieldDecl, clang::EnumConstantDecl, clang::CXXDestructorDecl, clang::ObjCPropertyDecl, clang::FieldDecl, clang::CXXConstructorDecl, clang::ObjCCompatibleAliasDecl, clang::TypeAliasTemplateDecl, clang::FunctionDecl, clang::ObjCImplementationDecl, clang::ClassTemplateDecl, clang::ObjCCategoryImplDecl, clang::ObjCImplDecl, clang::CXXMethodDecl, clang::ObjCCategoryDecl, clang::ClassTemplatePartialSpecializationDecl, clang::CXXRecordDecl, clang::ObjCProtocolDecl, clang::ClassTemplateSpecializationDecl, clang::ObjCAtDefsFieldDecl, clang::ObjCIvarDecl, clang::ParmVarDecl, clang::TemplateTemplateParmDecl, clang::ObjCInterfaceDecl, clang::ImplicitParamDecl, clang::VarDecl, clang::NonTypeTemplateParmDecl, clang::TemplateTypeParmDecl, clang::FunctionTemplateDecl, clang::RedeclarableTemplateDecl, clang::DeclaratorDecl, clang::ObjCContainerDecl, clang::ValueDecl, clang::ObjCMethodDecl, clang::NamespaceDecl, clang::LabelDecl, and clang::TemplateDecl.
Definition at line 297 of file Decl.h.
References classofKind(), and clang::Decl::getKind().
static bool clang::NamedDecl::classofKind | ( | Kind | K | ) | [inline, static] |
Reimplemented from clang::Decl.
Reimplemented in clang::UnresolvedUsingTypenameDecl, clang::EnumDecl, clang::UnresolvedUsingValueDecl, clang::UsingDecl, clang::TagDecl, clang::UsingShadowDecl, clang::VarTemplateDecl, clang::NamespaceAliasDecl, clang::UsingDirectiveDecl, clang::VarTemplatePartialSpecializationDecl, clang::TypeAliasDecl, clang::TypedefDecl, clang::TypedefNameDecl, clang::VarTemplateSpecializationDecl, clang::TypeDecl, clang::CXXConversionDecl, clang::IndirectFieldDecl, clang::EnumConstantDecl, clang::CXXDestructorDecl, clang::ObjCPropertyDecl, clang::FieldDecl, clang::CXXConstructorDecl, clang::ObjCCompatibleAliasDecl, clang::TypeAliasTemplateDecl, clang::FunctionDecl, clang::ObjCImplementationDecl, clang::ClassTemplateDecl, clang::ObjCCategoryImplDecl, clang::ObjCImplDecl, clang::CXXMethodDecl, clang::ObjCCategoryDecl, clang::ClassTemplatePartialSpecializationDecl, clang::CXXRecordDecl, clang::ObjCProtocolDecl, clang::ClassTemplateSpecializationDecl, clang::ObjCAtDefsFieldDecl, clang::ObjCIvarDecl, clang::ParmVarDecl, clang::TemplateTemplateParmDecl, clang::ObjCInterfaceDecl, clang::ImplicitParamDecl, clang::VarDecl, clang::NonTypeTemplateParmDecl, clang::TemplateTypeParmDecl, clang::FunctionTemplateDecl, clang::RedeclarableTemplateDecl, clang::DeclaratorDecl, clang::ObjCContainerDecl, clang::ValueDecl, clang::ObjCMethodDecl, clang::NamespaceDecl, clang::LabelDecl, and clang::TemplateDecl.
Definition at line 298 of file Decl.h.
Referenced by classof().
bool NamedDecl::declarationReplaces | ( | NamedDecl * | OldD | ) | const |
declarationReplaces - Determine whether this declaration, if known to be well-formed within its context, will replace the declaration OldD if introduced into scope. A declaration will replace another declaration if, for example, it is a redeclaration of the same variable or function, but not if it is a declaration of a different kind (function vs. class) or an overloaded function.
Definition at line 1445 of file Decl.cpp.
References Context, declarationReplaces(), clang::DeclContext::Equals(), clang::Decl::getASTContext(), clang::ASTContext::getCanonicalNestedNameSpecifier(), clang::Decl::getDeclContext(), getDeclName(), clang::Decl::getKind(), and clang::DeclContext::getRedeclContext().
Referenced by declarationReplaces(), clang::StoredDeclsList::HandleRedeclaration(), and clang::Sema::PushOnScopeChains().
DeclarationName clang::NamedDecl::getDeclName | ( | ) | const [inline] |
getDeclName - Get the actual, stored name of the declaration, which may be a special name.
Definition at line 154 of file Decl.h.
Referenced by clang::Sema::ActOnAtEnd(), clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnCXXForRangeDecl(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnDelayedCXXMethodParameter(), clang::Sema::ActOnEndOfTranslationUnit(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnLabelStmt(), clang::Sema::ActOnMethodDeclaration(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnPopScope(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnReenterCXXMethodParameter(), clang::Sema::ActOnStartClassImplementation(), clang::Sema::ActOnStartClassInterface(), clang::Sema::ActOnSuperMessage(), clang::Sema::ActOnTag(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::ActOnVarTemplateSpecialization(), addAssociatedClassesAndNamespaces(), clang::TypoCorrection::addCorrectionDecl(), clang::IdentifierResolver::AddDecl(), clang::Sema::AddInitializerToDecl(), addInstantiatedParametersToScope(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildClassMessage(), clang::Sema::BuildCXXDefaultInitExpr(), clang::Sema::BuildDeclaratorGroup(), clang::Sema::BuildDeclRefExpr(), BuildImplicitMemberInitializer(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildReturnStmt(), clang::Sema::BuildVariableInstantiation(), CalculateHiddenNames(), captureInBlock(), captureInLambda(), clang::Sema::CheckAddressOfOperand(), checkARCPropertyDecl(), checkARCPropertyImpl(), CheckArityMismatch(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckCallReturnType(), clang::Sema::CheckCompletedCXXClass(), CheckDeclInExpr(), clang::Sema::CheckEquivalentExceptionSpec(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckForFunctionRedefinition(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::CheckIfOverriddenFunctionIsMarkedFinal(), checkIsValidOpenCLKernelParameter(), clang::Sema::CheckLiteralOperatorDeclaration(), CheckMethodOverrideParam(), CheckMethodOverrideReturn(), checkNewAttributesAfterDef(), clang::Sema::CheckNontrivialField(), CheckOperatorNewDeclaration(), CheckOperatorNewDeleteDeclarationScope(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckOverridingFunctionAttributes(), clang::Sema::CheckOverridingFunctionReturnType(), CheckPoppedLabel(), CheckPropertyAgainstProtocol(), clang::Sema::CheckPureMethod(), CheckReturnStackAddr(), clang::Sema::CheckShadow(), CmpProtocolNames(), clang::Sema::CompleteVarTemplateSpecializationDecl(), computeDeclRefDependence(), clang::CodeGen::CodeGenTypes::ComputeRecordLayout(), clang::Sema::ConvertArgumentsForCall(), clang::DeclRefExpr::Create(), declarationReplaces(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::Sema::DiagnoseAbsenceOfOverrideControl(), clang::Sema::DiagnoseAbstractType(), DiagnoseArityMismatch(), clang::Sema::DiagnoseAutoDeductionFailure(), DiagnoseBadAccess(), DiagnoseBadDeduction(), DiagnoseBaseOrMemInitializerOrder(), DiagnoseCStringFormatDirectiveInCFAPI(), DiagnoseCStringFormatDirectiveInObjCAPI(), DiagnoseDirectIsaAccess(), DiagnoseInvalidRedeclaration(), DiagnoseObjCImplementedDeprecations(), clang::Sema::DiagnosePropertyMismatch(), clang::Sema::DiagnoseSentinelCalls(), clang::Sema::DiagnoseSizeOfParametersAndReturnValue(), DiagnoseUnimplementedAccessor(), DiagnoseUninitializedUse(), clang::Sema::DiagnoseUnusedDecl(), DiagnoseUnusedOfDecl(), clang::Sema::DiagnoseUseOfDecl(), DiagUninitUse(), DoEmitAvailabilityWarning(), clang::ento::FunctionTextRegion::dumpToStream(), EmitNullConstant(), clang::Sema::FinalizeDeclaration(), clang::Sema::FinalizeVarWithDestructor(), clang::Sema::FindHiddenVirtualMethods(), clang::Sema::FindInstantiatedDecl(), FindOverriddenMethod(), clang::CXXMethodDecl::getCorrespondingMethodInClass(), clang::FunctionDecl::getCorrespondingUnsizedGlobalDeallocationFunction(), clang::FunctionDecl::getLiteralIdentifier(), clang::MemberExpr::getMemberNameInfo(), clang::InitializedEntity::getName(), clang::ASTContext::getNameForTemplate(), clang::UsingDecl::getNameInfo(), clang::UnresolvedUsingValueDecl::getNameInfo(), getOrderedName(), clang::FunctionDecl::getOverloadedOperator(), clang::ObjCMethodDecl::getSelector(), clang::DeclaratorDecl::getSourceRange(), GroupNewVirtualOverloads(), clang::Sema::HandleDeclarator(), clang::Sema::HandlePropertyInClassExtension(), hasDefaultGetterName(), hasDefaultSetterName(), clang::hasImplicitExceptionSpec(), HelperToDiagnoseMismatchedMethodsInGlobalPool(), clang::Sema::HideUsingShadowDecl(), clang::ASTNodeImporter::ImportDeclParts(), clang::ASTNodeImporter::ImportDefinition(), clang::IdentifierResolver::iterator::incrementSlowCase(), clang::ASTReader::InitializeSema(), InjectAnonymousStructOrUnionMembers(), clang::IdentifierResolver::InsertDeclAfter(), clang::Sema::InstantiateFunctionDefinition(), clang::Sema::InstantiateMemInitializers(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::Sema::InstantiateVariableDefinition(), clang::TemplateDeclInstantiator::InstantiateVarTemplatePartialSpecialization(), clang::FieldDecl::isAnonymousStructOrUnion(), isCXXSharedPtrDtor(), clang::RecordDecl::isInjectedClassName(), isInstantiationOf(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::FunctionDecl::isReservedGlobalPlacementOperator(), isSameEntity(), clang::CXXMethodDecl::isStatic(), IsStructurallyEquivalent(), clang::CXXMethodDecl::isUsualDeallocationFunction(), isVariableCapturable(), clang::Sema::LookupInObjCMethod(), LookupMemberExpr(), clang::Sema::MarkBaseAndMemberDestructorsReferenced(), MatchesFriend(), clang::MemberExpr::MemberExpr(), clang::Sema::MergeCXXFunctionDecl(), clang::Sema::MergeFunctionDecl(), clang::Sema::MergeTypedefNameDecl(), clang::Sema::MergeVarDecl(), clang::Sema::MergeVarDeclTypes(), MightInstantiateTo(), clang::serialization::needsAnonymousDeclarationNumber(), clang::Sema::ParsedFreeStandingDeclSpec(), clang::Sema::ParseTypedefDecl(), clang::InitializationSequence::Perform(), clang::TemplateArgument::print(), printQualifiedName(), clang::Sema::ProcessPropertyDecl(), clang::Sema::PushOnScopeChains(), clang::TreeTransform< Derived >::RebuildMemberExpr(), clang::TreeTransform< Derived >::RebuildObjCIvarRefExpr(), clang::TreeTransform< Derived >::RebuildObjCPropertyRefExpr(), clang::Sema::RebuildTemplateParamsInCurrentInstantiation(), clang::Sema::RegisterLocallyScopedExternCDecl(), clang::IdentifierResolver::RemoveDecl(), clang::DeclContext::removeDecl(), ReportOverrides(), clang::ento::PathDiagnostic::resetDiagnosticLocationToMainFile(), clang::Sema::SetDeclDeleted(), clang::ASTContext::setInstantiatedFromUnnamedFieldDecl(), shouldBeHidden(), SubstDefaultTemplateArgument(), clang::Sema::SubstExceptionSpec(), clang::TemplateDeclInstantiator::SubstFunctionType(), clang::Sema::SubstituteExplicitTemplateArguments(), clang::Sema::SubstParmVarDecl(), SuggestInitializationFixit(), clang::Sema::tryCaptureVariable(), TryTypoCorrectionForCall(), clang::ASTDeclWriter::VisitCXXMethodDecl(), clang::ASTDeclWriter::VisitEnumDecl(), clang::ASTNodeImporter::VisitEnumDecl(), clang::ASTDeclWriter::VisitFieldDecl(), clang::ASTDeclReader::VisitFieldDecl(), clang::ASTDeclWriter::VisitFunctionDecl(), clang::ASTDeclReader::VisitFunctionDecl(), clang::TemplateDeclInstantiator::VisitFunctionDecl(), clang::ASTNodeImporter::VisitImplicitParamDecl(), clang::ASTDeclWriter::VisitNamedDecl(), clang::ASTNodeImporter::VisitNonTypeTemplateParmDecl(), clang::ASTNodeImporter::VisitObjCImplementationDecl(), clang::ASTDeclWriter::VisitObjCIvarDecl(), clang::ASTNodeImporter::VisitObjCPropertyImplDecl(), clang::ASTNodeImporter::VisitParmVarDecl(), clang::ASTDeclWriter::VisitRecordDecl(), clang::ASTNodeImporter::VisitRecordDecl(), clang::ASTNodeImporter::VisitTemplateTemplateParmDecl(), clang::ento::ConditionBRVisitor::VisitTrueTest(), clang::ASTDeclWriter::VisitTypedefDecl(), clang::ASTDeclWriter::VisitUnresolvedUsingValueDecl(), clang::ASTDeclReader::VisitUnresolvedUsingValueDecl(), clang::ASTDeclWriter::VisitUsingDecl(), clang::ASTDeclReader::VisitUsingDecl(), clang::ASTDeclWriter::VisitVarDecl(), and clang::Sema::WarnExactTypedMethods().
Optional< Visibility > NamedDecl::getExplicitVisibility | ( | ExplicitVisibilityKind | kind | ) | const |
If visibility was explicitly specified for this declaration, return that visibility.
Definition at line 1102 of file Decl.cpp.
References getExplicitVisibilityAux().
Referenced by clang::Sema::AddPushedVisibilityAttribute(), and getExplicitVisibility().
Linkage clang::NamedDecl::getFormalLinkage | ( | ) | const [inline] |
Get the linkage from a semantic point of view. Entities in anonymous namespaces are external (in c++98).
Definition at line 228 of file Decl.h.
References getLinkageInternal().
Referenced by diagnoseUseOfInternalDeclInInlineFunction(), and hasLinkage().
IdentifierInfo* clang::NamedDecl::getIdentifier | ( | ) | const [inline] |
getIdentifier - Get the identifier that names this declaration, if there is one. This will return NULL if this declaration has no name (e.g., for an unnamed class) or if the name is a special name (C++ constructor, Objective-C selector, etc.).
Reimplemented in clang::ObjCImplementationDecl, and clang::ObjCCategoryImplDecl.
Definition at line 128 of file Decl.h.
References clang::DeclarationName::getAsIdentifierInfo().
Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnDefs(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnForwardClassDeclaration(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnOpenMPFirstprivateClause(), clang::Sema::ActOnOpenMPPrivateClause(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnReenterFunctionContext(), clang::Sema::ActOnStartClassInterface(), clang::Sema::ActOnStartCXXMemberDeclarations(), clang::Sema::ActOnSuperMessage(), clang::Sema::ActOnTag(), clang::Sema::ActOnTagTemplateIdType(), clang::comments::Sema::actOnTParamCommandParamNameArg(), clang::Sema::ActOnTypedefNameDecl(), clang::Sema::ActOnVariableDeclarator(), addAsFieldToClosureType(), addFunctionPointerConversion(), clang::Sema::AddKnownFunctionAttributes(), clang::Sema::addLambdaParameters(), AddObjCKeyValueCompletions(), clang::CodeGen::CodeGenTypes::addRecordTypeName(), AddTemplateParameterChunks(), clang::ento::AnyFunctionCall::argumentsMayEscape(), clang::Sema::BuildBlockForLambdaConversion(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildDeclRefExpr(), clang::Sema::BuildReturnStmt(), clang::Sema::CheckCompletedCXXClass(), clang::Sema::CheckConstructor(), clang::Sema::CheckCXXDefaultArguments(), checkEnumComparison(), CheckForDuplicateEnumValues(), checkForLiteralCreation(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckImplementationIvars(), checkObjCDealloc(), clang::Sema::CheckParameterPacksForExpansion(), clang::Sema::CheckParmsForFunctionDef(), CheckPropertyAgainstProtocol(), CheckProtocolMethodDefs(), clang::Sema::CodeCompleteLambdaIntroducer(), clang::Sema::CodeCompleteObjCMethodDeclSelector(), CollectImmediateProperties(), clang::ObjCProtocolDecl::collectInheritedProtocolProperties(), clang::Sema::ConversionToObjCStringLiteralCheck(), createFriendTagNNSFixIt(), clang::Sema::DeclApplyPragmaWeak(), clang::Sema::DefaultSynthesizeProperties(), describeClass(), diagnoseUncapturableValueReference(), findCapturingExpr(), findKnownClass(), findProtocolsWithExplicitImpls(), clang::ento::coreFoundation::followsCreateRule(), FormatFunctionParameter(), clang::TypoCorrectionConsumer::FoundDecl(), getAbsoluteValueFunctionKind(), clang::QualType::getBaseTypeIdentifier(), clang::BodyFarm::getBody(), clang::CallExpr::getBuiltinCallee(), clang::FunctionDecl::getBuiltinID(), clang::ento::CheckerContext::getCalleeIdentifier(), clang::ento::CallEvent::getCalleeIdentifier(), getCalleeName(), clang::ento::CheckerContext::getCalleeName(), clang::ObjCPropertyDecl::getDefaultSynthIvarName(), clang::TagDecl::getDefinition(), clang::OffsetOfExpr::OffsetOfNode::getFieldName(), clang::DesignatedInitExpr::Designator::getFieldName(), clang::ObjCImplementationDecl::getIdentifier(), clang::TemplateTypeParmType::getIdentifier(), clang::FunctionDecl::getMemoryFunctionKind(), getName(), clang::LabelStmt::getName(), clang::Sema::GetNameFromUnqualifiedId(), getNestedNameSpecifierIdentifiers(), clang::Sema::getObjCInterfaceDecl(), clang::CodeCompletionTUInfo::getParentName(), clang::Sema::getTemplateArgumentBindingsText(), clang::ObjCInterfaceDecl::hasDefinition(), clang::ObjCProtocolDecl::hasDefinition(), clang::ObjCContainerDecl::HasUserDeclaredSetterMethod(), InheritsFromClassNamed(), InjectAnonymousStructOrUnionMembers(), InNamespace(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::NamespaceDecl::isAnonymousNamespace(), IsCFError(), isCFStringType(), isCharSpecialization(), clang::ObjCCategoryDecl::IsClassExtension(), clang::ento::CheckerContext::isCLibraryFunction(), clang::ento::cocoa::isCocoaObjectRef(), clang::Sema::isCurrentClassName(), clang::Sema::isCurrentClassNameTypo(), clang::TagTypeLoc::isDefinition(), IsFunctionStdAbs(), clang::Sema::isLibstdcxxEagerExceptionSpecHack(), clang::FunctionDecl::isMSVCRTEntryPoint(), isNamed(), IsNSError(), isNSStringType(), isStd(), clang::Sema::isStdInitializerList(), clang::DeclContext::isStdNamespace(), isStreamCharSpecialization(), IsStructurallyEquivalent(), isSubclass(), isTypeTypedefedAsBOOL(), clang::LayoutOverrideSource::layoutRecordType(), clang::ObjCInterfaceDecl::lookupInheritedClass(), clang::ObjCProtocolDecl::lookupProtocolNamed(), clang::MangleContext::mangleGlobalBlock(), clang::MangleContext::mangleName(), clang::Sema::MergeFunctionDecl(), clang::Sema::MergeTypedefNameDecl(), clang::Sema::MergeVarDecl(), clang::analyze_format_string::FormatSpecifier::namedTypeToLengthModifier(), clang::Sema::ParseTypedefDecl(), clang::Sema::ProcessPragmaWeak(), clang::Sema::ProcessPropertyDecl(), clang::TreeTransform< Derived >::RebuildObjCExceptionDecl(), clang::comments::Sema::resolveParamCommandIndexes(), rewriteToNSEnumDecl(), rewriteToNSMacroDecl(), SemaBuiltinMemChkCall(), clang::ObjCImplDecl::setClassInterface(), shouldRunOnFunctionOrMethod(), clang::Sema::SubstParmVarDecl(), clang::TreeTransform< Derived >::TransformFunctionTypeParam(), clang::TreeTransform< Derived >::TransformLambdaScope(), clang::ASTNodeImporter::VisitObjCPropertyImplDecl(), and clang::ASTNodeImporter::VisitTemplateTypeParmDecl().
Determines the linkage and visibility of this entity.
Definition at line 1024 of file Decl.cpp.
References getLVForDecl(), LVForType, LVForValue, and usesTypeVisibility().
Referenced by getVisibility(), clang::CodeGen::CodeGenModule::setGlobalVisibility(), and setLinkageAndVisibilityForGV().
Linkage NamedDecl::getLinkageInternal | ( | ) | const |
Determine what kind of linkage this entity has. This is not the linkage as defined by the standard or the codegen notion of linkage. It is just an implementation detail that is used to compute those.
Definition at line 1018 of file Decl.cpp.
References clang::LinkageInfo::getLinkage(), getLVForDecl(), and LVForLinkageOnly.
Referenced by computeCachedProperties(), getFormalLinkage(), hasExternalFormalLinkage(), isExternallyVisible(), isSameEntity(), clang::ASTDeclWriter::VisitFunctionDecl(), and clang::ASTDeclWriter::VisitVarDecl().
NamedDecl* clang::NamedDecl::getMostRecentDecl | ( | ) | [inline] |
Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration).
Reimplemented from clang::Decl.
Reimplemented in clang::RecordDecl, clang::EnumDecl, clang::VarTemplatePartialSpecializationDecl, clang::VarTemplateSpecializationDecl, clang::ClassTemplateDecl, clang::CXXMethodDecl, clang::ClassTemplatePartialSpecializationDecl, clang::ClassTemplateSpecializationDecl, and clang::CXXRecordDecl.
Definition at line 288 of file Decl.h.
Referenced by clang::DeclContext::collectAllContexts(), compareDeclarations(), DiagnoseNamespaceInlineMismatch(), clang::Sema::findLocallyScopedExternCDecl(), getExplicitVisibilityAux(), getMostRecentDecl(), ShouldRemoveFromUnused(), and clang::ASTDeclWriter::VisitNamespaceDecl().
const NamedDecl* clang::NamedDecl::getMostRecentDecl | ( | ) | const [inline] |
Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration).
Reimplemented from clang::Decl.
Reimplemented in clang::RecordDecl, clang::EnumDecl, clang::ClassTemplateDecl, clang::CXXMethodDecl, and clang::CXXRecordDecl.
Definition at line 291 of file Decl.h.
References getMostRecentDecl().
StringRef clang::NamedDecl::getName | ( | ) | const [inline] |
getName - Get the name of identifier for this declaration as a StringRef. This requires that the declaration have a name and that it be a simple identifier.
Reimplemented in clang::ObjCImplementationDecl, and clang::ObjCCategoryImplDecl.
Definition at line 133 of file Decl.h.
References getIdentifier(), clang::IdentifierInfo::getName(), and clang::DeclarationName::isIdentifier().
Referenced by clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnSuperScopeSpecifier(), AddObjCKeyValueCompletions(), clang::Sema::AttachBaseSpecifiers(), clang::Sema::BuildResolvedCallExpr(), clang::arcmt::trans::canApplyWeak(), clang::Sema::CheckMSVCRTEntryPoint(), CheckObjCBridgeNSCast(), clang::Sema::CheckSingleAssignmentConstraints(), clang::PredefinedExpr::ComputeName(), clang::Sema::DiagnoseAssignmentResult(), DiagnoseBadDeduction(), dumpBasePath(), DumpCXXRecordLayout(), clang::ento::CXXBaseObjectRegion::dumpToStream(), clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitAutoVarAlloca(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CGDebugInfo::EmitGlobalVariable(), clang::CodeGen::CodeGenFunction::EmitLabel(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), clang::CodeGen::CGDebugInfo::EmitNamespaceAlias(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), GenOpenCLArgMetadata(), clang::BodyFarm::getBody(), clang::ento::ModelInjector::getBody(), clang::ento::LikelyFalsePositiveSuppressionBRVisitor::getEndPath(), clang::CodeGen::CodeGenFunction::getJumpDestForLabel(), getObjCFStringFormattingFamily(), clang::ObjCInterfaceDecl::getObjCRuntimeNameAsString(), clang::ObjCProtocolDecl::getObjCRuntimeNameAsString(), clang::comments::TParamCommandComment::getParamName(), clang::CodeCompletionTUInfo::getParentName(), clang::AnalysisDeclContext::getSelfDecl(), clang::CodeGen::CodeGenTBAA::getTBAAStructTypeInfo(), clang::ento::MemRegionManager::getVarRegion(), HandleTagNumbering(), clang::ento::ModelConsumer::HandleTopLevelDecl(), hasDefaultGetterName(), hasDefaultSetterName(), IsClangAttr(), IsClangDecl(), IsClangStmt(), IsClangType(), clang::FunctionDecl::isMSVCRTEntryPoint(), IsSmallVector(), IsStdString(), IsStdVector(), clang::LayoutOverrideSource::layoutRecordType(), clang::MangleContext::mangleObjCMethodName(), maybeAdjustInterfaceForSubscriptingCheck(), mergeDeclAttribute(), clang::NestedNameSpecifier::print(), print_elem(), clang::Sema::PrintInstantiationStack(), clang::APValue::printPretty(), clang::ento::FieldRegion::printPretty(), clang::ento::VarRegion::printPrettyAsExpr(), clang::ento::FieldRegion::printPrettyAsExpr(), clang::ento::ObjCIvarRegion::printPrettyAsExpr(), ReplaceWithClasstype(), and validateBoxingMethod().
std::string clang::NamedDecl::getNameAsString | ( | ) | const [inline] |
getNameAsString - Get a human-readable name for the declaration, even if it is one of the special kinds of names (C++ constructor, Objective-C selector, etc). Creating this name requires expensive string manipulation, so it should be called only when performance doesn't matter. For simple declarations, getNameAsCString() should suffice.
Reimplemented in clang::ObjCImplementationDecl, and clang::ObjCCategoryImplDecl.
Definition at line 148 of file Decl.h.
References clang::DeclarationName::getAsString().
Referenced by clang::CodeGen::CodeGenFunction::BuildBlockByrefAddress(), clang::CodeGen::CodeGenFunction::BuildByRefType(), clang::consumed::ConsumedStmtVisitor::checkCallability(), clang::Sema::checkMSInheritanceAttrOnDefinition(), clang::Sema::CheckObjCBridgeRelatedConversions(), clang::consumed::ConsumedStateMap::checkParamsForReturnTypestate(), clang::CodeCompletionResult::CreateCodeCompletionString(), clang::CodeCompleteConsumer::OverloadCandidate::CreateSignatureString(), clang::CodeGen::CodeGenFunction::GetAddrOfBlockDecl(), clang::ASTContext::getObjCEncodingForPropertyDecl(), clang::CodeGen::CodeGenFunction::AutoVarEmission::getObjectAddress(), getStaticDeclName(), clang::threadSafety::ThreadSafetyReporter::handleMutexNotHeld(), clang::threadSafety::ThreadSafetyReporter::handleNoMutexHeld(), clang::threadSafety::til::PrettyPrinter< StdPrinter, std::ostream >::printLiteralPtr(), rewriteToObjCProperty(), and clang::consumed::ConsumedStmtVisitor::VisitCallExpr().
void NamedDecl::getNameForDiagnostic | ( | raw_ostream & | OS, |
const PrintingPolicy & | Policy, | ||
bool | Qualified | ||
) | const [virtual] |
getNameForDiagnostic - Appends a human-readable name for this declaration into the given stream.
This is the method invoked by Sema when displaying a NamedDecl in a diagnostic. It does not necessarily produce the same result as printName(); for example, class template specializations are printed with their template arguments.
Reimplemented in clang::VarTemplateSpecializationDecl, clang::FunctionDecl, and clang::ClassTemplateSpecializationDecl.
Definition at line 1436 of file Decl.cpp.
References printName(), and printQualifiedName().
Referenced by clang::FormatASTNodeDiagnosticArgument().
Definition at line 1005 of file Decl.cpp.
References getName(), clang::SFF_CFString, and clang::SFF_None.
Referenced by DiagnoseCStringFormatDirectiveInCFAPI().
std::string NamedDecl::getQualifiedNameAsString | ( | ) | const |
Definition at line 1351 of file Decl.cpp.
References clang::Decl::getASTContext(), and printQualifiedName().
Referenced by DiagnoseTwoPhaseLookup(), IsMicrosoftUsingDeclarationAccessBug(), clang::RecordDecl::mayInsertExtraPadding(), and clang::threadSafety::til::PrettyPrinter< StdPrinter, std::ostream >::printProject().
NamedDecl* clang::NamedDecl::getUnderlyingDecl | ( | ) | [inline] |
Looks through UsingDecls and ObjCCompatibleAliasDecls for the underlying named decl.
Definition at line 276 of file Decl.h.
References clang::Decl::getKind().
Referenced by clang::TypoCorrection::addCorrectionDecl(), clang::Sema::AddFunctionCandidates(), CalculateHiddenNames(), CheckAnonMemberRedeclaration(), clang::Sema::CheckDependentFunctionTemplateSpecialization(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::CheckMemberSpecialization(), clang::Sema::CheckUsingShadowDecl(), clang::Sema::ClassifyName(), diagnoseNoViableConversion(), doesUsualArrayDeleteWantSize(), clang::Sema::FindAllocationOverload(), clang::Sema::FindAssociatedClassesAndNamespaces(), clang::Sema::FindDeallocationFunction(), GetConversionType(), getDeclShowContexts(), clang::getDeclUsageType(), clang::ASTContext::getOverloadedTemplateName(), getUnderlyingDecl(), hasOnlyNonStaticMemberFunctions(), HasOnlyStaticMembers(), isAcceptableTemplateName(), noteOverloads(), clang::Sema::PerformContextualImplicitConversion(), recordConversion(), clang::LookupResult::resolveKind(), and ResolveOverloadForDeduction().
const NamedDecl* clang::NamedDecl::getUnderlyingDecl | ( | ) | const [inline] |
Definition at line 284 of file Decl.h.
References getUnderlyingDecl().
Visibility clang::NamedDecl::getVisibility | ( | ) | const [inline] |
Determines the visibility of this entity.
Definition at line 242 of file Decl.h.
References getLinkageAndVisibility(), and clang::LinkageInfo::getVisibility().
Referenced by mergeDeclAttribute().
bool clang::NamedDecl::hasExternalFormalLinkage | ( | ) | const [inline] |
True if this decl has external linkage.
Definition at line 233 of file Decl.h.
References getLinkageInternal(), and clang::isExternalFormalLinkage().
Referenced by clang::Sema::MergeFunctionDecl(), clang::Sema::MergeVarDecl(), clang::ASTNodeImporter::VisitFunctionDecl(), and clang::ASTNodeImporter::VisitVarDecl().
bool NamedDecl::hasLinkage | ( | ) | const |
Determine whether this declaration has linkage.
Definition at line 1515 of file Decl.cpp.
References getFormalLinkage(), and clang::NoLinkage.
Referenced by clang::Sema::BuildVariableInstantiation(), clang::Sema::CheckCompleteVariableDeclaration(), clang::Sema::CheckVariableDeclarationType(), isOutOfScopePreviousDeclaration(), and clang::Sema::MergeVarDecl().
bool clang::NamedDecl::hasLinkageBeenComputed | ( | ) | const [inline] |
True if something has required us to compute the linkage of this declaration.
Language features which can retroactively change linkage (like a typedef name for linkage purposes) may need to consider this, but hopefully only in transitory ways during parsing.
Definition at line 270 of file Decl.h.
References clang::Decl::hasCachedLinkage().
Referenced by clang::Sema::ParseTypedefDecl().
bool clang::NamedDecl::isCXXClassMember | ( | ) | const [inline] |
Determine whether this declaration is a C++ class member.
Definition at line 204 of file Decl.h.
References clang::Decl::getDeclContext(), clang::DeclContext::getRedeclContext(), and clang::DeclContext::isRecord().
Referenced by clang::Sema::ActOnTag(), checkDLLAttributeRedeclaration(), clang::Sema::ClassifyName(), clang::Sema::DiagnoseEmptyLookup(), isCXXInstanceMember(), isQualifiedMemberAccess(), clang::Sema::IsSimplyAccessible(), clang::Sema::MergeFunctionDecl(), and clang::Sema::UseArgumentDependentLookup().
bool NamedDecl::isCXXInstanceMember | ( | ) | const |
Determine whether the given declaration is an instance member of a C++ class.
Definition at line 1530 of file Decl.cpp.
References clang::Decl::getAsFunction(), and isCXXClassMember().
Referenced by clang::Sema::BuildMemberReferenceExpr(), clang::Sema::CheckCallingConvAttr(), ClassifyImplicitMemberAccess(), clang::Sema::InstantiateAttrs(), and clang::Sema::InstantiateClass().
bool clang::NamedDecl::isExternallyVisible | ( | ) | const [inline] |
Definition at line 237 of file Decl.h.
References getLinkageInternal().
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFunctionDeclarator(), basicGVALinkageForFunction(), basicGVALinkageForVariable(), checkAttributesAfterMerging(), clang::Sema::CheckCompleteVariableDeclaration(), checkDLLAttribute(), checkUndefinedButUsed(), computeKeyFunction(), clang::Sema::DefineUsedVTables(), diagnoseUseOfInternalDeclInInlineFunction(), filterNonConflictingPreviousDecls(), filterNonConflictingPreviousTypedefDecls(), clang::Sema::FinalizeDeclaration(), getStaticDeclName(), clang::Sema::getUndefinedButUsed(), getUniqueTagTypeName(), clang::CodeGen::CodeGenModule::getVTableLinkage(), clang::ento::CheckerContext::isCLibraryFunction(), clang::MarkVarDeclODRUsed(), and ShouldRemoveFromUnused().
bool clang::NamedDecl::isHidden | ( | ) | const [inline] |
Determine whether this declaration is hidden from name lookup.
Definition at line 198 of file Decl.h.
References clang::Decl::Hidden.
Referenced by filterNonConflictingPreviousDecls(), filterNonConflictingPreviousTypedefDecls(), clang::LookupResult::isVisible(), clang::ObjCProtocolDecl::lookupMethod(), clang::Sema::MatchTwoMethodDeclarations(), and NestedProtocolHasNoDefinition().
bool NamedDecl::isLinkageValid | ( | ) | const |
True if the computed linkage is valid. Used for consistency checking. Should always return true.
Definition at line 997 of file Decl.cpp.
References computeLVForDecl(), clang::Decl::getCachedLinkage(), clang::LinkageInfo::getLinkage(), clang::Decl::hasCachedLinkage(), and LVForLinkageOnly.
Referenced by clang::Sema::AddInitializerToDecl(), and clang::TagDecl::setTypedefNameForAnonDecl().
void clang::NamedDecl::printName | ( | raw_ostream & | os | ) | const [inline] |
Definition at line 150 of file Decl.h.
Referenced by clang::CodeGen::CodeGenTypes::addRecordTypeName(), clang::threadSafety::LocalVariableMap::dumpContext(), clang::threadSafety::LocalVariableMap::dumpVarDefinitionName(), getNameForDiagnostic(), clang::operator<<(), clang::Sema::PrintInstantiationStack(), and printQualifiedName().
void NamedDecl::printQualifiedName | ( | raw_ostream & | OS | ) | const |
printQualifiedName - Returns human-readable qualified name for declaration, like A::B::i, for i being member of namespace A::B. If declaration is not member of context which can be named (record, namespace), it will return same result as printName(). Creating this name is expensive, so it should be called only when performance doesn't matter.
Definition at line 1358 of file Decl.cpp.
References clang::Decl::getASTContext().
Referenced by clang::CodeGen::CodeGenTypes::addRecordTypeName(), getNameForDiagnostic(), getQualifiedNameAsString(), clang::TemplateArgument::print(), and clang::CodeGen::SanitizerMetadata::reportGlobalToASan().
void NamedDecl::printQualifiedName | ( | raw_ostream & | OS, |
const PrintingPolicy & | Policy | ||
) | const |
Definition at line 1362 of file Decl.cpp.
References Contexts, clang::TemplateArgumentList::data(), clang::Decl::getDeclContext(), getDeclName(), clang::FunctionProtoType::getNumParams(), clang::DeclContext::getParent(), clang::DeclContext::isFunctionOrMethod(), clang::FunctionProtoType::isVariadic(), P, printName(), clang::TemplateSpecializationType::PrintTemplateArgumentList(), clang::TemplateArgumentList::size(), and clang::PrintingPolicy::SuppressUnwrittenScope.
void clang::NamedDecl::setDeclName | ( | DeclarationName | N | ) | [inline] |
Set the name of this declaration.
Definition at line 157 of file Decl.h.
Referenced by addInstantiatedParametersToScope(), and clang::ASTDeclReader::VisitNamedDecl().
void clang::NamedDecl::setHidden | ( | bool | Hide | ) | [inline] |
Set whether this declaration is hidden from name lookup.
Definition at line 201 of file Decl.h.
References clang::Decl::Hidden.
Referenced by clang::Sema::InstantiateClass(), and clang::Sema::InstantiateEnum().