diff --git a/pkgs/racket-test-core/tests/racket/struct.rktl b/pkgs/racket-test-core/tests/racket/struct.rktl index 891e560c8f..e7fbad629b 100644 --- a/pkgs/racket-test-core/tests/racket/struct.rktl +++ b/pkgs/racket-test-core/tests/racket/struct.rktl @@ -1106,6 +1106,12 @@ (test #t procedure? acc) (test #t procedure? mut)) +;; ---------------------------------------- +;; Check that prefab struct size limit is enforced: + +(err/rt-test (make-prefab-struct '(foo 2999999999999999) 1)) +(err/rt-test (make-prefab-struct '(foo 5 bar 2999999999999999) 1)) + ;; ---------------------------------------- (report-errs) diff --git a/racket/src/racket/src/struct.c b/racket/src/racket/src/struct.c index 9ea1fad9ab..596dcb7596 100644 --- a/racket/src/racket/src/struct.c +++ b/racket/src/racket/src/struct.c @@ -5364,7 +5364,7 @@ Scheme_Struct_Type *scheme_lookup_prefab_type(Scheme_Object *key, int field_coun { Scheme_Struct_Type *parent = NULL; Scheme_Object *a, *uninit_val, *mutables, *name; - int ucnt, icnt; + intptr_t ucnt, icnt; char *immutable_array = NULL; if (SCHEME_SYMBOLP(key))