aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/comp/middle/trans.rs13
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);