summaryrefslogtreecommitdiff
path: root/src/trans/codegen_c.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-12-04 20:57:37 +0800
committerJohn Hodge <tpg@mutabah.net>2016-12-04 20:57:37 +0800
commit44cb8f56e6f2828b588408a9efd1f1fa019ab11c (patch)
treea72777d75c8af4e013133f02e0da449c5256c89f /src/trans/codegen_c.cpp
parent1cb526a077bfef3aba508927250e3213186cf496 (diff)
downloadmrust-44cb8f56e6f2828b588408a9efd1f1fa019ab11c.tar.gz
MIR - Move vtable conversion to its own pass
Diffstat (limited to 'src/trans/codegen_c.cpp')
-rw-r--r--src/trans/codegen_c.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/trans/codegen_c.cpp b/src/trans/codegen_c.cpp
index d7199b98..ee0719ef 100644
--- a/src/trans/codegen_c.cpp
+++ b/src/trans/codegen_c.cpp
@@ -273,7 +273,7 @@ namespace {
arg_types.push_back(::std::make_pair( ::HIR::Pattern{}, params.monomorph(m_crate, ent.second) ));
::HIR::TypeRef ret_type = params.monomorph(m_crate, item.m_return);
- ::MIR::TypeResolve mir_res { sp, m_crate, ret_type, arg_types, *code };
+ ::MIR::TypeResolve mir_res { sp, m_resolve, FMT_CB(ss, ss << p;), ret_type, arg_types, *code };
m_mir_res = &mir_res;
m_of << "// " << p << "\n";
@@ -294,7 +294,6 @@ namespace {
m_of << "\t// " << code->temporaries[i];
m_of << "\n";
}
- // TODO: Code.
for(unsigned int i = 0; i < code->blocks.size(); i ++)
{
TRACE_FUNCTION_F(p << " bb" << i);
@@ -305,6 +304,7 @@ namespace {
{
assert( stmt.is_Drop() || stmt.is_Assign() );
if( stmt.is_Drop() ) {
+ // TODO: Emit destructor calls
}
else {
const auto& e = stmt.as_Assign();
@@ -338,7 +338,6 @@ namespace {
m_of << " = ";
m_of << (c ? "true" : "false");
),
- // TODO: These need to be arrays, not strings! (strings are NUL terminated)
(Bytes,
emit_lvalue(e.dst);
m_of << ".PTR = ";