Implementes the block ABI.2010.3.16 natively via the objc_block intrinsic and the Objc_Block builtin type.

See: https://clang.llvm.org/docs/Block-ABI-Apple.html
This commit is contained in:
Harold Brenes
2025-08-06 20:27:31 -04:00
parent 09a1e170bc
commit 9d8e15b3af
9 changed files with 644 additions and 2 deletions
+2
View File
@@ -351,6 +351,7 @@ BuiltinProc__type_end,
BuiltinProc_objc_register_selector,
BuiltinProc_objc_register_class,
BuiltinProc_objc_ivar_get,
BuiltinProc_objc_block,
BuiltinProc_constant_utf16_cstring,
@@ -711,6 +712,7 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_COUNT] = {
{STR_LIT("objc_register_selector"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics, false, true},
{STR_LIT("objc_register_class"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics, false, true},
{STR_LIT("objc_ivar_get"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics, false, true},
{STR_LIT("objc_block"), 1, true, Expr_Expr, BuiltinProcPkg_intrinsics, false, true},
{STR_LIT("constant_utf16_cstring"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},