diff --git a/changes.rst b/changes.rst index 5aadd74aa..c7eeb3ecd 100644 --- a/changes.rst +++ b/changes.rst @@ -50,6 +50,8 @@ Bug fixes: - Fix a bug in the typeing of enum constructor functions, which would cause incorrect type errors when using them in the type-inst of a variable declaration. +- Fix a segfault caused by an internal `float_times` variant not correctly being + handled during output processing (:bugref:`870`). .. _v2.8.7: diff --git a/share/minizinc/std/stdlib/stdlib_internal.mzn b/share/minizinc/std/stdlib/stdlib_internal.mzn index 9e8b0456b..a8995692c 100644 --- a/share/minizinc/std/stdlib/stdlib_internal.mzn +++ b/share/minizinc/std/stdlib/stdlib_internal.mzn @@ -84,6 +84,8 @@ predicate int_le(int:s, array[$T] of var int: X) = forall(x in array1d(X)) (x >= predicate float_le(array[$T] of var float: X, float: s) = forall(x in array1d(X)) (x <= s); predicate float_le(float:s, array[$T] of var float: X) = forall(x in array1d(X)) (x >= s); +function float: float_times(float: x, float: y) = x*y; + predicate array_var_int_element(var int: x, array[int] of int: y, var int: z) = array_int_element(x,y,z); predicate array_var_bool_element(var int: x, array[int] of bool: y, var bool: z) =