clang API Documentation

Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions
clang::NamedDecl Class Reference

#include <Decl.h>

Inheritance diagram for clang::NamedDecl:
Inheritance graph
[legend]
Collaboration diagram for clang::NamedDecl:
Collaboration graph
[legend]

List of all members.

Public Types

enum  ExplicitVisibilityKind { VisibilityForType, VisibilityForValue }
 Kinds of explicit visibility. More...

Public Member Functions

IdentifierInfogetIdentifier () 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< VisibilitygetExplicitVisibility (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.
NamedDeclgetUnderlyingDecl ()
 Looks through UsingDecls and ObjCCompatibleAliasDecls for the underlying named decl.
const NamedDeclgetUnderlyingDecl () const
NamedDeclgetMostRecentDecl ()
 Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration).
const NamedDeclgetMostRecentDecl () 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)

Detailed Description

NamedDecl - This represents a decl with a name. Many decls have names such as ObjCMethodDecl, but not @class, etc.

Definition at line 109 of file Decl.h.


Member Enumeration Documentation

Kinds of explicit visibility.

Enumerator:
VisibilityForType 
VisibilityForValue 

Definition at line 250 of file Decl.h.


Constructor & Destructor Documentation

clang::NamedDecl::NamedDecl ( Kind  DK,
DeclContext DC,
SourceLocation  L,
DeclarationName  N 
) [inline, protected]

Definition at line 120 of file Decl.h.


Member Function Documentation

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]

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().

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().

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().

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().

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().

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().

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]
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 284 of file Decl.h.

References getUnderlyingDecl().

Determines the visibility of this entity.

Definition at line 242 of file Decl.h.

References getLinkageAndVisibility(), and clang::LinkageInfo::getVisibility().

Referenced by mergeDeclAttribute().

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().

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::isHidden ( ) const [inline]

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]
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

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().


The documentation for this class was generated from the following files: