bug-prolog
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Segmentation fault with constraints involving many terms.


From: Thierry Martinez
Subject: Segmentation fault with constraints involving many terms.
Date: Wed, 6 Mar 2013 16:25:20 +0100

Hi!

The following program leads to a segmentation fault, possibly after
having printed ”here” (and more precisely, when telling the constraint
Sum #> 0), with all versions of GNU Prolog at least since 1.4.1. The
length of the sum leading to the error may vary depending on the
architecture.

:- initialization(test).

test :-
   test_sum_n(162),
   print(here),
   nl,
   test_sum_n(163).

test_sum_n(N) :-
   length(VarList, N),
   build_sum(VarList, Sum),
   Sum #> 0.

build_sum([], 0).
build_sum([A], A) :- !.
build_sum([H1, H2 | T], S + H1):-
   build_sum([H2 | T], S).

Changing build_sum by introducing intermediate FD variables solves the problem.

build_sum([], 0).
build_sum([A], A) :- !.
build_sum([H1, H2 | T], Sum):-
   Sum #= S + H1,
   build_sum([H2 | T], S).

--
Thierry.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]