| // Verifies that drops can be called on arbitrary trait objects. |
| // |
| // FIXME(#122848): Remove only-linux when fixed. |
| //@ only-linux |
| //@ ignore-backends: gcc |
| //@ needs-sanitizer-cfi |
| //@ compile-flags: -Clto -Copt-level=0 -Cprefer-dynamic=off -Ctarget-feature=-crt-static -Zsanitizer=cfi |
| //@ compile-flags: -C unsafe-allow-abi-mismatch=sanitizer |
| //@ run-pass |
| |
| struct EmptyDrop; |
| |
| struct NonEmptyDrop; |
| |
| impl Drop for NonEmptyDrop { |
| fn drop(&mut self) {} |
| } |
| |
| fn main() { |
| let _ = Box::new(EmptyDrop) as Box<dyn Send>; |
| let _ = Box::new(NonEmptyDrop) as Box<dyn Send>; |
| } |