From fea81c19efc4961ed43a7aac44fed1efd24f2b4d Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sat, 22 Sep 2018 20:43:43 +0800 Subject: Codegen C - Fix incorrect destructor for zst enum variants --- src/trans/codegen_c.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/trans/codegen_c.cpp b/src/trans/codegen_c.cpp index ca038230..ed6c9100 100644 --- a/src/trans/codegen_c.cpp +++ b/src/trans/codegen_c.cpp @@ -1449,8 +1449,12 @@ namespace { { var_lv.as_Downcast().variant_index = var_idx; m_of << "\tcase " << e->values[var_idx] << ":\n"; - emit_destructor_call(var_lv, repr->fields[var_idx].ty, /*unsized_valid=*/false, /*indent=*/2); - m_of << "\tbreak;\n"; + if( this->type_is_bad_zst(repr->fields[var_idx].ty) ) { + } + else { + emit_destructor_call(var_lv, repr->fields[var_idx].ty, /*unsized_valid=*/false, /*indent=*/2); + } + m_of << "\t\tbreak;\n"; } m_of << "\t}\n"; } -- cgit v1.2.3