1(module 2 (type $arr_i8 (array i8)) 3 (type $arr_i64 (array i64)) 4 5 ;; Overflow on `elems_size = len * sizeof(elem_type)` 6 (func (export "overflow-elems-size") (result (ref $arr_i64)) 7 (array.new_default $arr_i64 (i32.const -1)) 8 ) 9 10 ;; Overflow on `base_size + elems_size` 11 (func (export "overflow-add-base-size") (result (ref $arr_i8)) 12 (array.new_default $arr_i8 (i32.const -1)) 13 ) 14 15 ;; Larger than can fit in `VMGcHeader`'s reserved 26 bits. 16 (func (export "bigger-than-reserved-bits") (result (ref $arr_i8)) 17 (array.new_default $arr_i8 (i32.shl (i32.const 1) (i32.const 26))) 18 ) 19) 20 21(assert_trap (invoke "overflow-elems-size") "allocation size too large") 22(assert_trap (invoke "overflow-add-base-size") "allocation size too large") 23(assert_trap (invoke "bigger-than-reserved-bits") "allocation size too large") 24