}
}
-fn link_intrinsics(sess: session::session, llmod: ModuleRef) {
+fn link_intrinsics(sess: session::session, llmod: ModuleRef) unsafe {
let path = alt filesearch::search(
sess.filesearch(),
bind filesearch::pick_file("intrinsics.bc", _)) {
} else { stem = str::substr(output_path, 0u, dot_pos as uint); }
ret stem + "." + extension;
}
- fn run_passes(sess: session::session, llmod: ModuleRef, output: str) {
+ fn run_passes(sess: session::session, llmod: ModuleRef, output: str)
+ unsafe {
let opts = sess.get_opts();
if opts.time_llvm_passes { llvm::LLVMRustEnableTimePasses(); }
link_intrinsics(sess, llmod);
}
fn type_to_str_inner(names: type_names, outer0: [TypeRef], ty: TypeRef) ->
- str {
+ str unsafe {
if names.type_has_name(ty) { ret names.get_name(ty); }
}
}
-fn float_width(llt: TypeRef) -> uint {
+fn float_width(llt: TypeRef) -> uint unsafe {
ret alt llvm::LLVMGetTypeKind(llt) {
1 { 32u }
2 { 64u }
};
}
-fn fn_ty_param_tys(fn_ty: TypeRef) -> [TypeRef] {
+fn fn_ty_param_tys(fn_ty: TypeRef) -> [TypeRef] unsafe {
let args = vec::init_elt(0 as TypeRef, llvm::LLVMCountParamTypes(fn_ty));
- unsafe {
- llvm::LLVMGetParamTypes(fn_ty, vec::to_ptr(args));
- }
+ llvm::LLVMGetParamTypes(fn_ty, vec::to_ptr(args));
ret args;
}
/* Memory-managed interface to target data. */
-resource target_data_res(TD: TargetDataRef) {
+resource target_data_res(TD: TargetDataRef) unsafe {
llvm::LLVMDisposeTargetData(TD);
}
type target_data = {lltd: TargetDataRef, dtor: @target_data_res};
-fn mk_target_data(string_rep: str) -> target_data {
+fn mk_target_data(string_rep: str) -> target_data unsafe {
let lltd =
str::as_buf(string_rep, {|buf| llvm::LLVMCreateTargetData(buf) });
ret {lltd: lltd, dtor: @target_data_res(lltd)};
/* Memory-managed interface to pass managers. */
-resource pass_manager_res(PM: PassManagerRef) {
+resource pass_manager_res(PM: PassManagerRef) unsafe {
llvm::LLVMDisposePassManager(PM);
}
type pass_manager = {llpm: PassManagerRef, dtor: @pass_manager_res};
-fn mk_pass_manager() -> pass_manager {
+fn mk_pass_manager() -> pass_manager unsafe {
let llpm = llvm::LLVMCreatePassManager();
ret {llpm: llpm, dtor: @pass_manager_res(llpm)};
}
/* Memory-managed interface to object files. */
-resource object_file_res(ObjectFile: ObjectFileRef) {
+resource object_file_res(ObjectFile: ObjectFileRef) unsafe {
llvm::LLVMDisposeObjectFile(ObjectFile);
}
type object_file = {llof: ObjectFileRef, dtor: @object_file_res};
-fn mk_object_file(llmb: MemoryBufferRef) -> object_file {
+fn mk_object_file(llmb: MemoryBufferRef) -> object_file unsafe {
let llof = llvm::LLVMCreateObjectFile(llmb);
ret {llof: llof, dtor: @object_file_res(llof)};
}
/* Memory-managed interface to section iterators. */
-resource section_iter_res(SI: SectionIteratorRef) {
+resource section_iter_res(SI: SectionIteratorRef) unsafe {
llvm::LLVMDisposeSectionIterator(SI);
}
type section_iter = {llsi: SectionIteratorRef, dtor: @section_iter_res};
-fn mk_section_iter(llof: ObjectFileRef) -> section_iter {
+fn mk_section_iter(llof: ObjectFileRef) -> section_iter unsafe {
let llsi = llvm::LLVMGetSections(llof);
ret {llsi: llsi, dtor: @section_iter_res(llsi)};
}
fn test_leaks() { }
#[test]
-fn test_pipes() {
+fn test_pipes() unsafe {
let pipe_in = os::pipe();
let pipe_out = os::pipe();
let pipe_err = os::pipe();
log actual;
assert (expected == actual);
- fn writeclose(fd: int, s: str) {
+ fn writeclose(fd: int, s: str) unsafe {
let writer = io::new_writer(io::fd_buf_writer(fd, option::none));
writer.write_str(s);
os::libc::close(fd);
}
- fn readclose(fd: int) -> str {
+ fn readclose(fd: int) -> str unsafe {
// Copied from run::program_output
let file = os::fd_FILE(fd);
let reader = io::new_reader(io::FILE_buf_reader(file, option::none));
}
#[test]
-fn waitpid() {
+fn waitpid() unsafe {
let pid = run::spawn_process("false", [], 0, 0, 0);
let status = run::waitpid(pid);
assert status == 1;