// Passing a default-conv sx function as a callconv(.c) fn-pointer
// silently mismatches ABIs — historically that meant the C-side caller
// supplied no `__sx_ctx` slot 0 and the sx-side body read garbage.
// The compiler now rejects the coercion outright with a "call-convention
// mismatch" diagnostic.

#import "modules/std.sx";

sx_handler :: (arg: *void) -> *void { return arg; }

main :: () -> s32 {
    fp : (*void) -> *void callconv(.c) = sx_handler;
    return 0;
}
