OpaqueType = opaque; [extern] memcpy = fn [cc(c)] (destination: &s32, source: &s32, size: u64) &OpaqueType; [export] main = fn [cc(c)] () s32 { >destination: s32 = 1; >source: s32 = 0; >opaque_pointer = memcpy(&destination, &source, #byte_size(s32)); >pointer: &s32 = #pointer_cast(opaque_pointer); if (pointer != &destination) { #trap(); } return destination; }