On Aug 18, 2006, at 9:55 AM, Reid Spencer wrote:
Hmm .. didn't think of that, but it passed all the tests. All the
tools
still have top level exception handlers so its not like we'd
generate an
unexpected_exception error. Some memory cleanup could be missed,
but the
process is going to exit anyway. Temporary files that need to be
cleaned
up are generally done in the tool's code, so that should be okay. What
else could go wrong?
Consider:
"main" has a catch block, which prints an error message and exits.
main calls foo.
"foo" is compiled without exception info, foo calls some llvm::sys
function 'X' that can throw.
"X" throws an exception on some error.
We'd expect the exception to end up in main, an error printed, then
the process exited. However, because "foo" has no unwind info, the
unwinder will abort the process when it gets to the X frame.
I think the simplest thing to do is to eliminate throws from leaf
code like libsystem etc. Tools like bugpoint can continue to use EH
for as long as we think is reasonable, but the libraries that are
called into by other code should be EH free.
-Chris
_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits