diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/comp/middle/trans.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index ba4f5cdf..528734c4 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -322,6 +322,19 @@ fn C_struct(vec[ValueRef] elts) -> ValueRef { False); } +fn C_tydesc(TypeRef t) -> ValueRef { + ret C_struct(vec(C_null(T_opaque()), // first_param + llvm.LLVMSizeOf(t), // size + llvm.LLVMAlignOf(t), // align + C_null(T_opaque()), // copy_glue_off + C_null(T_opaque()), // drop_glue_off + C_null(T_opaque()), // free_glue_off + C_null(T_opaque()), // sever_glue_off + C_null(T_opaque()), // mark_glue_off + C_null(T_opaque()), // obj_drop_glue_off + C_null(T_opaque()))); // is_stateful +} + fn decl_cdecl_fn(ModuleRef llmod, str name, vec[TypeRef] inputs, TypeRef output) -> ValueRef { let TypeRef llty = T_fn(inputs, output); |