"Ben Wing" <ben(a)666.com> writes:
--use-union-type Enable or disable use of a union, instead of
an
int, for the fundamental Lisp_Object type; this
provides stricter type-checking. WARNING: This has
a tendency to trigger compiler bugs, especially in
combination with other features that increase the
complexity of expressions, for example `--with-mule'
and `--error-checking=all'. Crashes have been
observed with union type in combination with the
two options just mentioned under various versions of
GCC as well as MSVC++ 6.0. Furthermore, many
debuggers have problems (i.e. bugs) dealing with
unions, and even for those that don't, debugging can
be inconvenient because of no syntax for entering a
union. We recommend `--use-union-type' *ONLY* for
testing purposes, not for production builds. If you
are using `-use-union-type' and get some weird
crash, try redoing without union type.
I am probably too late to jump into the discussion, but are you absolutely
sure that it was _compiler_ bug but not the poorly written code whose
behaviour is undefined? Do you have a small example showing such _compiler_
problem? There is a language (OCaml) those datastructures are almost
entirely based on the union type, and I never heard of compiler problems
related to that, although Ocaml can be build with gcc, VC++ and other C
compilers under all major OSes.
- Dmitry Bely