MCPcopy Create free account
hub / github.com/beefytech/Beef / EmitDefaultReturn

Method EmitDefaultReturn

IDEHelper/Compiler/BfModule.cpp:17190–17213  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17188}
17189
17190void BfModule::EmitDefaultReturn()
17191{
17192 if (mCurMethodState->mInDeferredBlock)
17193 return;
17194
17195 if (mCurMethodState->mIRExitBlock)
17196 {
17197 EmitDeferredScopeCalls(true, NULL, mCurMethodState->mIRExitBlock);
17198 }
17199 else
17200 {
17201 if ((mCurMethodInstance == NULL) || (mCurMethodInstance->mReturnType->IsVar()))
17202 {
17203 // Ignore
17204 }
17205 else if (mCurMethodInstance->mReturnType->IsVoid())
17206 mBfIRBuilder->CreateRetVoid();
17207 else if ((!mIsComptimeModule) && (mCurMethodInstance->GetStructRetIdx() == -1))
17208 mBfIRBuilder->CreateRet(GetDefaultValue(mCurMethodInstance->mReturnType));
17209 }
17210
17211 mCurMethodState->SetHadReturn(true);
17212 mCurMethodState->mLeftBlockUncond = true;
17213}
17214
17215void BfModule::AssertErrorState()
17216{

Callers

nothing calls this directly

Calls 6

SetHadReturnMethod · 0.80
IsVarMethod · 0.45
IsVoidMethod · 0.45
CreateRetVoidMethod · 0.45
GetStructRetIdxMethod · 0.45
CreateRetMethod · 0.45

Tested by

no test coverage detected