clang 20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
clang::TypedefDecl Class Reference

Represents the declaration of a typedef-name via the 'typedef' type specifier. More...

#include "clang/AST/Decl.h"

Inheritance diagram for clang::TypedefDecl:
Inheritance graph
[legend]

Public Member Functions

SourceRange getSourceRange () const override LLVM_READONLY
 Source range that this declaration covers.
 
- Public Member Functions inherited from clang::TypedefNameDecl
bool isModed () const
 
TypeSourceInfogetTypeSourceInfo () const
 
QualType getUnderlyingType () const
 
void setTypeSourceInfo (TypeSourceInfo *newType)
 
void setModedTypeSourceInfo (TypeSourceInfo *unmodedTSI, QualType modedTy)
 
TypedefNameDeclgetCanonicalDecl () override
 Retrieves the canonical declaration of this typedef-name.
 
const TypedefNameDeclgetCanonicalDecl () const
 
TagDeclgetAnonDeclWithTypedefName (bool AnyRedecl=false) const
 Retrieves the tag declaration for which this is the typedef name for linkage purposes, if any.
 
bool isTransparentTag () const
 Determines if this typedef shares a name and spelling location with its underlying tag type, as is the case with the NS_ENUM macro.
 
- Public Member Functions inherited from clang::TypeDecl
const TypegetTypeForDecl () const
 
void setTypeForDecl (const Type *TD)
 
SourceLocation getBeginLoc () const LLVM_READONLY
 
void setLocStart (SourceLocation L)
 
SourceRange getSourceRange () const override LLVM_READONLY
 Source range that this declaration covers.
 
- Public Member Functions inherited from clang::NamedDecl
IdentifierInfogetIdentifier () const
 Get the identifier that names this declaration, if there is one.
 
StringRef getName () const
 Get the name of identifier for this declaration as a StringRef.
 
std::string getNameAsString () const
 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).
 
virtual void printName (raw_ostream &OS, const PrintingPolicy &Policy) const
 Pretty-print the unqualified name of this declaration.
 
void printName (raw_ostream &OS) const
 Calls printName() with the ASTContext printing policy from the decl.
 
DeclarationName getDeclName () const
 Get the actual, stored name of the declaration, which may be a special name.
 
void setDeclName (DeclarationName N)
 Set the name of this declaration.
 
void printQualifiedName (raw_ostream &OS) const
 Returns a human-readable qualified name for this declaration, like A::B::i, for i being member of namespace A::B.
 
void printQualifiedName (raw_ostream &OS, const PrintingPolicy &Policy) const
 
void printNestedNameSpecifier (raw_ostream &OS) const
 Print only the nested name specifier part of a fully-qualified name, including the '::' at the end.
 
void printNestedNameSpecifier (raw_ostream &OS, const PrintingPolicy &Policy) const
 
std::string getQualifiedNameAsString () const
 
virtual void getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const
 Appends a human-readable name for this declaration into the given stream.
 
bool declarationReplaces (const NamedDecl *OldD, bool IsKnownNewer=true) const
 Determine whether this declaration, if known to be well-formed within its context, will replace the declaration OldD if introduced into scope.
 
bool hasLinkage () const
 Determine whether this declaration has linkage.
 
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.
 
ReservedIdentifierStatus isReserved (const LangOptions &LangOpts) const
 Determine if the declaration obeys the reserved identifier rules of the given language.
 
Linkage getLinkageInternal () const
 Determine what kind of linkage this entity has.
 
Linkage getFormalLinkage () const
 Get the linkage from a semantic point of view.
 
bool hasExternalFormalLinkage () const
 True if this decl has external linkage.
 
bool isExternallyVisible () const
 
bool isExternallyDeclarable () const
 Determine whether this declaration can be redeclared in a different translation unit.
 
Visibility getVisibility () const
 Determines the visibility of this entity.
 
LinkageInfo getLinkageAndVisibility () const
 Determines the linkage and visibility of this entity.
 
std::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.
 
bool hasLinkageBeenComputed () const
 True if something has required us to compute the linkage of this declaration.
 
bool isPlaceholderVar (const LangOptions &LangOpts) const
 
NamedDeclgetUnderlyingDecl ()
 Looks through UsingDecls and ObjCCompatibleAliasDecls for the underlying named decl.
 
const NamedDeclgetUnderlyingDecl () const
 
NamedDeclgetMostRecentDecl ()
 
const NamedDeclgetMostRecentDecl () const
 
ObjCStringFormatFamily getObjCFStringFormattingFamily () const
 
