FLANG
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
Fortran::semantics::Symbol Class Reference

Public Types

using Flags = common::EnumSet< Flag, Flag_enumSize >
 

Public Member Functions

 ENUM_CLASS (Flag, Function, Subroutine, StmtFunction, Implicit, ImplicitOrError, ModFile, ParentComp, CrayPointer, CrayPointee, LocalityLocal, LocalityLocalInit, LocalityReduce, LocalityShared, InDataStmt, InNamelist, EntryDummyArgument, CompilerCreated, ReadOnly, AccPrivate, AccFirstPrivate, AccShared, AccCopy, AccCopyIn, AccCopyInReadOnly, AccCopyOut, AccCreate, AccDelete, AccPresent, AccLink, AccDeviceResident, AccDevicePtr, AccDeclare, AccDevice, AccHost, AccSelf, AccCommonBlock, AccThreadPrivate, AccReduction, AccNone, AccPreDetermined, OmpShared, OmpPrivate, OmpLinear, OmpFirstPrivate, OmpLastPrivate, OmpMapTo, OmpMapFrom, OmpMapToFrom, OmpMapAlloc, OmpMapRelease, OmpMapDelete, OmpUseDevicePtr, OmpUseDeviceAddr, OmpIsDevicePtr, OmpHasDeviceAddr, OmpCopyIn, OmpCopyPrivate, OmpCommonBlock, OmpReduction, OmpAligned, OmpNontemporal, OmpAllocate, OmpDeclarativeAllocateDirective, OmpExecutableAllocateDirective, OmpDeclareSimd, OmpDeclareTarget, OmpThreadprivate, OmpDeclareReduction, OmpFlushed, OmpCriticalLock, OmpIfSpecified, OmpNone, OmpPreDetermined, OmpImplicit, OmpDependObject, OmpInclusiveScan, OmpExclusiveScan, OmpInScanReduction)
 
const Scopeowner () const
 
const SourceNamename () const
 
Attrs & attrs ()
 
const Attrs & attrs () const
 
Attrs & implicitAttrs ()
 
const Attrs & implicitAttrs () const
 
Flagsflags ()
 
const Flagsflags () const
 
bool test (Flag flag) const
 
void set (Flag flag, bool value=true)
 
Scopescope ()
 
const Scopescope () const
 
void set_scope (Scope *scope)
 
std::size_t size () const
 
void set_size (std::size_t size)
 
std::size_t offset () const
 
void set_offset (std::size_t offset)
 
void ReplaceName (const SourceName &)
 
template<typename D >
bool has () const
 
template<typename D >
D * detailsIf ()
 
template<typename D >
const D * detailsIf () const
 
template<typename D >
D & get ()
 
template<typename D >
const D & get () const
 
Details & details ()
 
const Details & details () const
 
void set_details (Details &&)
 
bool CanReplaceDetails (const Details &details) const
 
SymbolGetUltimate ()
 
const SymbolGetUltimate () const
 
DeclTypeSpecGetType ()
 
const DeclTypeSpecGetType () const
 
void SetType (const DeclTypeSpec &)
 
const std::string * GetBindName () const
 
void SetBindName (std::string &&)
 
bool GetIsExplicitBindName () const
 
void SetIsExplicitBindName (bool)
 
void SetIsCDefined (bool)
 
bool IsFuncResult () const
 
bool IsObjectArray () const
 
const ArraySpecGetShape () const
 
bool IsSubprogram () const
 
bool IsFromModFile () const
 
bool HasExplicitInterface () const
 
bool HasLocalLocality () const
 
bool operator== (const Symbol &that) const
 
bool operator!= (const Symbol &that) const
 
int Rank () const
 
int Corank () const
 
const DerivedTypeSpecGetParentTypeSpec (const Scope *=nullptr) const
 
const SymbolGetParentComponent (const Scope *=nullptr) const
 
SemanticsContextGetSemanticsContext () const
 
LLVM_DUMP_METHOD void dump () const
 

Static Public Member Functions

static std::string OmpFlagToClauseName (Flag ompFlag)
 

Friends

template<std::size_t >
class Symbols
 
template<class , std::size_t >
class std::array
 
llvm::raw_ostream & operator<< (llvm::raw_ostream &, const Symbol &)
 
llvm::raw_ostream & DumpForUnparse (llvm::raw_ostream &, const Symbol &, bool)
 

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