]> Repositorios git - scryer-prolog.git/commitdiff
require array_length to be > 0
authorSkgland <[email protected]>
Sat, 9 Aug 2025 16:40:57 +0000 (18:40 +0200)
committerBennet Bleßmann <[email protected]>
Sun, 24 Aug 2025 17:56:24 +0000 (19:56 +0200)
C does not have 0-sized types

src/lib/ffi.pl

index 8e22e1b33b5311f63d67bc43c49911d85a00f4a3..e3394ca5674aa5557a36215cb76f67679c436a49 100644 (file)
@@ -132,6 +132,7 @@ deallocate(Allocator, Type, Ptr) :-
 :- dynamic(is_array_type_defined/1).
 
 array_type(ElemType, Len, ArrayType) :-
+    (Len =< 0 -> domain_error(greater_than_zero, Len, array_type/3); true),
     phrase(format_("$[~a;~d]", [ElemType, Len]), ArrayTypeName),
     atom_chars(ArrayType, ArrayTypeName),
     (is_array_type_defined(ArrayType) -> true