Subject: bug#8751: 24.0.50; CCL is broken

From: Stefan Monnier <[email-masked]>
Date: Mon, 30 May 2011 13:01:51 -0300

Paul, can you take a look at this?  It seems this was introduced very
recently, probably by

	* ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.

	ccl: add integer overflow checks
	* ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
	(IN_INT_RANGE): New macros.
	(ccl_driver): Use them to check for integer overflow when
	decoding a CCL program.  Many of the new checks are whether XINT (x)
	fits in int; it doesn't always, on 64-bit hosts.  The new version
	doesn't catch all possible integer overflows, but it's an
	improvement.  (Bug#8719)

-- Stefan

>>>>> "Kazuhiro" == Kazuhiro Ito <[email-masked]> writes:

> Below code raises error "Error in CCL program at 4th code" on trunk.
> (progn
>   (define-ccl-program ccl-test
>     '(1 (loop
> 	 (read r0)
> 	 (write-repeat r0))))
>   (ccl-execute-on-string 'ccl-test (make-vector 9 0) "_"))

> -- 
> Kazuhiro Ito