| 17188 | } |
| 17189 | |
| 17190 | void 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 | |
| 17215 | void BfModule::AssertErrorState() |
| 17216 | { |
nothing calls this directly
no test coverage detected