diff options
author | John Hodge <tpg@mutabah.net> | 2016-12-04 19:48:45 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-12-04 19:48:45 +0800 |
commit | 1cb526a077bfef3aba508927250e3213186cf496 (patch) | |
tree | 87b6bf8627b90a63c18ceee653bfbdc702d051ea /src/trans/codegen_c.cpp | |
parent | f2b6b58c75e31398438e10ea6cd6d7a00268f8a7 (diff) | |
download | mrust-1cb526a077bfef3aba508927250e3213186cf496.tar.gz |
Trans C - Set union tag
Diffstat (limited to 'src/trans/codegen_c.cpp')
-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); |