top | up | prev | next

FunctionSymbol Class

Definition at line 131 of FunctionSymbol.hpp

Constructors

FunctionSymbol(SymbolType symbolType_, const Span& span_, const boost::uuids::uuid& sourceModuleId_, const std::u32string& name_)
FunctionSymbol(const FunctionSymbol&) delete
FunctionSymbol(const Span& span_, const boost::uuids::uuid& sourceModuleId_, const std::u32string& name_)

Member Functions

void Accept(SymbolCollector* collector) override
void AddLocalVariable(LocalVariableSymbol* localVariable)
void AddMember(Symbol* member) override
int Arity() const
void Check() override
int ClassArity() const virtual
const char* ClassName() const override
void CloneUsingNodes(const std::vector<Node*>& usingNodes_)
std::u32string CodeName() const override
void ComputeMangledName() override
void ComputeName() virtual
ConstraintNode* Constraint()
std::unique_ptr<Value> ConstructValue(const std::vector<std::unique_ptr<Value>>& argumentValues, const Span& span, const boost::uuids::uuid& moduleId, Value* receiver) const virtual
uint8_t ConversionDistance() const virtual
TypeSymbol* ConversionSourceType() const
TypeSymbol* ConversionTargetType() const
std::unique_ptr<Value> ConvertValue(const std::unique_ptr<Value>& value) const virtual
FunctionSymbol* Copy() const virtual
void CopyFrom(const Symbol* that) override
std::unique_ptr<Element> CreateDomElement(TypeMap& typeMap) override
std::vector<LocalVariableSymbol*> CreateTemporariesTo(FunctionSymbol* currentFunction) virtual
LocalVariableSymbol* CreateTemporary(TypeSymbol* type, const Span& span, const boost::uuids::uuid& moduleId)
std::u32string DocName() const override
bool DontThrow() const virtual
void Dump(CodeFormatter& formatter) override
void EmplaceFunction(FunctionSymbol* functionSymbol, int index) override
void EmplaceType(TypeSymbol* typeSymbol, int index) override
std::u32string FullName() const override
std::u32string FullName(bool withParamNames) const
std::u32string FullNameWithSpecifiers() const override
FunctionGroupSymbol* FunctionGroup()
const boost::uuids::uuid& FunctionId() const
FunctionSymbol* FunctionTemplate()
void GenerateCall(Emitter& emitter, std::vector<GenObject*>& genObjects, OperationFlags flags, const Span& span, const boost::uuids::uuid& moduleId)
void GenerateVirtualCall(Emitter& emitter, std::vector<GenObject*>& genObjects, OperationFlags flags, const Span& span, const boost::uuids::uuid& moduleId)
ConversionType GetConversionType() const virtual
bool GetFlag(FunctionSymbolFlags flag) const
FunctionNode* GetFunctionNode()
FunctionSymbolFlags GetFunctionSymbolFlags() const
int32_t GetIndex() const
IntrinsicFunction* GetIntrinsic()
std::string GetSpecifierStr() const override
std::string GetSymbolCategoryDescription() const override
std::string GetSymbolCategoryStr() const override
std::string GetSymbolHelp() const override
ParameterSymbol* GetThisParam() const virtual
const std::u32string& GroupName() const
bool HasArtificialBody() const
bool HasCleanup() const
bool HasLinkOnceOdrLinkage() const
bool HasSource() const
bool HasTry() const
std::u32string Id() const override
int32_t ImtIndex() const
std::u32string Info() const override
void* IrType(Emitter& emitter)
bool IsAbstract() const
bool IsArrayElementAccess() const virtual
bool IsBasicTypeOperation() const virtual
bool IsCDecl() const
bool IsClassDelegateCopyConstructor() const virtual
bool IsClassToInterfaceTypeConversion() const virtual
bool IsCompileTimePrimitiveFunction() const virtual
bool IsConst() const
bool IsConstExpr() const
bool IsConstructorDestructorOrNonstaticMemberFunction() const virtual
bool IsConversion() const
bool IsCopy() const
bool IsCopyAssignment() const
bool IsCopyConstructor() const
bool IsDefault() const
bool IsDefaultConstructor() const
bool IsExplicit() const
bool IsExportSymbol() const override
bool IsFunctionSymbol() const override
bool IsFunctionTemplate() const
bool IsGeneratedFunction() const virtual
bool IsImmutable() const override
bool IsInline() const
bool IsLvalueReferenceCopyAssignment() const virtual
bool IsMemberFunctionToClassDelegateConversion() const virtual
bool IsMoveAssignment() const
bool IsMoveConstructor() const
bool IsNew() const
bool IsOverride() const
bool IsProgramMain() const
bool IsSuppressed() const
bool IsSystemDefault() const
bool IsTemplateSpecialization() const
bool IsVarArg() const
bool IsVirtual() const
bool IsVirtualAbstractOrOverride() const
const std::vector<LocalVariableSymbol*>& LocalVariables() const
FunctionSymbol* Master() const
int NextTemporaryIndex()
const std::vector<ParameterSymbol*>& Parameters() const
LocalVariableSymbol* PrevUnwindInfoVar() const
void Read(SymbolReader& reader) override
std::unique_ptr<Symbol> RemoveFromParent() override
void ResetFlag(FunctionSymbolFlags flag)
void ResetImmutable()
ParameterSymbol* ReturnParam()
TypeSymbol* ReturnType() const
bool ReturnsClassInterfaceOrClassDelegateByValue() const
void SetAbstract()
void SetCDecl()
void SetConst()
void SetConstExpr()
void SetConstraint(ConstraintNode* constraint_)
void SetConversion()
void SetConversionSourceType(TypeSymbol* conversionSourceType_)
void SetConversionTargetType(TypeSymbol* conversionTargetType_)
void SetCopy()
void SetDefault()
void SetExplicit()
void SetFlag(FunctionSymbolFlags flag)
void SetFunctionGroup(FunctionGroupSymbol* functionGroup_)
void SetFunctionId(const boost::uuids::uuid& functionId_)
void SetFunctionTemplate(FunctionSymbol* functionTemplate_)
void SetGroupName(const std::u32string& groupName_)
void SetHasArtificialBody()
void SetHasCleanup()
void SetHasSource()
void SetHasTry()
void SetImmutable()
void SetImtIndex(int32_t imtIndex_)
void SetIndex(int32_t index_)
void SetInline()
void SetIntrinsic(IntrinsicFunction* intrinsic_)
void SetLinkOnceOdrLinkage()
void SetMaster(FunctionSymbol* master_)
void SetNew()
void SetOverride()
void SetPrevUnwindInfoVar(LocalVariableSymbol* prevUnwindInfoVar_)
void SetProgramMain()
void SetReturnParam(ParameterSymbol* returnParam_)
void SetReturnType(TypeSymbol* returnType_)
void SetSpecifiers(Specifiers specifiers)
void SetSuppressed()
void SetSystemDefault()
void SetTemplateArgumentTypes(const std::vector<TypeSymbol*>& templateArgumentTypes_)
void SetTemplateSpecialization()
void SetUnwindInfoVar(LocalVariableSymbol* unwindInfoVar_)
void SetVarArg()
void SetVirtual()
void SetVmtIndex(int32_t vmtIndex_)
int StartParamIndex() const virtual
std::string Syntax() const override
const std::vector<TypeSymbol*>& TemplateArgumentTypes() const
const std::vector<TemplateParameterSymbol*>& TemplateParameters() const
std::string TypeString() const override
LocalVariableSymbol* UnwindInfoVar() const
const NodeList<Node>& UsingNodes() const
int32_t VmtIndex() const
void Write(SymbolWriter& writer) override
FunctionSymbol& operator=(const FunctionSymbol&) delete

Member Variables

std::unique_ptr<ConstraintNode> constraint
TypeSymbol* conversionSourceType
TypeSymbol* conversionTargetType
FunctionSymbolFlags flags
FunctionGroupSymbol* functionGroup
boost::uuids::uuid functionId
std::unique_ptr<FunctionNode> functionNode
FunctionSymbol* functionTemplate
std::u32string groupName
int32_t imtIndex
int32_t index
std::unique_ptr<IntrinsicFunction> intrinsic
bool isProgramMain
std::vector<LocalVariableSymbol*> localVariables
FunctionSymbol* master
int nextTemporaryIndex
std::vector<ParameterSymbol*> parameters
std::unique_ptr<LocalVariableSymbol> prevUnwindInfoVar
std::unique_ptr<ParameterSymbol> returnParam
TypeSymbol* returnType
std::vector<TypeSymbol*> templateArgumentTypes
std::vector<TemplateParameterSymbol*> templateParameters
std::unique_ptr<LocalVariableSymbol> unwindInfoVar
NodeList<Node> usingNodes
int32_t vmtIndex

Constructor Details

FunctionSymbol Constructor

cmajor::symbols::FunctionSymbol::FunctionSymbol(SymbolType symbolType_, const Span& span_, const boost::uuids::uuid& sourceModuleId_, const std::u32string& name_)

Definition at line 491 of FunctionSymbol.cpp :
 491 :
 492 ContainerSymbol(symbolType_span_sourceModuleId_name_)functionTemplate(nullptr)master(nullptr)
 493 functionId(boost::uuids::nil_uuid())groupName()parameters()localVariables()
 494 returnType()flags(FunctionSymbolFlags::none)index(-1)vmtIndex(-1)imtIndex(-1)
 495 nextTemporaryIndex(0)functionGroup(nullptr)isProgramMain(false)unwindInfoVar(nullptr)
 496 conversionSourceType(nullptr)conversionTargetType(nullptr)
 497 {
 498 }


Declaration at line 135 of FunctionSymbol.hpp


FunctionSymbol Constructor

cmajor::symbols::FunctionSymbol::FunctionSymbol(const FunctionSymbol &) delete

Definition at line 136 of FunctionSymbol.hpp


FunctionSymbol Constructor

cmajor::symbols::FunctionSymbol::FunctionSymbol(const Span& span_, const boost::uuids::uuid& sourceModuleId_, const std::u32string& name_)

Definition at line 482 of FunctionSymbol.cpp :
 482 :
 483 ContainerSymbol(SymbolType::functionSymbolspan_sourceModuleId_name_)functionTemplate(nullptr)master(nullptr)
 484 functionId(boost::uuids::nil_uuid())groupName()parameters()localVariables()
 485 returnType()flags(FunctionSymbolFlags::none)index(-1)vmtIndex(-1)imtIndex(-1)
 486 nextTemporaryIndex(0)functionGroup(nullptr)isProgramMain(false)unwindInfoVar(nullptr)
 487 conversionSourceType(nullptr)conversionTargetType(nullptr)
 488 {
 489 }


Declaration at line 134 of FunctionSymbol.hpp


Member Function Details

Accept Member Function

void cmajor::symbols::FunctionSymbol::Accept(SymbolCollector * collector) override

Definition at line 628 of FunctionSymbol.cpp :
 629 {
 630     if (IsProject() && Access() == SymbolAccess::public_ && !IsGeneratedFunction())
 631     {
 632         collector->AddFunction(this);
 633     }
 634 }


Declaration at line 141 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::ContainerSymbol::Accept , cmajor::symbols::Symbol::Accept

Derived class overrides: cmajor::symbols::DestructorSymbol::Accept , cmajor::symbols::StaticConstructorSymbol::Accept

Calls: cmajor::symbols::FunctionSymbol::IsGeneratedFunction , cmajor::symbols::Symbol::Access , cmajor::symbols::Symbol::IsProject , cmajor::symbols::SymbolCollector::AddFunction


AddLocalVariable Member Function

void cmajor::symbols::FunctionSymbol::AddLocalVariable(LocalVariableSymbol * localVariable)

Definition at line 1271 of FunctionSymbol.cpp :
1272 {
1273     localVariables.push_back(localVariable);
1274 }


Declaration at line 246 of FunctionSymbol.hpp

Called by: cmajor::symbols::DeclarationBlock::AddMember , cmajor::symbols::FunctionSymbol::CreateTemporary


AddMember Member Function

void cmajor::symbols::FunctionSymbol::AddMember(Symbol * member) override

Definition at line 665 of FunctionSymbol.cpp
Declaration at line 147 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::ContainerSymbol::AddMember

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::GetSymbolType

Called by: cmajor::symbols::ClassTypeSymbol::CreateDestructorSymbol , cmajor::symbols::FunctionSymbol::CreateTemporary , cmajor::symbols::SymbolTable::BeginConstructor , cmajor::symbols::SymbolTable::BeginConversionFunction , cmajor::symbols::SymbolTable::BeginDestructor , cmajor::symbols::SymbolTable::BeginMemberFunction


Arity Member Function

int cmajor::symbols::FunctionSymbol::Arity() const

Definition at line 244 of FunctionSymbol.hpp :
244 { return parameters.size(); }

Called by: cmajor::symbols::FunctionGroupSymbol::AddFunction , cmajor::symbols::FunctionGroupSymbol::CollectViableFunctions , cmajor::symbols::FunctionGroupSymbol::RemoveFunction


Check Member Function

void cmajor::symbols::FunctionSymbol::Check() override

Definition at line 1506 of FunctionSymbol.cpp
Declaration at line 279 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::ContainerSymbol::Check , cmajor::symbols::Symbol::Check

