Fix CHAR-EQUAL on base-chars on non-sb-unicode.
authorStas Boukarev <stassats@gmail.com>
Mon, 9 Sep 2013 15:43:58 +0000 (19:43 +0400)
committerStas Boukarev <stassats@gmail.com>
Mon, 9 Sep 2013 15:44:18 +0000 (19:44 +0400)
commit0c08cc954cc0910079bdcf153cccf9a95ef11d67
treef944f0a508cbbb0e6ff48eeb0d493d2d0c6c0881
parent2fb9cd4a2286b82e065d6c673d91e46bd7f2194d
Fix CHAR-EQUAL on base-chars on non-sb-unicode.

BASE-CHAR-P, called by TWO-ARG-CHAR-EQUAL, isn't properly implemented
on non-sb-unicode, the transform by which it gets transformed into
(typep x 'base-char) is disabled, causing an infinite loop.
Since testing for base-char-p is usually redundant on #-sb-unicode,
don't define it there at all. This will catch inadvertent uses.
In the few places where it's currently used, it's can be safely
omitted.

Reported by Jan Moringen.
src/code/pred.lisp
src/code/target-char.lisp
src/compiler/generic/vm-fndb.lisp
src/compiler/generic/vm-tran.lisp
src/compiler/x86-64/insts.lisp
src/compiler/x86/insts.lisp