ffi 1.6a: xfail — #objc_call with non-void return rejected today
102/102 regression tests pass (+ffi-objc-call-04-primitive-returns with xfail snapshot capturing today's diagnostic). Pinned scenario: `[NSObject class]` — `#objc_call(*void)(null, "class")`. Should return a non-null Class pointer once the lowering supports non-void returns. Today the Phase 1.3 restriction trips with: #objc_call: only `void` return + (recv, selector) is lowered today; non-void / arg-bearing arities land in later phase-1 steps The next commit (1.6b) introduces an `objc_msg_send` IR opcode that bundles (recv, sel, args, ret_ty) and emit_llvm builds a per-call- site LLVM function type, sharing one declared `@objc_msgSend` symbol across return-type variants. Five primitive returns (*void / bool / s32 / s64 / f64) get folded in across 1.6b–c.
This commit is contained in:
1
tests/expected/ffi-objc-call-04-primitive-returns.exit
Normal file
1
tests/expected/ffi-objc-call-04-primitive-returns.exit
Normal file
@@ -0,0 +1 @@
|
||||
1
|
||||
1
tests/expected/ffi-objc-call-04-primitive-returns.txt
Normal file
1
tests/expected/ffi-objc-call-04-primitive-returns.txt
Normal file
@@ -0,0 +1 @@
|
||||
/Users/agra/projects/sx/examples/ffi-objc-call-04-primitive-returns.sx: error: #objc_call: only `void` return + (recv, selector) is lowered today; non-void / arg-bearing arities land in later phase-1 steps
|
||||
Reference in New Issue
Block a user