Derived class overrides: cmajor::symbols::ArrayBeginFunction::Check , cmajor::symbols::ArrayCBeginFunction::Check , cmajor::symbols::ArrayCEndFunction::Check , cmajor::symbols::ArrayEndFunction::Check , cmajor::symbols::ArrayLengthFunction::Check , cmajor::symbols::ArrayTypeCopyAssignment::Check , cmajor::symbols::ArrayTypeCopyConstructor::Check , cmajor::symbols::ArrayTypeDefaultConstructor::Check , cmajor::symbols::ArrayTypeElementAccess::Check , cmajor::symbols::ArrayTypeMoveAssignment::Check , cmajor::symbols::ArrayTypeMoveConstructor::Check , cmajor::symbols::BasicTypeConversion::Check , cmajor::symbols::ClassDelegateTypeDefaultConstructor::Check , cmajor::symbols::ClassToInterfaceConversion::Check , cmajor::symbols::DelegateTypeDefaultConstructor::Check , cmajor::symbols::EnumTypeCopyAssignment::Check , cmajor::symbols::EnumTypeCopyConstructor::Check , cmajor::symbols::EnumTypeDefaultConstructor::Check , cmajor::symbols::EnumTypeEqualityOp::Check , cmajor::symbols::EnumTypeMoveAssignment::Check , cmajor::symbols::EnumTypeMoveConstructor::Check , cmajor::symbols::EnumTypeReturn::Check , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::Check , cmajor::symbols::FunctionToDelegateConversion::Check , cmajor::symbols::MemberFunctionToClassDelegateConversion::Check , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::Check

Calls: cmajor::symbols::ContainerSymbol::Check , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ArrayBeginFunction::Check , cmajor::symbols::ArrayCBeginFunction::Check , cmajor::symbols::ArrayCEndFunction::Check , cmajor::symbols::ArrayEndFunction::Check , cmajor::symbols::ArrayLengthFunction::Check , cmajor::symbols::ArrayTypeCopyAssignment::Check , cmajor::symbols::ArrayTypeCopyConstructor::Check , cmajor::symbols::ArrayTypeDefaultConstructor::Check , cmajor::symbols::ArrayTypeElementAccess::Check , cmajor::symbols::ArrayTypeMoveAssignment::Check , cmajor::symbols::ArrayTypeMoveConstructor::Check , cmajor::symbols::BasicTypeConversion::Check , cmajor::symbols::ClassDelegateTypeDefaultConstructor::Check , cmajor::symbols::ClassToInterfaceConversion::Check , cmajor::symbols::DelegateTypeDefaultConstructor::Check , cmajor::symbols::EnumTypeCopyAssignment::Check , cmajor::symbols::EnumTypeCopyConstructor::Check , cmajor::symbols::EnumTypeDefaultConstructor::Check , cmajor::symbols::EnumTypeEqualityOp::Check , cmajor::symbols::EnumTypeMoveAssignment::Check , cmajor::symbols::EnumTypeMoveConstructor::Check , cmajor::symbols::EnumTypeReturn::Check , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::Check , cmajor::symbols::FunctionToDelegateConversion::Check , cmajor::symbols::MemberFunctionToClassDelegateConversion::Check , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::Check


ClassArity Member Function

int cmajor::symbols::FunctionSymbol::ClassArity() const virtual

Definition at line 271 of FunctionSymbol.hpp :
271 { return 0; }

Derived class overrides: cmajor::symbols::BasicTypeBinaryOperation::ClassArity , cmajor::symbols::BasicTypeComparisonOperation::ClassArity , cmajor::symbols::BasicTypeConversion::ClassArity , cmajor::symbols::BasicTypeDefaultCtor::ClassArity , cmajor::symbols::BasicTypeUnaryOperation::ClassArity


ClassName Member Function

const char * cmajor::symbols::FunctionSymbol::ClassName() const override

Definition at line 270 of FunctionSymbol.hpp :
270 { return "FunctionSymbol"; }

Base class overridden functions: cmajor::symbols::ContainerSymbol::ClassName , cmajor::symbols::Symbol::ClassName

Derived class overrides: cmajor::symbols::ArrayBeginFunction::ClassName , cmajor::symbols::ArrayCBeginFunction::ClassName , cmajor::symbols::ArrayCEndFunction::ClassName , cmajor::symbols::ArrayEndFunction::ClassName , cmajor::symbols::ArrayLengthFunction::ClassName , cmajor::symbols::ArrayTypeCopyAssignment::ClassName , cmajor::symbols::ArrayTypeCopyConstructor::ClassName , cmajor::symbols::ArrayTypeDefaultConstructor::ClassName , cmajor::symbols::ArrayTypeElementAccess::ClassName , cmajor::symbols::ArrayTypeMoveAssignment::ClassName , cmajor::symbols::ArrayTypeMoveConstructor::ClassName , cmajor::symbols::BasicTypeBinaryOperation::ClassName , cmajor::symbols::BasicTypeComparisonOperation::ClassName , cmajor::symbols::BasicTypeConversion::ClassName , cmajor::symbols::BasicTypeCopyAssignment::ClassName , cmajor::symbols::BasicTypeCopyCtor::ClassName , cmajor::symbols::BasicTypeDefaultCtor::ClassName , cmajor::symbols::BasicTypeMoveAssignment::ClassName , cmajor::symbols::BasicTypeMoveCtor::ClassName , cmajor::symbols::BasicTypeReturn::ClassName , cmajor::symbols::BasicTypeUnaryOperation::ClassName , cmajor::symbols::ClassDelegateTypeCopyAssignment::ClassName , cmajor::symbols::ClassDelegateTypeCopyConstructor::ClassName , cmajor::symbols::ClassDelegateTypeDefaultConstructor::ClassName , cmajor::symbols::ClassDelegateTypeEquality::ClassName , cmajor::symbols::ClassDelegateTypeMoveAssignment::ClassName , cmajor::symbols::ClassDelegateTypeMoveConstructor::ClassName , cmajor::symbols::ClassToInterfaceConversion::ClassName , cmajor::symbols::ConstructorSymbol::ClassName , cmajor::symbols::ConversionFunctionSymbol::ClassName , cmajor::symbols::DelegateToVoidPtrConversion::ClassName , cmajor::symbols::DelegateTypeCopyAssignment::ClassName , cmajor::symbols::DelegateTypeCopyConstructor::ClassName , cmajor::symbols::DelegateTypeDefaultConstructor::ClassName , cmajor::symbols::DelegateTypeEquality::ClassName , cmajor::symbols::DelegateTypeMoveAssignment::ClassName , cmajor::symbols::DelegateTypeMoveConstructor::ClassName , cmajor::symbols::DelegateTypeReturn::ClassName , cmajor::symbols::DestructorSymbol::ClassName , cmajor::symbols::EnumTypeCopyAssignment::ClassName , cmajor::symbols::EnumTypeCopyConstructor::ClassName , cmajor::symbols::EnumTypeDefaultConstructor::ClassName , cmajor::symbols::EnumTypeEqualityOp::ClassName , cmajor::symbols::EnumTypeMoveAssignment::ClassName , cmajor::symbols::EnumTypeMoveConstructor::ClassName , cmajor::symbols::EnumTypeReturn::ClassName , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::ClassName , cmajor::symbols::FunctionToDelegateConversion::ClassName , cmajor::symbols::InterfaceTypeCopyAssignment::ClassName , cmajor::symbols::InterfaceTypeCopyConstructor::ClassName , cmajor::symbols::InterfaceTypeDefaultConstructor::ClassName , cmajor::symbols::InterfaceTypeMoveAssignment::ClassName , cmajor::symbols::InterfaceTypeMoveConstructor::ClassName , cmajor::symbols::MemberFunctionSymbol::ClassName , cmajor::symbols::MemberFunctionToClassDelegateConversion::ClassName , cmajor::symbols::StaticConstructorSymbol::ClassName , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::ClassName , cmajor::symbols::VoidPtrToDelegateConversion::ClassName


CloneUsingNodes Member Function

void cmajor::symbols::FunctionSymbol::CloneUsingNodes(const std::vector<Node*>& usingNodes_)

Definition at line 1371 of FunctionSymbol.cpp :
1372 {
1373     CloneContext cloneContext;
1374     for (Node* usingNode : usingNodes_)
1375     {
1376         usingNodes.Add(usingNode->Clone(cloneContext));
1377     }
1378 }


Declaration at line 254 of FunctionSymbol.hpp


CodeName Member Function

std::u32string cmajor::symbols::FunctionSymbol::CodeName() const override

Definition at line 156 of FunctionSymbol.hpp :
156 { return groupName; }

Base class overridden functions: cmajor::symbols::Symbol::CodeName

Derived class overrides: cmajor::symbols::ConstructorSymbol::CodeName , cmajor::symbols::DestructorSymbol::CodeName , cmajor::symbols::StaticConstructorSymbol::CodeName


ComputeMangledName Member Function

void cmajor::symbols::FunctionSymbol::ComputeMangledName() override

Definition at line 719 of FunctionSymbol.cpp
Declaration at line 243 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::ComputeMangledName

Calls: cmajor::symbols::FunctionSymbol::Constraint , cmajor::symbols::FunctionSymbol::FullNameWithSpecifiers , cmajor::symbols::FunctionSymbol::GroupName , cmajor::symbols::FunctionSymbol::IsCDecl , cmajor::symbols::FunctionSymbol::TypeString , cmajor::symbols::OperatorMangleMap::Instance , cmajor::symbols::OperatorMangleMap::Mangle , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::Parent , cmajor::symbols::Symbol::SetMangledName , cmajor::symbols::Symbol::SimpleName

Called by: cmajor::symbols::FunctionSymbol::ComputeName


ComputeName Member Function

void cmajor::symbols::FunctionSymbol::ComputeName() virtual

Definition at line 687 of FunctionSymbol.cpp
Declaration at line 151 of FunctionSymbol.hpp

Calls: cmajor::symbols::FunctionSymbol::ComputeMangledName , cmajor::symbols::FunctionSymbol::IsBasicTypeOperation , cmajor::symbols::FunctionSymbol::IsConstructorDestructorOrNonstaticMemberFunction , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::Name , cmajor::symbols::Symbol::SetName , cmajor::symbols::Symbol::SourceModuleId , cmajor::symbols::TypeSymbol::RemovePointer , cmajor::symbols::VariableSymbol::GetType

Called by: cmajor::symbols::ClassTypeSymbol::CreateDestructorSymbol


Constraint Member Function

ConstraintNode* cmajor::symbols::FunctionSymbol::Constraint()

Definition at line 144 of FunctionSymbol.hpp :
144 { return constraint.get(); }

Called by: cmajor::symbols::FunctionSymbol::ComputeMangledName


ConstructValue Member Function

std::unique_ptr<Value > cmajor::symbols::FunctionSymbol::ConstructValue(const std::vector<std::unique_ptr<Value >>& argumentValues, const Span& span, const boost::uuids::uuid& moduleId, Value * receiver) const virtual

Definition at line 1190 of FunctionSymbol.cpp :
1191 {
1192     return std::unique_ptr<Value>();
1193 }


Declaration at line 176 of FunctionSymbol.hpp

Derived class overrides: cmajor::symbols::ArrayLengthFunction::ConstructValue , cmajor::symbols::BasicTypeCopyCtor::ConstructValue , cmajor::symbols::BasicTypeDefaultCtor::ConstructValue , cmajor::symbols::BasicTypeMoveCtor::ConstructValue , cmajor::symbols::StringLengthFunction::ConstructValue


ConversionDistance Member Function

uint8_t cmajor::symbols::FunctionSymbol::ConversionDistance() const virtual

Definition at line 162 of FunctionSymbol.hpp :
162 { return 0; }

Derived class overrides: cmajor::symbols::BasicTypeConversion::ConversionDistance , cmajor::symbols::ClassToInterfaceConversion::ConversionDistance , cmajor::symbols::ConstructorSymbol::ConversionDistance , cmajor::symbols::ConversionFunctionSymbol::ConversionDistance , cmajor::symbols::DelegateToVoidPtrConversion::ConversionDistance , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::ConversionDistance , cmajor::symbols::FunctionToDelegateConversion::ConversionDistance , cmajor::symbols::MemberFunctionToClassDelegateConversion::ConversionDistance , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::ConversionDistance , cmajor::symbols::VoidPtrToDelegateConversion::ConversionDistance

Called by: cmajor::symbols::FunctionSymbol::Dump


ConversionSourceType Member Function

TypeSymbol * cmajor::symbols::FunctionSymbol::ConversionSourceType() const

Definition at line 163 of FunctionSymbol.hpp :
163 { return conversionSourceType; }

Called by: cmajor::symbols::BasicTypeConversion::Info , cmajor::symbols::ConversionTable::AddConversion , cmajor::symbols::FunctionSymbol::Dump


ConversionTargetType Member Function

TypeSymbol * cmajor::symbols::FunctionSymbol::ConversionTargetType() const

Definition at line 165 of FunctionSymbol.hpp :
165 { return conversionTargetType; }

Called by: cmajor::symbols::BasicTypeConversion::Info , cmajor::symbols::ConversionTable::AddConversion , cmajor::symbols::FunctionSymbol::Dump


ConvertValue Member Function