bool isModulePrivate () const
 Whether this declaration was marked as being private to the module in which it was defined.
 
void setModulePrivate ()
 Specify that this declaration was marked as being private to the module in which it was defined.
 
- Public Member Functions inherited from clang::Decl
 Decl ()=delete
 
 Decl (const Decl &)=delete
 
 Decl (Decl &&)=delete
 
Decloperator= (const Decl &)=delete
 
Decloperator= (Decl &&)=delete
 
virtual SourceRange getSourceRange () const LLVM_READONLY
 Source range that this declaration covers.
 
SourceLocation getBeginLoc () const LLVM_READONLY
 
SourceLocation getEndLoc () const LLVM_READONLY
 
SourceLocation getLocation () const
 
void setLocation (SourceLocation L)
 
Kind getKind () const
 
const char * getDeclKindName () const
 
DeclgetNextDeclInContext ()
 
const DeclgetNextDeclInContext () const
 
DeclContextgetDeclContext ()
 
const DeclContextgetDeclContext () const
 
DeclContextgetNonTransparentDeclContext ()
 Return the non transparent context.
 
const DeclContextgetNonTransparentDeclContext () const
 
DeclgetNonClosureContext ()
 Find the innermost non-closure ancestor of this declaration, walking up through blocks, lambdas, etc.
 
const DeclgetNonClosureContext () const
 
TranslationUnitDeclgetTranslationUnitDecl ()
 
const TranslationUnitDeclgetTranslationUnitDecl () const
 
bool isInAnonymousNamespace () const
 
bool isInStdNamespace () const
 
bool isFileContextDecl () const
 
ASTContextgetASTContext () const LLVM_READONLY
 
const LangOptionsgetLangOpts () const LLVM_READONLY
 Helper to get the language options from the ASTContext.
 
void setAccess (AccessSpecifier AS)
 
AccessSpecifier getAccess () const
 
AccessSpecifier getAccessUnsafe () const
 Retrieve the access specifier for this declaration, even though it may not yet have been properly set.
 
bool hasAttrs () const
 
void setAttrs (const AttrVec &Attrs)
 
AttrVecgetAttrs ()
 
const AttrVecgetAttrs () const
 
void dropAttrs ()
 
void addAttr (Attr *A)
 
attr_range attrs () const
 
attr_iterator attr_begin () const
 
attr_iterator attr_end () const
 
template<typename... Ts>
void dropAttrs ()
 
template<typename T >
void dropAttr ()
 
template<typename T >
llvm::iterator_range< specific_attr_iterator< T > > specific_attrs () const
 
template<typename T >
specific_attr_iterator< Tspecific_attr_begin () const
 
template<typename T >
specific_attr_iterator< Tspecific_attr_end () const
 
template<typename T >
TgetAttr () const
 
template<typename T >
bool hasAttr () const
 
unsigned getMaxAlignment () const
 getMaxAlignment - return the maximum alignment specified by attributes on this decl, 0 if there are none.
 
void setInvalidDecl (bool Invalid=true)
 setInvalidDecl - Indicates the Decl had a semantic error.
 
bool isInvalidDecl () const
 
bool isImplicit () const
 isImplicit - Indicates whether the declaration was implicitly generated by the implementation.
 
void setImplicit (bool I=true)
 
bool isUsed (bool CheckUsedAttr=true) const
 Whether any (re-)declaration of the entity was used, meaning that a definition is required.
 
void setIsUsed ()
 Set whether the declaration is used, in the sense of odr-use.
 
void markUsed (ASTContext &C)
 Mark the declaration used, in the sense of odr-use.
 
bool isReferenced () const
 Whether any declaration of this entity was referenced.
 
bool isThisDeclarationReferenced () const
 Whether this declaration was referenced.
 
void setReferenced (bool R=true)
 
bool isTopLevelDeclInObjCContainer () const
 Whether this declaration is a top-level declaration (function, global variable, etc.) that is lexically inside an objc container definition.
 
void setTopLevelDeclInObjCContainer (bool V=true)
 
ExternalSourceSymbolAttr * getExternalSourceSymbolAttr () const
 Looks on this and related declarations for an applicable external source symbol attribute.
 
bool isModulePrivate () const
 Whether this declaration was marked as being private to the module in which it was defined.
 
bool isInExportDeclContext () const
 Whether this declaration was exported in a lexical context.
 
bool isInvisibleOutsideTheOwningModule () const
 
bool isInAnotherModuleUnit () const
 Whether this declaration comes from another module unit.
 
bool isInCurrentModuleUnit () const
 Whether this declaration comes from the same module unit being compiled.
 
bool