//@ run-pass | |
#![allow(dead_code)] | |
// Issue #5041 - avoid overlapping memcpy when src and dest of a swap are the same | |
//@ pretty-expanded FIXME #23616 | |
use std::ptr; | |
pub fn main() { | |
let mut test = TestDescAndFn { | |
desc: TestDesc { | |
name: TestName::DynTestName("test".to_string()), | |
should_fail: false | |
}, | |
testfn: TestFn::DynTestFn(22), | |
}; | |
do_swap(&mut test); | |
} | |
fn do_swap(test: &mut TestDescAndFn) { | |
unsafe { | |
ptr::swap(test, test); | |
} | |
} | |
pub enum TestName { | |
DynTestName(String) | |
} | |
pub enum TestFn { | |
DynTestFn(isize), | |
DynBenchFn(isize), | |
} | |
pub struct TestDesc { | |
name: TestName, | |
should_fail: bool | |
} | |
pub struct TestDescAndFn { | |
desc: TestDesc, | |
testfn: TestFn, | |
} |