std::unique_ptr<Value > cmajor::symbols::FunctionSymbol::ConvertValue(const std::unique_ptr<Value >& value) const virtual

Definition at line 1195 of FunctionSymbol.cpp :
1196 {
1197     return std::unique_ptr<Value>();
1198 }


Declaration at line 177 of FunctionSymbol.hpp


Copy Member Function

FunctionSymbol * cmajor::symbols::FunctionSymbol::Copy() const virtual

Definition at line 1561 of FunctionSymbol.cpp :
1562 {
1563     FunctionSymbol* copy = new FunctionSymbol(GetSpan()SourceModuleId()Name());
1564     copy->CopyFrom(this);
1565     return copy;
1566 }


Declaration at line 288 of FunctionSymbol.hpp

Derived class overrides: cmajor::symbols::ConstructorSymbol::Copy , cmajor::symbols::ConversionFunctionSymbol::Copy , cmajor::symbols::DestructorSymbol::Copy , cmajor::symbols::MemberFunctionSymbol::Copy , cmajor::symbols::StaticConstructorSymbol::Copy

Calls: cmajor::symbols::FunctionSymbol::CopyFrom , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::Name , cmajor::symbols::Symbol::SourceModuleId


CopyFrom Member Function

void cmajor::symbols::FunctionSymbol::CopyFrom(const Symbol * that) override

Definition at line 1534 of FunctionSymbol.cpp
Declaration at line 287 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::ContainerSymbol::CopyFrom , cmajor::symbols::Symbol::CopyFrom

Calls: cmajor::symbols::ContainerSymbol::CopyFrom , cmajor::symbols::FunctionSymbol::SetReturnParam

Called by: cmajor::symbols::ConstructorSymbol::Copy , cmajor::symbols::ConversionFunctionSymbol::Copy , cmajor::symbols::DestructorSymbol::Copy , cmajor::symbols::FunctionSymbol::Copy , cmajor::symbols::MemberFunctionSymbol::Copy , cmajor::symbols::StaticConstructorSymbol::Copy


CreateDomElement Member Function

std::unique_ptr<Element > cmajor::symbols::FunctionSymbol::CreateDomElement(TypeMap & typeMap) override

Definition at line 1434 of FunctionSymbol.cpp
Declaration at line 268 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::CreateDomElement

Derived class overrides: cmajor::symbols::ConversionFunctionSymbol::CreateDomElement

Calls: cmajor::symbols::FunctionSymbol::IsTemplateSpecialization , cmajor::symbols::TypeMap::GetOrInsertType


CreateTemporariesTo Member Function

std::vector<LocalVariableSymbol *> cmajor::symbols::FunctionSymbol::CreateTemporariesTo(FunctionSymbol * currentFunction) virtual

Definition at line 1389 of FunctionSymbol.cpp :
1390 {
1391     return std::vector<LocalVariableSymbol*>();
1392 }


Declaration at line 256 of FunctionSymbol.hpp

Derived class overrides: cmajor::symbols::ArrayTypeCopyAssignment::CreateTemporariesTo , cmajor::symbols::ArrayTypeCopyConstructor::CreateTemporariesTo , cmajor::symbols::ArrayTypeDefaultConstructor::CreateTemporariesTo , cmajor::symbols::ArrayTypeMoveAssignment::CreateTemporariesTo , cmajor::symbols::ArrayTypeMoveConstructor::CreateTemporariesTo , cmajor::symbols::ClassToInterfaceConversion::CreateTemporariesTo , cmajor::symbols::MemberFunctionToClassDelegateConversion::CreateTemporariesTo


CreateTemporary Member Function

