Well, I happened to recompile the code with the same compiler from
Red Hat 9 (and I am running on Fedora Core 1). Nevertheless, the
Red Hat 9 version appears to have some patches in its versioning
string. And on that computer, the code compiles fine.
Unfortunately, that's not surprising. Very frustrating, though. I
know it may not be possible in your case, but it might be helpful to
try it on a completely different compiler. Intel, maybe?
Now, I was
not able to reproduce the error in a smaller example (which,
when doing what appears to be exactly the same thing, does
not crash). I would love to share this compiler bug with
you all, but do you really want me to post 1000 lines of
code simply because I cannot reproduce a smaller file
that produces the same error???
I know the feeling. I think I said somewhere in this thread that I've
never had an internal error in g++ that didn't turn out to reflect an
error in my code; with VC6 I often get internal errors from code which
use techniques which I know work in isolation -- putting them all
together causes the ICE. Often there is a large amount of code
involved.
It's a painful process, but I can usually find out what's casuing the
ICE by including headers one at a time. When I find the first header
that causes the error (and verify that none of its includes are
causing the problem) I comment everything out, then uncomment it
systematically until the error resurfaces. Often the error can be
corrected by replacing a small bit of code with code which has exactly
the same meaning but is phrased slightly differently. Occasionally it
has required a substantial redesign. Very rarely I have been unable to
get the compiler to accept any code which does what I want and have
had to abandon my plans.
I'm not sure that would be acceptable. When the errors
are not internal, usually, I am able to reproduce them
in smaller code snippets.
I'd say it's probably against newsgroup policy to post so much code,
but if it's really only 1000 lines, I can't think of anywhere better
than here. I'll look at; but I probably don't have the time or stamina
to track down the error. Someone else might -- perhaps someone who's
had the same problem in the past.
Sorry this thread got so far off track.
Jonathan