top | up | prev | next

BoundFunctionPtr Class

Definition at line 499 of BoundExpression.hpp

Constructors

BoundFunctionPtr(const Span& span_, const boost::uuids::uuid& moduleId_, FunctionSymbol* function_, TypeSymbol* type_)

Member Functions

void Accept(BoundNodeVisitor& visitor) override
BoundExpression* Clone() override
FunctionSymbol* Function()
bool HasValue() const override
void Load(Emitter& emitter, OperationFlags flags) override
void Store(Emitter& emitter, OperationFlags flags) override

Member Variables

FunctionSymbol* function

Constructor Details

BoundFunctionPtr Constructor

cmajor::binder::BoundFunctionPtr::BoundFunctionPtr(const Span& span_, const boost::uuids::uuid& moduleId_, FunctionSymbol* function_, TypeSymbol* type_)

Definition at line 1845 of BoundExpression.cpp :
1845 :
1846 BoundExpression(span_moduleId_BoundNodeType::boundFunctionPtrtype_)function(function_)
1847 {
1848 }



Member Function Details

Accept Member Function

void cmajor::binder::BoundFunctionPtr::Accept(BoundNodeVisitor & visitor) override

Definition at line 1867 of BoundExpression.cpp :
1868 {
1869     visitor.Visit(*this);
1870 }


Declaration at line 506 of BoundExpression.hpp

Base class overridden functions: cmajor::binder::BoundNode::Accept

Calls: cmajor::binder::BoundNodeVisitor::Visit


Clone Member Function

BoundExpression * cmajor::binder::BoundFunctionPtr::Clone() override

Definition at line 1850 of BoundExpression.cpp :
1851 {
1852     return new BoundFunctionPtr(GetSpan()ModuleId()functionGetType());
1853 }


Declaration at line 503 of BoundExpression.hpp

Base class overridden functions: cmajor::binder::BoundExpression::Clone

Calls: cmajor::binder::BoundExpression::GetType , cmajor::binder::BoundNode::GetSpan , cmajor::binder::BoundNode::ModuleId


Function Member Function

FunctionSymbol * cmajor::binder::BoundFunctionPtr::Function()

Definition at line 508 of BoundExpression.hpp :
508 { return function; }


HasValue Member Function

bool cmajor::binder::BoundFunctionPtr::HasValue() const override

Definition at line 507 of BoundExpression.hpp :
507 { return true; }

Base class overridden functions: cmajor::binder::BoundExpression::HasValue


Load Member Function

void cmajor::binder::BoundFunctionPtr::Load(Emitter & emitter, OperationFlags flags) override

Definition at line 1855 of BoundExpression.cpp :
1856 {
1857     void* irObject = emitter.GetOrInsertFunction(ToUtf8(function->MangledName())function->IrType(emitter)function->DontThrow());
1858     emitter.Stack().Push(irObject);
1859     DestroyTemporaries(emitter);
1860 }


Declaration at line 504 of BoundExpression.hpp

Base class overridden functions: cmajor::ir::GenObject::Load

Calls: cmajor::binder::BoundExpression::DestroyTemporaries , cmajor::ir::Emitter::GetOrInsertFunction , cmajor::ir::Emitter::Stack , cmajor::ir::ValueStack::Push , cmajor::symbols::FunctionSymbol::DontThrow , cmajor::symbols::FunctionSymbol::IrType , cmajor::symbols::Symbol::MangledName


Store Member Function

void cmajor::binder::BoundFunctionPtr::Store(Emitter & emitter, OperationFlags flags) override

Definition at line 1862 of BoundExpression.cpp :
1863 {
1864     throw Exception("cannot store to function ptr expression"GetSpan()ModuleId());
1865 }


Declaration at line 505 of BoundExpression.hpp

Base class overridden functions: cmajor::ir::GenObject::Store

Calls: cmajor::binder::BoundNode::GetSpan , cmajor::binder::BoundNode::ModuleId


top | up | prev | next