From 2122e363df7521db72b4ead62f07ffa3bdf176fa Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Fri, 5 Nov 2010 18:27:57 -0700 Subject: [PATCH] Teach rustc to generate type descriptors. --- src/comp/middle/trans.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index ba4f5cdfdd4..528734c4bcf 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);