summaryrefslogtreecommitdiff
path: root/src/mir/from_hir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mir/from_hir.cpp')
-rw-r--r--src/mir/from_hir.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mir/from_hir.cpp b/src/mir/from_hir.cpp
index 5a0efc29..95b2d5dc 100644
--- a/src/mir/from_hir.cpp
+++ b/src/mir/from_hir.cpp
@@ -1514,13 +1514,16 @@ namespace {
if( node.m_args.size() == 1 )
{
- values.push_back( m_builder.get_result_in_lvalue(arg->span(), arg->m_res_type) );
+ values.push_back( m_builder.get_result_in_lvalue(arg->span(), arg->m_res_type, /*allow_missing_value=*/true) );
}
else
{
// NOTE: Have to allocate a new temporary because ordering matters
auto tmp = m_builder.new_temporary(arg->m_res_type);
- m_builder.push_stmt_assign( arg->span(), tmp.clone(), m_builder.get_result(arg->span()) );
+ if( m_builder.block_active() )
+ {
+ m_builder.push_stmt_assign( arg->span(), tmp.clone(), m_builder.get_result(arg->span()) );
+ }
values.push_back( mv$(tmp) );
}