Add missing nullptr checks.

GetPersistentExpressionStateForLanguage() can return a nullptr if it
cannot construct a typesystem. This patch adds missing nullptr checks
at all uses.

Inspired by rdar://problem/58317195

Differential Revision: https://reviews.llvm.org/D72413
This commit is contained in:
Adrian Prantl
2020-01-08 14:18:47 -08:00
parent bdd88b7ed3
commit e9331a56fe
8 changed files with 42 additions and 29 deletions

View File

@@ -396,8 +396,9 @@ UserExpression::Execute(DiagnosticManager &diagnostic_manager,
diagnostic_manager, exe_ctx, options, shared_ptr_to_me, result_var);
Target *target = exe_ctx.GetTargetPtr();
if (options.GetResultIsInternal() && result_var && target) {
target->GetPersistentExpressionStateForLanguage(m_language)
->RemovePersistentVariable(result_var);
if (auto *persistent_state =
target->GetPersistentExpressionStateForLanguage(m_language))
persistent_state->RemovePersistentVariable(result_var);
}
return expr_result;
}