ecl/src/tests
Florian Margaine 09899a3e15 Fix INCF on a THE variable.
The following code:

(let ((foo 0))
  (incf (the fixnum foo) (bar)))

was being expanded into:

(let ((foo 0))
  (LET* ((#:G133 (BAR)) (#:G132 (THE FIXNUM (+ (THE FIXNUM FOO) (BAR)))))
    (DECLARE (:READ-ONLY #:G133))
    (SETQ FOO (THE FIXNUM #:G132))))

Which is obviously going to call (BAR) twice. If (BAR) has
side-effects, then it is going to be buggy.

The old define-modify-macro had an issue with out-of-order INCF/DECF,
which is why it was replaced with Bruno Haible's macro, which is
supposed to improve THE handling. It turns out that the improvement is
a bit broken, so we're just fixing this.

Fixes #401.
2017-09-08 11:57:07 +02:00
..
auxiliary run-program: refine tests 2017-02-20 15:53:56 +01:00
normal-tests Fix INCF on a THE variable. 2017-09-08 11:57:07 +02:00
stress-tests Simplify tests structure 2016-11-17 22:35:37 +01:00
1am.lisp 1am: add file 2016-08-09 19:48:23 +02:00
2am.lisp tests: reorganize ecl-tests (use 2am) 2016-08-09 16:49:35 +02:00
config.lsp.in windows: fix make check 2017-03-17 11:53:52 +01:00
doit.lsp Simplify tests structure 2016-11-17 22:35:37 +01:00
ecl-tests.asd tests: add tests for package local nicknames 2017-05-02 08:51:38 +02:00
ecl-tests.lisp cosmetic: remove unused macro 2017-07-02 23:12:12 +02:00
Makefile.in Simplify tests structure 2016-11-17 22:35:37 +01:00
universe.lisp atan: ieee: polish tests 2016-12-23 08:55:45 +01:00