Some sort of DAG lowering error

I'm seeing the following result on code which has run successfully before on Linux, and
currently successfully runs on OS X 10.6.x:

Stack dump:
0. Running pass 'X86 DAG->DAG Instruction Selection' on function '@outerCatchFunct'
Segmentation fault

This process was built as part of the LLVM tree with:

setenv CC /usr/local/bin/gcc
setenv CFLAGS -march=i686
setenv CXX /usr/local/bin/g++
setenv CXXFLAGS -march=i686
setenv LD_LIBRARY_PATH /usr/local/lib

with gcc version 4.2.1

uname -a: Linux domU-12-31-38-04-95-A7 #1 SMP Fri Sep 17 23:13:59 UTC 2010 i686 i686 i386 GNU/Linux

Although this result was currently generated from head, I actually saw this error 6 months ago,
and ignored it thinking it was my configuration; mea maxima culpa :-). I'm not so sure now, but before
I go deep into building another local configuration, and debugging this, would someone be
willing to test this on their version of a llvm linux installation?

To build the test do the equivalent of:

1) setenv BUILD_EXAMPLES 1
2) make

at the top of the llvm tree

Then run:

<release type>/examples/ExceptionDemo 2 3 7 -1

at the top of the llvm object root where <release type> == Release+Asserts for example

Thanks in advance


Just in case anyone else is paying attention to this thread of one. I thought
I would give an update to close out the issue.

I tested the ExceptionDemo program against against a CentOs 5.4 (updated) system
vmware virt--llvm built with gcc 4.1.2 both with and without -march=i686 (though I don't
understand what effect i686 has on a gcc built for the target: i386-redhat-linux), and all
works fine. I suspect my ec2 config failure has something to do with mix gcc version installs,
but as my current work is concentrated on clang, I'm not going to look further into
this unless others have issues.

I wrote the ExceptionDemo source about a year ago so it takes me a while to gear up on it--which
is going to be a lot more fun when MCJIT comes to full fruition. :slight_smile: However even though I test first
with OS X, I do want this to always fully work with x86 Linux, and wish someone was interested
in porting this to Windows, and ARM based Linux. BSD would be nice also, but this may already work
anyway. In the end MCJIT and the near (hopefully), future EH design may make this effort moot.