22 lines
748 B
Rust
22 lines
748 B
Rust
|
// Check that dropping a trait object without a principal trait succeeds
|
||
|
|
||
|
//@ needs-sanitizer-cfi
|
||
|
// FIXME(#122848) Remove only-linux once OSX CFI binaries works
|
||
|
//@ only-linux
|
||
|
//@ compile-flags: --crate-type=bin -Cprefer-dynamic=off -Clto -Zsanitizer=cfi
|
||
|
//@ compile-flags: -C target-feature=-crt-static -C codegen-units=1 -C opt-level=0
|
||
|
// FIXME(#118761) Should be run-pass once the labels on drop are compatible.
|
||
|
// This test is being landed ahead of that to test that the compiler doesn't ICE while labeling the
|
||
|
// callsite for a drop, but the vtable doesn't have the correct label yet.
|
||
|
//@ build-pass
|
||
|
|
||
|
struct CustomDrop;
|
||
|
|
||
|
impl Drop for CustomDrop {
|
||
|
fn drop(&mut self) {}
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
let _ = Box::new(CustomDrop) as Box<dyn Send>;
|
||
|
}
|