On Fri, 19 Jul 2002, stephen(a)xemacs.org wrote:
>>>>> "Jerry" == Jerry James
<james(a)ittc.ku.edu> writes:
Jerry> No matter what the value of var is here, that shouldn't
Jerry> happen. When it's a number, the first test should fail and
Jerry> shortcut the second one ... shouldn't it?
Yes, but it doesn't always. We've seen a crash where the compiler was
doing gcse optimization (IIRC), and read ahead. This happened because
the compiler convinced itself somehow that Lisp_Object was a pointer
when it was actually holding a Lisp integer.
Here, xemacs 21.1.11 which does not exhibit this bug was compiled with:
-g -O3 -Wall -Wno-switch
My xemacs 21.4.6 which does exhibit this bug was compiled with:
-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes -Wsign-compare -Wshadow
-Wpointer-arith
I can't be positive that gcc version was the same in both versions.
But, there is a good chance that the offending switch is one of the
... -Winline -Wmissing-prototypes -Wsign-compare -Wshadow -Wpointer-arith
However ... --use-union-type=yes made that one go away. According
to
Jeff Mincy (IIRC) this one doesn't. :-(
Not I.... said the duck
I'll try to find the old crash; it was something that happened on
one
of {Unix,Cygwin,native Windows} but not on the others. 6--12 months
ago, I think. One of the Russian guys was involved, maybe Nick
Pakoulin. (Why can't I remember the damn bug!? Wetware!!) If anyone
else cares to look....
cares to look ... at the wetware? Eeewww.
-jeff