Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions rules/stdio/tgt_refcount.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ fn t1() -> Ptr<CFile> {
Ptr::null()
}

fn t2() -> CFile {
unimplemented!()
}

fn f1(a0: Ptr<i8>, a1: Ptr<i8>) -> Ptr<CFile> {
match CFile::open(&a0.to_rust_string(), &a1.to_rust_string()) {
Some(__f) => Ptr::alloc(__f),
Expand Down
14 changes: 14 additions & 0 deletions tests/unit/out/refcount/printfs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,18 @@ pub fn log_fmt_4(mut fmt: Ptr<i8>, mut v: i32) {
libcc2rs::c_stdout().with_mut(|__f| __f.write(__s.as_bytes())) as i32
};
}
pub fn put_5(out: Ptr<CFile>, mut s: Ptr<i8>) {
match ({ (out).clone() },) {
(mut __tmp_0,) => {
match s
.with_c_bytes(|__bytes| __tmp_0.with_mut(|__f| __f.write(__bytes)) == __bytes.len())
{
true => 0,
false => -1,
}
}
};
}
pub fn main() {
__cpp2rust_init_globals();
std::process::exit(main_0());
Expand Down Expand Up @@ -91,6 +103,8 @@ fn main_0() -> i32 {
});
({ log_fmt_4(Ptr::<i8>::from_string_literal(b"%d\n"), 6) });
println!("{{}} {} {}", 5_u64, (-6_i32 as i64));
let mut fp: Ptr<CFile> = libcc2rs::c_stdout();
({ put_5((fp).clone(), Ptr::<i8>::from_string_literal(b"value\n")) });
return 0;
}
pub fn __cpp2rust_init_globals() {}
5 changes: 5 additions & 0 deletions tests/unit/out/unsafe/printfs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ pub unsafe fn log_to_3(mut out: *mut ::libc::FILE, mut fmt: *const libc::c_char,
pub unsafe fn log_fmt_4(mut fmt: *const libc::c_char, mut v: i32) {
(unsafe { libc::printf(fmt as *const libc::c_char, (v)) });
}
pub unsafe fn put_5(out: *mut ::libc::FILE, mut s: *const libc::c_char) {
libc::fputs(s, (out));
}
pub fn main() {
unsafe {
__cpp2rust_init_globals();
Expand Down Expand Up @@ -127,6 +130,8 @@ unsafe fn main_0() -> i32 {
(-6_i32 as i64),
)
});
let mut fp: *mut ::libc::FILE = libcc2rs::stdout_unsafe();
(unsafe { put_5(&mut (*fp), c"value\n".as_ptr()) });
return 0;
}
pub unsafe fn __cpp2rust_init_globals() {}
4 changes: 4 additions & 0 deletions tests/unit/printfs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ template <class... Args> void log_to(FILE *out, const char *fmt, Args... args) {

void log_fmt(const char *fmt, int v) { printf(fmt, v); }

static void put(FILE &out, const char *s) { fputs(s, &out); }

int main() {
fprintf(stdout, "%s\n", "fprintf stdout");
fprintf(stdout, "%d %u %ld\n", 1, 2U, 3L);
Expand All @@ -29,5 +31,7 @@ int main() {
log_to(stderr, "%d\n", 5);
log_fmt("%d\n", 6);
printf("{} %ju %jd\n", (uintmax_t)5, (intmax_t)-6);
FILE *fp = stdout;
put(*fp, "value\n");
return 0;
}
Loading