From 4fd34c0410ee16cda693e9f1e7b9a6e5a7a0b0aa Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sat, 3 Mar 2018 22:08:40 +0800 Subject: Codegen C - Avoid attempting to get type of a non-LValue when looking for ZSTs --- src/trans/codegen_c.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/trans/codegen_c.cpp') diff --git a/src/trans/codegen_c.cpp b/src/trans/codegen_c.cpp index 829aa7f7..5c180fe7 100644 --- a/src/trans/codegen_c.cpp +++ b/src/trans/codegen_c.cpp @@ -2774,13 +2774,16 @@ namespace { { // HACK: Don't emit assignment of PhantomData ::HIR::TypeRef tmp; - const auto& ty = mir_res.get_param_type(tmp, ve.vals[j]); - if( ve.vals[j].is_LValue() && m_resolve.is_type_phantom_data(ty) ) - continue ; - - if( this->type_is_bad_zst(ty) ) + if( ve.vals[j].is_LValue() ) { - continue ; + const auto& ty = mir_res.get_param_type(tmp, ve.vals[j]); + if( ve.vals[j].is_LValue() && m_resolve.is_type_phantom_data(ty) ) + continue ; + + if( this->type_is_bad_zst(ty) ) + { + continue ; + } } if(has_emitted) { -- cgit v1.2.3