Skip to content

Commit 87252ef

Browse files
committed
Update tests
1 parent 135d7c3 commit 87252ef

16 files changed

Lines changed: 574 additions & 0 deletions

tests/unit/out/refcount/string_literals.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ fn main_0() -> i32 {
3232
Rc::new(RefCell::new(Box::<[u8]>::from(b"papanasi\0".as_slice())));
3333
let immutable_string_arr: Value<Box<[u8]>> =
3434
Rc::new(RefCell::new(Box::<[u8]>::from(b"papanasi\0".as_slice())));
35+
let mutable_empty: Value<Ptr<u8>> = Rc::new(RefCell::new(Ptr::from_string_literal("")));
36+
let immutable_empty: Value<Ptr<u8>> = Rc::new(RefCell::new(Ptr::from_string_literal("")));
37+
let mutable_empty_arr: Value<Box<[u8]>> =
38+
Rc::new(RefCell::new(Box::<[u8]>::from(b"\0".as_slice())));
39+
let immutable_empty_arr: Value<Box<[u8]>> =
40+
Rc::new(RefCell::new(Box::<[u8]>::from(b"\0".as_slice())));
3541
({
3642
let _str: Ptr<u8> = Ptr::from_string_literal("world");
3743
foo_mut_0(_str)
@@ -64,5 +70,25 @@ fn main_0() -> i32 {
6470
let _str: Ptr<u8> = (immutable_string_arr.as_pointer() as Ptr<u8>);
6571
foo_const_1(_str)
6672
});
73+
({
74+
let _str: Ptr<u8> = Ptr::from_string_literal("");
75+
foo_const_1(_str)
76+
});
77+
({
78+
let _str: Ptr<u8> = (*mutable_empty.borrow()).clone();
79+
foo_const_1(_str)
80+
});
81+
({
82+
let _str: Ptr<u8> = (*immutable_empty.borrow()).clone();
83+
foo_const_1(_str)
84+
});
85+
({
86+
let _str: Ptr<u8> = (mutable_empty_arr.as_pointer() as Ptr<u8>);
87+
foo_const_1(_str)
88+
});
89+
({
90+
let _str: Ptr<u8> = (immutable_empty_arr.as_pointer() as Ptr<u8>);
91+
foo_const_1(_str)
92+
});
6793
return 0;
6894
}

tests/unit/out/refcount/string_literals_c.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ fn main_0() -> i32 {
3232
Rc::new(RefCell::new(Box::<[u8]>::from(b"papanasi\0".as_slice())));
3333
let immutable_string_arr: Value<Box<[u8]>> =
3434
Rc::new(RefCell::new(Box::<[u8]>::from(b"papanasi\0".as_slice())));
35+
let mutable_empty: Value<Ptr<u8>> = Rc::new(RefCell::new(Ptr::from_string_literal("")));
36+
let immutable_empty: Value<Ptr<u8>> = Rc::new(RefCell::new(Ptr::from_string_literal("")));
37+
let mutable_empty_arr: Value<Box<[u8]>> =
38+
Rc::new(RefCell::new(Box::<[u8]>::from(b"\0".as_slice())));
39+
let immutable_empty_arr: Value<Box<[u8]>> =
40+
Rc::new(RefCell::new(Box::<[u8]>::from(b"\0".as_slice())));
3541
({
3642
let _str: Ptr<u8> = Ptr::from_string_literal("world");
3743
foo_mut_0(_str)
@@ -64,5 +70,25 @@ fn main_0() -> i32 {
6470
let _str: Ptr<u8> = (immutable_string_arr.as_pointer() as Ptr<u8>);
6571
foo_const_1(_str)
6672
});
73+
({
74+
let _str: Ptr<u8> = Ptr::from_string_literal("");
75+
foo_const_1(_str)
76+
});
77+
({
78+
let _str: Ptr<u8> = (*mutable_empty.borrow()).clone();
79+
foo_const_1(_str)
80+
});
81+
({
82+
let _str: Ptr<u8> = (*immutable_empty.borrow()).clone();
83+
foo_const_1(_str)
84+
});
85+
({
86+
let _str: Ptr<u8> = (mutable_empty_arr.as_pointer() as Ptr<u8>);
87+
foo_const_1(_str)
88+
});
89+
({
90+
let _str: Ptr<u8> = (immutable_empty_arr.as_pointer() as Ptr<u8>);
91+
foo_const_1(_str)
92+
});
6793
return 0;
6894
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
extern crate libcc2rs;
2+
use libcc2rs::*;
3+
use std::cell::RefCell;
4+
use std::collections::BTreeMap;
5+
use std::io::prelude::*;
6+
use std::io::{Read, Seek, Write};
7+
use std::os::fd::AsFd;
8+
use std::rc::{Rc, Weak};
9+
pub fn main() {
10+
std::process::exit(main_0());
11+
}
12+
fn main_0() -> i32 {
13+
let joined: Value<Ptr<u8>> = Rc::new(RefCell::new(Ptr::from_string_literal(
14+
"alpha\nbeta\ngamma\n",
15+
)));
16+
assert!(((((*joined.borrow()).offset((0) as isize).read()) as i32) == (('a' as u8) as i32)));
17+
assert!(((((*joined.borrow()).offset((5) as isize).read()) as i32) == (('\n' as u8) as i32)));
18+
assert!(((((*joined.borrow()).offset((6) as isize).read()) as i32) == (('b' as u8) as i32)));
19+
let arr: Value<Box<[u8]>> = Rc::new(RefCell::new(Box::<[u8]>::from(b"foobar\0".as_slice())));
20+
assert!((((*arr.borrow())[(0) as usize] as i32) == (('f' as u8) as i32)));
21+
assert!((((*arr.borrow())[(3) as usize] as i32) == (('b' as u8) as i32)));
22+
assert!((((*arr.borrow())[(5) as usize] as i32) == (('r' as u8) as i32)));
23+
assert!((((*arr.borrow())[(6) as usize] as i32) == (('\0' as u8) as i32)));
24+
let split_pieces: Value<Ptr<u8>> = Rc::new(RefCell::new(Ptr::from_string_literal("abcdefghi")));
25+
assert!(
26+
((((*split_pieces.borrow()).offset((0) as isize).read()) as i32) == (('a' as u8) as i32))
27+
);
28+
assert!(
29+
((((*split_pieces.borrow()).offset((3) as isize).read()) as i32) == (('d' as u8) as i32))
30+
);
31+
assert!(
32+
((((*split_pieces.borrow()).offset((6) as isize).read()) as i32) == (('g' as u8) as i32))
33+
);
34+
assert!(
35+
((((*split_pieces.borrow()).offset((8) as isize).read()) as i32) == (('i' as u8) as i32))
36+
);
37+
assert!(
38+
((((*split_pieces.borrow()).offset((9) as isize).read()) as i32) == (('\0' as u8) as i32))
39+
);
40+
return 0;
41+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
extern crate libcc2rs;
2+
use libcc2rs::*;
3+
use std::cell::RefCell;
4+
use std::collections::BTreeMap;
5+
use std::io::prelude::*;
6+
use std::io::{Read, Seek, Write};
7+
use std::os::fd::AsFd;
8+
use std::rc::{Rc, Weak};
9+
pub fn main() {
10+
std::process::exit(main_0());
11+
}
12+
fn main_0() -> i32 {
13+
let arr: Value<Box<[u8]>> = Rc::new(RefCell::new(Box::<[u8]>::from(b"foobar\0".as_slice())));
14+
assert!((((*arr.borrow())[(0) as usize] as i32) == ('f' as i32)));
15+
assert!((((*arr.borrow())[(3) as usize] as i32) == ('b' as i32)));
16+
assert!((((*arr.borrow())[(5) as usize] as i32) == ('r' as i32)));
17+
assert!((((*arr.borrow())[(6) as usize] as i32) == ('\0' as i32)));
18+
let split_pieces: Value<Ptr<u8>> = Rc::new(RefCell::new(Ptr::from_string_literal("abcdefghi")));
19+
assert!(((((*split_pieces.borrow()).offset((0) as isize).read()) as i32) == ('a' as i32)));
20+
assert!(((((*split_pieces.borrow()).offset((3) as isize).read()) as i32) == ('d' as i32)));
21+
assert!(((((*split_pieces.borrow()).offset((6) as isize).read()) as i32) == ('g' as i32)));
22+
assert!(((((*split_pieces.borrow()).offset((8) as isize).read()) as i32) == ('i' as i32)));
23+
assert!(((((*split_pieces.borrow()).offset((9) as isize).read()) as i32) == ('\0' as i32)));
24+
return 0;
25+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
extern crate libcc2rs;
2+
use libcc2rs::*;
3+
use std::cell::RefCell;
4+
use std::collections::BTreeMap;
5+
use std::io::prelude::*;
6+
use std::io::{Read, Seek, Write};
7+
use std::os::fd::AsFd;
8+
use std::rc::{Rc, Weak};
9+
pub fn get_greeting_0() -> Ptr<u8> {
10+
return Ptr::from_string_literal("hello");
11+
}
12+
pub fn get_empty_1() -> Ptr<u8> {
13+
return Ptr::from_string_literal("");
14+
}
15+
pub fn get_branch_2(x: i32) -> Ptr<u8> {
16+
let x: Value<i32> = Rc::new(RefCell::new(x));
17+
if ((*x.borrow()) > 0) {
18+
return Ptr::from_string_literal("positive");
19+
}
20+
return Ptr::from_string_literal("non-positive");
21+
}
22+
pub fn main() {
23+
std::process::exit(main_0());
24+
}
25+
fn main_0() -> i32 {
26+
let a: Value<Ptr<u8>> = Rc::new(RefCell::new(({ get_greeting_0() })));
27+
assert!(((((*a.borrow()).offset((0) as isize).read()) as i32) == (('h' as u8) as i32)));
28+
assert!(((((*a.borrow()).offset((4) as isize).read()) as i32) == (('o' as u8) as i32)));
29+
assert!(((((*a.borrow()).offset((5) as isize).read()) as i32) == (('\0' as u8) as i32)));
30+
let b: Value<Ptr<u8>> = Rc::new(RefCell::new(({ get_empty_1() })));
31+
assert!(((((*b.borrow()).offset((0) as isize).read()) as i32) == (('\0' as u8) as i32)));
32+
let c: Value<Ptr<u8>> = Rc::new(RefCell::new(
33+
({
34+
let _x: i32 = 1;
35+
get_branch_2(_x)
36+
}),
37+
));
38+
assert!(((((*c.borrow()).offset((0) as isize).read()) as i32) == (('p' as u8) as i32)));
39+
assert!(((((*c.borrow()).offset((7) as isize).read()) as i32) == (('e' as u8) as i32)));
40+
assert!(((((*c.borrow()).offset((8) as isize).read()) as i32) == (('\0' as u8) as i32)));
41+
let d: Value<Ptr<u8>> = Rc::new(RefCell::new(
42+
({
43+
let _x: i32 = -1_i32;
44+
get_branch_2(_x)
45+
}),
46+
));
47+
assert!(((((*d.borrow()).offset((0) as isize).read()) as i32) == (('n' as u8) as i32)));
48+
assert!(((((*d.borrow()).offset((11) as isize).read()) as i32) == (('e' as u8) as i32)));
49+
assert!(((((*d.borrow()).offset((12) as isize).read()) as i32) == (('\0' as u8) as i32)));
50+
return 0;
51+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
extern crate libcc2rs;
2+
use libcc2rs::*;
3+
use std::cell::RefCell;
4+
use std::collections::BTreeMap;
5+
use std::io::prelude::*;
6+
use std::io::{Read, Seek, Write};
7+
use std::os::fd::AsFd;
8+
use std::rc::{Rc, Weak};
9+
pub fn get_greeting_0() -> Ptr<u8> {
10+
return Ptr::from_string_literal("hello");
11+
}
12+
pub fn get_empty_1() -> Ptr<u8> {
13+
return Ptr::from_string_literal("");
14+
}
15+
pub fn get_branch_2(x: i32) -> Ptr<u8> {
16+
let x: Value<i32> = Rc::new(RefCell::new(x));
17+
if ((*x.borrow()) > 0) {
18+
return Ptr::from_string_literal("positive");
19+
}
20+
return Ptr::from_string_literal("non-positive");
21+
}
22+
pub fn main() {
23+
std::process::exit(main_0());
24+
}
25+
fn main_0() -> i32 {
26+
let a: Value<Ptr<u8>> = Rc::new(RefCell::new(({ get_greeting_0() })));
27+
assert!(((((*a.borrow()).offset((0) as isize).read()) as i32) == ('h' as i32)));
28+
assert!(((((*a.borrow()).offset((4) as isize).read()) as i32) == ('o' as i32)));
29+
assert!(((((*a.borrow()).offset((5) as isize).read()) as i32) == ('\0' as i32)));
30+
let b: Value<Ptr<u8>> = Rc::new(RefCell::new(({ get_empty_1() })));
31+
assert!(((((*b.borrow()).offset((0) as isize).read()) as i32) == ('\0' as i32)));
32+
let c: Value<Ptr<u8>> = Rc::new(RefCell::new(
33+
({
34+
let _x: i32 = 1;
35+
get_branch_2(_x)
36+
}),
37+
));
38+
assert!(((((*c.borrow()).offset((0) as isize).read()) as i32) == ('p' as i32)));
39+
assert!(((((*c.borrow()).offset((7) as isize).read()) as i32) == ('e' as i32)));
40+
assert!(((((*c.borrow()).offset((8) as isize).read()) as i32) == ('\0' as i32)));
41+
let d: Value<Ptr<u8>> = Rc::new(RefCell::new(
42+
({
43+
let _x: i32 = -1_i32;
44+
get_branch_2(_x)
45+
}),
46+
));
47+
assert!(((((*d.borrow()).offset((0) as isize).read()) as i32) == ('n' as i32)));
48+
assert!(((((*d.borrow()).offset((11) as isize).read()) as i32) == ('e' as i32)));
49+
assert!(((((*d.borrow()).offset((12) as isize).read()) as i32) == ('\0' as i32)));
50+
return 0;
51+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
extern crate libcc2rs;
2+
use libcc2rs::*;
3+
use std::cell::RefCell;
4+
use std::collections::BTreeMap;
5+
use std::io::prelude::*;
6+
use std::io::{Read, Seek, Write};
7+
use std::os::fd::AsFd;
8+
use std::rc::{Rc, Weak};
9+
pub fn main() {
10+
std::process::exit(main_0());
11+
}
12+
fn main_0() -> i32 {
13+
let empty_buf : Value<Box<[ u8 ]> > = Rc::new(RefCell::new(Box::<[u8]>::from(b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0".as_slice()) )) ;
14+
assert!((((*empty_buf.borrow())[(0) as usize] as i32) == (('\0' as u8) as i32)));
15+
assert!((((*empty_buf.borrow())[(255) as usize] as i32) == (('\0' as u8) as i32)));
16+
let prefix_buf: Value<Box<[u8]>> = Rc::new(RefCell::new(Box::<[u8]>::from(
17+
b"%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0".as_slice(),
18+
)));
19+
assert!((((*prefix_buf.borrow())[(0) as usize] as i32) == (('%' as u8) as i32)));
20+
assert!((((*prefix_buf.borrow())[(1) as usize] as i32) == (('\0' as u8) as i32)));
21+
assert!((((*prefix_buf.borrow())[(31) as usize] as i32) == (('\0' as u8) as i32)));
22+
let short_buf: Value<Box<[u8]>> = Rc::new(RefCell::new(Box::<[u8]>::from(
23+
b"hi\0\0\0\0\0\0\0\0\0\0\0\0\0\0".as_slice(),
24+
)));
25+
assert!((((*short_buf.borrow())[(0) as usize] as i32) == (('h' as u8) as i32)));
26+
assert!((((*short_buf.borrow())[(1) as usize] as i32) == (('i' as u8) as i32)));
27+
assert!((((*short_buf.borrow())[(2) as usize] as i32) == (('\0' as u8) as i32)));
28+
assert!((((*short_buf.borrow())[(15) as usize] as i32) == (('\0' as u8) as i32)));
29+
let exact_buf: Value<Box<[u8]>> =
30+
Rc::new(RefCell::new(Box::<[u8]>::from(b"hello\0".as_slice())));
31+
assert!((((*exact_buf.borrow())[(0) as usize] as i32) == (('h' as u8) as i32)));
32+
assert!((((*exact_buf.borrow())[(4) as usize] as i32) == (('o' as u8) as i32)));
33+
assert!((((*exact_buf.borrow())[(5) as usize] as i32) == (('\0' as u8) as i32)));
34+
assert!((::std::mem::size_of::<[u8; 6]>() as u64 == 6_u64));
35+
assert!(((::std::mem::size_of::<[u8; 6]>() as u64 as u64).wrapping_sub(1_u64) == 5_u64));
36+
assert!((::std::mem::size_of::<[u8; 1]>() as u64 == 1_u64));
37+
assert!(((::std::mem::size_of::<[u8; 16]>() as u64 as u64).wrapping_sub(1_u64) == 15_u64));
38+
return 0;
39+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
extern crate libcc2rs;
2+
use libcc2rs::*;
3+
use std::cell::RefCell;
4+
use std::collections::BTreeMap;
5+
use std::io::prelude::*;
6+
use std::io::{Read, Seek, Write};
7+
use std::os::fd::AsFd;
8+
use std::rc::{Rc, Weak};
9+
pub fn main() {
10+
std::process::exit(main_0());
11+
}
12+
fn main_0() -> i32 {
13+
let empty_buf : Value<Box<[ u8 ]> > = Rc::new(RefCell::new(Box::<[u8]>::from(b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0".as_slice()) )) ;
14+
assert!((((*empty_buf.borrow())[(0) as usize] as i32) == ('\0' as i32)));
15+
assert!((((*empty_buf.borrow())[(255) as usize] as i32) == ('\0' as i32)));
16+
let prefix_buf: Value<Box<[u8]>> = Rc::new(RefCell::new(Box::<[u8]>::from(
17+
b"%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0".as_slice(),
18+
)));
19+
assert!((((*prefix_buf.borrow())[(0) as usize] as i32) == ('%' as i32)));
20+
assert!((((*prefix_buf.borrow())[(1) as usize] as i32) == ('\0' as i32)));
21+
assert!((((*prefix_buf.borrow())[(31) as usize] as i32) == ('\0' as i32)));
22+
let short_buf: Value<Box<[u8]>> = Rc::new(RefCell::new(Box::<[u8]>::from(
23+
b"hi\0\0\0\0\0\0\0\0\0\0\0\0\0\0".as_slice(),
24+
)));
25+
assert!((((*short_buf.borrow())[(0) as usize] as i32) == ('h' as i32)));
26+
assert!((((*short_buf.borrow())[(1) as usize] as i32) == ('i' as i32)));
27+
assert!((((*short_buf.borrow())[(2) as usize] as i32) == ('\0' as i32)));
28+
assert!((((*short_buf.borrow())[(15) as usize] as i32) == ('\0' as i32)));
29+
let exact_buf: Value<Box<[u8]>> =
30+
Rc::new(RefCell::new(Box::<[u8]>::from(b"hello\0".as_slice())));
31+
assert!((((*exact_buf.borrow())[(0) as usize] as i32) == ('h' as i32)));
32+
assert!((((*exact_buf.borrow())[(4) as usize] as i32) == ('o' as i32)));
33+
assert!((((*exact_buf.borrow())[(5) as usize] as i32) == ('\0' as i32)));
34+
assert!((::std::mem::size_of::<[u8; 6]>() as u64 == 6_u64));
35+
assert!(((::std::mem::size_of::<[u8; 6]>() as u64 as u64).wrapping_sub(1_u64) == 5_u64));
36+
assert!((::std::mem::size_of::<[u8; 1]>() as u64 == 1_u64));
37+
assert!(((::std::mem::size_of::<[u8; 16]>() as u64 as u64).wrapping_sub(1_u64) == 15_u64));
38+
return 0;
39+
}

tests/unit/out/unsafe/string_literals.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ unsafe fn main_0() -> i32 {
2424
let mut immutable_string: *const u8 = b"hello\0".as_ptr();
2525
let mut mutable_string_arr: [u8; 9] = *b"papanasi\0";
2626
let immutable_string_arr: [u8; 9] = *b"papanasi\0";
27+
let mut mutable_empty: *mut u8 = b"\0".as_ptr().cast_mut();
28+
let mut immutable_empty: *const u8 = b"\0".as_ptr();
29+
let mut mutable_empty_arr: [u8; 1] = *b"\0";
30+
let immutable_empty_arr: [u8; 1] = *b"\0";
2731
(unsafe {
2832
let _str: *mut u8 = b"world\0".as_ptr().cast_mut();
2933
foo_mut_0(_str)
@@ -56,5 +60,25 @@ unsafe fn main_0() -> i32 {
5660
let _str: *const u8 = immutable_string_arr.as_ptr();
5761
foo_const_1(_str)
5862
});
63+
(unsafe {
64+
let _str: *const u8 = b"\0".as_ptr();
65+
foo_const_1(_str)
66+
});
67+
(unsafe {
68+
let _str: *const u8 = mutable_empty.cast_const();
69+
foo_const_1(_str)
70+
});
71+
(unsafe {
72+
let _str: *const u8 = immutable_empty;
73+
foo_const_1(_str)
74+
});
75+
(unsafe {
76+
let _str: *const u8 = mutable_empty_arr.as_mut_ptr().cast_const();
77+
foo_const_1(_str)
78+
});
79+
(unsafe {
80+
let _str: *const u8 = immutable_empty_arr.as_ptr();
81+
foo_const_1(_str)
82+
});
5983
return 0;
6084
}

0 commit comments

Comments
 (0)