top | up | prev | next

RvalueReferenceCopyAssignment Class

Definition at line 1395 of OperationRepository.cpp

Constructors

RvalueReferenceCopyAssignment(TypeSymbol* type_, TypeSymbol* voidType_, const Span& span, const boost::uuids::uuid& moduleId)

Member Functions

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

Member Variables

TypeSymbol* type

Constructor Details

RvalueReferenceCopyAssignment Constructor

cmajor::binder::RvalueReferenceCopyAssignment::RvalueReferenceCopyAssignment(TypeSymbol* type_, TypeSymbol* voidType_, const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 1407 of OperationRepository.cpp
Declaration at line 1398 of OperationRepository.cpp


Member Function Details

ClassName Member Function

const char * cmajor::binder::RvalueReferenceCopyAssignment::ClassName() const override

Definition at line 1402 of OperationRepository.cpp :
1402 { return "RvalueReferenceCopyAssignment"; }


DeclaredAccess Member Function

SymbolAccess cmajor::binder::RvalueReferenceCopyAssignment::DeclaredAccess() const override

Definition at line 1399 of OperationRepository.cpp :
1399 { return SymbolAccess::public_; }


GenerateCall Member Function

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

Definition at line 1422 of OperationRepository.cpp :
1423 {
1424     Assert(genObjects.size() == 2"copy assignment needs two objects");
1425     genObjects[1]->Load(emitterOperationFlags::none);
1426     void* rvalueRefValue = emitter.Stack().Pop();
1427     emitter.Stack().Push(emitter.CreateLoad(rvalueRefValue));
1428     genObjects[0]->Store(emitterOperationFlags::none);
1429 }


Declaration at line 1400 of OperationRepository.cpp


IsBasicTypeOperation Member Function

bool cmajor::binder::RvalueReferenceCopyAssignment::IsBasicTypeOperation() const override

Definition at line 1401 of OperationRepository.cpp :
1401 { return true; }


top | up | prev | next