From ebd09a2c391abc83969f00770343331ca27e90a9 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sun, 1 Jul 2018 11:48:48 +0800 Subject: Codegen C - Avoid &* pattern in reborrows --- src/trans/codegen_c.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/trans/codegen_c.cpp b/src/trans/codegen_c.cpp index 91138d14..d8cdb58d 100644 --- a/src/trans/codegen_c.cpp +++ b/src/trans/codegen_c.cpp @@ -2589,14 +2589,12 @@ namespace { ::HIR::TypeRef tmp; const auto& ty = mir_res.get_lvalue_type(tmp, ve.val); bool special = false; - // If the inner value has type [T] or str, create DST based on inner pointer and existing metadata + // If the inner value was a deref, just copy the pointer verbatim TU_IFLET(::MIR::LValue, ve.val, Deref, le, - if( metadata_type(ty) != MetadataType::None ) { - emit_lvalue(e.dst); - m_of << " = "; - emit_lvalue(*le.val); - special = true; - } + emit_lvalue(e.dst); + m_of << " = "; + emit_lvalue(*le.val); + special = true; ) // Magic for taking a &-ptr to unsized field of a struct. // - Needs to get metadata from bottom-level pointer. -- cgit v1.2.3