CLang issue: Weird crashes in _Unwind_resume?

I have this project that I can't see how to boil down into a cut down
illustration of the problem as it requires a large 3rd party library
(ITK www.itk.org), and the problem is actually triggered in that
library. But here is the problem: If you compile ITK and the
program, it will segfault in _Unwind_resume at the end of a class
method. If you build with GCC (4.6.1 in this case) the program passes
all regression tests.

In gdb, it's really difficult to see what's going on. For one thing
it looks like CLang++ is rearranging code even if the -g flag is given
-- the execution cursor jumps around in the source code display. And
of course, there's no source to look at for Unwind_Resume.

So I'm asking if anyone else has seen something like this issue? Is
this a problem with our program, with ITK, or with CLang++?

FYI This occurs with the last ITK release -- 3.2.1 -- and doesn't
occur with ITK 4.1

Hi Kent,

this is caused by an ITK_NO_RETURN in itkImageSource.h . This macro declares the method as not returning, but it actually returns in some cases. If you remove the ITK_NO_RETURN, everything works fine. We had the same problem in MITK and fixed it by patching ITK. No problems so far.

Best,
Marco

Kent,

You have rediscovered this bug:
<http://llvm.org/bugs/show_bug.cgi?id=9395>

See also this:
<http://llvm.org/bugs/show_bug.cgi?id=12200>

Cheers,