// Check KCFI extra mangling works correctly on v0

//@ needs-sanitizer-kcfi
//@ no-prefer-dynamic
//@ compile-flags: -C panic=abort -Zsanitizer=kcfi -C symbol-mangling-version=v0
//@ build-pass

trait Foo {
    fn foo(&self);
}

struct Bar;
impl Foo for Bar {
    fn foo(&self) {}
}

struct Baz;
impl Foo for Baz {
    #[track_caller]
    fn foo(&self) {}
}

fn main() {
    // Produces `ReifyShim(_, ReifyReason::FnPtr)`
    let f: fn(&Bar) = Bar::foo;
    f(&Bar);
    // Produces `ReifyShim(_, ReifyReason::Vtable)`
    let v: &dyn Foo = &Baz as _;
    v.foo();
}
