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.
39 lines
827 B
Rust
39 lines
827 B
Rust
// Check that we only elaborate non-`Self: Sized` associated types when
|
|
// erasing the receiver from trait ref.
|
|
|
|
//@ 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 {
|
|
type Bar<'a>
|
|
where
|
|
Self: Sized;
|
|
|
|
fn test(&self);
|
|
}
|
|
|
|
impl Foo for () {
|
|
type Bar<'a> = ()
|
|
where
|
|
Self: Sized;
|
|
|
|
fn test(&self) {}
|
|
}
|
|
|
|
fn test(x: &dyn Foo) {
|
|
x.test();
|
|
}
|
|
|
|
fn main() {
|
|
test(&());
|
|
}
|