Merge branch 'fix-547' into 'develop'

Fix 547

Closes #547

See merge request embeddable-common-lisp/ecl!174
This commit is contained in:
Marius Gerbershagen 2020-01-02 15:25:36 +00:00
commit f5dfc145d0
3 changed files with 23 additions and 6 deletions

View file

@ -180,6 +180,7 @@ ecl_expt(cl_object x, cl_object y)
/* rational ^ integer -> rational */
/* complex ^ integer -> complex/rational */
/* float ^ integer -> float */
/* cfloat ^ integer -> cfloat */
/* ----------------------------------SECOND IF--- */
/* number ^ complex -> cfloat */
/* complex ^ number -> cfloat */
@ -201,6 +202,12 @@ ecl_expt(cl_object x, cl_object y)
case t_doublefloat:
case t_singlefloat:
return ecl_expt_float(x, y);
#ifdef ECL_COMPLEX_FLOAT
case t_clfloat:
case t_cdfloat:
case t_csfloat:
return ecl_expt_complex_float(x, y);
#endif
default:
ecl_internal_error("expt: unhandled switch branch.");
}

View file

@ -20,13 +20,12 @@
;;;; Declare the suites
(suite 'ecl-tests
'(executable ieee-fp eprocess package-ext hash-tables ansi+ mixed
cmp emb ffi mop mp run-program eformat complex))
(suite 'make-check
'(executable ieee-fp eprocess package-ext hash-tables ansi+ mixed
cmp emb ffi mop run-program mp))
cmp emb ffi mop run-program mp complex))
(suite 'ecl-tests
'(make-check eformat))
(suite 'stress)
(test stress.all (finishes (1am-ecl:run)))

View file

@ -288,4 +288,15 @@
(is (typep #c(1.0 0) 'si:complex-float))
(is (not (typep #c(1 1) 'si:complex-float)))
(is (not (typep #c(0 1) 'si:complex-float)))
(is (not (typep #c(1 0) 'si:complex-float)))))
(is (not (typep #c(1 0) 'si:complex-float))))
;; Date: 2019-12-30
;; URL: https://gitlab.com/embeddable-common-lisp/ecl/issues/547
;; From: Karsten Poeck
;; Fixed: 2019-12-30 (Daniel Kochmański)
;; Description:
;;
;; (EXPT #C(1.0 0.0) 2) causes unrecoverable error.
;;
(test csfloat.0010.issue-547
(finishes (expt #c(1.0 0.0) 2))))