aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp/middle')
-rw-r--r--src/comp/middle/trans.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 4d24bb92..4140c0f3 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -1369,6 +1369,11 @@ fn trans_main_fn(@trans_ctxt cx, ValueRef llcrate) {
}
+fn declare_intrinsics(ModuleRef llmod) {
+ let vec[TypeRef] T_trap_args = vec();
+ decl_cdecl_fn(llmod, "llvm.trap", T_trap_args, T_void());
+}
+
fn trans_crate(session.session sess, @ast.crate crate, str output) {
auto llmod =
llvm.LLVMModuleCreateWithNameInContext(_str.buf("rust_out"),
@@ -1376,6 +1381,8 @@ fn trans_crate(session.session sess, @ast.crate crate, str output) {
llvm.LLVMSetModuleInlineAsm(llmod, _str.buf(x86.get_module_asm()));
+ declare_intrinsics(llmod);
+
auto glues = @rec(activate_glue = decl_glue(llmod,
abi.activate_glue_name()),
yield_glue = decl_glue(llmod, abi.yield_glue_name()),