From 1c25575621e53757234c1033d3e3ccddc5d86aa6 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sun, 3 Jun 2018 11:02:21 +0800 Subject: Trans - Fix some minor errors from building with clang --- src/trans/codegen_c.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/trans/codegen_c.cpp') diff --git a/src/trans/codegen_c.cpp b/src/trans/codegen_c.cpp index f891d267..a4b0387a 100644 --- a/src/trans/codegen_c.cpp +++ b/src/trans/codegen_c.cpp @@ -196,6 +196,7 @@ namespace { } m_options; ::std::vector< ::std::pair< ::HIR::GenericPath, const ::HIR::Struct*> > m_box_glue_todo; + ::std::set< ::HIR::TypeRef> m_emitted_fn_types; public: CodeGenerator_C(const ::HIR::Crate& crate, const ::std::string& outfile): m_crate(crate), @@ -819,6 +820,11 @@ namespace { } void emit_type_fn(const ::HIR::TypeRef& ty) { + if( m_emitted_fn_types.count(ty) ) { + return ; + } + m_emitted_fn_types.insert(ty.clone()); + const auto& te = ty.m_data.as_Function(); m_of << "typedef "; // TODO: ABI marker, need an ABI enum? -- cgit v1.2.3