LocalVariableSymbol * cmajor::symbols::FunctionSymbol::CreateTemporary(TypeSymbol * type, const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 1380 of FunctionSymbol.cpp :
1381 {
1382     LocalVariableSymbol* temporary = new LocalVariableSymbol(spanmoduleIdU"@t" + ToUtf32(std::to_string(nextTemporaryIndex++)));
1383     temporary->SetType(type);
1384     AddMember(temporary);
1385     AddLocalVariable(temporary);
1386     return temporary;
1387 }


Declaration at line 255 of FunctionSymbol.hpp

Calls: cmajor::symbols::FunctionSymbol::AddLocalVariable , cmajor::symbols::FunctionSymbol::AddMember , cmajor::symbols::VariableSymbol::SetType

Called by: cmajor::symbols::ArrayTypeCopyAssignment::CreateTemporariesTo , cmajor::symbols::ArrayTypeCopyConstructor::CreateTemporariesTo , cmajor::symbols::ArrayTypeDefaultConstructor::CreateTemporariesTo , cmajor::symbols::ArrayTypeMoveAssignment::CreateTemporariesTo , cmajor::symbols::ArrayTypeMoveConstructor::CreateTemporariesTo , cmajor::symbols::ClassToInterfaceConversion::CreateTemporariesTo , cmajor::symbols::MemberFunctionToClassDelegateConversion::CreateTemporariesTo


DocName Member Function

std::u32string cmajor::symbols::FunctionSymbol::DocName() const override

Definition at line 832 of FunctionSymbol.cpp
Declaration at line 155 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::DocName

Derived class overrides: cmajor::symbols::ConstructorSymbol::DocName , cmajor::symbols::ConversionFunctionSymbol::DocName , cmajor::symbols::MemberFunctionSymbol::DocName

Calls: cmajor::symbols::Symbol::DocName , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::Name , cmajor::symbols::Symbol::Ns , cmajor::symbols::VariableSymbol::GetType

Called by: cmajor::symbols::FunctionSymbol::Syntax


DontThrow Member Function

bool cmajor::symbols::FunctionSymbol::DontThrow() const virtual

Definition at line 238 of FunctionSymbol.hpp :
238 { return (IsNothrow() || IsBasicTypeOperation()) && !HasCleanup(); }

Derived class overrides: cmajor::symbols::DestructorSymbol::DontThrow

Calls: cmajor::symbols::FunctionSymbol::HasCleanup , cmajor::symbols::FunctionSymbol::IsBasicTypeOperation , cmajor::symbols::Symbol::IsNothrow

Called by: cmajor::symbols::ClassTypeSymbol::CreateImt , cmajor::symbols::ClassTypeSymbol::InitVmt , cmajor::symbols::ClassTypeSymbol::VmtObject , cmajor::symbols::FunctionSymbol::GenerateCall , cmajor::symbols::FunctionSymbol::GenerateVirtualCall , cmajor::symbols::FunctionToDelegateConversion::GenerateCall , cmajor::symbols::MemberFunctionToClassDelegateConversion::GenerateCall


Dump Member Function

void cmajor::symbols::FunctionSymbol::Dump(CodeFormatter& formatter) override

Definition at line 1200 of FunctionSymbol.cpp
Declaration at line 181 of FunctionSymbol.hpp

Calls: cmajor::symbols::FunctionSymbol::ConversionDistance , cmajor::symbols::FunctionSymbol::ConversionSourceType , cmajor::symbols::FunctionSymbol::ConversionTargetType , cmajor::symbols::FunctionSymbol::FullNameWithSpecifiers , cmajor::symbols::FunctionSymbol::GetConversionType , cmajor::symbols::FunctionSymbol::IsConversion , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::MangledName , cmajor::symbols::Symbol::Name

Called by: cmajor::symbols::ClassTypeSymbol::Dump , cmajor::symbols::Module::Dump


EmplaceFunction Member Function

void cmajor::symbols::FunctionSymbol::EmplaceFunction(FunctionSymbol * functionSymbol, int index) override

Definition at line 616 of FunctionSymbol.cpp :
 617 {
 618     if (index == 0)
 619     {
 620         functionTemplate = functionSymbol;
 621     }
 622     else
 623     {
 624         Assert(false"invalid emplace function index");
 625     }
 626 }


Declaration at line 140 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::EmplaceFunction

Derived class overrides: cmajor::symbols::EnumTypeCopyAssignment::EmplaceFunction , cmajor::symbols::EnumTypeCopyConstructor::EmplaceFunction , cmajor::symbols::EnumTypeDefaultConstructor::EmplaceFunction , cmajor::symbols::EnumTypeEqualityOp::EmplaceFunction , cmajor::symbols::EnumTypeMoveAssignment::EmplaceFunction , cmajor::symbols::EnumTypeMoveConstructor::EmplaceFunction , cmajor::symbols::EnumTypeReturn::EmplaceFunction


EmplaceType Member Function

void cmajor::symbols::FunctionSymbol::EmplaceType(TypeSymbol * typeSymbol, int index) override

Definition at line 636 of FunctionSymbol.cpp
Declaration at line 146 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::EmplaceType

Derived class overrides: cmajor::symbols::ArrayBeginFunction::EmplaceType , cmajor::symbols::ArrayCBeginFunction::EmplaceType , cmajor::symbols::ArrayCEndFunction::EmplaceType , cmajor::symbols::ArrayEndFunction::EmplaceType , cmajor::symbols::ArrayLengthFunction::EmplaceType , cmajor::symbols::BasicTypeConversion::EmplaceType , cmajor::symbols::ClassDelegateTypeDefaultConstructor::EmplaceType , cmajor::symbols::DelegateTypeDefaultConstructor::EmplaceType , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::EmplaceType , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::EmplaceType

Calls: cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ArrayBeginFunction::EmplaceType , cmajor::symbols::ArrayCBeginFunction::EmplaceType , cmajor::symbols::ArrayCEndFunction::EmplaceType , cmajor::symbols::ArrayEndFunction::EmplaceType , cmajor::symbols::ArrayLengthFunction::EmplaceType , cmajor::symbols::BasicTypeConversion::EmplaceType , cmajor::symbols::ClassDelegateTypeDefaultConstructor::EmplaceType , cmajor::symbols::DelegateTypeDefaultConstructor::EmplaceType , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::EmplaceType , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::EmplaceType


FullName Member Function

std::u32string cmajor::symbols::FunctionSymbol::FullName() const override

Definition at line 807 of FunctionSymbol.cpp :
 808 {
 809     return FullName(false);
 810 }


Declaration at line 152 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::FullName

Calls: cmajor::symbols::FunctionSymbol::FullName

Called by: cmajor::symbols::ClassTypeSymbol::InitImts , cmajor::symbols::ClassTypeSymbol::InitVmt , cmajor::symbols::FunctionIndex::Write , cmajor::symbols::FunctionSymbol::FullNameWithSpecifiers , cmajor::symbols::StaticConstructorSymbol::FullNameWithSpecifiers


FullName Member Function

std::u32string cmajor::symbols::FunctionSymbol::FullName(bool withParamNames) const

Definition at line 758 of FunctionSymbol.cpp
Declaration at line 153 of FunctionSymbol.hpp

Calls: cmajor::symbols::FunctionSymbol::IsConst , cmajor::symbols::FunctionSymbol::StartParamIndex , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::Name , cmajor::symbols::Symbol::Parent , cmajor::symbols::Symbol::SourceModuleId , cmajor::symbols::VariableSymbol::GetType

Called by: cmajor::symbols::FunctionSymbol::FullName , cmajor::symbols::FunctionSymbol::GetSymbolHelp


FullNameWithSpecifiers Member Function

std::u32string cmajor::symbols::FunctionSymbol::FullNameWithSpecifiers() const override

Definition at line 812 of FunctionSymbol.cpp
Declaration at line 154 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::FullNameWithSpecifiers

Derived class overrides: cmajor::symbols::StaticConstructorSymbol::FullNameWithSpecifiers

Calls: cmajor::symbols::FunctionSymbol::FullName , cmajor::symbols::Symbol::GetStableSymbolFlags

Called by: cmajor::symbols::FunctionSymbol::ComputeMangledName , cmajor::symbols::FunctionSymbol::Dump


FunctionGroup Member Function

FunctionGroupSymbol * cmajor::symbols::FunctionSymbol::FunctionGroup()

Definition at line 262 of FunctionSymbol.hpp :
262 { return functionGroup; }


FunctionId Member Function

const boost::uuids::uuid& cmajor::symbols::FunctionSymbol::FunctionId() const

Definition at line 188 of FunctionSymbol.hpp :
188 { Assert(!functionId.is_nil()"function id not initialized");  return functionId; }

Called by: cmajor::symbols::BasicTypeSymbol::Write , cmajor::symbols::ClassTypeSymbol::Write , cmajor::symbols::EnumTypeCopyAssignment::Write , cmajor::symbols::EnumTypeCopyConstructor::Write , cmajor::symbols::EnumTypeDefaultConstructor::Write , cmajor::symbols::EnumTypeEqualityOp::Write , cmajor::symbols::EnumTypeMoveAssignment::Write , cmajor::symbols::EnumTypeMoveConstructor::Write , cmajor::symbols::EnumTypeReturn::Write , cmajor::symbols::FunctionSymbol::Write , cmajor::symbols::FunctionSymbolHash::operator() , cmajor::symbols::FunctionSymbolsEqual::operator() , cmajor::symbols::SymbolTable::AddFunctionSymbolToFunctionIdMap , cmajor::symbols::SymbolTable::Import


FunctionTemplate Member Function

FunctionSymbol * cmajor::symbols::FunctionSymbol::FunctionTemplate()

Definition at line 275 of FunctionSymbol.hpp :
275 { return functionTemplate; }

Called by: cmajor::symbols::FunctionSymbolHash::operator() , cmajor::symbols::FunctionSymbolsEqual::operator()


GenerateCall Member Function

void cmajor::symbols::FunctionSymbol::GenerateCall(Emitter& emitter, std::vector<GenObject*>& genObjects, OperationFlags flags, const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 918 of FunctionSymbol.cpp

Calls: cmajor::symbols::FunctionSymbol::DontThrow , cmajor::symbols::FunctionSymbol::GenerateVirtualCall , cmajor::symbols::FunctionSymbol::IrType , cmajor::symbols::FunctionSymbol::ReturnType , cmajor::symbols::FunctionSymbol::ReturnsClassInterfaceOrClassDelegateByValue , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::MangledName

Called by: cmajor::symbols::ArrayTypeCopyAssignment::GenerateCall , cmajor::symbols::ArrayTypeCopyConstructor::GenerateCall , cmajor::symbols::ArrayTypeDefaultConstructor::GenerateCall , cmajor::symbols::ArrayTypeMoveAssignment::GenerateCall , cmajor::symbols::ArrayTypeMoveConstructor::GenerateCall , cmajor::symbols::EnumTypeCopyAssignment::GenerateCall , cmajor::symbols::EnumTypeCopyConstructor::GenerateCall , cmajor::symbols::EnumTypeDefaultConstructor::GenerateCall , cmajor::symbols::EnumTypeEqualityOp::GenerateCall , cmajor::symbols::EnumTypeMoveAssignment::GenerateCall , cmajor::symbols::EnumTypeMoveConstructor::GenerateCall , cmajor::symbols::EnumTypeReturn::GenerateCall


GenerateVirtualCall Member Function

void cmajor::symbols::FunctionSymbol::GenerateVirtualCall(Emitter& emitter, std::vector<GenObject*>& genObjects, OperationFlags flags, const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 1047 of FunctionSymbol.cpp

Calls: cmajor::symbols::ClassTypeSymbol::VmtPtrHolderClass , cmajor::symbols::ClassTypeSymbol::VmtPtrIndex , cmajor::symbols::ClassTypeSymbol::VmtPtrType , cmajor::symbols::FunctionSymbol::DontThrow , cmajor::symbols::FunctionSymbol::IrType , cmajor::symbols::FunctionSymbol::Parameters , cmajor::symbols::FunctionSymbol::ReturnType , cmajor::symbols::FunctionSymbol::ReturnsClassInterfaceOrClassDelegateByValue , cmajor::symbols::FunctionSymbol::VmtIndex , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::IsClassTypeSymbol , cmajor::symbols::Symbol::SourceModuleId , cmajor::symbols::TypeSymbol::AddPointer , cmajor::symbols::TypeSymbol::BaseType , cmajor::symbols::TypeSymbol::IrType , cmajor::symbols::TypeSymbol::IsVoidType

Called by: cmajor::symbols::FunctionSymbol::GenerateCall


GetConversionType Member Function

ConversionType cmajor::symbols::FunctionSymbol::GetConversionType() const virtual

Definition at line 161 of FunctionSymbol.hpp :
161 { return ConversionType::implicit_; }

Derived class overrides: cmajor::symbols::BasicTypeConversion::GetConversionType , cmajor::symbols::ClassToInterfaceConversion::GetConversionType , cmajor::symbols::ConversionFunctionSymbol::GetConversionType , cmajor::symbols::DelegateToVoidPtrConversion::GetConversionType , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::GetConversionType , cmajor::symbols::FunctionToDelegateConversion::GetConversionType , cmajor::symbols::MemberFunctionToClassDelegateConversion::GetConversionType , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::GetConversionType , cmajor::symbols::VoidPtrToDelegateConversion::GetConversionType

Called by: cmajor::symbols::FunctionSymbol::Dump


GetFlag Member Function

bool cmajor::symbols::FunctionSymbol::GetFlag(FunctionSymbolFlags flag) const

Definition at line 240 of FunctionSymbol.hpp :
240 { return (flags & flag) != FunctionSymbolFlags::none; }

Called by: cmajor::symbols::FunctionSymbol::HasArtificialBody , cmajor::symbols::FunctionSymbol::HasCleanup , cmajor::symbols::FunctionSymbol::HasLinkOnceOdrLinkage , cmajor::symbols::FunctionSymbol::HasSource , cmajor::symbols::FunctionSymbol::HasTry , cmajor::symbols::FunctionSymbol::IsAbstract , cmajor::symbols::FunctionSymbol::IsCDecl , cmajor::symbols::FunctionSymbol::IsConst , cmajor::symbols::FunctionSymbol::IsConstExpr , cmajor::symbols::FunctionSymbol::IsConversion , cmajor::symbols::FunctionSymbol::IsCopy , cmajor::symbols::FunctionSymbol::IsDefault , cmajor::symbols::FunctionSymbol::IsExplicit , cmajor::symbols::FunctionSymbol::IsImmutable , cmajor::symbols::FunctionSymbol::IsInline , cmajor::symbols::FunctionSymbol::IsNew , cmajor::symbols::FunctionSymbol::IsOverride , cmajor::symbols::FunctionSymbol::IsSuppressed , cmajor::symbols::FunctionSymbol::IsSystemDefault , cmajor::symbols::FunctionSymbol::IsTemplateSpecialization , cmajor::symbols::FunctionSymbol::IsVarArg , cmajor::symbols::FunctionSymbol::IsVirtual , cmajor::symbols::FunctionSymbol::IsVirtualAbstractOrOverride


GetFunctionNode Member Function

FunctionNode* cmajor::symbols::FunctionSymbol::GetFunctionNode()

Definition at line 143 of FunctionSymbol.hpp :
143 { return functionNode.get(); }


GetFunctionSymbolFlags Member Function

FunctionSymbolFlags cmajor::symbols::FunctionSymbol::GetFunctionSymbolFlags() const

Definition at line 239 of FunctionSymbol.hpp :
239 { return flags; }

Called by: cmajor::symbols::StaticConstructorSymbol::FullNameWithSpecifiers


GetIndex Member Function

int32_t cmajor::symbols::FunctionSymbol::GetIndex() const

Definition at line 159 of FunctionSymbol.hpp :
159 { return index; }

Called by: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::ContainerSymbol::AddOwnedMember , cmajor::symbols::FunctionSymbolHash::operator() , cmajor::symbols::FunctionSymbolsEqual::operator()


GetIntrinsic Member Function

IntrinsicFunction * cmajor::symbols::FunctionSymbol::GetIntrinsic()

Definition at line 264 of FunctionSymbol.hpp :
264 { return intrinsic.get(); }


GetSpecifierStr Member Function

std::string cmajor::symbols::FunctionSymbol::GetSpecifierStr() const override

Definition at line 876 of FunctionSymbol.cpp
Declaration at line 157 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::GetSpecifierStr

Calls: cmajor::symbols::Symbol::GetStableSymbolFlags

Called by: cmajor::symbols::FunctionSymbol::Syntax


GetSymbolCategoryDescription Member Function

std::string cmajor::symbols::FunctionSymbol::GetSymbolCategoryDescription() const override

Definition at line 291 of FunctionSymbol.hpp :
291 { return "function"; }

Base class overridden functions: cmajor::symbols::Symbol::GetSymbolCategoryDescription

Called by: cmajor::symbols::FunctionSymbol::GetSymbolHelp


GetSymbolCategoryStr Member Function

std::string cmajor::symbols::FunctionSymbol::GetSymbolCategoryStr() const override

Definition at line 290 of FunctionSymbol.hpp :
290 { return "FN"; }

Base class overridden functions: cmajor::symbols::Symbol::GetSymbolCategoryStr


GetSymbolHelp Member Function

std::string cmajor::symbols::FunctionSymbol::GetSymbolHelp() const override

Definition at line 1582 of FunctionSymbol.cpp :
1583 {
1584     std::string help = "(";
1585     help.append(GetSymbolCategoryDescription()).append(") ");
1586     if (returnType)
1587     {
1588         help.append(ToUtf8(returnType->FullName())).append(" ");
1589     }
1590     help.append(ToUtf8(FullName(true)));
1591     return help;
1592 }


Declaration at line 292 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::GetSymbolHelp

Calls: cmajor::symbols::FunctionSymbol::FullName , cmajor::symbols::FunctionSymbol::GetSymbolCategoryDescription , cmajor::symbols::Symbol::FullName

Called by: cmajor::symbols::FunctionGroupSymbol::GetSymbolHelp


GetThisParam Member Function

ParameterSymbol * cmajor::symbols::FunctionSymbol::GetThisParam() const virtual

Definition at line 178 of FunctionSymbol.hpp :
178 { return nullptr; }

Derived class overrides: cmajor::symbols::ConstructorSymbol::GetThisParam , cmajor::symbols::ConversionFunctionSymbol::GetThisParam , cmajor::symbols::DestructorSymbol::GetThisParam , cmajor::symbols::MemberFunctionSymbol::GetThisParam


GroupName Member Function

const std::u32string& cmajor::symbols::FunctionSymbol::GroupName() const

Definition at line 190 of FunctionSymbol.hpp :
190 { return groupName; }

Called by: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::ContainerSymbol::AddOwnedMember , cmajor::symbols::FunctionGroupSymbol::AddFunction , cmajor::symbols::FunctionSymbol::ComputeMangledName , cmajor::symbols::MemberFunctionSymbol::DocName , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers , cmajor::symbols::SymbolTable::BeginFunction


HasArtificialBody Member Function

bool cmajor::symbols::FunctionSymbol::HasArtificialBody() const

Definition at line 230 of FunctionSymbol.hpp :
230 { return GetFlag(FunctionSymbolFlags::hasArtificialBody); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag


HasCleanup Member Function

bool cmajor::symbols::FunctionSymbol::HasCleanup() const

Definition at line 231 of FunctionSymbol.hpp :
231 { return GetFlag(FunctionSymbolFlags::hasCleanup); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::DestructorSymbol::DontThrow , cmajor::symbols::FunctionSymbol::DontThrow


HasLinkOnceOdrLinkage Member Function

bool cmajor::symbols::FunctionSymbol::HasLinkOnceOdrLinkage() const

Definition at line 219 of FunctionSymbol.hpp :
219 { return GetFlag(FunctionSymbolFlags::linkOnceOdrLinkage);  }

Calls: cmajor::symbols::FunctionSymbol::GetFlag


HasSource Member Function

bool cmajor::symbols::FunctionSymbol::HasSource() const

Definition at line 272 of FunctionSymbol.hpp :
272 { return GetFlag(FunctionSymbolFlags::hasSource) && !IsDefault(); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag , cmajor::symbols::FunctionSymbol::IsDefault


HasTry Member Function

bool cmajor::symbols::FunctionSymbol::HasTry() const

Definition at line 223 of FunctionSymbol.hpp :
223 { return GetFlag(FunctionSymbolFlags::hasTry); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag


Id Member Function

std::u32string cmajor::symbols::FunctionSymbol::Id() const override

Definition at line 1448 of FunctionSymbol.cpp
Declaration at line 274 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::Id

Calls: cmajor::symbols::ClassTemplateSpecializationSymbol::GetClassTemplate , cmajor::symbols::ClassTemplateSpecializationSymbol::IsPrototype , cmajor::symbols::ClassTypeSymbol::Prototype , cmajor::symbols::ContainerSymbol::GetFunctionByIndex , cmajor::symbols::FunctionSymbol::Id , cmajor::symbols::FunctionSymbol::IsFunctionTemplate , cmajor::symbols::FunctionSymbol::IsTemplateSpecialization , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::Id , cmajor::symbols::Symbol::Parent , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::FunctionSymbol::Id


ImtIndex Member Function

int32_t cmajor::symbols::FunctionSymbol::ImtIndex() const

Definition at line 260 of FunctionSymbol.hpp :
260 { return imtIndex; }

Called by: cmajor::symbols::ClassTypeSymbol::InitImts , cmajor::symbols::InterfaceTypeSymbol::GenerateCall


Info Member Function

std::u32string cmajor::symbols::FunctionSymbol::Info() const override

Definition at line 269 of FunctionSymbol.hpp :
269 { return groupName; }

Base class overridden functions: cmajor::symbols::Symbol::Info

Derived class overrides: cmajor::symbols::BasicTypeConversion::Info , cmajor::symbols::BasicTypeCopyAssignment::Info , cmajor::symbols::BasicTypeCopyCtor::Info , cmajor::symbols::BasicTypeMoveAssignment::Info , cmajor::symbols::BasicTypeMoveCtor::Info , cmajor::symbols::BasicTypeReturn::Info , cmajor::symbols::ConstructorSymbol::Info , cmajor::symbols::ConversionFunctionSymbol::Info , cmajor::symbols::DestructorSymbol::Info , cmajor::symbols::StaticConstructorSymbol::Info


IrType Member Function

void * cmajor::symbols::FunctionSymbol::IrType(Emitter& emitter)

Definition at line 1394 of FunctionSymbol.cpp

Calls: cmajor::symbols::FunctionSymbol::IrType , cmajor::symbols::FunctionSymbol::ReturnsClassInterfaceOrClassDelegateByValue , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::IsClassTypeSymbol , cmajor::symbols::Symbol::Parent , cmajor::symbols::Symbol::SourceModuleId , cmajor::symbols::TypeSymbol::AddConst , cmajor::symbols::TypeSymbol::AddLvalueReference , cmajor::symbols::TypeSymbol::IrType , cmajor::symbols::VariableSymbol::GetType

Called by: cmajor::symbols::ClassTypeSymbol::CreateImt , cmajor::symbols::ClassTypeSymbol::VmtObject , cmajor::symbols::FunctionSymbol::GenerateCall , cmajor::symbols::FunctionSymbol::GenerateVirtualCall , cmajor::symbols::FunctionSymbol::IrType , cmajor::symbols::FunctionToDelegateConversion::GenerateCall , cmajor::symbols::InterfaceTypeSymbol::GenerateCall , cmajor::symbols::MemberFunctionToClassDelegateConversion::GenerateCall


IsAbstract Member Function

bool cmajor::symbols::FunctionSymbol::IsAbstract() const

Definition at line 210 of FunctionSymbol.hpp :
210 { return GetFlag(FunctionSymbolFlags::abstract_); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::ClassTypeSymbol::InitVmt , cmajor::symbols::ClassTypeSymbol::VmtObject


IsArrayElementAccess Member Function

bool cmajor::symbols::FunctionSymbol::IsArrayElementAccess() const virtual

Definition at line 170 of FunctionSymbol.hpp :
170 { return false; }

Derived class overrides: cmajor::symbols::ArrayTypeElementAccess::IsArrayElementAccess


IsBasicTypeOperation Member Function

bool cmajor::symbols::FunctionSymbol::IsBasicTypeOperation() const virtual

Definition at line 167 of FunctionSymbol.hpp :
167 { return false; }

Derived class overrides: cmajor::symbols::ArrayBeginFunction::IsBasicTypeOperation , cmajor::symbols::ArrayCBeginFunction::IsBasicTypeOperation , cmajor::symbols::ArrayCEndFunction::IsBasicTypeOperation , cmajor::symbols::ArrayEndFunction::IsBasicTypeOperation , cmajor::symbols::ArrayLengthFunction::IsBasicTypeOperation , cmajor::symbols::ArrayTypeCopyAssignment::IsBasicTypeOperation , cmajor::symbols::ArrayTypeCopyConstructor::IsBasicTypeOperation , cmajor::symbols::ArrayTypeDefaultConstructor::IsBasicTypeOperation , cmajor::symbols::ArrayTypeElementAccess::IsBasicTypeOperation , cmajor::symbols::ArrayTypeMoveAssignment::IsBasicTypeOperation , cmajor::symbols::ArrayTypeMoveConstructor::IsBasicTypeOperation , cmajor::symbols::BasicTypeBinaryOperation::IsBasicTypeOperation , cmajor::symbols::BasicTypeComparisonOperation::IsBasicTypeOperation , cmajor::symbols::BasicTypeConversion::IsBasicTypeOperation , cmajor::symbols::BasicTypeCopyAssignment::IsBasicTypeOperation , cmajor::symbols::BasicTypeCopyCtor::IsBasicTypeOperation , cmajor::symbols::BasicTypeDefaultCtor::IsBasicTypeOperation , cmajor::symbols::BasicTypeMoveAssignment::IsBasicTypeOperation , cmajor::symbols::BasicTypeMoveCtor::IsBasicTypeOperation , cmajor::symbols::BasicTypeReturn::IsBasicTypeOperation , cmajor::symbols::BasicTypeUnaryOperation::IsBasicTypeOperation , cmajor::symbols::ClassDelegateTypeCopyAssignment::IsBasicTypeOperation , cmajor::symbols::ClassDelegateTypeCopyConstructor::IsBasicTypeOperation , cmajor::symbols::ClassDelegateTypeDefaultConstructor::IsBasicTypeOperation , cmajor::symbols::ClassDelegateTypeEquality::IsBasicTypeOperation , cmajor::symbols::ClassDelegateTypeMoveAssignment::IsBasicTypeOperation , cmajor::symbols::ClassDelegateTypeMoveConstructor::IsBasicTypeOperation , cmajor::symbols::ClassToInterfaceConversion::IsBasicTypeOperation , cmajor::symbols::DelegateToVoidPtrConversion::IsBasicTypeOperation , cmajor::symbols::DelegateTypeCopyAssignment::IsBasicTypeOperation , cmajor::symbols::DelegateTypeCopyConstructor::IsBasicTypeOperation , cmajor::symbols::DelegateTypeDefaultConstructor::IsBasicTypeOperation , cmajor::symbols::DelegateTypeEquality::IsBasicTypeOperation , cmajor::symbols::DelegateTypeMoveAssignment::IsBasicTypeOperation , cmajor::symbols::DelegateTypeMoveConstructor::IsBasicTypeOperation , cmajor::symbols::DelegateTypeReturn::IsBasicTypeOperation , cmajor::symbols::EnumTypeCopyAssignment::IsBasicTypeOperation , cmajor::symbols::EnumTypeCopyConstructor::IsBasicTypeOperation , cmajor::symbols::EnumTypeDefaultConstructor::IsBasicTypeOperation , cmajor::symbols::EnumTypeEqualityOp::IsBasicTypeOperation , cmajor::symbols::EnumTypeMoveAssignment::IsBasicTypeOperation , cmajor::symbols::EnumTypeMoveConstructor::IsBasicTypeOperation , cmajor::symbols::EnumTypeReturn::IsBasicTypeOperation , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::IsBasicTypeOperation , cmajor::symbols::FunctionToDelegateConversion::IsBasicTypeOperation , cmajor::symbols::InterfaceTypeCopyAssignment::IsBasicTypeOperation , cmajor::symbols::InterfaceTypeCopyConstructor::IsBasicTypeOperation , cmajor::symbols::InterfaceTypeDefaultConstructor::IsBasicTypeOperation , cmajor::symbols::InterfaceTypeMoveAssignment::IsBasicTypeOperation , cmajor::symbols::InterfaceTypeMoveConstructor::IsBasicTypeOperation , cmajor::symbols::MemberFunctionToClassDelegateConversion::IsBasicTypeOperation , cmajor::symbols::StringLengthFunction::IsBasicTypeOperation , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::IsBasicTypeOperation , cmajor::symbols::VoidPtrToDelegateConversion::IsBasicTypeOperation

Called by: cmajor::symbols::FunctionSymbol::ComputeName , cmajor::symbols::FunctionSymbol::DontThrow


IsCDecl Member Function

bool cmajor::symbols::FunctionSymbol::IsCDecl() const

Definition at line 198 of FunctionSymbol.hpp :
198 { return GetFlag(FunctionSymbolFlags::cdecl_); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::FunctionSymbol::ComputeMangledName


IsClassDelegateCopyConstructor Member Function

bool cmajor::symbols::FunctionSymbol::IsClassDelegateCopyConstructor() const virtual

Definition at line 180 of FunctionSymbol.hpp :
180 { return false; }

Derived class overrides: cmajor::symbols::ClassDelegateTypeCopyConstructor::IsClassDelegateCopyConstructor

Called by: cmajor::symbols::ClassDelegateTypeSymbol::AddMember


IsClassToInterfaceTypeConversion Member Function

bool cmajor::symbols::FunctionSymbol::IsClassToInterfaceTypeConversion() const virtual

Definition at line 172 of FunctionSymbol.hpp :
172 { return false; }

Derived class overrides: cmajor::symbols::ClassToInterfaceConversion::IsClassToInterfaceTypeConversion


IsCompileTimePrimitiveFunction Member Function

bool cmajor::symbols::FunctionSymbol::IsCompileTimePrimitiveFunction() const virtual

Definition at line 171 of FunctionSymbol.hpp :
171 { return false; }

Derived class overrides: cmajor::symbols::ArrayLengthFunction::IsCompileTimePrimitiveFunction , cmajor::symbols::BasicTypeCopyAssignment::IsCompileTimePrimitiveFunction , cmajor::symbols::BasicTypeCopyCtor::IsCompileTimePrimitiveFunction , cmajor::symbols::BasicTypeDefaultCtor::IsCompileTimePrimitiveFunction , cmajor::symbols::BasicTypeMoveCtor::IsCompileTimePrimitiveFunction , cmajor::symbols::StringLengthFunction::IsCompileTimePrimitiveFunction


IsConst Member Function

bool cmajor::symbols::FunctionSymbol::IsConst() const

Definition at line 215 of FunctionSymbol.hpp :
215 { return GetFlag(FunctionSymbolFlags::const_); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::ConversionFunctionSymbol::DocName , cmajor::symbols::FunctionSymbol::FullName , cmajor::symbols::MemberFunctionSymbol::DocName


IsConstExpr Member Function

bool cmajor::symbols::FunctionSymbol::IsConstExpr() const

Definition at line 196 of FunctionSymbol.hpp :
196 { return GetFlag(FunctionSymbolFlags::constExpr); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::FunctionSymbol::Read , cmajor::symbols::FunctionSymbol::Write


IsConstructorDestructorOrNonstaticMemberFunction Member Function

bool cmajor::symbols::FunctionSymbol::IsConstructorDestructorOrNonstaticMemberFunction() const virtual

Definition at line 179 of FunctionSymbol.hpp :
179 { return false; }

Derived class overrides: cmajor::symbols::ClassDelegateTypeCopyAssignment::IsConstructorDestructorOrNonstaticMemberFunction , cmajor::symbols::ClassDelegateTypeCopyConstructor::IsConstructorDestructorOrNonstaticMemberFunction , cmajor::symbols::ClassDelegateTypeDefaultConstructor::IsConstructorDestructorOrNonstaticMemberFunction , cmajor::symbols::ClassDelegateTypeEquality::IsConstructorDestructorOrNonstaticMemberFunction , cmajor::symbols::ClassDelegateTypeMoveAssignment::IsConstructorDestructorOrNonstaticMemberFunction , cmajor::symbols::ClassDelegateTypeMoveConstructor::IsConstructorDestructorOrNonstaticMemberFunction , cmajor::symbols::ConstructorSymbol::IsConstructorDestructorOrNonstaticMemberFunction , cmajor::symbols::ConversionFunctionSymbol::IsConstructorDestructorOrNonstaticMemberFunction , cmajor::symbols::DestructorSymbol::IsConstructorDestructorOrNonstaticMemberFunction , cmajor::symbols::MemberFunctionSymbol::IsConstructorDestructorOrNonstaticMemberFunction

Called by: cmajor::symbols::FunctionSymbol::ComputeName


IsConversion Member Function

bool cmajor::symbols::FunctionSymbol::IsConversion() const

Definition at line 217 of FunctionSymbol.hpp :
217 { return GetFlag(FunctionSymbolFlags::conversion); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::FunctionSymbol::Dump , cmajor::symbols::FunctionSymbol::Read , cmajor::symbols::FunctionSymbol::Write , cmajor::symbols::SymbolTable::AddFunctionSymbolToGlobalScope


IsCopy Member Function

bool cmajor::symbols::FunctionSymbol::IsCopy() const

Definition at line 225 of FunctionSymbol.hpp :
225 { return GetFlag(FunctionSymbolFlags::copy); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::FunctionSymbol::IsExportSymbol


IsCopyAssignment Member Function

bool cmajor::symbols::FunctionSymbol::IsCopyAssignment() const

Definition at line 1255 of FunctionSymbol.cpp :
1256 {
1257     return parameters.size() == 2 && groupName == U"operator=" && 
1258         parameters[0]->GetType()->PointerCount() == 1 && 
1259         parameters[0]->GetType()->RemovePointer(GetSpan()SourceModuleId())->IsClassTypeSymbol() && 
1260         TypesEqual(parameters[0]->GetType()->BaseType()->AddConst(GetSpan()SourceModuleId())->AddLvalueReference(GetSpan()SourceModuleId())parameters[1]->GetType());
1261 }


Declaration at line 185 of FunctionSymbol.hpp

Calls: cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::IsClassTypeSymbol , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ClassTypeSymbol::SetSpecialMemberFunctions , cmajor::symbols::MemberFunctionSymbol::TypeString


IsCopyConstructor Member Function

bool cmajor::symbols::FunctionSymbol::IsCopyConstructor() const

Definition at line 1239 of FunctionSymbol.cpp :
1240 {
1241     return parameters.size() == 2 && groupName == U"@constructor" && 
1242         parameters[0]->GetType()->PointerCount() == 1 && 
1243         parameters[0]->GetType()->RemovePointer(GetSpan()SourceModuleId())->IsClassTypeSymbol() && 
1244         TypesEqual(parameters[0]->GetType()->BaseType()->AddConst(GetSpan()SourceModuleId())->AddLvalueReference(GetSpan()SourceModuleId())parameters[1]->GetType());
1245 }


Declaration at line 183 of FunctionSymbol.hpp

Calls: cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::IsClassTypeSymbol , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ClassTypeSymbol::SetSpecialMemberFunctions , cmajor::symbols::ConstructorSymbol::TypeString


IsDefault Member Function

bool cmajor::symbols::FunctionSymbol::IsDefault() const

Definition at line 200 of FunctionSymbol.hpp :
200 { return GetFlag(FunctionSymbolFlags::default_); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::FunctionSymbol::HasSource


IsDefaultConstructor Member Function

bool cmajor::symbols::FunctionSymbol::IsDefaultConstructor() const

Definition at line 1234 of FunctionSymbol.cpp :
1235 {
1236     return parameters.size() == 1 && groupName == U"@constructor" && parameters[0]->GetType()->PointerCount() == 1 && parameters[0]->GetType()->RemovePointer(GetSpan()SourceModuleId())->IsClassTypeSymbol();
1237 }


Declaration at line 182 of FunctionSymbol.hpp

Calls: cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::IsClassTypeSymbol , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ClassTypeSymbol::SetSpecialMemberFunctions , cmajor::symbols::ConstructorSymbol::TypeString


IsExplicit Member Function

bool cmajor::symbols::FunctionSymbol::IsExplicit() const

Definition at line 204 of FunctionSymbol.hpp :
204 { return GetFlag(FunctionSymbolFlags::explicit_); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag


IsExportSymbol Member Function

bool cmajor::symbols::FunctionSymbol::IsExportSymbol() const override

Definition at line 678 of FunctionSymbol.cpp :
 679 {
 680     if (IsTemplateSpecialization() && Parent()->GetSymbolType() != SymbolType::classTemplateSpecializationSymbol) return false;
 681     if (IsGeneratedFunction()) return false;
 682     if (intrinsic) return false;
 683     if (IsCopy()) return false;
 684     return ContainerSymbol::IsExportSymbol();
 685 }


Declaration at line 150 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::IsExportSymbol

Derived class overrides: cmajor::symbols::DestructorSymbol::IsExportSymbol

Calls: cmajor::symbols::FunctionSymbol::IsCopy , cmajor::symbols::FunctionSymbol::IsGeneratedFunction , cmajor::symbols::FunctionSymbol::IsTemplateSpecialization , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::IsExportSymbol , cmajor::symbols::Symbol::Parent


IsFunctionSymbol Member Function

bool cmajor::symbols::FunctionSymbol::IsFunctionSymbol() const override

Definition at line 148 of FunctionSymbol.hpp :
148 { return true; }

Base class overridden functions: cmajor::symbols::Symbol::IsFunctionSymbol


IsFunctionTemplate Member Function

bool cmajor::symbols::FunctionSymbol::IsFunctionTemplate() const

Definition at line 253 of FunctionSymbol.hpp :
253 { return !templateParameters.empty(); }

Called by: cmajor::symbols::FunctionSymbol::Id , cmajor::symbols::FunctionSymbol::Read , cmajor::symbols::FunctionSymbol::Write


IsGeneratedFunction Member Function

bool cmajor::symbols::FunctionSymbol::IsGeneratedFunction() const virtual

Definition at line 168 of FunctionSymbol.hpp :
168 { return false; }

Derived class overrides: cmajor::symbols::DestructorSymbol::IsGeneratedFunction

Called by: cmajor::symbols::ClassTypeSymbol::Write , cmajor::symbols::FunctionSymbol::Accept , cmajor::symbols::FunctionSymbol::IsExportSymbol , cmajor::symbols::FunctionSymbolHash::operator() , cmajor::symbols::FunctionSymbolsEqual::operator()


IsImmutable Member Function

bool cmajor::symbols::FunctionSymbol::IsImmutable() const override

Definition at line 235 of FunctionSymbol.hpp :
235 { return GetFlag(FunctionSymbolFlags::immutable); }

Base class overridden functions: cmajor::symbols::ContainerSymbol::IsImmutable

Calls: cmajor::symbols::FunctionSymbol::GetFlag


IsInline Member Function

bool cmajor::symbols::FunctionSymbol::IsInline() const

Definition at line 194 of FunctionSymbol.hpp :
194 { return GetFlag(FunctionSymbolFlags::inline_); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::ConstructorSymbol::SetSpecifiers , cmajor::symbols::FunctionSymbol::Read , cmajor::symbols::FunctionSymbol::Write , cmajor::symbols::FunctionSymbolHash::operator() , cmajor::symbols::FunctionSymbolsEqual::operator() , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


IsLvalueReferenceCopyAssignment Member Function

bool cmajor::symbols::FunctionSymbol::IsLvalueReferenceCopyAssignment() const virtual

Definition at line 169 of FunctionSymbol.hpp :
169 { return false; }


IsMemberFunctionToClassDelegateConversion Member Function

bool cmajor::symbols::FunctionSymbol::IsMemberFunctionToClassDelegateConversion() const virtual

Definition at line 173 of FunctionSymbol.hpp :
173 { return false; }

Derived class overrides: cmajor::symbols::MemberFunctionToClassDelegateConversion::IsMemberFunctionToClassDelegateConversion


IsMoveAssignment Member Function

bool cmajor::symbols::FunctionSymbol::IsMoveAssignment() const

Definition at line 1263 of FunctionSymbol.cpp :
1264 {
1265     return parameters.size() == 2 && groupName == U"operator=" && 
1266 parameters[0]->GetType()->PointerCount() == 1 && 
1267 parameters[0]->GetType()->RemovePointer(GetSpan()SourceModuleId())->IsClassTypeSymbol() && 
1268 TypesEqual(parameters[0]->GetType()->BaseType()->AddRvalueReference(GetSpan()SourceModuleId())parameters[1]->GetType());
1269 }


Declaration at line 186 of FunctionSymbol.hpp

Calls: cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::IsClassTypeSymbol , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ClassTypeSymbol::SetSpecialMemberFunctions , cmajor::symbols::MemberFunctionSymbol::TypeString


IsMoveConstructor Member Function

bool cmajor::symbols::FunctionSymbol::IsMoveConstructor() const

Definition at line 1247 of FunctionSymbol.cpp :
1248 {
1249     return parameters.size() == 2 && groupName == U"@constructor" && 
1250         parameters[0]->GetType()->PointerCount() == 1 && 
1251         parameters[0]->GetType()->RemovePointer(GetSpan()SourceModuleId())->IsClassTypeSymbol() && 
1252         TypesEqual(parameters[0]->GetType()->BaseType()->AddRvalueReference(GetSpan()SourceModuleId())parameters[1]->GetType());
1253 }


Declaration at line 184 of FunctionSymbol.hpp

Calls: cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::IsClassTypeSymbol , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ClassTypeSymbol::SetSpecialMemberFunctions , cmajor::symbols::ConstructorSymbol::TypeString


IsNew Member Function

bool cmajor::symbols::FunctionSymbol::IsNew() const

Definition at line 213 of FunctionSymbol.hpp :
213 { return GetFlag(FunctionSymbolFlags::new_); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag


IsOverride Member Function

bool cmajor::symbols::FunctionSymbol::IsOverride() const

Definition at line 208 of FunctionSymbol.hpp :
208 { return GetFlag(FunctionSymbolFlags::override_); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::ClassTypeSymbol::InitVmt , cmajor::symbols::ClassTypeSymbol::InitVmt , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


IsProgramMain Member Function

bool cmajor::symbols::FunctionSymbol::IsProgramMain() const

Definition at line 266 of FunctionSymbol.hpp :
266 { return isProgramMain; }

Called by: cmajor::symbols::FunctionGroupSymbol::AddFunction


IsSuppressed Member Function

bool cmajor::symbols::FunctionSymbol::IsSuppressed() const

Definition at line 202 of FunctionSymbol.hpp :
202 { return GetFlag(FunctionSymbolFlags::suppress); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::ConstructorSymbol::SetSpecifiers , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


IsSystemDefault Member Function

bool cmajor::symbols::FunctionSymbol::IsSystemDefault() const

Definition at line 233 of FunctionSymbol.hpp :
233 { return GetFlag(FunctionSymbolFlags::systemDefault); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag


IsTemplateSpecialization Member Function

bool cmajor::symbols::FunctionSymbol::IsTemplateSpecialization() const

Definition at line 221 of FunctionSymbol.hpp :
221 { return GetFlag(FunctionSymbolFlags::templateSpecialization); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::ContainerSymbol::HasProjectMembers , cmajor::symbols::FunctionGroupSymbol::AppendChildElements , cmajor::symbols::FunctionGroupSymbol::HasProjectMembers , cmajor::symbols::FunctionSymbol::CreateDomElement , cmajor::symbols::FunctionSymbol::Id , cmajor::symbols::FunctionSymbol::IsExportSymbol , cmajor::symbols::FunctionSymbolHash::operator() , cmajor::symbols::FunctionSymbolsEqual::operator()


IsVarArg Member Function

bool cmajor::symbols::FunctionSymbol::IsVarArg() const

Definition at line 227 of FunctionSymbol.hpp :
227 { return GetFlag(FunctionSymbolFlags::varArg); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::FunctionGroupSymbol::AddFunction , cmajor::symbols::FunctionGroupSymbol::RemoveFunction


IsVirtual Member Function

bool cmajor::symbols::FunctionSymbol::IsVirtual() const

Definition at line 206 of FunctionSymbol.hpp :
206 { return GetFlag(FunctionSymbolFlags::virtual_); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::ClassTypeSymbol::InitVmt , cmajor::symbols::ClassTypeSymbol::InitVmt , cmajor::symbols::DestructorSymbol::SetSpecifiers , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


IsVirtualAbstractOrOverride Member Function

bool cmajor::symbols::FunctionSymbol::IsVirtualAbstractOrOverride() const

Definition at line 212 of FunctionSymbol.hpp :
212 { return GetFlag(FunctionSymbolFlags::virtual_ | FunctionSymbolFlags::abstract_ | FunctionSymbolFlags::override_); }

Calls: cmajor::symbols::FunctionSymbol::GetFlag

Called by: cmajor::symbols::ClassTypeSymbol::InitVmt , cmajor::symbols::ClassTypeSymbol::InitVmt , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


LocalVariables Member Function

const std::vector<LocalVariableSymbol *>& cmajor::symbols::FunctionSymbol::LocalVariables() const

Definition at line 247 of FunctionSymbol.hpp :
247 { return localVariables; }

Called by: cmajor::symbols::SymbolTable::AddLocalVariable


Master Member Function

FunctionSymbol * cmajor::symbols::FunctionSymbol::Master() const

Definition at line 280 of FunctionSymbol.hpp :
280 { return master; }


NextTemporaryIndex Member Function

int cmajor::symbols::FunctionSymbol::NextTemporaryIndex()

Definition at line 1529 of FunctionSymbol.cpp :
1530 {
1531     return nextTemporaryIndex++;
1532 }


Declaration at line 286 of FunctionSymbol.hpp


Parameters Member Function

const std::vector<ParameterSymbol *>& cmajor::symbols::FunctionSymbol::Parameters() const

Definition at line 245 of FunctionSymbol.hpp :
245 { return parameters; }

Called by: cmajor::symbols::ConstructorSymbol::DocName , cmajor::symbols::ConstructorSymbol::GetThisParam , cmajor::symbols::ContainerScope::LookupQualifiedBeginWith , cmajor::symbols::ConversionFunctionSymbol::GetThisParam , cmajor::symbols::DestructorSymbol::GetThisParam , cmajor::symbols::FunctionSymbol::GenerateVirtualCall , cmajor::symbols::InterfaceTypeSymbol::GenerateCall , cmajor::symbols::MemberFunctionSymbol::DocName , cmajor::symbols::MemberFunctionSymbol::GetThisParam


PrevUnwindInfoVar Member Function

LocalVariableSymbol * cmajor::symbols::FunctionSymbol::PrevUnwindInfoVar() const

Definition at line 283 of FunctionSymbol.hpp :
283 { return prevUnwindInfoVar.get(); }


Read Member Function

void cmajor::symbols::FunctionSymbol::Read(SymbolReader & reader) override

Definition at line 557 of FunctionSymbol.cpp
Declaration at line 139 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::ContainerSymbol::Read , cmajor::symbols::Symbol::Read

Derived class overrides: cmajor::symbols::ArrayBeginFunction::Read , cmajor::symbols::ArrayCBeginFunction::Read , cmajor::symbols::ArrayCEndFunction::Read , cmajor::symbols::ArrayEndFunction::Read , cmajor::symbols::ArrayLengthFunction::Read , cmajor::symbols::BasicTypeConversion::Read , cmajor::symbols::ClassDelegateTypeDefaultConstructor::Read , cmajor::symbols::DelegateTypeDefaultConstructor::Read , cmajor::symbols::DestructorSymbol::Read , cmajor::symbols::EnumTypeCopyAssignment::Read , cmajor::symbols::EnumTypeCopyConstructor::Read , cmajor::symbols::EnumTypeDefaultConstructor::Read , cmajor::symbols::EnumTypeEqualityOp::Read , cmajor::symbols::EnumTypeMoveAssignment::Read , cmajor::symbols::EnumTypeMoveConstructor::Read , cmajor::symbols::EnumTypeReturn::Read , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::Read , cmajor::symbols::StringLengthFunction::Read , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::Read

Calls: cmajor::symbols::ContainerSymbol::Read , cmajor::symbols::FunctionSymbol::IsConstExpr , cmajor::symbols::FunctionSymbol::IsConversion , cmajor::symbols::FunctionSymbol::IsFunctionTemplate , cmajor::symbols::FunctionSymbol::IsInline , cmajor::symbols::FunctionSymbol::Read , cmajor::symbols::SymbolReader::AddConversion , cmajor::symbols::SymbolReader::GetAstReader , cmajor::symbols::SymbolReader::GetBinaryReader , cmajor::symbols::SymbolReader::GetSymbolTable , cmajor::symbols::SymbolReader::ReadParameterSymbol , cmajor::symbols::SymbolTable::AddFunctionSymbolToFunctionIdMap , cmajor::symbols::SymbolTable::EmplaceFunctionRequest , cmajor::symbols::SymbolTable::EmplaceTypeRequest , sngcm::ast::AstReader::ReadConstraintNode , sngcm::ast::AstReader::ReadNode

Called by: cmajor::symbols::ArrayBeginFunction::Read , cmajor::symbols::ArrayCBeginFunction::Read , cmajor::symbols::ArrayCEndFunction::Read , cmajor::symbols::ArrayEndFunction::Read , cmajor::symbols::ArrayLengthFunction::Read , cmajor::symbols::BasicTypeConversion::Read , cmajor::symbols::ClassDelegateTypeDefaultConstructor::Read , cmajor::symbols::DelegateTypeDefaultConstructor::Read , cmajor::symbols::DestructorSymbol::Read , cmajor::symbols::EnumTypeCopyAssignment::Read , cmajor::symbols::EnumTypeCopyConstructor::Read , cmajor::symbols::EnumTypeDefaultConstructor::Read , cmajor::symbols::EnumTypeEqualityOp::Read , cmajor::symbols::EnumTypeMoveAssignment::Read , cmajor::symbols::EnumTypeMoveConstructor::Read , cmajor::symbols::EnumTypeReturn::Read , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::Read , cmajor::symbols::FunctionSymbol::Read , cmajor::symbols::StringLengthFunction::Read , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::Read


RemoveFromParent Member Function

std::unique_ptr<Symbol > cmajor::symbols::FunctionSymbol::RemoveFromParent() override

Definition at line 1568 of FunctionSymbol.cpp
Declaration at line 289 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::RemoveFromParent

Calls: cmajor::symbols::FunctionGroupSymbol::IsEmpty , cmajor::symbols::FunctionGroupSymbol::RemoveFunction , cmajor::symbols::Symbol::RemoveFromParent


ResetFlag Member Function

void cmajor::symbols::FunctionSymbol::ResetFlag(FunctionSymbolFlags flag)

Definition at line 242 of FunctionSymbol.hpp :
242 { flags = flags & ~flag; }

Called by: cmajor::symbols::FunctionSymbol::ResetImmutable


ResetImmutable Member Function

void cmajor::symbols::FunctionSymbol::ResetImmutable()

Definition at line 237 of FunctionSymbol.hpp :
237 { ResetFlag(FunctionSymbolFlags::immutable); }

Calls: cmajor::symbols::FunctionSymbol::ResetFlag


ReturnParam Member Function

ParameterSymbol * cmajor::symbols::FunctionSymbol::ReturnParam()

Definition at line 250 of FunctionSymbol.hpp :
250 { return returnParam.get(); }


ReturnType Member Function

TypeSymbol * cmajor::symbols::FunctionSymbol::ReturnType() const

Definition at line 249 of FunctionSymbol.hpp :
249 { return returnType; }

Called by: cmajor::symbols::ConversionFunctionSymbol::CreateDomElement , cmajor::symbols::ConversionFunctionSymbol::DocName , cmajor::symbols::FunctionSymbol::GenerateCall , cmajor::symbols::FunctionSymbol::GenerateVirtualCall , cmajor::symbols::FunctionSymbol::Syntax , cmajor::symbols::InterfaceTypeSymbol::GenerateCall


ReturnsClassInterfaceOrClassDelegateByValue Member Function

bool cmajor::symbols::FunctionSymbol::ReturnsClassInterfaceOrClassDelegateByValue() const

Definition at line 1276 of FunctionSymbol.cpp :
1277 {
1278     return returnType&&(  returnType->IsClassTypeSymbol() || returnType->GetSymbolType() == SymbolType::classDelegateTypeSymbol || returnType->GetSymbolType() == SymbolType::interfaceTypeSymbol);
1279 }


Declaration at line 252 of FunctionSymbol.hpp

Calls: cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::IsClassTypeSymbol

Called by: cmajor::symbols::FunctionSymbol::GenerateCall , cmajor::symbols::FunctionSymbol::GenerateVirtualCall , cmajor::symbols::FunctionSymbol::IrType , cmajor::symbols::InterfaceTypeSymbol::GenerateCall


SetAbstract Member Function

void cmajor::symbols::FunctionSymbol::SetAbstract()

Definition at line 211 of FunctionSymbol.hpp :
211 { SetFlag(FunctionSymbolFlags::abstract_); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


SetCDecl Member Function

void cmajor::symbols::FunctionSymbol::SetCDecl()

Definition at line 199 of FunctionSymbol.hpp :
199 { SetFlag(FunctionSymbolFlags::cdecl_); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::FunctionSymbol::SetSpecifiers , cmajor::symbols::SymbolTable::BeginFunction


SetConst Member Function

void cmajor::symbols::FunctionSymbol::SetConst()

Definition at line 216 of FunctionSymbol.hpp :
216 { SetFlag(FunctionSymbolFlags::const_); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::ConversionFunctionSymbol::SetSpecifiers , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


SetConstExpr Member Function

void cmajor::symbols::FunctionSymbol::SetConstExpr()

Definition at line 197 of FunctionSymbol.hpp :
197 { SetFlag(FunctionSymbolFlags::constExpr); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::ConstructorSymbol::SetSpecifiers , cmajor::symbols::ConversionFunctionSymbol::SetSpecifiers , cmajor::symbols::FunctionSymbol::SetSpecifiers , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers , cmajor::symbols::SymbolTable::BeginConstructor , cmajor::symbols::SymbolTable::BeginConversionFunction , cmajor::symbols::SymbolTable::BeginFunction , cmajor::symbols::SymbolTable::BeginMemberFunction


SetConstraint Member Function

void cmajor::symbols::FunctionSymbol::SetConstraint(ConstraintNode* constraint_)

Definition at line 145 of FunctionSymbol.hpp :
145 { constraint.reset(constraint_); }

Called by: cmajor::symbols::SymbolTable::BeginConstructor , cmajor::symbols::SymbolTable::BeginConversionFunction , cmajor::symbols::SymbolTable::BeginDestructor , cmajor::symbols::SymbolTable::BeginFunction , cmajor::symbols::SymbolTable::BeginMemberFunction , cmajor::symbols::SymbolTable::BeginStaticConstructor


SetConversion Member Function

void cmajor::symbols::FunctionSymbol::SetConversion()

Definition at line 218 of FunctionSymbol.hpp :
218 { SetFlag(FunctionSymbolFlags::conversion); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag


SetConversionSourceType Member Function

void cmajor::symbols::FunctionSymbol::SetConversionSourceType(TypeSymbol * conversionSourceType_)

Definition at line 908 of FunctionSymbol.cpp :
 909 {
 910     conversionSourceType = conversionSourceType_;
 911 }


Declaration at line 164 of FunctionSymbol.hpp


SetConversionTargetType Member Function

void cmajor::symbols::FunctionSymbol::SetConversionTargetType(TypeSymbol * conversionTargetType_)

Definition at line 913 of FunctionSymbol.cpp :
 914 {
 915     conversionTargetType = conversionTargetType_;
 916 }


Declaration at line 166 of FunctionSymbol.hpp


SetCopy Member Function

void cmajor::symbols::FunctionSymbol::SetCopy()

Definition at line 226 of FunctionSymbol.hpp :
226 { SetFlag(FunctionSymbolFlags::copy); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag


SetDefault Member Function

void cmajor::symbols::FunctionSymbol::SetDefault()

Definition at line 201 of FunctionSymbol.hpp :
201 { SetFlag(FunctionSymbolFlags::default_); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::ConstructorSymbol::SetSpecifiers , cmajor::symbols::DestructorSymbol::SetSpecifiers , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


SetExplicit Member Function

void cmajor::symbols::FunctionSymbol::SetExplicit()

Definition at line 205 of FunctionSymbol.hpp :
205 { SetFlag(FunctionSymbolFlags::explicit_); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::ConstructorSymbol::SetSpecifiers


SetFlag Member Function

void cmajor::symbols::FunctionSymbol::SetFlag(FunctionSymbolFlags flag)

Definition at line 241 of FunctionSymbol.hpp :
241 { flags = flags | flag; }

Called by: cmajor::symbols::FunctionSymbol::SetAbstract , cmajor::symbols::FunctionSymbol::SetCDecl , cmajor::symbols::FunctionSymbol::SetConst , cmajor::symbols::FunctionSymbol::SetConstExpr , cmajor::symbols::FunctionSymbol::SetConversion , cmajor::symbols::FunctionSymbol::SetCopy , cmajor::symbols::FunctionSymbol::SetDefault , cmajor::symbols::FunctionSymbol::SetExplicit , cmajor::symbols::FunctionSymbol::SetHasArtificialBody , cmajor::symbols::FunctionSymbol::SetHasCleanup , cmajor::symbols::FunctionSymbol::SetHasSource , cmajor::symbols::FunctionSymbol::SetHasTry , cmajor::symbols::FunctionSymbol::SetImmutable , cmajor::symbols::FunctionSymbol::SetInline , cmajor::symbols::FunctionSymbol::SetLinkOnceOdrLinkage , cmajor::symbols::FunctionSymbol::SetNew , cmajor::symbols::FunctionSymbol::SetOverride , cmajor::symbols::FunctionSymbol::SetSpecifiers , cmajor::symbols::FunctionSymbol::SetSuppressed , cmajor::symbols::FunctionSymbol::SetSystemDefault , cmajor::symbols::FunctionSymbol::SetTemplateSpecialization , cmajor::symbols::FunctionSymbol::SetVarArg , cmajor::symbols::FunctionSymbol::SetVirtual


SetFunctionGroup Member Function

void cmajor::symbols::FunctionSymbol::SetFunctionGroup(FunctionGroupSymbol * functionGroup_)

Definition at line 263 of FunctionSymbol.hpp :
263 { functionGroup = functionGroup_; }

Called by: cmajor::symbols::FunctionGroupSymbol::AddFunction


SetFunctionId Member Function

void cmajor::symbols::FunctionSymbol::SetFunctionId(const boost::uuids::uuid& functionId_)

Definition at line 189 of FunctionSymbol.hpp :
189 { functionId = functionId_; }

Called by: cmajor::symbols::SymbolTable::SetFunctionIdFor


SetFunctionTemplate Member Function

void cmajor::symbols::FunctionSymbol::SetFunctionTemplate(FunctionSymbol * functionTemplate_)

Definition at line 276 of FunctionSymbol.hpp :
276 { functionTemplate = functionTemplate_; }


SetGroupName Member Function

void cmajor::symbols::FunctionSymbol::SetGroupName(const std::u32string& groupName_)

Definition at line 1286 of FunctionSymbol.cpp :
1287 {
1288     groupName = groupName_;
1289 }


Declaration at line 191 of FunctionSymbol.hpp

Called by: cmajor::symbols::SymbolTable::BeginConversionFunction , cmajor::symbols::SymbolTable::BeginFunction , cmajor::symbols::SymbolTable::BeginMemberFunction


SetHasArtificialBody Member Function

void cmajor::symbols::FunctionSymbol::SetHasArtificialBody()

Definition at line 229 of FunctionSymbol.hpp :
229 { SetFlag(FunctionSymbolFlags::hasArtificialBody); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag


SetHasCleanup Member Function

void cmajor::symbols::FunctionSymbol::SetHasCleanup()

Definition at line 232 of FunctionSymbol.hpp :
232 { SetFlag(FunctionSymbolFlags::hasCleanup); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag


SetHasSource Member Function

void cmajor::symbols::FunctionSymbol::SetHasSource()

Definition at line 273 of FunctionSymbol.hpp :
273 { SetFlag(FunctionSymbolFlags::hasSource); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::SymbolTable::BeginConstructor , cmajor::symbols::SymbolTable::BeginConversionFunction , cmajor::symbols::SymbolTable::BeginDestructor , cmajor::symbols::SymbolTable::BeginFunction , cmajor::symbols::SymbolTable::BeginMemberFunction , cmajor::symbols::SymbolTable::BeginStaticConstructor


SetHasTry Member Function

void cmajor::symbols::FunctionSymbol::SetHasTry()

Definition at line 224 of FunctionSymbol.hpp :
224 { SetFlag(FunctionSymbolFlags::hasTry); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag


SetImmutable Member Function

void cmajor::symbols::FunctionSymbol::SetImmutable()

Definition at line 236 of FunctionSymbol.hpp :
236 { SetFlag(FunctionSymbolFlags::immutable); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag


SetImtIndex Member Function

void cmajor::symbols::FunctionSymbol::SetImtIndex(int32_t imtIndex_)

Definition at line 261 of FunctionSymbol.hpp :
261 { imtIndex = imtIndex_; }

Called by: cmajor::symbols::InterfaceTypeSymbol::AddMember


SetIndex Member Function

void cmajor::symbols::FunctionSymbol::SetIndex(int32_t index_)

Definition at line 160 of FunctionSymbol.hpp :
160 { index = index_; }

Called by: cmajor::symbols::SymbolTable::BeginConstructor , cmajor::symbols::SymbolTable::BeginConversionFunction , cmajor::symbols::SymbolTable::BeginDestructor , cmajor::symbols::SymbolTable::BeginFunction , cmajor::symbols::SymbolTable::BeginMemberFunction , cmajor::symbols::SymbolTable::BeginStaticConstructor


SetInline Member Function

void cmajor::symbols::FunctionSymbol::SetInline()

Definition at line 195 of FunctionSymbol.hpp :
195 { SetFlag(FunctionSymbolFlags::inline_); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::ConstructorSymbol::SetSpecifiers , cmajor::symbols::ConversionFunctionSymbol::SetSpecifiers , cmajor::symbols::FunctionSymbol::SetSpecifiers , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


SetIntrinsic Member Function

void cmajor::symbols::FunctionSymbol::SetIntrinsic(IntrinsicFunction * intrinsic_)

Definition at line 265 of FunctionSymbol.hpp :
265 { intrinsic.reset(intrinsic_); }


SetLinkOnceOdrLinkage Member Function

void cmajor::symbols::FunctionSymbol::SetLinkOnceOdrLinkage()

Definition at line 220 of FunctionSymbol.hpp :
220 { SetFlag(FunctionSymbolFlags::linkOnceOdrLinkage); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::ClassTypeSymbol::CreateDestructorSymbol


SetMaster Member Function

void cmajor::symbols::FunctionSymbol::SetMaster(FunctionSymbol * master_)

Definition at line 281 of FunctionSymbol.hpp :
281 { master = master_; }


SetNew Member Function

void cmajor::symbols::FunctionSymbol::SetNew()

Definition at line 214 of FunctionSymbol.hpp :
214 { SetFlag(FunctionSymbolFlags::new_); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


SetOverride Member Function

void cmajor::symbols::FunctionSymbol::SetOverride()

Definition at line 209 of FunctionSymbol.hpp :
209 { SetFlag(FunctionSymbolFlags::override_); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::ClassTypeSymbol::InitVmt , cmajor::symbols::DestructorSymbol::SetSpecifiers , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


SetPrevUnwindInfoVar Member Function

void cmajor::symbols::FunctionSymbol::SetPrevUnwindInfoVar(LocalVariableSymbol * prevUnwindInfoVar_)

Definition at line 1519 of FunctionSymbol.cpp :
1520 {
1521     prevUnwindInfoVar.reset(prevUnwindInfoVar_);
1522 }


Declaration at line 282 of FunctionSymbol.hpp


SetProgramMain Member Function

void cmajor::symbols::FunctionSymbol::SetProgramMain()

Definition at line 267 of FunctionSymbol.hpp :
267 { isProgramMain = true; }

Called by: cmajor::symbols::SymbolTable::BeginFunction


SetReturnParam Member Function

void cmajor::symbols::FunctionSymbol::SetReturnParam(ParameterSymbol * returnParam_)

Definition at line 1281 of FunctionSymbol.cpp :
1282 {
1283     returnParam.reset(returnParam_);
1284 }


Declaration at line 251 of FunctionSymbol.hpp

Called by: cmajor::symbols::FunctionSymbol::CopyFrom


SetReturnType Member Function

void cmajor::symbols::FunctionSymbol::SetReturnType(TypeSymbol * returnType_)

Definition at line 248 of FunctionSymbol.hpp :
248 { returnType = returnType_; }


SetSpecifiers Member Function

void cmajor::symbols::FunctionSymbol::SetSpecifiers(Specifiers specifiers)

Definition at line 1291 of FunctionSymbol.cpp
Declaration at line 193 of FunctionSymbol.hpp

Calls: cmajor::symbols::FunctionSymbol::SetCDecl , cmajor::symbols::FunctionSymbol::SetConstExpr , cmajor::symbols::FunctionSymbol::SetFlag , cmajor::symbols::FunctionSymbol::SetInline , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::IsNothrow , cmajor::symbols::Symbol::SetAccess , cmajor::symbols::Symbol::SetExternal , cmajor::symbols::Symbol::SetNothrow , cmajor::symbols::Symbol::SourceModuleId


SetSuppressed Member Function

void cmajor::symbols::FunctionSymbol::SetSuppressed()

Definition at line 203 of FunctionSymbol.hpp :
203 { SetFlag(FunctionSymbolFlags::suppress); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::ConstructorSymbol::SetSpecifiers , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


SetSystemDefault Member Function

void cmajor::symbols::FunctionSymbol::SetSystemDefault()

Definition at line 234 of FunctionSymbol.hpp :
234 { SetFlag(FunctionSymbolFlags::systemDefault); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag


SetTemplateArgumentTypes Member Function

void cmajor::symbols::FunctionSymbol::SetTemplateArgumentTypes(const std::vector<TypeSymbol *>& templateArgumentTypes_)

Definition at line 1501 of FunctionSymbol.cpp :
1502 {
1503     templateArgumentTypes = templateArgumentTypes_;
1504 }


Declaration at line 277 of FunctionSymbol.hpp


SetTemplateSpecialization Member Function

void cmajor::symbols::FunctionSymbol::SetTemplateSpecialization()

Definition at line 222 of FunctionSymbol.hpp :
222 { SetFlag(FunctionSymbolFlags::templateSpecialization); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag


SetUnwindInfoVar Member Function

void cmajor::symbols::FunctionSymbol::SetUnwindInfoVar(LocalVariableSymbol * unwindInfoVar_)

Definition at line 1524 of FunctionSymbol.cpp :
1525 {
1526     unwindInfoVar.reset(unwindInfoVar_);
1527 }


Declaration at line 284 of FunctionSymbol.hpp


SetVarArg Member Function

void cmajor::symbols::FunctionSymbol::SetVarArg()

Definition at line 228 of FunctionSymbol.hpp :
228 { SetFlag(FunctionSymbolFlags::varArg); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag


SetVirtual Member Function

void cmajor::symbols::FunctionSymbol::SetVirtual()

Definition at line 207 of FunctionSymbol.hpp :
207 { SetFlag(FunctionSymbolFlags::virtual_); }

Calls: cmajor::symbols::FunctionSymbol::SetFlag

Called by: cmajor::symbols::ClassTypeSymbol::InitVmt , cmajor::symbols::DestructorSymbol::SetSpecifiers , cmajor::symbols::MemberFunctionSymbol::SetSpecifiers


SetVmtIndex Member Function

void cmajor::symbols::FunctionSymbol::SetVmtIndex(int32_t vmtIndex_)

Definition at line 259 of FunctionSymbol.hpp :
259 { vmtIndex = vmtIndex_; }

Called by: cmajor::symbols::ClassTypeSymbol::InitVmt


StartParamIndex Member Function

int cmajor::symbols::FunctionSymbol::StartParamIndex() const virtual

Definition at line 187 of FunctionSymbol.hpp :
187 { return 0; }

Derived class overrides: cmajor::symbols::ConstructorSymbol::StartParamIndex , cmajor::symbols::ConversionFunctionSymbol::StartParamIndex , cmajor::symbols::DestructorSymbol::StartParamIndex , cmajor::symbols::MemberFunctionSymbol::StartParamIndex , cmajor::symbols::StaticConstructorSymbol::StartParamIndex

Called by: cmajor::symbols::FunctionSymbol::FullName


Syntax Member Function

std::string cmajor::symbols::FunctionSymbol::Syntax() const override

Definition at line 891 of FunctionSymbol.cpp
Declaration at line 158 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::Syntax

Calls: cmajor::symbols::FunctionSymbol::DocName , cmajor::symbols::FunctionSymbol::GetSpecifierStr , cmajor::symbols::FunctionSymbol::ReturnType , cmajor::symbols::Symbol::DocName


TemplateArgumentTypes Member Function

const std::vector<TypeSymbol *>& cmajor::symbols::FunctionSymbol::TemplateArgumentTypes() const

Definition at line 278 of FunctionSymbol.hpp :
278 { return templateArgumentTypes; }

Called by: cmajor::symbols::FunctionSymbolHash::operator() , cmajor::symbols::FunctionSymbolsEqual::operator()


TemplateParameters Member Function

const std::vector<TemplateParameterSymbol *>& cmajor::symbols::FunctionSymbol::TemplateParameters() const

Definition at line 192 of FunctionSymbol.hpp :
192 { return templateParameters; }


TypeString Member Function

std::string cmajor::symbols::FunctionSymbol::TypeString() const override

Definition at line 149 of FunctionSymbol.hpp :
149 { return "function"; }

Base class overridden functions: cmajor::symbols::ContainerSymbol::TypeString , cmajor::symbols::Symbol::TypeString

Derived class overrides: cmajor::symbols::ConstructorSymbol::TypeString , cmajor::symbols::ConversionFunctionSymbol::TypeString , cmajor::symbols::DestructorSymbol::TypeString , cmajor::symbols::MemberFunctionSymbol::TypeString , cmajor::symbols::StaticConstructorSymbol::TypeString

Called by: cmajor::symbols::FunctionSymbol::ComputeMangledName


UnwindInfoVar Member Function

LocalVariableSymbol * cmajor::symbols::FunctionSymbol::UnwindInfoVar() const

Definition at line 285 of FunctionSymbol.hpp :
285 { return unwindInfoVar.get(); }


UsingNodes Member Function

const NodeList<Node>& cmajor::symbols::FunctionSymbol::UsingNodes() const

Definition at line 142 of FunctionSymbol.hpp :
142 { return usingNodes; }


VmtIndex Member Function

int32_t cmajor::symbols::FunctionSymbol::VmtIndex() const

Definition at line 258 of FunctionSymbol.hpp :
258 { return vmtIndex; }

Called by: cmajor::symbols::ClassTypeSymbol::Read , cmajor::symbols::FunctionSymbol::GenerateVirtualCall


Write Member Function

void cmajor::symbols::FunctionSymbol::Write(SymbolWriter & writer) override

Definition at line 500 of FunctionSymbol.cpp
Declaration at line 138 of FunctionSymbol.hpp

Base class overridden functions: cmajor::symbols::ContainerSymbol::Write , cmajor::symbols::Symbol::Write

Derived class overrides: cmajor::symbols::ArrayBeginFunction::Write , cmajor::symbols::ArrayCBeginFunction::Write , cmajor::symbols::ArrayCEndFunction::Write , cmajor::symbols::ArrayEndFunction::Write , cmajor::symbols::ArrayLengthFunction::Write , cmajor::symbols::BasicTypeConversion::Write , cmajor::symbols::ClassDelegateTypeDefaultConstructor::Write , cmajor::symbols::DelegateTypeDefaultConstructor::Write , cmajor::symbols::DestructorSymbol::Write , cmajor::symbols::EnumTypeCopyAssignment::Write , cmajor::symbols::EnumTypeCopyConstructor::Write , cmajor::symbols::EnumTypeDefaultConstructor::Write , cmajor::symbols::EnumTypeEqualityOp::Write , cmajor::symbols::EnumTypeMoveAssignment::Write , cmajor::symbols::EnumTypeMoveConstructor::Write , cmajor::symbols::EnumTypeReturn::Write , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::Write , cmajor::symbols::StringLengthFunction::Write , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::Write

Calls: cmajor::symbols::ContainerSymbol::Write , cmajor::symbols::FunctionSymbol::FunctionId , cmajor::symbols::FunctionSymbol::IsConstExpr , cmajor::symbols::FunctionSymbol::IsConversion , cmajor::symbols::FunctionSymbol::IsFunctionTemplate , cmajor::symbols::FunctionSymbol::IsInline , cmajor::symbols::FunctionSymbol::Write , cmajor::symbols::Module::GetSymbolTable , cmajor::symbols::SymbolTable::GetNode , cmajor::symbols::SymbolWriter::GetAstWriter , cmajor::symbols::SymbolWriter::GetBinaryWriter , cmajor::symbols::SymbolWriter::Write , cmajor::symbols::TypeSymbol::TypeId , sngcm::ast::AstWriter::Write

Called by: cmajor::symbols::ArrayBeginFunction::Write , cmajor::symbols::ArrayCBeginFunction::Write , cmajor::symbols::ArrayCEndFunction::Write , cmajor::symbols::ArrayEndFunction::Write , cmajor::symbols::ArrayLengthFunction::Write , cmajor::symbols::BasicTypeConversion::Write , cmajor::symbols::ClassDelegateTypeDefaultConstructor::Write , cmajor::symbols::DelegateTypeDefaultConstructor::Write , cmajor::symbols::DestructorSymbol::Write , cmajor::symbols::EnumTypeCopyAssignment::Write , cmajor::symbols::EnumTypeCopyConstructor::Write , cmajor::symbols::EnumTypeDefaultConstructor::Write , cmajor::symbols::EnumTypeEqualityOp::Write , cmajor::symbols::EnumTypeMoveAssignment::Write , cmajor::symbols::EnumTypeMoveConstructor::Write , cmajor::symbols::EnumTypeReturn::Write , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::Write , cmajor::symbols::FunctionSymbol::Write , cmajor::symbols::StringLengthFunction::Write , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::Write


operator= Member Function

FunctionSymbol & cmajor::symbols::FunctionSymbol::operator=(const FunctionSymbol &) delete

Definition at line 137 of FunctionSymbol.hpp


top | up | prev | next