//@ run-pass
// #11303, #11040:
// This would previously crash on i686 Linux due to abi differences
// between returning an Option<T> and T, where T is a non nullable
// pointer.
// If we have an enum with two variants such that one is zero sized
// and the other contains a nonnullable pointer, we don't use a
// separate discriminant. Instead we use that pointer field to differentiate
// between the 2 cases.
// Also, if the variant with the nonnullable pointer has no other fields
// then we simply express the enum as just a pointer and not wrap it
// in a struct.


use std::mem;

#[inline(never)]
extern "C" fn foo(x: &isize) -> Option<&isize> { Some(x) }

static FOO: isize = 0xDEADBEE;

pub fn main() {
    unsafe {
        let f: extern "C" fn(&isize) -> &isize =
            mem::transmute(foo as extern "C" fn(&isize) -> Option<&isize>);
        assert_eq!(*f(&FOO), FOO);
    }
}
