diff options
-rw-r--r-- | src/trans/codegen_c.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/trans/codegen_c.cpp b/src/trans/codegen_c.cpp index 15f80a65..d7199b98 100644 --- a/src/trans/codegen_c.cpp +++ b/src/trans/codegen_c.cpp @@ -529,6 +529,13 @@ namespace { TODO(sp, "Handle constructing variants"); ), (Struct, + if(ve.variant_idx != ~0u) { + emit_lvalue(e.dst); + m_of << ".TAG = " << ve.variant_idx; + if(ve.vals.size() > 0) + m_of << ";\n\t"; + } + for(unsigned int j = 0; j < ve.vals.size(); j ++) { if( j != 0 ) m_of << ";\n\t"; emit_lvalue(e.dst); |