From 568c2a1cf16efc6f5c991e5de476b8a0ba13e70d Mon Sep 17 00:00:00 2001 From: John Hodge Date: Mon, 12 Feb 2018 22:40:05 +0800 Subject: Codegen MMIR - Fix compilation error on linux --- src/trans/codegen_mmir.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/trans/codegen_mmir.cpp b/src/trans/codegen_mmir.cpp index eab53d37..3f947b46 100644 --- a/src/trans/codegen_mmir.cpp +++ b/src/trans/codegen_mmir.cpp @@ -613,7 +613,8 @@ namespace case ::HIR::CoreType::F32: { ASSERT_BUG(sp, lit.is_Float(), "not Literal::Float - " << lit); uint32_t v; - memcpy(&v, &double(lit.as_Float()), 4); + float v2 = lit.as_Float(); + memcpy(&v, &v2, 4); putu32(v); } break; case ::HIR::CoreType::F64: { @@ -777,7 +778,12 @@ namespace m_of << "{"; for(const auto& r : relocations) { - // TODO. + m_of << "@" << r.ofs << "+" << r.len << " = "; + if( r.p ) + m_of << *r.p; + else + m_of << "\"" << FmtEscaped(r.bytes) << "\""; + m_of << ","; } m_of << "}"; m_of << ";\n"; @@ -1098,4 +1104,4 @@ namespace ::std::unique_ptr Trans_Codegen_GetGenerator_MonoMir(const ::HIR::Crate& crate, const ::std::string& outfile) { return ::std::unique_ptr(new CodeGenerator_MonoMir(crate, outfile)); -} \ No newline at end of file +} -- cgit v1.2.3