top | up | prev | next

DelegateToVoidPtrConversion Class

Definition at line 153 of DelegateSymbol.hpp

Constructors

DelegateToVoidPtrConversion(TypeSymbol* delegateType_, TypeSymbol* voidPtrType_)

Member Functions

const char* ClassName() const override
uint8_t ConversionDistance() const override
void GenerateCall(Emitter& emitter, std::vector<GenObject*>& genObjects, OperationFlags flags, const Span& span, const boost::uuids::uuid& moduleId) override
ConversionType GetConversionType() const override
bool IsBasicTypeOperation() const override

Member Variables

TypeSymbol* delegateType
TypeSymbol* voidPtrType

Constructor Details

DelegateToVoidPtrConversion Constructor

cmajor::symbols::DelegateToVoidPtrConversion::DelegateToVoidPtrConversion(TypeSymbol * delegateType_, TypeSymbol * voidPtrType_)

Definition at line 650 of DelegateSymbol.cpp :
 650 :
 651 FunctionSymbol(delegateType_->GetSpan()delegateType_->SourceModuleId()U"dlg2voidptr")delegateType(delegateType_)voidPtrType(voidPtrType_)
 652 {
 653     SetConversion();
 654     SetGroupName(U"@conversion");
 655     SetAccess(SymbolAccess::public_);
 656     SetConversionSourceType(delegateType->PlainType(GetSpan()SourceModuleId()));
 657     SetConversionTargetType(voidPtrType->PlainType(GetSpan()SourceModuleId()));
 658 }


Declaration at line 156 of DelegateSymbol.hpp


Member Function Details

ClassName Member Function

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

Definition at line 161 of DelegateSymbol.hpp :
161 { return "DelegateToVoidPtrConversion"; }

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


ConversionDistance Member Function

uint8_t cmajor::symbols::DelegateToVoidPtrConversion::ConversionDistance() const override

Definition at line 158 of DelegateSymbol.hpp :
158 { return 255; }

Base class overridden functions: cmajor::symbols::FunctionSymbol::ConversionDistance


GenerateCall Member Function

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

Definition at line 660 of DelegateSymbol.cpp :
 661 {
 662     emitter.SetCurrentDebugLocation(span);
 663     void* value = emitter.Stack().Pop();
 664     emitter.Stack().Push(emitter.CreateBitCast(valuevoidPtrType->IrType(emitter)));
 665 }


Declaration at line 160 of DelegateSymbol.hpp

Calls: cmajor::symbols::TypeSymbol::IrType


GetConversionType Member Function

ConversionType cmajor::symbols::DelegateToVoidPtrConversion::GetConversionType() const override

Definition at line 157 of DelegateSymbol.hpp :
157 { return ConversionType::explicit_; }

Base class overridden functions: cmajor::symbols::FunctionSymbol::GetConversionType


IsBasicTypeOperation Member Function

bool cmajor::symbols::DelegateToVoidPtrConversion::IsBasicTypeOperation() const override

Definition at line 159 of DelegateSymbol.hpp :
159 { return true; }

Base class overridden functions: cmajor::symbols::FunctionSymbol::IsBasicTypeOperation


top | up | prev | next