The might be either this:
diff --git a/src/core/args.c b/src/core/args.c
index c4f2696..4772034 100644
--- a/src/core/args.c
+++ b/src/core/args.c
@@ -677,7 +677,7 @@ MVMObject * MVM_args_slurpy_named(MVMThreadContext *tc,
MVMArgProcContext *ctx)
static void flatten_args(MVMThreadContext *tc, MVMArgProcContext *ctx) {
MVMArgInfo arg_info;
- MVMuint16 flag_pos = 0, arg_pos = 0, new_arg_pos = 0,
+ MVMuint32 flag_pos = 0, arg_pos = 0, new_arg_pos = 0,
new_arg_flags_size = ctx->arg_count > 0x7FFF ? ctx->arg_count :
ctx->arg_count * 2,
new_args_size = new_arg_flags_size, i, new_flag_pos = 0, new_num_pos =
0;
MVMCallsiteEntry *new_arg_flags;
Or this:
diff --git a/src/core/args.c b/src/core/args.c
index c4f2696..43a966a 100644
--- a/src/core/args.c
+++ b/src/core/args.c
@@ -702,7 +702,7 @@ static void flatten_args(MVMThreadContext *tc,
MVMArgProcContext *ctx) {
MVMint64 count = REPR(list)->elems(tc, STABLE(list), list,
OBJECT_BODY(list));
MVMStorageSpec lss =
REPR(list)->pos_funcs.get_elem_storage_spec(tc, STABLE(list));
- if ((MVMint64)new_arg_pos + count > 0xFFFF) {
+ if ((MVMint64)new_arg_pos + count > 0xC000) {
MVM_exception_throw_adhoc(tc, "Too many arguments in
flattening array.");
}