Skip to content

Commit 8ded405

Browse files
committed
Drop intermediate cast
1 parent ef2f1a4 commit 8ded405

51 files changed

Lines changed: 238 additions & 308 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎cpp2rust/converter/converter.cpp‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2458,11 +2458,6 @@ bool Converter::VisitImplicitCastExpr(clang::ImplicitCastExpr *expr) {
24582458
case clang::CastKind::CK_BitCast: {
24592459
PushParen paren(*this);
24602460
Convert(sub_expr);
2461-
if (type->isVoidPointerType()) {
2462-
StrCat(keyword::kAs,
2463-
type->getPointeeType().isConstQualified() ? "*const" : "*mut");
2464-
StrCat(ConvertPointeeType(sub_expr->getType()));
2465-
}
24662461
ConvertCast(type);
24672462
SetFreshType(type);
24682463
break;

‎tests/multi-file/defaulted_move_cross_tu/out/unsafe/defaulted_move_cross_tu.rs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ impl S {
3232
{
3333
if 8_usize != 0 {
3434
::std::ptr::copy_nonoverlapping(
35-
((&mut (*_a0).n as *mut [i32; 2]) as *const [i32; 2] as *const ::libc::c_void),
36-
((&mut self.n as *mut [i32; 2]) as *mut [i32; 2] as *mut ::libc::c_void),
35+
((&mut (*_a0).n as *mut [i32; 2]) as *const ::libc::c_void),
36+
((&mut self.n as *mut [i32; 2]) as *mut ::libc::c_void),
3737
8_usize as usize,
3838
)
3939
}
40-
((&mut self.n as *mut [i32; 2]) as *mut [i32; 2] as *mut ::libc::c_void)
40+
((&mut self.n as *mut [i32; 2]) as *mut ::libc::c_void)
4141
};
4242
return &mut (*(self as *mut S));
4343
}

‎tests/ub/out/unsafe/fd_use_after_close.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ unsafe fn main_0() -> i32 {
2323
let mut buf: [libc::c_char; 4] = [(0 as libc::c_char); 4];
2424
let mut n: isize = libc::read(
2525
fd,
26-
(buf.as_mut_ptr() as *mut libc::c_char as *mut ::libc::c_void),
26+
(buf.as_mut_ptr() as *mut ::libc::c_void),
2727
::std::mem::size_of::<[libc::c_char; 4]>(),
2828
);
2929
return if ((((n) == (-1_i32 as isize)) as i32) != 0) {

‎tests/unit/out/unsafe/bsearch_ptr_cmp.rs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ pub fn main() {
1818
unsafe fn main_0() -> i32 {
1919
let mut a1: [i32; 3] = [1, 2, 3];
2020
let mut vptr1: *mut ::libc::c_void = libc::bsearch(
21-
((&mut a1[(0) as usize] as *mut i32) as *const i32 as *const ::libc::c_void),
22-
(a1.as_mut_ptr() as *const i32 as *const ::libc::c_void),
21+
((&mut a1[(0) as usize] as *mut i32) as *const ::libc::c_void),
22+
(a1.as_mut_ptr() as *const ::libc::c_void),
2323
1_usize,
2424
::std::mem::size_of::<i32>(),
2525
Some(std::mem::transmute::<
@@ -30,7 +30,7 @@ unsafe fn main_0() -> i32 {
3030
as *const (),
3131
)),
3232
);
33-
assert!(((vptr1) == ((&mut a1[(0) as usize] as *mut i32) as *mut i32 as *mut ::libc::c_void)));
33+
assert!(((vptr1) == ((&mut a1[(0) as usize] as *mut i32) as *mut ::libc::c_void)));
3434
return 0;
3535
}
3636
pub unsafe fn __cpp2rust_init_globals() {}

‎tests/unit/out/unsafe/copy_move_defaulted.rs‎

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -150,13 +150,12 @@ impl Buffer {
150150
{
151151
if 8_usize != 0 {
152152
::std::ptr::copy_nonoverlapping(
153-
((&mut (*_a0).arr as *mut [i32; 2]) as *const [i32; 2]
154-
as *const ::libc::c_void),
155-
((&mut self.arr as *mut [i32; 2]) as *mut [i32; 2] as *mut ::libc::c_void),
153+
((&mut (*_a0).arr as *mut [i32; 2]) as *const ::libc::c_void),
154+
((&mut self.arr as *mut [i32; 2]) as *mut ::libc::c_void),
156155
8_usize as usize,
157156
)
158157
}
159-
((&mut self.arr as *mut [i32; 2]) as *mut [i32; 2] as *mut ::libc::c_void)
158+
((&mut self.arr as *mut [i32; 2]) as *mut ::libc::c_void)
160159
};
161160
return &mut (*(self as *mut Buffer));
162161
}
@@ -195,13 +194,12 @@ impl Owner {
195194
{
196195
if 8_usize != 0 {
197196
::std::ptr::copy_nonoverlapping(
198-
((&mut (*_a0).arr as *mut [i32; 2]) as *const [i32; 2]
199-
as *const ::libc::c_void),
200-
((&mut self.arr as *mut [i32; 2]) as *mut [i32; 2] as *mut ::libc::c_void),
197+
((&mut (*_a0).arr as *mut [i32; 2]) as *const ::libc::c_void),
198+
((&mut self.arr as *mut [i32; 2]) as *mut ::libc::c_void),
201199
8_usize as usize,
202200
)
203201
}
204-
((&mut self.arr as *mut [i32; 2]) as *mut [i32; 2] as *mut ::libc::c_void)
202+
((&mut self.arr as *mut [i32; 2]) as *mut ::libc::c_void)
205203
};
206204
self.p = (*_a0).p.take();
207205
return &mut (*(self as *mut Owner));

‎tests/unit/out/unsafe/cstring.rs‎

Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ pub unsafe fn test_memcpy_0() {
1919
let mut r: *mut ::libc::c_void = {
2020
if 6_usize != 0 {
2121
::std::ptr::copy_nonoverlapping(
22-
(src.as_ptr() as *const libc::c_char as *const ::libc::c_void),
23-
(dst.as_mut_ptr() as *mut libc::c_char as *mut ::libc::c_void),
22+
(src.as_ptr() as *const ::libc::c_void),
23+
(dst.as_mut_ptr() as *mut ::libc::c_void),
2424
6_usize as usize,
2525
)
2626
}
27-
(dst.as_mut_ptr() as *mut libc::c_char as *mut ::libc::c_void)
27+
(dst.as_mut_ptr() as *mut ::libc::c_void)
2828
};
29-
assert!(((r) == (dst.as_mut_ptr() as *mut libc::c_char as *mut ::libc::c_void)));
29+
assert!(((r) == (dst.as_mut_ptr() as *mut ::libc::c_void)));
3030
assert!(
3131
(((dst[(0) as usize] as i32) == (('h' as libc::c_char) as i32))
3232
&& ((dst[(1) as usize] as i32) == (('e' as libc::c_char) as i32)))
@@ -41,13 +41,13 @@ pub unsafe fn test_memcpy_0() {
4141
pub unsafe fn test_memset_1() {
4242
let mut buf: [libc::c_char; 4] = [(0 as libc::c_char); 4];
4343
let mut r: *mut ::libc::c_void = {
44-
let byte_0 = (buf.as_mut_ptr() as *mut libc::c_char as *mut ::libc::c_void) as *mut u8;
44+
let byte_0 = (buf.as_mut_ptr() as *mut ::libc::c_void) as *mut u8;
4545
for offset in 0..4_usize {
4646
*byte_0.offset(offset as isize) = (('x' as libc::c_char) as i32) as u8;
4747
}
48-
(buf.as_mut_ptr() as *mut libc::c_char as *mut ::libc::c_void)
48+
(buf.as_mut_ptr() as *mut ::libc::c_void)
4949
};
50-
assert!(((r) == (buf.as_mut_ptr() as *mut libc::c_char as *mut ::libc::c_void)));
50+
assert!(((r) == (buf.as_mut_ptr() as *mut ::libc::c_void)));
5151
assert!(
5252
((((buf[(0) as usize] as i32) == (('x' as libc::c_char) as i32))
5353
&& ((buf[(1) as usize] as i32) == (('x' as libc::c_char) as i32)))
@@ -77,11 +77,11 @@ pub unsafe fn test_memcmp_2() {
7777
assert!(
7878
(({
7979
let sa = core::slice::from_raw_parts(
80-
(a.as_ptr() as *const libc::c_char as *const ::libc::c_void) as *const u8,
80+
(a.as_ptr() as *const ::libc::c_void) as *const u8,
8181
4_usize as usize,
8282
);
8383
let sb = core::slice::from_raw_parts(
84-
(b.as_ptr() as *const libc::c_char as *const ::libc::c_void) as *const u8,
84+
(b.as_ptr() as *const ::libc::c_void) as *const u8,
8585
4_usize as usize,
8686
);
8787
let mut diff = 0_i32;
@@ -97,11 +97,11 @@ pub unsafe fn test_memcmp_2() {
9797
assert!(
9898
(({
9999
let sa = core::slice::from_raw_parts(
100-
(a.as_ptr() as *const libc::c_char as *const ::libc::c_void) as *const u8,
100+
(a.as_ptr() as *const ::libc::c_void) as *const u8,
101101
4_usize as usize,
102102
);
103103
let sb = core::slice::from_raw_parts(
104-
(c.as_ptr() as *const libc::c_char as *const ::libc::c_void) as *const u8,
104+
(c.as_ptr() as *const ::libc::c_void) as *const u8,
105105
4_usize as usize,
106106
);
107107
let mut diff = 0_i32;
@@ -117,11 +117,11 @@ pub unsafe fn test_memcmp_2() {
117117
assert!(
118118
(({
119119
let sa = core::slice::from_raw_parts(
120-
(c.as_ptr() as *const libc::c_char as *const ::libc::c_void) as *const u8,
120+
(c.as_ptr() as *const ::libc::c_void) as *const u8,
121121
4_usize as usize,
122122
);
123123
let sb = core::slice::from_raw_parts(
124-
(a.as_ptr() as *const libc::c_char as *const ::libc::c_void) as *const u8,
124+
(a.as_ptr() as *const ::libc::c_void) as *const u8,
125125
4_usize as usize,
126126
);
127127
let mut diff = 0_i32;
@@ -147,17 +147,14 @@ pub unsafe fn test_memmove_3() {
147147
let mut r: *mut ::libc::c_void = {
148148
if 4_usize != 0 {
149149
::std::ptr::copy_nonoverlapping(
150-
(buf.as_mut_ptr() as *const libc::c_char as *const ::libc::c_void),
151-
(buf.as_mut_ptr().offset((1) as isize) as *mut libc::c_char as *mut ::libc::c_void),
150+
(buf.as_mut_ptr() as *const ::libc::c_void),
151+
(buf.as_mut_ptr().offset((1) as isize) as *mut ::libc::c_void),
152152
4_usize as usize,
153153
)
154154
}
155-
(buf.as_mut_ptr().offset((1) as isize) as *mut libc::c_char as *mut ::libc::c_void)
155+
(buf.as_mut_ptr().offset((1) as isize) as *mut ::libc::c_void)
156156
};
157-
assert!(
158-
((r) == (buf.as_mut_ptr().offset((1) as isize) as *mut libc::c_char
159-
as *mut ::libc::c_void))
160-
);
157+
assert!(((r) == (buf.as_mut_ptr().offset((1) as isize) as *mut ::libc::c_void)));
161158
assert!(
162159
(((buf[(0) as usize] as i32) == (('a' as libc::c_char) as i32))
163160
&& ((buf[(1) as usize] as i32) == (('a' as libc::c_char) as i32)))
@@ -226,25 +223,20 @@ pub unsafe fn test_memchr_8() {
226223
(64 as libc::c_char),
227224
];
228225
let mut r: *const ::libc::c_void = libc::memchr(
229-
(data.as_ptr() as *const libc::c_char as *const ::libc::c_void) as *const ::libc::c_void,
226+
(data.as_ptr() as *const ::libc::c_void) as *const ::libc::c_void,
230227
48,
231228
4_usize as usize,
232229
) as *const ::libc::c_void;
233-
assert!(
234-
((r) == ((&data[(2) as usize] as *const libc::c_char) as *const libc::c_char
235-
as *const ::libc::c_void))
236-
);
230+
assert!(((r) == ((&data[(2) as usize] as *const libc::c_char) as *const ::libc::c_void)));
237231
assert!(
238232
(libc::memchr(
239-
(data.as_ptr() as *const libc::c_char as *const ::libc::c_void)
240-
as *const ::libc::c_void,
233+
(data.as_ptr() as *const ::libc::c_void) as *const ::libc::c_void,
241234
153,
242235
4_usize as usize
243236
) as *const ::libc::c_void)
244237
.is_null()
245238
);
246-
let mut p: *const ::libc::c_void =
247-
(data.as_ptr() as *const libc::c_char as *const ::libc::c_void);
239+
let mut p: *const ::libc::c_void = (data.as_ptr() as *const ::libc::c_void);
248240
let mut n: usize = 4_usize;
249241
assert!(
250242
((libc::memchr(p as *const ::libc::c_void, 16, n as usize) as *const ::libc::c_void)
@@ -274,7 +266,7 @@ pub unsafe fn test_strdup_10() {
274266
let mut d: *mut libc::c_char = libcc2rs::strdup_unsafe(c"hello".as_ptr());
275267
assert!(!((d).is_null()));
276268
assert!(((libc::strcmp((d).cast_const(), c"hello".as_ptr())) == (0)));
277-
libcc2rs::free_unsafe((d as *mut libc::c_char as *mut ::libc::c_void));
269+
libcc2rs::free_unsafe((d as *mut ::libc::c_void));
278270
let mut p: *const libc::c_char = c"world".as_ptr();
279271
let mut buf: [libc::c_char; 4] = [
280272
('a' as libc::c_char),
@@ -285,11 +277,11 @@ pub unsafe fn test_strdup_10() {
285277
let mut d2: *mut libc::c_char = libcc2rs::strdup_unsafe(p);
286278
assert!(!((d2).is_null()));
287279
assert!(((libc::strcmp((d2).cast_const(), p)) == (0)));
288-
libcc2rs::free_unsafe((d2 as *mut libc::c_char as *mut ::libc::c_void));
280+
libcc2rs::free_unsafe((d2 as *mut ::libc::c_void));
289281
let mut d3: *mut libc::c_char = libcc2rs::strdup_unsafe((buf.as_mut_ptr()).cast_const());
290282
assert!(!((d3).is_null()));
291283
assert!(((libc::strcmp((d3).cast_const(), (buf.as_mut_ptr()).cast_const())) == (0)));
292-
libcc2rs::free_unsafe((d3 as *mut libc::c_char as *mut ::libc::c_void));
284+
libcc2rs::free_unsafe((d3 as *mut ::libc::c_void));
293285
}
294286
pub unsafe fn test_strcspn_11() {
295287
assert!(((libc::strcspn(c"hello".as_ptr(), c"el".as_ptr())) == (1_usize)));

‎tests/unit/out/unsafe/errno.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ pub unsafe fn test_errno_preserved_across_strdup_1() {
2121
libcc2rs::strdup_unsafe((c"hello".as_ptr().cast_mut()).cast_const());
2222
assert!((((!((d).is_null())) as i32) != 0));
2323
assert!(((((*libcc2rs::cpp2rust_errno_unsafe()) == (99)) as i32) != 0));
24-
libcc2rs::free_unsafe((d as *mut libc::c_char as *mut ::libc::c_void));
24+
libcc2rs::free_unsafe((d as *mut ::libc::c_void));
2525
(*libcc2rs::cpp2rust_errno_unsafe()) = 0;
2626
}
2727
pub unsafe fn test_errno_from_fseek_2() {

‎tests/unit/out/unsafe/fcntl.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ unsafe fn main_0() -> i32 {
3434
assert!(
3535
((((libc::read(
3636
fds[(0) as usize],
37-
((&mut b as *mut libc::c_char) as *mut libc::c_char as *mut ::libc::c_void),
37+
((&mut b as *mut libc::c_char) as *mut ::libc::c_void),
3838
1_usize
3939
)) == (-1_i32 as isize)) as i32)
4040
!= 0)

‎tests/unit/out/unsafe/fd_io.rs‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ unsafe fn main_0() -> i32 {
2626
assert!(
2727
((((libc::write(
2828
fd,
29-
(c"hello world".as_ptr().cast_mut() as *const libc::c_char as *const ::libc::c_void),
29+
(c"hello world".as_ptr().cast_mut() as *const ::libc::c_void),
3030
11_usize
3131
)) == (11_isize)) as i32)
3232
!= 0)
@@ -36,16 +36,16 @@ unsafe fn main_0() -> i32 {
3636
assert!(((((fd) >= (0)) as i32) != 0));
3737
let mut buf: [libc::c_char; 16] = [(0 as libc::c_char); 16];
3838
{
39-
let byte_0 = (buf.as_mut_ptr() as *mut libc::c_char as *mut ::libc::c_void) as *mut u8;
39+
let byte_0 = (buf.as_mut_ptr() as *mut ::libc::c_void) as *mut u8;
4040
for offset in 0..::std::mem::size_of::<[libc::c_char; 16]>() {
4141
*byte_0.offset(offset as isize) = 0 as u8;
4242
}
43-
(buf.as_mut_ptr() as *mut libc::c_char as *mut ::libc::c_void)
43+
(buf.as_mut_ptr() as *mut ::libc::c_void)
4444
};
4545
assert!(
4646
((((libc::read(
4747
fd,
48-
(buf.as_mut_ptr() as *mut libc::c_char as *mut ::libc::c_void),
48+
(buf.as_mut_ptr() as *mut ::libc::c_void),
4949
::std::mem::size_of::<[libc::c_char; 16]>()
5050
)) == (11_isize)) as i32)
5151
!= 0)
@@ -60,7 +60,7 @@ unsafe fn main_0() -> i32 {
6060
assert!(
6161
((((libc::read(
6262
fd,
63-
(buf.as_mut_ptr() as *mut libc::c_char as *mut ::libc::c_void),
63+
(buf.as_mut_ptr() as *mut ::libc::c_void),
6464
::std::mem::size_of::<[libc::c_char; 16]>()
6565
)) == (0_isize)) as i32)
6666
!= 0)

‎tests/unit/out/unsafe/fn_ptr.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ pub unsafe fn foo_1(
1313
mut fn_: Option<unsafe fn(*mut ::libc::c_void) -> i32>,
1414
mut pi: *mut i32,
1515
) -> i32 {
16-
return (unsafe { (fn_).unwrap()((pi as *mut i32 as *mut ::libc::c_void)) });
16+
return (unsafe { (fn_).unwrap()((pi as *mut ::libc::c_void)) });
1717
}
1818
pub fn main() {
1919
unsafe {

0 commit comments

Comments
 (0)