66c93ac8ba
Moves the CFI ui tests to the cfi directory and removes the cfi prefix from tests file names similarly to how the cfi codegen tests are organized.
28 lines
719 B
Rust
28 lines
719 B
Rust
// Tests that calling a trait object method on a trait object with additional auto traits works.
|
|
|
|
//@ revisions: cfi kcfi
|
|
// FIXME(#122848) Remove only-linux once OSX CFI binaries work
|
|
//@ only-linux
|
|
//@ [cfi] needs-sanitizer-cfi
|
|
//@ [kcfi] needs-sanitizer-kcfi
|
|
//@ compile-flags: -C target-feature=-crt-static
|
|
//@ [cfi] compile-flags: -C codegen-units=1 -C lto -C prefer-dynamic=off -C opt-level=0
|
|
//@ [cfi] compile-flags: -Z sanitizer=cfi
|
|
//@ [kcfi] compile-flags: -Z sanitizer=kcfi
|
|
//@ [kcfi] compile-flags: -C panic=abort -C prefer-dynamic=off
|
|
//@ run-pass
|
|
|
|
trait Foo {
|
|
fn foo(&self);
|
|
}
|
|
|
|
struct Bar;
|
|
impl Foo for Bar {
|
|
fn foo(&self) {}
|
|
}
|
|
|
|
pub fn main() {
|
|
let x: &(dyn Foo + Send) = &Bar;
|
|
x.foo();
|
|
}
|